Conquering System Complexity

  • Norman F. SchneidewindEmail author


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.


Maintenance Action Symbolic Execution Distribute Response Time Maintenance Time Cyclomatic Complexity 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


  1. 1.
    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) CrossRefGoogle Scholar
  2. 2.
    Bohner, S.: An era of change-tolerant systems. IEEE Comput. 40(6), 100–102 (2007) CrossRefGoogle Scholar
  3. 3.
    Bollin, A.: The efficiency of specification fragments. In: 11th Working Conference on Reverse Engineering, pp. 266–275. IEEE Comput. Soc., Washington (2004) CrossRefGoogle Scholar
  4. 4.
    Fiadeiro, J.L.: Designing for software’s social complexity. IEEE Comput. 40(1), 34–39 (2007) CrossRefGoogle Scholar
  5. 5.
    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) CrossRefGoogle Scholar
  6. 6.
    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) CrossRefGoogle Scholar
  7. 7.
    Greenfield, S.E.: The Architecture of Microcomputers. Winthrop Publishers, Inc., Cambridge (1980) Google Scholar
  8. 8.
    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) Google Scholar
  9. 9.
    Kurki-Suonio, R.: Real time: further misconceptions (or half-truths) [real-time systems]. IEEE Comput. 27, 71–76 (1994) CrossRefGoogle Scholar
  10. 10.
    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 Google Scholar
  11. 11.
    McCabe, T.J.: A complexity measure. In: 2nd International Conference on Software Engineering, ICSE ’76, p. 407. IEEE Comput. Soc., Los Alamitos (1976) Google Scholar
  12. 12.
    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) Google Scholar
  13. 13.
    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) Google Scholar
  14. 14.
    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) CrossRefGoogle Scholar
  15. 15.
    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) CrossRefGoogle Scholar
  16. 16.
    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) CrossRefzbMATHGoogle Scholar
  17. 17.
    Rafiquzzaman, M.: Fundamentals of Digital Logic and Microcomputer Design. Wiley-Interscience, New York (2005) CrossRefGoogle Scholar
  18. 18.
    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) CrossRefGoogle Scholar
  19. 19.
    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) CrossRefGoogle Scholar
  20. 20.
    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) Google Scholar
  21. 21.
    Schneidewind, N.F.: Risk-driven software testing and reliability. Int. J. Reliab. Qual. Saf. Eng. 14(2), 99–132 (2007) CrossRefGoogle Scholar
  22. 22.
    Sha, L.: Using simplicity to control complexity. IEEE Softw. 18(4), 20–28 (2001) CrossRefGoogle Scholar
  23. 23.
    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) CrossRefGoogle Scholar
  24. 24.
    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) Google Scholar
  25. 25.
    Weiser, M.: Program slicing. IEEE Trans. Softw. Eng. 10(4), 352–357 (1984) CrossRefGoogle Scholar
  26. 26.
    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) CrossRefGoogle Scholar

Copyright information

© Springer-Verlag London Limited 2012

Authors and Affiliations

  1. 1.Department of Information ScienceGraduate School of Operational and Information SciencesMontereyUSA

Personalised recommendations