CS2310 Exercise 1:

The purpose of this exercise is to experiment with patterns in software engineering. (a) Use the IC cards to specify the activities involved in organizing a personal health care system such as processing sensor input from blood pressure meter, body temperature, heart rate and so on, scheduling routine and non-routine appointments with physician, obtaining and processing prescriptions, following up test results and so on. (b) Can you identify certain patterns from the above activities? Describe some of the patterns you have identified. (see the article by James Coplien.)
2017 Solution to Exercise 1
2017 Another Solution to Exercise 1

CS2310 Exercise 2:

The purpose of this exercise is to enable the students to gain familiarity with the active index approach to active information system design. As discussed in class, the hypermedia model and the active index together can be used to model active distributed multimedia information systems. In this exercise we will first concentrate on the active index component.

Let us consider a Personal Health Care System for a senior citizen living alone at home. The senior citizen may not be computer-literate. Therefore he/she will use gestures to communicate with the system. Let us assume there is a gesture recognition index cell that can recognize user's hand gestures. If the gesture index cell detects a "I need help" gesture then it will send a message, "Patient Smith needs help", to the emergency manager index cell. The emergency manager cell will send a message, "Call patient Smith", to the homecare staff index cell. If the senior citizen makes another "I need help" gesture, which is again sent by gesture index cell to the emergency manager cell, the emergency manager cell will send a message, "Visit patient Smith", to the homecare staff index cell. In other words, multiple "I need help" messages from the gesture index cell will prompt the emergency manager cell to send "Visit patient Smith" to the homecare staff cell. The homecare staff cell will call the patient if he/she receives a message "Call patient Smith" from the emergency manager cell. If the homecare staff cell cannot reach patient Smith by phone, or a message "Visit patient Smith" is received from the emergency manager cell, then the homecare staff will jump into the ambulance and drive to Mr. Smith's home. (Note: Exercise 2 is similar to previous Exercise 2, except the application was changed from distance learning to personal healthcare)

(a) Draw state-transition diagrams to define graphically the three index cell types.

(b) Specify the three index cell types formally using mathematical notations ic = (X, Y, S, so, A, tmax, f, g).

(c) Draw a diagram showing three multimedia interfaces (webpages such as doc-1, ..., doc-3) enhanced with the index cells to illustrate how these index cells work together to form an active index system.

(d) Following the discussion on the concept of patterns, define more clearly the pattern(s) you have identified. If you feel the patterns you have identified are lacking in certain respect, you may replace them by some new patterns.

(e) A visual specification of the identified pattern(s) should be included, using for example visual grammar rules. Remember Alexander's dictum: "If you can't draw a picture of it, it isn't a pattern.")
2017 Solution to Exercise 2
2017 Another Solution to Exercise 2


CS2310 Exercise 3:

The purpose of this exercise is to understand the relationship between active index and Petri nets. Both are tools for the modeling of distributed multimedia systems. Active index cells are added incrementally to build a dynamic index, and the connections can also change dynamically. However, if the massages passed between index cells are deterministically routed, then it is possible to convert active index into a Petri net. Otherwise you must use a Petri net with conditions (predicates) associated with the transitions, or an Evaluation Net (E-net).

(a) Convert the active index you constructed in Exercise #2 into a Petri net (or an E-net).

(b) Take the diagram you drew in part (c) of Exercise #2. Redraw it here (because you may want to make some changes), and now use the marked Petri net to illustrate the scenario. You can draw a sequence of marked Petri net to show how the system works.

(c) Suppose the emergency manager index cell corresponds to a super-component, i.e., the emergency manager can enumerate a number of feasible solutions and select the most appropriate one. Draw the personal health care system as a pair of (I-card, C-card), and convert it into an ordinary Petri net. (To do that, you need to assume a specific number of feasible solutions for the emergency manager to evaluate. Let us say three.) (Note: part (c) was added in 2011)
2017 Solution to Exercise 3
2017 Another Solution to Exercise 3


CS2310 Exercise 4:

The purpose of this exercise is to experiment with the prototyping tool for distributed multimedia computing using the SIS testbed. The practically oriented student can then continue to develop an application based upon the SIS testbed as one of the options for the term project. The theoretically oriented student can work on the suggested theoretical topics for the term project.
(a) For the perosnal healthcare system, specify components and messages for your version of personal healthcare system developed in previous exercises. You should define all the messages to your components and from your components. Each message can be defined by specifying a message type, scope, a short description, a list of senders and receivers, your own variables, and an example as an XML document. The name of messages and variables used in the exercise should remain consistent with the basic SIS message types and variables. Your specification should make use of at least one supercomponent.
(b) In addition to message definitions, please also submit a step-by-step detailed scenario showing what messages are exchanged and what are the expected effects. In particular, show how the messages are exchanged by supercomponents and/or components at different levels.
(c) Using SIS testbed, you can test your component(s) according to the submitted scenario using the debugging tool PrjRemote. Your implemented components could be "stubs" for debugging only without actual codes. Present a demo to the TA during his specified office hours. Try to give a clear demonstration of the scenario with messages exchanged by supercomponents and components at different levels.

CS2310 Exercise 4v1 (optional):

The purpose of this exercise is to apply multimedia functional dependency to multimedia applications design. Given an application (its requirements), design the multimedia database using multimedia functional dependency theory. Then specify the patterns (IC cards) associated with the multimedia database. The application is the personal health care system that allows the user (a senior citizen) to access related multimedia documents using gestures. A new classification scheme based upon the gestures associated with the multimedia documents is to be introduced. This would allow users to search for multimedia documents similar to a known audio search key (such as the voice of a certain author). Your task is to design the multimedia database and associate patterns (IC cards), which can in turn be transformed into IC index and finally an implementation. (Note: Exercise 4 is similar to previous Exercise 4, except the application was changed from distance learning to personal healthcare in 2011)


CS2310 Exercise 4v2 (optional):

The purpose of this alternate exercise is to use visual specification, i.e., I-card and C-card, for the design of supercomponents in slow intelligence systems, and transform them into Petri nets.

(a) Continuing with Exercise 3(c), explore different Petri net realizations for the super-components. We can make the execution of the algorithms all serial, all parallel, probabilistic, and so on. There are many different sub-types of Petri nets that can be explored. You should at least try serial and parallel nets. There will be bonus if you try other nets such as probabilistic nets.

(b) Develop on paper the algorithm for a transformer to transform original Petri net specification (in pnml format) into the expanded Petri net specification (in pnml format). Demonstrate on paper how your algorithm works by going through the critical steps and illustarting with an example such as the one described in Exercise 3(c).

*(c) (optional bonus part/term project) If you can come up with Java implementation to transform original Petri net (in pnml format) to expanded Petri net (also in pnml format) you will get bonus. Or this option work can be part of your term project.

This topic is for those who are already familiar with Petri net and those who are interested in implementation type of projects.


CS2310 Project Milestone #1:

When the nature of the project is clear, a project milestone will be posted. For programming projects, this project milestone is for the delivery of the most essential programs. Since this is a class project, programming should be kept straightforward. Remember, the goal is to prove it can be done. Please observe the KISS (Keep it simple stupid) principle. If the program works, you have accomplished the objective. For theoretical projects, this project milestone is for the clear formulation of the problem. All definitions should be clearly worked out by this milestone.

CS2310 Project Milestone #2:

For programming projects, this project milestone is for the delivery of all programs, ready for testing. For theoretical projects, this project milestone is for the completion of formulation of the algorithms.