1. Introduction
4.
Functional Requirements
This
section provides a list of functional capabilities referenced by the scenario
presented above. The prefix ‘(x)’ was
added to each item as it was completed during implementation.
The
user of the class diagramming app shall have the ability to:
(x)
(1) Create a class label
Test
case:
(a)
Start the ClassDiagrammer App.
(b)
Right-click in the client area. The
context menu appears.
(c)
Move the mouse onto the "New Label>" item in the context
menu. The label type submenu appears.
(d)
Select the "Class" item in the label type submenu. A dialog for entering the class name
appears.
(e)
Enter "BankAccount" for the class name in the edit box in the
dialog. Click the OK button. A class label with text
"BankAccount" appears. The
bottom center of the label is located at the point where the right-click
occurred.
(x)
(2) Create a class member (data or method) label
(x)
(3) Create an interface label
(x)
(4) Create an interface method label
(x)
(5) Link a class label to a member label
(x)
(6) Link a class label to another class label to indicate inheritance
(x)
(7) Link a class label to another class label to indicate usage
(x)
(8) Link a class data member to a class label indicating its type
(x)
(9) Link an interface label to a class label to indicate that the class
implements the interface
(x)
(10) Link an interface label to a method label to indicate the method is a
member of the interface
(x)
(11) Change the text of a label
(x)
(12) Hide labels and links; optionally display hidden labels and links in light
gray to remind user that these labels and links still exist
(x)
(13) Delete labels and links
(x)
(14) Reposition a label by dragging it
(x)
(15) Add bends to links
(x)
(16) Add forks to links; specifically create a link by starting at an internal
vertex of a bent link
(x)
(17) Reposition a vertex of a link by dragging it
(x)
(18) Display a key; allow it to be repositioned by dragging
(x)
(19) Add notes to annotate a class diagram
(x)
(20) Put a green ‘+’ on a label or link to indicate that it is proposed to be
added
(x)
(21) Put a red ‘X’ on a label or link to indicate that it is proposed to be
deleted
(x)
(22) Save a diagram to a file per conventional ui
(x)
(23) Read a diagram from a file per conventional ui
5. Non-functional requirements
7. System Structure -
The 30,000 ft view
8. Subsystem objects and interfaces
Download a Java executable of the ClassDiagrammer
(ClassDiagrammerApp.jar)
Download a sample diagram created by the
ClassDiagrammer (BankAccountClasses.cd)