Accommodating Adaptive Systems Complexity with Change Tolerance

  • Shawn BohnerEmail author
  • Ramya Ravichandar
  • Andrew Milluzzi


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.


Unify Modeling Language Transition Space Object Constraint Language Cohesion Measure Meta Object Facility 
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.



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.


  1. 1.
    Cougaar developers’ guide: Version for cougaar 11.4. Tech. rep., BBN Technologies (2004) Google Scholar
  2. 2.
    Bell, T.E., Thayer, T.A.: Software requirements: are they really a problem? In: ICSE, pp. 61–68 (1976) Google Scholar
  3. 3.
    Bieman, J.M., Ott, L.M.: Measuring functional cohesion. IEEE Trans. Softw. Eng. 20(8), 644–657 (1994) CrossRefGoogle Scholar
  4. 4.
    Boehm, B.W.: Software Risk Management. IEEE Comput. Soc., New York (1989) Google Scholar
  5. 5.
    Bohner, S.: An era of change-tolerant systems. IEEE Comput. 40(6), 100–102 (2007) CrossRefGoogle Scholar
  6. 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. 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) CrossRefGoogle Scholar
  8. 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) CrossRefGoogle Scholar
  9. 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) CrossRefGoogle Scholar
  10. 10.
    Brown, A.: An introduction to model driven architecture: Part I: MDA and today’s systems. IBM developerWorks (2004). Available from
  11. 11.
    Card, D.N., Glass, R.L.: Measuring Software Design Quality. Prentice Hall, New York (1990) Google Scholar
  12. 12.
    Charette, R.N.: Why software fails. IEEE Spectr. 42(9), 42–49 (2005) CrossRefGoogle Scholar
  13. 13.
    Cuadrado, J.S., Molina, J.G.: Building domain-specific languages for model-driven development. IEEE Softw. 24, 48–55 (2007) CrossRefGoogle Scholar
  14. 14.
    Dmitriev, S.: Language oriented programming: the next programming paradigm (2004). Jetbrains.
  15. 15.
    Fenton, N.E., Pfleeger, S.L.: Software Metrics. Pws Publishing, Boston (1996) Google Scholar
  16. 16.
    Fiadeiro, J.L.: Designing for software’s social complexity. IEEE Comput. 40(1), 34–39 (2007) CrossRefGoogle Scholar
  17. 17.
    Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley, Reading (2010) Google Scholar
  18. 18.
    Frakes, W.B., Díaz, R.P., Fox, C.J.: Dare: domain analysis and reuse environment. Ann. Softw. Eng. 5, 125–141 (1998) CrossRefGoogle Scholar
  19. 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) CrossRefGoogle Scholar
  20. 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) CrossRefGoogle Scholar
  21. 21.
    Glass, R.L.: Facts and Fallacies of Software Engineering. Addison-Wesley, Reading (2002) Google Scholar
  22. 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. 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. 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) CrossRefGoogle Scholar
  25. 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. 26.
    Gronback, R.C.: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. The Eclipse Series. Addison-Wesley, Reading (2009) Google Scholar
  27. 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. 28.
    Heylighen, F.: Self-organization, emergence and the architecture of complexity. In: 1st European Conference on System Science, AFCET (1989) Google Scholar
  29. 29.
    Hinchey, M.G., Sterritt, R., Rouff, C.A.: Swarms and swarm intelligence. IEEE Comput. 40(4), 111–113 (2007) CrossRefGoogle Scholar
  30. 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. 31.
    Lehman, M.M.: Software’s future: managing evolution. IEEE Softw. 15(1), 40–44 (1998) CrossRefGoogle Scholar
  32. 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. 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) CrossRefGoogle Scholar
  34. 34.
    Page-Jones, M.: Practical Guide to Structured Systems Design. YOURDON Press, New York (1980) Google Scholar
  35. 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) CrossRefGoogle Scholar
  36. 36.
    Ravichandar, R.: Capabilities engineering: promoting change-reduction and constructing change-tolerant systems. Ph.D. thesis, Computer Science, Virginia Tech. (2008) Google Scholar
  37. 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) CrossRefGoogle Scholar
  38. 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) CrossRefGoogle Scholar
  39. 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. 40.
    Stahl, T., Voelter, M., Czarnecki, K.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, New York (2006) Google Scholar
  41. 41.
    Stensrud, E., Myrtveit, I.: Identifying high performance ERP projects. IEEE Trans. Softw. Eng. 29(5), 398–416 (2003) CrossRefGoogle Scholar
  42. 42.
    Stevens, S.S.: On the theory of scales of measurement. Science 103(2684), 677–680 (1946) CrossRefzbMATHGoogle Scholar
  43. 43.
    Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured design. IBM Syst. J. 13(2), 115–139 (1974) CrossRefGoogle Scholar
  44. 44.
    Velleman, P.F., Wilkinson, L.: Nominal, ordinal, interval, and ratio typologies are misleading. Am. Stat. 47(1), 65–72 (1993) CrossRefGoogle Scholar
  45. 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

Copyright information

© Springer-Verlag London Limited 2012

Authors and Affiliations

  • Shawn Bohner
    • 1
    Email author
  • Ramya Ravichandar
    • 2
  • Andrew Milluzzi
    • 1
  1. 1.Rose-Hulman Institute of TechnologyTerre HauteUSA
  2. 2.CISCO Inc.San JoseUSA

Personalised recommendations