ABSTRACT

A chapter on software engineering methodology may occasion some surprise in the alert reader who has read and remembers the contents of Chapter 1. In the first chapter, software engineering was explained by sketching out the task that software engineers perform, and the stages in a ‘standard’ software development life cycle. The sequence of stages presented comprises a methodology. In this chapter I want to focus attention on the ubiquitous skeletons that underlie the two major methodological variants (one osseous infrastructure for each). Just as the amazing diversity of mammals rests on but a single skeletal design, so the two basic bone structures of software methodology can, and are, fleshed out in many different ways. It is, however, useful to take a hard look at the essential elements of software methodology before we move on to consider the well-padded elaborations that software engineers and AI people actually use, or reject. In this way we can obtain a clear view of the range of problems that AI software introduces into the conventional life cycle: a view unobscured by the various embellishments that each practical methodology carries with it. With a clear appreciation of these problems in mind, we will then be in a position to explore the classical Al-system development life cycle, and see why, despite its problems, it may provide the best basis for engineering AI software.