Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Software As A Process: October 14, 1997

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 17

Software as a Process

• Software Engineering -- a definition:


• [Software engineering is] the establishment and
use of sound engineering principles in order to
obtain economically software that is reliable and
works efficiently on real machines.
• Software Engineering is a layered technology.

October 14, 1997 Chapter 2


A Layered Technology
• Tools
• Editors
• Design aids
• Compilers
• Computer Aided Software Engineering (CASE)

• Methods
• Includes standards (formal or informal)
• May include conventions, e.g., low level such as
naming, variable use, language construct use,
etc.
• May involve design Chapter
October 14, 1997
methodologies.
2
Some Generic Engineering
Phases

• Definition
• System or information engineering (leading to
requirements)
• Software project planning
• Requirements analysis
• Development
• Software design
• Coding
• Testing

October 14, 1997 Chapter 2


Some Generic Engineering
Phases

• Maintenance
• Correction -- bugs will appear
• Adaptation -- to changing operating systems,
CPU’s, etc.
• Enhancement -- changing customer needs
• Prevention -- software reengineering

October 14, 1997 Chapter 2


Some Generic Engineering
Phases

• Typical activities in these phases


• Project tracking and control
• Formal reviews
• Software quality assurance
• Configuration management
• Documentation
• Reusability management
• Measurement
• Risk management

October 14, 1997 Chapter 2


SEI Software Maturity Model
• Level 1: Initial -- The software process is characterized
as ad hoc, and occasionally even chaotic. Few
• processes defined. -- Basic project management
Level 2: Repeatable
processes established to track cost, schedule and
• Level 3: Defined -- Process for both management and
functionality.
engineering is documented, standardized and
• integrated.
Level 4: Managed -- Detailed measures of the process
and product quality collected. Both are quantitatively
understood and controlled.
• Level 5: Optimizing -- Continuous process improvement
enabled by quantitative feedback and testing innovative
ideas.
October 14, 1997 Chapter 2
Key Process Areas

• Maturity Level 2
• Software Configuration Management
• Software Quality Assurance
• Subcontract management
• Project tracking and oversight
• Software project planning
• Requirements management

October 14, 1997 Chapter 2


Key Process Areas

• Maturity Level 3
• Peer Reviews
• Intergroup coordination
• Integrated software management
• Training program
• Organization process definition
• Organization process focus

October 14, 1997 Chapter 2


Key Process Areas

• Maturity Level 4
• Software quality management
• Quantitative process management

• Maturity Level 5
• Process change management
• Technology change management
• Defect prevention

October 14, 1997 Chapter 2


Software Process Models

October 14, 1997 Chapter 2


Waterfall Model

System/Information
Engineering

Requirements Analysis Design Code

Test

Maintain

October 14, 1997 Chapter 2


The Rapid Prototyping Model

October 14, 1997 Chapter 2


Evolutionary Process Models
• The Incremental Model

October 14, 1997 Chapter 2


Evolutionary Process Models
• The Spiral Model

October 14, 1997 Chapter 2


Evolutionary Process Models
• The Component Assembly Model

October 14, 1997 Chapter 2


Evolutionary Process Models

• The Concurrent Development Model

October 14, 1997 Chapter 2


Other Models
• Formal Methods
• Rigorous mathematical representation of
requirements
• Provides basis for automatic verification test
generation
• Fourth Generation Techniques
• Use code generators to produce specific parts of
product
• Process Technology
• Provides a variety of tools to aid software
developers, e.g., workload flow, configuration
management, quality assurance management,
etc.
October 14, 1997 Chapter 2

You might also like