cephas consulting corp an early mda project … in hindsight · 9/20/2002 copyright © 2002, cephas...
TRANSCRIPT
Copyright © 2002, Cephas Consulting Corp, all rights reserved
Cephas Consulting CorpThe Cornerstone of your Enterprise
An Early MDA Project … in Hindsight
Ernest Stambouly, Frank TruyenCephas Consulting Corp
635 E. 1st Street, Suite 317Tustin, CA 92780www.cephas.cc
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Preview
! eCRM Enterprise Application Case Study.! A Model-driven Approach.! The architecture and UML models.! The Approach.! Approach Benefits.! Lessons Learned.! Conclusion.
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Context
! Timeframe (1997-2001)" Pre-MDA; Middleware Battles; Young Java;
Young UML™.! Industry
" eCRM! Application
" Management of communication channels for contact management.
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Environment
! Small Software Development Team.! Existing successful 2-tier Application.! Greenfield Development
" No Legacy integration upfront;" No Reverse Engineering;" No Harvesting of Design or Code.
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Enterprise Requirements
! Large-Scale, distributed & heterogeneous targets.
! Standard-based.! Ease of adding business functionality.! Capture intellectual assets separate from
application.! Data interchange with external entities.! Independence of underlying technologies.! Development in Internet Time.
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Enterprise Decisions
! Invest in Enterprise Architecture" Distributed, scalable, platform independent;" Separates Business and Technical concerns;" Uses formal specification language (UML);
! Restructure Development Organization" Architecture/Infrastructure Developer;" Business Application Developer;" UI & General Developer;
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Separation of ConcernsBusiness! Standalone specification of Business
Functionality" Formal Business Model;" Platform Independent;" Business code evolves independently of
infrastructure;
Business Application Developer
Platform Independent UML Business Model
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Separation of Concerns Technology! Standalone UML specification of Abstract
Architecture (dubbed ICA)" Defines a formal computing model;" Abstract service-based architecture;" Independent of underlying technologies;" Can be projected to different underlying
technologies;
Architecture/Infrastructure Developer
Abstract Architecture UML Model
(ICA)
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Formal Specification
! Uses formal specification language: UML.! Everything is Model-Driven.! Standard/Popular OOA&D Methods.! Development Environment
" Integrates suite of development and model transformation tools;
" Promotes model-driven as the “natural” approach to development;
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Development Organization
! Reflects development approach
Architecture/Infrastructure Developer
Abstract Architecture UML Model
(ICA)
Business Application Developer
Platform Independent UML Business Model
Requirements
Capabilities
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
UML Abstract Core Metamodel
Reference Implementation
Binding
4refers to
invoked against4 5connects6manages6realized
by
3maintains
6targets IDENTITY REALIZATION
BEHAVIOR
6installs
Type
Operation
Request
0..*
0..*
0..*
0..*
0..*0..* FBC
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Refined Core Metamodel
SOALifecyle<<Interface>>
COAMessage
COAIdentity COAAny1 1
real izes
1 1
IOAProxy
1refers to client
1
COA Ty peMgr
COAClientBinding
produces
1
0..n
0..*
1
manages
0..* delega tes to
1
COAOperation
1
0..*
ta rgets1
0..*
COAReference
1
0..*
refe rence s
1
0..*
2 0..*references2 0..*
1
0..*
refers to target
1
0..*0..*s uperTypes
0..* 0.. *
subTypes
0.. *
COAImplementationrepresent s0..n0..n
COAServerBinding
1
1
m aps down to1
1
10..*
targets 10..*
0..*
1
invokes0..*
1
COAType0..*
1
0..*
1
<< mana ges>>
0.. *
1
com m is s ions
0.. *
binds clients to 1
1..*1..*
0..*
1
manages
0..*
1
0..*
1
real ized by
0..*
1
0..*
1
delegates to
0..*
provides binding for1
0..* subTypes0..*
0..*superTypes0..*
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Model Transformation Stages
UML Business Model
(PIM)
UML Canonical Architecture Model
! Build Business Model;! Designate Business
Components using UML stereotypes & property sheets;
! Transform;
UML Technology Projection Model
! Refined Business Model;! Augmented with
instances of the Core metamodel;
! Independent of underlying technology;
! Generate canonical model repository (XML);
! Platform-specific, e.g., CORBA, COM, J2EE, …
! Generate code from this model;
! Implement business code in dedicated “Impl” generated classes.
(PIM) (PSM)
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Sample ModelsUML Business Model
Customer
<<Formal Business Object>>
Account
<<Formal Business Object>>
1..n
1
Apply
FBO Wizard
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Sample ModelsRefined Business Model
Account
<<Interface>>
AccountImpl AccountProxy
Implements Is proxy for
ICAProxyICAPersistentAny
AccountFactorycreates
ICAFactory
Implements
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Sample ModelsCORBA® Specific Model
CORBAType
(from CoreDistributionIDL)
<<Interface>> _CORBATypeOperations
(from CoreDistribution)
<<Interface>>
_CORBATypeStub
(from CoreDistribution)
CORBATypeSmartProxy
CORBATypeFactory
CORBATypeFactory()
New(corbaDelegate : org.omg.CORBA.portable.Delegate) : org.omg.CORBA.Object
_CORBATypeImplBase
(from CoreDistribution)
COAType
(from Type)
COATypeInterface
(from Type)
<<Interface>> 0..n
-superTypes
0..n
0..n-subTypes
0..n
CORBATypeImpl
1-myRef 1
AccountImpl
Instantiates
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Business Domain DefinitionXML Representation
<Class> Customer<Operation> approvePurchase
<Returns Type="boolean"/><Parameter Name="purchase" Type="Long" Mode="In"/><Parameter Name="creditLeft" Type="LongHolder" Mode="Out"/>
</Operation><Operation> getStatus<Returns Type="void"/><Parameter Name="nameHold" Type="StringHolder" Mode="Out"/><Parameter Name="creditHold" Type="LongHolder" Mode="Out"/><Parameter Name="totOrdHold" Type="DoubleHolder" Mode="Out"/><Parameter Name="discHold" Type="FloatHolder" Mode="Out"/>
</Operation>…<ClientBinding Name="Acme.BusinessTypes.CustomerProxy"/><Implementation Name="Acme.BusinessTypes.CustomerImpl" Concurrency="Full"
Transaction="NotSupported" FactoryImplicit="False" FactoryActivate="Update"NodeId="SunServer"/>
<PersistentDataImpl Name="Acme.BusinessTypes.CustomerData"/><PersistentStateImpl Name="Acme.BusinessTypes.CustomerState"/><Persistent Name="OracleDB1"/>…
</Class>
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Deployment Model
! UML Deployment View to model logical topography.
! Generate Deployment Descriptors.! Mapping tools to physical network.
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Deployment Transformation
AppAdmin <<Admin Server>>
ConfigClient <<Thin Client>> EnterpriseServer <<Thin Server>>
AgentClient <<Fat Client>>
Application-level Deployment Specification
Logical Node Topography
Defines
Maps to
Network Topography
Host A
Host BHost C
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
The Reality
! Project is a success and in production today.! Most of the effort was spent on building tools
and the infrastructure.! Crude homegrown automation and
transformation tools.! Need for more powerful modeling
expressiveness of non-functional features.
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
What This Means
! Key to MDA realization:" Tools! Tools! Tools!" Upgraded Skill set;
! As an early adopter, experiment with MDA.
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Benefits
! High returns from reuse.! Application developers focus on business
development.! Ease of migration to other underlying
technologies.! Seamless addition of ancillary services
" Remote Debugging; Instrumentation; Logging;
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Lessons Learned
! Invest in tools – don’t build from scratch.! Effort requires management buy-in.! Performance Overhead of infrastructure layer
is negligible.! Mentoring and Training technical staff
" Architecture philosophy, approach & patterns;" Design by Contract;
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
More Lessons Learned
! Appropriate Development Environment." Tools! Tools! Tools!" Well-integrated tools suite that supports the
full development lifecycle;" Automation and optimization of software
development tasks upfront;! A “natural” tool environment for MDA.
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Closing Point
! To MDA or not to MDA?" Does it work?" Measurable improvements?" …
! Reusable enterprise infrastructure across projects
9/20/2002 Copyright © 2002, Cephas Consulting Corp, all rights reserved.
Impact on SD Productivity
Productivity Factors
15% 28% 35%60%
350%
0%
50%
100%
150%
200%
250%
300%
350%
400%
Goo
d O
ffice
Ergo
nom
ics
Effe
ctiv
eD
evel
opm
ent T
ool
Envi
ronm
ent
Effe
ctiv
eM
etho
ds/P
roce
sses
Hig
hM
anag
emen
t/St
aff
Expe
rienc
e
Reus
e of
Hig
hQ
ualit
y D
eliv
erab
les
Factors
Impact on Productivity (PositiveFactors)
Source: Capers Jones, Software Assessments, Benchmarks, and Best Practices. ISBN: 0-201-48542-7