Exercises, Milestones and Term Projects:

Exercise 1: (5 points) Use ArgoUML as a tool to draw the UML class diagram and use-case diagrams for the following software system. (Grading: 2 points for each type of diagram, and 1 point for providng argoUML zargo file or WORD file containing all diagrams as jpg images) For CS1631 students the diagrams should be zipped and e-mailed to the TA. Diagrams may require footnotes and/or comments.

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.

Exercise 4 example





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:

  • A Word file, which is your primary documentation. It contains the updated and enhanced documents that you submitted in Exercise 4 and previous milestones. The document thus consists of: a) enhanced project plan, b) updated UML diagrams, c) revised messages and variables, and d) a detailed example with explanation and screen shots showing how your component works. (The last item is especially important in case Murphy's Law strikes again and your component does not work during the demo. At least you have something to show on paper.) The appendix of this document is the source codes, zargo file and XML messages.
  • The source codes. Yes, the source codes should be included both as an appendix in the report and also separately in a subdirectory Source.
  • updated zargo file for the updated UML diagrams.
  • A subdirectory Message containing the XML messages.
    Please name your zip file, WORD file, zargo file using the first five letters of your last name. For example, your name is Davenport. Then your zip file is daven.zip, your WORD file is daven.doc, your zargo file is daven.zargo. For team projects use one of the team member's name. You will lose 2 points if you do not follow this naming convention.

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