Upload
studentscorners
View
218
Download
0
Embed Size (px)
Citation preview
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
1/115
Model Driven Development
With Borland Together ControlCenter
Tom Gullion
Product Manager, Together Products
Borland Software Corporation
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
2/115
Agenda
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
3/115
1. Introduction
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
4/115
Tutorial Description
In this tutorial, we discuss the background
concepts behind model-driven
development and how it relates toindustry trends like MDA. We concentrate
on showing what you can do today and
present a vision for what you'll be able to
do in the future.Prerequisites: Some experience with UML,
OOAD, and Java.
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
5/115
Tutorial Goals
Define and describe model-driven
development (MDD)
Describe model-driven architecture (MDA)
We all leave with a somewhat clear pictureof present and future functionality
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
6/115
Model-Driven Development Defined
Models are the focus of development
not an intermediate work product
Model and Code are of equal importance LiveSourceTM is key
Model and code are always in sync
The code is the model, the model is the code
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
7/115
LiveSourceTM is key
Model and code are always in sync
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
8/115
Ban on intermediate work products!
Models are the focus of development, not an
intermediate work product
No more stale design documents
No more out-of-date requirements documents
Leverage integrations to always work with live
project artifacts!
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
9/115
MDD/MDA Terms
Model
Platform
CIM
PIM
PSM
Transformations
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
10/115
Model
Merriam-Webster Online:
structural design
a system of postulates, data, andinferences presented as a mathematicaldescription of an entity or state of affairs
Joaquin Miller: Specification of a system and its
environment
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
11/115
Model Taxonomy
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
12/115
Platform
general definition
middleware platforms J2EE
.NET
OS platforms Linux
Mac OSX
can be more specific BEA WebLogic Platform 8.1
OMG definition
general approach
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
13/115
OMG definition of platform
MDA recognizes that the target "platform" will likely be a
collection of platforms: Linux+JBoss+J2EE+Hibernate+
MySQL+Struts+JSP
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
14/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
15/115
CIM in Together
Separate project vs separate package
Separate project provides good isolation
Can be a challenge for traceability
Separate package partitions ok
Much better for managing tracability
Configure diagrams to Analysis Detail- [see ControlCenter]
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
16/115
High-level of abstraction
Reduce complexity
Model the what not the how
Visualize collaborations
Form over function
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
17/115
Color modeling
Peter Coads advice:
Assign colors to categories of classes [diagramelements]
Spatial Layering
How many colors
Five is too many - Hideaki Chijiiwa (Color Harmony)
Which colors Leonardo Da Vinci
red, yellow, green, blue
Soften to pastels so text is easy to read Pink, pastel yellow, pastel green, pastel blue
3M was there before us Four color Post-itTM Notes
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
18/115
analysis model
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
19/115
PIM
Platform Independent Model
Collection of UML diagrams
Use case, activity, class, state, etc. Always important to define platform for
your context
Independence is relative
Must specify the platform from which this
model is independent
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
20/115
PIM
PIM in Together
design model
design model with OCL color modeling here too
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
21/115
design model
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
22/115
design model with OCL
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
23/115
color modeling here too
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
24/115
PSM
Platform Specific Model
Generally specific to
Some technology; A programming language;
Middleware
Execution environment
Typically class diagrams
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
25/115
PSM in Together
Togethers historic "sweet spot"
can be reverse-engineered too
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
26/115
Transformations
CIM->PIM Biz process model to UML model
PIM->PSM
the classic design to impl transformation Single class to multiple transformation
PIM->PIM Analysis to Design transformation
Object model to ER Logical transformationPSM->Code MDA term for LiveSource Model compiler
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
27/115
Transformations (continued)
Model->Model
Activity diagram to Ant script tranformation
Interaction diagram to test scripts
Tool Support Built-in LiveSource Approach
Deployment Support
Executable Model Support
Pluggable Provide an API for transformation plug-ins
Customizable Provide an API for transformation plug-ins
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
28/115
PIM->PIM
Analysis to Design transformation
Object model to ER Logical transformation
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
29/115
PIM->PSM
the classic design to impl transformation
Single class to multiple classes
transformation
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
30/115
PIM->PSM
analysis class to EJB collection (EJB +
remote + home interface classes)
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
31/115
PSM->Code
MDA term for LiveSource
Together does this todayautomatically!
Model compiler
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
32/115
Model->Model
Activity diagram to Ant script transformation
Interaction diagram to test scripts
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
33/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
34/115
2. Practices of MDD
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
35/115
Iterative Devel Defined
"Development is organized into a series of
short, fixed-length mini-projects called
iterations; the outcome of each is atested, integrated, and executable
system.
Craig Larman. Applying UML and Patterns,Second Edition. Prentice-Hall PTR, 2002
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
36/115
Iterative, incremental
From Walker Royce,From Walker Royce,http://www.sei.cmu.edu/cbs/spiral2000/february2000/Roychttp://www.sei.cmu.edu/cbs/spiral2000/february2000/Royc
e/e/
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
37/115
Benefits
mitigate risks early, rather than late
visible progress
early feedback
manage complexity by breaking up work into
manageable chunks
learning within an iteration can be methodically
used to improve subsequent iterations
Craig Larman, Applying UML and Patterns, Second Edition.
Prentice-Hall PTR, 2002
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
38/115
FDD
Note: two-week timeboxing
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
39/115
Iterative Modeling Guidelines
Dont have to do it all right now
Freedom to Delete
Avoid intermediate work products
Automate documentation generation
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
40/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
41/115
Modeling Requirements
Plain Text Requirements
Verify Requirements with an Object Model
Visualize RequirementsModel the User Interface
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
42/115
Plain Text Requirements
The customers credit cardis scanned. The systemcreates a transaction andthe financial institutionverifies the credit card. Ifthe credit is declined, anerror logged.
The transaction is finalizedand a receipt is printed.Finally, the customer
receives their goods.
Note the miracle and black hole
activities discovered when the narrative
was visually modeled.
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
43/115
Verify Requirements with an
Object ModelStreamlined Object Modeling suggests:"clients are intimately familiar with details but are stuck in how it is
done now, overlooking potential improvements"
talking about users and user scenarios is bad because it "tends to
bring focus on how the old system worked, not what the realunderlying business process should be."
"Object modeling succeeds because it focuses on the domainobjects and forces everyone in the group to take the object'sviewpoint. Putting people in the same viewpoint is a powerfultechnique for gaining group consensus. By contrast, buildingscenarios around users compels every participant to considerthe system from his own personal viewpoint, and how he
wants it to work."
"Once the object model is created, then user scenarios are helpfulin fleshing out the "how".'
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
44/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
45/115
Visualizing Requirements 2
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
46/115
Visualizing Requirements 3
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
47/115
Visualizing Requirements 4
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
48/115
User Interface Models
from
Lean Interaction Design
and Implementation:Using Statecharts with
Feature Driven Development
By David J. Anderson andBran OByrne
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
49/115
2. Practices of MDD
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
50/115
Modeling Conventions
See Scott Amblers BorCon 2004 session!
read his book or web site:www.agilemodeling.com/style
Examples:
Visual layout suggests order
Naming conventions
Size matters
Color modeling Model structure Traceability
http://www.agilemodeling.com/stylehttp://www.agilemodeling.com/style8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
51/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
52/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
53/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
54/115
Color modeling
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
55/115
Model structure
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
56/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
57/115
2. Practices of MDD
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
58/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
59/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
60/115
Custom Patterns
Patterns tailored to your domain
Patterns for your framework(s)
Customized versions of stock patternsEtc.
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
61/115
Templates
Together supports two levels of patterns
1. SciPattern classes use Together
ControlCenters OpenAPI, written in Java,
highly configurable/extensible
2. Templates simple token replacement
approachpublic class %Name%{
public static void main (String[] argv) {
System.out.println(%Message%");
}
}
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
62/115
Documenting Pattern UsageBetter Software Faster suggestion
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
63/115
Pattern Harvesting
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
64/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
65/115
Jeff De Luca on Inspections
http://www.featuredrivendevelopment.com/node/view/566
Inspections are one of the mosteffective
defect removal techniques. Testing isone of the leasteffective defect removaltechniques. We know this frommeasurements; it isn't speculation. And
yet, what do most organizations do?They test. What do most organizationsnotdo? They don't inspect. Why is this?
Automate Low Level
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
66/115
Automate Low-Level
Inspections Software tools are very effective at finding certain types of
defects [They] are much faster and more accurate(Gilb, p.12)
Deep and precise parsing of source
Saves time and budget
Separation of concerns:- Computers excel at low-level inspection and counting
- People do not- People excel at business logic and design inspection
- Computers do not
Rich Gronback, Software Remodeling
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
67/115
Audits
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
68/115
Metrics
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
69/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
70/115
2. Practices of MDD
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
71/115
Reverse Engineering:
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
72/115
Reverse Engineering:effects on documentation generation
Automated documentation generation is based on
reverse-engineered models
Garbage in, garbage out
Configurable projects are key
Set parsing levels Dependency checking
Associations
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
73/115
2. Practices of MDD
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
74/115
Generators
Generative Programming
Domain Engineering
Product-Line PracticesUsage scenarios
Generators available now
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
75/115
Generative Programming
Generative programming is at the heart ofthe concept
Generative programmings goal is to
move away from single solutions toward
automated manufacturing of varieties of software.
Krzysztof Czarnecki and
Ulrich W. Eiseneckers book
is required reading
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
76/115
Domain Engineering
What if you could preserve your past
experiences building software systems?
Domain Engineering does exactly that AND
includes a structure for reusing work
products.
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
77/115
Conventional vs Domain
EngineeringSoftware Engineering Domain EngineeringRequirements Analysis
Produces requirements for one system
Domain Analysis
Produces reusable, configurablerequirements for a class of systems
System Design
Produces design of one system
Domain Design
Produces reusable design for a classof systems and a production plan
System Implementation
Produces system implementation
Domain Implementation
Produces reusable components,infrastructure and production process
Table 2-4, p57 Generative Programming
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
78/115
Product-Line Practices
Domain Engineering covers
Development of reusable assets
Production plan for producing systems reusing
those assets
Product-Line Practices provide
Management and organization Enable Domain Engineering processes
Provide a feedback loop between them
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
79/115
Usage scenarios
DTD generator
XSD generator
Entity Relationship Diagrams Logical Physical
OR Mapping tools Including Hibernate (model data specific);
Dialog Generators Is it better to wrap a dialog behind an API or generate them?
Both accelerate development no more fighting with layoutmanagers, hand-crafting dialogs to meet UI guidelines, etc.
Generated dont require maintaining the API, extending the APIwhen changes occur, etc.
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
80/115
2. Practices of MDD
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
81/115
references
www.omg.org
www.uml.org
www.mda.orgwww.modelbased.net
www.mdsd.info
http://www.prakinf.tu-ilmenau.de/~czarn/
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
82/115
3. MDA Overview
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
83/115
According to the Object Management Group (OMG):
MDA provides an open, vendor-neutral approach to
the challenge of business and technology change.
MDA aims to separate business or application logicfrom underlying platform technology.
Platform-independent models can enable intellectual
property to move away from technology-specific code,
helping to insulatebusiness applications from
technology evolution, and further enable
interoperability.
What is MDA?
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
84/115
The Benefits of MDA
Portability
Insulation from underlying technology change
Productivity
Code generation Communicate visually, thereby reducing complexity
Cross-Platform Interoperability
Generated bridges
Easier Maintenance and Documentation
Design artifacts become development artifacts
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
85/115
MDA is not a single specification, but a collection of related OMG
specifications:
Unified Modeling Language (UML) 2.0
Infrastructure
Superstructure Object Constraint Language (OCL)
Diagram Interchange
Profiles
Meta-Object Facility (MOF)
XML Meta-Data Interchange (XMI) Common Warehouse Meta-model (CWM)
Query View Transformation (QVT)
What Comprises MDA?
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
86/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
87/115
Note the industry verticals MDA is not intendedto be a general purpose model-to-code solution.
The MDA Logo
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
88/115
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
89/115
Transformations
This is the challenge for MDA!
Inspired by existing CWM transformation technology
MOF2 Core will align basis of UML and CWM
Query, View, Transformation specification is needed
At present, QVT is MIA
A record oftransformation isrequired to maintaintraceability andsynchronization.
M d l M ki
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
90/115
Model Marking
TransformationMarks are specific to a transformation Can be a stereotype in a profile, for example
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
91/115
Machine Code
Impossible?
The Abstraction GapMiddleware makes MDA a potential reality
Level of
Abstraction
Generators
1
0..*
security
mortgages
1
0..*
borrower
mortgages
10..*
ownerhouses
House
-value:Money
Person
-ssn:Integer
-salary:Money
+getMortgage(sum:Money,security:House):Mortgage
Mortgage
-principal:Money
-monthlyPayment:Money-start:Date
-end:Date
Machine Code with OperatingSystem
Impractical?3GL with Operating System
Unlikely?3GL withMiddleware
Practical(ly)Middlewarewith
Framework
Today!
A
b
stra
ct
io
n
G
a
p
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
92/115
What About SOA and BPM?Business Process Execution Language for Web Services
(BPEL4WS)
An XML standard for defining business processes withWeb Services
Provides high level of abstraction lends itself to
generation from models Negligible abstraction gap
UML Profile for Automated Business Processes Allows UML Class and Activity diagrams to model BPEL
Generate WSDL, BPEL and XSD Schema
Business Process Definition Metamodel being developed UML2-based metamodel with profile for BPD withmapping to BPEL4WS
Model and Code
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
93/115
Model and Code
SynchronizationForward Engineering Only The ultimate goal (?)
Need Action Semantics
Done in real-time and embedded systems today!Partial Round-Trip Engineering
Protected blocks for code
WYSIWYG GUI tools have done this
Full Round-Trip Engineering
Changes reflected up and down layers of abstraction
Necessary to wean programmers off 3GLs?
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
94/115
Building Better Model[er]s
As models move from design artifacts to
development artifacts:
Casual modelers will need to be upgraded
Rigorous models required for generation
Model validation becomes more important
Model repositories will be needed
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
95/115
MDA Summary
MDA is a collection of many specifications
Many of which are incomplete at present
MDA has promise
MDA is no silver bullet
The jump from 3GLs to MDA is considerably
longer than from Assembly to 3GLs
MDA can be done with agility
Waterfall not prescribed
MDA will require improved model(er)s
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
96/115
3. MDA Overview
MDD with Together
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
97/115
MDD with Together
ControlCenter
Use Design language to model requirements and
domain model (CIM & PIM)
Refine computational portion in PIM package
Export to target language project (e.g. Java, C#,C++)
Apply design patterns and elaborate design (PSM)
PSM and Code model maintained in sync with
LiveSource
Support of the Latest
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
98/115
Support of the Latest
StandardsCurrent work in progress: UML 2 support in development
OCL 2 support in development
XMI 2 support in development
Diagram Interchange support in development
JMI-based metamodel support (JSR-040)
Java-based transformation engine for QVT UML Profile support in development
Custom profile definition to be supported
Improving the
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
99/115
Improving the
Modeling Experience
Look for future support in Together for:
Expanded modeling capabilities
Cater modeling environment to role
Graphical view of metamodels
Modeling helpers and tutorials
Model-level audits and metrics
Validate models for transformation
OCL expression validation Transformation definition samples for
extensibility
MDD with Together
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
100/115
MDD with Together
TomorrowTogether
Designer
PSMCode LiveSourceCode Audits & MetricsEmbedded IDE Integration
PIMPSM TransformationsModel Audits & MetricsOpenAPIMulti-Language, Next GenerationTogether ControlCenter
RequirementsCIMDocumentation GenerationStrong CaliberRM integrationLightweight, standalone modeling
Together
Architect
Together
Developer
Model-Driven Development
Design-Driven Development
Industry Support in
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
101/115
y pp
modeling & MDA
Look for future support in Together for:
Industry models
IAA
eTOM
etc
Industry frameworks
C4ISR Zachman
etc
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
102/115
Model Accessibility
Several possibilities:
Proprietary metamodel API
Java Metadata Interface (JMI)
Defined by JSR-040
Eclipse Modeling Framework (EMF)
Corresponding UML2 project
Internally, Together utilizes own metamodel
Known as Entity model
Full UML2 metamodel implementation unrealistic
Will be wrapped with standard JMI API for access
Done with on-the-fly model transformations
Query View
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
103/115
Q y
Transformation (QVT)
No specification available yet
No standard way to define a
transformation
OMG issued RFP on April 10, 2002
8 submissions, with 2 main groups:
QVT-Merge Group
Compuware/Sun Microsystems
Open Source
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
104/115
p
Transformers
Generative Model Transformer (GMT) Eclipse project (vaporware, JUUT-je prototype, UMLX 0.0) XMI-based (XMI+XMIXMI, XMIXMI, XMItext) Transformations based on textures
Patterns specified in unambiguous UML-based format
AndroMDA Builds on XDoclet, utilizes Velocity template engine Takes UML XMI file input and generates output using cartridges Current cartridges: Java, EJB, Hibernate, Struts Generates no business logic
Jamda Takes UML XMI file as input, using Jamda profile
Java-based code generators Generated class definitions added to UML model before codegen Currently J2EE-centric
Others: UMT-QVT, QVT-Partners; Open Generator FrameWork, etc.
http://www.amdromda.org
http://jamda.sourceforge.net
http://www.eclipse.org/gmt
Model Transformation
http://www.amdromda.org/http://jamda.sourceforge.net/http://www.eclipse.org/gmthttp://www.eclipse.org/gmthttp://jamda.sourceforge.net/http://www.amdromda.org/8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
105/115
Model Transformation
ResearchOCL-based transformations Input and output patterns defined in OCL
Prolog-based engine Identifies input pattern in source model
Generates output pattern in target model
Rule-based transformations Rules declared in XML
Model access and transform via JMI API
Batch processing of model, with potential incremental approach
Pattern-based transformations
Transformation declared with metaclass and OCL
Traverse modelexamine constraintsapply pattern to targetmodel
Technique used in current Together pattern technology
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
106/115
Model Validation
Current audits & metrics apply only to source model
Source Code Interface (SCI) to code model
Model audits use JMI API
Access and evaluate OCL constraints in model Audits themselves can be written in OCL
OCL validator accesses model constraints with JMI API
All validation results utilize common interface
Unified format for analysis
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
107/115
What you can do now
Refine your models:
Leverage UML profiles where appropriate
Specify all types
Specify all multiplicities
Name all associations and association ends
Clean up dangling model elements
Make models semantically complete Declare constraints in OCL
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
108/115
What you can do now
Treat models as if they were development artifacts
Not as throwaway design relics
Learn UML2 and OCL
OMGs UML2 Certification Program
Avoid UML constructs not supported by MOF:
N-ary associations
Qualified associations
Association classes
Stop hand crafting XSDs, DTDs, and Java APIs for metadata
Generators exist today!
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
109/115
3. MDA Overview
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
110/115
Overview of Future Support
Support of the Latest Standards
As they become available
Improve the Modeling Experience
Align Products with MDA Roles & Activities
Support Industry Models and Frameworks
Increase Generative Capabilities and
Customizability
Model access, validation, transformation
Improving the Modeling
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
111/115
p g g
Experience
Look for future support in Together for:
Expanded modeling capabilities
Cater modeling environment to role
Including the ability to get a graphic view ofmetamodels
Modeling helpers and tutorials
Model-level audits and metrics
Validate models for transformation Transformation definition samples for
extensibility
MDD with Together
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
112/115
g
Tomorrow (first of two)
Current ability of developers to work with PSMs will grow
New capabilities for Analysts with Together Designer
To create Problem Domain CIMs
To create models for a library maintained by Architect
PIMs developed with Together Designer
Can be based on pre-existing Models from Library
Use OCL2 for constraint definition
Apply UML Profiles to model
Rely on model level audits for quality
Code generated maintained in sync with PSM
MDD with Together
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
113/115
g
Tomorrow (continued)
With Together Architect, shops will have model libraries
Models of Platforms, of Business Process, and Apps
Ability to combine and transform models
Access model information programmatically
Maintain relationships among models
Define and modify metamodels graphically
Create and maintain libraries of Model Transformations
A catalog of PIMPSM transformations available
Define and add your own, or purchase new ones
Validate a service oriented architecture against
The business process it should automate
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
114/115
D. Frankel, Model Driven Architecture. Applying MDA to
Enterprise Computing. Indianapolis, IN: Wiley, 2003.
S. Mellor et al, MDA Distilled. Principles of Model-Driven
Architecture. Boston, MA: Addison-Wesley, 2004.
A. Kleppe et al, MDA Explained. The Model Driven
Architecture: Practice and Promise. Boston, MA:
Addison-Wesley, 2003.
J. Miller et al, MDA Guide Version 1.0. Needham, MA: OMG,
2003.
R. Hubert, Convergent Architecture: Building Model-Driven
J2EE Systems with UML. New York, NY: 2002.
References
8/7/2019 32441_10061845_S-OBJECT ORIENTED ANALYSIS AND DESIGN
115/115
4. Questions and Answers