What is a
Software Engineering Process?
A structured set of activities required to develop a software system
SE Processes:
Fundamental Software Engineering Activities
Specification
Development
Validation
Evolution
SE Processes:
Opportunistic Approach
Essentially, just immediately write code
Software Engineering Processes:
3 Major Process Models
Waterfall Model
Incremental Development Model
Reuse-Oriented Model
Software Engineering Processes:
Plan-Driven
vs
Agile
Processes
Plan Driven
All process activities are planned in advance.
Progress is measured against this plan
Agile
Planning is incremental, it is easier to change the process to reflect changing customer requirements.
Waterfall Software Process:
Basic Idea and Phases
Takes the fundamental process activities and represents them as separate, sequential phases.
In theory, a phase should only be visited once in a development/release cycle.
Phases
Waterfall Software Process:
When to Use
Waterfall Process can be used when:
Incremental Development Model
Basic Description
Incremental Development Model:
Benefits
Incremental Development Model:
Issues
(Largely managerial issues)
Reuse-Oriented Software Engineering:
Basic Description
Based on the existence of a significant number of reusable components.
Focuses on integrating components into a system rather than developing them from scratch
Reuse-Oriented Process:
Benefits
Reuse-Oriented Process:
Problem
Existing components may not cover requirements.
May need to compromise requirements to match available software
Reuse-Oriented Process:
Three common types of
Software Component
that may be reused
Reuse-Oriented Process:
Intermediate Stages
Component Analysis
Requirements Modification
System Design with Reuse
Development and Integration
Rational Unified Process:
The RUP is normally described from what 3 Perspectives?
Dynamic Perspective
Shows the phases of the model over time
Static Perspective
Shows the process activities that are enacted
Practice Perspective
Suggests good practices to use during the process
Rational Unified Process:
Phases (4)
Inception
Elaboration
Construction
Transition
Rational Unified Process:
Inception Phase
Inception
Establish a business case for the system
Rational Unified Process:
Elaboration Phase
Elaboration
Develop an understanding of problem domain.
Establish architectural framework for system.
Develop project plan.
Identify Key project risks.
Rational Unified Process:
Construction Phase
Construction
System Design
Implementaion
Testing
Rational Unified Process:
Transition Phase
Transition
Move the system from the development community to the user community
Boehm’s Spiral Process Model:
Basic Description
Software Engineering activities are organized into a “Spiral”
Boehm’s Spiral Process Model:
Four Sectors
Objective Setting
Determine phase objectives, alternatives and constraints
Risk Assessment and Reduction
Identify and resolve risks, evaluate alternatives
Development and Validation
Develop, verify the next level of the product
Planning
Plan the next phase
Software Lifecycle Stages
Inception
Pre-Development
Development
Post-Development