Unit 1sead
Unit 1sead
[SEAD]
Software Development Life Cycle[SDLC]
Software Engineering Process Model
• Classical Life Cycle Model [Waterfall]
• Prototyping Model
• Evolutionary Model [ Spiral]
• Incremental Model
• Agile Development Model
• RAD
• Iterative Model
Classical Life Cycle Model [Waterfall]
Highlights
• First ever introduced model in 1970
• Also called Linear Sequential model
• Useful for the project where requirements are
constant
• Recommended for the small projects
• Where tools and technologies are consistent
and not changing
• Where resources are fixed
Phases in Waterfall Model
• Requirement gathering: Outcome of this phase is software requirement
specification documents
• Design phase: SRS is converted in to High level and low level design,
overall software architecture is defined. Software design documents (SDD)
is prepared
• Implementation and Coding: As per the SDD coding is carried out in this
phase
• Testing: Unit test, Integration test, System test, Acceptance test is carried
out
Limitations:
• Not suitable for the complex projects as risk factor is high
• No visibility to the customers
• Requirements are static no scope of change
• No backtracking is possible
• Testing is done at later stage
Prototype Model
Advantages & Limitations
Advantages:
• Reduce the risk of incorrect user requirement
• Good where requirement are changing / uncommitted
• High visibility
• Support early product marketing
Limitations:
• An unstable/badly implemented prototype often becomes the
final product
• Difficult to know how long the project will last.
• Prototyping tools are expensive.
• Special tools & techniques are required to build a prototype.
• It is a time-consuming process.
Iterative Model
Highlights
• In this Model, some of the software specifications and
develop the first version of the software.
• This model describes a strategy for software process improvement that should
be followed by moving through 5 different levels.
• Each level of maturity shows a process capability level. All the levels except
level-1 are further described by Key Process Areas (KPA’s)
Level’s of CMM
Key Process Area (KPA)
Level-1: Initial
• No KPA’s defined.
• Processes followed are Ad-hoc and immature and are not well
defined.
• Unstable environment for software development.
• No basis for predicting product quality, time for completion, etc.
Level-2: Repeatable
- Project planning
- Software Configuration Management
- Requirement Management
- Subcontract Management
- Software quality Assurance
Key Process Area
Level-3: Defined
- Peer review
- Intergroup coordination
- Organization process definition
- Organization process focus
- Training program
Level-4: Managed
- Software Quality Management
- Quantitative Management
Level-5: Optimizing
- Process Change Management
- Technology Change Management
- Defect Prevention
Question Bank
1. Describe the significance of software engineering. Is it required ? Justify your
answer
2. Which of the software engineering paradigms discussed here do you think
would be most effective? Why?
3. Provide five examples of software development projects that would be
amenable
to prototyping. Name two or three applications that would be more difficult to
prototype
4. The SEI’s capability maturity model is an evolving document. Do some research
and determine if any new KPAs have been added since the publication of this book
5. Discuss software developers and customers myths and reality
6. As you move outward along the process flow path of the spiral model, what can
you say about the software that is being developed or maintained?
7. Why linear sequential models are not a preferable method of software
development now a days? Discuss your thoughts
8. Now a days agile model is the most preferable method of software
development, do you agree ? Justify your opinion
9. Which is more important—the product or the process?
10. Suppose you started a business and require a product to run your business,