methods for oo development usdp and dsdm. 2 outline characteristics of oo development usdp uml and...

39
Methods for OO Methods for OO Development Development USDP and DSDM USDP and DSDM

Upload: louisa-james

Post on 16-Jan-2016

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

Methods for OO Methods for OO DevelopmentDevelopment

USDP and DSDMUSDP and DSDM

Page 2: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

22

OutlineOutline

Characteristics of OO developmentCharacteristics of OO development

USDPUSDP

UML and DSDMUML and DSDM

Page 3: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

33

Focus of OO Analysis & DesignFocus of OO Analysis & Design

Break system downBreak system down– Classes & ObjectsClasses & Objects– CommunicationCommunication

Class ModelsClass Models– Structure & BehaviourStructure & Behaviour

Use Case drivenUse Case driven– User’s perspectiveUser’s perspective

Page 4: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

44

OO: Technical AdvantageOO: Technical Advantage

ComponentsComponents– A coherent process, usingA coherent process, using– Widely accepted concepts and terminologyWidely accepted concepts and terminology

BenefitsBenefits– Improved software qualityImproved software quality– TraceabilityTraceability

Beware exaggerated claims…Beware exaggerated claims…

Page 5: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

55

OO: Iterative & IncrementalOO: Iterative & Incremental

ElaborationElaboration– Analysis, Design & ImplementationAnalysis, Design & Implementation

A Process of ChangeA Process of Change– Successive IterationsSuccessive Iterations– Incremental releasesIncremental releases

Development by ElaborationDevelopment by Elaboration– Semantically rich - UMLSemantically rich - UML

Page 6: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

66

Activity 1: Why use OO?Activity 1: Why use OO?

What are the main reasons for the shift What are the main reasons for the shift from the structured to object-oriented from the structured to object-oriented development approach?development approach?

Page 7: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

77

OO: Project ManagementOO: Project Management

Development by ElaborationDevelopment by Elaboration– No clear boundariesNo clear boundaries– Documentation evolves continuouslyDocumentation evolves continuously

Object solutionsObject solutions– More complexMore complex

Managing the processManaging the process– USDP to the rescueUSDP to the rescue

Page 8: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

88

OutlineOutline

Characteristics of OO developmentCharacteristics of OO development

USDP USDP – Unified Software Development ProcessUnified Software Development Process

UML and DSDMUML and DSDM

Page 9: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

99

USDP to the rescue…USDP to the rescue…USDP – a generic processUSDP – a generic process– Tailored to produce specific methodsTailored to produce specific methods– E.g. RUP – IBM Rational Unified ProcessE.g. RUP – IBM Rational Unified Process

The USDP is:The USDP is:– Use Case DrivenUse Case Driven– Architecture CentricArchitecture Centric– Iterative and IncrementalIterative and Incremental– Component-Based (a later lecture!)Component-Based (a later lecture!)

What does this all mean?What does this all mean?

Page 10: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1010

Use-Case DrivenUse-Case Driven

In USDP the basic element is a single In USDP the basic element is a single interaction between user and systeminteraction between user and systemUse cases are the start of modellingUse cases are the start of modellingUnit from which later models are derivedUnit from which later models are derivedEach use case is a thread that links Each use case is a thread that links requirements to implementationrequirements to implementationHas practical significance for usersHas practical significance for usersConstant reminder to systems developers Constant reminder to systems developers that only users’ requirements really matterthat only users’ requirements really matter

Page 11: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1111

Architecture-CentricArchitecture-Centric

In USDP, software architecture is a theme In USDP, software architecture is a theme from the earliest stages of a projectfrom the earliest stages of a projectReflected most obviously in:Reflected most obviously in:

– Stereotyping of boundary, control and entity Stereotyping of boundary, control and entity classesclasses

– Use of packages to organize both models and Use of packages to organize both models and development activitydevelopment activity

– Development of ‘architectural’ models – the Development of ‘architectural’ models – the outlines of each USDP model – as a basis for outlines of each USDP model – as a basis for development.development.

Page 12: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1212

Iterative & Incremental DeliveryIterative & Incremental Delivery

Iteration 1

Iteration n

Micro Process or mini-project

Macro Process

Page 13: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1313

Iterative DevelopmentIterative Development

The USDP lifecycle is cyclic:The USDP lifecycle is cyclic:– Analyse a bitAnalyse a bit– Design that bitDesign that bit– Code the designCode the design– Test the codeTest the code– Refine the analysis and repeatRefine the analysis and repeat

Page 14: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1414

Activity 2: Activity 2: How does this help?How does this help?

““plan a little, design a little, and code a plan a little, design a little, and code a little”little”– What are the benefits of this approach?What are the benefits of this approach?– What does it allow managers to do?What does it allow managers to do?– How does this approach help in the How does this approach help in the

management of risk?management of risk?– What about implementation?What about implementation?

Page 15: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1515

1 2 3 4 5 6 7 8

Inception Elaboration Construction Transition

1 2 3 4 5 6 7 8

Requirements

Analysis

Design

Implementation

Test

Phases

WorkflowsIterations

1 2 3 4 5 6 7 8

Workflows group activities logically

In an iteration, you walk through all workflows

Page 16: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1616

Each major workflow describes how to create and maintain a particular model

Models and WorkflowsModels and Workflows

DesignModel

ImplementationModel

TestModel

RequirementsWorkflow

Analysis Workflow

ImplementationWorkflow

Test Workflow

Use-CaseModel

Design Workflow

AnalysisModel

DeploymentModel

verified by

implemented by

distributed byrealized by

specified by

Jacobson et al. (1999)

This shows dependencies of the use case model.

Page 17: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1717

Risk ManagementRisk Management

Identification of the risksIdentification of the risks

Iterative/Incremental DevelopmentIterative/Incremental Development

The prototype or pilot projectThe prototype or pilot project

Early testing and deployment as opposed Early testing and deployment as opposed to late testing in traditional methodsto late testing in traditional methods

Page 18: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1818

USDP PhasesUSDP Phases

Inception PhaseInception Phase

Elaboration PhaseElaboration Phase

Construction PhaseConstruction Phase

Transition PhaseTransition Phase

Page 19: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

1919

1 2 3 4 5 6 7 8

Inception Elaboration Construction Transition

1 2 3 4 5 6 7 8

Requirements

Analysis

Design

Implementation

Test

Phases

WorkflowsIterations

1 2 3 4 5 6 7 8

Page 20: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2020

Inception Elaboration Construction Transition

Requirements

Analysis

Design

Implementation

Test

Phases

WorkflowsIterations

1 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8

Page 21: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2121

Inception Elaboration Construction Transition

Requirements

Analysis

Design

Implementation

Test

Phases

WorkflowsIterations

1 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8

Page 22: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2222

Inception Elaboration Construction Transition

Requirements

Analysis

Design

Implementation

Test

Phases

WorkflowsIterations

1 2 3 4 5 6 7 81 2 3 4 5 6 7 81 2 3 4 5 6 7 8

Page 23: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2323

RUP Approach – Best-Known USDP VariantRUP Approach – Best-Known USDP Variant

PhasesProcess Workflows

Iterations

Supporting Workflows

Project ManagementEnvironment

Business Modeling

Implementation

Test

Analysis & Design

Preliminary Iteration(s)

Iter.#1

Iter.#2

Iter.#n

Iter.#n+1

Iter.#n+2

Iter.#m

Iter.#m+1

Deployment

Configuration Mgmt

Requirements

Elaboration TransitionInception Construction

Page 24: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2424

1 2 3 4 5 6 7 8

Inception Elaboration Construction Transition

1 2 3 4 5 6 7 8

Requirements

Analysis

Design

Implementation

Test

1 2 3 4 5 6 7 8

Activity 3

Page 25: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2525

Activity 3: Activity 3: A Typical Development?A Typical Development?

What is the state of the project?What is the state of the project?

Are there any possible problem areas?Are there any possible problem areas?

How they might have come about?How they might have come about?

What actions you would take to better What actions you would take to better manage this project? manage this project?

Page 26: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2626

OutlineOutline

Characteristics of OO developmentCharacteristics of OO development– FocusFocus– AdvantagesAdvantages– Management problemsManagement problems

USDPUSDP– Iterative approachIterative approach– WorkflowsWorkflows– PhasesPhases

UML and DSDMUML and DSDM

Page 27: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2727

Linking DSDM to other methodsLinking DSDM to other methods

Why look at DSDM in isolation ?Why look at DSDM in isolation ?

Why not take the “best” bits of DSDM and Why not take the “best” bits of DSDM and combine with other methods ? combine with other methods ? – We’ve already seen how it combines with XPWe’ve already seen how it combines with XP

Why not use the robustness of more Why not use the robustness of more formal methods to strengthen DSDM ?formal methods to strengthen DSDM ?

Why should organisation be constrained Why should organisation be constrained by one method ?by one method ?

Page 28: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2828

Design& Build

Iteration

AgreeSchedule

CreateDesign Prototype

IdentifyDesign Prototype

ReviewDesign

Prototype

Implementation

Implement

ReviewBusiness

TrainUsers

User Approval &

User GuidelinesReview Prototype

FunctionalModel

Iteration

Agree Schedule

CreateFunctionalPrototype

IdentifyFunctionalPrototype

Feasibility

Business Study

UML Products at Each DSDM StageUML Products at Each DSDM Stage

Page 29: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

2929

Feasibility

• Output Initial, High level Use Case Diagrams

Actors (user roles) Use Case names; no description

Activity Diagrams Classes

What Is A Use Case?A business processSeries of transactions between user (Actor) and system

Where Do Use Cases Come From?BPMFacilitated Workshops

Who Produces the model?UsersBusiness AnalystsSpecialist Modellers

Feasibility Stage

Page 30: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3030

Output Use Case Descriptions Sequence/Collaboration Diagrams For Each Use Case

Ignore Interface; find Business Objects More Use Cases; Primary/Secondary

Business Static Structure Diagram Initial

Inheritance/Aggregation/Composition/Association MoSCoW list of Use Cases for increments (PRL) Initial Package/Component/Deployment Diagrams for System Architecture Definition

Feasibility

Business Study

Who? Users Business Analysts Specialist Modellers

How? Facilitated Workshops

Business Study Stage

Page 31: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3131

Functional Model IterationFunctional Model Iteration

OutputOutputMore detail on:More detail on:– Selected Use Case Sequence/Collaboration DiagramsSelected Use Case Sequence/Collaboration Diagrams

• BusinessBusiness Exceptions/Alternate Courses Exceptions/Alternate Courses

– Class Diagram for Classes used by selected Use Class Diagram for Classes used by selected Use CasesCases

• Operations from Sequence/Collaboration DiagramsOperations from Sequence/Collaboration Diagrams• Attributes from required domain dataAttributes from required domain data

Initial Statechart Diagrams for “dynamic” objectsInitial Statechart Diagrams for “dynamic” objects– Business rules for objects which must behave Business rules for objects which must behave

differently to messages at different times during the differently to messages at different times during the processprocess

Who? Users Prototypers Business Analysts Specialist Modellers

How? Facilitated Workshops Regular (daily) team

reviews

Review Prototype

FunctionalModel

Iteration

Agree Plan

CreateFunctionalPrototype

IdentifyFunctionalPrototype

Page 32: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3232

Design and Build IterationDesign and Build Iteration

OutputOutput– Reusable classes/components added to modelReusable classes/components added to model

• Previous projects/iterationsPrevious projects/iterations

– Language specifics added to all diagramsLanguage specifics added to all diagrams– Application Control objects added to Application Control objects added to

Sequence/Collaboration DiagramsSequence/Collaboration Diagrams– Architecture DiagramsArchitecture Diagrams

• Package, Component, ImplementationPackage, Component, Implementation Who? Users Prototypers Application Designers Language specialists Architecture Designers Specialist Modellers

How? Facilitated Workshops Regular (daily) team

reviews

Design& Build

Iteration

AgreePlan

CreateDesign Prototype

IdentifyDesign Prototype

ReviewDesign

Prototype

Page 33: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3333

Activity 4Activity 4

What do USDP and DSDM have in What do USDP and DSDM have in common?common?

Page 34: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3434

An Excellent ReferenceAn Excellent Reference

Jacobson, I., Booch, G. & and Rumbaugh, J. Jacobson, I., Booch, G. & and Rumbaugh, J. (1999), (1999), The Unified Software The Unified Software Development ProcessDevelopment Process, Addison-Wesley., Addison-Wesley.

ISBN – 0-201-57169-2ISBN – 0-201-57169-2

The authority on USDP.The authority on USDP.

Page 35: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3535

Suggested ReadingSuggested ReadingBennett, McRobb & Farmer (2005), Object-Oriented Bennett, McRobb & Farmer (2005), Object-Oriented Systems Analysis and Design using UML, McGraw-Systems Analysis and Design using UML, McGraw-Hill, ch.21.Hill, ch.21.

DSDM Consortium (2003), “DSDM and UML”, version DSDM Consortium (2003), “DSDM and UML”, version 2, DSDM Consortium. 2, DSDM Consortium.

Best Practices for Software Development TeamsBest Practices for Software Development Teams, , Rational Unified Process, A Rational Software Rational Unified Process, A Rational Software Corporation White Paper Corporation White Paper http://www-128.ibm.com/developerworks/rational/librarhttp://www-128.ibm.com/developerworks/rational/library/253.htmly/253.html

Page 36: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3636

SOLUTIONSSOLUTIONS

Page 37: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3737

Why use OO?Why use OO?

Advances in hardware and softwareAdvances in hardware and software– which have which have enabled enabled the widespread application of the widespread application of

object solutionsobject solutions– GUIs demand GUIs demand event-driven programmingevent-driven programming which is which is

best served by object technologybest served by object technology– Popularity of OO languages, e.g. JavaPopularity of OO languages, e.g. Java

Essential for large systems that are difficult to Essential for large systems that are difficult to maintainmaintain and even more difficult to and even more difficult to re-engineerre-engineer into modern solutions.into modern solutions.

– Object WrappingObject Wrapping

Desire for reuse and a component-based Desire for reuse and a component-based approachapproach

Page 38: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3838

How does this help?How does this help?

Mini-ProjectsMini-Projects– Promotes early risk mitigationPromotes early risk mitigation

Plan, design & code a littlePlan, design & code a little– Encourages participationEncourages participation– Allowing for correction soonerAllowing for correction sooner– Allows software to evolveAllows software to evolve– Exposes problems earlierExposes problems earlier

Management of RiskManagement of Risk

Page 39: Methods for OO Development USDP and DSDM. 2 Outline Characteristics of OO development USDP UML and DSDM

3939

What do USDP and DSDM have in What do USDP and DSDM have in common?common?

Iterative Iterative IncrementalIncrementalPrototypingPrototypingCan use UMLCan use UMLTesting throughout the lifecycleTesting throughout the lifecycleControlling riskControlling riskDefinition of rolesDefinition of roles– Though USDP doesn’t have user rolesThough USDP doesn’t have user roles