A1 Modeller Concept
Contents
Introduction
- Basic Properties
- Details
- Formats
- Release Conditions
and End User License
- Status
- Future Work
- References
- Thanks
- Copyright
Introduction
I've been frustrated many times by lack of a decent but simple modelling/diagramming
tool. Visio is ok but it's really about diagrams, not models. Rational
Rose is the other way around with in-depth developer support but poor
on usability and very unflexible. Neither has decent export or open formats
and both are expensive. Free/Shareware tools are not good enough (most
are simple diagram/flowchart tools). Of open source applications only Dia
(which is basically a Visio clone) is worth mentioning.
Basic Properties
A1 is an attempt to create a tool that fills the needs of primarily
developers, without the rather extreme focus (and cost) of Rose but with
the graphical flexibility and ease of use of more graphics oriented tools.
- Fundamentally, it is a symbolic diagram editor. There is support
for drawing basic shapes and lines, adding text and callouts, all with
standard features like pens, brushes and fonts.
- It has support for shapes. Shapes can be defined in a meta-drawing
format (similar to WMF files or postscript) [secondary feature] or with
static blueprints (image files) [secondary feature]
- Each document (or model) can have several different views (or
diagrams). Different views can show different properties of the document
or different subsets of the content.
([secondary feature] indicates features that may not be fully implemented
in the initial release.)
It has special support for development related content:
- Support for UML diagrams with the usual symbols
- Support for standard practice OOA/OOD/OOP symbols/models
- Support for database descriptions/models
- Support for flowcharts
- Support for Design Patterns
It is flexible
- Supports user defined objects, relations, shapes and composites
- All definitions are specified in XML format with published
semantics
- Definitions can include behaviour [secondary feature]
- Graphics format exports for use in other context such as documentation
- Printing support with many options
- Supports embedding in applicable contexts (OLE, KDE and GNOME,
as applicable [KDE, GNOME secondary features]), both as container and
as server
It has support for team development
- Database support for storage allowing development teams to
share data [secondary feature] as an alternative to XML documents
- Repositories for sharing and reusing designs and constructs
[secondary feature]
A1 does not feature
- Code generation
- Round-trip engineering
- Electrical engineering (board or circuit layouts) applications
- Focus on any type of trivial drawing applications such as floor
plans or organization charts
The design priorities when creating A1 include
- Flexibility
- Ease of use
- Openness and extendability
- Output quality in external formats
- Clarity
A1 is not designed with A1. The application architecture internally
is less polished than the ones it is meant to support.
Using A1 to sketch an application or component design should be very
straightforward. Start the application, and lay out the main building blocks
in a view of your choice. For a larger or more thorough design, start in
the appropriate views and apply your UML modelling skills. Integrating design
fragments should also be relatively simple - for example a small state
diagram fragment can easily be grafted onto a larger document, fusing the
objects and states involved to those in the main document.
A1 does not enforce any design model or philosophy, nor is it meant
to teach, endorse, advertise or tie the user to a product or manufacturer.
A1 is an enabler for the user, not a product for the maker.
Details
Shapes
Object, class, state... symbols are the main building blocks when
creating a document
Relations connect symbols. Together with symbols, relations
are what the user is interested in when applying A1 to a problem.
Handles, connect points, arrow heads and so on - the basic
constituent parts of a diagram tool
The symbolic content parts of relations and symbols: properties
and parameters
Definitions
A1 allows the user to define new data types and reuse
them. Most of the data types used by the fundamental shapes in the application
are defined in the same way.
Shapes are defined in terms of constituent parts (member
data), graphical properties and relational or semantic properties.
Diagram types expose certain aspects of the document's
(the model's) total data. An interaction diagram for instance shows the
run-time interaction between object instances, while the class diagram shows
the classes to which the objects belong and their structural relationships.
Behind the views, the objects and the classes exposed in the two diagrams
are connected and adding a method to the class in the class view makes the
method available in the interaction view.
Formats
All application data is in XML using the semantics described for A1
(there will be a published format). This is also the document format for
documents on file, and is the definition format for the built in types
and user extensions. Database storage is slightly more complicated and
not documented at this time.
Release Conditions and End User License
The initial plan for release is to release A1 as shareware. This
means a time limited trial period after which a license must be paid
or the application uninstalled. This shareware release would be for the
Windows platform, specifically targetting Windows 2000 and later (including
Windows XP but not Windows ME). Releasing A1 for open source platforms is
under consideration - most likely this would be completely free and possibly
in source form. The platforms under consideration are KDE and GNOME, compile
targets primarily Linux (2.2 and later) and FreeBSD.
Status
A1 is currently (March 2002) under implementation.
It will not be released until the basic feature set is completed. Whether
it is released before the secondary features are implemented or not remains
to be decided.
Temporary or intermediate working releases may appear in
the A1 Product Page
.
Current screenshot (click for
full view
)
Current Status
Features Missing
Lots of them.
Known Bugs
Most crash bugs are eliminated (in some cases by shutting off user access
to a selection.
Opening/closing document views is still a crash bug. The same bug also provokes
a crash when opening a view inside a host document (OLE).
OLE in itself does not work, possibly this is only caused by the previously
mentioned view bug.
The model browser toolbox has a sizing bug causing it to gradually corrupt
its display.
Future Work
Once the basic and secondary feature sets are completed further development
will be considered. Extending the set of supported database platforms is
one obvious feature. Depending on whether a non-Windows client is made or
not (see above) there may be need for non-ODBC implementations as well.
Apart from ODBC, the database targets are PostgreSQL (primary target), mySQL,
Microsoft SQL Server, Oracle.
References
- The UML specification - Rational Corporation
- Grady Booch, "Object-Oriented Analysis and Design with Applications",
second edition, The Benjamin/Cummings Publishing Company, Inc., 1994
- Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides, "Design
Patterns" ("Elements of Reusable Object-Oriented Software"), Addison-Wesley
(Addison Wesley Longman, Inc.), 1994
- The XML Specification, W3C (World Wide Web Consortium,
w3c.org
)
- Bjarne Stroustrup, "The C++ Programming Language", third edition,
Addison-Wesley, 1997
- "The PostgreSQL User Guide" and other documentation,
www.postgresql.org
Thanks
Thanks to friends and colleagues who helped and provided input - especially
Jan Mattsson and people at IT-huset, Ulf Lindbäck.
Copyright
This text was written in its entirety by Olof Ekström.
For more information about the author of this page, see Olof Ekström's
personal information in the
Haven Project Profiles
document.
Rational Rose is a registered trademark of Rational Corporation.
Visio is a registered trademark of Microsoft Corporation.
In no way is the A1 Modeller or Extro System related to or
endorsed by any other company or trademark holder mentioned in this document.
Copyright © 2002 Olof Ekström/Extro System. All
rights reserved.
Bälinge/Uppsala, Sweden, February-March 2002