Computer Science 507
Software Engineering

Spring 2015, The College of Saint Rose

Lab 3: UML
Due: 6:00 PM, Monday, February 9, 2015

In this lab exercise, you will read a bit about using a form of UML (Unified Modeling Language) to produce several diagrams that help in the requirements gathering and design for a software system.

You may work alone or in groups of up to size 5 on this lab. Only one submission per group is needed.

Getting Set Up

Create a document where you will record your answers to the lecture assignment and lab questions. If you use plain text, call it "lab3.txt". If it's a Word document, you can call it whatever you'd like, but when you submit, be sure you convert it to a PDF document "lab3.pdf" before you submit it.

Guest Speaker Reactions

Note: this portion must be done individually and is graded separately.

Participate in the discussion of this week's speaker, Charles Calkins, on the speaker blog. To earn full credit, you should make at least 5 comments on this week's post or replies to comments (at least 2 should be replies, and at least 1 should be posted within the day following the talk). Comments may address any aspect of the speaker's presentation, including how it relates to topics from other parts of the class. You are welcome to start this process during the talk, if you wish. (5 points)

Please note that Charles has agreed to sign up for our speaker blog and might respond to some of your comments.

Lecture Assignment Questions

None this week! But please make an effort to read Sommerville Chapter 6.

UML for Requirements

We will develop a set of UML diagrams to specify more formally the requirements of the room scheduling system case study. We will first come up with a common set of requirements. Even so, you may need to ask for clarifications about our requirements as you develop your diagrams (which will obviously be done by email with the weather).

Updated Requirements Description

Let's assume we have developed the following requirements description for the room scheduling project. The intent was to do this in class, but given the weather cancellation, we'll go with these.

Our task is to design, develop, and deploy a web-based room scheduling system for a medium-sized college. The administrative interface will allow rooms that are available for scheduling to be entered into the system. This will include seating capacity, room setup, any special equipment (such as computers) in the room, plus pricing information for outside groups. It will also allow information about room usage by the regularly scheduled courses at the college to imported from a report run by the Registrar's office that will allow those rooms to be marked as unavailable at those times. The user interface will allow someone to log in with their college login credentials or to create a guest account for those outside of the college. Once logged in, they can search for available rooms that meet their needs (capacity, location, special equipment, time) and then choose a room if one is available. Those logged in with college credentials can then book the room if they wish. Those logged in as a guest can temporarily reserve the room and will be given a code that they can take to the college's bursar's office to make a payment. The bursar will then approve the reservation and mark it as paid in the system. Any reservation by an outside individual or group that has not been paid in full after a certain amount of time (configurable by the administrative interface) will automatically be cancelled. Reports are available through the administrative interface showing room-by-room bookings (both from the data imported from the Registrar's system and the reservations taken through this system).

Context Diagram

Develop a context diagram for our case study. This will define how our new system will interact with existing systems at the college. This context diagram is worth 5 points.

Activity Diagrams

We will next develop a set of activity diagrams for the activities that will involve our new system, including some interaction with other existing systems. These diagrams will be worth 10 points.

Use Case Diagrams

Start by reading UML 2 Use Case Diagrams at Scott W. Ambler Associates.

Develop a set of use case diagrams for our case study. You may also wish to refer to the two additional links on today's lecture page regarding UML use case diagrams. These diagrams will be worth 10 points.

UML Design Diagrams

These diagram types are described in Chapter 5 of Sommerville.

We will assume two existing "systems" here: a financial system that is involved in student payments and payroll, and a scheduling system that can be queried to determine room reservations for standard class meetings and exams.

Sequence Diagrams

Create UML sequence diagrams (see Figure 5.6) for at least two activities relevant to the room scheduling system scenario. (10 points)

Class Diagrams

Create class diagrams for the room scheduling system scenario at two levels of detail. Create a diagram like the one in Figure 5.9 to show the classes you expect would be used and their associations (10 points). Then, create a class diagram for at least two of the major classes in the system (5 points).

You are encouraged to think about which other UML diagrams in the remainder of the chapter are relevant to this scenario, and how they would be used. However, you are not required to do so.

Submitting

Before 6:00 PM, Monday, February 9, 2015, submit your lab for grading. Package up all required files into an appropriate archive format (.tar.gz, .zip, and .7z are acceptable) and upload a copy of the using Submission Box under assignment "Lab3".

Grading

This assignment is worth 50 points, which are distributed as follows:

> FeatureValueScore
Context diagram 5
Activity diagrams 10
Use Case diagrams (at least 2) 10
Sequence diagrams (at least 2) 10
Class association diagram 10
Class diagrams (at least 2) 5
Total 50

Note that the 5 points for participating in the speaker discussions is awarded separately.