Software Engineering
Software Engineering
Software Engineering
This model has five phases: Requirements analysis and specification, design,
implementation, and unit testing, integration and system testing, and operation
and maintenance.
• The steps always follow in this order and do not overlap.
• The developer must complete every phase before the next phase begins.
• This model is named "Waterfall Model", because its diagrammatic
representation resembles a cascade of waterfalls.
• It is very simple but idealistic. Earlier this model was very popular but
nowadays it is not used.
• But it is very important because all the other software development life cycle
models are based on the classical waterfall model.
• That is the output of one phase will be the input to the next phase.
Waterfall model
When to use SDLC Waterfall Model?
Some Circumstances where the use of the Waterfall model is most suited are:
This phase will not over until all the requirements specified by the user are met. Once the
user is satisfied with the developed prototype, a final system is developed based on the
approved final prototype.
Step 6: Implement Product and Maintain
Once the final system is developed based on the final prototype, it is thoroughly
tested and deployed to production. The system undergoes routine maintenance for
minimizing downtime and prevent large-scale failures.
Advantage of Prototype Model
1. Reduce the risk of incorrect user requirement
2. Good where requirement are changing/uncommitted
3. Regular visible process aids management
4. Support early product marketing
5. Reduce Maintenance cost.
6. Errors can be detected much earlier as the system is made side by side.
Disadvantage of Prototype Model
7. An unstable/badly implemented prototype often becomes the final product.
8. Require extensive customer collaboration
• Costs customer money
• Needs committed customer
• Difficult to finish if customer withdraw
• May be too customer specific, no broad market
9. Difficult to know how long the project will last.
10.Easy to fall back into the code and fix without proper requirement analysis, design,
customer evaluation, and feedback.
11.Prototyping tools are expensive.
Umbrella activities in Software
Engineering
Software engineering is a collection of interconnected phases.
These steps are expressed or available in different ways in different software process
models.
Umbrella activities are a series of steps or procedures followed by a software development
team to maintain the progress, quality, changes, and risks of complete development tasks.
These steps of umbrella activities will evolve through the phases of the generic view of
software development.
The activities in the software development process are supplemented by many general
activities.
Generally, common activities apply to the entire software project and help the software
development team manage and track progress, quality, changes, and risks.
Umbrella activities consist of different tasks:
1. Software Project Tracking and Control
2. Formal Technical Reviews
3. Software Quality Assurance
4. SCM or Software configuration management
5. Document Preparation and Production
6. Re-usability Management
7. Measurement and Metrics
8. Risk Management
Software project tracking and control:
• This activity allows the software team to check the progress of software development.
• It must be accepted at an appropriate time after the completion of development, testing,
etc. The test results may need to reschedule the development time.
Software quality assurance: As its name suggest this defines and conducts the activities
required to ensure software quality. The quality of the software, such as user experience,
performance, workload flexibility, etc., must be tested
Measurement: This includes all measurements of all aspects of the software project. it can
be used in conjunction with all other frameworks and general operations.
Software configuration management: It manages the impact of changes throughout the
software development process.
Reusability management: Define the standards for the reuse of work products (including
software components), and develop mechanisms to implement reusable components.
Work product preparation and production: It encompasses the activities required to create
work products such as models, documents, logs, forms, and lists.
Spiral Model(Meta model)(model about model)
The spiral model was invented by Dr.Barry Boehm in 1988
It is called spiral as the same activities are repaeted for all the loops(sprial)
It contains all life cycle model
The main purpose of spiral mdel is to reduce the risk in project
It is suitabel for large & complex project
Project Evaluation
• Each cycle in the spiral is divided into four parts:
• Objective setting: Each cycle in the spiral starts with the identification
of purpose for that cycle, the various alternatives that are possible for
achieving the targets, and the constraints that exists.
Risk Assessment and reduction: The next phase in the cycle is to calculate these various
alternatives based on the goals and constraints. The focus of evaluation in this stage is located
on the risk perception for the project.
Development and validation: The next phase is to develop strategies that resolve uncertainties
and risks. This process may include activities such as benchmarking, simulation, and
prototyping.
Planning: Finally, the next step is planned. The project is reviewed, and a choice made whether
to continue with a further period of the spiral. If it is determined to keep, plans are drawn up
for the next step of the project.
The risk-driven feature of the spiral model allows it to accommodate any mixture of a
specification-oriented, prototype-oriented, simulation-oriented, or another type of approach.
An essential element of the model is that each period of the spiral is completed by a review
that includes all the products developed during that cycle, including plans for the next cycle.
The spiral model works for development as well as enhancement projects.
When to use Spiral Model?
When deliverance is required to be frequent.
When the project is large
When requirements are unclear and complex
When changes may require at any time
Large and high budget projects
Advantages
High amount of risk analysis
Useful for large and mission-critical projects.
Disadvantages
Can be a costly model to use.
Risk analysis needed highly particular expertise
Doesn't work well for smaller projects.
Incremental Model
Incremental Model is a process of software development where requirements divided into
multiple standalone modules of the software development cycle.
In this model, each module goes through the requirements, design, implementation and
testing phases.
Every subsequent release of the module adds function to the previous release.
The process continues until the complete system achieved.
The various phases of incremental model are as follows:
1. Requirement analysis:
In the first phase of the incremental model, the product analysis expertise identifies the
requirements.
2. Design & Development: In this phase of the Incremental model of SDLC, the design of the
system functionality and the development method are finished with success.
3. Testing: In the testing phase, the various methods are used to test the behavior of each
task.
4. Implementation: After completion of this phase, the number of the product working is
enhanced and upgraded up to the final system product
Advantage of Incremental Model
• Errors are easy to be recognized.
• Easier to test and debug
• More flexible.
• Simple to manage risk because it handled during its iteration.
• The Client gets important functionality early.
Disadvantage of Incremental Model
• Need for good planning
• Total Cost is high.
• Well defined module interfaces are needed.
RAD (Rapid Application Development) Model
If the requirements are well understood and described, and the project scope is a
constraint,
the RAD process enables a development team to create a fully functional system within
a concise time period.
When to use RAD Model?
When the system should need to create the project that modularizes in a short span time (2-3
months).
When the requirements are well-known.
When the technical risk is limited.
When there's a necessity to make a system, which modularized in 2-3 months of period.
It should be used only if the budget allows the use of automatic code generating tools.
Advantage of RAD Model
This model is flexible for change.
In this model, changes are adoptable.
Each phase in RAD brings highest priority functionality to the customer.
It reduced development time.
It increases the reusability of features.
Disadvantage of RAD Model
It required highly skilled designers.
All application is not compatible with RAD.
For smaller projects, we cannot use the RAD model.
On the high technical risk, it's not suitable.