Title: Together
1Together
- UML Modeling with Together Architect 2006
Cemo Timucin, Borland Finland Oy
2Agenda
- This training will help you to understand
- What the Together products are
- Why should you model?
- How the Together products work
- A brief introduction to UML
- Additional Topics, time permitting
- Together general features
- Together project types, inside Eclipse
- Together advanced features
- Product Demo
3What is Together?
4What is Together?
- For individuals, Together provides model-centric
productivity tools for analysts, architects, and
developers. - For development teams, Together enables
visibility across roles, control over quality,
and the ability to change quickly (agility). - For enterprises, Together is the foundation for
model-centric enterprise architectures such as
SOA and MDA.
5What is Together?
- UML Modeling with LiveSource
- Visualization with accuracy
- Documentation Generation
- Automated and always up-to-date
- Design Pattern Support
- Promote reuse and improve quality
- QA Audits Metrics
- Improve quality and maintainability
6Why should you model?
7Software code vs. model
OR
- 7 Java files
- 940 lines of code
One diagram
8Value of modeling
A picture is worth a thousand lines of code
9Model lt-gt Code The fantasy
10Model lt-gt Code The hard way
11Model lt-gt Code The easy way
12Why does an Analyst model?
- Document agreement on what the Business wants to
accomplish - Remove ambiguity
- Enable the Big Picture view of the Business
- In combination with plain text
- Large volume of requirements difficult to consume
as a whole - Modeling provides constructs to help organize
ideas - Visualization helps clarify complex ideas
- Standards bring focus to key abstractions
- In contrast to ad-hoc diagrams
- Standards facilitate precise communication
- Common language for all members of the team
13Analysis
14Why does an Architect model?
- Design Overall Application Architecture
- Mapping design to requirements
- Effectively develop and communicate design
- Documenting design and architecture
- Ensure quality of design
- Provide architectural views
- Leverage Reuse
- Established frameworks
- Existing libraries
- Design patterns
- Engineer a Produceable System
- Can be built with development constraints
- Business time and money
- People knowledge and skill sets
- Process quality and predictability
- Technology tools and existing systems
- Can withstand changes over time
- New features or changing requirements
- Updated IT infrastructure
15Design
16Why does a Developer model?
- Implementation Options
- Explore options
- Need strong refactoring support
- Improve design without changing functionality
- Code reviews are time consuming and inefficient
- Adherence to corporate or industry best-practices
- Code can be maintained, modified, and reused
- Document the System
- Large code bases are difficult to understand
- Understand dependencies
- Understand interfaces
- So we can start parallel development by just
knowing the contract for a component
17Implementation
18How do the Together products work?
19A Brief Introduction to UML
- Use Case Diagrams
- Who cares about what?
- Activity Diagrams
- How is it done?
- Class Diagrams
- What are the pieces?
- Interaction Diagrams
- What interactions need to happen?
20Use Case Diagram
What value will the user derive from the system?
What major capabilities of the system can be
reused?
What kinds of users need to interact with the
system?
21Activity Diagrams
What activities will the system perform?
What is the flow of activities in the system?
What artifacts might the system generate?
22Class Diagram
What are the major concepts the system will need
to understand?
How are those concepts related to other concepts?
23Sequence Diagram
What responsibilities do the parts have?
How will the parts accomplish their
responsibilities through interactions with other
parts?
- What interactions need to happen?
24Other UML Diagrams
- UML helps capture key aspects of a system from
multiple viewpoints.
25UML Modeling with LiveSource
- Together LiveSource technology
- UML Class diagrams are a live rendition of the
underlying source code - Model to Code. Code to Model. Always in sync.
26Together Documentation Generation
- Model and code always in sync
- Documentation generated from model
- Documentation always accurate and up-to-date!
- Together generates
- HTML
- RTF
- TXT
- PDF
- Custom template designer
- Post for team daily
27Together Design Pattern Support
- Reuse existing, trusted solutions
- Gang of Four (GoF) patterns
- Sun Java Center J2EE patterns
- Your own custom patterns!
28Quality Assurance
- Audits and metrics help automate the assessment
of software design and implementation quality. - Audits
- Enforce coding standards
- Detect deviation from established best-practices
- Streamline code reviews
- Metrics
- Quantitative OO design analysis
- Improve maintainability
- Guide refactoring
29Additional Topics
30Whats New in Together 2006
- Deep integration with Eclipse 3.1 (perspectives,
activatable capabilities, leveraging Eclipse
project natures, etc) - Model-Centricity (model is a tangible, usable
artifact, not just a collection of diagrams) - Diagramming usability improvements (layouts,
rulers and guides, alignment, match width/height - Model Driven Architecture support (UML 2.0, OCL
2.0, QVT, XMI 2.0) - Business Process modeling support (BPMN, generate
BPEL) - Data Modeling support (ER diagramming,
transformations) - UML 2.0 modeling
- Model Audits and Metrics (defined in OCL)
- UML Profiles and profile definition projects
support - New patterns and pattern definition projects
support - MDL and MDX import XMI 2.0 model interchange
- New requirements integration with CaliberRM and
RequisitePro - Generation of template-based documentation
- LiveSource (simultaneous round-trip engineering)
with Java 5
31General Modeling Features
- Usability Improvements
- Laser Sighting
- visual indication of element alignment edges or
centers - Multiple Layout Algorithms
- Hierarchical, Tree, Orthogonal, Spring Embedder,
Together - Permits layout of contained elements
- Automated Element Resizing and Aligning
- Align (Left Center Right Top Middle
Bottom) - Match Width or Height
- Order Links
- Ctrl-Click model lets you rapidly create
multiple elements - Model Bookmarks
32Extensive Search Capabilities
- Search
- Model
- Model using OCL
- Files
- Java
- CaliberRM
- StarTeam
- Search output
- Multiple Result Sets
- Saves history
33Documentation Template Designer
- Feature-rich documentationtemplate designer
- Functionally equivalentto Together
ControlCenterexcept now - Supports all modelsUML Design (1.4 and
2.0),UML LiveSource, BP, Data - Embed OCL queries
34Multiple Project Types
- Eclipse paradigm is essentially lots of little
projects - (as opposed to former ControlCenter/Architect 1.x
which only opened a single project at a time)
35Business Process Modeling Project
- Only one diagram type business process diagram
- Real-time model validation features
- Invalid elements drawn in red on diagram
- Auto-fix element
- Validate against BPMN spec or forexport to
BPEL4WS
36Data Modeling Project
- Only one diagram type Entity Relationship (ER)
- but available in both logical and physical and
can benotated using IE or IDEF1X - Automated transformations between logical and
physical - Generate SQL or DDL
- Target servers Generic SQL, IBM DB2 8, InterBase
7, JDataStore 7, MS Access, MS SQL Server 2000,
mySQL 4, Oracle 9, Sybase AS Anywhere 8, Sybase
AS Enterprise 12
37Java Modeling Project
- UML 1.4 project with LiveSource class diagrams
- Use Case, Activity, State, Sequence,
Collaboration, Component, Deployment, Class
diagrams - Generate Sequence diagrams
- Design Patterns
- Pattern Recognition
- Code Audits and Metrics
- Add Linked
38Java Modeling projects from Java projects
- Simply add Java Modeling project nature to an
existing Java project (does not create a new
project)
39MDA Transformation Project
- Eclipse plug-in project with QVT Builder
- Three transformation types
- QVT Transformation
- QVT Library
- Model to Text Transformation
- optionally using JET (Java Emitter Templates)
- Can be developed interactively fully-featured
code editing, debugger, compiling - Run from workspace, deploy as compiled
transformation or automate via Ant script
40Pattern Definition Project
- Java modeling project with a UML Profile to
support pattern definition, development and
deployment - Three ways to create these
- Can be created from scratch File ? New ?
Project - Created from selected elements in a model
- select elements, Export to Pattern Definition
Project - Generated from a deployed pattern in the Pattery
Registry view - Choose Edit Definition from patterns context menu
41Profile Definition Project
- Java modeling project with a UML Profile to
visually model UML Profile definitions - Create custom stereotypes, tagged values, palette
entries (custom icons on the diagram palette) and
viewmapping (such as custom colors and icons) - Can also include shortcuts to metaclasses as well
as model profile constraints in OCL - After applying a profile to a model, one can
validate the model against the profiles
constraints
42UML 1.4 Project
- Design project containing UML 1.4 diagrams use
case, activity, class, sequence, collaboration,
state, component and deployment - Provides model audits and metrics, exposes
metamodel, can be used in model-to-model and
model-to-text transformations - Important note UML 1.4 metamodel is provided as
is, and no improvement are planned for future
releases.
43UML 2.0 from 1.4 Project
- Automate conversion of UML 1.4 design projects to
UML 2.0 - Sleeper feature? This wizard does an excellent
job mapping from UML 1.4 constructs to UML 2.0.
Many other competitor products struggle with this.
44UML 2.0 Project
- Design project containing UML 2.0 diagrams
activity, class, component, communication,
composite structure, deployment, sequence and
statemachine - Provides model audits and metrics, exposes
metamodel, can be used in model-to-model and
model-to-text transformations
45Together Project Summary
- Multiple projects exist in a common workspace
- shared between roles
- roles see a logical view of workspace (e.g.,
only applicable project types) - accessible and referenceable
- cross-project shortcuts are only possible for
Classes and Interfaces. This will be fixed in a
Q4 05 service pack - generated documentation can include all projects
in the workspace
46Together Advanced Features
47Model Audits and Metrics
- New in Together 2006!
- Expressed in OCL easy to write, customize and
deploy across teams - Reap enormous benefits by improving quality as
early as possible - Model Audits provide design inspections for model
elements - Pulled from David Frankel, Scott Ambler, Robert
Martin and others - Best practices for design elements
- Model Metrics provide measurements of models
- Version 1.0, rather simple for now. Expect this
feature to grow! - Model Audits and Metrics combine to provide an
accurate assessment of how complete your model
is. This has historically been a very difficult
thing to determine.
48Model Audits - Sample
Black Hole State
OCL Audit Definition
49Code Audits and Metrics
- Mature API to inspect and measure Java modeling
projects - Automate low-level parsing for potential errors,
coding standards, design flaws and adherence to
Java best practices - Accurately measure object-oriented attributes
such as coupling, cohesion, encapsulation and
inheritance - Improve quality of projects developers can
include audits in their workflow, project leads
can measure the whole project - Assess the quality of code contributed by remote
teams, inherited components or as an aid to
maintenance efforts - Automate reporting using command-line include
in daily builds
50Code Quality Assurance
- Audits
- Java
- Auto-Correct
- API
- Metrics
- Java
- API
- Kiviat View
- Reporting
- GUI and command-line driven
51Design Patterns
52What is the Value of Design Patterns?
- Design Patterns provide common, sometimes even
industry standard, design solutions to everyday
problems - Improve communication through abstraction
- Describing a solution in aggregate is less
complex than describing all the details about how
it works - e.g., Im using a Visitor to assess the
inventory vs. we have a provided a common
interface for all objects in the inventory so we
can later use a common access method to parse the
contents within the inventory
53What is the Value of Design Patterns in Together?
- Together bundles the most-common design patterns
- Gang of Four (GoF)
- J2EE Design Patterns
- Together lets you model and deploy your own
patterns - Wrap your internal best practices and design
solutions as repeatable, reusable patterns - Together can discover pattern usage in existing
source code - Leverage the benefits of visualizing pattern
usage to better understand reverse engineered code
54Using Design Patterns
- Interactive chooser dialog
- Browse available patterns
- View pattern description
- Set pattern parameters
55Using Design Patterns - visualization
- Collaboration bubble can reduce visual complexity
- Lets you view the pattern as a whole
56Product Demo