The products of software engineering are software systems. As with other engineering areas, products should be developed following some methods. This chapter is about methods that can be applied for the process of software development. As described in Chapter 8, The History of Software Engineering, most of the methods used for software development are based on the activities of specifying, designing, coding, and testing. However, these activities are implemented differently by different software development methods.
This chapter focuses on the implementation of these activities by three methods of software development: Spiral Model, Unified Process, and eXtreme Programming. With respect to each method, we outline its main idea and rationale, the main activities on which it is based, and its analysis from the perspective of the human aspect. Readers who choose to learn now about the evolution of these methods are welcome to read Chapter 8 first and then return to this chapter.