0% found this document useful (0 votes)
15 views

Module2 - Software Process Models

The document provides an overview of various software process models including waterfall model, incremental model, prototyping model, spiral model, RAD model, unified process model, agile modeling, extreme programming (XP) model, and scrum model. It defines a software process as a framework for activities, actions, and tasks required to build high-quality software. Each process model has different phases, activities, workflows, and characteristics for software development.

Uploaded by

advertisiya6
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views

Module2 - Software Process Models

The document provides an overview of various software process models including waterfall model, incremental model, prototyping model, spiral model, RAD model, unified process model, agile modeling, extreme programming (XP) model, and scrum model. It defines a software process as a framework for activities, actions, and tasks required to build high-quality software. Each process model has different phases, activities, workflows, and characteristics for software development.

Uploaded by

advertisiya6
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 57

Introduction to Software

Process Models
Reference Book : Managing IT
Projects by Kathy S., Ceneage
learning.
IEEE defines…
“ A process Model as Framework containing the
processes, activities and tasks involved in the
development, operation, and maintenance of
a software product, spanning the life of the
system from definition of its requirements to
the termination of its use.”
R
E
Q P
U R
I INPUT OUTPUT O
Process Verification
R D
E Phase and Validation
U
M C
E T
N S
T
S
A software Process
• A software process is a framework for the activities,
actions, and tasks that are required to build high-
quality software
• A software process defines the approach that is
taken as software is engineered
• A generic process framework for software
engineering defines five framework activities—
communication, planning, modeling, construction,
and deployment
A software Process Framework
Linear Process Flow
Iterative Process Flow
Evolutionary Process Flow
Parallel Process Flow
Umbrella Activities
• Software project tracking and control
• Risk management
• Software quality assurance
• Technical reviews
• Measurement
• Software configuration management
• Reusability management
• Work product preparation and production
Water Fall Model
Water Fall Model
• Simplest Process Model
• Linear ordering of activities
• Sequential development strategy
• Development in Structured phases
• Output of one phase is Input to other
• Output is a work product
• Fully known and fixed requirements
• Customer patience
Water Fall Model (2)
• Planning in early stage
• No return to previous phase
• No overlapping phases
• Not appropriate to handle large projects
• Requires detailed documentation
• Change flexibility level is difficult
• User Involvement is only at beginning
• High Risk involvement
Water Fall Model
Water Fall Model
Incremental Model
• To produce software in increments
• A combination of linear + Iterative flow
• Deliverables are increments
• Delivery of operational product
• Useful when staffing is unavailable
• Provides a platform for Evaluation by
Customer
• Freezing of requirements for an increment
Incremental Model (2)
• Team size is small
• Returning to earlier phase is possible
• User Involvement is intermediate
• Very Long duration oriented
• Risk involvement is low
• Testing done after every iteration
• Overlapping phases due to parallel development
• Model becomes invalid at time constraints
Incremental Model*

* Software Engineering : A Practitioners Approach, Roger Pressman, 7e, McGraw Hill Education
Prototyping Model
Prototype Model
• Contradiction to Freezing of Requirement
• A throwaway prototype is built
• Actual feel of a system
• Does not contain all the features
• An iterative process
• Good for Complicated and large projects
• Quick approach rather than quality
• Testing phase is reduced
• Risk reduction
Prototype Model(2)
• Enables early user assessment
• Serves to clarify requirements
• Better implementation of requirements
• Great user involvement
• Helps in Risk Reduction
• Time consuming model
Spiral Model
Spiral Model
• Activities are organized in spiral
• Quadrant identifies the different activities
• Risk Driven nature
• Each cycle is completed by a review
• Suitable for both development and
Enhancement based projects
• Encompass Management activities
• Suitable for high risk projects
• Radius of spiral represents cost incurred so far in
progress
By Boehm
RAD Model
RAD Model
• An incremental software development
process
• Short development cycle
• High-speed adaptation of the linear
sequential model
• Use of Automated Tools
• Emphasizes Reuse
RAD Model (2)
• Lesser defects due to prototyping nature
• No early stage planning
• Return to early state is possible
• No detailed documentation
• Development is time boxed
• Working prototype is delivered
• Encourages customer feedback
Concurrent Development Model
Unified Process Model
Unified Process Model
Unified Process Model
• Unified Process, a framework for Object
Oriented Software engineering using UML
• A set of Preliminary Use Cases are the
initiative
• Use Cases are Expanded and refined
• A software Increment is created and Use
cases are reviewed
• A Workflow based model
Inception Phase
• Business Case Creation
• Defining Project Scope
• Preliminary Use cases
• Outlining the major sub systems
• Risks Identification
• Preliminary Schedule preparation
• Cost Estimation
Elaboration Phase
• Preliminary Use case refinement
• Expansion to sub model views
- Use case model
- Requirements model
- Design model
- Implementation model
- Deployment model
• Executable Architectural Baseline (deliverable)
• Scope, Risks, and delivery dates are reviewed
• Plan modifications
Construction Phase
• Use cases are made operational
• Required Functionalities as increments
• Conversion to source code
• Unit and Integration testing
• Acceptance test checked with use cases
Transition Phase
• Deployment for Beta Testing
• Receiving Feedback
• Refinements based on iterations
• Create Documentation for release
• User Training
• Usable Software Release (deliverable)
Production Phase
• Coincides with the deployment of Generic
process
• Monitoring the ongoing use
• Defect Reports and Request for changes
submitted
• Changes evaluated
Agile Modeling
Agile Software Engineering
• What is Agile Software Engineering?
• What is an agile team?
• Why it is required?
• What are the Phases?
• What is a work product?
• Whether the work is right?
Agile Process
• A Process to manage Unpredictability
• A process adaptable to rapidly changing
project and technical conditions
• A process which adapts Incrementally
• A Process which includes Customer Feedback
through an Operational Prototype
• A process which enables the Customer to
Evaluate
Agile Principles
• Customer Satisfaction is the Highest Priority
• Welcome Changing requirements
• Deliver working software frequently
• Business people and developers work together
• Build projects around motivated Individuals
• Face-to-Face Conversation
• Working software as primary Progress measure
• Promote Sustainable Development
• Continuous attention to technical excellence and
good design enhances agility
• Simplicity
• Best Work products emerge from Agile Teams
• Team’s behavioral Progress
Extreme Programming( XP) Model
Extreme Programming( XP)
Foundation values
- Communication (verbal, close)
- Simplicity (only immediate needs)
- Feedback (software, Customer, software
team)
- Courage
- Respect
Extreme Programming (XP)
XP Process
Object Oriented Approach

Customers Planning
Listening (Requirement Gathering)
XP Team
Cost in
Development
User Story creation Weeks
Priority

Index
Index
Design Cards
Index
CRC cards Cards
Cards
Unit Tests Spike
Suite Solution Refactoring

Coding (Pair Programming) + Integration


Software Increment

Product Release
Testing (Acceptance)
Example: User Stories
• Students can purchase monthly parking passes
online.
• Parking passes can be paid via credit cards.
• Parking passes can be paid via PayPal.
• Professors can input student marks.
• Students can obtain their current seminar schedule.
• Students can order official transcripts.
• Students can only enrol in seminars for which they
have prerequisites.
• Transcripts will be available online via a standard
browser.
Example: Story Index Card
Example: Story Index Card
CRC Card Format
Class-responsibility-Collaboration (CRC) Card is a brainstorming tool used to design
softwares.
It was proposed by Ward Cunningham and Kent Beck as a teaching tool

Source: http://www.agilemodeling.com/artifacts/crcModel.htm
Example: Hand drawn CRC Card

Source: http://www.agilemodeling.com/artifacts/crcModel.htm
Example: A CRC Card
Example: CRC Cards
Scrum Model
Scrum
Scrum Model
Scrum Model
• Used for Projects with tight timelines,
Changing requirements, and business
criticality
• Backlog- A prioritized list of requirements
• Sprints- Work Units (30 day time box)
• Scrum Meetings (15 Minutes)
• Scrum Master leads the Meeting
• Demos (Software increments)

You might also like