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.