|
Home FAQ Specifications Tools Training Methods/Processes Publications UML Mailing List News Other Resources Visual Modeling Forum Business Modeling Forum SysML Forum
Next
|
Questions
Answers
BACK TO TOP
-
How can I learn the
UML?
There are many UML
books, but as with any popular technology,
they are uneven in coverage and quality so
"let the reader beware." Some of the UML
books we have found useful may be found on
the UML Publications
page. As for tutorials, you can found a selected
listing of online tutorials that we found
useful on the Tutorials page of this web.
BACK TO TOP
-
How
can I help improve the UML?
Anyone can make submit problems or make
recommendations to improve UML by submitting
issues to the
issues@omg.org In addition, you can also
join the OMG and directly participate in one
of the UML Revision Task Forces.
BACK TO TOP
-
What UML modeling tools are available?
There are many modeling tools that support
UML. A selective list of modeling tools is
available on the UML Tools page of this web.
BACK TO TOP
-
What should I look for when selecting a UML
modeling tool?
To start with, you should assess you own
modeling requirements to determine what UML
support you need. Some things you may want
to consider include support for:
- compliance with the
UML specification for both notation and
semantics
- team development
- model simulation
and code-generation
- model interchange
with other UML tools
- tool customization
Please note that the
first support bullet may be problematic,
since at the time of this writing we know of
no UML modeling tool that completely
complies with the UML 1.1 specification
(which was adopted in 1997) let alone the
UML 1.5 specification (which was finalized
in H1 2003). Although UML vendors who
partially implements the UML specification
and claim compliance are expected to explain
how they partially comply via compliance
points, we know of no vendor that does this.
Consequently, you will likely need to
perform your own due diligence in this
regard.
Once you understand
your modeling requirements you will be
prepared to systematically evaluate modeling
tools to determine how well they meet your
requirements. We recommend that evaluate UML
modeling tools in several phases:
- "paper" evaluation:
initially evaluate tools choices via paper
and electronic sources, such as vendor
literature and analyst/expert reviews to
narrow your tool choices into a "short list"
of candidates. During this phase you may
also want to ask preferred vendors for
references of users who have applied the
tools in environments similar to yours.
- "hands-on"
evaluation: Perform a hands-on evaluation of
the tools selected in your short list. Make
sure that you use medium-to-large size
models (with hundreds or thousands of
classes) and exercise all the features in
your requirements list. In addition, check
the responsiveness and the quality of the
tool's software support.
- final selection: If
you still have more than one viable tool
candidate after the hands-on evaluation, you
may want to consider business issues, such
as pricing and upgrade policies, to make
your final decision.
BACK TO TOP
-
What processes and methods are available
that use UML?
There are many software methods that use UML.
A selective list of UML methods is available
on the UML Methods page of this web.
BACK TO TOP
-
What should I look for when selecting a
process or method that uses UML?
You should keep in mind that UML is a
modeling language, and not a process or
method. Since UML is a general-purpose
modeling language and object-oriented, it is
expected to work with most object methods.
However, you may expect to encounter
problems if the method is based on another
paradigm (e.g., functional, relational,
rule-based). You may also encounter
difficulties with component-based methods if
you are using UML 1.x, since support for
component modeling is restricted. (The
forthcoming UML 2.0 major revision is
expected to improve support for component
modeling.)
In particular, look out for methods
that:
- do not use all or most of the UML
diagram techniques. This may indicate that the method
doesn't address the full software lifecycle.
- rely heavily on UML profiles for
customizing the language. While some customization is
expected and encouraged, excessive customization reduces the
benefit of a general-purpose object modeling language.
BACK TO TOP
-
What is a
UML profile?
A UML profile customizes UML for a specific
domain or purpose using extension mechanisms
such as stereotypes and metaclasses. For
example, the UML Profile for Testing
customizes UML for testing systems.
BACK TO TOP
-
Can UML be used to specify systems
engineering applications?
Yes. Although the UML was originally
designed to specify software-centric
systems, the major improvements included in
UML 2.0 (see
answer to "What major improvements were
made in UML 2.0?') make it an effective
language for modeling systems engineering
applications.
However,
you should also check out the SysML
(Systems
Modeling Language) dialect of UML, which is a general
purpose systems engineering modeling language that is typically
implemented as a UML 2.x profile. For more
information about the SysML dialect
see the SysML Forum.
BACK TO TOP
|
|