You are on page 1of 24

Software Engineering

The Process

• A software process is a road map that helps you create a timely,


high quality result.
• It is the way we produce software
• Provides stability and control
• Work Product
– Programs, documents, and data produced as a consequence o
the software engineering activities
Process Maturity

• SEI – Software Engineering Institute


• 5 maturity levels
• Capability Maturity Model (CMM)
CMM Maturity Levels

OPTIMIZED – Process Improvement

MANAGED – Process Measurement

DEFINED – Process Definition

REPEATABLE – Project Management

INITIAL – Ad hoc Process


Level 1

Level 1 – Initial: The software process is characterized


as ad hoc and occasionally even chaotic. Few
processes are defined, and success depends upon
individual effort
Level 2

Level 2 – Repeatable: Basic project management


processes are established to track cost, schedule,
and functionality. The necessary project discipline is
in place to repeat earlier successes on projects with
similar applications
Level 3
Level 3 – Defined: The software process for both
management and engineering activities is documented,
standardized, and integrated into an organizational software
process. All projects use a documented and approved version
of the organization’s processes for developing and supporting
software
Level 4

Level 4 – Managed: Detailed measures for software


process and product quality are controlled. Both the
software process and products are quantitatively
understood and controlled using detailed measures
Level 5

Level 5 – Optimizing: Continuous process


improvement is enabled by qualitative feedback from
the process and from testing innovative ideas and
technologies
Software Life-Cycle Steps
Life-cycle model (formerly, process model)

– Requirements phase
– Specification phase
– Design phase
– Implementation phase
– Integration phase
– Maintenance phase
– Retirement
Different Lifecycle Models
• Build-and-fix model
• Waterfall model
• Rapid prototyping model
• Incremental model
• Extreme programming
• Synchronize-and-stabilize model
• Spiral model
• Object-oriented life-cycle models
• Comparison of life-cycle models
Build and Fix
Build first Model
version

Modify until
client is satisfied

Maintenance
phase

Development

Maintenance Retirement
Requirement
Definition Waterfall Model
System and
Software Design

Implementation
and Unit Testing

Integration and
System Testing

Operation and
Maintenance
Requirement
Definition Waterfall Model
System and
Software Design

Implementation
and Unit Testing

Integration and
System Testing

Operation and
Maintenance
Rapid
Prototyping Rapid Prototyping
Requirement
Model
Definition

System and
Software Design

Implementation
and Unit Testing

Integration and
System Testing

Operation and
Maintenance
Process Maturity

• SEI – Software Engineering Institute


• 5 maturity levels
• Capability Maturity Model (CMM)
Key Process Areas (KPAs)

The KPAs describe those software engineering


functions that must be present to satisfy good
practice at a particular level. Each KPA is described
by identifying the following characteristics
Key Process Areas (KPAs)
• Goals • Commitments
• Abilities • Activities

• Methods for monitoring • Methods for verifying


implementation implementation
Level 2 KPAs
• Software Configuration Management
• Software Quality Assurance
• Software subcontract Management
Level 2 KPAs - Continued
• Software project tracking and oversight
• Software project planning
• Requirement management
Level 3 KPAs
• Peer reviews
• Inter-group coordination
• Software product Engineering
• Integrated software management
Level 3 KPAs - Continued
• Training program
• Organization process management
• Organization process focus
Level 5 KPAs
• Process change management
• Technology change management
• Defect prevention
Software Engineering Phases

1. Vision – focus on why


2. Definition – focus on what
2. Development – focus on how
3. Maintenance – focus on change

Vision Definition Development Maintenance

You might also like