Consider the following set of requirements for a university information system
that is used to keep track of students transcripts.
The first requirement RS1 concerns the data to be kept in permanent storage, which is further broken down into five parts.
RS1a. The university keeps track of each student's name, student number,
social security number, current address and phone, permanent address and
phone, birthdate, sex, class (freshman, sophomore, ..., graduate), major
department, minor department (if any), and degree program (B.A., B.S.,
..., Ph.D.). Some user applications need to refer to the city, state,
and zip of the student's permanent address, and to the students' last
name. Both social security number and student number have unique values
for each student.
RS1b. Each department is described by a name, department code, office number,
office phone and college. Both name and code have unique values for
each department.
RS1c. Each course has a course name, description, code number, number of
semester hours, level, and offering department. The value of code number
is unique for each course.
RS1d. Each section has an instructor, semester, year, course, and section
number. The section number distinguishes different sections of the same
course that are taught during the same semester/year; its values are
1, 2, 3, ...; up to the number of sections taught during each semester.
RS1e. A grade report has a student, section, and grade.
The other requirements for this application are:
(RS2) An administrator can update the courses to be taught by instructors,
and enter the list of students taking a course.
(RS3) An instructor can enter and update the grades of the course(s) taught
by this instructor.
(RS4) A student can request a grade report from the information system.
Solution to Exercise 1: There can be different solutions.
Class diagram with labelled associations such as teacher teaches class.
Use case diagram with some "include" relations for commonly used cases.
Exercise 2: (5 points)
Continue with Exercise 1 and draw the state and activity diagrams,
the sequence and collaboration diagrams, and the component/deployment diagram
(each diagram is 1 point).
For CS1631 students the diagrams should be zipped and e-mailed to the TA.
The additional requirements for this application to be considered:
(RS5) A student can fill out an online add/drop form.
(RS6) A student may request an instructor to approve the add/drop form.
(RS7) The add/drop form must be approved by the administrator.
(RS8) The add/drop information is entered into the database.
Exercise 3: (5 points)
Make a business case to justify either the in-house development
of the university information system, or farming it out to
a software developer, or taking a "hybrid" approach. There is no "correct" answer for this
exercise. Rather, what matters is how you argue your case
based upon a combination of logic, facts, simple calculations
and reasonable assumptions.
The time-window for making the business case is five years.
The following are known facts:
(a) labor cost for programmers is $50/hour for in-house development,
(b) labor cost for programmers is $30/hour for external developers,
(c) each GUI component takes 300 hours on the average to develop,
50 hours of end-user time to test and $40/hour for end-user to do testing,
(d) each service component takes 500 hours on the average to develop,
(e) each domain component takes 800 hours on the average to develop,
(f) maintenance efforts in a five-year period is equal to development efforts,
(g) productivity factors are the same as given in the text book,
(h) total number of unduplicated users is 10,000,
(i) number of applications over a five-year period is 50 regardless of
the type of components,
(j) complexity cost is $20,000 per component,
(k) application framework cost is assumed to be zero (i.e., absorbed by the corporation).
(Any other parameters you need must be estimated by you.)
Exercise 4: (5 points)
The UML provides a common language for software
developers to communicate with each other. In the
term project, each team/person will use UML for
the specification of the software component to
be developed by this team/person.
For CS1631 students this becomes a 2-person group exercise to develop
the project plan
and the UML specification.
The final deliverables are the specification, implementation, testing and
delivery of the project (5 points plus 25 points).
The UML diagrams to be delivered include the use case diagram,
the class diagram, the activity diagram (or state diagram) the collaboration diagram (or sequence diagram), and component/deployment diagram. These
five types of diagrams are chosen because they can all be created
using the software tool ArgoUML as long as feedback loops are avoided.
In creating the class diagram, try to remain consistent with the
database schemas for the
virtual classroom.
The name of variables used in the diagrams should also remain
consistent with the basic message types and variables for the "remote control" supplied
by the instructor.
For Personal HealthCare System, there are the additional message types.
If you follow these rules it will
be easier later to integrate the UML diagrams
to generate a combined overall specification.
Milestone 1: Specify messages to a component. (5 points)
You should define all the messages to your component and
from your component. Each message can be defined
by specifying a message ID, a short description,
a list of variables, and an example
as an XML document.
The existing messages should be used whenever possible.
(For Project II, the Personal HealthCare System project, use the following
existing messages.)
If you need an extra message type, you may introduce your
own. Start with message ID: 100 + 10 x GroupID + i, i=0, 1, 2 and
so on. For example, if your group is 2, your first
message is 120 and so on.
(Note: Sometimes we can add message sub-types in the body
of the message so that no new message types need be
introduced)
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 the next Milestone, you can test your component(s)
according to the submitted scenario.
Milestone 2: Test interface between remote control and component. (5 points)
You should have already
started the implementation of the component, concentrating on the
interface with the remote control (prjRemote.exe compiled from Delphi code). You will
demonstrate how your component can interact
with the remote control. The scenario is as follows:
First you run the remote control, which will appear on the screen.
Then you use the remote control to send a message to your
component. The message typically consists of some variables and
their values. You can enter the variable names and values through
the remote control. The output message should also appear on the
remote control. You can test most of your messages this way.
Project Milestone II to test your component using the
remote control (Java version, please download and unzip).
Please read the tutorial on how to use the remote control.
A C++ Interface for the components (works with the Remote Control 1.0) is provided,
which has been tested with GNU's g++ compiler on elements machines.
Finally, you can test the interaction between two or more components using
the Universal Interface
which is like the remote control but allows for the communication between
components. You can download the
zip file for Universal Interface and follow the
setup procedure for the Universal Interface
to run it with your own PlugIn component (a 'dummy' is supplied in the zip file for initial setup and testing).
The following is an example of a
PlugIn component to tally student attendance and their interests
implemented using the Universal Interface and its
Java code.
To understand how the VC works, read the
guide for VC source codes.
Demo and Final report: Give a demo of your component and turn
in the final report. (20 points for CS1631 )
(a) The demo is similar to the demo you give at the second milestone,
except that the details of the application of your component should
be demonstrated. Most of you, unless notified by the TA, will still
use the remote control to give the demo. But now you need to simulate
a longer scenario. You should pre-store the messages (as XML documents)
so that you can do the demo quickly. You can also instantiate more
than one remote control in your demo, in case you need them. The TA
may contact you to invite you to integrate your component into the
Virtual Classroom. As the Chosen Few, you will work closely with
the TA to do the integration. You can also volunteer by talking to the TA, who may or may not accept you.(bonus point considerations)
(b) The final documentation is in the form of a zip file. When
unzipped, it contains the following:
(Grading: For all students, 5 points for documentation (zip file). For CS1631 students, 15 points for making component work and giving demo successfully - 8 points for fair, 11 points for good, 14 points for very good, 15 points for excellent, plus one bonus point for extra accomplishment. )