Login | Register
My pages Projects Community openCollabNet

Argo/UML Code Organization

Major Libraries

There are three major libraries that make up the bulk of the Argo/UML source code. Each is made up of several Java packages. Argo/UML also contains several packages itself.

The numbers next to each package indicate the number of classes in that package. Each package is described below.

Click on the name of a package to see an ArgoUML diagram of classes in that package.

  • GEF (170 classes)
    • uci.gef (105) -- reusable graph editing framework: shapes, selections, grids, editors, layers, commands
    • uci.gef.demo (19) -- demonstrations how to use GEF
    • uci.gef.event (2) -- events generated from GEF editors
    • uci.graph (15) -- generic interface between GEF and graph representations, similiar to Swing's TreeModel
    • uci.util (12) -- general purpose utilities
    • uci.ui (13) -- property sheet and other small user interface utilities
    • uci.beans.editors (4) -- custom property editors used in property sheet

  • Argo (38 classes)
    • uci.argo.kernel (34) -- reusable framework for critics, "to do" list, design history
    • uci.argo.checklists (4) -- framework for design checklists

  • UML meta-model (120 classes)
    • uci.uml.Foundation.Core (26) -- from UML Semantic Specification
    • uci.uml.Foundation.Data_Types (22) -- from UML Semantic Specification
    • uci.uml.Foundation.Extension_Mechanisms (2) -- from UML Semantic Specification
    • uci.uml.Behavioral_Elements.Common_Behavior (16) -- from UML Semantic Specification
    • uci.uml.Behavioral_Elements.State_Machines (20) -- from UML Semantic Specification
    • uci.uml.Behavioral_Elements.Use_Cases (2) -- from UML Semantic Specification
    • uci.uml.Behavioral_Elements.Collaborations (6) -- from UML Semantic Specification
    • uci.uml.Model_Management (5) -- from UML Semantic Specification
    • uci.uml.test.omg (15) -- examples from UML Notation Guide
    • uci.uml.generate (3) -- placeholder for future code generation features
    • uci.uml.util (3) -- general utilities related to UML meta-model

  • Argo/UML (191 classes)
    • uci.uml (1) -- Main
    • uci.uml.ui (111) -- Argo/UML windows, dialogs, panels, navigational perspectives, property panels
    • uci.uml.visual (25) -- UML diagram definitions, UML node and arc definitions
    • uci.uml.critics (44) -- design critics
    • uci.uml.critics.java (1) -- design critics
    • uci.uml.critics.patterns (3) -- design critics
    • uci.uml.checklist (6) -- design checklists
    • uci.Images -- gif images for splash screen and toolbar icons

Pending Reorganization

Argo/UML is still being developed and the code will certainly be reorganized as it grows. Here are some of the pending changes.

  • Split uci.uml.ui into sub-packages for main panels, propery panels, tables, commands, and navigational perspectives.
  • Split uci.uml.visual into sub-packages for each UML diagram type.
  • Regroup critics in uci.uml.critics to put them into the proper packages.
  • uci.uml.generate will undoubted expand, I leave its organization to people working on it.
  • new packages of test cases will eventually be added under uci.uml.test.
  • Either split or join the classes under uci.argo, now only checklists have their own package.
  • All the images for GEF and Argo/UML are in the same place, I should split them to make distributing GEF easier.
  • GEF is in too many packages that do not share a common prefix.
  • The "pure" meta-model code should be in packages with a different prefix than the Argo/UML code.
  • In some PC environments, the total path length of the directory names and file names can exceed 256 characters, causing an error. For this reason and general convience, the package names should be shorter.


Back to Argo/UML Home