Page 19 -
P. 19
The remainder of the chapters in this part are extended descriptions of
the software process activities that will be introduced in Chapter 2.
Chapter 4 covers the critically important topic of requirements engineer-
ing, where the requirements for what a system should do are defined.
Chapter 5 introduces system modeling using the UML, where I focus on
the use of use case diagrams, class diagrams, sequence diagrams, and
state diagrams for modeling a software system. Chapter 6 introduces
architectural design and I discuss the importance of architecture and the
use of architectural patterns in software design.
Chapter 7 introduces object-oriented design and the use of design pat-
terns. I also introduce important implementation issues here—reuse, con-
figuration management, and host-target development and discuss open
source development. Chapter 8 focuses on software testing from unit test-
ing during system development to the testing of software releases. I also
discuss the use of test-driven development—an approach pioneered in
agile methods but which has wide applicability. Finally, Chapter 9 pres-
ents an overview of software evolution issues. I cover evolution
processes, software maintenance, and legacy system management.