SE 08 More Software Process
SE 08 More Software Process
SE 08 More Software Process
Munawar, PhD
Overview ...
Software Production Process Models
Focus on the “How” of Software Development
Stages, Phases, Steps: Methodology
Consider Six Process Models
Waterfall Model
Evolutionary Model
Transformation Model
Spiral Model
UML Unified Process (Slide 85ff – UML Slides)
Agile Software Development
Other Process Issues
Configuration Management
Standards
Software Production Process
Phases and Actions to Build, Deliver, Evolve Product
Objectives
Construct Programs from Idea to Completion
Produce Reliable, Predictable, and Efficient SW
Difficult to Automate
Software Production is a Highly Intellectual Activity
Software is Highly Instable
Interactions of Individuals from Various Backgrounds
Interface to OS, Hardware, Databases, etc.
Production Models Focus on the Software Lifecycle
Emphasizing the Process from Start to Finish
Motivation
Increase in Application Complexity and Requirements has Led
to Separation Between Developers and Users
Software Now Targets Users without “Computer Expertise”
Higher Level of Quality and Reliability Needed
Software Development as Group Activity
Software Development Needs to:
Manage Complexity in Modern Applications
Provide Detailed Careful Analysis of User Requirements
Boehm States that Goals of a Process Model are:
Determine Appropriate Stages
Establish Transition Criteria for Progressing from One Stage to
Another
Waterfall
Feasibility
Model – Classic Approach
Requirements
Study Multiple Phases for
Analysis and
Development
Specification
Complete One Phase before
Next Begins
Design and
Specification
Coding and
Module Testing
Design and
Specification
Coding and 50 %
Module Testing
Integration and
System Testing
50 %
Delivery and
Maintenance
Evolutionary Model
F. Brooks Advocates Producing a Product Twice
First Version is Throwaway to Provide Means for Users to
Offer Feedback on Exact Requirements
Second Version Developed using Waterfall
Evolutionary or Incremental Approach
Emphasizes Stepwise Development
Flexible and Non-Monolithic
Postpones Parts of Some Stages
Several Different Variants of Evolutionary Model
Evolutionary Process Model Variant
Boehm: “Model Whose stages Consist of Expanding
Increments of an Operational Software product, with the
Direction of Evolution being Determined by Operational
Experience”
Delivered Increment: Self-Contained Functional Unit that is
Useful to the Customer
Includes Supporting Material (Doc, Test Plans, Training Materials, etc.)
Development Strategy
Deliver Something to the Real User
Measure Added Value to user
Adjust Design and Objectives Accordingly
Must Use Waterfall Process Discipline
Use Increments to Evolve toward Desired Product
Incremental Implementation Model Variant
Waterfall Model Used until Implementation Phase
Implementation Done Incrementally
Requires Analysis and Design Emphasis on Useful, Deliverable
Subsets/Flexible Interfaces
Different Plans are Implemented, Tested, and Delivered at
Different Times
Incremental Implementation is only a Partial Solution
May be Missing Functional (Buttons Don’t Work)
May Simulate Portions (Canned Info instead of DB)
What are Advantages? Disadvantages?
Incremental Development & Delivery Model
Incremental Approach Applied to All Waterfall Phases
Achieves Finer Granularity in the Process
Waterfall Model Followed for Different Portions
Increments Developed After user Feedback
Users can Understand What they Actually Need
Reusable
components
Verification Tuning
Recording of
developmental history
Transformation Model
Two Main Stages
Requirements Analysis for Formal Requirements
Optimization for Performance Tuning
Transformation Controlled by Software Engineering
Take Advantage of Reusable Components
Verify Against user Expectations
Supported by Software D&D Environment
Tools for Requirements Verification, Managing Reusable
Components, Optimizing, Config. Mgmt.
Transformation Model Studied for Small Programs to
Mathematically Prove Correctness
Idea of an Automated Assistant to Watch Over the Shoulder
of Software Engineers
Isn’t this What Today’s SDEs/IDEs Provide?
Spiral Model
Purpose: Provide a Framework for Design Production
Process Guided by Risk Levels
Guiding Principles: Level of Risk (Potential Adverse
Circumstance)
Risk Management (Boehm): “Discipline whose
objectives are to identify, address, and eliminate
software risk items before they become either threats
to successful software operation or a major source of
expensive software rework.”
Focus on Identifying and Eliminating High Risk Problems
by Careful Process Design/Assessment
Spiral Model
Cyclical Model is Four Stages:
1. Identify Objectives and Design Alternatives
2. Evaluate Alternatives and Identify/Deal with Potential
Risks
3. Develop and Verify Next Level Product
4. Review Results and Plan for Next Iteration
Allows Unstated Requirements to Become Part of
Specification of Next Cycle
Robustness Approximates Correctness More Closely
The Spiral Model
The Spiral Model
The Spiral Model
UML Unified Process
UML as a Model Can’t Work in Isolation
Large Scale System Design/Development Involves
Team-Oriented Efforts
Software Architectural Design
System Design, Implementation, Integration
The Unified Process by Rational is
Iterative and Incremental
Use Case Driven
Architecture-Centric
Creating the Unified Process
Ericsson Approach
What Is a Process?
time
Business Modeling
Requirements
Analysis & Design
Implementation
Test
Deployment
Supporting Workflows
Configuration Mgmt
Management
Environment
Analysis Analysis
Model
Implementation Impl.
Model
Test Test
Model
Each workflow is
associated with one or
more models.
Use Case Model Use Case
Diagrams
Use Case
Model Class Object
Diagrams Diagrams
Analysis
Model Component
Diagrams
Design Deployment
Model Diagrams
Sequence
Depl. Diagrams
Model
Collaboration
Impl. Diagrams
Model
Statechart
Diagrams
Test
Model
Activity
Diagrams
Analysis & Design Model Use Case
Diagrams
Use Case
Model Class Object
Diagrams Diagrams
Analysis
Model Component
Diagrams Incl. subsystems
and packages
Design Deployment
Model Diagrams
Sequence
Depl. Diagrams
Model
Collaboration
Impl. Diagrams
Model
Statechart
Diagrams
Test
Model
Activity
Diagrams
Deployment and Implementation
Use Case Model
Diagrams
Use Case
Model Class Object
Diagrams Diagrams
Analysis
Model Component
Diagrams
Design Deployment
Model Diagrams
Incl. active classes
Sequence and components
Depl. Diagrams
Model
Collaboration
Impl. Diagrams
Model
Statechart
Diagrams
Test
Model
Activity
Diagrams
Test Model Use Case
Diagrams
Use Case
Model Class Object
Diagrams Diagrams
Analysis
Model Component
Diagrams
Design Deployment
Model Diagrams
Test model refers to all
other models and uses Sequence
Depl. Diagrams
Model corresponding
diagrams
Collaboration
Impl. Diagrams
Model
Statechart
Diagrams
Test
Model
Activity
Diagrams
Use Case Driven
time
Architecture
Architecture and Models
Models
Views
Relational
Database
Relational
Database
Physical Application Architecture
Thinner client, thicker server
Client B
Client A Client C
Application Application WWW Browser
Business Object
Engine Web
HTML
Business Object Server COM Beans Server CGI ASP Java
MTS ETS
Native languages
Function versus Form
Worker
Describe a
Analyst
Use Case