Software Development Process
Models
Balasankar C S1 M.Tech CSE
Software Development Process
Models
● Activities directly related – production – design, coding, testing ● Specifies major development & quality control activities
● Core of the software process ● Different Models
– Waterfall Model – Prototyping
– Iterative Development – Timeboxing Model
Waterfall Model
● Linear
● Proposed – Royce
● Feasibility Analysis → Requirement Analysis →
Project Planning → Design → Coding →
Integration → Testing → Installation → Regular Operation and Maintenance
Waterfall Model
[contd.]● Have some important consequences
● Certification Mechanism – Distinguish between end of one phase & beginning of next
● Usually – verification & validation means – ensure output of a phase is consistent with its output
● Also, output of phase consistent with overall requirements
Waterfall Model
[contd.]● General set of documents
– Requirements document
– Project Plan
– Design Documents
– Test plan and reports
– Final Code
– Software Manuals
Waterfall Model
[contd.]● Advantages
– Simplicity
– Cleanly divided phases
– Easy to administer – Contractual Setup
● Disadvantages
– Assumes requirements can be frozen
– Choosing of hardwares early – Technology changes – Heavy risk – Ambiguity for the user until the end
Prototyping
● Counter 2 limitations of Waterfall Model
● Instead of freezing – a throw-away prototype –
understand requirements
● Prototype - steps same – not formally or
thoroughly
● Client gets the feel of the system
Prototyping
[contd.]● Requirement analysis – feasible – low cost ● Only important features included
● Standard features not implemented – to be
thrown out
● Minimal Documentation needed ● Reduced testing
Prototyping
[contd.]● Some cases – cost with prototyping < cost without
– Experience in prototype reduces cost of later phases – Stable requirements → Less development time → Lest
costs
● Well suited – projects with requirements hard to
determine & less confidence in stated requirements
Iterative Development
● Counter 3rd llimitations of Waterfall Model ● Software developed in increments
● Each increment – add functional capability – until fully
implemented
● Extensions & modifications – each step
● Easier testing – simple to test increments
● Increments provide feedback to client – easier
determination of final requirements
Iterative Development
[contd.]● Simple initial implementation
● Project Control List – All tasks to obtain final
implementation – Ordered
● Each step → remove one task → design,
implement, test →analyze → update list
● 3 phases – Design, Implementation, Analysis ● Iteration → List Empty → Final Implementation
Iterative Development
[contd.]● Another model – Spiral Model
● Activities organized as a spiral – many cycles
● Each cycle
– Identification of objectives, different alternatives,
constraints → evaluate alternatives based on objectives and constraints → Develop strategies to resolve
uncertainties & risks → Software Development → Next stage planned
Iterative Development
[contd.]● Versonized products – Initially basic
functionalities – Additional features based on feedbacks from users, technology changes, business changes etc – Next version
● Customized software development – No
"complete" requirements – rapidly changing technology – Customers need to see some products before investing more
Timeboxing Model
● Parallelism between different iterations – speed
up developments
● New iteration begins before system from
current iteration is released – parallel development
● Reduce average delivery time ● But,
Timeboxing Model
[contd.]● Basic unit of development – time box – fixed
duration
● Requirements/features that can fit – selected ● Each time box divided to sequence of stages ● Each stage – performs specific task – produce
clearly defined output
● Timeboxing requires
Timeboxing Model
[contd.]● Stages with equal durations & dedicated teams
Timeboxing Model
[contd.]● If time box size = T, first software delivery after
T days
● If n stages, subsequent deliveries take place
after every T/n days
● Reduced time → Increased throughput → But
more resources (teams)
Timeboxing Model
[contd.]● Well suited for projects with large number of
features and short amount of time – Features should have ability to be grouped flexibly to form meaningful deliveries
● Not suitable for projects
– can't partition overall developments
– Different iterations require different stages