Argo/UML Code Organization
Dependency Graph | ![]() |
||
![]() |
|||
![]() |
|||
Metrics | ![]() |
||
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.
|
|||
![]() |
|||
Package Descriptions | ![]() |
||
Under the uci.uml directory, there are a series of packages that deal specifically with all the aspects pertaining to UML diagrams. Just as everthing dealing with the user interface is located within the uci.uml.ui package, so everything dealing with UML and the meta-model are located within the uci.uml package. The meta-model consists of all the everything that lies within a UML diagram, and the graphical view may contain only a few of the things that are contained in the meta-model. Whatever is added to the graphical editor is also added to the meta-model, but if something is deleted from the graphical editor, it is not necessarily deleted from the meta-model. uci.uml.Behavioral_Elements This package takes care of such things as the types of associations, i.e. aggregation or composite, and the multiplicity of an association. uci.uml.checklist Most of the classes in this package are subclasses of UMLChecklist.java (click to see diagram). Checklists are currently widely used in design review meetings, in part, because they remind designers to cover all design details and avoid common design errors. Argo provides checklists that serve the same purpose, but have several advantages over passive printed lists:
Checklists are somewhat similar to critics (in fact, they share some of the same implementation), however they differ in the level of specificity so much that we feel that they should be presented separately to designers. Critics look for very specific problems and provide specific suggestions when those problems are detected. The designer still makes the final decision about any design changes, but the critic can automate much of the analysis and work. In contrast, checklist items are much more general and vauge, they serve to remind the designer, but it is the designer who must do most of the analysis and work. Checklists are easier to author (see below), and useful checklist items can be upgraded to critics if appropriate. uci.uml.critics The majority of the classes in this package are subclasses of CrUML.java (click to see diagram). Design critics are simple agents that continuously execute in a background thread of control. They analyze the design as the designer is working and suggest possible improvements. These suggestions range from indications of syntax errors, to reminders to return to parts of the design that need finishing, to style guidelines, to the advice of expert designers. Many critics offer to automatically improve the design. Critics are controlled so that their suggestions are relavent and timely to the design task at hand, based on information in Argo's user model. Critics never interrupt the designer, instead they post thier suggestions to the designer's "to do" list. uci.uml.Foundation This package contains three subpackages listed below. The two classes that are subclassed the most are ModelElementImpl.java and GeneralizableElementImpl.java (see the diagram). All of the classes in these packages are part of what makes up the meta-model.
uci.uml.generate This package deals specifically with automatic code generation from the user's current design. uci.uml.Model_Management This package deals with managing the link between the graphical model and the meta-model. uci.uml.ui Everything dealing with the user interface is located within this package and the following subpackages. This package takes care of all the actions that can be made to a UML diagram such as the menu actions and the toolbar actions. The class that is subclassed the most is the UMLAction.java, TabSpawnable.java and Token.java. uci.uml.ui.nav
uci.uml.ui.props
uci.uml.ui.table
uci.uml.ui.todo
Used to generate children of classes. uci.uml.visual Contains most of the classes dealing the the way elements of the UML diagram appear
within the graphical editor. The classes that are subclassed the most are FigNodeModelElement, FigEdgeModelElement, and UMLDiagram. |
|||
![]() |
|||
Back to Argo/UML Home