|
The
very act of developing software systems is a creative process.
And as with any creative activity software developers are wary
of set rules and restrictions. Such rules and restrictions are
defined by the methodology adopted by the organization. Most organizations
choose their methodology to ensure rigour in all development activities.
Developers, however, need flexibility to do certain activities
and ignore others. MaxUML from SoftCASE gives both flexibility
and rigour to any development process.
Barry
McGibbon
www.mcgibbons.net
Methodologists
Need Configurable Tools: A really useful MDA and UML case tool
by Ian Graham, TriReme International Ltd. (http://www.trireme.com)
The
Object Management Group's Model Driven Architecture (MDA) has
attracted a lot of attention since it's announcement. MDA sees
development in terms of a series of transformations between models.
A Computation Independent Model (CIM) of the business is transformed
to a Platform Independent Model (PIM) that involves computational
aspects but no technology choice. Then the PIM is transformed
into a Platform Specific Model (PSM) that may be tailored to such
platforms as .NET or J2EE. Finally the PSM is transformed into
actual code. It is argued that it is possible to build tools to
automate much of the transformation process.
Already
several tools exist that support aspects of the MDA process and
vision. However, most of them focus on the PIM to PSM and PSM
to code transformations: the code generation end of the life-cycle.
Kleppe et al. (2003) go so far as to argue that automating the
CIM to PIM transformation is impossible, because it involves so
much human judgment. This ignores what for us is the really exciting
innovation of MDA: the recognition that good modelling is the
critical success factor in systems development. Furthermore, it
is the CIM and PIM that give the greatest and longest-lasting
benefit for businesses. J2EE and .NET may be passing fads and
will eventually be replaced by some new technology or other. Platform
and code independent models of a business or an application usually
have a much longer shelf life and, besides, deliver results earlier
in the development life-cycle - so that benefits can be obtained
sooner.
Certainly,
automatic code generation will be useful as the technology matures.
Just as few people write machine code or assembler now that good
optimizing compilers can do the job as well as a human, one day
no one will need to write Java or C#. Transforming the PIM to
a PSM is also automatable. The most promising approach is to base
the transformation rules on patterns and frameworks, as suggested
in TriReme's Catalysis method (D'Souza and Wills, 1999;
Andrews, 2004). In addition to this a scripting language is required
to automate the code generation fully - otherwise only stubs and
headers can be generated.
Conventional
UML case tools rely on the developer writing the methods in Java
or its equivalent. Current MDA tools - such as iUML from Kennedy-Carter
or ArcStyler from Interactive Objects - use very low level scripting
languages such as ASL (Action Semantics Language), Executable
UML or OCL. However, we may confidently foresee the emergence
of a high level language at some point in the future.
Even
then, though, current and projected MDA tools are aimed solely
at technologies such as J2EE, ASP and .NET. They offer scant assistance
when transforming a PIM to some legacy platform or, worse still,
a horrid goulash of legacy and new systems.
We
think it may be far more profitable to improve tools at the front
end of the MDA process. Our experience teaches us that part of
the transformation between the CIM and the PIM can be automated.
This problem is closer to the territory occupied by conventional
case tools than the current clutch of MDA tools, though the latter
most certainly have a rôle to play. Switching attention
then to conventional tools we find that most of them don't help
- or even hinder.
UML
is a language, not a method. Some tools offer support for the
language - drawing diagrams - but give no method. Others embed
methods or method fragments that are, frankly, bad. At worst developers
are shoehorned into these bad methods by the tools. The purpose
of this article is to review a new tool that breaks the mould.
MaxUML
from SoftCase Consulting is almost exactly the tool that UML practitioners
and methodologists like us have been waiting for. The fact that
it supports all UML concepts (for version 1.4 at present) is less
significant than its ability to be configured for different methods.
To do this it uses UML profiles: subsets of the UML notation together
with stereotypes and specific constraints that implement methods
and techniques. These constraints can be written in MaxUML's
scripting language or in OCL. Using this approach MaxUML
has already incorporated support for some of the techniques of
Catalysis, such as snapshots. Snapshots are a useful way of visualizing
the effects of use cases and their relationship to the type model
(class diagram). For a summary of Catalysis see (Graham, 2001).
Because
it is configurable, MaxUML is really a metacase tool; but
unlike other metacase tools it exposes its metacase features to
the user - for the cost only of the effort of writing a metamodel
of his method. We can implement any method from Catalysis or,
indeed, from TriReme's approach to requirements and business modelling,
such as use case associations. These provide inter alia a way
to show sequential dependencies that result from business rules
on use case diagrams - rather than forcing the modeller to overdetermine
the model in a sequence diagram. We can also implement our technique
for handling use case exceptions without resorting to the dangerous
"extends" dependency. Returning to Catalysis support,
we can also implement the patterns from Catalysis II (Andrews,
2004) that transform PIM models to layered distributed architecture
models independently of whether they are to be implemented under
.NET or J2EE. Catalysis II extends Catalysis, incorporating and
generalizing techniques from UML Components (Cheesman and Daniels,
2000). Effectively, all these techniques are pertinent to automating
the transformation of the CIM to the PIM. In is in this area that
MaxUML proffers the greatest leverage of a modeller's skills.
MaxUML
runs under Windows 2000 or XP and is a multi-user system, using
a check-in/check-out system, with checked-out items visible but
locked. It interchanges models with other systems using XMI, which
makes it possible to envisage using it in tandem with other business
modelling tools, spreadsheets and with MDA and code generation
tools such as ArcStyler, iUML or Compuware's OptimalJ. Its strengths
are in the CIM®PIM®PSM portion of MDA rather than the
PIM®PSM®Code area that other MDA tools concentrate on.
It appears to be very robust and is competitively priced compared
to its most obvious rivals for your budget. Its greatest strength
however is its configurability.
No
longer do we have to accept the restrictions of restrictive notations
half-baked methods embedded in tools when we know perfectly well
that there is a better way.
References
Andrews,
D. (2004) Catalysis Components, Harlow, England: Addison-Wesley
(in preparation)
Cheesman, J. and Daniels, J. (2000) UML Components, Harlow, England:
Addison-Wesley
D'Souza, D.F. and Wills, A.C. (1999) Objects, Components and Frameworks
with UML: The Catalysis Approach, Reading MA: Addison-Wesley
Graham, I. (2001) Object-Oriented Methods: Principles & Practice
- Third Edition, Harlow, England: Addison-Wesley
Kleppe, A., Warmer, J. and Bast, W. (2003) MDA Explained. The
Model Driven Architecture: Practice and Promise, Boston: Addison-Wesley
MDA - http://www.omg.org/mda
There
is no magic bullet or single technique that will produce a software
product; however an understanding of the business domain and the
system will go a long way towards helping to produce software
that works correctly. Building models helps this understanding,
but the model must be built quickly and accurately - tools help
with this. Many UML tools are geared towards a particular style
of development, and this frequently gets in the way of capturing
an accurate model quickly and succinctly. What is needed is a
tool that can easily be configured to a particular problem, is
easy and quick to use - MaxUML satisfies these criteria.
There
is a further advantage, any UML tool, should conform to the OMG
standard as this will enable interchange; it should not just support
the tool manufacturer's "in-house" version of UML. More
important, supporting the OMG standard gives the ability to use
additional development tools; the MaxUML tool conforms to the
OMG standard and thus avoids the "in house" problem
and could be the basis of a development toolset.
Derek
Andrews
www.trireme.com
Copyright
© 2003 - SoftCASE Consulting - All rights reserved
Website designed and devloped by TPT Solutions Limited
|