Phases of Software Project : Classical Model
The phases of a software project
Software projects are divided into individual phases. These phases collectively and their chronological sequence are termed the software life cycle.
Software life cycle: a time span in which a software product is developed and used, extending to its retirement.
The cyclical nature of the model expresses the fact that the phases can be carried out repeatedly in the development of a software product.
The classical sequential software life-cycle model
Requirements analysis and planning phase
Goal:
> Determining and documenting:
> Which steps need to be carried out,
> The nature of their mutual effects,
> Which parts are to be automated, and
> Which recourses are available for the realization of the project.
Important activities:
> Completing the requirements analysis,
> Delimiting the problem domain,
> Roughly sketching the components of the target system,
> Making an initial estimate of the scope and the economic feasibility of the planned project, and
> Creating a rough project schedule.
Products:
> User requirements,
> Project contract, and
> Rough project schedule.
System specification phase
Goal:
> a contract between the client and the software producer (precisely specifies what the target software system must do and the premises for its realization.)
Important activities:
> Specifying the system,
> Compiling the requirements definition,
> Establishing an exact project schedule,
> Validating the system specification, and
> Justifying the economic feasibility of the project.
Products:
> Requirements definition, and
> Exact project schedule.
System and components design
Goal:
> Determining which system components will cover which requirements in the system specification, and
> How these system components will work together.
Important activities:
> Designing system architecture,
> Designing the underlying logical data model,
> Designing the algorithmic structure of the system components, and
> Validating the system architecture and the algorithms to realize the individual system components.
Products:
> Description of the logical data model,
> Description of the system architecture,
> Description of the algorithmic structure of the system components, and
> Documentation of the design decisions.
Implementation and component test
Goal:
> Transforming the products of the design phase into a form that is executable on a computer.
Important activities:
> Refining the algorithms for the individual components,
> Transferring the algorithms into a programming language (coding),
> Translating the logical data model into a physical one,
> Compiling and checking the syntactical correctness of the algorithm, and
> Testing, and syntactically and semantically correcting erroneous system components.
Products:
> Program code of the system components,
> Logs of the component tests, and
> Physical data model.
System test
Goal:
> Testing the mutual effects of system components under conditions close to reality,
> Detecting as many errors as possible in the software system, and
> Assuring that the system implementation fulfills the system specification.
Operation and maintenance
Task of software maintenance:
> Correcting errors that are detected during actual operation, and
> Carrying out system modifications and extensions.
This is normally the longest phase of the software life cycle.
Two important additional aspects:
> Documentation, and
> Quality assurance.
During the development phases the documentation should enable communication among the persons involved in the development; upon completion of the development phases it supports the utilization and maintenance of the software product.
Quality assurance encompasses analytical, design and organizational measures for quality planning and for fulfilling quality criteria such as correctness, reliability, user friendliness, maintainability, efficiency and portability.
Posted in Computer Science, Information Technology, Software Engineering, Software Engineering |
