Process Models
Dr. Noman Islam
Software Development as Social Learning
Embodied Knowledge in Software Development
Software development is a social learning process where knowledge is brought together and embodied in the software.
The process involves interaction between users, designers, and evolving tools to elicit useful knowledge.
Iterative Process with Communication
The evolving tool serves as the medium for communication in the iterative process.
Each round of the dialogue elicits more useful knowledge from the people involved.
Software Process: Definition and Importance
Defining a Software Process
Adaptation and Creativity in Software Engineering
Software engineering is performed by creative, knowledgeable people who adapt a mature software process.
Adaptation is necessary to suit the products and demands of the marketplace.
Software Process as a Framework
A software process defines the approach for building high-quality software.
It encompasses technical methods and automated tools, but is not synonymous with software engineering.
Generic Process Model and Process Flow
Defining a Framework Activity
Framework Activities Require Additional Information
Key Questions for Framework Activities
Components of a Framework Activity
Task Sets, Work Tasks, and Work Products
Quality Assurance Points and Project Milestones
Process Models Overview
Project Communication and Planning
Organizing Project Requirements
Define Requirements through Task Sets
Task sets outline specific work to be done for each software engineering action, such as requirements gathering.
Task sets can be adapted to accommodate project needs and team characteristics.
Requirements Gathering through Elicitation
Elicitation involves understanding stakeholder wants and needs from the software.
Examples of task sets for requirements gathering include making a list of stakeholders, interviewing stakeholders, and prioritizing requirements.
Choosing a Task Set for Requirements Gathering
Task Set for Small, Simple Projects
Make a list of stakeholders, invite stakeholders to a meeting, and ask for feature and function requirements.
Discuss requirements, prioritize, and note areas of uncertainty.
Task Set for Larger, Complex Projects
Make a list of stakeholders, interview stakeholders, and build a preliminary list of functions and features.
Schedule facilitated application specification meetings, produce user scenarios, and refine user scenarios.
What is a Process Pattern?
A process pattern describes a process-related problem, identifies the environment, and suggests proven solutions.
Process Pattern Template
Components of a Pattern
Pattern Types
Pattern Initiation and Context
Pattern Implementation and Outcome
Process Assessment and Improvement
Formal Techniques for Assessing Software Process
CMM-Based Appraisal for Internal Process Improvement
Prescriptive Process Models in Software Engineering
Software Process Models Overview
Waterfall Model and V-Model
V-Model Overview and Application
Waterfall Model Limitations and Criticisms
Challenges with Waterfall Model
Incremental Process Models
Delivering Software in Increments
Delivering
Meeting Impossible Deadlines
Meeting
Incremental Development Process
Incremental Development Model Overview
Benefits of Incremental Development
Evolutionary Process Models
Evolutionary Process Models
The Prototyping Paradigm
Prototyping in Software Engineering
Challenges and Best Practices in Prototyping
The Spiral Model Overview
Evolutionary Software Process Model
Risk-Driven Process Model Generator
Spiral Model Key Characteristics
Incremental Growth and Risk Reduction
Cyclic approach for incrementally growing system definition and implementation
Decreasing system risk with each iteration
Anchor Point Milestones for Stakeholder Commitment
Ensures stakeholder commitment to feasible and mutually satisfactory system solutions
Provides structure for software development
Spiral Model Overview
Framework Activities in Spiral Model
The spiral model is divided into a set of framework activities defined by the software engineering team.
These activities represent one segment of the spiral path and are performed in a clockwise direction, beginning at the center.
Risk Consideration and Anchor Points
Risk is considered as each revolution is made around the spiral.
Anchor point milestones—a combination of work products and conditions—are noted for each evolutionary pass.
Adaptability and Iterations in Spiral Model
Spiral Model- Characteristics and Advantages
Characteristics of the Spiral Model
Iterative framework that reflects real-world development
Risk reduction through prototyping at any stage
Advantages of the Spiral Model
Systematic stepwise approach with risk assessment expertise
Reduces risks before they become problematic
Challenges and Limitations
Concurrent Development Model Overview
Definition and Purpose
Key Characteristics
Concurrent Process Model Representation
Concurrent Modeling Overview
Evolutionary Process Models Limitations
Uncertainty in Prototyping and Project Planning
Prototyping poses a problem to project planning due to uncertain number of cycles required.
Most project management techniques are based on linear layouts, which do not fit evolutionary processes.
Risk of Chaos or Low Productivity
Evolutionary processes do not establish the maximum speed of evolution.
Too fast or too slow evolution can lead to chaos or low productivity.
Prioritizing Speed over High Quality
Flexibility and Extensibility over High Quality
Evolutionary Models for Speed and Flexibility
Specialized Process Models
Component-Based Development Model
Formal Methods Model and Its Challenges
Formal Methods Enable Rigorous Software Development
Challenges and Limitations of Formal Methods
Aspect-Oriented Software Development Overview
Aspect-Oriented Software Development Process
Asynchronous Communication in Software Process
Process Models for Software Development
Unified Process Key Features
Emphasizes Customer Communication
Streamlined methods for describing the customer's view of a system (use case)
Helps the architect focus on the right goals, such as understandability, reliability to future changes, and reuse
Iterative and Incremental Process Flow
Provides an evolutionary feel essential in modern software development
Supports adaptability to meet specific project needs
Unified Process Phases and History
Development of UML and Unified Process
Phases of the Unified Process
Inception Phase Overview
Customer Communication and Planning
Preliminary Use Cases and Architecture
Elaboration Phase Activities
Unified Process Construction Phase
Develop or Acquire Software Components
Implement and Test Software Components
Unified Process Transition and Production Phases
Personal Software Process (PSP) Overview
Emphasizes Personal Measurement and Responsibility
Five Framework Activities in PSP
PSP Framework Activities and Postmortem
Additional PSP Framework Activities
Postmortem Analysis in PSP
Personal Software Process (PSP) Overview
Team Software Process (TSP) and Self-Directed Teams
TSP Objectives and Key Features
Benefits of TSP Adoption
TSP Framework Activities
TSP Framework Activities Overview
Project launch, high-level design, implementation, integration and test, and postmortem activities enable disciplined software development and quantitative process measurement.
These activities set the stage for process improvements through postmortem analysis.
TSP Scripts and Standards
TSP scripts define specific process activities and detailed work functions, guiding team members in their work.
Examples of scripts include project launch, design, implementation, integration and system testing, and postmortem activities.
Adapting Process Models with Process Technology
Process Technology Overview
Process technology tools help software organizations analyze their current process, organize work tasks, and control progress.
These tools enable the creation of an automated process model, facilitating workflow analysis and alternative process structures.
Process Technology Applications
Process technology tools can allocate, monitor, and control software engineering activities, actions, and tasks.
Each team member can use these tools to develop a checklist of work tasks, products, and quality assurance activities.
The Software Process: Understanding and Modeling
Process Modeling Tools: Objective and Purpose
Mechanics of Process Modeling Tools
Product and Process Duality
Duality of Product and Process
Software Engineering Process Models
Incremental Process Models Overview
Evolutionary Process Models
Specialized Process Models
Software Process Models and Activities
Unified Process and Personal/Team Models
Unified Process: use case driven, architecture-centric, iterative and incremental
Personal and team models emphasize measurement, planning, and self-direction
Challenges and Research Opportunities
Communication challenges: conflicting ideas and requirements
Measurement and improvement: PSP and personal effectiveness