0% found this document useful (0 votes)
18 views23 pages

Process Models1

The document discusses the concept of a process in software engineering, highlighting its structure, characteristics, and usefulness in guiding activities and improving outcomes. It outlines various software development process models, including the Waterfall model, V model, Prototyping model, and Phased development, each with distinct features and applications. The document emphasizes the importance of process models in establishing a common understanding and tailoring processes to specific situations.

Uploaded by

ranahassan7674
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
18 views23 pages

Process Models1

The document discusses the concept of a process in software engineering, highlighting its structure, characteristics, and usefulness in guiding activities and improving outcomes. It outlines various software development process models, including the Waterfall model, V model, Prototyping model, and Phased development, each with distinct features and applications. The document emphasizes the importance of process models in establishing a common understanding and tailoring processes to specific situations.

Uploaded by

ranahassan7674
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 23

Software

Engineering
What Do We Mean by a Process?
• Is a series of steps involving activities, constraints,
and resources to produce an intended output
• Prepare for exams
• Conduct a software competition
• Organize a trip
• Write a term project report
• Involves a set of tools and techniques
• Block diagrams
• Notations
How is a Process Useful?
• Impose consistency and structure on a set
of activities
• Guide us to understand, control, examine,
and improve the activities
• Enable us to capture our experiences and
pass them along
Characteristics of a Process
• Prescribes all major process activities
• Uses resources, subject to set of constraints (such as schedule)
• Produces intermediate and final products
• May be composed of sub-processes with hierarchy or links
• Each process activity has entry and exit criteria
• Activities are organized in sequence, so timing is clear
• Each process guiding principles, including goals of each
activity
• Constraints may apply to an activity, resource or product
Software Lifecycle
• When a process involves building a software
(product), the process may be referred to as
software (product) lifecycle
• Requirements analysis and definition
• System (architecture) design
• Program (detailed/procedural) design
• Writing programs (coding/implementation)
• Testing: unit, integration, system
• System delivery (deployment)
• Maintenance
What is a Process Model?
• Description of a process, evolved overtime, in a
certain format
• May use text, pictures, or a combination
• Contains key process features
Why is a Process Model Needed?
• 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
What is a Software Process Model?
• Models that prescribe how should development of
software progress
• Models that describe how is software developed
in actuality
Software Development Process Models
• Waterfall model
• V model
• Prototyping model
• Operational specification
• Transformational model
• Phased development: increments and iteration
• Spiral model
• Unified process
• Agile methods
Waterfall Model
• One of the first process development models proposed
• Works for well understood problems with minimal or no
changes in the requirements
• 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)
Waterfall Model (Contd.)
Waterfall Model (Contd.)

Uncontrolled Software Development Process


No Iterations in WF
Waterfall Model (Contd.)

Provides no guidance how to handle changes to


products and activities during development
(assumes requirements can be frozen)
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
Generates lots of documentation
Suitable for large projects
Waterfall Model with Prototyping

A prototype is a partially developed


product
Prototyping helps
developers assess alternative design strategies
(design prototype)
users understand what the system will be like
(user interface prototype)
Waterfall Model with Prototyping
V Model
• A variant of the waterfall model
• Uses unit and integration testing to verify procedural
design
• Uses system testing to verify architectural (system) design
• Uses acceptance testing to validate the requirements
• If problems are found during verification and validation,
the left side of the V can be re-executed before testing on
the right side is re-enacted
V Model (Contd.)
Prototyping Model
• Allows repeated investigation of the
requirements or design
• Reduces risk and uncertainty in the
development
Prototyping Model (Contd.)
• Types:
• Evolutionary
• Throwaway
• Features
• User involvement?
• Smaller projects?
Phased Development
• Cycle time
• Time between when requirements document was written and when the
system was delivered
• Shorter cycle time
• Decomposed system
• System delivered in pieces
• enables customers to have some functionality while the
rest is being developed
• Two systems functioning in parallel
• the production system (release n): currently being used
• the development system (release n+1): the next version
Phased Development (Contd.)
Phased Development (Contd.)
• Incremental development: starts with small
functional subsystem and adds functionality with
each new release
• Iterative development: starts with full system,
then changes functionality of each subsystem
with each new release
Phased Development (Contd.)
• Training on early release
• Responsive developers
• Markets for early functionality
• Quick and Global fixing on unanticipated
problems
• Ability to work on different areas of
expertise with different releases

You might also like