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 TOY system (Together Old and Young) so that old people and young people can get together according to certain TOY scenarios. For this exercise, you may start from the most basic TOY scanario. (b) Can you identify certain patterns from the above activities? Describe some of the patterns you have identified. (see the article by James Coplien.)

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.")


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)


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.

Here is a brief explanation on How to run PrjRemote.






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. The most important thing is your project must include an innovative novel idea. For two-person project your project should be on TOPY or TOP station design and development, for one-person prject your project can be on TOY station design and development. In all cases the innovative novel idea is a MUST. 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.