Robert S Laramee 24 Nov 2011 Partial Solution to In-Class Exercise 2, CS-230 Software Engineering ------------------------ Class: Drawing Editor Responsibilities: 1. Controls main flow of application e.g., where flow of execution starts and ends. 2. Instantiates program 3. Initializes GUI 4. Initializes any other necessary resources 5. Responsible for clean exit, ensuring data is saved on termination ------------------------ ------------------------ Class: User Responsibilities: 1. Creating a new user 2. Saving username and password 3. Associating a user with a drawing 4. Deleting a user ------------------------ ------------------------ Class: Drawing Responsibilities: 1. Creating/instantiating a new drawing 2. Editing a drawing 3. Saving a drawing 4. Displaying a drawing 5. Deleting a drawing ------------------------ ------------------------ Class: Line Responsibilities: 1. Creating/instantiating a new line 2. Displaying a line 3. Editing a line 4. Displaying its control points 5. Deleting a line ------------------------ ------------------------ Class: Rectangle Responsibilities: 1. Creating/instantiating a new rectangle 2. Displaying a rectangle 3. Editing a rectangle 4. Displaying its control points 5. Deleting a rectangle ------------------------ ------------------------ Class: Ellipse Responsibilities: 1. Creating/instantiating a new ellipse 2. Displaying an ellipse 3. Editing an ellipse 4. Displaying its control points 5. Deleting an Ellipse ------------------------ ------------------------ Class: Text Responsibilities: 1. Creating/instantiating new text 2. Saving Text 3. Displaying text 4. Editing text 5. Deleting text ------------------------ ------------------------ Class: Tool Responsibilities: 1. Creating/instantiating a new tool 2. Controlling mode of operation ------------------------ ------------------------ Class: SelectionTool Responsibilities: 1. Creating/instantiating a new selection tool 2. Selecting a drawing element 3. Grouping drawing elements together 4. Identifying/returning the current selection ------------------------ ------------------------ Class: CreationTool Responsibilities: 1. Creating/instantiating a new creation tool 2. Creating a drawing element ------------------------ ------------------------ Class: DrawingElement (Element) Responsibilities: 1. Creating/instantiating a new drawing element 2. Displaying a drawing element 3. Saving a drawing element 4. Editing a drawing element 5. Deleting a drawing element ------------------------ ------------------------ Class: Control Point Responsibilities: 1. Creating/instantiating a new control point 2. Storing a control point's coordinates (x,y position). 3. Displaying a control point 4. Editing/updating a control point's position 5. Deleting a control point ------------------------ ------------------------ Class: Cursor Responsibilities: 1. Storing the current cursor position (x,y) 2. Displaying the cursor (See Java Cursor Class) ------------------------ ------------------------ Class: Time Responsibilities: 1. Returning the current time 2. Displaying the time (See Java Time Class) ------------------------