In-Depth
Wherefore and what now, UML?
- By Deborah Melewski
- June 12, 2001
Now in its second year as an Object Management Group (OMG) standard,
the Unified Modeling Language (UML) is alive and kicking and gaining acceptance
by modelers and tools vendors worldwide.
UML's latest version, 1.3, is not standing still but follows a set road
map. Version 2.0, in the works, is moving forward to address mappings
to a variety of languages and to increase component-based development
support using CORBA, Enterprise JavaBeans (EJBs) and COM+. While the UML
was formed to help designers work at a high level of abstraction, it is
increasingly being combined with another hot technology -- Java. It seems
UML may have found something of a soul mate in Java, particularly in today's
distributed environments.
UML co-inventor Grady Booch, chief scientist at Rational Software Corp.,
Cupertino, Calif., and his wife are in the midst of building a house.
Not surprisingly, perhaps, he sees that task as a means to draw an analogy
between home building and the UML. In Booch's own words: "It would be
inconceivable for us to give a pile of money to our builder and say 'Go
build it; we'll see you in a year. Just give us a key when you're done.'"
As in software development, there is the long process of requirements
gathering, development of the architecture, and then the implementation
process itself. "Indeed," continued Booch, "it would be equally inconceivable
for us to proceed without a set of blueprints, because they provide the
vehicle for us to visualize what we're producing. They also provide a
mechanism for communication with various subcontractors, as well as a
mechanism for controlling change."
Likewise, the UML is the language of blueprints for software.
Encompassing everyone from business analysts to code warriors to networking
people, the UML is a graphical language that maintains a relationship
with traditional programming languages. "It's a language for visualizing
and addressing issues that can't always be understood in complex systems
by looking at the code," said Booch. It is also a language for constructing
systems, which means both forward and reverse code generation for a variety
of different programming languages.
How is the UML doing under the tutelage of the Framingham, Mass.-based
OMG, and where is the language headed? Richard Soley, chairman and CEO
of the OMG, credits the UML with creating stability in the marketplace
with its single modeling standard. "Essentially, the entire marketplace
and all the tools vendors migrated to UML over a short period of time
because of OMG's neutral standardization process," said Soley.
Soley also pointed out the importance of realizing that the UML is not
just a standalone specification. "Even when the UML was adopted in 1997,
it was adopted with the Meta Object Facility (MOF), a repository API for
storing and accessing models described in the UML," he said.
Last year, the eXtensible Markup Language (XML) meta data interchange
language, XMI, was added to the suite of UML specs. XMI provides integration
across repositories that can leverage the XML format in order to talk
to each other.
The UML standard has also come to support interoperability between tools
for the integration of best-of-breed solutions, Soley asserts. "For example,
if you have one modeling tool that does a good job of reverse engineering
and another that does a wonderful job of displaying a model on screen,
you can expect, since both support UML MOF and XMI, that you will be able
to do your reverse engineering with one tool and display the result in
another," said Soley. He added that this also lowers development costs
because you only have to train to one standard model, the UML.
"Although you've got stability, best practice and support for integration,
the UML isn't standing still," promised Soley. "We continue to innovate;
revisions and extensions are still underway under OMG's open neutral process.
And this year, we've completed all the technical votes and are finalizing
the formal votes to adopt the 1.3 spec for the UML."
There will also continue to be mappings between the UML and a variety
of languages. For example, there is an effort afoot as part of the Java
community right now to produce a UML Enterprise JavaBeans mapping. A mapping
to deal with the needs of database administrators is also in the works.
Hello real world
The forward steps of UML are several. IBM Corp. has been using the UML
extensively as part of its SanFrancisco frameworks undertaking. These
frameworks are built with and documented using the UML, and IBM's WebSphere
and VisualAge products have also adopted the UML.
In the real-time arena, pursuing one of the biggest UML undertakings
to date, Boeing is developing its next-generation AWACS system, which
entails the replacement of a very large Jovial system with some two to
three million lines of C++ and Java code. The UML is being used as the
blueprint. The work is being integrated by Boeing under a NATO contract,
with a variety of contractors throughout Europe. The UML has proven especially
effective in communicating across borders.
Efforts are ongoing to extend the UML to support Java, EJBs and all
that runs in the Java world. UML Java mappings do exist and are supported
within many modeling tools, including, to name a few: Rational Rose for
Java from Rational Software; the GDPro visual modeling tool from Advanced
Software Technologies Inc. (ASTI), Littleton, Colo.; TogetherJ, which
provides UML support and round-trip engineering, from TogetherSoft LLC
(formerly Object International Software), Raleigh, N.C; and Jvision, from
Object Insight Inc., Ann Arbor, Mich., which automatically generates UML
Object Model Diagrams from .java or .class files, enabling an iterative
code/design life cycle.
According to Rational's Booch, it was part of the UML's design that
it be expressive enough to support both forward- and reverse-engineering
to Java. Within the Java community there is now movement to support Enterprise
JavaBeans as well. "If you follow the specifications, the UML in some
ways leads the EJB spec in that there are some facilities that the UML
can cover in modeling that EJB has not yet addressed," said Booch. "Things
like associations, for example."
A group involved with the Java JSR process, a separate specification
process, is working on an EJB UML mapping that basically addresses the
issue of developing EJB applications but modeling them in the UML itself.
The right tools
Until recently, tools support for Java and the UML has been somewhat
lagging, perhaps due to the fact that the UML evolved from OMT and other
methods where the tools typically generated C++. However, many more tools
have moved to support Java; since the UML is well poised for object modeling,
and Java is an object-oriented language, most in the industry agree that
the combination works quite well.
In one of the industry's largest commercial Java implementations to
date, Merant plc, Mountain View, Calif., developed its PVCS series of
software configuration management products for the Java language from
scratch. The project included somewhere in the order of a couple of thousand
classes and several million lines of code.
"We were looking for a development environment that would allow us to
support both Windows and Unix GUI development," said Kerstin Baird, user
interface architect at Merant. "We had used other C++ toolkits before,
but we saw Java's potential."
When the project was undertaken two- and-a-half years ago, modeling
tools that supported the Java/UML combination were not readily available.
When Advanced Software Technologies Inc. (ASTI) released Java support
for its GDPro visual modeling tool, Merant brought the tool in just in
time for the addition of new features and enhancements to the PVCS family.
Merant chose GDPro based on its interfaces, its focus on UML specifics,
and its customization for code generation. The benefits of GDPro were
immediately recognized. "In our original Java development project we drew
our object models by hand using Visio and its UML extensions," said Merant's
Baird. "Visio helps you paint a pretty picture, but that's all it's going
to do for you. Using GDPro, we can take our design, generate code from
it, do the reverse engineering, and try out some existing code to see
what it's doing.
"We've used GDPro to successfully reverse engineer our entire application,
which is a major feat in itself," she added. There have been a few issues
along the way but, according to Baird, ASTI has been very responsive to
those. "ASTI likes working with us because we have such a large body of
Java code that pretty much any feature out there, or any nuance to the
language, we've used somewhere."
ASTI and Merant have also been working together on forward engineering.
"They're [ASTI] working on round-trip engineering for Java. I can essentially
draw class diagrams, generate code from it, implement some features in
the code and then go back to design, picking up any changes I made in
the code along the way, and then go back out to the code again," said
Baird.
All of Merant's Java development has some C++ in it as well, but there
is a well-defined interface between where the Java leaves off and C++
picks up. The company has been able to generate and reverse engineer code
for both pieces.
According to Greg Schottland, president and CEO at ASTI, Java is also
going to be the birthplace of the next generation of component technology.
"We've all been saying it would be great to have building blocks to build
software, but the only place that's happening is in white papers today,"
he said. "But with all the attention on Java- Beans, EJB and the real
use of components, we have a specification that every Java programmer
knows about. It's clear to us that component-based development will be
realized in Java like never before."
Another Java/UML fit is for those folks developing Java applications
under the timeframe of the Internet world, where six months is equal to
10 years of clock time. People are under pressure to get things done quickly
and, in many cases, they are starting new applications.
This makes it necessary to bring design in up front. "People are at
a point where they're willing to look at things they haven't looked at
before, because they have a real need to do it right and to do it faster,"
said Schottland.
For Schottland, the reverse engineering side is exciting. "For example,
I have a Java application and I want to understand it. I need to take
that Java code and produce some models. The UML is great here, in that
it gives greater visibility into an application than you have by just
looking at the source code."
Steve Perry, systems architect at Acxiom Corp., Conway, Ark., agrees
that the UML and Java dovetail very nicely together. "Object-oriented
development is here to stay, and so is the Web," maintains Perry. "The
Web has changed the way people do business, so we're going to have to
change the way we do software to match that. I think Java is one way we
can do that."
Perry, a UML evangelist, takes object-oriented development using the
UML very seriously. "Using UML is a good thing; you can certainly do object-oriented
development without using the UML, but I wouldn't recommend it," he said.
"Java, being a pure object-oriented language, definitely fits in; if you're
going to be doing any Java down the road, you really need UML to do it."
The biggest benefit of UML, according to Perry, is that you can use
a single common language all the way through your development process.
"What that means to us is that when we get ready on the back end to do
the engineering, it gives us a complete picture of what our requirements
look like, along with traceability," he noted.
Acxiom Corp. provides data products, data integration services, mailing
list services, modeling and analysis, and information technology outsourcing
services to companies worldwide. Acxiom uses the UML in its development
projects, which to date have been C++-based. To provide data to customers
in new ways such as via the Internet, Acxiom is branching off into object-oriented
programming and has been looking at Java.
"As an architect, I see a huge benefit in using the UML," said Perry.
"You need to use it from the get-go, from when you're initially talking
to customers. Then move it into analysis and
design. This gives us a common language for building software blueprints,
which is important.
"People like to draw pictures, but we've never had a standard way to
do that," continued Perry. "For example, when someone gets up to draw
something on a whiteboard, some folks draw blocks, while some draw blobs.
There's no standard way of unambiguously communicating a message through
the picture that's being drawn."
With the UML, people can draw a sequence diagram if talking about how
objects in the system might interact. "No code would even have to be written
yet, but we're starting to think through our system. We have a language
for communicating our artifacts as we move through the process, so it's
more seamless," said Perry. "We don't just throw things over the wall,
leaving people to wonder how we got here."
This provides a more seamless transition from one development phase
to another, and also provides traceability. "If done correctly, one can
track all the way back from where we are today to the original requirement,"
said Perry. "Engineers need to know where something came from and why
we need to do this. If they can see something that's an actual user equirement,
we're going to wind up with better software. Software that doesn't meet
the users' needs is useless, and most times the problem is that we're
not communicating."
More tools support
While Java and the UML have been successfully implemented together,
is this a match made in heaven for tools suppliers with roots in other
languages? According to Jeffrey Hammond, product manager at Rational Corp.,
it is.
"We're still selling a bit more to C++ developers right now, but it's
been around a bit longer," said Hammond. "But I can see Java actually
being the dominant language for our product where we are selling modeling
tools.
"Of the various languages available for implementation -- VB, C++, C
and COBOL -- Java probably maps the best to UML," continued Hammond. "Java
interfaces map well to UML interfaces, and Java packages map well to UML
packages -- it's a very clean mapping. In terms of expression, Java's
a great language to work in with the UML."
For Rational, Java/UML support has meant creating a mapping document.
"We line up all the different entities and concepts in UML and in the
language we want to support, and then we map all those things," he noted.
Success can depend greatly on the language itself, "But with Java, it
was mostly drawing straight lines from package to package and from interface
to interfaces, and Java class to UML class operation attributes," said
Hammond.
While this straight line mapping approach works just fine, "There are
some more in-depth things that can be done," said Hammond. "Java has things
such as exceptions and errors that are really just classes, and that's
what they're mapped to right now for us in the world of UML," he said.
"But you could conceivably introduce additional stereotypes in UML to
support those types of constructs."
Compuware Corp., Farmington Hills, Mich., has also worked with the UML
approach for some time and links to the Rational Rose modeling tools with
its Uniface 4GL environment. As an open environment, Uniface also supports
Java.
A push for XMI
Dr. Guus Ramackers, product manager at Oracle Corp., Redwood Shores,
Calif., pointed out that Case tools and modeling tools have never been
able to communicate very well, even with efforts such as AD/Cycle and
CDIF. Today, tools vendors are being asked by some customers to support
the UML and XMI, which uses a standardized format to allow each tool to
build a bridge to import/export XMI.
There are big advantages to the UML and XMI, according to Ramackers.
"Users can migrate their model to a new tool any time, with no lock-in,"
he said. "Users can also make use of a suite of tools to address their
problems, and there is no loss of information when going from one tool
to another. This also facilitates round-trip engineering.
"I think the reason the UML is so successful in distributed systems
is because it allows you to not just define the systems interfaces, but
to also define the business logic behind those interfaces, in a standardized
manner," continued Ramackers.
There are some real implementations. Virtually every major CASE tool
is supporting the UML in some form. The notation is there, and increasingly
the model is being supported. Not all tools support the XMI interchange
format, but a very broad base of vendors have committed to UML and XMI.
More support for these technologies should be seen in the next six to
12 months.
Of course, there remain some of the usual complaints heard throughout
Java's brief lifetime -- performance and availability of different virtual
machines are commonly cited. UML may not immediately help here. In fact,
some designers are quite naturally suspicious of high-level tools such
as UML, simply because they allow people to work more abstractly with
their code.
Tower Technology, Austin, Texas, has moved to resolve some of those
performance problems. Having decided in 1996 that Java was the language
that could replace the bulk of C++ programming on the server, the company
moved to "dress up" the language to improve certain performance issues.
Tower Technology offers TowerJ in the Java deployment space because
people want to use Java for productivity gains, but they also want C++-like
performance. There is no direct involvement between TowerJ and the UML
because TowerJ uses Java Byte code as input. A compile process separates
TowerJ from the UML, which is geared to work with development tools to
generate source code. The company does, however, recommend that its customers
use the UML and iterative development.
In fact, the OMG has circulated requests for proposals (RFPs) that would
offer a UML profile for scheduling, performance and timing (read: "real-time"
UML). In the meantime, if companies have good compiler technology at their
disposal to handle all the detailed performance issues, UML may free them
to concentrate on an important part of performance: overall system architecture
and design.
Using UML as a road map
In an update of UML activities, Cris Kobryn, chief technologist at the
E.solutions unit of Dallas-based EDS, noted the following UML 1.3 highlights:
complete specification of activity graphs to improve various business
modeling techniques; refactoring of the definitions of relationships,
which will make them easier to learn and apply; and the architectural
alignment of UML with the MOF and XMI facilities, which will make it easier
for tools vendors to support meta data repositories and model interchange.
What is next for the UML? The Revision Task Force is working toward
UML 1.4, which will include the refinement of extension profile mechanisms
to improve support for user customization, as well as simplification and
clarification of collaborations modeling.
The next major UML revision, 2.0, is
expected to be out sometime in 2001. This revision will streamline the
kernel and further refine its alignment with other technologies. To increase
customization options, there is also a plan to further refine the extension
mechanism. Component-based development support will be increased in support
of CORBA, EJB and COM+. Support for modeling enterprise architecture views
will also be improved, and new mechanisms will be defined for model versioning
and diagram interchange using XMI.