University of the People
CS 4403- Software Engineering 2
Programming Assignment Unit 3
Instructor (Muhammad Anwar Shahid)
Introduction
In the appendix of our textbook, we are given a variety of problems to choose from in order to
perform structured analysis. For this assignment, I have chosen the Course Registration
System. My goal is to analyse and design the data and processes that can be developed
to automate an application that can perform course registration (Conger, 2008).
Structured Analysis
Structured analysis is a systematic approach to understanding and modelling a system. It involves
identifying the system's components, their relationships, and the data that flows
between them. Structured analysis is typically used to develop software applications,
but it can also be used to analyse other types of systems, such as business processes
and organizational structures. This can be done using a variety of tools and techniques,
such as entity-relationship diagrams (ERDs), data flow diagrams (DFDs), and
structured charts.
Course Registration System
The Course Registration System is a software application that allows students to register for
courses, view their course schedules, and drop courses. The system also allows
instructors to create and manage courses, view student enrolment lists, and submit
grades. Administrators can use the system to add and remove courses, manage
instructors, and generate reports.
Context diagram
A context diagram is a high-level graphical representation of a system and its external environment.
It shows the system's boundaries, the external entities that interact with the system, and the
data flows between the system and the external entities (Conger, 2008). Context diagrams
are used to understand the scope of a system, to identify the system's stakeholders, and to
communicate the system's purpose and functionality to stakeholders. Context diagrams can
also be used to identify opportunities for improvement and to document the system's
requirements.
Student
Request registration & confirmation
Check course availability
Enrolment & Grades
Registration request
Course reports
Check course
prerequisites
report
registration status request
St
Enter Grades Student
Course ud
en Course
Instructors Student registration Registration Ch
t Registrar
status & Grades report System ec
re
k
po
Student course registration report Gra
stu
rts
de
des
nt
Ma
View student course data
fee
nag
sta
em
Get student data
tus
ent
Student
information
system
Data dictionary
A data dictionary is a repository of information about the system's data. It includes the names,
definitions, and data types of all of the system's data elements.
Student data entities
Student
Field Name Data Type Field Size Format Key Definition/Description
Student_ID Text 9 PK Unique Identifier for each
student
First_Name Text 25 Student’s first name
Last_Name Text 25 Student’s last name
Study_year Number 2 11 Student’s year of study
Email Text 30 Student’s email
Course_ID Text 10 FK Unique Identifier for each
course
Instructor data entities
Instructor
Field Name Data Type Field Size Format Key Definition/Description
Instuctor_ID int 8 PK Unique Identifier for each course
instructor
First_Name Text 25 Instructor’s first name
Last_Name Text 25 Instructor’s last name
Email Text 30 Instructor’s email
Course data entities
Course
Field Name Data Type Field Size Format Key Definition/Description
Course_ID Text 10 PK Unique Identifier for each course
Course_Name Text 25 Course name
Prerequisite Text 25 Prerequisite details
Fee Currency 5 $1111 Fee for each course
Instuctor_ID int 8 FK Unique Identifier for each course
instructor to the course table
Sem_ID Text 5 FK Unique Identifier for each semester
when course offered to the semester
table
Semester data entities
Semester
Field Name Data Type Field Size Format Key Definition/Description
Sem_ID Text 5 PK Unique Identifier for each semester
Sem_Name Text 25 Name of semester
Start_date Date/Time dd-mm- Starting date of semester
yyyy
End_date Date/Time dd-mm- End date of semester
yyyy
Academic_year Text 10 Academic Year for semester
Billing data entities
Billing
Field Name Data Type Field Size Format Key Definition/Description
Billing_ID Text 5 PK Unique Identifier for each Billing
Student_ID TEXT 9 FK Unique Identifier for each student
whose fee is due
Course_ID Text 10 FK The course for which the invoice
was issued
Billing_Date Date/Time dd-mm- Invoice issue date
yyyy
Registration data entities
Registration
Field Name Field Type Field Size Format Key Definition/Description
Student_ID TEXT 9 FK Unique student ID, enrolment
information for student
Course_ID Text 10 FK Unique course ID link to course
table
Sem_ID Text 5 FK Unique Semester ID, link to the
semester table
Registration_Date Date/Time dd-mm- Student’s course registration date
yyyy
fee_Status Boolean Yes/No if all fee is paid or not
Registration_Statu Boolean Yes/No if enrolled in course or not
s
Data Flow Diagram (DFD)
A DFD shows the system's internal processes and the data that flows between them. A DFD
is typically drawn at multiple levels, with each level providing more detail than
the previous level.
Student (Requests for course registration)
System gets student data entities
Checks for the various criteria’s (course availability, students’ prerequisites)
Creation of enrolment list.
Acknowledgement to the student.
Billing information creation for the student.
Update of information to the databases.
Fee Status
Check Fees status 1.1
Fees status confirmed
Students
[Link]
availability Check 1. Course Request for registration
Registration
System Update
Confirmed Students
Database
3. Check
Create
prerequisite Update
Send notification to
student send 4.
Registration
Student
Reports
course
Feedback information
Send notification to
student Course
Completion
Structural analysis for the Course Registration System involved:
Identifying the different entities in the system. What are the different things that the system needs
to keep track of? This could include students, courses, instructors, departments, and
semesters.
Identifying the relationships between the different entities. How are the different entities related
to each other? For example, a student can register for many courses, and a course can be
taught by many instructors.
Identifying the different processes in the system. What are the different things that the system
needs to do? This could include course registration, course cancellation, and grade
reporting.
Identifying the data flows between the different processes. What data needs to be exchanged
between the different processes? For example, when a student registers for a course,
the system needs to update the student's registration record and the course's enrollment
record.
Identifying the different components of the system. What are the different pieces of software or
hardware that make up the system? This could include the database, the user interface,
and the application server.
Identifying the interfaces between the different components. How do the different components
communicate with each other? For example, the user interface needs to interface with
the application server to get a list of courses and to register students for courses.
References
Conger, S. (2008). The new software engineering. GlobalText Project.
LucidChart. (n.d.). Data flow diagram examples, symbols, types, and tips.
[Link]
Peng, Y., Liu, N., Li, Y., & Shao, Z. (2012, May). Design and implementation of the online
course registration system at Tsinghua University. In 2012 International
Conference on Systems and Informatics (ICSAI2012) (pp. 1179-1182). IEEE.