0% found this document useful (0 votes)
27 views44 pages

Lecture 3-4 Software Process Models DR Zeeshan Ali Rana

The document outlines various software process models and their significance in software engineering, including the waterfall model, V model, prototyping model, spiral model, and incremental models. It emphasizes the importance of structured processes in software development, highlighting framework and umbrella activities that guide communication, planning, modeling, construction, and deployment. Additionally, it discusses the unified process model and its iterative nature, tailored to meet organizational needs.

Uploaded by

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

Lecture 3-4 Software Process Models DR Zeeshan Ali Rana

The document outlines various software process models and their significance in software engineering, including the waterfall model, V model, prototyping model, spiral model, and incremental models. It emphasizes the importance of structured processes in software development, highlighting framework and umbrella activities that guide communication, planning, modeling, construction, and deployment. Additionally, it discusses the unified process model and its iterative nature, tailored to meet organizational needs.

Uploaded by

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

Software Process Models

Zeeshan Ali Rana


Recap

• Software Engineering (SE)


• Costs in Software Engineering
• Software vs Hardware (How is software different?)
• Need of SE
• Software lifecycle
• Software Quality
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
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
Framework Activities

• Communication
• customer, other stakeholders
• Planning
• Roadmap, project plan
• Modeling
• Understanding requirements, provide design
• Construction
• Code generation, testing
• Deployment
• Delivery to customer, feedback and evaluation
Software Engineering Practice

•Understand the problem


•Plan a solution
•Carry out the plan
•Examine the results for accuracy
Software Engineering Practice

•Understand the problem (communication, analysis)


•Plan a solution (modeling and design)
•Carry out the plan (code generation)
•Examine the results for accuracy (testing and QA)
Process Flow
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
Umbrella Activities

•Quality Assurance
•Configuration Management
•Technical Reviews
•Project Tracking and Control
TR
•Risk Management
PT
C

CM

RM
SE
QA

Process
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
Nature of Software Process Model?

•Models that prescribe how should development of


software progress
•Models that describe how is software developed in
actuality
Recap

• Software Process
• Framework activities
• Umbrella activities
Software Development Process Models

• Waterfall model
• Classical
• With prototyping
• V model
• Prototyping model
• Spiral model
• Incremental model
• Rapid Application Development (RAD)
• Unified process
• Agile methods
• XP
• Scrum
• Kanban
Lifecycle Models
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.) Classical
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 building process
⚫ There are no iterative activities that lead to building a
final product
⚫ Long wait before a final product
⚫ Generates lots of documentation
⚫ Considered suitable for large projects
Waterfall Model (Contd.)

⚫ Uncontrolled Software Development Process


⚫ No Iterations in WF?

Loop: Problem Definition, Technical Design and Development, Integration, Operations and Maintenance
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 testing to verify procedural design
• Uses integration 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

Verification: Each function works correctly


Validation: All requirements have been implemented and each functionality can be traced back
to a particular requirement
V Model (Contd.)

Architectural Design

Procedural Design
Evolutionary Models
Prototyping Model

• Allows repeated investigation of the requirements or design


• Reduces risk and uncertainty in the development
Prototyping Model (Contd.)

•Features
•User involvement?
•Smaller projects?
Spiral Model

•Suggested by Boehm (1988)


•Combines development activities with risk management to
minimize and control risks
•The model is presented as a spiral in which each iteration is
represented by a circuit around four major activities
• Plan
• Determine goals, alternatives and constraints
• Evaluate alternatives and risks
• Develop and test
Spiral Model (Contd.)
Incremental Models
Incremental

• 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
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
Models of Incremental Nature

• Incremental Model
Rapid Application Development
• Cycle Time?
• Requirements? if not?
• Resources? Teams? Scope?
• Commitment?
• Modular? If not?
• High technical risks?
• New app?
• New technology?
• Interoperability?
Unified Process
Unified Process Model

•Object-oriented system development methodology (system


development process)
• Offered by Rational/IBM, UP developed by Booch, Rumbaugh,
and Jacobson
• UP should be tailored to organizational and project needs
• Highly iterative life cycle
• Project will be use-case driven and modeled using UML
Unified Process Model (Contd.)

•UP life cycle:


• Includes four phases which consist of iterations
• Iterations are “mini-projects”
• Four Phases:
• Inception – develop and refine system vision
• Elaboration – define requirements and design and implement core
architecture
• Construction – continue design and implementation of routine, less risky
parts
• Transition – move the system into operational mode
Unified Process Model (Contd.)

Images’ Source: Systems Analysis and Design in a Changing World, 4th Edition
Unified Process Model (Contd.)

•Related development activities are called disciplines


•UP disciplines:
• Business modeling, requirements, design, implementation, testing,
deployment, project management, configuration and change
management, and environment
• Each iteration includes activities from all disciplines
• Activities in each discipline produce artefacts –
models, documents, source code, and executables
Unified Process Model (Contd.)

orld, 4th Edition


Unified Process Model (Contd.)
References

• SE, Pressman
• SE, Pfleeger

Acknowledgement
⚫ A few slides have been adapted from UCF slides for the SE
course

You might also like