Managing Complexity in Software Engineering
R.J. Mitchell
The Institution of Engineering and Technology, 1990
Software engineering products are becoming ever more complex, because software is being used in the solution of more technically difficult problems and because the size of software projects continues to grow. A key question for software engineers is how to cope with this complexity. There is no single answer, and software engineers must attack the problem from a number of perspectives. A technical perspective reveals new paradigms for system development, including two paradigms that show particular promise: object-oriented design and formal methods. A management perspective recognises that good project management is vital to the success of a complex project. The scale of modern projects makes it essential to use automated support, so software engineers must also look at how to manage complexity from an automation perspective. Automated support can come in the form of discrete tools for particular tasks, or a packaged set of tools in a support environment.
[more]