Managing Complexity in Software Engineering
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.
The papers in this book address the problem of managing complexity in software engineering from these different perspectives. The papers are grouped into three sections: Paradigms of software development; Project management; and Automated support. The papers are selected from those presented at the 4th European Seminar on Industrial Software Technology organised by the European Workshop on Industrial Computer Systems (EWICS), whose aim is to promote the effective use of industrial computer systems through education, the dissemination of information and the development of guidelines and standards.
About the Editors
Richard Mitchell joined the European Workshop on Industrial Computer Systems (EWICS) in 1980. As a member of its Technology Dissemination Committee he helps organise EWICS European Seminars. The papers in this book are selected from those presented at the 4th European Seminar on Industrial Software Technology.
In 1979 he was awarded an MSc in Computer Science and since then he has been active in computer science research and teaching. He has been influential in bringing formal methods into the curriculum, and he has worked on Alvey and ESPRIT projects on formal methods and software design. He gained a PhD in Computer Science in 1988 for work on bringing object-oriented design and formal methods into the framework of literate programming. He has published a number of papers on various aspects of software engineering. He was recently appointed Reader in Software Engineering at Brighton Polytechnic, and is currently working on the role of formal methods in the development of information systems.