Chapter 2 of software engineering
Chapter 2 of software engineering
Sometimes called the “classic life cycle” or the “waterfall model”, the linear sequential
model suggests a systematic, sequential approach to software development that begins at
the system level and progresses through analysis, design coding, testing, and
maintenance. It is the simplest and widely used process model for software development.
Here the phases involved in the software development are organized in a linear order.
Model after the conventional engineering cycle, the linear sequential model
encompasses the following activities.
Because software is always part of a larger system (or business), work begins by
establishing requirements for all system elements and then allocating some subset of these
requirements to software. This system view is essential when software must interface with
other elements such as hardware, people, and databases. This provides Top-Level design
and analysis.
2) Software requirement analysis:
3) Design: Software design is actually a multi-step process that focuses on data structure,
software architecture, procedural detail and interface characterization. The design process
translates requirements into a representation of the software that can be assessed for
quality before code generation begins. The design documents must e prepared and stored
as a part of software configuration.
4) Code Generation: The code generation step translates the design into a machine
readable form. If design is performed in a detailed manner, code generation can be
accomplished mechanistically.
5) Testing: Once code has been generated, program testing begins. The testing process
focuses on the logical internals of the software, assuring that all statements have been
tested, and on the functional externals – that is, conducting test to uncover errors and
ensure that defined input will produce actual results that agree with required results.
Disadvantages:
Real projects rarely follow the sequential flow that the model proposes.
Changes can cause confusion as the project team proceeds.
The customer must have patience. A working version of program(s) will not be
available until late in the project time span.
Development is often delayed unnecessarily. The linear nature of the classic life
cycle leads to “Blocking state” in which some project team members must wait
for other members of the team to complete dependant tasks.
The time spent waiting can exceed the time spent on productive work.
In incremental model the whole requirement is divided into various builds. Multiple
development cycles take place here, making the life cycle a “multi-waterfall” cycle.
Cycles are divided up into smaller, more easily managed modules.
The incremental build model is a method of software development where the product is
designed, implemented and tested incrementally until the product is finished. It involves
both development and maintenance. The product is defined as finished when it satisfies all
of its requirements.
In this model, each module passes through the requirements, design, implementation and
testing phases. A working version of software is produced during the first module, so you
have working software early on during the software life cycle. Each subsequent release of
the module adds function to the previous release.
example:
Then he started building it and in the first iteration the first module of the application or
product is totally ready and can be demoed to the customers.
Likewise in the second iteration the other module is ready and integrated with the first
module. Similarly, in the third iteration the whole product is ready and integrated. Hence,
the product got ready step by step.
Generates working software quickly and early during the software life cycle.
This model is more flexible – less costly to change scope and requirements.
It is easier to test and debug during a smaller iteration.
In this model customer can respond to each built.
Lowers initial delivery cost.
Easier to manage risk because risky pieces are identified and handled during it‟d
iteration.
This model can be used when the requirements of the complete system are
clearly defined and understood.
Major requirements must be defined; however, some details can evolve with time.
There is a need to get a product to the market early.
A new technology is being used
Resources with needed skill set are not available
There are some high risk features and goals.
Difference Between Prototype and Incremental Model
The spiral model is similar to the incremental model, with more emphasis placed on risk
analysis. The spiral model has four phases: Planning, Risk Analysis, Engineering and
Evaluation. A software project repeatedly passes through these phases in iterations (called
Spirals in this model). The baseline spiral, starting in the planning phase, requirements are
gathered and risk is assessed. Each subsequent spirals builds on the baseline spiral. Its one
of the software development
models like Waterfall, prototype, Incremental.
1) Planning Phase:
Requirements are gathered during the planning phase. Requirements like „BRS‟ that is
„Bussiness Requirement Specifications‟ and „SRS‟ that is „System Requirement
specifications‟.
2) Risk Analysis:
In the risk analysis phase, a process is undertaken to identify risk and alternate solutions. A
prototype is produced at the end of the risk analysis phase. If any risk is found during the
risk analysis then alternate solutions are suggested and implemented.
3) Engineering Phase:
In this phase software is developed, along with testing at the end of the phase.
Hence in this phase the development and testing is done.
4) Evaluation phase:
This phase allows the customer to evaluate the output of the project to date before the
project continues to the next spiral.
Diagram of Spiral model: