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