ARCH-6: UML Modeling with Enterprise
Architect
Phillip Magnay
Technical Architect
Agenda
UML Modeling with Enterprise Architect
 The Value of Modeling
 Enterprise Architect
 Enterprise Architect and OpenEdge®
 Modeling for OpenEdge using Enterprise Architect
ARCH-6: UML Modeling with Enterprise Architect
2
© 2006 Progress Software Corporation
The Value of Modeling
 Manage Complexity
 Mitigate Risk
 Facilitate Communication
ARCH-6: UML Modeling with Enterprise Architect
3
© 2006 Progress Software Corporation
Modeling is Commonplace
ARCH-6: UML Modeling with Enterprise Architect
4
© 2006 Progress Software Corporation
Software Development
Structure
Coding
Functionality
Behavior
ARCH-6: UML Modeling with Enterprise Architect
Deployment
5
© 2006 Progress Software Corporation
Software Development with UML
Logical View
Implementation View
id Business Entity (Client)
cd Users
«Include»
Business Entities::Employee
+
+
+
+
+
+
1 +
+
+
+
+
+
Architecture Entities::User
-
UserEmail: CHARACTER
UserLogin: CHARACTER
1
UserPassword: CHARACTER
0..*
+
+
+
+
+
+
1
Architecture Entities::UserGroups
-
Address: CHARACTER
City: CHARACTER
email: CHARACTER
EmployeeLanguage: CHARACTER
employmentEndDate: DATETIME-TZ
employmentStartDate: DATE
FirstName: CHARACTER
LastName: CHARACTER
MobilePhoneNumber: CHARACTER
Notes: CHARACTER
0..*
PhoneNumber: CHARACTER
Position: CHARACTER
PostCode: CHARACTER
dsXxx.i
includes
-
DEFINE DATASET <dataset-def>:
includes
Architecture Entities::
Language
«Program»
«include»
«includes»
ttContext.i
1 -
Description: CHARACTER
Language: CHARACTER
createEmployee() : void
deleteEmployee() : void
findEmployee() : void
isAvailable() : LOGICAL
updateEmployee() : void
validateEmployee() : void
«includes»
ClientXxx.p
«Include»
etXxx.i
Use Case View
includes
«Include»
proSIproxyStart.i
ud Manage Employees
-
UserGroupDescription: CHARACTER
UserGroupName: CHARACTER
NEW GLOBAL SHARED VARIABLE ghProxySIproc:
«realize PERSISTENT»
AutoEdge System
Brow se Employees
«Program»
proSIproxy.p
«use»
Delete Employee
-
NEW GLOBAL SHARED VARIABLE ghttProxySIproc: HANDLE
+
+
fetchWhere(CHARACTER, HANDLE, DATASET-HANDLE*) : void
saveChanges(CHARACTER, HANDLE, CHARACTER*) : void
«use»
Update Employee
Dynamic View
Deployment View
Manager
(from Actors)
«include»
sd Login
Create Employee
Client
Server Gateway
Security
«extend»
Create User
Session Context
dd Integration
Request("Security", "Login", ...)
HQ System
isValidUser(Login, password)
ValidUser
Sonic
[if Valid User]: createSession
Sonic
sessionID
Dealer
System 1
Sonic
Dealer
System 2
Sonic
Dealer
System 3
Sonic
Dealer
System n
[if valid user]: sessionID
(from Architecture Components)
(from Architecture Components)
(from Architecture Components)
(from Architecture Components)
ARCH-6: UML Modeling with Enterprise Architect
6
© 2006 Progress Software Corporation
Model-Driven Architecture (MDA)
ud Manage Employees
AutoEdge System
Brow se Employees
CIM
>>
PIM
PIM
>>
PSM
Computation-Independent
Model
«use»
Delete Employee
«use»
Update Employee
Manager
(from Actors)
«include»
Create Employee
«extend»
Create User
cd Users
Business Entities::Employee
Platform-Independent
Model
Architecture Entities::User
-
UserEmail: CHARACTER
UserLogin: CHARACTER
1
UserPassword: CHARACTER
0..*
1
Architecture Entities::UserGroups
-
+
+
+
+
+
+
1 +
+
+
+
+
+
+
+
+
+
+
+
Address: CHARACTER
City: CHARACTER
email: CHARACTER
EmployeeLanguage: CHARACTER
employmentEndDate: DATETIME-TZ
employmentStartDate: DATE
FirstName: CHARACTER
LastName: CHARACTER
MobilePhoneNumber: CHARACTER
Notes: CHARACTER
0..*
PhoneNumber: CHARACTER
Position: CHARACTER
PostCode: CHARACTER
Architecture Entities::
Language
1 -
Description: CHARACTER
Language: CHARACTER
createEmployee() : void
deleteEmployee() : void
findEmployee() : void
isAvailable() : LOGICAL
updateEmployee() : void
validateEmployee() : void
UserGroupDescription: CHARACTER
UserGroupName: CHARACTER
id Business Entity (Client)
«Include»
dsXxx.i
includes
-
DEFINE DAT ASET <dataset-def>:
includes
PSM
>>
Code
Platform-Specific
Model
Code
ARCH-6: UML Modeling with Enterprise Architect
Code
«Program»
«include»
«includes»
ttContext.i
«includes»
ClientXxx.p
«Include»
etXxx.i
includes
«Include»
proSIproxyStart.i
-
NEW GLOBAL SHARED VARIABLE ghProxySIproc:
«realize PERSIST ENT »
«Program»
proSIproxy.p
-
NEW GLOBAL SHARED VARIABLE ghttProxySIproc: HANDLE
+
+
fetchWhere(CHARACT ER, HANDLE, DAT ASET -HANDLE*) : void
saveChanges(CHARACT ER, HANDLE, CHARACT ER*) : void
Code
7
© 2006 Progress Software Corporation
Model-Driven Architecture (MDA)
 Define abstract
 Use PIM to derive
Platform
Independent Model
(PIM)
Platform Specific
Model (PSM)
Transform
ARCH-6: UML Modeling with Enterprise Architect
8
© 2006 Progress Software Corporation
The Ultimate Goal
 UML is a common language which can express
functionality at different levels of abstraction
• Computation-Independent
• Platform-Independent
• Platform-Specific
 From UML to software
 Tools
ARCH-6: UML Modeling with Enterprise Architect
9
© 2006 Progress Software Corporation
Agenda
UML Modeling with Enterprise Architect
 The Value of Modeling
 Enterprise Architect
 Enterprise Architect and OpenEdge
 Modeling for OpenEdge using Enterprise Architect
ARCH-6: UML Modeling with Enterprise Architect
10 © 2006 Progress Software Corporation
Sparx Systems - Technology Partner Program
ARCH-6: UML Modeling with Enterprise Architect
11 © 2006 Progress Software Corporation
Enterprise Architect from Sparx Systems
ARCH-6: UML Modeling with Enterprise Architect
12 © 2006 Progress Software Corporation
Enterprise Architect from Sparx Systems
 Complete UML 2.0 compliance
 Visualizes your application
 Manages complexity
 Generates and reverse engineers source code
 Generates documentation
 Customizable
 Multi-user
 Intuitive and easy to use
 Cost-effective
ARCH-6: UML Modeling with Enterprise Architect
13 © 2006 Progress Software Corporation
Agenda
UML Modeling with Enterprise Architect
 The Value of Modeling
 Enterprise Architect
 Enterprise Architect and OpenEdge
 Modeling for OpenEdge using Enterprise Architect
ARCH-6: UML Modeling with Enterprise Architect
14 © 2006 Progress Software Corporation
OpenEdge and Enterprise Architect
Working Together
OpenEdge 10 Database
support
Enterprise
Architect evaluated
and selected
Data Modeling &
Schema
Engineering
Contact &
communications
Visit to Sparx,
Interoperability
roadmap defined
Oct,
2003
Feb,
2005
May,
2005
ARCH-6: UML Modeling with Enterprise Architect
Code
Engineering
Oct, Dec, Jan,
2005 2005 2006
15 © 2006 Progress Software Corporation
Agenda
UML Modeling with Enterprise Architect
 The Value of Modeling
 Enterprise Architect
 Enterprise Architect and OpenEdge
 Modeling for OpenEdge using Enterprise Architect
ARCH-6: UML Modeling with Enterprise Architect
16 © 2006 Progress Software Corporation
Modeling for OpenEdge using Enterprise Architect
1.
2.
3.
4.
5.
OpenEdge 10 Database as Model Repository
OpenEdge 10 Data Modeling & Schema
Engineering
Forward Engineering of OpenEdge 10 ABL
Components
Forward & Reverse Engineering of OpenEdge
10 Object Oriented ABL
Real-Time Design-Time Integration between
OpenEdge Architect and Enterprise Architect
ARCH-6: UML Modeling with Enterprise Architect
17 © 2006 Progress Software Corporation
OpenEdge 10 Database as Model Repository
OpenEdge 10
DBMS
ARCH-6: UML Modeling with Enterprise Architect
18 © 2006 Progress Software Corporation
Data Modeling & Schema Engineering
cd catalog
ComponentMethod
field
ComponentId: INTEGER
*PK ComponentMethodId: INTEGER
MethodDAObject: CHARACTER
MethodDatasetFile: CHARACTER
MethodDatasetName: CHARACTER
MethodIgnoreBuffer: CHARACTER
MethodInputOutput: LOGICAL
MethodObject: CHARACTER
MethodProcedure: CHARACTER
MethodRequest: CHARACTER
index
+
ComponentId(INTEGER)
0..*
FK
+
FK_ComponentMethod_Component(INTEGER)
unique
+
MethodRequest(INTEGER, CHARACTER)
PK
+
puMethodId(INTEGER)
Component
1
field
ComponentDescription: CHARACTER
*PK ComponentId: INTEGER
ComponentName: CHARACTER
unique
+
uComponentName(CHARACTER)
PK
+
upComponentId(INTEGER)
schema.df
ARCH-6: UML Modeling with Enterprise Architect
19 © 2006 Progress Software Corporation
Data Modeling & Schema Engineering
ARCH-6: UML Modeling with Enterprise Architect
20 © 2006 Progress Software Corporation
Code Engineering – ABL Components
cd ComponentMethod
«interface»
Support::BusinessEntity
Name:
ComponentMethod
Package: Physical Component Model
Version: 1.0
Author:
Phillip Magnay
+
+
fetchWhere(phDataSet :DATASET-HANDLE) : void
saveChanges(phDataSet :DATASET-HANDLE*) : void
«BusinessEntity»
catalog::beComponentMethod
DataAccess
+ daComponentMethod: daComponentMethod
DataSet
+ dsComponentMethod: dsComponentMethod
Support::beSupport
BusinessTask
+ ProcessComponent(dsComponentMethod :DATASET) : void
«DATASET»
«Dataset»
catalog::dsComponentMethod
«DATAACCESS»
table
+ eComponentMethod: eComponentMethod
«DataAccess»
catalog::daComponentMethod
«DATASET»
Dataset
+ dsComponentMethod: dsComponentMethod
Dataset Fill Event Procedure
+ dsComponentMethodPostFill(dsComponentMethod :DATASET) : void
+ dsComponentMethodPreFill(dsComponentMethod :DATASET) : void
+ eComponentMethodPostFill(dsComponentMethod :DATASET) : void
+ eComponentMethodPreFill(dsComponentMethod :DATASET) : void
+ eComponentMethodRowPostFill(dsComponentMethod :DATASET) : void
+ eComponentMethodRowPreFill(dsComponentMethod :DATASET) : void
+ eComponentPostFill(dsComponentMethod :DATASET) : void
+ eComponentPreFill(dsComponentMethod :DATASET) : void
+ eComponentRowPostFill(dsComponentMethod :DATASET) : void
+ eComponentRowPreFill(dsComponentMethod :DATASET) : void
CRUD
+ fetchChanges(dsComponentMethod :DATASET) : void
+ saveChanges(dsComponentMethod :DATASET) : void
Support::daSupport
*.p, *.i
Datasets
Business Entities
ARCH-6: UML Modeling with Enterprise Architect
21 © 2006 Progress Software Corporation
Code Engineering – ABL Components
ARCH-6: UML Modeling with Enterprise Architect
22 © 2006 Progress Software Corporation
Code Engineering – Object-Oriented Classes
cd ComponentMethod
«interface»
Support::BusinessEntity
Name:
ComponentMethod
Package: Physical Component Model
Version: 1.0
Author:
Phillip Magnay
+
+
fetchWhere(phDataSet :DATASET-HANDLE) : void
saveChanges(phDataSet :DATASET-HANDLE*) : void
«BusinessEntity»
catalog::beComponentMethod
DataAccess
+ daComponentMethod: daComponentMethod
DataSet
+ dsComponentMethod: dsComponentMethod
Support::beSupport
BusinessTask
+ ProcessComponent(dsComponentMethod :DATASET) : void
«DATASET»
«Dataset»
catalog::dsComponentMethod
«DATAACCESS»
table
+ eComponentMethod: eComponentMethod
«DataAccess»
catalog::daComponentMethod
«DATASET»
Dataset
+ dsComponentMethod: dsComponentMethod
Dataset Fill Event Procedure
+ dsComponentMethodPostFill(dsComponentMethod :DATASET) : void
+ dsComponentMethodPreFill(dsComponentMethod :DATASET) : void
+ eComponentMethodPostFill(dsComponentMethod :DATASET) : void
+ eComponentMethodPreFill(dsComponentMethod :DATASET) : void
+ eComponentMethodRowPostFill(dsComponentMethod :DATASET) : void
+ eComponentMethodRowPreFill(dsComponentMethod :DATASET) : void
+ eComponentPostFill(dsComponentMethod :DATASET) : void
+ eComponentPreFill(dsComponentMethod :DATASET) : void
+ eComponentRowPostFill(dsComponentMethod :DATASET) : void
+ eComponentRowPreFill(dsComponentMethod :DATASET) : void
CRUD
+ fetchChanges(dsComponentMethod :DATASET) : void
+ saveChanges(dsComponentMethod :DATASET) : void
Support::daSupport
*.cls
ARCH-6: UML Modeling with Enterprise Architect
23 © 2006 Progress Software Corporation
Code Engineering – Object-Oriented Classes
ARCH-6: UML Modeling with Enterprise Architect
24 © 2006 Progress Software Corporation
MDG Technology for OpenEdge
 Enterprise Architect Projects
for OpenEdge
•
•
•
•
OpenEdge Data Types
OpenEdge Code Templates
UML Profiles for OpenEdge
UML Stereotypes for
OpenEdge
• UML Patterns for OpenEdge
ARCH-6: UML Modeling with Enterprise Architect
25 © 2006 Progress Software Corporation
What’s next...?


D I S C L A I M E R
This talk includes information about potential
future products and/or product enhancements.
What I am going to say reflects our current
thinking, but the information contained herein is
preliminary and subject to change. Any future
products we ultimately deliver may be materially
different from what is described here.
D
I
S
ARCH-6: UML Modeling with Enterprise Architect
C
L
A
I
M
E
R
26 © 2006 Progress Software Corporation
What’s next...?
 No Promises…
 Closer Link between Enterprise Architect and


OpenEdge Architect at design-time
Alignment & Integration with Tools for
Business Logic via XMI
Patterns and Practices
ARCH-6: UML Modeling with Enterprise Architect
27 © 2006 Progress Software Corporation
OpenEdge Architect & Enterprise Architect
ARCH-6: UML Modeling with Enterprise Architect
28 © 2006 Progress Software Corporation
In Summary
 UML provides a standard


language to define systems
The result is higher
productivity, better quality, and
lower risk
OpenEdge and Enterprise
Architect deliver the benefits of
UML to OpenEdge developers
ARCH-6: UML Modeling with Enterprise Architect
29 © 2006 Progress Software Corporation
For More Information, go to…
 PSDN
• www.psdn.com
 Sparx Systems
• www.sparxsystems.com
 Relevant Exchange Sessions:
• ARCH-2: UML 101 - From Design to
Implementation using UML
• ARCH-8: Implementing the OpenEdge
Reference Architecture with OpenEdge 10.1
ARCH-6: UML Modeling with Enterprise Architect
30 © 2006 Progress Software Corporation
Questions?
ARCH-6: UML Modeling with Enterprise Architect
31 © 2006 Progress Software Corporation
Thank you for
your time
ARCH-6: UML Modeling with Enterprise Architect
32 © 2006 Progress Software Corporation
ARCH-6: UML Modeling with Enterprise Architect
33 © 2006 Progress Software Corporation
Descargar

ARCH-6