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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
Notes
- 1.
The OMG’s MDA website is here: www.omg.org/mda.
- 2.
The Eclipse main website is here: http://www.eclipse.org/.
References
Cougaar developers’ guide: Version for cougaar 11.4. Tech. rep., BBN Technologies (2004)
Bell, T.E., Thayer, T.A.: Software requirements: are they really a problem? In: ICSE, pp. 61–68 (1976)
Bieman, J.M., Ott, L.M.: Measuring functional cohesion. IEEE Trans. Softw. Eng. 20(8), 644–657 (1994)
Boehm, B.W.: Software Risk Management. IEEE Comput. Soc., New York (1989)
Bohner, S.: An era of change-tolerant systems. IEEE Comput. 40(6), 100–102 (2007)
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
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)
Bohner, S.A., Ravichandar, R., Arthur, J.D.: Model-based engineering for change-tolerant systems. Innovations Syst. Softw. Eng. 3(4), 237–257 (2007)
Briand, L., El-Emam, K., Morasca, S.: On the application of measurement theory in software engineering. Empir. Softw. Eng. 1(1), 61–88 (1996)
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.
Card, D.N., Glass, R.L.: Measuring Software Design Quality. Prentice Hall, New York (1990)
Charette, R.N.: Why software fails. IEEE Spectr. 42(9), 42–49 (2005)
Cuadrado, J.S., Molina, J.G.: Building domain-specific languages for model-driven development. IEEE Softw. 24, 48–55 (2007)
Dmitriev, S.: Language oriented programming: the next programming paradigm (2004). Jetbrains. http://www.onboard.jetbrains.com/articles/04/10/lop/
Fenton, N.E., Pfleeger, S.L.: Software Metrics. Pws Publishing, Boston (1996)
Fiadeiro, J.L.: Designing for software’s social complexity. IEEE Comput. 40(1), 34–39 (2007)
Fowler, M., Parsons, R.: Domain-Specific Languages. Addison-Wesley, Reading (2010)
Frakes, W.B., Díaz, R.P., Fox, C.J.: Dare: domain analysis and reuse environment. Ann. Softw. Eng. 5, 125–141 (1998)
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)
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)
Glass, R.L.: Facts and Fallacies of Software Engineering. Addison-Wesley, Reading (2002)
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)
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)
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)
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)
Gronback, R.C.: Eclipse Modeling Project: A Domain-Specific Language (DSL) Toolkit. The Eclipse Series. Addison-Wesley, Reading (2009)
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)
Heylighen, F.: Self-organization, emergence and the architecture of complexity. In: 1st European Conference on System Science, AFCET (1989)
Hinchey, M.G., Sterritt, R., Rouff, C.A.: Swarms and swarm intelligence. IEEE Comput. 40(4), 111–113 (2007)
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)
Lehman, M.M.: Software’s future: managing evolution. IEEE Softw. 15(1), 40–44 (1998)
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)
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)
Page-Jones, M.: Practical Guide to Structured Systems Design. YOURDON Press, New York (1980)
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)
Ravichandar, R.: Capabilities engineering: promoting change-reduction and constructing change-tolerant systems. Ph.D. thesis, Computer Science, Virginia Tech. (2008)
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)
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)
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)
Stahl, T., Voelter, M., Czarnecki, K.: Model-Driven Software Development: Technology, Engineering, Management. Wiley, New York (2006)
Stensrud, E., Myrtveit, I.: Identifying high performance ERP projects. IEEE Trans. Softw. Eng. 29(5), 398–416 (2003)
Stevens, S.S.: On the theory of scales of measurement. Science 103(2684), 677–680 (1946)
Stevens, W.P., Myers, G.J., Constantine, L.L.: Structured design. IBM Syst. J. 13(2), 115–139 (1974)
Velleman, P.F., Wilkinson, L.: Nominal, ordinal, interval, and ratio typologies are misleading. Am. Stat. 47(1), 65–72 (1993)
Yourdon, E., Constantine, L.L.: Structured Design: Fundamentals of a Discipline of Computer Program and System Design. Prentice Hall, New York (1979)
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
Corresponding author
Editor information
Editors and Affiliations
Rights 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)