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.)
Solution to Exercise 1
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 in 2011)
(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 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:
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.