methods for oo development usdp and dsdm. 2 outline characteristics of oo development usdp uml and...
TRANSCRIPT
Methods for OO Methods for OO DevelopmentDevelopment
USDP and DSDMUSDP and DSDM
22
OutlineOutline
Characteristics of OO developmentCharacteristics of OO development
USDPUSDP
UML and DSDMUML 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
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…
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
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?
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
88
OutlineOutline
Characteristics of OO developmentCharacteristics of OO development
USDP USDP – Unified Software Development ProcessUnified Software Development Process
UML and DSDMUML 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?
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
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.
1212
Iterative & Incremental DeliveryIterative & Incremental Delivery
Iteration 1
Iteration n
Micro Process or mini-project
Macro Process
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
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?
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
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.
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
1818
USDP PhasesUSDP Phases
Inception PhaseInception Phase
Elaboration PhaseElaboration Phase
Construction PhaseConstruction Phase
Transition PhaseTransition Phase
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
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
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
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
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
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
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?
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
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 ?
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
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
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
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
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
3333
Activity 4Activity 4
What do USDP and DSDM have in What do USDP and DSDM have in common?common?
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.
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
3636
SOLUTIONSSOLUTIONS
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
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
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