CS1635 Interface Design Methodology

Exercises, Milestones and Term Projects:

Exercise 1: (5 points) Use ArgoUML as a tool to draw the UML class diagram and use-case diagrams for the following software system. (You will need to download ArgoUML (Open Source Software) whose official website is: http://argouml.tigris.org/ and there is also a well-written extensive Argo UML user manual). (Grading: 2 points for each type of diagram, and 1 point for providng argoUML zargo file.) For CS1635 students the diagrams should be zipped and e-mailed to the TA.

Consider the following set of requirements for an Actors-StageSet Interaction System that is used to support interactions between actors and stageSet. These requirements specify the database entities and relationships.

a. The troupe consists of actors and administrators, each with a first-name, last-name, numeric id, password, status, address, birthdate and gender. The attribute status specifies whether that person is an 'actor', an 'admin' or 'actor-admin'.

b. A play consists of acts, each with a numeric act-id and an act-description.

c. An act consists of scenes, each with a numeric scene-id and a scene-description.

d. The state-set consists of stage-objects, each with a numeric object-id, a name, a description and a location. All objects are assumed to be rectangular blocks (or contained in rectangular blocks) so that a location is specified by two points p1(x1,y1,z1) and p2(x2,y2,z2) where p1 is one corner of the lower rectangle of the block, and p2 is the diagonally opposite corner of the upper rectangle of the block.

e. An actor 'participates' (or 'acts') in a number of scenes.

f. A stage-object 'is assigned to' (or 'is used in') a number of scenes.

The applications are: (1) An administrator can assign an actor to a scene. (2) An administrator can assign a stage-object to a scene.

Solution to Exercise 1: There can be different solutions. Basic diagrams 4.0. Class diagram with labelled associations such as teacher teaches class 0.5. Unlabeled associations 0.3. Use case diagram with some "include" relations for commonly used cases 0.5.


Exercise 2: (5 points) Continue with Exercise 1 and draw the state and activity diagrams, and the sequence and collaboration diagrams, for the two applications. For CS1635 students the diagrams should be zipped and e-mailed to the TA.

The additional requirements about database entities and relationships to be added:

g. A stage is also a rectangular block with location attributes specified by two points.

h. A scene can be 'assigned to' (or 'put on') the stage.

i. A gesture can assume one of the following values: up, down, left, right, inward, outward.

j. An actor can apply a gesture to a stage-object.

The additional applications to be considered: (3) An administrator can assign a scene to the stage. (4) An actor can move a stage-object from one location to another location on the stage subject to certain constraints.

Solution to Exercise 2: There can be different solutions. A solution should include at least the use case diagram, the class diagram, one or more collaboration (or sequence) diagram, and one or more activity (or state) diagram. The four types of diagrams should form a complete specification of the application described above. The degree of completeness is 1 point. A solution using only a single ArgoUML zargo file containing all the diagrams is the most elegant solution, but a hybrid solution consisting of multiple zargo file(s) and WORD file(s) is equally acceptable.

1st Solution for Exercise 2:
ex2activity1app3.JPG
ex2activity1app4.JPG
ex2colla1app3.JPG
ex2colla1app4.JPG
ex2sequ1app3.JPG
ex2sequ1app4.JPG
ex2state1app3.JPG
ex2state1app4.JPG

2nd Solution for Exercise 2:
ex2activity2app3.JPG
ex2activity2app4.JPG
ex2colla2app3.JPG
ex2colla2app4.JPG
ex2sequ2app3.JPG
ex2sequ2app4.JPG
ex2state2app3.JPG
ex2state2app4.JPG

(In subsequent exercises and the term project, we will elaborate on how to generate the specification of blocks, how to manipulate blocks using gestures, whether a stage-object can be physical, virtual or hybrid, and how to move/transform a stage-object from physical to hybrid to a virtual stage-object and vice versa. The recognition of gestures from Kinect interface will be another interesting problem to tackle.)


Exercise 3: This exercise is an application of patterns, which has three parts: problem, context and solution. The problem is to reliably count how many people are present in a crowded room. The context is a very noisy environment, where everyone is drinking, laughing and shouting because the Steelers just won the Superbowl. What is the solution?
Describe your solution, and construct (a) conceptual pattern and (b) design pattern catalog, and illustrate how this pattern can be applied to at least one more problem. This exercise does not require programming. You only need to describe the solution and construct the conceptual pattern and design pattern, and explain why you believe it is a useful pattern.

Solution to Exercise 3


Exercise 4: Write a component to send a request message 406 to the Kinect Server to request a stored Kinect action sequence. Your component should receive a response message 408 containing the URL of the stored file. Your component can then directly access and download the stored file.

The messages can be found at: Testbed/Kinect/xml/DataXML/406(KinectServerRequest).XML, and Testbed/Kinect/xml/DataXML/408(KinectServerResponse).XML.

The SIS test bed can be downloaded as SISv3.zip. The package SISv3 includes the SISserver and KinectServer. You should be able to start SISserver and KinectServer on your PC/notebook to do the testing of your component.

Before testing the KinectServer, a CreateKinectServer message (message type 20) should be sent to the SISserver. Please see Testbed/Kinect/xml/InitXML/CreateKinectServer.XML.



Milestone 1: (a) Statement of Work (SOW): Describe the project in one short paragraph (see calendar for due date).
(b) Describe the project as a Conceptual Pattern: the problem, the context (including forces and constraints) and the solution.
(c) Describe the Design Pattern using a class diagram.



Milestone 2: The whole class will review the design patterns to ensure that the design patterns (a) can represent the problems to be solved, and (b) are mutually consistent. Your component will retrieve actors and objects from the Theatre database, and access the Kinect action sequences stored in the Kinect database.





Projects and Project Scenarios