29-12-2012, 06:42 PM
Software Engineering
Software Engineering.pdf (Size: 243.23 KB / Downloads: 27)
Software Crisis:
Software crisis is characterized by inability to develop the desired Software Project
because of such problems:
· Projects running over-budget.
· Projects running over-time.
· Software is inefficient.
· Software is of low quality.
· Software does not meet requirements.
· Project is unmanageable/ Code difficult to maintain.
The roots of the software crisis are complexity, expectations, and change. To avoid
software crisis, software engineering principles and process are applied strictly.
Waterfall Model:
The waterfall model, sometimes called the classic life cycle model suggests a systematic,
sequential approach to software development. This model is named “Waterfall Model”,
because its diagrammatic representation resembles waterfall.
Requirement analysis and specification phase:
The goal of this phase is to understand the exact requirements of the customer and to
document them properly. This activity is usually executed together with the customer, as
the goal is to document all functions, performance and interfacing requirements for the
software. This requirement describe the “what” of a system, not the “how”. This phase
produces a large document, written in a natural language, contains a description of what
the system will do without describing how it will be done. The resultant document is
known as software requirement specification (SRS) document. This SRS document may
act as contract between the developer and the customer.
Design phase:
The goal of this phase is to transform the requirements specifications into a structure that
is suitable for implementation in some programming language. Design phase focuses on
four distinct attributes of a program: software architecture, data structure, procedural
detail, interface representations. This work is documented and known as software design
description (SDD) document. The information contained in the SDD should be sufficient
to begin the Implementation phase.
Coding and unit testing phase:
The design must be translated to into a machine-readable form. Use of appropriate
programming language is important activity in this phase. If SDD is complete, the coding
phase proceeds smoothly, because all information needed by the software developers is
contained in SDD. After coding individual modules are tested and this testing called unit
testing. Testing is an activity in which the error in the program are identified and
removed. During testing it is necessary to test the given set of input whether producing
correct output or not.
Integration and System Testing:
In this phase, all the modules of the software are integrated and System testing takes
place. System testing involves the testing of the entire system, because through this it can
be found that the interfaces between the different modules are also functionally correct or
not.
Maintenance Phase:
When software is installed on the customer’s site, then Maintenance phase starts. The
phase includes the following activities: error correction, software capabilities
enhancement, small modifications in the software with time.