Se 1
Se 1
UNIT 1
“The major cause of the software crisis is] that the machines have
become several orders of magnitude more powerful! To put it
quite bluntly: as long as there were no machines, programming
was no problem at all; when we had a few weak computers,
programming became a mild problem, and now we have gigantic
computers, programming has become an equally gigantic
problem.” – Edsger Dijkstra
Software Evolution is a term which refers to the process of
developing software initially, then timely updating it for various
reasons, i.e., to add new features or to remove obsolete
functionalities etc. The evolution process includes fundamental
activities of change analysis, release planning, system
implementation and releasing a system to customers.
2. Transitional:
When the software is moved from one platform to another, the
factors deciding the software quality:
Portability
Interoperability
Reusability
Adaptability
3. Maintenance:
In this categories all factors are included that describes about
how well a software has the capabilities to maintain itself in the
ever changing environment:
Modularity
Maintainability
Flexibility
Scalability
Code and fix model are another level ahead of the Big-Bang
model. Identifies the product to be tested before release.
The testing team detects bugs and sends software to fix it.
Bringing in the repair editors complete the installation of
certain codes and send the software again for testing. This
process is repeated until bugs are found in it, at an acceptable
level.
Advantages of Code-and-fix model
The start and end points for each phase is fixed, which makes it
easy to cover progress.
The release date for the complete product, as well as its final
cost, can be determined before development.
It gives easy to control and clarity for the customer due to a strict
reporting system.
Prototype Model
The model of software development where after each iteration
prototype is shown to the customer for evaluation.
Quick Decision
Build a Prototype
User Evaluation
Prototype Refinement
Engineer Product
Costly
Customer committed
It is a time-consuming process.
Spiral Model
The spiral model, initially proposed by Boehm, is an
evolutionary software process model that couples the
iterative feature of prototyping with the controlled and
systematic aspects of the linear sequential model. It
implements the potential for rapid development of new
versions of the software. Using the spiral model, the
software is developed in a series of incremental releases.
During the early iterations, the additional release may be a
paper model or prototype. During later iterations, more and
more complete versions of the engineered system are
produced.
Advantages
Disadvantages
Software Reuse
1. Business Modelling
2. Data Modelling
3. Process Modelling
4. Application Generation
Requirements gathering
Design the requirements
Construction/ iteration
Testing/ Quality assurance
Deployment
Feedback