Introduction to System Development Lifecycle 1. System Development Model Software development has hit something of a crisis - we fail to deliver software that meets user expectation. However by employing disciplined techniques throughout the development of software and by employing a philosophy of co-ordination, control and management through out the development life cycle of a software project enhanced standards may be achieved. The aim is to provide discipline to the development of software - a structured framework against which development takes place is advocated.

A model of the process of systems development is used by organisations to describe their approach to producing computer systems. Traditionally this has been a staged (or phased) approach, known as the System Life Cycle or System Development Life Cycle (SDLC). An example of a SDLC is given below: STAGE TASK OUTCOMES Problem Definition Establish what the problem is Statement of requirements Feasibility Study Establish scope & objectives; determine whether project is viable Feasibility study report Analysis Define what constitutes a solution to the problem Logical model of the solution Outline Design Determine ways of solving the problem and choose one Costing and high level design of the system Detailed Design Specify how the system will be implemented System specifications Implementation Write the program & procedures; Install & test system Working system & documentation Maintenance Provide support & enhancements Working system 2. Classical Waterfall The life cycle approach is derived from the waterfall model of system development described by Royce in 1970, a simplified version of which is given below: Classic System Development Lifecycle - Version 1 There are now many variations on the theme of the waterfall model, an alternative is presented below: Classic System Development Lifecycle - Version 2 Feasibility: Is the project technically, operationally, financially and legally feasible? The feasibility study is used to determine if the project should get the go-ahead. If the project is to proceed the feasibility study will produce a project plan and budget estimates for the future stages of development.

Analysis: Gather the requirements for the system. This stage include a detailed study of the business needs of the organisation. Options for changing the business process may be considered. Design: This focuses on high level design (what programs are we going to need and how are they going to interact), low level design (how the individual programs are going to work), interface design (what are the interfaces going to look like) and data design (what data are we going to need). Implementation: The designs are translated into code. Computer programs may be written using a conventional programming language to a fourth generation language (4 GL) or an application generator.

Test: The system is tested. Normally programs are written as a series of individual modules - these should be subject to separate and detailed test. The system is then tested as a whole - the separate modules are brought together and tested as a complete system. The system needs to be tested to ensure that interfaces between modules work (integration testing), the system works on the intended platform and with the expected volume of data (volume testing) and that the system does what the user requires (acceptance / beta testing). Maintain: Inevitably the system will need maintenance - hopefully we haven't got anything wrong but people will want extra things added or existing things changed over time. This paradigm is the oldest and most widely used approach to system development, it was developed by Royce in 1970.

2. 1 Waterfall Approach Characteristics Although there are many variations on the theme of the life cycle, each approach has its own characteristics: . specific activities, techniques and outcomes are associated with each stage; . progression between stages is orderly and proceeds in a linear fashion; .

viewed to be a process driven by technicians; . monitoring and control takes place at the end of each stage; . involvement of end users is typically passive and principally in the analysis stage. The life cycle model assumes that systems will be constructed from scratch by a team of IS professionals either in-house of within a software house. Other approaches exist, namely: . those based on alternative life cycles e.

g. prototyping, evolutionary development, spiral model; . those which have a different philosophical basis e. g. soft systems and socio technical approaches; . the use of package software to address application areas; .

the development of applications by end users. A number of these alternative approaches will be examined later in the course. However, our initial focus will be on the Waterfall Model of system development. 2.

2 Problems with the Waterfall Approach. Real projects rarely follow the sequential process illustrated - iteration through the cycles is required... It is often difficult for the customer to state all requirements explicitly at the start of the development life cycle (the reasons for problems when capturing requirements has / will be covered)... With this approach, the customer must be patient - a working version is not usually available until late in the development life cycle.