Homework #3

OOAD

Due Weds, Feb 14, 2001 30 points

Please make your assignment paper-based and hand in exactly at 10:00am (yes, in the middle of class)! Homework submitted prior to this or after 10:05am will not be accepted.

For the questions below pick another teams 577a project. (One suggestion is trying to pick any 577a project that continues in 577b otherwise you may find some difficulties to do question#2.) This is an individual assignment and you may not collaborate with other students except as specified in the homework assignment. You may use some of the same material from the project as other 577b students, however you must submit work that is significantly different than theirs.

1)      [20 points] Look at another teams SSAD models. For each design diagram, pick a non-trivial example and explain in detail what it communicates (with respect to implementation)

a.       SSAD 3.2        Object Relation (basic collaboration) diagram

b.      SSAD 3.3        Operations (sequence) diagram

c.       SSAD 3.4        Classification diagram

Note: Also copy diagrams you pick as part of your submission.

Example:

The following object relationship tells the implementer to create a database table named “Point” with two floating-point valued columns named “x” and “y”. The rows are ordered (uses an sequential integer index). It also says to create a Java class named “Polygon”, instantiate a single instance that accesses the table through the “points” role (no implementation specified, but could be done by creating a double array or Vector of Point objects called “points” and filling it with the x,y values from the Point table, or perhaps by creating a method that returns the x,y values for a given row) with the constraint that there are at least 3 rows of data from Point (which could be ensured by only creating a double array when there are at least 3 rows in Point). The Polygon class is also responsible for instantiating a class called “GraphicsBundle”  that has attributed “color”,”texture”, and “density” and is refered to through the reference named “bundle”. It must also ensure there is exactly one instance of this for Polygon. One way this can be done is by having the statement “bundle = new GraphicsBundle([color], [texture], [density]);” in the constructor of Polygon and setting “bundle” as an instance variable (i.e. declaring “GraphicsBundle bundle=null;” outside any method declarations).  

Note: the above example is not intended to be an example of an ideal design or a perfect interpretation of the diagram. It is simply an example of a design one might encounter and how it might be interpreted.

2)      [10 points] Meet with the architect from the team whose project you chose examples from above and explain your answers to question (1). After this, have them explain to you what they intended to communicate for the examples then answer the following: 

a.       Explain in detail (for each example) where your understanding was different that the architects intentions.

b.      What changes should be made by the architect to ensure clear understanding and avoid such differences?