Skip to main content

Conquering System Complexity

  • Chapter
Conquering Complexity
  • 828 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

References

  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)

    Chapter  Google Scholar 

  2. Bohner, S.: An era of change-tolerant systems. IEEE Comput. 40(6), 100–102 (2007)

    Article  Google Scholar 

  3. Bollin, A.: The efficiency of specification fragments. In: 11th Working Conference on Reverse Engineering, pp. 266–275. IEEE Comput. Soc., Washington (2004)

    Chapter  Google Scholar 

  4. Fiadeiro, J.L.: Designing for software’s social complexity. IEEE Comput. 40(1), 34–39 (2007)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  7. Greenfield, S.E.: The Architecture of Microcomputers. Winthrop Publishers, Inc., Cambridge (1980)

    Google Scholar 

  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. Kurki-Suonio, R.: Real time: further misconceptions (or half-truths) [real-time systems]. IEEE Comput. 27, 71–76 (1994)

    Article  Google Scholar 

  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. 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. 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. 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. 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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Article  MATH  Google Scholar 

  17. Rafiquzzaman, M.: Fundamentals of Digital Logic and Microcomputer Design. Wiley-Interscience, New York (2005)

    Book  Google Scholar 

  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)

    Chapter  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Schneidewind, N.F.: Risk-driven software testing and reliability. Int. J. Reliab. Qual. Saf. Eng. 14(2), 99–132 (2007)

    Article  Google Scholar 

  22. Sha, L.: Using simplicity to control complexity. IEEE Softw. 18(4), 20–28 (2001)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

  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. Weiser, M.: Program slicing. IEEE Trans. Softw. Eng. 10(4), 352–357 (1984)

    Article  Google Scholar 

  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)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Norman F. Schneidewind .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics