Transcript Document
Methods for OO Development USDP and DSDM Outline Characteristics of OO development USDP UML and DSDM 2 Focus of OO Analysis & Design Break system down – Classes & Objects – Communication Class Models – Structure & Behaviour Use Case driven – User’s perspective 3 OO: Technical Advantage Components – A coherent process, using – Widely accepted concepts and terminology Benefits – Improved software quality – Traceability Beware exaggerated claims… 4 OO: Iterative & Incremental Elaboration – Analysis, Design & Implementation A Process of Change – Successive Iterations – Incremental releases Development by Elaboration – Semantically rich - UML 5 Activity 1: Why use OO? What are the main reasons for the shift from the structured to object-oriented development approach? 6 OO: Project Management Development by Elaboration – No clear boundaries – Documentation evolves continuously Object solutions – More complex Managing the process – USDP to the rescue 7 Outline Characteristics of OO development USDP – Unified Software Development Process UML and DSDM 8 USDP to the rescue… USDP – a generic process – Tailored to produce specific methods – E.g. RUP – IBM Rational Unified Process The USDP is: – Use Case Driven – Architecture Centric – Iterative and Incremental – Component-Based (a later lecture!) What does this all mean? 9 Use-Case Driven In USDP the basic element is a single interaction between user and system Use cases are the start of modelling Unit from which later models are derived Each use case is a thread that links requirements to implementation Has practical significance for users Constant reminder to systems developers that only users’ requirements really matter 10 Architecture-Centric In USDP, software architecture is a theme from the earliest stages of a project Reflected most obviously in: – Stereotyping of boundary, control and entity classes – Use of packages to organize both models and development activity – Development of ‘architectural’ models – the outlines of each USDP model – as a basis for development. 11 Iterative & Incremental Delivery Macro Process Micro Process or mini-project Iteration 1 Iteration n 12 Iterative Development The USDP lifecycle is cyclic: – Analyse a bit – Design that bit – Code the design – Test the code – Refine the analysis and repeat 13 Activity 2: How does this help? “plan a little, design a little, and code a little” – What are the benefits of this approach? – What does it allow managers to do? – How does this approach help in the management of risk? – What about implementation? 14 Phases Workflows group Inception activitiesIterations logically Workflows 1 2 Elaboration 3 4 In an iteration, Construction Transition you walk through all workflows 5 6 7 8 Requirements Analysis Design Implementation Test 15 Models and Workflows This of Eachshows major dependencies workflow the use case model. describes how to create and maintain a particular model Requirements Workflow Use-Case Model specified by Analysis Workflow Design Workflow Analysis Model realized by distributed by Design Deployment Model Model implemented by Implementation Workflow verified by Implementation Model Test Workflow Test Model Jacobson et al. (1999) 16 Risk Management Identification of the risks Iterative/Incremental Development The prototype or pilot project Early testing and deployment as opposed to late testing in traditional methods 17 USDP Phases Inception Phase Elaboration Phase Construction Phase Transition Phase 18 Phases Inception Elaboration Construction Transition Iterations Workflows 1 2 3 4 5 6 7 8 Requirements Analysis Design Implementation Test 19 Phases Inception Elaboration Construction Transition Iterations Workflows 1 2 3 4 5 6 7 8 Requirements Analysis Design Implementation Test 20 Phases Inception Elaboration Construction Transition Iterations Workflows 1 2 3 4 5 6 7 8 Requirements Analysis Design Implementation Test 21 Phases Inception Elaboration Construction Transition Iterations Workflows 1 2 3 4 5 6 7 8 Requirements Analysis Design Implementation Test 22 RUP Approach – Best-Known USDP Variant Process Workflows Phases Inception Elaboration Construction Transition Business Modeling Requirements Analysis & Design Implementation Test Deployment Supporting Workflows Configuration Mgmt Project Management Environment Preliminary Iteration(s) Iter. #1 Iter. #2 Iter. #n Iter. Iter. #n+1 #n+2 Iter. #m Iter. #m+1 Iterations 23 Activity 3 Inception 1 2 Elaboration 3 4 Construction Transition 5 6 7 8 Requirements Analysis Design Implementation Test 24 Activity 3: A Typical Development? What is the state of the project? Are there any possible problem areas? How they might have come about? What actions you would take to better manage this project? 25 Outline Characteristics of OO development – Focus – Advantages – Management problems USDP – Iterative approach – Workflows – Phases UML and DSDM 26 Linking DSDM to other methods Why look at DSDM in isolation ? Why not take the “best” bits of DSDM and combine with other methods ? – We’ve already seen how it combines with XP Why not use the robustness of more formal methods to strengthen DSDM ? Why should organisation be constrained by one method ? 27 UML Products at Each DSDM Stage Feasibility Business Study Agree Schedule Create Functional Prototype Functional Model Iteration Implement Identify Functional Prototype Review Business Implementation Train Users User Approval & User Guidelines Review Prototype Identify Design Prototype Agree Schedule Design & Build Iteration Review Design Prototype Create Design Prototype 28 Feasibility Stage • Output Initial, High level Use Case Diagrams Feasibility What Is A Use Case? Actors (user roles) Use Case names; no description Activity Diagrams Classes A business process Series of transactions between user (Actor) and system Where Do Use Cases Come From? BPM Facilitated Workshops Who Produces the model? Users Business Analysts Specialist Modellers 29 Business Study Stage Feasibility Output Use Case Descriptions Sequence/Collaboration Diagrams For Each Use Case Business Study Business Static Structure Diagram Who? Users Business Analysts Specialist Modellers Ignore Interface; find Business Objects More Use Cases; Primary/Secondary Initial Inheritance/Aggregation/Composition/Association MoSCoW list of Use Cases for increments (PRL) Initial Package/Component/Deployment Diagrams for System Architecture Definition How? Facilitated Workshops 30 Functional Model Iteration Agree Plan Create Functional Prototype Functional Identify Functional Model Iteration Prototype Review Prototype Output More detail on: – Selected Use Case Sequence/Collaboration Diagrams Business Exceptions/Alternate Courses – Class Diagram for Classes used by selected Use Cases • • Operations from Sequence/Collaboration Diagrams Attributes from required domain data Initial Statechart Diagrams for “dynamic” objects Who? Users Prototypers Business Analysts Specialist Modellers How? Facilitated Workshops Regular (daily) team reviews – Business rules for objects which must behave differently to messages at different times during the process 31 Design and Build Iteration Identify Design Prototype Design & Build Iteration Agree Plan Output Review Design Prototype Create Design Prototype Who? – Reusable classes/components added to model Previous projects/iterations – Language specifics added to all diagrams – Application Control objects added to Sequence/Collaboration Diagrams – Architecture Diagrams • Package, Component, Implementation Users Prototypers Application Designers Language specialists Architecture Designers Specialist Modellers How? Facilitated Workshops Regular (daily) team reviews 32 Activity 4 What do USDP and DSDM have in common? 33 An Excellent Reference Jacobson, I., Booch, G. & and Rumbaugh, J. (1999), The Unified Software Development Process, Addison-Wesley. ISBN – 0-201-57169-2 The authority on USDP. 34 Suggested Reading Bennett, McRobb & Farmer (2005), Object-Oriented Systems Analysis and Design using UML, McGrawHill, ch.21. DSDM Consortium (2003), “DSDM and UML”, version 2, DSDM Consortium. Best Practices for Software Development Teams, Rational Unified Process, A Rational Software Corporation White Paper http://www128.ibm.com/developerworks/rational/library/253.html 35 SOLUTIONS 36 Why use OO? Advances in hardware and software – which have enabled the widespread application of object solutions – GUIs demand event-driven programming which is best served by object technology – Popularity of OO languages, e.g. Java Essential for large systems that are difficult to maintain and even more difficult to re-engineer into modern solutions. – Object Wrapping Desire for reuse and a component-based approach 37 How does this help? Mini-Projects – Promotes early risk mitigation Plan, design & code a little – Encourages participation – Allowing for correction sooner – Allows software to evolve – Exposes problems earlier Management of Risk 38 What do USDP and DSDM have in common? Iterative Incremental Prototyping Can use UML Testing throughout the lifecycle Controlling risk Definition of roles – Though USDP doesn’t have user roles 39