The power of powerdesigner l.jpg
This presentation is the property of its rightful owner.
Sponsored Links
1 / 49

The Power of PowerDesigner PowerPoint PPT Presentation

  • Uploaded on
  • Presentation posted in: General

The Power of PowerDesigner. Frank Irnich Sybase GmbH [email protected] Agenda. PowerDesigner Overview PowerDesigner for PowerBuilder Features Summary Applying PowerDesigner extensibility features to extend its traditional usage Version 10: PowerDesigner and PowerBuilder together

Download Presentation

The Power of PowerDesigner

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript

The power of powerdesigner l.jpg

The Power of PowerDesigner

Frank IrnichSybase [email protected]

Agenda l.jpg


  • PowerDesigner Overview

  • PowerDesigner for PowerBuilder Features Summary

  • Applying PowerDesigner extensibility features to extend its traditional usage

  • Version 10: PowerDesigner and PowerBuilder together

  • PowerDesigner 10

Powerdesigner overview l.jpg

PowerDesigner Overview

  • Why Modeling?

  • PowerDesigner History

  • PowerDesigner Features Summary

Why modeling an analogy l.jpg

Why Modeling? – An analogy

Would you build a house without a blueprint ?

The Architect validatesthe concept with the client

From these drawings, a technical diagram will be derived

The Contractors will take this blueprint and optimise it based on technical considerations – linked to the Architectural View

The application development process l.jpg

The Application Development Process

A Business Process Model describing the Software Development Lifecycle

  • Starts with Understanding Business Needs

  • IT Manager then:

    • Matches business needs with Technological Requirements

    • Manages the IT development team – a multi-discipline team

  • Most IT shops separate DB development from Application development

  • Specific tools needed for each population/role

Design tools market landscape l.jpg

Design Tools Market Landscape

Three markets converging

Business ProcessModeling(emerging standards)

Business AnalystsLOBsCIOs

TraditionalE/R DataModeling(James Martin)


(UML techniques)

Designers/Analysts,DBAs, Database Developers

Designers/Analysts,Developers, Programmers

Target audience l.jpg

Target Audience



IT Directors and ManagersSenior Analysts & Designers

CxOsLOBsBusiness Analysts

Application- Designers

- Developers



- Designers

- Developers


Powerdesigner s rich history l.jpg

PowerDesigner’s Rich History

Old Generation – Completed commitment to Traditional E/R








French Only

v5DFD Process










New generation - Reinvented and Refined - UML, Business Modeling






v7First UML





v9.0J2EE in UMLNew Warehouse

& Business Process


v9.5All UML diagrams.NET in UML


Powerdesigner 9 5 l.jpg

PowerDesigner 9.5

Integrated Enterprise Modeling Tool

Business-centric Control Flow diagram



UML modeling (all diagrams)

Entity/Relationship modeling (and DW extensions)



Templates, Generic Generators,UML profiles, model-to-model generation…


RDBMS structuresObject Relational mapping

Java, .Net, XML, PB... support

IDEs & App Server support


Source Sybase

Link and synchronize all models l.jpg




Link and Synchronize All Models


Java, J2EE


Object-Oriented Model


Business Process



ebXML, MessageBroker, Ohio

C++, C#, VB.Net,

Web Services, etc...

O/R Mapping

Conceptual Data



Physical Data



Forward Engineering


Reverse Engineering

Database SQL



Round-trip Engineering


Powerdesigner 9 5 2 features summary l.jpg

PowerDesigner 9.5.2 Features Summary

  • PowerDesigner is a good enterprise modeling tool

    • Leading Data Modeling tool

    • Complete UML support (9 UML diagrams)

    • Business Process Modeling features

    • Good Repository

  • Integration with Integration Orchestrator, Message Broker, ebXML

  • Design and generate code for PowerBuilder, Web Services, J2EE (EJB, O/R mapping), .NET, etc.

  • Support all major databases (more than 30)

  • Support major application servers (EAServer, WebLogic, WebSphere)

  • Integration with IDEs (Eclipse, JBuilder 8, Ant)

  • Supports Model Driven Architecture (MDA)

  • Extensibility (Profile, Code generator, VBScript, OLE automation)

Powerdesigner 9 5 2 for powerbuilder l.jpg

PowerDesigner 9.5.2 for PowerBuilder

  • PowerDesigner for PowerBuilder Features Summary

  • PowerBuilder Applications Design and Development

  • Reverse Engineering PowerBuilder Applications

  • Designing PowerBuilder Applications

  • Generating PowerBuilder Applications

  • Extending PowerDesigner Features

  • Future Direction

Powerdesigner for powerbuilder features summary l.jpg

PowerDesigner for PowerBuilder FeaturesSummary

  • PowerDesigner 9.5.2 introduces complete support for all PowerBuilder objects reverse engineering and generation

  • Support libraries (.pbl) and source files (.sr*)

  • Support PowerBuilder 6, 7, 8 and 9

  • PowerBuilder tool palette for creating new objects

  • Model verification

  • Generate & reverse PowerBuilder extended attributes in PDM

Problem statement l.jpg

Problem Statement

  • Most of PowerBuilder developers don’t do design.

  • Many PowerBuilder applications don’t have a good architecture and there is no documentation.

  • It is difficult to maintain and evolve when the developers are gone.

Powerdesigner value proposition l.jpg

PowerDesigner Value Proposition

  • Help users to understand how the application was developed.

  • Help users to visually see the relationship between objects.

  • Help users to improve existing code, refactor the code.

  • Regenerate PowerBuilder application.

  • Generate documentation (report) in HTML and RTF format.

Reverse engineering powerbuilder applications l.jpg

Reverse Engineering PowerBuilder Applications

  • Application, User Object, Structure, Function, Window, Proxy are represented by class structure

  • For the other objects (DataWindow, Query, Pipeline, …), the source code is preserved and can be regenerated

  • Both libraries (.pbl) and source files (.sr*) can be reverse engineered

Reverse engineering powerbuilder applications17 l.jpg

Reverse Engineering PowerBuilder Applications

  • You could select reverse engineering options.

  • You could use PowerBuilder System Classes and PFC library models to represent parent classes that give you the complete definition of the System Classes.

Displaying powerbuilder objects in class diagram l.jpg

Displaying PowerBuilder Objects in Class Diagram

  • A class diagram shows packages, inheritances, associations, dependencies, attributes, operations.

  • Each library is represented by a package.

  • A stereotype and a mini icon shows the type of object.

  • The dependencies show which menu or data window is used by which window.

  • Window, user object, application, structure, function and proxy are represented as classes and the code is regenerated from the class definition.

  • Other objects are represented as classes by the source code is kept and are not regenerated from the class definition.

  • Controls are represented by inner classes.

Example of a class diagram l.jpg

Example of a Class Diagram

Designing powerbuilder applications l.jpg

Designing PowerBuilder Applications

  • You can create, modify or delete objects or links.

  • You can use the PowerBuilder tool palette to create objects.

  • You could define interfaces and implement interfaces but the interfaces will not be generated.

  • You can preview the PowerBuilder code.

  • You can modify the PowerBuilder code in the code preview window.

  • You can write specification in RTF format. You could use Word to edit the description or annotation.

  • You can generate reports in HTML or RTF formats for documentation.

Defining inheritance s l.jpg

Defining Inheritances

  • A parent class could be a shortcut representing a class defined in another model for example for system classes.

Defining events l.jpg

Defining Events

  • Events are represented as operations.

  • An Event could be an operation with the «event» stereotype, with a language event or with an extended attribute EventID (pbm_*).

Overriding properties l.jpg

Overriding Properties

  • In the Attributes tab of the class property sheet, the Inherited button allows you to select the properties to override.

Previewing powerbuilder code l.jpg

Previewing PowerBuilder Code

  • Open the properties of an object. Select the Preview tab.

  • For Window, User Object, Application, Structure, Function and Proxy, the code is generated from the class definition. You could change the code in the Preview window (add attributes, modify operations, …), the model will be updated to reflect the changes.

  • For DataWindow, Menu, Query, …, you could change the code in the Script tab

Verifying the model l.jpg

Verifying the Model

  • You could use the Check Model function to verify if the model is well defined.

  • There are PowerBuilder specific checks.

Generating powerbuilder applications l.jpg

Generating PowerBuilder Applications

  • You can generate PowerBuilder objects into libraries or source files.

  • You can select the objects you want to generate.

Extending powerdesigner features l.jpg

Extending PowerDesigner Features

  • You could use various extensibility features of PowerDesigner to extend PowerDesigner’s PowerBuilder generation and reverse engineering capabilities:

    • Profile

    • GTL (template based code generator)

    • VBScript, OLE automation (PowerBuilder, .NET, Java, C++, …)

    • Plugins

The profile concept l.jpg

The profile concept

  • PowerDesigner uses the profile concept to extend/cutomize the definition of its metamodel

  • Profiles are used for

    • Creating categories of objects (stereotypes and criteria)

    • Customizing the graphics of objects

    • Adding additional metadata to objects (extended attributes)

    • Defining new or modified generation capabilities (templates)

    • Defining custom checks, menue-items, events, etc..

  • Profiles appear in all DBMS, object languages and extended model definitions

The profile concept29 l.jpg

The profile concept

  • Profiles appear in all DBMS, object languages and extended model definitions

PowerDesginer Public MetaModel


Object Language / DBMS


Profile Concept

Extended Model Definition(s)

Target Model (OOM, PDM, etc...)

Gtl generation template language l.jpg

GTL – Generation Template Language

  • Easy to use template language

  • Mixes generated text with object properties enclosed in % characters

  • Provides macros for

    • Specifying conditional logic

    • Iterating on object collections

    • Manipulating text

  • VB Scripts may be embedded in GTL templates for complex logic

  • Supports inheritance and polymorphism

Gtl generation template language31 l.jpg

GTL – Generation Template Language

  • Sample:

  • Class %code% {%attributes%}

  • .foreach_item(Attributes).if (%visibility% == +)public %DataType% %Code%;.elseif (%visibility% == -).//\n)




Vbscript l.jpg


  • Manipulate PowerDesigner objects in memory and perform any action on them

  • Browse object collections from the model down to any object using PowerDesigner`s metamodel

  • You can

    • Load and save models

    • Gain access to object definitions

    • Perform checks

    • Change object property values

    • Create or delete objects with the wanted characteristics

Ole automation l.jpg

OLE automation

  • VBScript allows you to write a VBScript and execute it inside PowerDesigner to manipulate PowerDesigner objects

  • OLE automation allows you to write a program to manipulate PowerDesigner objects from outside

    • You can use any programming language that supports COM to access PowerDesigner objects, create user-interfaces, integrate PowerDesigner functions in your program, etc...

Future direction l.jpg

Future Direction

  • PowerDesigner 10.0 will support tight integration with PowerBuilder 10

  • PowerBuilder 10 will be able to embed PowerDesigner views inside PowerBuilder

  • PowerBuilder will be able to control PowerDesigner

  • PowerDesigner will generate complete PowerBuilder application code (post 10.0)

Powerdesigner roadmap l.jpg

PowerDesigner Roadmap

  • PowerDesigner Athena (V10, December 2003)

    • Integration with PowerBuilder

    • Integration with Eclipse (Q1 2004)

    • Major BPM improvements

    • XML model

    • Fully support MDA

  • PowerDesigner Minerva (end of 2004)

    • Enterprise features (requirements, impact analysis, …)

    • XML and Web Services in database

    • UML 2.0

    • Design patterns

Business process modeling improvements l.jpg

Business Process Modeling Improvements

  • Add targets (Analysis, BPEL4WS , ebXML, Integration Orchestrator, MessageBroker, …)

  • Support simulation (use Simul8 engine)

  • Support Service-Oriented modeling

  • Model, generate & reverse BPEL4WS

  • Better integration with Integration Orchestrator (round-trip)

  • Better support ebXML BPSS

Xml model l.jpg

XML Model

  • Design, reverse engineer and generate XML Schema and DTD

  • Define mapping between XML Schema and database schema

  • Define mapping between XML Schema and objects

  • Support databases XML features

Other athena features l.jpg

Other Athena Features

  • Support C# and VB .NET reverse engineering

  • Improve Web Services support (support Apache Axis, …)

Powerdesigner and powerbuilder together l.jpg

PowerDesigner and PowerBuilder Together


  • PowerDesigner: A Plugin Component in PowerBuilder 10

  • Reverse Engineer From PowerBuilder

  • Design and Generate PowerBuilder Code Using PowerDesigner

  • Navigation Between PowerDesigner and PowerBuilder

Powerdesigner and powerbuilder together40 l.jpg

PowerDesigner and PowerBuilder Together

PowerDesigner: A Plugin Component in PowerBuilder 10

  • PowerBuilder Plugin Manager Manages Plugin Components

    • A plugin component can enable or disable by Plugin Manager

  • PowerDesigner Feature Will Be Available Only When It Is Turned On

Powerdesigner and powerbuilder together41 l.jpg

PowerDesigner and PowerBuilder Together

PowerDesigner: A Plugin Component in PowerBuilder 10

Powerdesigner and powerbuilder together42 l.jpg

PowerDesigner and PowerBuilder Together

Reverse Engineer From PowerBuilder

  • Select “Reverse Engineer” From PowerBuilder Target Context Menu

  • Select PBLs and Objects to Reverse Engineer

Powerdesigner and powerbuilder together43 l.jpg

PowerDesigner and PowerBuilder Together

Design and Generate PowerBuilder Code Using PowerDesigner

  • Create a New PowerBuilder OOM (Object Oriented Model)

    • OOM name maps to PowerBuilder target name

    • Package name maps to PowerBuilder pbl name

Powerdesigner and powerbuilder together44 l.jpg

PowerDesigner and PowerBuilder Together

Design and Generate PowerBuilder Code Using PowerDesigner

  • Add Classes and Do Design

    • Although PowerBuilder doesn’t support interface yet, user can define interface in PowerDesigner, then implement interface in a PowerBuilder user object.

Powerdesigner and powerbuilder together45 l.jpg

PowerDesigner and PowerBuilder Together

Design and Generate PowerBuilder Code Using PowerDesigner

  • Check Model

    • Check model is customized for PowerBuilder, for example, it will check whether a object name is valid PowerBuilder name, a pbl can only have one application object

    • Check model results are printed in output window

Powerdesigner and powerbuilder together46 l.jpg

PowerDesigner and PowerBuilder Together

Design and Generate PowerBuilder Code Using PowerDesigner

  • Generate PowerBuilder Code

    • Select packages and classes from OOM to generate PowerBuilder code

    • If it is the first time to generate PowerBuilder code, a new PowerBuilder target will be created

Powerdesigner and powerbuilder together47 l.jpg

PowerDesigner and PowerBuilder Together

Navigation Between PowerDesigner and PowerBuilder

  • From PowerBuilder to PowerDesigner

    • Select “Open Class Diagram” from pbl context menu to open class diagram for this pbl

    • Select “Find in Class Diagram” from PB object context menu to find the corresponding class in class diagram

  • From PowerDesigner to PowerBuilder

    • Double click a class in class diagram to launch PowerBuilder painter to open corresponding PB object

    • Select “Find in PowerBuilder Workspace” from class context menu to find the corresponding PowerBuilder object in PowerBuilder workspace

Slide48 l.jpg

Question & Answer . . .

The power of powerdesigner49 l.jpg

The Power of PowerDesigner

Frank IrnichSybase [email protected]

  • Login