|
This
White Paper draws on a number of themes to demonstrate the need
for CASE tools that are flexible yet built on standards - 'flexible'
in terms of the notations they accommodate, their openness to
integration and configurability to evolving practices; 'standard'
in terms of the use of UML
and promotion of the Model Driven Architecture philosophy.
Maturing
Development Processes
A
key driver for many organisations today is the recognition that
software development is an industrial process that can be improved
to offer strategic advantage. A standard framework for assessing
the maturity of an organisation's software development processes
is the Capability Maturity Model (CMM). This model provides a
series of attainable levels (1-5) that allow an organisation to
measure their own processes against industrial benchmarks. Most
organisations setting out on the track of CMM initially 'procure'
an off-the-shelf process - something like the Rational Unified
Process (RUP). This will often suffice in educating the organisation
on the potential benefits of structured managed processes. But
over the course of time an organisation's processes will mature
and diverge as strategic benefit is found in different working
practices. This should be encouraged.
Deviations
are needed to accommodate such issues as project size (large versus
small), out-sourcing, procurement policies, legacy system integration,
componentisation, safety-criticality, deployment environment etc.
These deviations place point stresses on the development methodology
used, for example stresses on requirements and/or design specifications,
state modelling, business domain modelling, transformations. While
these method variations are required, it is interesting to note
that the same variability is not offered in the tools that support
them. Rational Rose and similar products cling to the idea that
UML
- the Unified Modelling Language
- by offering a rich vocabulary, will in some way address these
method variations. The UML
is a set of standardized graphical notations; it is not intended
to be a definition of a development methodology - that is left
to each organisation to develop.
So
what is missing? Well the obvious answer is 'method awareness'.
Rose and other conventional CASE tools are not method-aware -
they skirt over issues such as semantic integrity, traceability
(beyond simple navigation links), consistency, correctness and
completeness leaving these problems to developers and managers
to solve. By taking this approach, Rose and its compatriots, degrade
the role of CASE tools to that of graphical editors. It is for
this reason that many software engineers have become disillusioned
with CASE over the last few years and have resorted to tools like
Visio on cost-benefit grounds and by-pass formal design all together,
vis-à-vis Extreme Programming (XP) / Agile Development.
At
the other extreme are CASE tools that are method specific - examples
include iUML, Software Through Pictures. These tools are hardwired
for a particular software development method - e.g. Schlaer-Mellor,
OMT. While offering increased method awareness these tools require
you to adopt their method, warts and all. In some circumstances
this may be fine. However there is generally little flexibility
offered in terms of extending, enhancing or adapting such tools.
The direction you must follow controlled by the vendor.
Flexibility
For
an organisation to be successful in today's highly competitive
markets its IT function must be adaptable. Productivity, quality-of-service,
flexibility are some of the hallmarks of today's successful companies.
Software
engineering is a moving target - we daily see new initiatives
that offer strategic benefits but seem to replace yesterday's
new initiative. You only have to look at the succession of software
platforms offered by Microsoft over the last 5 years to see the
dynamics at play - VB, ADO, COM, DCOM, .NET.
So
how is an organisation expected to track such rapid evolution
with an eye on achieving competitive advantage? Well part of the
answer may lie with the vision provided by the Object Management
Group's Model Driven Architecture (MDA) initiative. MDA recognises
that different problems need different approaches, specifically
in relation to varied vertical-markets and delivery environments.
MDA creates a clear separation between the solution domain (the
platform independent model PIM) and the implementation environment
(the platform specific model PSM). This model separation provides
'longevity' to the solution domain while recognising the dynamics
characterising the implementation domain. This separation facilitates
the possibility of increased use of tools by creating a standard
framework for defining and transforming software models.
Utilising
UML
profiles and stereotypes, it is possible to define the notations
and transformations needed to support the various MDA models -
PIM and alternative target PSMs.
MDA
therefore provides a practical platform for leveraging 'competitive
advantage' through methods and tools. But where are the tools
that support this initiative? The answer to this is - they are
coming - there are number of early offerings on the market that
address specific platforms such as J2EE and .NET. However there
are few tools on the market that handle the whole lifecycle or
can be tailored to an organisation's own methods.
But
why would an organisation want to develop its own methods and
tools? Well the answer to that is simple - again it is 'competitive
advantage'. If an organisation can or has established effective
software development practices, resulting in products being brought
to market earlier and meeting their intended purpose, then the
organisation will be successful. Tools form an enabling technology
- by automating the complex task of maintaining consistency, integrity,
traceability etc. and enriching the decision-making process, tools
increase 'competitive advantage'.
Textual
Notations
Prior
to the advent of UML,
methods had drawn on both textual and graphical notations. Rational's
original view was that visualisation was the key to successfully
modelling software systems - this philosophy, through the widespread
adoption of UML
has implicitly become the cornerstone of most tools that support
UML.
The same however cannot be said for methods - methods continue
to make use of both textual and graphical notations. While visualisation
is a valuable tool for modelling certain aspects of software engineering
such as class diagrams and messaging, it is an impractical vehicle
for modelling aspects such as Use Cases, business rules, non-functional
requirements and formal specifications.
Furthermore
some UML artefacts are in fact placeholders for textual artefacts
e.g. Use Cases. But where is the CASE tool support for these textual
notations? One approach adopted by a number of vendors is to provide
hyper-links to external documents. While providing some benefit,
in general documents are at the wrong level of granularity. If
a designer references a class by name in a design document, they
want to know that it exists in the project dictionary (embedded
in their CASE tool). If the class is deleted or renamed in the
project dictionary, then they want this to be reflected in their
document in real-time. Likewise they want to know that they are
working with the appropriate version of the artefact.
Perhaps
this is asking a lot of tools integration, but the ability to
write structured text that is kept semantically consistent with
the project dictionary and diagrams is feasible.
Life-cycle
Coverage & Integration
Which
parts of the life-cycle can be automated? The historical answer
to this question has been governed by the choice of CASE tools
and the ability to integrate them. CASE-tool vendors have progressively
tackled only specific parts of the life-cycle e.g. analysis, design
or code generation with little concern for how their tool integrates
with other tools covering some other part of the lifecycle.
Recognising
these issues, the OMG
has defined XMI, a data-exchange protocol for tools. This offers
a vehicle for information inter-change among tools - its goal
being that XMI should form the basis for 'live' tools integration.
However most vendors implementing this standard do so only to
provide a one-off import capability - a means of getting data
out of a competitor's product into their own. This approach does
not lend itself to the notion of a single 'live' project-wide
repository. Consequently it is virtually impossible to ask 'what-if'
type questions or seamlessly follow tracability links across tool
boundaries.
In
a similar vein, what options do you have if you need to integrate
with tools that do not support XMI? Well you could approach the
vendor for a bespoke enhancement or utilise some intermediary
product to provide bridging but these solutions are not normally
practical or cost-effective.
MaxUML - the CASE tool for Change
MaxUML
heralds a new generation of CASE tools aimed at maximising the
benefits afforded by automation and standards. Its back-bone is
UML
- currently providing full UML 1.4 coverage, and when ratified,
the UML 2.0 standard. Going beyond UML,
MaxUML also supports Snapshot diagrams and Film Strips - used
to model the progress and ultimate effect of methods and other
behavioural elements on a collection of objects. These techniques
are used in a number of leading methods including Catalysis.
But
MaxUML's true potential is realised when developing Profiles and
Stereotypes to support bespoke methods. Taking a standard UML
construct as a base element, it is possible to define a new Stereotype
- controlling its constituents, its appearance, its usage and
the semantic rules governing its use. Using tagged values one
is able to extend the stereotype to include new fields that may
be either textual, literals or links to other elements in the
repository. These features combine to allow you to configure rich
profiles comprising well-behaved stereotypes that can be tailored
to a vertical-market, different target platform or life-cycle
phase. Furthermore stereotyping is not limited to UML meta-types
- it is also possible to define new diagram types e.g. Process
Flows, Domain Models.
MaxUML
also incorporates a structured text editor. Using this feature
you can develop structured text documents that can embed references
to other model elements such as classes, attributes, Use Cases
etc. and elements that are 'in-scope' e.g. objects, object valued
attributes and tagged values. These references are maintained
consistent across renames and deletes. These features allow you
to define structured documents such as formal design specifications,
Use Case descriptions and specifications that have live content.
Another
key feature is the ability to associate a 'language' against a
text field. One standard supported language is the OMG's Object
Constraints Language (OCL). MaxUML utilises OCL to support design-time
constraints and the definition of the semantic rules governing
stereotypes. But OCL is only one possible language - you may wish
to incorporate support for other languages such as lifecycle expressions.
MaxUML
is built on a meta-CASE technology that has a strong pedigree
- used to build tools like HOOD, SSADM and IDEF0, and as a result
MaxUML benefits from this highly flexible development technology.
This allows SoftCASE to quickly track emerging standards like
UML
and MDA while also offering specific enhancements required by
its clients such as tool integration, new modelling notations,
specific code generation.
MaxUML
is not available as an off-the-shelf product - SoftCASE's strategy
is to develop relationships with its clients aimed at maximising
the benefits afforded by MaxUML's flexibility. Providing tailoring
services and method consultancy, SoftCASE delivers a 'whole product'
solution to organisations wishing to pursue initiatives such as
MDA or leverage home-grown development methods.
For
information please contact us at:
SoftCASE
Consulting
Rowley House, The Quay, Poole, BH15 1HL
Tel. 01202-749643
To
view and print this white paper in PDF format click here.
In
order to view PDF files you will require Adobe Reader. This is
freeware and can be downloaded here.
Copyright
© 2003 - SoftCASE Consulting - All rights reserved
Website designed and devloped by TPT
Solutions Limited
|