Lecture 5-6-7-8 Software Process Models 20200926
Lecture 5-6-7-8 Software Process Models 20200926
Lecture 5-6-7-8 Software Process Models 20200926
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
Nature of Software Process Model?
Models that prescribe how should development of
software progress
Models that describe how is software developed in
actuality
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
Process Flow
Software Development Process Models
Waterfall model
Classical
With prototyping
V model
Prototyping model
Phased development: increments and iterations
Spiral model
Unified process
Rapid Application Development (RAD)
Agile methods
XP
Scrum
Kanban
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.)
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.)
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
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
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.)
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.)
Scrum master
Person in charge of a Scrum project, leads meetings, assesses
responses
Scrum team or teams
Small group of developers
Set their own goals and distribute work among themselves
Scrum Process Flow
Agile Methods (Contd.)
Scrum Practices
Sprint
The basic work process in Scrum
A time-controlled mini-project
Firm 30-day time box with a specific goal or deliverable
Parts of a sprint
Begins with a one-day planning session
A short daily Scrum meeting to report progress
Ends with a final half-day review
Agile Methods (Contd.)
Human Factors
Competence
Knowledge of the process
Common focus
Deliver a working s/w increment within promised time
Collaboration
Assess, analyze, use, create information
Decision making ability
autonomy
Fuzzy problem solving ability
Mutual trust and respect
Self organization
Itslef
Process
Work
Cost of Change and Agile Methods
Process Models (Recap)
Waterfall model
Classical
With prototyping
V model
Incremental Models
Phased development in increment
Rapid Application Development (RAD)
Evolutionary Models
Prototyping model
Spiral model
Unified process
Agile methods
XP
Scrum
Kanban
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
Umbrella Activities
Quality Assurance
Configuration Management
Technical Reviews
Project Tracking and Control
Risk Management
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)
Software Engineering Principles
Provide value to customer
Design should be as simple as possible
Maintain a clear vision
Always specify design, implement accordingly so that
others can understand
Software should be ready to adapt to changes
Plan ahead for reuse
Place clear, complete thought before action