Chapter 2 The Process
Software Engineering Defined by IEEE 610.12-1990 as: (1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software. (2) The study of approaches in (1).
A Layered Technology Software Engineering Software Engineering - provide support for methods and processes tools methods - technical how tos -glue that holds layers together process model a “quality” focus - bedrock
Types of Software Maintenance Corrective Adaptive Perfective Preventive
A Common Process Framework Framework activities Task Sets Umbrella Activities tasks milestones,deliverables SQA checkpoints
Umbrella Activities Software project management (tracking and control) Formal technical reviews Software quality assurance Software configuration management Document preparation and production Reusability management Measurement Risk management
The Process Model: Adaptability the framework activities will always be applied on every project ... BUT the tasks (and degree of rigor) for each activity will vary based on: the type of project (an “entry point” to the model) characteristics of the project common sense judgment; concurrence of the project team
SEI CMM Levels
Process as Problem Solving
The Linear Model
Waterfall Model Software Reqmts Analysis Software Detailed Design Integration Software Item 1 Software Architectural Design Software Coding & Testing Software Qualification Testing System Reqmts Analysis System Integration, Qualification & Release Activities System Architectural Design Software Item n . . . Hardware Items Note: 1) Software Lifecycle Activities are bolded / shaded 2) This model is consistent with IEEE/EIA 12207.2 - 1997
Prototyping Prototyping
RAD
The Incremental Model
An Evolutionary (Spiral) Model
Still Other Process Models WINWIN spiral model - defines negotiating activities and adds anchor points to spiral model Concurrent process model—recognizes that different part of the project will be at different places in the process Component-based development model—the process to apply when reuse is a development objective Formal methods—the process to apply when a mathematical specification is to be developed Cleanroom software engineering—emphasizes error detection before testing