PowerBuilder Tips, Tricks, and Techniques

Berndt Hamboeck

Subscribe to Berndt Hamboeck: eMailAlertsEmail Alerts
Get Berndt Hamboeck: homepageHomepage mobileMobile rssRSS facebookFacebook twitterTwitter linkedinLinkedIn

PowerBuilder: Article

PowerBuilder and PowerDesigner 10

A strong team

You may have already heard that PowerBuilder 10 will allow developers to use plugins. The first plugin offered will be PowerDesigner 10. Yes, we will be able to use PowerDesigner within our beloved PowerBuilder IDE. This may be the first step and we may see a lot more plugins follow once the specification on how to create your own plugins is released to the developer community. Perhaps by the time you read this, it already is. In this article we'll look at what PowerDesigner 10 may offer for the PowerBuilder developer, and if you haven't already played around with PowerDesigner, you may want to do so after reading this article.

What Is UML?

Before we start looking into the plugin, you should first understand what the UML is. Quite simply, UML is a visual language for modeling and communicating about systems through the use of diagrams and supporting text. The UML was designed to be a public resource; it grew out of a long list of modeling language notations and methods (the three most prominent system-development methods were Grady Booch's Booch-93 method, James Rumbaugh's Object Modeling Technique [OMT] method, and Ivar Jacobson's Object-Oriented Software Engineering [OOSE] method), and it continues to be extended and refined. The standard is intended to be a reflection of best practices. Consequently, there is an ongoing need to improve the standard as practices improve and the application of the standard is tested in increasingly diverse and demanding applications. As you may already know, UML is an abbreviation for Unified Modeling Language. Each of these words speaks to an important aspect of the UML, so let's look at these three words: unified, modeling, and language in detail.

The term unified refers to the fact that the Object Management Group (OMG), an industry-recognized standardization organization, created the UML to bring together the information systems and the technology industry's best engineering practices. These practices involve applying techniques that allow us to more successfully develop systems. To enable the development of models, the OMG introduced the Object Constraint Language (OCL), a sublanguage for attaching conditions that the elements of a model must satisfy for the model to be considered correct (also known as well formed). An extensible language allows us to define new concepts easily. An implementation-independent language may be used independently of any specific implementation technologies, such as PowerBuilder, C++, Java, or .NET. A process-independent language may be used with various types of processes.

The UML standard is open for review and is changeable by anyone who wants to contribute to it. You may also access the UML specifications and even download them for free from the OMG Web site: www.omg.org. If you look at them separately, these are only methods, but together they form a fairly complete methodology. You'll want to refer mostly to the Notation Guide and the Glossary. It makes a good reference, so take an in-depth look at it.

A language enables us to communicate about a subject. In system development, the subject includes the requirements and the system. Without a language, it's difficult (in fact impossible) for team members to communicate and collaborate to successfully develop a system. Stated somewhat formally, the UML is a language for specifying, visualizing, constructing, and documenting the artifacts of a system-intensive process. A system-intensive process is an approach that focuses on a system, including the steps for producing or maintaining the system given the requirements the system must meet. Specifying involves the creation of a model that describes a system. Visualizing involves the use of diagrams to render and communicate the model (the model is the idea and the diagrams are the expression of the idea). Constructing involves the use of this visual depiction to construct the system, similar to how a blueprint is used to construct a building. Documenting uses models and diagrams to capture our knowledge of the requirements and of the system throughout the process.

A model captures a set of ideas, known as abstractions, about its subject. Without a model, it's very difficult for team members to have a common understanding of the requirements and the system, and for them to consider the impact of the changes that occur while the system is being developed. When creating a model keep in mind that if we try to represent everything about the subject all at once, we'll be easily overwhelmed by the amount of information. Therefore, it's important to focus on capturing the relevant information required to understand the problem at hand, to solve that problem, and to implement the solution, while excluding any irrelevant information that may hinder our progress. By managing which abstractions make up a model, how detailed they are, and when to capture them throughout the development process, we can better manage the overall complexity involved in system development.

Object-Oriented Modeling in PowerDesigner

PowerDesigner has changed a lot since I got my hands on it with version 6. It has a lot of new, powerful UML features these days. The PowerDesigner modeling environment now supports several types of models:
  • Conceptual Data Model (CDM) to model the overall logical structure of a data application, independent of any software or data storage structure considerations
  • Physical Data Model (PDM) to model the overall physical structure of a database, taking into account DBMS software or data storage structure considerations
  • Object-Oriented Model (OOM) to model a software system using an object-oriented approach for PowerBuilder, Java, or other object languages
  • Business Process Model (BPM) to model the means by which one or more processes are accomplished in operating business practices
  • Free Model (FEM) to create any kind of chart diagram, in a context-free environment
PowerBuilder 10 supports the object-oriented model within the IDE by using the PowerDesigner 10 plugin (see Figure 1 ). You can use the PowerDesigner object-oriented model to build an OOM from an existing application. An OOM is a structure that provides a close description of a system using nine UML diagrams supported within PowerDesigner.

Use Case
Use case diagrams define the fundamental structure of your application. They document how users expect to interact with the system from their standpoint and provide a functional description of the system and its major processes. Use case diagrams focus on the critical success factors of the system, in terms of the functionality or features.

Class diagrams define the static structure of the model. They contain packages, classes, interfaces, and their links. They form a class structure that is the logical design view of all or part of a software system.

Object diagrams describe the structure of model elements. They complement class diagrams and display objects (instances of class), instance links (instances of association), and dependencies.

Collaboration diagrams describe how the system achieves what was described in a use case diagram. They convey the same information as sequence diagrams but collaboration diagrams focus on objects in action; they show a network of objects that are collaborating.

Sequence diagrams describe how the system actually achieves what was described in the use case diagram. They show a time-ordered series of sequenced method invocations among objects.

Statechart diagrams describe the public behavior of a unique classifier (use case, component, or class). They show a finite number of states that the classifier can have and the transitions that cause a change of state.

Activity diagrams model the dynamic aspects of a system; describe the flows driven by internal processing; and represent the internal behavior of a model element, use case, package, classifier, or operation.

Component diagrams model the structure of the software with dependencies among source, binary code, and executable components.

Deployment diagrams are implementation diagrams that complement component diagrams by giving more accurate details about the physical implementation and interactions of components.

More Stories By Berndt Hamboeck

Berndt Hamboeck is a senior consultant for BHITCON (www.bhitcon.net). He's a CSI, SCAPC8, EASAC, SCJP2, and started his Sybase development using PB5. You can reach him under [email protected]

Comments (0)

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.