1 chapter 2 the process. 2 process what is it? who does it? why is it important? what are the...
TRANSCRIPT
1
Chapter 2Chapter 2The The
ProcessProcess
2
ProcesProcesss
What is it?What is it? Who does it?Who does it? Why is it important?Why is it important? What are the steps?What are the steps? What is the work product?What is the work product? How to ensure it be done right?How to ensure it be done right?
3
ProceProcessss
DefinitionDefinition
It’s a set of It’s a set of ordered tasksordered tasks involving activities, involving activities, constraints, and constraints, and resources that produce resources that produce an intended output of an intended output of some kind.some kind.
4
Software & Software & EngineeringEngineering
SoftwareSoftware is a set of items or objects that form a “configuration” that includes
• programs • documents • data ...
EngineeringEngineering is the analysis, design, is the analysis, design, construction, verification, and construction, verification, and management of technical entities.management of technical entities.
5
Software Software EngineeringEngineering
Software engineering is the technological and managerial discipline concerned with systematic production and maintenance of software products that are developed and modified on time and within cost constraints.
Software engineering is a discipline that integrates process, methods, and tools for the development of computer software.
6
Software Engineering Software Engineering LayersLayers
a “quality” focusa “quality” focus
process modelprocess model
methodsmethods
toolstools
7
Software Engineering Software Engineering PhasesPhases
Definition Phase – WhatDefinition Phase – What Development Phase – HowDevelopment Phase – How Support / Maintenance Phase – Support / Maintenance Phase –
ChangeChange• CorrectionCorrection• AdaptationAdaptation• EnhancementEnhancement• PreventionPrevention
8
ProceProcessss
9
ProcessProcess CharacteristicsCharacteristics
• Prescribes all major process activitiesPrescribes all major process activities• Uses resources with constraintsUses resources with constraints• Produces intermediate and final Produces intermediate and final productsproducts
• May be composed of subprocessesMay be composed of subprocesses• Has entry and exit criteriaHas entry and exit criteria• Are organized in a sequenceAre organized in a sequence• Has a set of guiding principles to Has a set of guiding principles to explain process goalsexplain process goals
10
Software Development StagesSoftware Development Stages Requirements analysis and Requirements analysis and
definitiondefinition System designSystem design Program designProgram design Writing the programWriting the program Unit testing Unit testing Integration testingIntegration testing System testingSystem testing System deliverySystem delivery MaintenanceMaintenance
ProcessProcess
11
A Common Process A Common Process FrameworkFramework
Framework ActivitiesFramework Activities
Task setTask set
taskstasks
milestones & deliverablesmilestones & deliverables
QA checkpointsQA checkpoints
Umbrella ActivitiesUmbrella Activities
12
Umbrella Umbrella ActivitiesActivities
Software project managementSoftware project management Formal technical reviewsFormal technical reviews Software quality assuranceSoftware quality assurance Software configuration Software configuration
managementmanagement Document preparation and Document preparation and
productionproduction Reusability managementReusability management MeasurementMeasurement Risk managementRisk management
13
Process Process MaturityMaturity
SEI establishes five process SEI establishes five process maturity levels. maturity levels.
CMM defines key activities required CMM defines key activities required at different levels of process at different levels of process maturity.maturity.
KPA establish the context in which KPA establish the context in which technical methods are applied, technical methods are applied, work products are produced, work products are produced, milestones are established, quality milestones are established, quality is ensured, and change is properly is ensured, and change is properly managed.managed.
14
Process Maturity Process Maturity LevelsLevels
Level 1: InitialLevel 1: InitialLevel 2: RepeatableLevel 2: RepeatableLevel 3: DefinedLevel 3: DefinedLevel 4: ManagedLevel 4: ManagedLevel 5: Optimizing Level 5: Optimizing
15
Key Process Key Process AreasAreas(KPA) (KPA) KPAs form the basis for KPAs form the basis for
management control of software management control of software projects.projects.
Each KPA is described by the Each KPA is described by the following characteristics:following characteristics:
GoalsGoals CommitmentsCommitments AbilitiesAbilities ActivitiesActivities Methods for monitoringMethods for monitoring implementationimplementation Methods for verifyingMethods for verifying implementationimplementation
16
Capability Maturity Capability Maturity ModelModel(CMM)(CMM)
Process maturity level 2 Process maturity level 2 (repeatable)(repeatable) Software configuration Software configuration
managementmanagement Software quality assuranceSoftware quality assurance Software subcontract Software subcontract
managementmanagement Software project tracking and Software project tracking and
oversight oversight Software project planning Software project planning Requirements management Requirements management
17
Process maturity level 3 Process maturity level 3 (defined)(defined) Peer reviewsPeer reviews Intergroup coordinationIntergroup coordination Software product engineeringSoftware product engineering Integrated software managementIntegrated software management Training programTraining program Organization process definitionOrganization process definition Organization process managementOrganization process management
18
Process maturity level 4 Process maturity level 4 (managed)(managed) Software quality managementSoftware quality management Quantitative process Quantitative process
management management
Process maturity level 5Process maturity level 5 (o(optimizing)ptimizing)
Process change managementProcess change management Technology change Technology change
managementmanagement Defect prevention Defect prevention
19
The Process The Process ModelModel
Process Model / Software Process Model / Software EngineeringEngineering ParadigmParadigm is a is a development strategydevelopment strategy that that encompasses the process, encompasses the process, methods, and toolsmethods, and tools. .
20
The Process The Process ModelModel
(continued)(continued) ReasonsReasons for modeling a process: for modeling a process:
Understand the activities, resources, Understand the activities, resources, and constraints involved in software and constraints involved in software developmentdevelopment
Help the development team to find Help the development team to find inconsistencies, redundancies, and inconsistencies, redundancies, and omissions in the process.omissions in the process.
Help the development team to Help the development team to Evaluate candidate activities for Evaluate candidate activities for appropriateness in addressing these appropriateness in addressing these goalsgoals..
……
21
Process as Problem Process as Problem SolvingSolving
statusquo
problemdefinition
technicaldevelopment
solutionintegration
22
Process as Problem Process as Problem SolvingSolving
23
The Linear The Linear ModelModel
analysis design code test
System/informationengineering
support
24
The Linear The Linear ModelModel(cont.)(cont.)
Problems:
• Real projects rarely follow the sequential flow that the model proposes.
• It is often difficult for the customer to state all requirements explicitly.
• The customer must have patience.
25
The The Prototyping ModelModel
listento
customerbuild/revise
mock-up
customertest-drivesmock-up
26
Rapid Application DevelopmentModels (RAD)Models (RAD)
businessmodeling
datamodeling
processmodeling
applicationgeneration
testing&
turnover
businessmodeling
datamodeling
processmodeling
applicationgeneration
testing&
turnover
businessmodeling
datamodeling
processmodeling
applicationgeneration
testing&
turnover
team #1
team #2team #3
60 - 90 days
27
Evolutionary Software Process Evolutionary Software Process ModelModel
The Incremental ModelThe Incremental Model The Spiral ModelThe Spiral Model The Concurrent Development The Concurrent Development
ModelModel
28
The Incremental The Incremental ModelModel
analysis design code test
System/informationengineering
analysis design code test
analysis design code test
analysis design code test
increment 2
increment 3
increment 4
increment 1
delivery of1st increment
delivery of2nd increment
delivery of3rd increment
delivery of4th increment
calendar time
29
Incremental & Incremental & Iterative Iterative
Development Development ModelsModels
30
A Spiral A Spiral ModelModel
CustomerCommunication
Planning
Construction & ReleaseCustomerEvaluation
Engineering
Risk Analysis
Concept development projectsNew product development projectsProduct enhancement projectsProduct maintenance projects
Project entry point axis
31
Concurrent Process Concurrent Process ModelModel
32
Component Assembly Component Assembly ModelModel
33
The Formal Methods The Formal Methods ModelModel
Formal methodsFormal methods — the process to — the process to apply when a mathematical apply when a mathematical specification is to be developed.specification is to be developed.
34
Fourth Generation Fourth Generation TechniqueTechnique
(4GT)(4GT) It encompasses a broad array of software It encompasses a broad array of software tools which tools which automatically generate source automatically generate source codecode based on the developer’s based on the developer’s specification.specification.
It focuses on the ability to specify It focuses on the ability to specify software using software using specialized language formsspecialized language forms or a or a graphic notationgraphic notation..
The use of 4GT is a viable approach for The use of 4GT is a viable approach for many different many different application areasapplication areas..
For small or intermediate applications, For small or intermediate applications, greatly reduce the greatly reduce the coding timecoding time..
For large software development, it For large software development, it demands as much or more demands as much or more analysis, analysis, design, and testingdesign, and testing..