Software Engineering presents a broad perspective on software systems engineering, concentrating on widely used techniques for developing large-scale systems. The objectives of this seventh edition are to include new material on iterative software development, component-based software engineering and system architectures, to emphasize that system dependability is not an add-on but should be considered at all stages of the software process, and not to increase the size of the book significantly.
To this end the book has been restructured into 6 parts, removing the separate section on evolution as the distinction between development and evolution can be seen as artificial. New chapters have been added on:
Socio-technical Systems – discussing the context of software in a broader system composed of other hardware and software, people, organisations, policies, procedures and laws.
Application System Architectures – to teach students the general structure of application systems such as transaction systems, information systems and embedded control systems. The chapter covers 6 common system architectures with an architectural overview and discussion of the characteristics of these types of system.
Iterative Software Development – looking at prototyping and adding new material on agile methods and extreme programming.
Component-based Software Engineering – introducing the notion of a component, component composition and component frameworks and covering design with reuse.
Software Evolution – revising the presentation of the 6th edition to cover re-engineering and software change in a single chapter.
The book supports students taking undergraduate or graduate courses in software engineering, and software engineers in industry needing to update their knowledge.