![Page 1: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/1.jpg)
CS223: Software EngineeringLecture 4: Software Development
Models
![Page 2: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/2.jpg)
Recap
• Software process
• Need of software process
• ETVX model
• Roles and responsibilities
![Page 3: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/3.jpg)
Objective
• After the end of the class students should be able to
o State desired properties of software processes
o Explain different software development model
Waterfall model
Prototype model
o Use a development model in practice
![Page 4: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/4.jpg)
Desired Process Properties
• Provide high quality and productivity (Q & P)
• Support testability as testing is the most expensive task
o Testing can consume 30 to 50% of total development effort
• Support maintainability
o Maintenance can be more expensive than development;
o Over life up to 80% of total cost
• Remove defects early
o As cost of removing defects increases with latency
![Page 5: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/5.jpg)
High Q&P: Early Defect Removal…
• Cost of a defect increases with latency
• Fixing a defect in operation can cost a 100 times the cost of fixing
it in requirements itself
• For high Q&P, the process must support early defect removal
• That is why there is a V in ETVX, and quality control tasks in the
software process
![Page 6: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/6.jpg)
Early Defect Removal…
![Page 7: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/7.jpg)
Desired Properties…
• Predictability and repeatability
o Process should repeat its performance when used on
different projects
Outcome of using a process should be predictable
o Past performance can be used to predict future performance
o Without predictability, cannot estimate, or say anything about
quality or productivity
![Page 8: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/8.jpg)
Predictability…
• Predictable process is said to be under statistical control
o Repeatedly using the process produces similar results
o Results – properties of interest like quality, productivity, …
• To consistently develop software with high Q&P
o Process must be in control
![Page 9: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/9.jpg)
Predictability…Expected value of the property
Allowable error bound
![Page 10: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/10.jpg)
Support Change
• Software changes for various reasons
• Requirements change is a key reason
• Requirement changes cannot be wished away or treated as
“bad”
• They must be accommodated in the process for software
development
![Page 11: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/11.jpg)
Software Project
• Project
o To build a software system within cost
o Schedule and with high quality which satisfies the customer
• Project goals – high Q and high P
• Suitable process needed to reach goals
• For a project
o The process to be followed is specified during planning
![Page 12: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/12.jpg)
Projects Process
• If a project chooses a model
o It will generally tailor it to suit the project
• This produces the spec for the projects process
• This process can then be followed in the project
• Process is what is actually executed
• Process specification is plan about what should be executed
• Process model is a generic process specification
• Many models have been proposed for the development process
![Page 13: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/13.jpg)
Development Process
• A set of phases and each phase being a sequence of steps
• Sequence of steps for a phase - methodologies for that phase.
• Why have phases
o To employ divide and conquer
o Each phase handles a different part of the problem
o Helps in continuous validation
![Page 14: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/14.jpg)
Development Process
• Commonly has these activities:
o Requirements analysis, architecture,
o Design, coding,
o Testing, delivery
• Different models perform them in different manner
![Page 15: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/15.jpg)
Generic software process models
• The waterfall model
o Separate and distinct phases of specification and development.
• Evolutionary development
o Specification, development and validation are interleaved.
• Component-based software engineering
o The system is assembled from existing components.
![Page 16: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/16.jpg)
Waterfall Model
• Linear sequence of stages/ phases
• Requirements – HLD – DD – Code – Test – Deploy
• A phase starts only when the previous has completed
o No feedback
• The phases partition the project
o Each addressing a separate concern
![Page 17: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/17.jpg)
Flow
of W
ater
fall
Mod
el
![Page 18: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/18.jpg)
Properties of Waterfall Model
• Linear ordering implies each phase should have some output
• The output must be validated/certified
• Outputs of earlier phases: work products
• Common outputs of a waterfall:
o SRS, project plan, design docs, test plan and reports, final
code, supporting docs
![Page 19: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/19.jpg)
Waterfall Advantages
• Conceptually simple
o Cleanly divides the problem into distinct phases
o Phases can be performed independently
• Natural approach for problem solving
• Easy to administer in a contractual setup
• Each phase is a milestone
![Page 20: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/20.jpg)
Waterfall disadvantages
• Assumes that requirements can be specified and frozen early
• May fix hardware and other technologies too early
• Follows the “big bang” approach
o All or nothing delivery
o Too risky
• Requirement bloating
• Very document oriented
o Requiring docs at the end of each phase
![Page 21: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/21.jpg)
Waterfall Usage
• Has been used widely
• Well suited for projects where
o Requirements can be understood easily
o Technology decisions are easy
• For familiar type of projects it still may be the most optimum
![Page 22: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/22.jpg)
Prototyping
• It addresses the requirement specification limitation of waterfall
• Do not finalize requirements only by discussions
• A prototype is built to understand the requirements
• Helps reduce the requirements risk
• A small waterfall model replaces the requirements stage
![Page 23: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/23.jpg)
Prototyping: Typical flow
![Page 24: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/24.jpg)
Developing A Prototype
• Starts with initial requirements
• Only key features which need better understanding are
included in prototype
• No point in including those features that are well understood
• Feedback from users taken to improve the understanding of the
requirements
![Page 25: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/25.jpg)
How to minimize the cost?
• Build only features needing clarification
• “Quick and dirty”
o Quality not important, scripting etc. can be used
• Things like exception handling, recovery, standards are omitted
• Cost can be a few % of the total
• Learning in prototype building will help in
o Building the software
o Besides improved requirements
![Page 26: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/26.jpg)
Pros and Cons of Prototyping
• Advantages:
o Requirement will be more stable
o Requirement frozen later
o Experience helps in the main development
• Disadvantages:
oPotential hit on cost and schedule
• Applicability:
oWhen requirements are hard to elicit
o Confidence in requirements is low
Requirements are not well understood
![Page 27: CS223: Software Engineering Lecture 4: Software Development Models](https://reader036.vdocuments.us/reader036/viewer/2022062412/5a4d1b027f8b9ab05998731f/html5/thumbnails/27.jpg)
Thank youNext Lecture: Process Models