History

 

7.1.    The Software Development Process

The software process is a set of activities associated with production of a software product. For the effective control of the software process is essential to have a phased development strategy. That is it consists of number of stages that produce one or more documents and program codes.

The software development process model is also called SDLC – Software Development Life Cycle, as the process is repeated when software need to be changed as long as the software is in use.

There are different software process models used in the industry and the choice of the model should be based on the product and project needs. Some software process models are:

1         Waterfall model

2         Evolutionary development model

3         Rapid Application Development (RAD)

4         Dynamic Systems Development model (DSDM)

1.1.1.       Waterfall Model

This first explicit model for software development process was derived from other engineering processes. It offered a means of making the development process more visible. Because of the cascade from one phase to another, this model is known as the “Waterfall Model”.

The principle stages of the model map onto fundamental development activities:

1.                   Requirements Analysis and Definition

The system’s services, limitations (constraints) and goals are established by consultation with system users. They are then defined in a manner, which is understandable by both users and development.

2.                   System and software design

The system design process partitions the requirements to either hardware or software systems. It establishes overall system architecture. Software design involves representing the software system function in a form that may be transformed into one or more executable programs.

3.                   Implementation and unit testing

During this stage, the software design is realized as a set of programs or program units. Unit testing involves verifying that each unit meets its specification.

4.                   Integration and system testing

Individual program units or programs are integrated and tested as a complete system to ensure that software requirements have been met. After testing, software system is delivered to the consumer.

5.                   Operations and maintenance

Normally (although not necessarily) this is the longest life cycle phase. The system is installed and put into practical use. Maintenance involves correcting errors which are onto discovered in earlier stages of the life cycle, improving the implementation of system units and adding the systems requirements as new requirements are discovered.

 

 

 

 

 

 

 

 

 

 

 


1.1.2.      Evolutionary prototyping

This ‘approach interleaves the activities of specification, development and validation. An initial system is rapidly developed from abstract specification. This is then refined with customer input to produce system which satisfies the customer’s needs.

Evolutionary development is based on the idea of developing an initial implementation, exposing this to user comment and refining this through many versions until an adequate system has been developed. Rather than having separate specification, development and validation activities, these are carried out concurrently with rapid feedback across these activities.

There are two types of evolutionary development:

Exploratory development- where the objective of the process is to work with the customer to explore their requirements and deliver a final system. The development starts with the parts of the system which are understood. The system evolves by adding new features as they are proposed by the customer.

Throw-away prototyping - where the objective of the evolutionary development process is to understand the customer’s requirements and hence develop a better requirements definition for the system. The prototype concentrates on experimenting with those parts of the customer requirements which are poorly understood.

7.2.    Program Designing

1.2.1.      Amateur vs. Professional programming

Writing programs is

No comments:

Post a Comment