Project Proposal — Student Course Management System
OBJECT-ORIENTED DESIGN LABORATORY
PROJECT PROPOSAL
Student Course Management System
A console-based Java application designed with CRC cards and UML
Course Object-Oriented Design Laboratory
Project title Student Course Management System (SCMS)
Implementation Java SE, command-line interface
Design artefacts CRC cards, UML class diagram, human interaction diagram
Submitted by Saim Ahmed Emon, Md. Mahim Babu, Nur Alam Shikder
(Roll: 2211076105, 2210176124, 2210776127, Group No.: 06)
Submitted to Dr. Abu Saleh Musa Miah (Lecturer, CSE)
Department Computer Science and Engineering
Date 13.04.2026
Page 1 of 14
Project Proposal — Student Course Management System
Table of Contents
TOC \h \o "1-2"HYPERLINK "" \l "_Toc237503163"Table of Contents.... PAGEREF _Toc237503163 \h 2
1. Introduction....................................................................................................................................... 3
2. Problem Statement........................................................................................................................... 3
3. Objectives.......................................................................................................................................... 3
3.1 Functional objectives................................................................................................................... 3
3.2 Learning objectives...................................................................................................................... 3
4. Scope of the Project.......................................................................................................................... 4
5. Functional Requirements................................................................................................................... 4
5.1 Non-functional requirements...................................................................................................... 5
6. Object-Oriented Analysis................................................................................................................... 6
6.1 Noun and verb analysis................................................................................................................ 6
6.2 Identified classes......................................................................................................................... 6
7. CRC Cards.......................................................................................................................................... 7
8. UML Class Diagram............................................................................................................................ 9
8.1 Object-oriented principles applied............................................................................................ 10
9. Human Interaction Diagram............................................................................................................ 11
9.1 Menu hierarchy......................................................................................................................... 11
9.2 Interaction loop......................................................................................................................... 11
9.3 Sample session........................................................................................................................... 12
10. Implementation Plan..................................................................................................................... 12
10.1 Tools and technologies............................................................................................................ 12
11. Testing Strategy............................................................................................................................. 12
12. Expected Deliverables.................................................................................................................... 13
13. Conclusion..................................................................................................................................... 13
References........................................................................................................................................... 14
Page 2 of 14
Project Proposal — Student Course Management System
1. Introduction
The Student Course Management System (SCMS) is a console-based Java application that maintains
the academic records of a department: students, instructors, courses, enrollments and grades. The
project is undertaken as the term project of the Object-Oriented Design Laboratory, and its purpose
is as much pedagogical as functional: every requirement is deliberately expressed so that it maps
onto an identifiable class, responsibility and collaboration.
The system is developed following the responsibility-driven design method. The problem statement
is first analyzed to extract candidate classes and their responsibilities, which are recorded on CRC
(Class–Responsibility–Collaborator) cards. The cards are then refined into a UML class diagram that
fixes attributes, operations, multiplicities and inheritance. Finally, the interaction between the user
and the objects is captured in a human interaction diagram before any Java code is written.
2. Problem Statement
Academic record keeping in a small department is frequently carried out with paper registers or ad-
hoc spreadsheets. This practice has three recurring weaknesses:
• Records are duplicated and inconsistent. The same student appears in several files, and a
correction made in one place is not reflected in the others.
• Business rules are not enforced. Seat capacity, prerequisite completion and duplicate
enrollment are checked manually, so violations are discovered only after the fact.
• Reporting is expensive. Transcripts, class rosters and pass/fail statistics must be assembled by
hand each semester.
SCMS addresses these weaknesses by representing every academic entity as an object that owns its
own data and enforces its own rules, and by generating all reports from that single object model.
3. Objectives
3.1 Functional objectives
• Maintain student and instructor records with create, search, update and delete operations.
• Maintain a course catalogue with credit hours, seat capacity and prerequisite courses.
• Enroll and drop students with automatic capacity, prerequisite and duplicate validation.
• Record marks, derive letter grades and grade points, and compute semester GPA and CGPA.
• Generate transcripts, class rosters and enrollment / pass-fail summary reports.
• Persist all data to text files and reload it automatically at start-up.
3.2 Learning objectives
• Practice responsibility-driven analysis and produce a complete set of CRC cards.
• Translate a CRC model into a consistent UML class diagram.
• Apply abstraction, inheritance, polymorphism, encapsulation and composition in Java.
Page 3 of 14
Project Proposal — Student Course Management System
• Use interfaces and user-defined exceptions to separate contract from implementation.
• Design a usable text interface and validate all user input defensively.
4. Scope of the Project
Included in this project Deliberately excluded
• Student, instructor, course, enrollment and grade • Graphical or web user interface
management • Relational database and networked multi-user
• Prerequisite, capacity and duplicate-enrollment access
rules • Authentication, roles and permissions beyond a
• GPA / CGPA computation and transcript single operator
generation • Tuition payment, attendance and timetable
• Text-file persistence with exception handling scheduling
• A numbered command-line menu interface • Concurrency and transaction management
Table 1. Scope boundary of the Student Course Management System.
5. Functional Requirements
ID Requirement Description
FR-01 Add student Register a student with id, name, e-mail, department and
semester; the id must be unique.
FR-02 Search / list students Retrieve a student by id or list all students of a department.
FR-03 Update / remove student Modify editable fields, or remove a student who has no active
enrollment.
FR-04 Add course Register a course with code, title, credit hours, capacity and
prerequisite codes.
FR-05 Assign instructor Attach one instructor to a course; an instructor may teach several
courses.
FR-06 Enroll student Create an enrollment only if a seat is free, prerequisites are met
and no duplicate exists.
FR-07 Drop course Mark an active enrollment as dropped and release the seat.
FR-08 Enter marks Record obtained marks for an enrollment and derive letter grade
and grade point.
FR-09 Compute GPA Compute credit-weighted semester GPA and cumulative CGPA for
a student.
FR-10 Transcript Print all completed courses of a student with grades, GPA and
CGPA.
FR-11 Class roster Print all students enrolled in a course with their current status.
FR-12 Statistics Report seats filled, pass rate and average grade point per course.
Page 4 of 14
Project Proposal — Student Course Management System
ID Requirement Description
FR-13 Persistence Load all records at start-up and save them on exit or on demand.
FR-14 Input validation Reject malformed input and re-prompt instead of terminating the
program.
Table 2. Functional requirements of SCMS.
5.1 Non-functional requirements
• Usability: every operation is reachable within two menu levels and each error message states
the corrective action.
• Reliability: no unhandled exception may terminate the program; all file and parsing errors are
caught.
• Maintainability: one public class per file, package-based organization and Javadoc on every
public method.
• Portability: pure Java SE with no external library, so the program runs on any JDK 17 installation.
Page 5 of 14
Project Proposal — Student Course Management System
6. Object-Oriented Analysis
6.1 Noun and verb analysis
The problem statement is scanned for nouns, which become candidate classes and attributes, and
for verbs, which become candidate responsibilities. Synonyms are merged and nouns that describe a
value rather than a thing (marks, credit hours, semester) are retained as attributes rather than
promoted to classes.
Candidate nouns → classes / attributes Candidate verbs → responsibilities
• student, instructor → specializations of person • register, search, update, remove
• course, prerequisite, capacity, credit hour • enroll, drop, check seat, check prerequisite
• enrollment, semester, status • assign instructor, submit marks
• grade, marks, grade point, GPA • compute grade point, compute GPA
• transcript, roster, report • print transcript, print roster, save, load
Table 3. Noun–verb analysis of the problem statement.
6.2 Identified classes
Class Category Purpose
Person Domain Common identity data and behavior of every person in the
(abstract) system.
Student Domain A person who enrolls in courses and accumulates grades.
Instructor Domain A person who teaches courses and submits marks.
Course Domain An offered course with capacity, credits and prerequisites.
Enrollment Domain The association object linking one student to one course in one
semester.
Grade Domain Marks, letter grade and grade point awarded for an
enrollment.
SCMSystem Control Application entry point; owns the managers and the main loop.
StudentManager Control Collection-level operations on students.
CourseManager Control Collection-level operations on courses.
EnrollmentManager Control Enforces enrollment rules and creates enrollment objects.
GradeService Control Marks entry, grade mapping and GPA computation.
ReportGenerator Control Builds transcripts, rosters and statistical summaries.
ConsoleMenu Boundary Displays menus, reads choices and dispatches operations.
InputValidator Utility Type and range validation of all console input.
Page 6 of 14
Project Proposal — Student Course Management System
Class Category Purpose
FileStorage Utility Serialises and deserialises the object model to text files.
SCMSException Utility User-defined checked exception for rule violations.
Table 4. Classes identified from the analysis, grouped by architectural role.
7. CRC Cards
Each card records what a class knows and does, together with the classes it must talk to in order to
fulfil those responsibilities. Responsibilities are stated as obligations of the class itself, not as
procedures performed on it, so that data and behaviour stay together.
CRC Card 1. Person (abstract).
Person (abstract)
Responsibilities Collaborators
• Store common identity data: id, name, e-mail, • Student
phone • Instructor
• Provide a common type for all people in the
system
• Declare abstract displayInfo() and getRole()
CRC Card 2. Student.
Student
Responsibilities Collaborators
• Store department, session and current semester • Person
• Maintain the list of its own enrollments • Enrollment
• Request enrollment in a course • Course
• Compute its own CGPA / semester GPA • Grade
• Produce its own transcript
CRC Card 3. Instructor.
Instructor
Responsibilities Collaborators
• Store designation and department • Person
• Maintain the list of courses taught • Course
• Submit marks for an enrollment • Enrollment
• Grade
CRC Card 4. Course.
Course
Page 7 of 14
Project Proposal — Student Course Management System
Responsibilities Collaborators
• Store course code, title, credit hours and capacity • Enrollment
• Maintain the prerequisite course list • Student
• Report whether a seat is available • Instructor
• Add and remove enrollments
• List currently enrolled students
CRC Card 5. Enrollment.
Enrollment
Responsibilities Collaborators
• Associate exactly one Student with one Course • Student
• Store semester and status (active / dropped / • Course
completed) • Grade
• Hold the Grade awarded for that course
CRC Card 6. Grade.
Grade
Responsibilities Collaborators
• Store obtained marks and letter grade • Enrollment
• Convert marks to a letter grade and grade point • Course
• Report pass / fail status
CRC Card 7. EnrollmentManager.
EnrollmentManager
Responsibilities Collaborators
• Check seat availability before enrolling • Student
• Verify that all prerequisites are completed • Course
• Reject duplicate enrollment in the same semester • Enrollment
• Create and cancel Enrollment objects • SCMSException
CRC Card 8. ReportGenerator.
ReportGenerator
Responsibilities Collaborators
• Produce a transcript for a student • Student
• Produce a class roster for a course • Course
• Produce pass / fail and enrollment summary • Enrollment
statistics • Grade
Page 8 of 14
Project Proposal — Student Course Management System
CRC Card 9. ConsoleMenu.
ConsoleMenu
Responsibilities Collaborators
• Display the main menu and every sub-menu • InputValidator
• Read and validate the user's choice • StudentManager
• Delegate the selected operation to the correct • CourseManager
manager • EnrollmentManager
• Display results and error messages • ReportGenerator
8. UML Class Diagram
The class diagram below fixes the domain model derived from the CRC cards. Attributes are private
and operations are public, so that all invariants (seat capacity, valid marks range, unique identifiers)
are enforced inside the class that owns the corresponding data.
Figure 1. UML class diagram of the SCMS domain model.
Relationship Type Explanation
Person → Student, Instructor Generalisation Student and Instructor inherit id, name and
contact data, and override displayInfo() and
getRole().
Student → Enrollment Aggregation (1 to A student holds references to its enrollments;
0..*) the enrollments are created by
EnrollmentManager.
Course → Enrollment Composition (1 to Enrollments belong to the course; removing a
0..*) course removes its enrollments.
Page 9 of 14
Project Proposal — Student Course Management System
Relationship Type Explanation
Enrollment → Grade Composition (1 to A grade exists only within the enrollment it
0..1) belongs to.
Instructor → Course Association (1 to 0..*) An instructor is assigned to zero or more
courses.
Course → Course Reflexive association The prerequisite list refers to other Course
objects.
Table 5. Relationships in the class diagram.
8.1 Object-oriented principles applied
Principle Where it appears in the design
Abstraction Person is abstract and cannot be instantiated; it declares displayInfo() and getRole()
without implementing them.
Inheritance Student and Instructor extend Person and add only role-specific state and behaviour.
Polymorphism A List<Person> is traversed and displayInfo() dispatches to the correct override at run
time.
Encapsulation All fields are private; capacity, marks range and status transitions are checked inside
setters.
Composition Course owns its Enrollment objects and Enrollment owns its Grade, so lifetimes are
nested.
Interfaces Storable declares save() / load() and Reportable declares generateReport(),
decoupling policy from implementation.
Exception handling SCMSException, a user-defined checked exception, reports rule violations such as a
full course.
Table 6. Mapping of object-oriented principles onto the design.
Page 10 of 14
Project Proposal — Student Course Management System
9. Human Interaction Diagram
The system has a single human actor, the departmental operator. All interaction passes through
ConsoleMenu, which validates the input and then delegates to the appropriate control class; no
domain object is ever reached directly from the keyboard. FileStorage is invoked once at start-up
and once at exit.
Figure 2. Human interaction diagram: user, console boundary, control classes and storage.
9.1 Menu hierarchy
MAIN MENU
1. Student Management -> add | search | update | remove | list
2. Course Management -> add | assign instructor | list | show prerequisites
3. Enrollment -> enroll | drop | view enrollments of a student
4. Grades & GPA -> enter marks | view grades | compute GPA / CGPA
5. Reports -> transcript | class roster | course statistics
6. Save data
0. Exit (auto-save)
Figure 3. Two-level menu hierarchy of the command-line interface.
9.2 Interaction loop
display menu → read choice → validate input → invoke the responsible manager → display result or
error → return to the menu. Invalid input never terminates the program: InputValidator re-prompts
until an acceptable value is supplied, and SCMSException is caught by ConsoleMenu and shown as a
readable message.
Page 11 of 14
Project Proposal — Student Course Management System
9.3 Sample session
Select option: 3
--- ENROLLMENT ---
1. Enroll student 2. Drop course 0. Back
Select option: 1
Student ID : 2011745
Course code: CSE3211
[ERROR] Prerequisite CSE2111 not completed by student 2011745.
Enrollment rejected. Press ENTER to return to the menu.
Figure 4. Sample console session showing a rejected enrollment.
10. Implementation Plan
Phase Activity Tasks Outcome
Week 1 Analysis Problem statement, noun–verb analysis, CRC card set
complete set of CRC cards.
Week 2 Design UML class diagram, human interaction diagram, Design document
method signatures fixed.
Week 3 Core coding Domain classes, managers, menu for student, Runnable
course and enrollment modules. prototype
Week 4 Completion Grading, reports, file persistence, exception Final program +
handling, testing, documentation. report
Table 7. Four-week incremental implementation plan; each phase ends in a runnable program.
10.1 Tools and technologies
• Language and platform: Java SE 17, standard library only.
• Development: VS Code or IntelliJ IDEA; compilation with javac, execution with java.
• Modelling: [Link] for the UML class diagram and the human interaction diagram.
• Storage: plain text / CSV files handled through [Link] and [Link].
• Version control: Git, with one commit per completed CRC responsibility.
11. Testing Strategy
ID Test case Input condition Expected result
TC-01 Enroll into a course with a free seat Prerequisites satisfied Enrollment created;
seat count decreases
TC-02 Enroll into a full course capacity = enrolled count SCMSException;
enrollment rejected
Page 12 of 14
Project Proposal — Student Course Management System
ID Test case Input condition Expected result
TC-03 Enroll without prerequisite Prerequisite not completed SCMSException with
the missing course
code
TC-04 Enroll twice in one semester Active enrollment already Duplicate rejected with
exists a message
TC-05 Enter marks out of range marks = 105 Re-prompt; no grade
object created
TC-06 GPA of a student with no grade Empty grade list GPA reported as 0.00,
no arithmetic exception
TC-07 Restart the program Data saved on previous exit All records reloaded
identically
TC-08 Corrupt or missing data file File deleted manually Handled exception;
program starts with
empty records
Table 8. Representative test cases covering valid, invalid and boundary inputs.
12. Expected Deliverables
• Design document containing the complete CRC card set, the UML class diagram and the human
interaction diagram.
• Documented Java source code organised into packages, compiling without warnings.
• Sample data files and a recorded test log covering the cases in Table 8.
• A live demonstration of all six menu modules from the command line.
• This proposal together with a final project report describing deviations from the design.
13. Conclusion
The Student Course Management System is small enough to be completed within four weeks, yet its
domain contains a natural inheritance hierarchy, a genuine association class and several composition
relationships. It therefore exercises the full range of object-oriented design techniques covered in
this laboratory while keeping the implementation effort in the console, where attention stays on the
design rather than on interface code. Because the design is derived from CRC cards before coding
begins, the resulting class structure can be justified responsibility by responsibility rather than
assembled by trial and error.
Page 13 of 14
Project Proposal — Student Course Management System
References
[1] K. Beck and W. Cunningham, “A laboratory for teaching object-oriented thinking,” in Proc. OOPSLA,
1989, pp. 1–6.
[2] R. Wirfs-Brock and A. McKean, Object Design: Roles, Responsibilities, and Collaborations. Addison-
Wesley, 2003.
[3] G. Booch, J. Rumbaugh, and I. Jacobson, The Unified Modeling Language User Guide, 2nd ed.
Addison-Wesley, 2005.
[4] C. S. Horstmann, Core Java, Volume I: Fundamentals, 12th ed. Pearson, 2021.
[5] Object Management Group, OMG Unified Modeling Language Specification, version 2.5.1, 2017.
Page 14 of 14