Abstract
In this chapter we discuss the relationship among complexity, reliability, maintainability, and availability in a system. We show that by reducing complexity the reliability, maintainability, and availability of a system may be increased. However, it is not always feasible to reduce complexity since customers may demand high functionality, which carries with it additional complexity. We note that there are tradeoffs that must be analyzed to achieve balance among the competing objectives. We present a number of models, using an elevator system example, which can be used to analyse these tradeoffs prior to implementation. These models can be used to reduce uncertainty and highlight potential dangers in software evolution.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
References
Azem, S., Aggoune, R., Dauzère-Pérès, S.: Disjunctive and time-indexed formulations for non-preemptive job shop scheduling with resource availability constraints. In: IEEE International Conference on Industrial Engineering and Engineering Management, pp. 787–791 (2007)
Bohner, S.: An era of change-tolerant systems. IEEE Comput. 40(6), 100–102 (2007)
Bollin, A.: The efficiency of specification fragments. In: 11th Working Conference on Reverse Engineering, pp. 266–275. IEEE Comput. Soc., Washington (2004)
Fiadeiro, J.L.: Designing for software’s social complexity. IEEE Comput. 40(1), 34–39 (2007)
Fu, X., Wang, X., Puster, E.: Dynamic thermal and timeliness guarantees for distributed real-time embedded systems. In: 15th IEEE International Conference on Embedded and Real-Time Computing Systems and Applications, RTCSA ’09, pp. 403–412. IEEE Comput. Soc., Washington (2009)
George, B., Bohner, S.A., Prieto-Diaz, R.: Software information leaks: a complexity perspective. In: Ninth IEEE International Conference on Engineering Complex Computer Systems, pp. 239–248 (2004)
Greenfield, S.E.: The Architecture of Microcomputers. Winthrop Publishers, Inc., Cambridge (1980)
Guerin, F., Barreau, M., Morel, J.-Y., Mihalache, A., Dumon, B., Todoskoff, A.: Reliability analysis for complex industrial real-time systems: application on an antilock brake system. In: Second IEEE International Conference on Systems, Man and Cybernetics (SMC’02), October 6–9, 2002, Hammamet, Tunisia, vol. 7. IEEE Comput. Soc., Los Alamitos (2002)
Kurki-Suonio, R.: Real time: further misconceptions (or half-truths) [real-time systems]. IEEE Comput. 27, 71–76 (1994)
Lehman, M.M.: Rules and tools for software evolution planning and management. In: International Workshop on Feedback and Evolution in Software and Business Processes (2000). Revised and extended version in Annals of Software Engineering, vol. 11, Nov. 2001, pp. 15–44
McCabe, T.J.: A complexity measure. In: 2nd International Conference on Software Engineering, ICSE ’76, p. 407. IEEE Comput. Soc., Los Alamitos (1976)
Mittal, N., Garg, V.K.: Computation slicing: techniques and theory. In: 15th International Conference on Distributed Computing, DISC ’01, pp. 78–92. Springer, London (2001)
Mizanian, K., Yousefi, H., Jahangir, A.H.: Modeling and evaluating reliable real-time degree in multi-hop wireless sensor networks. In: 32nd International Conference on Sarnoff Symposium, SARNOFF’09, pp. 568–573. IEEE Press, Piscataway (2009)
Munson, J.C., Werries, D.S.: Measuring software evolution. In: 3rd International Symposium on Software Metrics: From Measurement to Empirical Results, METRICS ’96, p. 41. IEEE Comput. Soc., Washington (1996)
Nagappan, N.: Toward a software testing and reliability early warning metric suite. In: 26th International Conference on Software Engineering, ICSE ’04, pp. 60–62. IEEE Comput. Soc., Washington (2004)
Peña, J., Hinchey, M.G., Resinas, M., Sterritt, R., Rash, J.L.: Designing and managing evolving systems using a MAS product line approach. Sci. Comput. Program. 66(1), 71–86 (2007)
Rafiquzzaman, M.: Fundamentals of Digital Logic and Microcomputer Design. Wiley-Interscience, New York (2005)
Rilling, J., Klemola, T.: Identifying comprehension bottlenecks using program slicing and cognitive complexity metrics. In: 11th IEEE International Workshop on Program Comprehension, IWPC ’03, p. 115. IEEE Comput. Soc., Washington (2003)
Russ, N., Peter, G., Berlin, R., Ulmer, B.: Lessons learned: on-board software test automation using IBM rational test realtime. In: IEEE International Conference on Space Mission Challenges for Information Technology, p. 305. IEEE Comput. Soc., Los Alamitos (2006)
Schneidewind, N.F.: Requirements risk and software reliability. In: Madhavji, N.H., Fernández-Ramil, J.C., Perry, D.E. (eds.) Software Evolution and Feedback, pp. 407–421. Wiley, New York (2006)
Schneidewind, N.F.: Risk-driven software testing and reliability. Int. J. Reliab. Qual. Saf. Eng. 14(2), 99–132 (2007)
Sha, L.: Using simplicity to control complexity. IEEE Softw. 18(4), 20–28 (2001)
Stewart, M.E.M.: Towards a tool for rigorous, automated code comprehension using symbolic execution and semantic analysis. In: 29th Annual IEEE/NASA on Software Engineering Workshop, pp. 89–96. IEEE Comput. Soc., Washington (2005)
Sun, Y., Cheng, L., Liu, H., He, S.: Power system operational reliability evaluation based on real-time operating state. In: 7th International Power Engineering Conference, Nov. 29–Dec. 2, 2005, pp. 722–727 (2005)
Weiser, M.: Program slicing. IEEE Trans. Softw. Eng. 10(4), 352–357 (1984)
Zhang, J.: Symbolic execution of program paths involving pointer and structure variables. In: Fourth International Conference on Quality Software, QSIC ’04, pp. 87–92. IEEE Comput. Soc., Washington (2004)
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2012 Springer-Verlag London Limited
About this chapter
Cite this chapter
Schneidewind, N.F. (2012). Conquering System Complexity. In: Hinchey, M., Coyle, L. (eds) Conquering Complexity. Springer, London. https://doi.org/10.1007/978-1-4471-2297-5_5
Download citation
DOI: https://doi.org/10.1007/978-1-4471-2297-5_5
Publisher Name: Springer, London
Print ISBN: 978-1-4471-2296-8
Online ISBN: 978-1-4471-2297-5
eBook Packages: Computer ScienceComputer Science (R0)