Oose unit-1
Oose unit-1
OOSE 1
SOFTWARE CRISIS:
So昀琀ware engineering appears to be among the few op琀椀ons available to tackle the
present so昀琀ware crisis.
So昀琀ware Crisis is a term used in computer science for the di昀케culty of wri琀椀ng
useful and e昀케cient computer programs in the required 琀椀me.
If we will use the same workforce, same methods, and same tools a昀琀er the fast
increase in so昀琀ware demand, so昀琀ware complexity, and so昀琀ware challenges, then
there arise some problems like so昀琀ware budget problems, so昀琀ware e昀케ciency
problems, so昀琀ware quality problems, so昀琀ware management, and delivery
problem, etc. This condi琀椀on is called a So昀琀ware Crisis.
Let us explain the present so昀琀ware crisis in simple words, by considering the
following.
The expenses that organiza琀椀ons all around the world are incurring on so昀琀ware
purchases compared to those on hardware purchases have been showing a worrying
trend over the years (Fig 1.6)
Organiza琀椀ons are spending larger and larger por琀椀ons of their budget on so昀琀ware
not only are the so昀琀ware products turning out to be more expensive than hardware,
but also presented a lot of other problems to the customers such as:
so昀琀ware products are di昀케cult to alter,
debug, and enhance;
use resources non op琀椀mally;
o昀琀en fail to meet the user requirements;
are far from being reliable;
frequently crash;
and are o昀琀en delivered late.
Due to ine昀昀ec琀椀ve development of the product characterized by ine昀케cient resource
usage and 琀椀me and cost over-runs. Other factors are larger problem sizes, lack of
adequate training in so昀琀ware engineering, increasing skill shortage, and low
produc琀椀vity Improvements
S/W crisis from programmer point of view:-
i)Problem of compa琀椀bility.
ii)Problem of Portability.
iii)Proclaiming documenta琀椀on.
iv)Problem of pirated s/w.
v)Problem in co-ordina琀椀on of work of di昀昀erent people.
vi)Problem of proper maintenance.
S/W crisis from user point of view:-
i)s/w cost is very high.
ii)Price of h/w grows down.
iii)Lack of development speci昀椀ca琀椀on.
iv)Problem of di昀昀erent s/w versions.
v)Problem of bugs or errors.
So昀琀ware Engineering :
It is the process of designing, developing, tes琀椀ng, and maintaining so昀琀ware. It is a
systema琀椀c and disciplined approach to so昀琀ware development that aims to create
n so昀琀ware development life cycle, various models are designed and de昀椀ned. These
models are called as So昀琀ware Development Process Models.
On the basis of project mo琀椀ve, the so昀琀ware development process model is selected
for development.
8) Itera琀椀ve model
9) Spiral model
10) Prototype model
Big-Bang Model
Code and fix model is one step ahead from the Big-Bang model. It iden琀椀昀椀es the
product that must be tested before release.
The tes琀椀ng team 昀椀nd the bugs then sends the so昀琀ware back for 昀椀xing. To deliver
the 昀椀xes developers complete some coding and send the so昀琀ware again for tes琀椀ng.
This process is repeated 琀椀ll the bugs are found in it, at an acceptable level.
The waterfall model is the classic model or oldest model and is known as mother
of all the model. It is widely used in government projects and many vital projects in
company.
The waterfall model is also called as 'Linear sequen琀椀al model' or 'Classic life cycle
model'.
In this model, each phase is executed completely before the beginning of the next
phase. Hence the phases do not overlap in waterfall model.
This model is used for small projects. In this model, feedback is taken a昀琀er each
phase to ensure that the project is on the right path. Tes琀椀ng part starts only a昀琀er
the development is completed.
Following are the phases in waterfall model:
i) Communica琀椀on The so昀琀ware development starts with the communica琀椀on between
customer and developer.
ii) Planning It consists of complete es琀椀ma琀椀on, scheduling for project development.
iii) Modelling
Modelling consists of complete requirement analysis and the design of the project
i.e algorithm, 昀氀owchart etc.
The algorithm is the step-by-step solu琀椀on of the problem and the 昀氀ow chart shows
a complete 昀氀ow diagram of a program.
iv) Construc琀椀on
Construc琀椀on consists of code genera琀椀on and the tes琀椀ng part.
Coding part implements the design details using an appropriate programming
language.
Tes琀椀ng is to check whether the 昀氀ow of coding is correct or not.
Tes琀椀ng also checks that the program provides desired output.
v) Deployment
Deployment step consists of delivering the product to the customer and taking
feedback from them.
If the customer wants some correc琀椀ons or demands for the addi琀椀onal capabili琀椀es,
then the change is required for improvement in the quality of the so昀琀ware.
Advantages of Waterfall model
The waterfall model is simple and easy to understand, to implement, and use.
All the requirements are known at the beginning of the project, hence it is easy to
manage.
It avoids overlapping of phases because each phase is completed at once.
This model works for small projects where the requirements are easily understood.
This model is preferred for those projects where the quality is more important as
compared to the cost of the project.
Disadvantages of the Waterfall model
This model is not good for complex and object oriented projects.
In this model, the changes are not permi琀琀ed so it is not 昀椀t for moderate to high
risk changes in project.
It is a poor model for long dura琀椀on projects.
The problems with this model are uncovered, un琀椀l the so昀琀ware tes琀椀ng. The
amount of risk is high.
4) V Model
V model is known as Veri昀椀ca琀椀on and Valida琀椀on model.
This model is an extension of the waterfall model.
In the life cycle of V-shaped model, processes are executed sequen琀椀ally.
Every phase completes its execu琀椀on before the execu琀椀on of next phase begins.
Following are the phases of V-model:
i) Requirements
The requirements of product are understood from the customers point of vie w to
know their exact requirement and expecta琀椀on. The acceptance test design planning
The incremental model combines the elements of waterfall model and they are
applied in an itera琀椀ve fashion.
The 昀椀rst increment in this model is generally a core product.
Each increment builds the product and submits it to the customer for sugges琀椀ng
any modi昀椀ca琀椀ons.
The next increment implements the customer's sugges琀椀ons and add addi琀椀onal
requirements in the previous increment.
This process is repeated un琀椀l the product is completed. For example, the word-
processing so昀琀ware is developed using the incremental model.
Following are the phases of Incremental model:
i)Communica琀椀on The so昀琀ware development starts with the communica琀椀on between
customer and developer.
ii)Planning It consists of complete es琀椀ma琀椀on, scheduling for project development.
iii) Modeling
Modeling consists of complete requirement analysis and the design of the project
like algorithm, 昀氀owchart etc. The algorithm is a step-by-step solu琀椀on of the problem
and the 昀氀ow chart shows a complete 昀氀ow diagram of a program.
iv) Construc琀椀on
Construc琀椀on consists of code genera琀椀on and the tes琀椀ng part.
Coding part implements the design details using an appropriate programming
language.
Tes琀椀ng is to check whether the 昀氀ow of coding is correct or not.
Tes琀椀ng also checks that the program provides desired output.
v) Deployment
Deployment step consists of delivering the product to the customer and taking
feedback from them.
If the customer wants some correc琀椀ons or demands for the addi琀椀onal
capabili琀椀es, then the change is required for improvement in the quality of the so昀琀ware .
Advantages of Incremental model
This model is 昀氀exible because the cost of development is low and ini琀椀al product
delivery is faster.
It is easier to test and debug in the smaller itera琀椀on.
The working so昀琀ware is generated quickly in the so昀琀ware life cycle.
The customers can respond to its func琀椀onali琀椀es a昀琀er every increment.
Disadvantages of the incremental model
The cost of the 昀椀nal product may cross the cost ini琀椀ally es琀椀mated.
This model requires a very clear and complete planning.
The planning of design is required before the whole system is broken into smaller
increments.
The demands of customer for the addi琀椀onal func琀椀onali琀椀es a昀琀er every increment
causes problem in the system architecture.
6) RAD Model
1) Business Modelling
Business modelling consists of the 昀氀ow of informa琀椀on between various func琀椀ons
in the project. For example, what type of informa琀椀on is produced by every func琀椀on and
which are the func琀椀ons to handle that informa琀椀on.
It is necessary to perform complete business analysis to get the essen琀椀al business
informa琀椀on.
2) Data modelling
The informa琀椀on in the business modelling phase is re昀椀ned into the set of
objects and it is essen琀椀al for the business.
The a琀琀ributes of each object are iden琀椀昀椀ed and de昀椀ned the rela琀椀onship
between objects.
3) Process modelling
The data objects de昀椀ned in the data modelling phase are changed to ful昀椀l the
informa琀椀on 昀氀ow to implement the business model.
The itera琀椀ons in agile process are shorter in dura琀椀on which can vary from 2
weeks to 2 months.
Advantages of Agile model
Customers are sa琀椀s昀椀ed because of quick and con琀椀nuous delivery of useful
so昀琀ware.
Regular de livery of working so昀琀ware.
Face to face interac琀椀on between the customers, developers and testers and it is
best form of communica琀椀on.
Even the late changes in the requirement can be incorporated in the so昀琀ware.
Disadvantages of Agile model
It is totally depends on customer interac琀椀on. If the customer is not clear with
their requirements, the development team can go in the wrong direc琀椀on
. Documenta琀椀on is less, so the transfer of technology to the new team members
is challenging.
8) Itera琀椀ve Model
is ready.
Following are the steps involved in spiral model:
Phases of Spiral model are:
1) Planning
2) Risk Analysis
3) Engineering
4) Evalua琀椀on
1) Planning