Home. 
.

transparent

transparent

transparent

UML

The UML (Unified Modeling Language) applies lessons learned in other engineering disciplines to the art of software development.

The Unified Modeling Language, (UML) is a graphical language for organizing, analyzing, and planning software projects before coding begins. The UML specification is maintained by the Object Management Group (OMG) and was originally created in 1997 by combining of the strengths of three competing software modeling technologies. The current specification (UML 2.3) reflects revisions, suggestions, and enhancements resulting from years of applying UML in practice.

UML diagrams form a model for a software application that can be compared to an architect's blueprint. This model helps software developers and project managers to verify that the application logic is correct and that end user needs will be met before any code is written. Since UML provides a graphical view of a software application, it can be understood by non-programmers and facilitates communication between developers and other project stakeholders. The Unified Modeling Language (UML) is recognized as the 21st-century standard for exposing and analyzing development project requirements and for designing more efficient software solutions.

UML use case

In this UML use case diagram an image file was used in place of the crude stick figure that typically represents the user.

UML Diagrams

The UML 2 specification defines 14 major UML diagram types and over 1,000 graphical and textual language elements, plus extension mechanisms. There is no requirement that a UML model must include all diagram types. Some diagrams are appropriate for developing firmware to control hardware devices, for instance, whereas others can describe a complex interaction among business entities. Similarly, growing familiarity through reuse often leads developers working with UML to favor certain diagram types over others.

Standard UML 2 diagrams are:

As several of the diagram names suggest, UML reinforces good object-oriented programming techniques.The screen shot below illustrates inheritance in a UML class diagram.

UML class diagram example

Click image to enlarge screenshot

Complexity can be a problem facing developers who want to learn UML. Which diagrams and elements pertain to the problem at hand? How do various diagram types interact and in what order should they be drawn? Can the project be approached in an iterative fashion, and can tasks be divided among developers and their work re-assembled into one coherent model?

There is no requirement that a UML model must include all diagram types. State machine diagrams and timing diagrams may be appropriate for developing firmware to control hardware devices, for instance, whereas an activity diagram can describe a complex interaction among business entities.

Similarly, growing familiarity through reuse often leads developers working with UML to favor certain diagram types over others.

Developers and teams evolve their own processes. It's okay to start with a little UML before coding. At the beginning of a project, a contract programming shop just migrating to UML may want to work through use case diagrams with the client to make sure both sides have the same expectations, then hand-code the application in the traditional manner.

On the other hand, experienced development teams may want to extend their UML models with additional specialized diagrams such as Business Process Models or XML Schema diagrams to model XML data structures.

UML Code Generation

In the past, UML was criticized because it can extend planning and analysis steps at the beginning of a software project. Some developers and project managers became concerned that their projects would be considered behind schedule because code-writing was viewed as delayed when compared to previous development efforts.

However, the payoffs come in several forms. Detailed models can be used to generate code automatically, freeing programmers to concentrate on the project's business logic and overall architecture. Also, more rigorous up-front analysis means the delivered product is more likely to fulfill business requirements and contain fewer defects.

The UML sequence diagram below defines the process for deciding whether each item in an order will shipped via air or ground.

UML sequence diagram

Many UML tools include a code generator to automatically create Java, C#, or VB.NET or other source code files based on the UML model. Code generation encourages the style of iterative development process encouraged by today's leading software development authorities. Developers can make revisions to the model and generate updated code without manual re-writing.

UML Reverse Engineering

Maintenance programmers are frequently tasked with the responsibility of fixing bugs or adding features long after the original developers have moved on to other projects. Unfamiliar source code and inadequate documentation make critical business applications difficult to adapt to new requirements. Maintaining compatibility with changes in the computing environment, such as a new OS release, can also be an issue.

In UML software development, reverse engineering describes the ability to read existing source code -- even some binary files -- and automatically generate appropriate UML models. This graphical UML representation helps programmers understand complex applications more quickly and comprehensively, and to reuse or modify existing components by including them in an editable UML model.

Here is a UML state machine diagram that describes firmware to control a dehumidifier.

UML state machine diagram

UML Round Trip Engineering

At some point in the development process, software engineers coming from a code-writing background will shift attention from the UML model to the actual implemented source code. Over time, as the project advances through test and debug cycles and more changes are implemented in the source code, the model becomes less accurate and less useful as a documentation and collaboration tool.

Round trip engineering in UML can keep the model synchronized as the developer edits and enhances the application directly in a source code editor. Round trip engineering is not a one-time operation. Developers will want to continuously choose the best technique to implement each project revision: edit the code and synchronize the UML model, or revise a UML diagram first, then regenerate code.

UML Model Interchange through XMI

XMI (XML Metadata Interchange) is a part of the UML specification that describes the method for software tools to save UML models in a common format as XML documents conforming to an XML Schema, enabling users to share models even if they do not all use the same UML applications.

UML tools that can import and export UML models according to the XMI 2.1 specification to help ensure interoperability and minimize user lock-in to specific vendors.

Illustrated below is an example of a UML model exported as an XML document conforming to the XMI standard for exchange with other UML tools.

Example of a UML XMI document

UML Project Documentation

Documentation is an important part of any software development project – to measure progress toward completion, to communicate functionality among team members, and to provide a project roadmap later on when the application needs to be updated. However, creating and maintaining project documentation can be a tedious and time consuming task. Many UML tools can step up the pace of productivity by generating documentation files automatically in HTML, Microsoft Word, or rich text (RTF) formats.

In HTML format, hyperlinks embedded in the documentation act as expected in any Web browser. Even links to the generated source code files can be included in your project documentation.

Selecting the Index option can even automatically add a document summary with links you can navigate to the major sections.

IDE Integration

Today's software developers do not use one single tool, and it's important that software development tools integrate seamlessly in a rich development environment such as Eclipse or Microsoft Visual Studio to allow developers to conveniently switch between the source code editor, compiler, and debugger.

The best UML tools even support automatic, real-time synchronization between the UML project and source code editor so that both display the up to date project status and any change in one window is immediately reflected in the other.

Altova UModel

UModel® 2012 is a UML software modeling tool with an intuitive visual interface and all the high-end UML code engineering features that empower development teams to take full advantage of software modeling for projects of all sizes.

What's Next?

  • Altova UModel UML tool Flash DemoWatch the UModel Flash Demo
  • Download Altova UModel UML tool Download a free 30-day trial of UModel® 2012
  •  

UML®, OMG™, Object Management Group™, and Unified Modeling Language™ are either registered trademarks or trademarks of Object Management Group, Inc. in the United States and/or other countries.



transparent
Print
Mail
Like It
Industry Standard UML
.

UML logo

.

Altova UModel は OMG により最近承認された最新の UML 仕様 2.3 に準拠した UML ツールです。UModel は UML 2.3 ダイアグラム要素と最新の XMI 機能をサポートします。

.
.

transparent

transparent