MIS course plan

Systems Development

by

Matthew Martin, 2004

The development of software systems is usually complex, requiring careful management. In order to assist in the management of software systems, approaches have been developed to software development planning. We will look at a number of these approaches.

 

Contents

    1. The Phases Of The SDLC
      1. Inception
      2. Analysis & Design
      3. Implementation (Development)
      4. Testing
      5. Rollout / Installation
      6. Post-Implementation (Post-Rollout / Post-Installation)
    2. Disadvantages Of The SDLC
  1. Prototyping
    1. Advantages Of Prototyping
    2. Disadvantages Of Prototyping
  2. Rapid Application Development (RAD)
    1. Joint Application Design (JAD)
  3. Software Re-Engineering

top of page

The SDLC Waterfall Approach

The waterfall approach to the Software Development Life-Cycle (SDLC) involves a number of stages; some sources four, five, six others seven stages, but the approach is the same regardless.

 

Each stage has deliverables. In terms of the managing the project, project documentation is an important group of deliverables. Each stage must be completed before moving onto the next stage, hence waterfall.

top of page

The Phases Of The SDLC

Descriptive summarise of each stage follow.

Inception

Inception is the first phase of a project. This phase can only occur if the project is deemed feasible and there is Board level or senior management approval for the project. The Inception phase involves establishment of milestones to be achieved within the project, resource allocation, time scales and expenditure plans.

Within the Feasibility Study the requirements of the proposed project are assessed in order to establish if the project can be completed successfully. A positive conclusion to the Feasibility Study may lead to the Inception phase. Project initiation does in addition require that the project be passed by the Board. A negative conclusion to this phase will mean that the project is not initiated.

Analysis & Design

The analysis performed at this stage of the project is often called Business Analysis or Systems Analysis. Business Analysis involves the detailed assessment of current systems and the determination of the business requirements for the proposed system. Any current systems to be replaced in whole or in part by the required system are analysed. The business needs of the required system will also be examined, establishing the business functionality of the required system.

There are two main types of methodologies used in the industry today, structured and object oriented (OO):

·        Structured methods are appropriate where structured programming is used (e.g. C, Pascal, BASIC). A well known group of structured methodologies is SSADM (Structured System Analysis & Design Methodologies).

·        OO methods are appropriate where object oriented programming is used (e.g. C++, Java). The most widely used standards in the industry is UML (Unified Modelling Language).

As part of the business analysis the requirements for User Acceptance Testing (UAT) and Implementation are considered. The criteria for UAT are set and these will be used in the User Acceptance Testing. The UAT criteria are determined at this phase in the SDLC since it is here that the business needs of the required system are established, even though these criteria will not be utilised until a much later phase of the life-cycle. The way in which the Implementation of the required system is to be approached is first addressed within this phase of the SDLC. A statement of customer requirements for converting current operations to the new system is made within the Business Specification.

The design results in the production of the overall plan of the required system. This is sometimes referred to as the required system analysis or high-level design. From the analysis and the high level design is used to produce the specifications for the programmers.

Implementation (Development)

The programmers use the specifications that are provided to them in order to produce software code. Also DBAs will use the specifications in order to produce database designs. The code that a team of programmers produce may be modularised, in order to break the work down into manageable sections. Programmers will perform there own testing of the code they produce, called unit testing.

Testing

The code modules produced in the implementation phase are integrated and in order to ensure that this has been done successfully integration testing may be required.

In addition to integration testing, User Acceptance Testing (UAT) is performed. The UAT addresses issues of software conformancy to user requirements. Although these requirements have been laid out in the Analysis phase the adherence to these requirements must be assessed. Further, the accuracy with which user requirements were communicated and recorded will be interrogated by UAT procedures.

Rollout / Installation

The rollout or installation phase of the SDLC covers the complete introduction of the new system. This will include migration from current systems to the new system and data conversion. Detailed planning may be required if current systems are to be replaced by the newly developed system. A number of approaches may be taken and careful consideration is required to establish how this is best done (e.g. big bang, migration). The Business Analysis, where customer requirements will have been laid out, will inform consideration of the approach. A Conversion Strategy document is required to detail the approach to be taken in implementing the new system.

Post-Implementation (Post-Rollout / Post-Installation)

Subsequent to the rollout of the software a review of the performance of the software may be required. Also in this phase of the SDLC, product support is usually required. This may include pos-release bug fixes and end-user (customer) support.

Disadvantages Of The SDLC

The SDLC is time consuming and requires the generation of a great deal of paperwork, used in planning and monitoring the project. However, it is useful where a large, complex systems, with highly structured requirements. The waterfall approach is time consuming and not suited to rapid development.

top of page

 

Prototyping

This involves the development of an experimental system, quickly and cheaply. The users can then review this system in order to determine if it fulfils their requirements. The features of the prototype that are agreed by the users are used as the template from which the final system is developed. Usually a number of prototypes are required, each more refined than the last. This is termed iterative development.

When no more iterations are required the final requirements for the system have been reached. In some cases the final prototype is used as the final version of the software. Otherwise a final version is developed on the basis of the requirements identified through the prototyping procedure.


The stages of prototyping are described:

  1. Identify the users’ basic requirements.
  2. Develop an initial system. This is the first prototype.
  3. Test the prototype system; users will review it. In some case it is possible to use Computer Aided Software Engineering (CASE) tools.
  4. Revise the prototype in accord with the users’ review. Repeat stage 3 until the users agree on the final version.
  5. Finalise the product.

top of page

Advantages Of Prototyping

Disadvantages Of Prototyping

top of page

 

Rapid Application Development (RAD)

RAD is the process of fast systems development using a combination of different approaches. These include CASE tools, reusable code (especially with regard to Object Orientation (OO)), prototyping and so-called fourth generation tools (which include visual programming, e.g. Visual BASIC (VB), Delphi, Visual Age).

Joint Application Design (JAD)

Often associated with RAD is JAD. JAD involves getting technical IT staff (programmers, DBAs and Business Analysts) together with end-users, in order to determine the systems requirements in intensive workshop meetings. JAD sessions can significantly reduce the time required to identify the system requirements. Careful preparation and the setting of goals for these meetings greatly enhances their usefulness.

top of page

 

 

Software Re-Engineering

Where there is aging software that must be enhanced and upgraded. Often systems are developed with only limited documentation and minimal comments in the code. This means that the system may need to be reverse engineered in order to understand the system. Reverse engineering involves the deconstruction of the system, in order to understand it and the production of specifications for the current system. Once the system has been reverse engineered, forward engineering can take place, in which the specifications for the system are revised and the system re-coded in accord with the new specifications.

 

 

 

by

Matthew Martin, 2004

top of page