Objectives Addressed
- be able to do independent research on software design
- be able to design and implement small software components and systems
- be able to use computer-aided software engineering (CASE) tools in the design process
Overview
The purpose of this lab is to extend and implement an existing design.
Problem Statement / Activity
Many submitted use cases for erasing a shape suggested that when a particular shape is selected in the Shape List that it become highlighted on the canvas. This seems like a nice and necessary feature. There are a number of approaches this could take. Ideally, we would like to be able to make this change within the framework of our current design.
A couple of items to consider:
- How will a highlighted shape be drawn? Different color? Extra border?
- What if the shape to be highlighted is underneath other shapes? Will it show up?
- While right now we are limited to signle-selection in the Shape List, be sure to consider the possibility that multiple shapes will need to be highlighted.
In addition, we are still missing implementation of the various shapes. The implementation of Rectangle stands as an example, however, keep in mind it was a bit of a hack.
Assignment Review
Main Assignment
- Rework your design as described above to add the capability to highlight a selected shape.
- Modify the model to include support for your design change / addition.
- Generate code and implement your design change.
- Also implement remaining shapes.
Questions
- What approach did you take to accomplish this design change?
- Consider the design before and after the addition of the observer pattern. Did the observer pattern facilitate this change or make it more difficult? How?
- Are there any other patterns that we have discussed that might facilitate this change?
DrRothe? Deliverables (due 11p.m. the day prior to week 5 lab)
Students should submit:
- A pdf format report with:
- Answers to questions posed above.
- A short discussion about any problems you had with this project.
- New and updated diagrams generated for this lab
- Updated class diagrams
- Sequence diagram of a shape being selected and subsequently highlighted
- A .zip file with:
- All source code for this project - no class files please.
- A text file named manifest.txt. Within manifest.txt, list your email addresses (each team member, one per line), and all of the text files
- Submit via electronic submission at online submission as Lab 4.
- Do not include EA file with this submission.
- Your zip file should not have any subdirectories except for Java packages associated with your souce code.
- Log your time spent on this assignment to FAST.
DrTaylor? Deliverables (due 11pm the day prior to week 5 lab)
Students should
submit two files per group:
- An .xml file with:
- Answer to questions posed above.
- A short discussion about any problems you had with this project.
- A link to a screenshot of your running application with at least one of each shape drawn on the canvas.
- Links to the UML diagrams that were modified as part of this assignment (see below).
- Documented source code.
- A .zip file that has .png or .gif images of:
- Your running application (called 2811 login L4a.png) where login is the actual login name for one of the members in your group.
- Any updated UML diagrams (called 2811 login L4?.png) where ? is a letter.
Also, be sure to submit a log of time spent on this assignment to
FAST and be prepared to demonstrate your working program at the beginning of lab next week.