Title: Beyond Design: Leveraging UML at Implementation
1Beyond DesignLeveraging UML at Implementation
- Nate Skinner
- Nate.skinner_at_embarcadero.com
- Program Manager
- Application Development Tools
- Embarcadero Technologies, Inc.
2Overview
- Background
- What is Visual Modeling?
- What is UML?
- Why use UML for Analysis and Design?
- Why use UML at Implementation?
- When do I use UML?
- Conclusion
3Background The Problem
- Independent Implementation Efforts
- Different Tools
- Different Delivery Methods
- Things are working as is no need to change
- Introduction of design/models during project
presents perceived time constraints - Design phase given different emphasis
- Straight to implementation
- Design seen as best practice, but not practiced
often - Slows down development
- Additional step in development process
4Background Its Getting Worse!
- The number of people with expertise to solve
these problems is dropping! - Less likely to find architects with real world
experience - Have to use tools/technology that allows newer
users to become productive faster - More important than ever to deliver artifacts
about the applications we build
5What is Visual Modeling?
- Software models are very similar to...
Mechanical Drawings
Electrical Schematics
Construction Blueprints
6What is the UML?
- Unified Modeling Language
- An industry standard design notation for
- Expressing software requirements
- Expressing software architecture
- Expressing software dynamics and behavior
- Documenting software deployment
- The de-facto industry standard today
- Current OMG Specification 1.4
7The UML and Software Process
- The UML is a standard notation only
- It does not specify process at all
- UML is most effective when combined with an
effective software process
8Why use UML for A D?
- Clarity-Graphical depictions of ideas are easier
to immediately understand
- Audience-This clarity allows a wider audience
to understand and participate
- Discipline-Modeling, as a rigorous technique,
imposes discipline on the specifications of
business problems and a common process to
understand and resolve them.
9As designed versus As built
- Separate initial design..
Preserve the initial models as a design reference
..from current state
Maintain current models as a working part of your
development environment
10Why use UML for A D?
Clarity-Graphical depictions of ideas are easier
to immediately understand
11Why UML at Implementation?
- Communicating between team members
- Resolving unforeseen problems
- Understanding impact of changes
- Completing error prone steps
- Waiting on finished work from others
- Updating management at code review
- Taking time to document the code
12Benefits of UML at Implementation?
- Task Automation
- Many simple, repetitive tasks can be handled
automatically - Visual Guidance
- UML models provide a guide to development and a
perspective that encourages efficient design - Communication
- Up to date, design records provide an efficient
communication vehicle
13Task Automation
Code Generation
public class QuarterHour_ private int
StartTime // Get/Set Methods For Member
Variables public boolean fill( BannerAdList
adList ) boolean returnVal
return returnVal public float
getQHTotal( ) float returnVal
return returnVal public void
computeQHTotal( )
- Saves time and prevents errors by automatically
creating skeleton for your codea
14Task Automation
EJB Creation
- Create and define all the necessary interfaces to
build a deployable Java Bean from the UML class
15Task Automation
Adding JavaDoc
- Use a WYSIWYG interface to rapidly enter JavaDoc
tags for comprehensive documentation
/ The ltBgtSchedule Summary Window lt/Bgtcan
ltIgtdisplay lt/Igta schedule and ltUgtall the
associated datalt/Ugt, including which banner ads
have been assigned to each time slot. /
// not necessary to learn tags or spend time hand
coding JavaDoc
16Visual Guidance
Navigation
- Use picture of code to point and click your way
through design.
- Navigate between objects on different diagrams
and within different areas of code visually
17Visual Guidance
Impact Analysis
- View dependencies to determine likely areas of
impact.
Understand relationships between different
areas within the design
18Visual Guidance
Design Reference
- State diagram and other dynamic diagrams
(sequence, collaboration, activity, even the
class) while in the coding phase provide a
reference to follow while editing/coding.
19Visual Guidance
Design Reference
- View diagrams while coding
- Develop within the same interface
- Or use your choice of IDE
20Visual Guidance
Refactoring
- UML provides the opportunity to visually
inspect, improve, debug, and enable reuse of code
Refactoring is the process of changing a
software system in such a way that it does not
alter the external behavior of the code yet
improves its internal structure.
Refactoring Improving the Design of Existing
Code Fowler, Martin. 1999. Addison Wesley
21Communication
Team Enabled
- Repository based, managed, scalable, multi user
access
Web Access Via the Intranet
Local Mode to set-up a repository on local machine
Server Mode for collaboration on a shared
repository
Synchronize
Repository
Synchronize
22Communication
Project Status
- Reports provide quick visual inspection of
project status
- No special preparation necessary for code review
- Not necessary for management to read thru code or
accept a verbal status report
23Communication
Learning Curve
- Big picture blueprint of architecture and
interfaces
- New developers get understanding of overall
architecture and become more productive more
quickly.
24When do you use the UML?
- Visual UML modeling has been traditionally
focused on - Analysis Design
Implementation
Analysis
Testing
Requirements
Design
yet state of the art tools provide significant
value at Implementation and throughout the
application lifecycle
25Recommended Reading
- The Unified Modeling Language User Guide
- Booch, Grady, J. Rumbaugh, and I. Jacobson.
1999. Addison Wesley - Refactoring Improving the Design of Existing
Code - Fowler, Martin. 1999. Addison Wesley
- eXtreme Programming eXplained Embrace Change
- Beck, Kent. 2000. Addison Wesley
- Use Case Driven Object Modeling With UML A
Practical Approach - Rosenberg, Doug with Kendall Scott. 1999. Addison
Wesley - Building Web Applications with UML
- Conallen, Jim. 2000. Addison Wesley
- UML Distilled 2nd Edition
- Fowler, Martin with Kendall Scott. 1997.
Addison Wesley - Business Modeling with UML Design Patterns at
Work - Eriksson, Hans Erik. And Penker, Magnus. 2000.
Wiley Computer Publishing