1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to...

38
1 SEA Side Software Engineering Annotations •AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software development. Professor Sara Stoecklin Director of Software Engineering- Panama City Florida State University – Computer Science [email protected] [email protected] 850-522-2091 850-522-2023 Ex 182

Transcript of 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to...

Page 1: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

1

SEA Side Software Engineering Annotations

•AAnnotation 5: Process Model

One hour presentation to inform you of new techniques and practices in software development.

Professor Sara StoecklinDirector of Software Engineering- Panama City

Florida State University – Computer [email protected]

[email protected]

850-522-2023 Ex 182

               

Page 2: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

2

The Process ModelThe Process Model(Software Development Life Cycle (Software Development Life Cycle

(SDLC))(SDLC))MethodologyMethodology

Page 3: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

3

OvervieOvervieww

HeavyweightHeavyweight Waterfall Model, DOD WaterfallWaterfall Model, DOD Waterfall Unified ProcessUnified Process RAD, Component Assembly ModelRAD, Component Assembly Model Iterative, EvolutionaryIterative, Evolutionary SpiralSpiral

MiddleweightMiddleweight KorbraKorbra UML ComponentsUML Components CleanRoomCleanRoom

LightweightLightweight XPXP Agile Software DevelopmentAgile Software Development CaLMCaLM

Page 4: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

4

A Common Process A Common Process FrameworkFramework

Work Tasks Work Tasks

Work ProductsWork Products

MilestonesMilestones

DeliverablesDeliverables

QA CheckpointsQA Checkpoints

Page 5: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

5

Some Common Process Some Common Process FlowsFlows

Linear Process FlowsLinear Process Flows

Iterative Process FlowsIterative Process Flows

Incremental Process FlowsIncremental Process Flows

Page 6: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

6

Linear Linear ModelsModels

analysis design code test

System/informationengineering

Page 7: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

7

Linear Model Linear Model CharacteristicsCharacteristics

Documentation driven model

systematic and requires rigor.

Inflexible partitioning of project into distinct stages

difficult to respond to changes in customer requirements

Model appropriate when requirements are well-understood.

Programmers HATE to create documentation.

Users HATE to read documentation.

If users read, they rarely understand documentation.

Programmers don't understand other programmers documentations.

Standards for documentation not clear although UML ordained.

Page 8: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

8

Iterative Iterative ModelsModels

listento

customerbuild/revisemock-up

customertest-drivesmock-up

Prototyping

Page 9: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

9

Evolutionary/Prototype Evolutionary/Prototype ModelModel

IssuesIssuesProcess is not visibleProcess is not visible--Lack of process visibility--Lack of process visibilitySystems are often poorly structuredSystems are often poorly structured—Change —Change

tends to corrupt the structurestends to corrupt the structuresSpecial tools and techniques may be requiredSpecial tools and techniques may be required——

Special skills (e.g. in languages for rapid Special skills (e.g. in languages for rapid prototyping) may be requiredprototyping) may be required

ApplicabilityApplicabilityFor small or medium-size interactive systemsFor small or medium-size interactive systemsFor parts of large systems (e.g. the user For parts of large systems (e.g. the user

interface)interface)For short-lifetime systemsFor short-lifetime systems

Page 10: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

10

Iterative Iterative ModelsModels

businessmodeling

datamodeling

processmodeling

applicationgeneration

testing&

turnover

b u s i n e s sm o d e l i n g

d a t am o d e l i n g

p r o c e s sm o d e l i n g

a p p l i c a t i o ng e n e r a t i o n

t e s t in g&

t u r n o v e r

b u s i n e s sm o d e l i n g

d a t am o d e l i n g

p r o c e s sm o d e l i n g

a p p l i c a t i o ng e n e r a t i o n

t e s t i n g&

t u r n o v e r

team #1team #2

team #3

60 - 90 days

RAD

Page 11: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

11

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

Page 12: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

12

Waterfall ModelSSR - System Software Review

PDR - Preliminary Design Review

CDR - Critical Design Review

TRR - Test Rediness Review

FCA - Functional Configuration Audit

PCA - Physical Configuration Audit

ORR - Operational Rediness ReviewSoftwareRequirements

AnalysisSoftwareDesign

Code and UnitTesting

SoftwareIntegrationand Test

SoftwareAcceptance

Test

SSR PDR CDR TRR CRRFCAPCA

SRS

SDS

STP

SIP

Page 13: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

13

SoftwareRequirements

Analysis

DetailedSoftwareDesign

Code and UnitTesting

SoftwareIntegration

and Test SoftwareAcceptance

Test

SSR PDR CDR TRR FCAPCA

SystemDesign

PreliminarySoftwareDesign

SDR

HardwareHardware

Implementation

Operational Timelines

Waterfall - DOD Model NASA Model)

SRS

PP

PDD

SDS

STPSIP

Page 14: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

14

Rapid Application Development ModelRapid Throwaway Prototype Model

SoftwareRequirements

Analysis

SoftwareDesign

Code and UnitTesting Software

Integrationand Test Software

AcceptanceTest

SSR PDR CDR TRR CRRFCAPCA

BuildPrototype

PR

SRS

PDD

SDS

STP

SIP

Page 15: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

15

RAD RAD CharacteristicsCharacteristics High speed adaptation of the linear model

Based on Component-based construction Has incremental flavor Not well- suited where precision is required,

e.g. high risk systems not easily modularized systems

Have rigid performance requirements1. Model the Information Flow2. Refine the flows into Data elements3. Model the data transformations4. Generate the code 4GLs, component reuse, CASE5. Test and integration

Page 16: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

16

Evolutionary (Prototype) Model

ONLY A PART OF THE FULL SYSTEM

Series of Implementations of each PART

SoftwareRequirements

Analysis

SoftwareDesign

Code and UnitTesting Software

Integrationand Test Software

AcceptanceTest

SSR PDR CDR TRR CRRFCAPCA

BuildPrototype

PR

SRS

PDD

SDS

STP

SIP

Page 17: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

17

SoftwareRequirements

AnalysisSoftwareDesign

Code and UnitTesting Software

Integrationand Test Software

AcceptanceTest

SSR PDR CDR TRR CRRFCAPCA

Incremental Development Model

ONLY A PART OF THE FULL SYSTEM

Can Determine a PART at any phase.

SRS

SDS

STP

SIP

Page 18: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

18

Characteristics of Incremental Characteristics of Incremental ModelModel

Same Requirements, specification, maintenance,and requirement phases as in Waterfall

The systems is partitioned into builds where each build is independently designed and scheduled "incrementally“ The 1st build gives some "production"functionality Subsequent builds add functionality

User perspective Get some results quickly Reduces new system "culture shock"

Page 19: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

19

Characteristics of Incremental Characteristics of Incremental ModelModel

Costs easily prorated over the development cycle It employs the systems approach Changes are easier to implement (e.g.design of later

builds may not start until some phases are complete and all their changes well known).

Problems - May degenerate into "Build and Fix“ May result in builds that cannot integrate with one

another

Page 20: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

20

Spiral Model

Risk Analysis

Prototyping

Planning

Client Evaluation and Input

Simulation

Operational Prototype

Verification for Next Level

Developing

Page 21: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

21

An Evolutionary (Spiral) An Evolutionary (Spiral) ModelModel

CustomerCommunication

Planning

Construction & ReleaseCustomerEvaluation

Engineering

Risk Analysis

Prototyping

Simulation/ Operational Prototype/Verification for the Next Level/Development

And input

Page 22: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

22

REQUIREMENTSANALYSIS

SYSTEMDESIGN

PROGRAMDESIGN

CODING

UNIT & INTE-GRATION TESTING

SYSTEMTESTING

ACCEPTANCETESTING

OPERATION& MAINTENANCE

Verify design

Validate requirements

[Pfleeger 98]

V V ModelModel

Page 23: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

23

Operational Specification Operational Specification ModelModel

DELIVEREDSYSTEM

Execute andRevise

SYSTEMREQUIREMENTS

(sometimes informalor incomplete)

TESTOPERATIONALSPECIFICATION

(problem-oriented)

TRANSFORMEDSPECIFICATION

(implementation-oriented)

[Pfleeger 98]

Page 24: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

24

Still Other Process Still Other Process ModelsModels

Concurrent process modelConcurrent process model——recognizes that different part of recognizes that different part of the project will be at different the project will be at different places in the processplaces in the process

Formal methodsFormal methods—the process to —the process to apply when a mathematical apply when a mathematical specification is to be developedspecification is to be developed

Page 25: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

25

Heavyweight Heavyweight MethodologiesMethodologies

Predictable sequential series of tasksPredictable sequential series of tasks Structured sequence of eventsStructured sequence of events Plan and work the planPlan and work the plan Allows management of milestonesAllows management of milestones Are rigid in deviations to the planAre rigid in deviations to the plan Lack flexibility to use different Lack flexibility to use different

methods for different problemsmethods for different problems Trouble handling uncertaintyTrouble handling uncertainty

Page 26: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

26

Capability Maturity Capability Maturity ModelModel

Organizations are not born using a mature Organizations are not born using a mature process model. process model.

Most organizations use NO known process Most organizations use NO known process modelmodel

Watts Humphrey wrote a book to lay out a plan Watts Humphrey wrote a book to lay out a plan for improving the process model within for improving the process model within organizations. His book “Managing the organizations. His book “Managing the Software Process” and other research has Software Process” and other research has greatly improved the software engineering greatly improved the software engineering process. process.

The SEI Developed a capability maturity model The SEI Developed a capability maturity model which proposes a model for maturing an which proposes a model for maturing an organizations process model. organizations process model.

Page 27: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

27

Capability Maturity Capability Maturity ModelModel

Five Process Maturity LevelsFive Process Maturity LevelsLevel 0: ChaosLevel 0: ChaosLevel 1: InitialLevel 1: InitialLevel 2: RepeatableLevel 2: RepeatableLevel 3: DefinedLevel 3: DefinedLevel 4: ManagedLevel 4: ManagedLevel 5: OptimizingLevel 5: Optimizing

Page 28: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

28

Middleweight Middleweight MethodologiesMethodologies

Predictable sequential series of tasksPredictable sequential series of tasks Structured sequence of eventsStructured sequence of events Plan and work the planPlan and work the plan Allows management of milestonesAllows management of milestones Are Are NOTNOT rigid in deviations to the plan rigid in deviations to the plan ContainContain flexibility to use different methods flexibility to use different methods

for different problemsfor different problems HandleHandle uncertainty uncertainty Domain experts and programmers work Domain experts and programmers work

closelyclosely

Page 29: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

29

CleanRoom Approach

SpecificationIncremental Development

Planning Specificationand Design

StatisticalTesting

Certification

UsageDesign

Page 30: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

30

Reuse and Automated Development Models/Component Assembly Model

SoftwareRequirements

AnalysisSoftwareDesign

Code and UnitTesting Software

Integrationand Test Software

AcceptanceTest

SSR PDR CDR TRR CRRFCAPCA

Identify Reusable Components

Informal Specification Formal Specifications Code

SRS

SDS

STP

SIP

Page 31: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

31

LightWeight LightWeight MethodologiesMethodologies

Lightweight methodologies :Lightweight methodologies : Customer is the highest priority at all phasesCustomer is the highest priority at all phases Change in requirements welcomed anytimeChange in requirements welcomed anytime Deliver is done frequentlyDeliver is done frequently Domain experts and programmers work closelyDomain experts and programmers work closely Motivate developers via various methodsMotivate developers via various methods Hold conversations while prototyping or Hold conversations while prototyping or

programmingprogramming Amount of workable software is the measure of Amount of workable software is the measure of

success success Good Design occurs every momentGood Design occurs every moment Reflection on designs happen oftenReflection on designs happen often

Page 32: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

32

LightWeight LightWeight MethodologiesMethodologies

Differenced between light and heavyDifferenced between light and heavy Individuals over processIndividuals over process Working software over documentationWorking software over documentation Customer collaboration over contractsCustomer collaboration over contracts Responding to change over planningResponding to change over planning Stepping up to the plateStepping up to the plate

Page 33: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

33

LightWeight Methodology – LightWeight Methodology – CaLMCaLM

Design

Project Management

Implementation

Meetings

Page 34: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

34

ThThe e

XP XP ProProcescesss

Build User Stories

Define Architectural Spikes

Conduct Release Planning

Build Iteration

Conduct Acceptance

Testing

requirements

metaphor

new velocity

estimating

release plan

bugs

next iteration

release

Defines user requirements

Controls Scope

ImprovesQuality

Page 35: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

35

Twelve XP PracticesTwelve XP Practices

Five Basic XP PrinciplesFive Basic XP PrinciplesSmall ReleasesSmall Releases40-hour work week40-hour work weekOn-site customerOn-site customerCollective OwnershipCollective OwnershipCoding StandardsCoding Standards

Seven Process TechniquesSeven Process Techniques

Page 36: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

36

Twelve XP PracticesTwelve XP Practices

Seven Process TechniquesSeven Process TechniquesThe Planning GameThe Planning GameMetaphorMetaphorSimple DesignSimple DesignPair ProgrammingPair ProgrammingRefactoringRefactoringContinuous IntegrationContinuous IntegrationTestingTesting

Page 37: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

37

Visioning. A good visioning practice Project initiation. Short, iterative, feature-driven,

timeboxed delivery Constant feedback. Customer involvement. Technical excellence.

LightWeight Methodology – AgileLightWeight Methodology – Agile

Page 38: 1 SEA Side Software Engineering Annotations AAnnotation 5: Process Model One hour presentation to inform you of new techniques and practices in software.

38

Management must have milestones. Deliverables must be the payment guide. Lightweight methodologies do not scale. Pair programming WORKS for GOOD

design. Customer involvement with constant

feedback. Training is essential.

THE BESTTHE BEST