Student Name:
Course:
CIS339
Session (month, year):
03/2019
Object-Oriented System Analysis and Design
The School of Prosperity
Student Records System (SRS)
Week1—System Request3
Week2—Use Case Diagram AND Use Cases Descriptions5
Week3—Class Diagram AND CRC Cards9
Week4—Sequence, Communication, and State Machine Diagrams15
Week5—Package Diagram19
Week6—Method Contract AND Method Specification21
Week7—Object-Oriented Application Coding24
Week 1—System Request
1
Use this system request template and complete the SRS system request.
System Request—
Project sponsor:
School of Prosperity (SoP)
Business Need:
The existing desktop system will be upgraded to web-based application and this system will be used to maintain records of students, courses, classes, and student registration and grades.
Business Requirements:
The system is capable of having the following functonalities:
· Accessibility over the Internet
· Maintains records of school students
· Maintains records of courses offered by school
· Maintain records of classes offered of the above courses (both online and face-to-face classes)
· Students registration system is included as well
Business Value:
Conservative estimates of tangible value to the company include:
· The SRS will enable the school to continue the expansion of its student population and to effectively manage the expansion
· Eliminate many school staff hours re-entering paper form student registrations by allowing the students to self-register
· Make the system easy to access from anywhere there is an Internet connection and a web browser
Special Issues or Constraints:
· The SRS must be able to handle both online and face-to-face class offerings
· The system must be accessible over the Internet to both school staff and students each with appropriate permissions
· The SRS must try to integrate with and re-use existing desktop application code and database as much as possible to reduce development cost
2
Validate and verify that your system request addresses the SRS Preliminary Planning Overview.
The business need area explains what the SoP is requiring the system to operate. The business requirements consist of what the system must be able to handle and the expectations of the system (once it’s completed). The business value breaks down the details of information that the new system will save on both staff hours and finances for the school. The issues area give problems that could exist once the system is implemented.
3
Explain how you completed your work, the decisions you made to arrive at your conclusions, and the lessons you learned.
I, carefully, read the SRS Preliminary Planning Overview and highlighted the important business needs that the SRS system is to meet. I then started to complete the various sections of the System Request Form and while doing so, I referred back to the SRS overview document to confirm my conclusions and understanding. The result of this iterative process is the current Syste.
Student Name CourseCIS339Session (month, year)032019.docx
1. Student Name:
Course:
CIS339
Session (month, year):
03/2019
Object-Oriented System Analysis and Design
The School of Prosperity
Student Records System (SRS)
Week1—System Request3
Week2—Use Case Diagram AND Use Cases Descriptions5
Week3—Class Diagram AND CRC Cards9
Week4—Sequence, Communication, and State Machine
Diagrams15
Week5—Package Diagram19
Week6—Method Contract AND Method Specification21
Week7—Object-Oriented Application Coding24
Week 1—System Request
1
Use this system request template and complete the SRS system
request.
System Request—
Project sponsor:
School of Prosperity (SoP)
Business Need:
2. The existing desktop system will be upgraded to web-based
application and this system will be used to maintain records of
students, courses, classes, and student registration and grades.
Business Requirements:
The system is capable of having the following functonalities:
· Accessibility over the Internet
· Maintains records of school students
· Maintains records of courses offered by school
· Maintain records of classes offered of the above courses (both
online and face-to-face classes)
· Students registration system is included as well
Business Value:
Conservative estimates of tangible value to the company
include:
· The SRS will enable the school to continue the expansion of
its student population and to effectively manage the expansion
· Eliminate many school staff hours re-entering paper form
student registrations by allowing the students to self-register
· Make the system easy to access from anywhere there is an
Internet connection and a web browser
Special Issues or Constraints:
· The SRS must be able to handle both online and face-to-face
class offerings
· The system must be accessible over the Internet to both school
staff and students each with appropriate permissions
· The SRS must try to integrate with and re-use existing desktop
application code and database as much as possible to reduce
development cost
3. 2
Validate and verify that your system request addresses the SRS
Preliminary Planning Overview.
The business need area explains what the SoP is requiring the
system to operate. The business requirements consist of what
the system must be able to handle and the expectations of the
system (once it’s completed). The business value breaks down
the details of information that the new system will save on both
staff hours and finances for the school. The issues area give
problems that could exist once the system is implemented.
3
Explain how you completed your work, the decisions you made
to arrive at your conclusions, and the lessons you learned.
I, carefully, read the SRS Preliminary Planning Overview and
highlighted the important business needs that the SRS system is
to meet. I then started to complete the various sections of the
System Request Form and while doing so, I referred back to the
SRS overview document to confirm my conclusions and
understanding. The result of this iterative process is the current
System Request Form.
Week 2—Use Case Diagram and Use Cases Descriptions
1
Generate a use case diagram for all of your use cases, including
their actors. The diagram must be generated by a UML drawing
tool. Copy and paste your diagram here:
SRS Use Case Diagram
4. Use this use case description template and complete the two
SRS use cases of (1) Maintain Class Records and (2) Register a
Student for Classes.
Maintain Class Records
Use Case Name: Maintain Class Records
ID: 1
Importance Level: 1
Primary Actor: Staff Member
Use Case Type: Fully Dressed
Stakeholders and Interests: Staff Members, Student, Teacher
Brief Description: This use case covers the maintenance of
student records. It covers adding, updating and deleting student
records.
Trigger: Maintain Student Record Button
Type: Fully Dressed
Relationships:
Association:
Include: Enter courseID
Extend: Add Record, Update Record, Delete Record
Generalization:
Normal Flow of Events:
1. Staff Members log ins to the system.
2. Enter Course ID
3. A list of all classes for that course are then displayed.
4. If the class is to be maintained, select update or delete
5. If the user selected to add the class.
5. 6. Enter Class type(Online / Face to Face), then 6.1
7. Enter CourseID
8. Enter Class begin Date
9. Enter Class end Date
10. Save the record
SubFlows:
4.1. If the user selected update
4.2. If the user selected delete
6.1. If the class is Online
6.2. If the class is face-to-face
Alternate/Exceptional Flows:
4.2.1. User can see all records in editable form. User will
update any record and click save.
4.2.2. A respective record with entered courseID will be
deleted.
6.1.1. Enter Class URL
6.1.2. Enter Class Browser
6.2.1. Enter Class Building.
6.2.2. Enter Class Room.
Register a Student for Classes
Use Case Name: Register a student
ID: 2
Importance Level: 1
Primary Actor: Staff Member
Use Case Type: Fully Dressed
Stakeholders and Interests: Staff Member/ Student
Brief Description: This use case covers the registration process
of a student using SRS.
Trigger: Register Student Button
6. Type: Fully Dressed
Relationships:
Association:
Include:
Extend:
Generalization:
Normal Flow of Events:
1. A staff member or student logs into the system.
2. A list of available courses offered are displayed.
3. User selects a course from the list and all the offered classes
for the course are displayed.
4. User can select class from the class list.
5. The selected class to registration for is then validated against
the registration rules
6. When the registration is valid against the rules, a registration
record is created and a message is then displayed to confirm
registration.
7. If registration is successful, one is added to the number of
students that have enrolled in the class.
8. After the student completes the class, his registration record
is updated with a grade. But the student has the option of
dropping the class while taking it.
SubFlows:
5.1. No duplicate registration for the same class
5.2. Online classes registration requires students
acknowledgement that they have the required hardware and
software to access online classes
5.3. No more than three class registration for open classes
unless student GPA is greater than 3.0. Then the student can
take four classes.
5.4. The student has taken any required pre-requisite course.
Alternate/Exceptional Flows:
6.1. A message explaining the violation of the associated rule is
displayed.
7. 2
Validate and verify your use case diagram and use case
descriptions against the SRS Requirement Definition and the
SRS System Request.
SRS has 4 major functionalities which are covered in the 4 use
cases, which are as follows:
Functionality
Covered in Usecase
Maintain Student Records
Maintain Student Records
Maintain Course Records
Maintain Course Records
Maintain Class Records
Maintain Class Records
Register a Student for Classes
Register a Student for Classes
3
Explain how you completed your work, the decisions you made
to arrive at your conclusions, and the lessons you learned.
I first read the case thoroughly and then listed all the functional
and non-functional requirements on the page. Then I extracted
the major use-cases from them. After that I generated the flows
for those use cases. After extraction of the major use-cases and
their actors I build a use-case diagram and after getting the
flows I end up getting the fully dressed use cases.
Week 3—Class Diagram and CRC Cards
1
Generate a class diagram for the SRS system. The diagram must
be generated by a UML drawing tool. Copy and paste your
diagram here:
8. SRS Class Diagram
Use this CRC template and complete a CRC card for each class
you designed in your SRS class diagram.
Class1 CRC Card
Front:CRC01
Class Name: Student
ID: 01
Type:
Description: This class will keep track of students
Associated Use Cases:
Maintain student records
Responsibilities
Add Student
Remove Student
Search Student
Collaborators
Back:CRC01
Attributes:
studentID, FirstName, MiddleInit, LastName, Department,
DOB, GPA
Relationships:
Generalization (a-kind-of):
Aggregation (has-parts):
9. Register Student
Other Associations:
Class2 CRC Card
Front:CRC02
Class Name: Course
ID:
Type:
Description: This class will keep track of all courses
Associated Use Cases:
Maintain course records
Responsibilities
Add course
Update Course
Remove Course
Collaborators
Back:CRC02
Attributes:
CourseID
CourseName
CreditHours
Description
Prerequisite
Relationships:
Generalization (a-kind-of):
Aggregation (has-parts):
Class, Register
Other Associations:
10. Class3 CRC Card
Front:CRC03
Class Name: Class
ID: 3
Type:
Description:
This class will keep track of all classes
Associated Use Cases:
Responsibilities
Add class
Remove Class
Collaborators
Back:CRC03
Attributes:
CourseID
BeginDate
EndDate
ClassURL
ClassBuilding
ClassRoom
Relationships:
Generalization (a-kind-of):
Aggregation (has-parts):
Course
Other Associations:
11. Class4 Register
Front:CRC04
Class Name: Register
ID: CRC04
Type:
Description: This will register students in classes
Associated Use Cases:
Register Student
Responsibilities
Assign student in classes
Collaborators
Back:
Attributes:
CourseID
StudentId
Relationships:
Generalization (a-kind-of):
Aggregation (has-parts):
Other Associations:
2
Validate and verify your class diagram and CRC cards against
the SRS use case diagram and use case descriptions.
There are 4 major use cases, so for each case there can only be
one class, because each use case is about updating the entries
for one entity.
12. There is one CRC card for each class and every detail about that
class is written there.
3
Explain how you completed your work, the decisions you made
to arrive at your conclusions, and the lessons you learned.
The decisions I made are quite simple. Because I created all the
necessary classes and made the association relations in between
them. Then I made CRC cards for those classes.
Week 4—Sequence, Communication, and State Machine
Diagrams
1
Generate a sequence diagram for the SRS system Register a
Student for Classes use case. The diagram must be generated by
a UML drawing tool. Copy and paste your diagram here:
Sequence Diagram for the Register a Student for Classes Use
Case
Generate a communication diagram for the SRS system Register
a Student for Classes use case. The diagram must be generated
by a UML drawing tool. Copy and paste your diagram here:
Communication Diagram for the Register a Student for Classes
Use Case
13. Generate a state machine diagram for the SRS system
RegistrationRecord object/class (the class that maintains the
registration of a student in a class). The diagram must be
generated by a UML drawing tool. Copy and paste your diagram
here:
State Machine Diagram for the RegistrationRecord Object
2
Validate and verify your behavioral diagrams against the SRS
Register a Student for Classes use case description and the SRS
class diagram.
All the diagrams match with the specifications in SRS. As in the
communication diagram all the communication path of register a
student use case is shown. Moreover in the sequence diagram
the path of use case Register a student is shown according to the
classes in class diagram. In state diagram all the states are
shown in a sequential way.
3
Explain how you completed your work, the decisions you made
14. to arrive at your conclusions, and the lessons you learned.
I just understood the use case register a student and its path,
after that I mapped that path in the form of classes in the class
diagram. After that according to the paths and classes I mapped
these in the form of diagrams.
Week 5—Package Diagram
1
Generate a package diagram for the SRS system. The diagram
must be generated by a UML drawing tool. Copy and paste your
diagram here:
SRS Package Diagram
2
Validate and verify your package diagrams against the SRS
class diagram and the SRS Register a Student for Classes use
case sequence and communication diagrams.
All the classes in package diagram are also a part of class
diagram, and all the classes in class diagram are also a part of
package diagram
Hence the verification and validation is successful.
3
Explain how you completed your work, the decisions you made
15. to arrive at your conclusions, and the lessons you learned.
I first see the class diagram and split that in different packages.
I followed the design of MVC that we have different classes for
model view and controller. Model is responsible for interacting
with the database, view is responsible for interacting with end
user, while controller is the one which is responsible for
interaction between model and view.
So I separated the classes for model, view and controller. The
classes which are necessary for model, are added in model
package. The classes which are necessary for controller, are
added in model controller. The classes which are necessary for
view, are added in view package.
Week 6—Method Contract and Method Specification
1
Use this method contract template and complete a method
contract for the GetCourseByCourseID() method of the
CourseList class.
CourseList.GetCourseByCourseID() Method Contract
Method Name:
Class Name:
ID:
Clients (Consumers):
Associated Use Cases:
Description of Responsibilities:
Arguments Received:
Type of Value Returned:
16. Pre-Conditions::
Post-Conditions:
Use this method specification template and complete a method
specification for the GetCourseByCourseID() method of the
CourseList class.
CourseList.GetCourseByCourseID() Method Specification
Method Name:
Class Name:
ID:
Contract ID:
Programmer:
Date Due:
Programming Language:
Visual Basic Smalltalk C# Java
Triggers/Events:
Arguments Received:
Data Type:
Notes:
Messages Sent & Arguments Passed:
ClassName.MethodName:
18. Misc.Notes:
2
Validate and verify your method contract and method
specification against the CRC card for the CourseList class and
the CRC card for the Course class.
3
Explain how you completed your work, the decisions you made
to arrive at your conclusions, and the lessons you learned.
Week 7—Object-Oriented Application Coding
1
Copy your code text of the CourseList.GetCourseByCourseID()
method and paste it here:
Code Text of Your CourseList.GetCourseByCourseID() Method
19. Copy a screenshot of running the unit test of the
CourseList.GetCourseByCourseID() method and paste it here:
Screenshot of running the Unit Test of
CourseList.GetCourseByCourseID() Method
20. Zip all the files you used in this coding project; copy and paste
the *.zip file here so that it can be unzipped and loaded into the
IDE and run on another computer:
A *.zip File of all of the Coding Project Files
2
Validate and verify your code and screenshot of the
CourseList.GetCourseByCourseID() method against the method
contract and the method specification of the same method.
3
Explain how you completed your work, the decisions you made
to arrive at your conclusions, and the lessons you learned.
Page 26 of 27
21. PSSM Case Study, complete
Method Specification TEMPLATE
Method Name:
Class Name:
ID:
Contract ID:
Programmer:
Date Due:
Programming Language:
X Visual Basic Smalltalk C++ Java
Triggers/Events:
Arguments Received:
Data Type:
Notes:
Messages Sent & Arguments Passed:
ClassName.MethodName:
Data Type:
Notes:
23. Front:
Class Name: CourseList
ID: 2
Type: Concrete, Domain
Description:
This class maintains a list of courses that the Staff can use to
retrieve a course.
Associated Use Cases:
Maintain Course
Responsibilities
GetCourseByCourseID (string id)
Collaborators
Back:
Attributes:
For testing purposes, the CourseList will have an array
CourseArray that is initialized with some test courses when an
instance of the CourseList is created. This way we will have an
already populated CourseList class with a number of Course
objects. Here is a demonstration in Java:
class CourseList
{
public Course[] CourseArray =
{
24. new Course (“CIS 400”, "OO Analysis & Design", 4,
"Important class", “CIS 110”) ,
new Course (“CIS 150A” , "VB.NET Programming", 4,
"Good Introduction to programming", “CIS 100”) ,
new Course (“CIS 150B”, "C# Programming with labs", 4,
"Follow-up to CIS 100", “CIS 100”)
};
public CD GetCourseByCourseID (string id)
{
// ToDO
}
}
Relationships:
Generalization (a-kind-of):
Aggregation (has-parts):
Other Associations: Course
Week 6
Sequence Diagram for the Maintain Course Use Case
Contracts TEMPLATE
Method Name:
Class Name:
ID:
Clients (Consumers):
25. Associated Use Cases:
Description of Responsibilities:
Arguments Received:
Type of Value Returned:
Pre-Conditions:
1.
Post-Conditions:
1.