Page 18 -
P. 18

1          to Software


                                         PART                  Introduction





                                                               Engineering










                                       My aim in this part of the book is to provide a general introduction to
                                       software engineering. I introduce important concepts such as software
                                       processes and agile methods, and describe essential software development
                                       activities, from initial software specification through to system evolution.
                                       The chapters in this part have been designed to support a one-semester
                                       course in software engineering.
                                         Chapter 1 is a general introduction that introduces professional software
                                         engineering and defines some software engineering concepts. I have
                                         also written a brief discussion of ethical issues in software engineering.
                                         I think that it is important for software engineers to think about the
                                         wider implications of their work. This chapter also introduces three case
                                         studies that I use in the book, namely a system for managing records of
                                         patients undergoing treatment for mental health problems, a control
                                         system for a portable insulin pump and a wilderness weather system.
                                         Chapters 2 and 3 cover software engineering processes and agile devel-
                                         opment.  In  Chapter  2,  I  introduce  commonly  used  generic  software
                                         process models, such as the waterfall model, and I discuss the basic
                                         activities that are part of these processes. Chapter 3 supplements this
                                         with a discussion of agile development methods for software engineer-
                                         ing. I mostly use Extreme Programming as an example of an agile method
                                         but also briefly introduce Scrum in this chapter.
   13   14   15   16   17   18   19   20   21   22   23