Survey
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
My Latest Thoughts UML China March 2004 Scott W. Ambler Senior Consultant Ronin International, Inc. Copyright 2001-2004 Scott W. Ambler 1 Scott W. Ambler Consultant: Author: Agile Software Development Software Process Improvement Agile Database Techniques Agile Modeling The Elements of UML Style The Object Primer 3rd Edition Practical Guide to Enterprise Architecture Contributing Editor/Writer: Software Development Computing Canada IBM DeveloperWorks Copyright 2001-2004 Scott W. Ambler 2 Presentation Overview Agile Model Driven Development (AMDD) Agile Data Method Database Refactoring Enterprise Unified Process (EUP) v2004 Copyright 2001-2004 Scott W. Ambler Agile Model Driven Development (AMDD) Agile Modeling Agile Models Multiple Models AMDD on a project Looking Towards UML 3 www.agilemodeling.com Copyright 2001-2004 Scott W. Ambler 4 What is 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 www.agilemodeling.com Agile Modeling (AM) Base Software Process (XP, UP, DSDM, ...) Copyright 2001-2004 Scott W. Ambler Your Process 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 Agile models are just barely good enough! Copyright 2001-2004 Scott W. Ambler 6 Multiple Models Usage Modeling User Interface Development - Essential Use Cases - Features - System Use Cases - User Stories - UML Use Case Diagram - Essential User Interface Prototype - User Interface Flow Diagram - User Interface Prototype Supplementary Requirements Modeling Detailed Structural Modeling - Business Rules - Constraints - Glossary - Technical Requirements - Physical Data Model (PDM) - UML Class Diagram 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 Process Modeling - Change Cases - Free Form Diagram - UML Component Diagram - UML Deployment Diagram - UML Package Diagram - Data Flow Diagram (DFD) - Flow Chart - UML Activity Diagram Copyright 2001-2004 Scott W. Ambler 7 Agile Model Driven Development (AMDD) (www.agilemodeling.com/essays/amdd.htm) Initial Requirements Modeling (days) Initial Architectural Modeling (days) Cycle 0: Initial Modeling Detailed Modeling (minutes) Reviews (optional) All Cycles (hours) Implementation (Ideally Test Driven) (hours) Cycle 1: Development Cycle 2: Development Cycle n: Development Copyright 2001-2004 Scott W. Ambler 8 Looking Towards UML 3 We need the following added Data Models User Interface Models Useful Process Diagrams The OMG should develop, and publish, a use case model for the UML Visit www.agilemodeling.com/essays/realisticUML.html for details Copyright 2001-2004 Scott W. Ambler 9 Agile Data (AD) Method AD Method Philosophies of AD Fundamental Skills www.agilemodeling.com Copyright 2001-2004 Scott W. Ambler 10 What is the (AD) Method? The Agile Data (AD) method is a collection of philosophies that will enable IT professionals within your organization to work together effectively when it comes to the data aspects of software-based systems. The AD method is based on the values and principles of the Agile Alliance. The AD method works well with the practices of Agile Modeling (AM) Copyright 2001-2004 Scott W. Ambler 11 Philosophies of AD 1. 2. 3. 4. 5. 6. Data. Data is one of several important aspects of software-based systems. Enterprise issues. Development teams must consider and act appropriately regarding enterprise issues. Enterprise Groups. Enterprise groups exist to nurture enterprise assets and to support other groups, such as development teams, within your organization. These enterprise groups should act in an agile manner that reflects the expectations of their customers and the ways in which their customers work. Unique situation. Each development project is unique, requiring a flexible approach tailored to its needs. One software process does not fit all and therefore the relative importance of data varies based on the nature of the problem being addressed. Work together. IT professionals must work together effectively, actively striving to overcome the challenges that make it difficult to do so. Sweet spot. You should actively strive to find the “sweet spot” for any issue, avoiding the black and white extremes to find the gray that works best for your overall situation. Copyright 2001-2004 Scott W. Ambler 12 Fundamental Knowledge and Skills Modeling: Data modeling UML modeling Other modeling (business rules, UI, ...) Relational database skills Object development skills Basic object/data implementation techniques: Caching Concurrency control Database architecture Legacy data sources Evolutionary performance tuning Persisting relationships Referential integrity Database encapsulation Copyright 2001-2004 Scott W. Ambler Database Refactoring Refactoring Why DB Refactoring is Hard Examples AN Example Enablers www.databaserefactoring.com (soon) Copyright 2001-2004 Scott W. Ambler 14 Refactoring A refactoring is a simple change to your design which doesn’t change its semantics. A database refactoring is a simple change to a database schema that improves its design while retaining both its behavioral and informational semantics. But this is a “just good enough” definition and that’s ok. A database schema includes both structural aspects such as table and view definitions as well as functional aspects such as stored procedures and triggers. In many ways database refactoring is simply normalization after the fact. Important: Database refactorings are a subset of schema transformations, but they do not add functionality. Copyright 2001-2004 Scott W. Ambler 15 Why DB Refactoring is Hard Other Applications You Know About Other Applications You Don't Know About Your Application Persistence Frameworks Your Database Data Imports Other Databases Data Extracts Data File Data File Test Code Copyright 2001-2004 Scott W. Ambler 16 Examples of Database Refactorings Apply Standard Types to Similar Data Consolidate Key Strategy for Entity Encapsulate Common Structure With View Introduce Column Constraint Introduce Common Format Introduce Lookup Table Migrate Database Method to Application Rename Column Replace One-To-Many With Associative Table Replace View With Method(s) Split Column See www.databaserefactoring.com Copyright 2001-2004 Scott W. Ambler 17 Database Refactoring Example Replace Column Original Schema Deprecation Period Resulting Schema Address <<Table>> Address <<Table>> Address <<Table>> AddressID: integer <<PK>> Street: char(40) City: char(20) StateCode: char(2) ZipCode: integer AddressID: integer <<PK>> Street: char(40) City: char(20) StateCode: char(2) ZipCode: integer {removal date = 2003-Mar-31} PostCode: char(20) Country: char(40) AddressID: integer <<PK>> Street: char(40) City: char(20) StateCode: char(2) PostCode: char(20) Country: char(40) synchronizeZipCodePostCode() <<trigger>> {event = on insert, event = on update, removal date = 2003-Mar-31} Copyright 2001-2004 Scott W. Ambler 18 Enablers for Database Refactoring Acceptance of your situation Regression testing Strong configuration management approach – You need to version all system artifacts, including data Willingness to work together Copyright 2001-2004 Scott W. Ambler 19 Enterprise Unified Process EUP Lifecycle v2004 EUP Extends the RUP www.enterpriseunifiedprocess.com Copyright 2001-2004 Scott W. Ambler 20 EUP Lifecycle v2004 Copyright 2001-2004 Scott W. Ambler 21 The EUP Extends the RUP Copyright 2001-2004 Scott W. Ambler 22 Feel Free to Contact Me! Scott W. Ambler www.ronin-intl.com/company/scottAmbler.html Copyright 2001-2004 Scott W. Ambler 23