1 Chapter 2 The Process. 2 Process What is it? Who does it? Why is it important? What are the...

Preview:

Citation preview

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..

Recommended