EP Analysis Presentation

Download Report

Transcript EP Analysis Presentation

PowerDesigner 与对象建模
Why Using UML?
• Visually define and communicate the structure and
behavior of an application
• Represent systems using Object-Oriented concepts
• Link OO concepts to executable code
2
Brief Overview of UML
• UML is defined by OMG.
• UML consists of 9 diagrams:
– Static
– Class diagram
– Object diagram
– Dynamic
–
–
–
–
–
Use Case diagram
Sequence diagram
Statechart diagram
Collaboration diagram
Activity diagram
– Implementation
– Component diagram
– Deployment diagram
3
UML Support in PowerDesigner
• PowerDesigner supports all nine UML diagrams
• PowerDesigner supports UML 1.4
• Future version of PowerDesigner will support UML 2.0
4
Use Case Diagram
• A Use Case Diagram describes the Actors, the Use Cases and
the interaction between the Actors and the Use Cases.
Display Catalog
<<includes>>
Logon
Purchase
<<includes>>
Logoff
Ship To Address
Customer
Shipping
List Orders
List Cart
News
5
Collaboration Diagram
• A Collaboration Diagram describes the interaction between
objects (instance of classes) by exchanging messages.
• Collaboration Diagram can be used to identify classes and
operations
<<Servlet>>
Display Catalog
2.2: OK
3: Product List
<<Servlet>>
<<JSP>>
Main page
1: Login
Validate Login
Customer
2.1: Error
Customer
4: Purchase
<<JSP>>
Display Error
Main page
1: Login
2.2: OK
Add in Shopping Cart
<<Servlet>>
Validate Login
<<Servlet>>
Display Catalog
6
Sequence Diagram
• A Sequence Diagram describes the interaction between
objects and how the messages are exchanged over time.
• Sequence Diagram is used to identify classes and
operations
<<JSP>>
<<Servlet>>
Main page
Validate Login
Display Error
<<Servlet>>
Display Catalog
Add in Shopping Cart
Customer
open
1: Login
2.1: Error
2.2: OK
3: Product List
4: Purchase
7
Activity Diagram
• An Activity Diagram describes the logic
and the control flow of a Use Case, an
Operation or another Activity.
Main Page
Login
Login Error
[No]
OK?
[Yes]
Display Catalog
Select Product
Purchase Products
Action Steps
Purchase
Check Out
8
Statechart Diagram
• A Statechart Diagram is used to model the States and
Transitions of a Class
Intial
Play
Pause
9
Object Diagram
• An Object Diagram shows the relationships between
Object Instances
:Customer
id
= 101
name = "XiaoYun Wang"
:Order
id
=1
date = 3/25/2004
10
Class Diagram
• A Class Diagram defines the Classes, Interfaces, Attributes,
Operations, Relationships, Inheritances, …
• A Class Diagram can be used to define persistent objects,
control objects and user-interface objects.
• A Class Diagram can be used to generate the Physical Data
Model and the application implementation code.
Peripheral
Computer
+ serial #
: String
+ ownerName : String
0..1
personalcomputers
+
+
+
+
registerPeriph ()
testPort ()
testPwSupply ()
testMotherBd ()
: void
: void
: void
: void
<<Persistent>>
parallelPeripheral
0..*
peripheral
+
+
+
+
+
+
+
peripheral tester
+
+
+
+
test #
: int
testName : String
testDate : java.util.Date
printReport () : void
periphId
: String
periphCodeName : String
vendorName
: String
registerPeriph () : void
testPort ()
: void
testPwSupply () : void
testMotherBd () : void
scanner
printer
+ laser
: boolean
+ printSpeed : int
+ printPage () : void
+
+
+
+
+
+
+
flatBed
: boolean
resolution : int
preview ()
: void
registerPeriph () : void
testPort ()
: void
testPwSupply () : void
testMotherBd () : void
11
Component Diagram
• A Component Diagram can be used to define the components
you need to create for an application
• A Component can use Classes, Interfaces
• PowerDesigner uses Components to represent EJBs,
Servlets, JSPs, ASPs and Web Services
Product
EntityBean_CMP
GetProductPageJSP
GetProductList
Servlet
12
Deployment Diagram
• A Deployment Diagram is used to define the deployment
architecture
• Deployment Diagram shows the Nodes (machines, servers),
the Component Instances deployed in a Node and the Links
between Nodes
<<J2EE Server>>
Jaguar
easerver.sybase.com
CustomerBean
OrderBean
ProductBean
<<Web Service>>
Web Service
158.126.19.3
<<Database>>
CRM
13
Object/Relational (O/R) Mapping
• Generate a Class Diagram from a Physical Data Model
with O/R mapping
• Generate a Physical Data Model from a Class Diagram
with O/R mapping
• Manually define complex O/R mapping
• Generate select, insert, update, delete SQL statements
• Use O/R mapping to generate EJB CMP (WebLogic,
WebSphere, EAServer), JDO, Cocobase, .NET (future)
14
O/R Mapping Example
Use O/R mapping to generate SQL
Generate O/R mapping when
generating a PDM from an OOM
15
Java Support
• Provide wizards to automatically create EJBs, Servlets, JSPs,
Web Services
• Generate and reverse engineer Java code
• Generate collection management accessor functions
• Generate deployment descriptors
• Generate O/R mapping descriptor for WebLogic, WebSphere,
EAServer, JDO, JBoss (future)
• Generate project files for JBuilder and Eclipse
• Generate Ant script to compile, package and deploy J2EE
application
16
Example of EJB
<<EJBRemoteHome>>
CustomerHome
+ <<EJBFinderMethod>> findByPrimaryKey (..) : Customer
<<EJBLocal>>
CustomerLocal
<<EJBEntity>>
CustomerBean
{abstract}
-
<<EJBRemote>>
Customer
EJB wizard
Customer
EntityBean_CMP
id
name
email
phone
ejbContext
:
:
:
:
:
java.lang.Integer
java.lang.String
java.lang.String
java.lang.String
EntityContext
+ <<Constructor>> CustomerBean ()
+
ejbActivate ()
+
ejbLoad ()
+
ejbPassivate ()
+
ejbRemove ()
+
ejbStore ()
+
setEntityContext (..)
+
unsetEntityContext ()
<<EJBLocalHome>>
CustomerLocalHome
void
void
void
void
void
void
void
<<EJBPrimaryKey>>
CustomerPK
- id : java.lang.Integer
+ <<EJBFinderMethod>> findByPrimaryKey (..) : CustomerLocal
EJB Component
:
:
:
:
:
:
:
EJB Classes and Interfaces
+ <<Constructor>> CustomerPK ()
+
equals (..)
: boolean
+
hashCode ()
: int
17
.NET Support
•
•
•
•
•
•
Reverse engineer C# and Visual Basic .NET code
Reverse engineer .NET binary code in C# or VB .NET
Generate C# and VB .NET code
Generate collection management accessor functions
Generate Visual Studio .NET project files
Create Web Services for C# or VB .NET (.asmx files)
18
Code Generation
• Templates and macros based
code generator
• Generate Java, C#, VB .NET,
VB, C++, PowerBuilder, …
• User could add their own
code generation templates
C# code preview
19