Skip to main content

Accommodating Adaptive Systems Complexity with Change Tolerance

  • Chapter
  • 819 Accesses

Abstract

As software systems grow in size and complexity, understanding and evolving them entails engineering capabilities that are change-tolerant. Inherent complexities make them susceptible to change when subjected to the vagaries of user needs, technology advances, market demands, and other change inducing factors. Today’s software often reflects adaptive systems complexity. Like the immune system, social systems, and colonies of ants, complexities often start with fuzzy rather than the rigid boundaries found in more mechanical systems. As our understanding of these systems evolve, there are natural transitions where complexity is injected to simplify a solution. As we introduce potential solutions to a problem space, the selected solution may inject potential complexities (e.g., the use of a database server simplifies one problem for the handling of data, but introduces an evolution complexity as the bow wave of platform complexities are now injected). Similarly, software is embedded within other systems and must co-evolve. This calls for an understanding and tracking of adaptive system complexity from the early stages of the life cycle. Model-Based Engineering shows promise for managing change tolerance in the evolution of long-lived software systems. Starting with Domain and Capabilities Engineering defining long-lived components of a system establishes some sense of change tolerance. In this chapter, we examine coupling and cohesion in the journey from abstract “needs” through to architecture design. We introduce the notion of Capabilities—functional abstractions that are neither amorphous as user needs nor rigid as system requirements. Engineered capabilities are used to transition into an architecture that will accommodate change. We focus initially on capabilities engineering and detail an algorithm to identify Capabilities. We extend the notion of change tolerance to other representations as we model software systems in Model-Based Engineering. Our experiential results indicate that the Capabilities-based design is less susceptible to change impacts and thereby improves the system change-tolerance, and in turn reduces the overall complexity as the system evolves.

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

Buying options

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

Learn about institutional subscriptions

Notes

  1. 1.

    The OMG’s MDA website is here: www.omg.org/mda.

  2. 2.

    The Eclipse main website is here: http://www.eclipse.org/.

References

  1. Cougaar developers’ guide: Version for cougaar 11.4. Tech. rep., BBN Technologies (2004)

    Google Scholar 

  2. Bell, T.E., Thayer, T.A.: Software requirements: are they really a problem? In: ICSE, pp. 61–68 (1976)

    Google Scholar 

  3. Bieman, J.M., Ott, L.M.: Measuring functional cohesion. IEEE Trans. Softw. Eng. 20(8), 644–657 (1994)

    Article  Google Scholar 

  4. Boehm, B.W.: Software Risk Management. IEEE Comput. Soc., New York (1989)

    Google Scholar 

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

    Article  Google Scholar 

  6. Bohner, S., Gracanin, D., George, B., Singh, L., He, N.: Active methods project report and CMDA system documentation. Virginia Tech Department of Computer Science (2005), p. 77

    Google Scholar 

  7. Bohner, S.A., George, B., Gracanin, D., Hinchey, M.G.: Formalism challenges of the cougaar model driven architecture. In: Formal Approaches to Agent-Based Systems, Third International Workshop, FAABS 2004, Greenbelt, MD, USA, April 26–27, 2004, Revised Selected Papers, pp. 57–71 (2004)

    Chapter  Google Scholar 

  8. Bohner, S.A., Ravichandar, R., Arthur, J.D.: Model-based engineering for change-tolerant systems. Innovations Syst. Softw. Eng. 3(4), 237–257 (2007)

    Article  Google Scholar 

  9. Briand, L., El-Emam, K., Morasca, S.: On the application of measurement theory in software engineering. Empir. Softw. Eng. 1(1), 61–88 (1996)

    Article  Google Scholar 

  10. Brown, A.: An introduction to model driven architecture: Part I: MDA and today’s systems. IBM developerWorks (2004). Available from http://www-128.ibm.com/developerworks/rational/library/3100.html.

  11. Card, D.N., Glass, R.L.: Measuring Software Design Quality. Prentice Hall, New York (1990)

    Google Scholar 

  12. Charette, R.N.: Why software fails. IEEE Spectr. 42(9), 42–49 (2005)

    Article  Google Scholar 

  13. Cuadrado, J.S., Molina, J.G.: Building domain-specific languages for model-driven development. IEEE Softw. 24, 48–55 (2007)

    Article  Google Scholar 

  14. Dmitriev, S.: Language oriented programming: the next programming paradigm (2004). Jetbrains. http://www.onboard.jetbrains.com/articles/04/10/lop/

  15. Fenton, N.E., Pfleeger, S.L.: Software Metrics. Pws Publishing, Boston (1996)

    Google Scholar 

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

    Article  Google Scholar 

  17. Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley, Reading (2010)

    Google Scholar 

  18. Frakes, W.B., Díaz, R.P., Fox, C.J.: Dare: domain analysis and reuse environment. Ann. Softw. Eng. 5, 125–141 (1998)

    Article  Google Scholar 

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

  20. George, B., Singh, H.L., Bohner, S.A., Gracanin, D.: Requirements capture for cougaar model-driven architecture system. In: 29th Annual IEEE/NASA on Software Engineering Workshop, pp. 109–117 (2005)

    Chapter  Google Scholar 

  21. Glass, R.L.: Facts and Fallacies of Software Engineering. Addison-Wesley, Reading (2002)

    Google Scholar 

  22. Goguen, J.A., Linde, C.: Techniques for requirements elicitation. In: First International Symposium on Requirements Engineering (RE’93), San Diego, CA, USA, pp. 152–164 (1993)

    Google Scholar 

  23. Gracanin, D., Bohner, S.A., Hinchey, M.G.: Towards a model-driven architecture for autonomic systems. In: 11th IEEE International Conference on the Engineering of Computer-Based Systems (ECBS 2004), 24–27 May 2004, Brno, Czech Republic, pp. 500–505 (2004)

    Google Scholar 

  24. Gracanin, D., Singh, H.L., Bohner, S.A., Hinchey, M.G.: Model-driven architecture for agent-based systems. In: Hinchey, M.G., Rash, J.L., Truszkowski, W., Rouff, C. (eds.) Formal Approaches to Agent-Based Systems, Third International Workshop, FAABS 2004, Greenbelt, MD, USA, April 26–27, 2004, Revised Selected Papers, pp. 249–261 (2004)

    Chapter  Google Scholar 

  25. Gracanin, D., Singh, H.L., Hinchey, M.G., Eltoweissy, M., Bohner, S.A.: A CSP-based agent modeling framework for the cougaar agent-based architecture. In: 12th IEEE International Conference on the Engineering of Computer-Based Systems (ECBS 2005), 4–7 April 2005, Greenbelt, MD, USA, pp. 255–262 (2005)

    Google Scholar 

  26. Gronback, R.C.: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. The Eclipse Series. Addison-Wesley, Reading (2009)

    Google Scholar 

  27. Haney, F.M.: Module connection analysis: a tool for scheduling software debugging activities. In: AFIPS ’72: Proceedings of the December 5–7, 1972, Fall Joint Computer Conference, Part I (1927)

    Google Scholar 

  28. Heylighen, F.: Self-organization, emergence and the architecture of complexity. In: 1st European Conference on System Science, AFCET (1989)

    Google Scholar 

  29. Hinchey, M.G., Sterritt, R., Rouff, C.A.: Swarms and swarm intelligence. IEEE Comput. 40(4), 111–113 (2007)

    Article  Google Scholar 

  30. Lehman, M.M.: Laws of software evolution revisited. In: Proceedings 5th European Workshop, Software Process Technology, EWSPT ’96, Nancy, France, October 9–11, 1996, pp. 108–124 (1996)

    Google Scholar 

  31. Lehman, M.M.: Software’s future: managing evolution. IEEE Softw. 15(1), 40–44 (1998)

    Article  Google Scholar 

  32. Lutz, R.R.: Analyzing software requirements errors in safety-critical, embedded systems. In: First International Symposium on Requirements Engineering (RE’93), San Diego, CA, USA, pp. 126–133 (1993)

    Google Scholar 

  33. Miller, G.A.: The magical number seven, plus or minus two: some limits on our capacity for processing information. Psychol. Rev. 63(2), 81–97 (1956)

    Article  Google Scholar 

  34. Page-Jones, M.: Practical Guide to Structured Systems Design. YOURDON Press, New York (1980)

    Google Scholar 

  35. Qin, S., Chin, W.-N., He, J., Qiu, Z.: From statecharts to verilog: a formal approach to hardware/software co-specification. Innovations Syst. Softw. Eng. 2(1), 17–38 (2006)

    Article  Google Scholar 

  36. Ravichandar, R.: Capabilities engineering: promoting change-reduction and constructing change-tolerant systems. Ph.D. thesis, Computer Science, Virginia Tech. (2008)

    Google Scholar 

  37. Ravichandar, R., Arthur, J.D., Bohner, S.A.: Capabilities engineering: constructing change-tolerant systems. In: 40th Hawaii International Conference on Systems Science (HICSS-40 2007), 3–6 January 2007, Waikoloa, Big Island, HI, USA, p. 278 (2007)

    Chapter  Google Scholar 

  38. Ravichandar, R., Arthur, J.D., Broadwater, R.P.: Reconciling synthesis and decomposition: a composite approach to capability identification. In: 14th Annual IEEE International Conference and Workshop on Engineering of Computer Based Systems (ECBS 2007), 26–29 March 2007, Tucson, AZ, USA, pp. 287–298 (2007)

    Chapter  Google Scholar 

  39. Ravichandar, R., Arthur, J.D., Pérez-Quiñones, M.A.: Pre-requirement specification traceability: bridging the complexity gap through capabilities. In: International Symposium on Grand Challenges in Traceability, TEFSE/GC (2007)

    Google Scholar 

  40. Stahl, T., Voelter, M., Czarnecki, K.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, New York (2006)

    Google Scholar 

  41. Stensrud, E., Myrtveit, I.: Identifying high performance ERP projects. IEEE Trans. Softw. Eng. 29(5), 398–416 (2003)

    Article  Google Scholar 

  42. Stevens, S.S.: On the theory of scales of measurement. Science 103(2684), 677–680 (1946)

    Article  MATH  Google Scholar 

  43. Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured design. IBM Syst. J. 13(2), 115–139 (1974)

    Article  Google Scholar 

  44. Velleman, P.F., Wilkinson, L.: Nominal, ordinal, interval, and ratio typologies are misleading. Am. Stat. 47(1), 65–72 (1993)

    Article  Google Scholar 

  45. Yourdon, E., Constantine, L.L.: Structured Design: Fundamentals of a Discipline of Computer Program and System Design. Prentice Hall, New York (1979)

    Google Scholar 

Download references

Acknowledgements

This work has been supported, in part, by the DARPA grant “AMIIE Phase II—Cougaar Model Driven Architecture Project,” (Cougaar Software, Inc.) subcontract number CSI-2003-01. We would like to acknowledge the efforts, ideas, and support that we received from our research team including Michael Hinchey, Todd Carrico, Tim Tschampel, Denis Gracanin, Lally Singh, and Nannan He. We want to thank students at Rose-Hulman Institute of Technology who participated in the FacePamphlet projects, and especially Rob Adams, whose work on the DSL version of FacePamphlet substantiated further our findings.

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Shawn Bohner .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2012 Springer-Verlag London Limited

About this chapter

Cite this chapter

Bohner, S., Ravichandar, R., Milluzzi, A. (2012). Accommodating Adaptive Systems Complexity with Change Tolerance. In: Hinchey, M., Coyle, L. (eds) Conquering Complexity. Springer, London. https://doi.org/10.1007/978-1-4471-2297-5_6

Download citation

  • DOI: https://doi.org/10.1007/978-1-4471-2297-5_6

  • 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