2
Software EngineeringSoftware Engineering
Defined by IEEE 610.12-1990 as:Defined by IEEE 610.12-1990 as:
(1) The application of a systematic, disciplined, quantifiable (1) The application of a systematic, disciplined, quantifiable
approach to the development, operation, and maintenance approach to the development, operation, and maintenance
of software; that is, the application of engineering to software. of software; that is, the application of engineering to software.
(2) The study of approaches in (1).(2) The study of approaches in (1).
3
Software Engineering
A Layered A Layered
TechnologyTechnology
Software Engineering
a “quality” focusa “quality” focus
process modelprocess model
methodsmethods
toolstools
- provide support for methods
and processes
- technical how tos
-glue that holds layers
together
- bedrock
4
Types of Software Types of Software
MaintenanceMaintenance
CorrectiveCorrective
AdaptiveAdaptive
PerfectivePerfective
PreventivePreventive
5
A Common Process A Common Process
FrameworkFramework
Common process frameworkCommon process framework
Framework activitiesFramework activities
Task SetsTask Sets
Umbrella ActivitiesUmbrella Activities
taskstasks
milestones,deliverablesmilestones,deliverables
SQA checkpointsSQA checkpoints
6
Umbrella Umbrella
ActivitiesActivities
Software project management Software project management
(tracking and control)(tracking and control)
Formal technical reviewsFormal technical reviews
Software quality assuranceSoftware quality assurance
Software configuration managementSoftware configuration management
Document preparation and productionDocument preparation and production
Reusability managementReusability management
MeasurementMeasurement
Risk managementRisk management
7
The Process The Process
Model:Model:
AdaptabilityAdaptabilitythe framework activities will the framework activities will alwaysalways be be
applied on applied on everyevery project ... BUT project ... BUT
the tasks (and degree of rigor) for each the tasks (and degree of rigor) for each
activity will vary based on:activity will vary based on:
the type of project (an “entry point” to the model)the type of project (an “entry point” to the model)
characteristics of the projectcharacteristics of the project
common sense judgment; concurrence of the common sense judgment; concurrence of the
project teamproject team
8
SEI CMM Levels
9
Process as Problem Process as Problem
SolvingSolving
status
quo
problem
definition
technical
development
solution
integration
10
The Linear The Linear
ModelModel
analysis design code test
System/information
engineering
11
System
Reqmts
Analysis
System
Architectural
Design
Software
Reqmts
Analysis
Software
Architectural
Design
Software
Detailed
Design
Software
Coding &
Testing
Software
Integration
Software
Qualification
Testing
System
Integration,
Qualification
& Release
Activities
Software
Item n
. . .
Software Item 1
Hardware
Items
Note: 1) Software Lifecycle Activities are bolded / shaded
2) This model is consistent with IEEE/EIA 12207.2 - 1997
Waterfall Model
13
RADRAD
business
modeling
data
modeling
process
modeling
application
generation
testing
&
turnover
business
modeling
data
modeling
process
modeling
application
generation
testing
&
turnover
business
modeling
data
modeling
process
modeling
application
generation
testing
&
turnover
team #1
team #2
team #3
60 - 90 days
14
The Incremental The Incremental
ModelModel
analysis design code test
System/information
engineering
analysis design code test
analysis design code test
analysis design code test
increment 2
increment 3
increment 4
increment 1
delivery of
1st increment
delivery of
2nd increment
delivery of
3rd increment
delivery of
4th increment
calendar time
15
16
An Evolutionary (Spiral) An Evolutionary (Spiral)
ModelModel
Customer
Communication
Planning
Construction & Release
Customer
Evaluation
Engineering
Risk Analysis
17
18
Still Other Process Still Other Process
ModelsModels
WINWIN spiral model - defines negotiating activities WINWIN spiral model - defines negotiating activities
and adds anchor points to spiral modeland adds anchor points to spiral model
Concurrent process modelConcurrent process model—recognizes that different —recognizes that different
part of the project will be at different places in the part of the project will be at different places in the
processprocess
Component-based development modelComponent-based development model —the process —the process
to apply when reuse is a development objectiveto apply when reuse is a development objective
Formal methodsFormal methods—the process to apply when a —the process to apply when a
mathematical specification is to be developedmathematical specification is to be developed
Cleanroom software engineeringCleanroom software engineering—emphasizes error —emphasizes error
detection detection beforebefore testing testing