2. What is Software Process?What is Software Process?
A framework for the tasks that areA framework for the tasks that are
required to build high-qualityrequired to build high-quality
software.software.
3. Is Process synonym with SE?Is Process synonym with SE?
A software process defines theA software process defines the
approach that is taken as software isapproach that is taken as software is
engineered.engineered.
But software engineering alsoBut software engineering also
includes technologies that populatesincludes technologies that populates
the process – technical methods andthe process – technical methods and
automated tools.automated tools.
4. 2.1 Software Engineering:2.1 Software Engineering:
A Layered TechnologyA Layered Technology
““Software engineering is theSoftware engineering is the
establishment and use of soundestablishment and use of sound
engineering principles in order toengineering principles in order to
obtain economic software that isobtain economic software that is
reliable and works efficiently on realreliable and works efficiently on real
machines.”machines.” [Fritz Beuer][Fritz Beuer]
Lack ofLack of software qualitysoftware quality,, customercustomer
satisfactionsatisfaction,, timely product deliverytimely product delivery,,
importance of measurement and metricsimportance of measurement and metrics,,
andand mature processmature process..
5. SE: A Layered TechnologySE: A Layered Technology
““Software engineering: TheSoftware engineering: The
application of a systematic,application of a systematic,
disciplined, quantifiable approach todisciplined, quantifiable approach to
the development , operation, andthe development , operation, and
maintenance of software; that is, themaintenance of software; that is, the
application of engineering toapplication of engineering to
software.software.
6. Software EngineeringSoftware Engineering
a “quality” focusa “quality” focus
process modelprocess model
methodsmethods
toolstools
A Layered TechnologyA Layered Technology
7. A “quality” focusA “quality” focus
Continuous process improvementContinuous process improvement
Foundation that supports softwareFoundation that supports software
engineeringengineering
8. ProcessProcess
Is the foundation of softwareIs the foundation of software
engineeringengineering
Defines a framework for a set of keyDefines a framework for a set of key
process areas (KPAs)process areas (KPAs)
– Effective delivery of SE technologyEffective delivery of SE technology
– Management control of software projectManagement control of software project
– Context of technical methods appliedContext of technical methods applied
– Milestones, Quality ensuredMilestones, Quality ensured
– Proper change managementProper change management
9. MethodsMethods
Provide technical how-to buildingProvide technical how-to building
software.software.
Encompass a broad array of tasks thatEncompass a broad array of tasks that
include requirements analysis, programinclude requirements analysis, program
construction, testing, and support.construction, testing, and support.
Rely on a set of basic principles thatRely on a set of basic principles that
govern each area of the technologygovern each area of the technology
and include modeling activities andand include modeling activities and
other descriptive techniquesother descriptive techniques
10. ToolsTools
Provide automated or semi-Provide automated or semi-
automated support for the processautomated support for the process
and the methods.and the methods.
CASE: computer-aided softwareCASE: computer-aided software
engineering is a system for theengineering is a system for the
support of software development.support of software development.
– Combines SW, HW, and a SE databaseCombines SW, HW, and a SE database
(a repository containing important(a repository containing important
information aboutinformation about analysis, design,analysis, design,
program construction, and testing)program construction, and testing)
11. A Generic View of SEA Generic View of SE
Engineering is analysis, design,Engineering is analysis, design,
construction, verification, andconstruction, verification, and
management of technical (or social)management of technical (or social)
entities.entities.
EntityEntity computer softwarecomputer software
A software engineering process mustA software engineering process must
be defined: definition phase,be defined: definition phase,
development phase, and supportdevelopment phase, and support
phase.phase.
12. Definition PhaseDefinition Phase
Focuses on “what”Focuses on “what”
WhatWhat informationinformation is to be processed?is to be processed?
WhatWhat functionfunction and performance areand performance are
desired?desired?
WhatWhat system behaviorsystem behavior can becan be
expected?expected?
InterfaceInterface,, design constraintsdesign constraints,,
validation criteriavalidation criteria identify keyidentify key
requirements of the system and SW.requirements of the system and SW.
13. Development PhaseDevelopment Phase
Focuses on “how”Focuses on “how”
How data are to be constructed?How data are to be constructed?
How function is to be implementedHow function is to be implemented
within a software architecture?within a software architecture?
Procedural details, interfaces, designProcedural details, interfaces, design
programming, testing.programming, testing.
Three technical tasks: software design,Three technical tasks: software design,
code generation, software testing.code generation, software testing.
14. Support PhaseSupport Phase
Focuses on “change” associated withFocuses on “change” associated with
error correction, adaptations, changes.error correction, adaptations, changes.
Four types of changes:Four types of changes:
– CorrectionCorrection Corrective maintenanceCorrective maintenance
– AdaptationAdaptation Adaptive maintenanceAdaptive maintenance
– EnhancementEnhancement Perfective maintenancePerfective maintenance
– PreventionPrevention Preventive maintenancePreventive maintenance
:often called:often called Software EngineeringSoftware Engineering moremore
easily corrected, adapted, and enhance.easily corrected, adapted, and enhance.
15. Main ActivitiesMain Activities
Software project tracking and controlSoftware project tracking and control
Formal technical reviewFormal technical review
Software quality assuranceSoftware quality assurance
Software configuration managementSoftware configuration management
Document preparation andDocument preparation and
productionproduction
Reusability managementReusability management
MeasurementMeasurement
Risk managementRisk management
16. A Common ProcessA Common Process
FrameworkFrameworkCommon process frameworkCommon process framework
Framework activitiesFramework activities
work taskswork tasks
work productswork products
milestones &milestones &
deliverablesdeliverables
QA checkpointsQA checkpoints
Umbrella ActivitiesUmbrella Activities
17. Process MaturityProcess Maturity
Software Engineering Institute (SEI)Software Engineering Institute (SEI)
has developed a comprehensivehas developed a comprehensive
model predicated on a softwaremodel predicated on a software
engineering capabilities that shouldengineering capabilities that should
be present as organization reachbe present as organization reach
different levels of process maturity.different levels of process maturity.
CalledCalled Capability Maturity ModelCapability Maturity Model
(CMM).(CMM).
18. CMMCMM
Level 1: InitialLevel 1: Initial
– The software process is characterized ad hocThe software process is characterized ad hoc
Level 2: RepeatableLevel 2: Repeatable
– Basic project management process areBasic project management process are
established to track cost, schedule, andestablished to track cost, schedule, and
functionality.functionality.
Level 3: DefinedLevel 3: Defined
– the software process for both management andthe software process for both management and
engineering activities is documented,engineering activities is documented,
standardized and integrated into an organizationstandardized and integrated into an organization
wide software process.wide software process.
19. CMM (Cont’d)CMM (Cont’d)
Level 4: ManagedLevel 4: Managed
– Detailed measures of the software process andDetailed measures of the software process and
product quality are collected.product quality are collected.
– Both SW process and product are quantitativelyBoth SW process and product are quantitatively
understood and controlled using detailedunderstood and controlled using detailed
measures.measures.
Level 5: OptimizingLevel 5: Optimizing
– Continuous process improvement is enabled byContinuous process improvement is enabled by
quantitative feedback from the process and fromquantitative feedback from the process and from
testing innovative ideas and technologies.testing innovative ideas and technologies.
20. 2.3 Software Process Models2.3 Software Process Models
A software engineer must incorporate aA software engineer must incorporate a
development strategy that encompasses thedevelopment strategy that encompasses the
process methods, and tools layers.process methods, and tools layers.
This strategy is often referred to as aThis strategy is often referred to as a
process modelprocess model or aor a software engineeringsoftware engineering
modelmodel..
A process model is chosen based on theA process model is chosen based on the
nature of project and application, thenature of project and application, the
methods and tools to be used, and themethods and tools to be used, and the
controls and deliverables that are required.controls and deliverables that are required.
21. Process as Problem SolvingProcess as Problem Solving
status
quo
problem
definition
technical
development
solution
integration
22. 2.4 The Linear Sequential2.4 The Linear Sequential
ModelModel
Sometimes called theSometimes called the classic lifeclassic life
cyclecycle or theor the waterfall modelwaterfall model..
analysis design code test
System/information
engineering
23. 2.5 The Prototyping Model2.5 The Prototyping Model
The prototype can serve as “the firstThe prototype can serve as “the first
system”system”
Users get a feel for the actual systemUsers get a feel for the actual system
and developers get to buildand developers get to build
something immediatelysomething immediately
A customer defines a set of generalA customer defines a set of general
objectives for SW but does notobjectives for SW but does not
identify detailed input, processing, oridentify detailed input, processing, or
output requirements.output requirements.
24. The Prototyping ModelThe Prototyping Model
listen
to
customer
build/revise
mock-up
customer
test-drives
mock-up
Prototyping
25. The Prototyping ModelThe Prototyping Model
This approach can be problematic:This approach can be problematic:
The customer misunderstands as aThe customer misunderstands as a
working version with a few fixes.working version with a few fixes.
The developer often makesThe developer often makes
implementation compromises in order toimplementation compromises in order to
get a prototype to work quickly.get a prototype to work quickly.
The customer and developer must agreeThe customer and developer must agree
that the prototype is built to serve as athat the prototype is built to serve as a
mechanism for defining requirements.mechanism for defining requirements.
26. 2.6 The RAD Model2.6 The RAD Model
Is a “high-speed” adaptation of theIs a “high-speed” adaptation of the
linear sequential model in whichlinear sequential model in which
rapid development is achieved byrapid development is achieved by
using component-based construction.using component-based construction.
Is an incremental softwareIs an incremental software
development process model thatdevelopment process model that
emphasizes an extremely shortemphasizes an extremely short
development cycle.development cycle.
27. The RAD ModelThe RAD Model
Phases:Phases:
Business modelingBusiness modeling
Data modelingData modeling
Process modelingProcess modeling
Application generation: 4GTApplication generation: 4GT
Testing and turnoverTesting and turnover
28. The RAD ModelThe RAD Model
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-90days
RAD
29. 2.7.1 The Incremental Model2.7.1 The Incremental Model
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