Further reading Projects in Computing and Information Systems A Student's Guide 0273721313 Pearson 2009

114 Chapter 6 n Software development •

6.1 Introduction

6.1.1 Overview

As this book is aimed at Computer ScienceInformation SystemsSoftware Engineering students, it is possible that your project will involve the development of a software system of some kind. At one extreme, your course may require you to undertake a software development as the fundamental component of the project; at the other extreme you may just decide to develop a small program to evaluate some ideas in a more research-oriented project. For example, for an MPhil or PhD you may need to develop a program as a ‘vehicle’ for testing out a new theory, but the program itself will not be examined – so it will not have to be perfect or fully documented. Whatever the case, the sections within this chapter will be useful. They will provide you with a grounding in the approaches you can use to develop software systems, and means of evaluating those systems when they are complete. If your project does not involve the development of any software, you can skip this chapter. Note that the term process model and life cycle model are two terms that are used interchangeably in this text. While some might view processes from the perspective of improvement, life cycle is sometimes used to refer to a more generic overview of a soft- ware system’s development. This distinction is not made here and the terms are used interchangeably to assist presentation. One area that this chapter does not cover is the use of development methods of which there are tens, if not hundreds, in existence. Development methods are used in different stages of software development and provide a set of rules and tech- niques for undertaking different tasks in the software development process. Examples include SSADM Structured Systems Analysis and Design Method – used in analysis and design, UML Unified Modelling Language; a modelling notation for object oriented design, DFDs Data Flow Diagrams and Soft Systems used to elicit requirements in complex environments. Methods can be used within the overall development process model you are using and it is these process models that are discussed in this chapter. If you are using a particular method as part of your project you may not need to follow the method in depth and undertake all of its prescribed stages. Methods are normally tailored for the development of large software systems and, therefore, many parts of the method may be inappropriate or excessive for your own work. Your supervisor should be able to advise you on the use of appropriate methods for your own project.

6.1.2 The past

When software systems were first developed in the mid twentieth century they were done so in a rather ad hoc manner without any reference to a defined devel- opment process. It was soon realised that this undisciplined approach led to systems that were poorly constructed and difficult to manage and control. Some form of development process was required that could assist software developers in producing more structured code in a more manageable way. According to Knott