rapidly. Hence the methods that worked for the Cold War do not work in the current environment. In today's world, defense systems require agility and net-centricity. Systems must become much more agile and capabilities must be deployed more quickly. Our development methods must help us integrate and deploy complex and scalable functionality more quickly.

Management of complexity

Our world is very complex—and becoming more complex daily.3 We must manage complexity, before it overwhelms us. Methods for managing complexity can help us prosper in our complex world. Model driven systems development (MDSD) is such a method.

At its core, MDSD is quite simple, but very powerful in its simplicity; extraordinarily complex things are built from simple pieces.4 It applies across a wide range of domains, and across a wide range of levels of abstraction from very abstract to very concrete, from business modeling to the modeling of embedded software. MDSD is not just a method for reasoning about and designing software systems, it is a method for reasoning about and designing large complex systems consisting of workers, hardware and software.5

The power of MDSD lies in the power of its abstractions.

Creative/dynamic and transactional complexity

In building systems, we are faced with two different kinds of complexity:

Creative/dynamic complexity and transactional complexity:

￿We face creative/dynamic complexity because we need teams of people to work together creatively to architect optimal, robust systems.

￿We face transactional complexity when we try to manage all the components that make up a complex system.

Transactional complexity can be managed with MDSD.

3Cantor, Rational Unified Process for Systems Engineering, Part 1: Introducing RUP SE Version 2.0, The Rational Edge, August 2003, http://www.ibm.com/developerworks/rational/library/content/RationalEdge/aug03/f_rupse_m c.pdf

4Booch covers this point in Object-Oriented Design and Analysis with Applications, 3rd Edition, Addison Wesley, Reading, MA, 2007. When designing a complex software system, it is essential to decompose it into smaller and smaller parts, each of which we may then refine independently. In this manner, we satisfy the very real constraint that exists upon the channel capacity of human cognition …, page 19.

5See Blanchard and Fabryky’s definition: Blanchard and Fabryky, Systems Engineering and Analysis, third edition, Prentice Hall, 1998, quoted by Murray Cantor (see footnote 3).

Chapter 1. Introduction

3

Page 19
Image 19
IBM SG24-7368-00 manual Management of complexity, Creative/dynamic and transactional complexity