My Latest Thoughts

Download Report

Transcript My Latest Thoughts

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