[Solved] HW3 Reducing Complexity with Appropriate Use Design Patterns

$25

File Name: HW3__Reducing_Complexity_with_Appropriate_Use_Design_Patterns.zip
File Size: 574.62 KB

SKU: [Solved] HW3 – Reducing Complexity with Appropriate Use Design Patterns Category: Tag:
5/5 - (1 vote)

In this assignment, you will build a simply drawing program that allows a user to paint a scheme with instances of different kinds of objects. You can choose what kind of drawing program to create and what kinds of objects to have in the users palette. For example, you might decide to develop a program is for drawing painting, and therefore give the user some pre-defined high-level objects, like a mountain, a tree, a house, a cloud, etc. If your program is for drawing cartoon characters, you might want to include a head, eyes, noses, ears, mouths, etc. If your program is for drawing UML class diagrams, you would want your palette to include class symbols, binary associations, specializations, etc. The objects represented in the palette can be complex objects with significant amounts of intrinsic state information and some extrinsic state information.

Functional Requirements1. The user should be able to create a new drawing at any time, through either a menu option or ahotkey.1.1. On creation, the user should be able to select an initial background color or image that fills theentire drawing space.2. The user should able to create instance of object types from a palette and place them on thedrawing. You are free to decide what drawings your program with make and therefore what kindsof objects your program will support.2.1. Your program must allow the user to instantiate and places at least six different kinds of objectson drawing.3. The user should be able to select an existing object on the drawing and perform an action on thatobject.3.1. The user should be able to move the selected object on the drawing3.2. The user should be able to remove the selected object from the drawing3.3. The user should be able to scale the object3.4. If applicable, the user should be able to change other properties of the object, like its line coloror fill color3.5. The user could be able to duplicate a selected object4. The UI should allow multiple gestures (keystrokes, mouse movements, and button clicks) for someof the actions.5. The system should keep a history of actions (commands) that the user performs to since thedrawing was created or last opened.6. The user must be able to undo previous drawing actions in reverse order, all the way back to theinitial drawing creation or opening of the drawing.7. The user should be able to save a drawing in a persistent store and re-open it later7.1. A saved drawing should be a set of objects (with their state information), not a bitmap7.2. The persistent store should be either a database in a cloud (e.g., the AWS RDB services) or aserialized object in a cloud (e.g., the AWS S3 services)8. The user should be able to open a saved drawing.InstructionsTo build this system, you will need to do the following:1. Decide what youd like your drawing program to be for, e.g. landscapes, people, blueprints, a type ofUML diagram, or something else of interest to you.2. Design your system. Look for good opportunities to apply the singleton, factory, flyweight,command, and undo patterns. Also, dont forget about the other patterns that youve learned, likestrategy, decorator, and observer. Use the patterns to help manage the inherent complexity of theproblem and eliminate accidental complexity.2.1. Be sure to separate your GUI Layer from your Application Logic Layer. The classes thatrepresent your drawing or the objects in your drawing should in your Application Logic layerand should not need to depend on your GUI components.3. Implement and test the classes in your Application Logic Layer. Your unit tests for the componentsin this layer must be executable and thorough4. Implement your GUI5. Test your software at the system level using ad hoc testing methods.

Reviews

There are no reviews yet.

Only logged in customers who have purchased this product may leave a review.

Shopping Cart
[Solved] HW3  Reducing Complexity with Appropriate Use Design Patterns[Solved] HW3 Reducing Complexity with Appropriate Use Design Patterns
$25