4. Introduction
Importance of computer in our life
Computer has become essential in today's life as it is used in
many fields of life
Computer is considered a time- saving device
5. Introduction
A software development process also known as a Software Development Life Cycle
Subset of System Development Life Cycle.
Software Engineering (SE) is the application of a systematic, disciplined, approach
to the development, operation, and maintenance of software .
6. Software Process Models
A software process model is an abstract representation of a process. It presents a
description of a process from some particular viewpoint as:
1. Specification.
2. Design.
3. Validation.
4. Evolution.
General Software Process Models are
Waterfall model
Prototype model
Iterative model
Spiral model
7. Waterfall model
Classical model of software engineering
Sequential development approach
Basic Principles
Project is divided into sequential phases, with some overlap and splash
back acceptable between phases.
Stretched control is maintained over the life of the project via extensive
written documentation, formal reviews, and approval/signoff by the user
and information technology management occurring at the end of most
phases before beginning the next phase.
8. Waterfall model
When to use the waterfall model:
Requirements are very well known, clear and fixed.
Product definition is stable.
Technology is understood.
There are no ambiguous requirements
Sufficient resources with required knowledge are available freely
The project is short.
9. Waterfall model
The following list details the steps for using the waterfall model:
System requirements
Establishes the components for building the system
Include hardware requirements, software tools, and other necessary components.
Software requirements
Requirements analysis includes determining interaction needed with other
applications and databases, performance requirements, user interface requirements,
and so on.
Architectural design
Defines the major components and the interaction of those components, but it does
not define the structure of each component.
10. Waterfall model
Detailed design
Defines the specification of each component in detail
Coding
Implements the detailed design specification
Testing
Determines whether the software meets the specified requirements and
finds any errors present in the code
Maintenance
Addresses problems and enhancement requests after the software
releases
11. Advantages
Easy to understand and implement.
Widely used and known (in theory!).
Reinforces good habits: define-
before- design, design-before-code
Works well on mature products and
weak teams.
Disadvantages
Idealized, doesn’t match reality well.
Software is delivered late in project,
delays discovery of serious errors.
Difficult to integrate risk
management.
Difficult and expensive to make
changes.
12. Iterative Waterfall Model
Basic Principles
Iterative model, the project is divided into small parts
Allows the development team to make obvious results earlier in the
process and obtain valuable feedback from system users
Each iteration is actually a mini-Waterfall process with the feedback from
one phase providing critical
Information for the design of the next phase
13. When to use iterative model:
Requirements of the complete system are clearly defined and understood.
When the project is big.
Major requirements must be defined; however, some details can evolve with time.
Iterative Waterfall Model
14. Advantages
Much better model of the software
process
Allows feedback to proceeding stages
Can be used where the requirements
are not well understood
Disadvantages
Not easy to manage this model
No clear milestones in the
development process
No stage is really finished
15. Prototyping Model
Basic Principles
More traditional development methodology
User is involved throughout the development process
Increases the likelihood of user acceptance of the final implementation
16. Prototyping Model
When to use Prototype model:
Used when the desired system needs to have a lot of interaction with the end
users
Typically, online systems, web interfaces have a very high amount of interaction
with end users, are best suited for Prototype model
Prototyping ensures that the end users constantly work with the system and
provide a feedback which is incorporated in the prototype to result in a useable
system.
17. Advantages
Gives users an idea of what the final
system looks like
Encourages active participation
among users and producer
Enables a higher output for user
Cost effective (Development costs
reduced)
Increases system development speed
Disadvantages
Possibility of causing systems to be
left unfinished
Possibility of implementing systems
before they are ready
Producer might produce a system
inadequate for overall organization
needs
Often lack flexibility.
Not suitable for large applications
Project management difficulties.
18. Spiral Model
Combining elements of both design and prototyping-in-stages
An effort to combine advantages of top-down and bottom up
concepts
Basic Principles
Focus is on risk assessment
Minimizing project risk by breaking a project into smaller segments
Providing more relieve-of-change during the development process
Each cycle involves a progression through the same sequence of
steps
Begin each cycle with an identification of stakeholders and their win
conditions, and end each cycle with review and assurance
19. Spiral Model
When to use Spiral model:
When costs and risk evaluation is important
For medium to high-risk projects
Long-term project commitment
Users are unsure of their needs
Requirements are complex
New product line
20. Advantages
High amount of risk analysis
Good for large and mission-critical
projects
Software is produced early in the
software life cycle
Disadvantages
Can be a costly model to use
Risk analysis requires highly specific
expertise
Project’s success is highly
dependent on the risk analysis phase
Doesn’t work well for smaller
projects
21. Comparative Analysis of Four Models
Features Water fall Iterative Prototyping Spiral
Requirement
Specification
Beginning Beginning Frequently
Changed
Beginning
Understanding
Requirements Well
Understood Not
Well
Understood Not
Well
understood Well Understood
Cost Low Low High Expensive
Availability of reusable
component
No yes yes yes
Complexity of system Simple Simple complex complex
Risk Analysis Only at beginning No Risk Analysis No Risk Analysis yes
User Involvement in all
phases of SDLC
Only at beginning Intermediate High High
Guarantee of Success Less High Good High
Overlapping Phases No No Yes Yes
Cost Control Yes No No yes
22. Conclusion
Water Fall Model is commonly Used for Software Process Modeling
Iterative water fall model overcome the drawback of original waterfall
model. It allow feedback to proceeding stage
Prototype model used to develop online systems for transaction
processing
Spiral model is used for development of large, complicated and expensive
projects like scientific Projects
Each model has advantages and disadvantages for the development of
systems , so each model tries to eliminate the disadvantages of the
previous model