Introduction to Agile Model Driven Development (AMDD) Scott W. Ambler
Transcription
Introduction to Agile Model Driven Development (AMDD) Scott W. Ambler
Introduction to Agile Model Driven Development (AMDD) Scott W. Ambler Senior Consultant, Ambysoft Inc. www.ambysoft.com/scottAmbler.html Copyright 2001-2005 Scott W. Ambler 1 About These Slides Some slides have notes You may use these slides, or a subset thereof, in presentations or training materials You must indicate that the slide is Copyright Scott W. Ambler 2005 You must not remove copyright notices from the diagrams You may not sell or license the material contained within this file without the express permission of Scott W. Ambler Visit www.agilemodeling.com/essays/amddPresentation.htm for updates Copyright 2001-2005 Scott W. Ambler 2 Agile Modeling (AM) AM is a chaordic, practices-based process for modeling and documentation AM is a collection of practices based on several values and proven software engineering principles AM is a light-weight approach for enhancing modeling and documentation efforts for other software processes such as XP and RUP Principles and Practices of Agile Modeling (AM) Other Techniques (e.g. Database refactoring) A Base Software Process (e.g. XP, RUP, DSDM, FDD, …) Your Software Process Copyright 2001-2005 Scott W. Ambler Copyright 2001-2005 Scott W. Ambler 3 The Core of AM You Need to Adopt at Least the Core Core Principles Core Practices Assume Simplicity Active Stakeholder Participation Embrace Change Apply the Right Artifact(s) Enabling the Next Effort is Your Collective Ownership Secondary Goal Create Several Models in Parallel Incremental Change Create Simple Content Model With a Purpose Depict Models Simply Multiple Models Display Models Publicly Maximize Stakeholder Iterate to Another Artifact Investment Model in Small Increments Quality Work Model With Others Rapid Feedback Prove it With Code Software Is Your Primary Goal Single Source Information Travel Light Use the Simplest Tools Copyright 2001-2005 Scott W. Ambler 4 Agile Model Driven Development (AMDD) Project Level (www.agilemodeling.com/essays/amdd.htm) Initial Requirements Modeling (days) Initial Architectural Modeling (days) Cycle 0: Initial Modeling Model Storming (minutes) Reviews (optional) All Cycles (hours) Implementation (Ideally Test Driven) (hours) Cycle 1: Development Cycle 2: Development Cycle n: Development Copyright 2003-2005 Scott W. Ambler Copyright 2001-2005 Scott W. Ambler 5 What Are Agile Models? Agile models: Fulfill their purpose Are understandable Are sufficiently accurate Are sufficiently consistent Are sufficiently detailed Provide positive value Are as simple as possible Just Barely Good Enough Ideal Realistic Value Effort Copyright 2005 Scott W. Ambler Agile models are just barely enough! Copyright 2001-2005 Scott W. Ambler 6 Agile Models www.agilemodeling.com/artifacts/ Usage Modeling - Acceptance Tests - Essential Use Cases - Features - System Use Cases - Usage scenario - User Stories - UML Use Case Diagram User Interface Development - Essential User Interface Prototype - User Interface Flow Diagram - User Interface Prototype Supplementary Requirements Modeling Detailed Structural Modeling - External Interface (EI) Specification - Physical Data Model (PDM) - UML Class Diagram - UML Object Diagram - Business Rules - Conceptual Cases - Constraints - Glossary - Technical Requirements Dynamic Object Modeling Conceptual Domain Modeling - UML Communication Diagram - UML Composite Structure Diagram - UML Interaction Overview Diagram - UML Sequence Diagram - UML State Machine Diagram - UML Timing Diagram - Class Responsibility Collaborator (CRC) Cards - Logical Data Model (LDM) - Object Role Model (ORM) Diagram - Robustness Diagram - UML Class Diagram Architectural Modeling - Change Cases - Free Form Diagram - Security Threat Modeling - UML Component Diagram - UML Deployment Diagram - UML Package Diagram Process Modeling - Data Flow Diagram (DFD) - Flow Chart - UML Activity Diagram - Value Stream Map - Workflow diagram Copyright 2001-2005 Scott W. Ambler Copyright 2003-2005 Scott W. Ambler 7 Tests as Primary Artifacts Reduce Documentation by Single Sourcing Information Acceptance tests are considered to be primary requirements artifacts Unit tests are considered to be detailed design artifacts You can reduce your requirements documentation dramatically by not recording the same information twice You can reduce your design documentation dramatically and increase the chance that your detailed design artifacts are kept up to date by coders www.agilemodeling.com/essays/singleSourceInformation.htm Copyright 2001-2005 Scott W. Ambler 8 Agile Documentation Travel light – You need far less documentation than you think Agile documents: Valid reasons to document: Maximize stakeholder investment Are concise Fulfill a purpose Describe information that is less likely to change Describe “good things to know” Have a specific customer and facilitate the work efforts of that customer Are sufficiently accurate, consistent, and detailed Are sufficiently indexed Your project stakeholders require it To define a contract model To support communication with an external group To think something through www.agilemodeling.com/essays/agileDocumentation.htm Copyright 2001-2005 Scott W. Ambler 9 Communication Modes Always Strive to Use the Most Effective Approach Face-to-face at whiteboard Communication Effectiveness Face-to-face conversation Video conversation Phone conversation Modeling Options Videotape Email conversation Audiotape Paper Cold Documentation Options Richness of Communication Channel Hot Copyright 2002-2005 Scott W. Ambler Original Diagram Copyright 2002 Alistair Cockburn Copyright 2001-2005 Scott W. Ambler 10 The Cost of Traditional BRUF “Successful” Projects Still Have Significant Waste Often 13% Always 7% Never 45% Sometimes 16% Rarely 19% Source: Jim Johnson of the Standish Group, Keynote Speech XP 2002 Copyright 2001-2005 Scott W. Ambler 11 Agile Software Requirements Management Changing Requirements Are a Competitive Advantage if You Can Act on Them: www.agilemodeling.com/essays/changeManagement.htm { High Priority Each iteration implement the highestpriority requirements Each new requirement is prioritized and added to the stack Requirements may be reprioritized at any time Requirements may be removed at any time Low Priority Requirements Copyright 2004 Scott W. Ambler Copyright 2001-2005 Scott W. Ambler 12 Active Stakeholder Participation The Stakeholders are the Experts, Shouldn’t They Model? Project stakeholders should: Provide information in a timely manner Make decisions in a timely manner Actively participate in business-oriented modeling www.agilemodeling.com/essays/activeStakeholderParticipation.htm www.agilemodeling.com/essays/inclusiveModels.htm Copyright 2001-2005 Scott W. Ambler 13 Model With Others The modeling equivalent of pair programming You are fundamentally at risk whenever someone works on something by themselves Several heads are better than one Copyright 2001-2005 Scott W. Ambler 14 Active Stakeholder Participation On-Site Customer Joint Application Design (JAD) Focus Groups Observation Effectiveness of Requirements Gathering Techniques Face-To-Face Interviews Electronic Interviews Legacy Code Analysis Reading Collaborative Interaction Restricted Interaction Copyright 2005 Scott W. Ambler Copyright 2001-2005 Scott W. Ambler 15 Relative Effectiveness of User Representatives Effectiveness Actual Stakeholder Product Manager Business Analyst as User Personas Copyright 2005 Scott W. Ambler Copyright 2001-2005 Scott W. Ambler 16 References and Recommended Reading Ambler, S.W. (2002). Agile Modeling: Effective Practices for XP and the UP. New York: John Wiley & Sons. Ambler, S.W. (2003). Agile Database Techniques. New York: John Wiley & Sons. Ambler, S.W. (2004). The Object Primer 3rd Edition: AMDD with UML 2. New York: Cambridge University Press. Ambler, S.W. (2005). The Elements of UML 2.0 Style. New York: Cambridge University Press. Beck, K. (2000). Extreme Programming Explained – Embrace Change. Reading, MA: Addison Wesley Longman, Inc. Beck, K. & Fowler, M. (2001). Planning Extreme Programming. Reading, MA: Addison Wesley Longman, Inc. Constantine, L.L. & Lockwood, L.A.D. (1999). Software For Use: A Practical Guide to the Models and Methods of Usage-Centered Design. New York: ACM Press. Fowler, M. (1997). Analysis Patterns: Reusable Object Models. Menlo Park, California: Addison Wesley Longman, Inc. Larman, C. (2004). Agile and Iterative Development: A Manager’s Guide. Reading, MA: Addison Wesley Longman, Inc. Palmer, S.R. & Felsing, J.M. (2002). A Practical Guide to Feature Driven Development. Upper Saddle River, NJ: Prentice Hall PTR. Copyright 2001-2005 Scott W. Ambler 17 Online Resources www.agilemodeling.com www.agilealliance.org www.controlchaos.com www.ambysoft.com www.agiledata.org www.enterpriseunifiedprocess.com Copyright 2001-2005 Scott W. Ambler 18