Sei sulla pagina 1di 19

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

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

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

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

<<JSP>>

<<Servlet>> 1: Login

Main page
Customer

Validate Login

2.1: Error

Customer

<<JSP>>

4: Purchase

Main page

Display Error

1: Login 2.2: OK

Add in Shopping Cart

<<Servlet>>

Validate Login

<<Servlet>>

Display Catalog

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 Customer


open

Validate Login

Display Error

<<Servlet>>

Display Catalog

Add in Shopping Cart

1: Login

2.1: Error

2.2: OK

3: Product List

4: Purchase

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

Statechart Diagram
A Statechart Diagram is used to model the States and Transitions of a Class

Intial

Play

Pause

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.
Computer + serial # : String + ownerName : String + + + +
0..* peripheral

Peripheral registerPeriph () testPort () testPwSupply () testMotherBd () : void : void : void : void <<Persistent>> parallelPeripheral + + + + + + + periphId : String periphCodeName : String vendorName : String registerPeriph () : void testPort () : void testPwSupply () : void testMotherBd () : void

0..1 personalcomputers

peripheral tester + + + + test # : int testName : String testDate : java.util.Date printReport () : void

printer + laser : boolean + printSpeed : int + printPage () : void + + + + + + +

scanner 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} id name email phone ejbContext : : : : : java.lang.Integer java.lang.String java.lang.String java.lang.String EntityContext : : : : : : : void void void void void void void

<<EJBRemote>> Customer

EJB wizard

+ <<Constructor>> CustomerBean () + ejbActivate () + ejbLoad () + ejbPassivate () + ejbRemove () + ejbStore () + setEntityContext (..) + unsetEntityContext ()

Customer EntityBean_CMP

<<EJBLocalHome>> CustomerLocalHome

<<EJBPrimaryKey>> CustomerPK - id : java.lang.Integer + <<Constructor>> CustomerPK () + equals (..) : boolean + hashCode () : int

+ <<EJBFinderMethod>> findByPrimaryKey (..) : CustomerLocal

EJB Component

EJB Classes and Interfaces

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

Potrebbero piacerti anche