ERD/DFD Assignment Sample Solutions

The assignment asks students to study the user's introductory description of a system below, and then to design and document a (preliminary) context diagram, level 1 data flow diagram, and entity relationship diagram for the system, along with suitable explanation of all the diagram elements.

In the accompanying lab session, students were also directed to describe any assumptions they found it necessary to make and to provide a list of questions for the client, to cover areas where the description seemed unclear or incomplete.


Original problem description


Timetabling and Registration System:

This system supports both the process of student registration in courses and the process of scheduling courses and assigning them to rooms.

The description here covers the relationships between courses, students, sections, instructors, rooms, and course prerequisites. The description is not meant to describe the design or decomposition of a database, just some logical requirements of the system.

The system includes (but does not have to be limited to)

Courses
The college offers a number of different courses, in different faculties and departments.

Each course has a departmental abbreviation and course number, a collection of prerequisites and/or corequisites, and a required number of hours of lecture and lab time.

In any given semester can be composed of a variety of sections, with an upper limit of 99.

Prerequisites specify both the course and a required minimum grade (defaulting to a pass).

Sections
A section is an offering of a specific course, and has a single instructor and zero or (hopefully) more students.

An instructor may be teaching multiple sections of a course, and there may be multiple instructors teaching different sections of the same course.

A student is only enrolled in one section of a course in any given semester, but may take the course repeatedly in different semesters (e.g. to improve their grade).

Each section has its own limit on the number of students who can be enrolled in it, and has specific start and end dates.

Rooms and bookings
Each room is identified by a campus, a building, a room number, and a phone extension.

Rooms can be offices, labs, meeting rooms, or classrooms, each of which has their own properties.

Meeting rooms, labs, and classrooms can be dedicated or general use. General use rooms can be booked for any courses, whereas dedicated rooms are tied to specific sets of courses or departments.

Useful room attributes to record (for aiding automated room selection) include designations for computer labs, data projectors, network capabilities, accessible hours, etc.

Offices can be associated with specific staff and faculty members, or with specific tasks or jobs.

Each section has specific weekly room bookings for lectures and labs, and there must be a means of identifying the variety of conflicts that can arise:

  • rooms booked for more students than the room capacity
  • different courses booked into the same room at the same time
  • instructors scheduled to be in two places at once
  • students registering in courses with conflicting timetables

Note that a section might be in different rooms and different time slots on different days (e.g. Mon/Wed in room xxx from 9-10:30, Fridays in room yyy from 2-3).

Students
Students can be enrolled in a variety of sections over a variety of semesters - with grades recorded for completed results (for the purposes of checking prerequisites).

Students have surnames and zero or more given names, a student number, and contact information (phone number, email address).

Instructors
Instructors can be teaching a variety of sections of one or more courses, over a variety of semesters.

Instructors have surnames and zero or more given names, an employee number, and contact information (office, email address).

Queries
Typical system actions are likely to include:
  • Updating instructor information
    A small collection of these are likely to take place each semester, as new instructors are hired, others leave, offices are changed, etc.
  • Updating course information
    A small collection of these are likely to take place each semester, as new courses are added, prerequisites changed, etc.
  • Updating student information (not including course registration)
    A large number of these are likely to take place each semester, but primarily in concentrated batches. This includes changes to student names, contact information, etc.
  • Updating section information (not including course registration)
    A large number of these are likely to take place each semester, as the new semester's offerings are determined, instructors and rooms are assigned, section sizes are determined, etc.
  • Updating enrollments
    A very large number of these are likely to take place each semester, with some periods of peak usage. This includes students registering for courses and dropping courses, the assignment/changing of grades, etc.
  • General Informational queries
    Queries for each information type are likely to be much more common and more widely distributed than updates.
  • Formal reports
    At certain times of the year large reports will be generated on the entire collection (generating the complete timetable, generating the class lists, generating grade reports, running an across-the-board pre-requisites check, etc).



SAMPLE SOLUTION

Assumptions and questions

From the client/user information obtained to date, there is some critical information missing.


Part 1: Preliminary Context diagram, DFD, and description

Note: clarifications on the points listed in the questions/assumptions section above could result in significant alterations to the models below.

Similarly, we are guessing at the actual sequencing/processes in use, based on the data and queries involved and using the (guessed) entities above. The preliminary process-based description of the system is given below.

Questions that specifically require answers are highlighted in red in the document.

Context diagram and system overview

The system is intended to model the registration and timetabling system for the university.

We make the following presumptions about who uses the system and how, with the context diagram below illustrating these uses.

Figure 1: Timetabling and registration context diagram

Note: in the context diagram above, the symbols used system are NOT consistent with those used in the data flow diagram in the sections below. This needs to be corrected for subsequent versions of this document.

Level 1 DFDs and description

Here we provide a preliminary division of the system activities into the entities (people) that use it, the key processes involved, the data stores used, and the flow of information between all those components.

First we provide a general overview, followed by the diagram to visualize the system, followed by the detailed description of all the diagram components.

Overview

The six key types of people (entities) identified are described in the context diagram above.

The six key processes identified are as follows:

Three seperate data stores are identified. The rationale is to seperate sensitive student data from the more public course offering information, and with respect to the student data it is also recommended we seperate personal information from enrolment information.

The specific flows of data between the entities, processes, and data stores are discussed in the full DFD Description following the data flow diagram below.

Level 1 dataflow diagram

To reduce diagram clutter, the data flows between components are represented as unlabeled directionl edges going from the entity that initiates communication between the two components. In fact, each such flow would also result in a response flow in the opposite direction. Both the shown flows and the response flows are discussed with the source component in the descriptions below. Fully-labelled flows in each direction are provided in the level-2 data flow diagrams where the core processes are modeled independently.

Full descriptions of the DFD components are given following the diagram itself.

Figure 2: Timetabling and registration level-1 data flow diagram

DFD Description

The DFD component descriptions are seperated into the entities, processes, and data stores.


Part 2: Preliminary ERD and description

Discussion of the ERD is broken into three parts: a general overview, the ERD diagram to support visualization of the the information, and the detailed discussion of each element of the ERD.