CLASS PROJECT OUTLINE: the OMT Diagram Editor OVERVIEW: The system allows the user to draw class diagrams, according to the Object Modeling Technique (OMT) as described in "Object-Oriented Modeling and Design" by James Rumbaugh et al., (Prentice-Hall). The system provides features to: - create and edit classes, including the list of attributes and operations; - define and manipulate associations; - specify multiplicity, link attributes, role names, ordering, qualifiers, constraints, derived objects/links/attributes; - represent generalization, aggregation, and instantiation. GENERAL CONSTRAINTS: - The system runs on UNIX and it is based on the X window system - The system must be developed by adapting the ET++ framework - All the diagram elements must be OMT-compliant - The system must be implemented following the ET++ coding conventions (see section 4.1 "Coding Conventions, from the ET++ Introduction document) - The system must be implemented incrementally, where increments constitute prototypes of the end product. USER INTERFACE The following characteristics of the user interface are the same as the other ET++ based applications: (see section 3.1 "The user Interface of ET++ applications", from the ET++ Introduction document) - mouse buttons - windows manipulation - pop-up menu (Undo, Cut, Copy, Paste) - File menu (New, Open, Load, Save, Save As, Revert, Close, Print, Quit) - Edit menu (Undo, Cut, Copy, Paste, Paste File, Clear, Select All) - Dialog boxes (Alerts, Process-Modal dialogs, Modeless dialogs) - File dialog (during a Save, Save As, Load, or Open) - Editing Text - Printing (preview, device selection, etc.) 1st INCREMENT ------------- REQUIREMENTS: Classes (represented by three-region box diagrams) and objects (represented by elliptical box diagrams) are displayed in a window. It is required that the user is able to move and resize the classes and objects using the mouse. The window should have the default menu bar provided by ET++ across the top. 2nd INCREMENT ------------- REQUIREMENTS: The box diagrams must be editable to allow the entry of class names. When the class is moved the text will be moved accordingly. 3rd INCREMENT ------------- REQUIREMENTS: The user must be able to change the font, style, and point size of text. Add appropriate items to the menubar to allow selected text to be altered. 4th INCREMENT ------------- REQUIREMENTS: More than one view must be displayed in the same window. The views show the same diagram although different parts of it, and are updated automatically. The views should allow the user to work on different parts of the diagram simultaneously. 5th INCREMENT ------------- REQUIREMENTS: An additional menu item, labeled "Tools", must be added to the default menu bar. On the pulldown menu should be one item, "Select". When invoked, select allows an object, class, or link (see increment 7) to be selected, i.e. marked by grips. Objects and classes must now be resizable or movable only when selected. 6th INCREMENT ------------- REQUIREMENTS: The user must be able to add objects and classes. Add two new items to the "Tools" pulldown, "Class" and "Object", which, when selected, allow the user to click anywhere in the window area to add a new class or object at the indicated position. There must be no limit to the number of classes and objects that can be added. 7th INCREMENT ------------- REQUIREMENTS: On the "Tools" pulldown menu should be the following items: Generic Association Instantiation Relationship When selected, each of these menu items allows links of the appropriate type to be added to the diagram. Links must be able to be added by clicking on one object or class and "stretching" the link until another class or object is reached. The connections between items must be maintained and update automatically when the objects themselves are moved. Links must obey the following rules: GENERIC ASSOCIATIONS can be drawn only between two classes. INSTANTIATION RELATIONSHIPS can be drawn only from an object instance to a class. 8th INCREMENT ------------- REQUIREMENTS: The representation of a class must be made more sophisticated. It is still to be represented as a rectangle with three regions, but now only the top region is to be editable (for entering class name). If more than one line is entered for the class name, the editable region must remain confined to the top region and the remainder of the rectangle must adjust so that the entire name region remains visible. The second and third regions of the class must remain empty to accommodate display of the appropriate information when it becomes available (see increment 10). 9th INCREMENT ------------- REQUIREMENTS: The user must be able to delete objects, classes, and links. A new menu item, "Delete", must be added to the "Edit" pull-down menu. When a object, class, or link is selected and the "Delete" item is invoked, a confirmation window must appear and ask whether the user really intends to remove the selected object. If the user answers yes, the object must be deleted; if no, no modification is made. When a link between objects or classes is deleted, it is removed from the window and any appropriate data structures. When a class or object is deleted, any links connected to it are deleted as well. 10th INCREMENT -------------- REQUIREMENTS: A new menu item, "Properties...", must be added to the "Edit" pull-down menu. When a class is selected and the menu item "Properties..." is invoked, a dialog box is brought up which allows the entry of information pertaining to a class: class description attribute list operations list constraints When a link is selected and the menu item is invoked, a dialog box is brought up to query the user on the following link information: association names roles qualifiers multiplicity ordering constraints Information that can be represented as part of the OMT diagram should be done so. 11th INCREMENT -------------- REQUIREMENTS: The user should be able to specify whether class attributes should be hidden or visible on the diagram. A pulldown menu entitled "View" should be on the menu bar. If attributes are currently visible, there must be an item, "Hide Attrs" on the pulldown menu which hides the attributes. If attributes are currently hidden, the item must change to "Show Attrs" and make them visible again when selected. The user should select whether class operations are shown or hidden in an analogous way. 12th INCREMENT -------------- REQUIREMENTS: The "modes of operation" discussed in the previous increments (i.e. Select, Class, Object) must be made available as part of a palette on the left side of the window, in addition to their availability from the "Tools" pulldown from the menu bar. 13th INCREMENT -------------- REQUIREMENTS: On the "Tools" pulldown menu should be the additional types of links: Generalization Aggregation When selected, each of these menu items allows links of the appropriate type to be added to the diagram. These links can only be drawn between classes. The connections between items must be maintained and update automatically when the objects themselves are moved.