Software process model
Part 1
What is a software process
A series of steps taken to produce an intended output
Steps involved
● activities
● constraints
● resources
Process involved
● tools
● techniques
Characteristics of a process
● Prescribes all major activities
● Uses resources, subject to setup constraints such as schedule, number of
people
● Produces intermediate and final products
● May be compromised of sub – processes with Hierarchy of links
● Each process activity has an entry and exit criteria
● Activities are organised in a sequence, so timing is clear
● Each process guiding principles, including goals of each activity
● constraints may applied to an activity, resource or product
Why are processes so important
● Impose consistency and structure on a set of activities
● Guide us to understand, control, examine come, and improve the activities
● Enable us to capture our experiences and pass them along
What is meant by modelling of process
❏ Description of a process at a given level
❏ A process model is
❏ an anticipation of what the process will look like
❏ what the process shall be actually it will be determined during actual
system development )
Reasons for modelling a process
● To form a common understanding
● To find inconsistencies, redundancies, omissions
● To find and evaluate appropriate activities for reaching process goals
● To tailor a General process for a particular situation in which it will be
used
Software process models : SDLC revisited
When a process involves building a software, the process may be referred to as software
life cycle
● requirement analysis and definition
● System (architecture) design
● Program (details/procedural) design
● Writing programs (coding/implementation)
● Testing unit, integration, system( many more)
● System delivery (deployment)
● Maintenance
Some Common SPMs
● Waterfall
● Prototyping
● V-Model
● Incremental
● Iterative
● Spiral
● RUP
● Agile Development
Waterfall Model
When should we use Waterfall Model
● Works for well understood problems with minimal or no changes in the
requirement
Advantages
● Simple and easy to explain to customers
● It presents
○ A very high-level view of the development process
○ Sequence of process activities
● Each major phase is marked by milestones and deliverables
(artefacts)
Drawbacks of Waterfall Model
● There is no iterations in waterfall model
● Most software developments apply a great many iterations
Cont’d
● Provides no guidance how to handle changes to products and activities during
development
● views software development as manufacturing process rather than as
creative process
● there is no iterative activities that lead to creating a final product
● long wait before a final product
WATERFALL Process Model
● Waterfall model is hardly ever used as a solo process model
● Most of the time it is used alongside with prototype process model
Prototype Process Model
● A Prototype is a partially developed product
● Prototyping helps
○ developer assesses alternative design strategies
(design prototype)
○ user understand what the system will be like
(user interface font type)
● Prototyping is useful for verification and validation
Prototype Process Model
Advantages of prototype process model
● Interaction of users and stakeholders at their respective phases
● Working model -> better understanding
● Errors can be detected much earlier
● Quicker user feedback -> better solution
● Missing, ambiguous, Complex functionality can be identified easily
● Requirements validation, Quick implementation of, incomplete, but
functional application
Disadvantages of prototype process model
● Leads to implementing and then repairing way of building systems
● Practically, this methodology may increase the complexity of the system as
scope of the system may expand beyond original plans
● Incomplete application may cause application not to be used as the full
system was designed
● Incomplete or inadequate problem analysis
When to use prototype model
● desired system → lot of user interaction
● example online system former web interfaces
● end user constantly work with system
→ feedback → incorporated into the prototype → usable system
● excellent for designing good human computer interface systems
Incremental model
● Whole requirement → various builds
● Multiple development cycle → Multi waterfall cycle
● Cycles → smaller, more easily managed modules.
● Each module → phases ( requirement, design, implementation and testing)
● First module → working version of software → working software early on
during the SDLC
● Subsequent release (module) → adds function to the previous release.
● Process continues till the complete system is achieved.
Advantages of Incremental Model
● Generates working software quickly and early during the software life cycle.
● More flexible - less costly to change scope and requirements.
● Easier to test and debug during a smaller iterations.
● Customer can respond to each built.
● Lowers initial delivery cost
● Easier to manage risk because risky pieces are identified and handled during
its iterations.
Disadvantages:
● Increments need be relatively small
● Mapping requirements to increments may not be easy
● Common software facilities may be difficult to identify
Applicability:
● When it is possible to deliver the system
“part-by-part”