It is clear that the development of large software systems is an extremely complex activity, which is full of various opportunities to introduce errors. Software engineering is the discipline that provides methods to handle this complexity and enables us to produce reliable software systems with maximum productivity. An Integrated Approach to Software Engineering is different from other approaches because the various topics are not covered in isolation. A running case study is employed throughout the book, illustrating the different activity of software development on a single project. This work is important and instructive because it not only teaches the principles of software engineering, but also applies them to a software development project such that all aspects of development can be clearly seen on a project.
An Integrated Approach to Software Engineering introduces software engineering to advanced-level undergraduate and graduate students of computer science. It emphasizes a case-study approach whereby a project is developed through the course of the book, illustrating the different activities of software development. The sequence of chapters is essentially the same as the sequence of activities performed during a typical software project. All activities, including quality assurance and control activities, are described in each chapter as integral activities for that phase of development. Similarly, the author carefully introduces appropriate metrics for controlling and assessing the software process.
Chapters in this revised edition, updated for today’s standards, include these new features:
Software Process: a discussion on the timeboxing model for iterative development and on inspection process
Requirements Analysis and Specification: a description of Use Cases
Software Architecture: an additional chapter for this edition
Project Planning: some practical techniques for estimation, scheduling, tracking, and risk management
Object Oriented Design: a discussion on UML and on concepts such as cohesion, coupling and open-closed principle
Coding: sections on refactoring, test driven development, pair programming, common coding defects, coding standards, and some useful coding practices
Testing: a presentation on pair-wise testing as an approach for functional testing, defect tracking, and defect analysis and prevention
The text, bolstered by numerous examples and chapter summaries, imparts to the reader the knowledge, skills, practices and techniques needed to successfully execute a software project.