Assignment 2 -60-322 -Object Oriented Design
0360-322 Fall 2017
Part I: Individual Assignment.
Each student should submit his/her answers to the following questions.
1. When identifying use cases, we find a recurring pattern. For any type of object—like inventory items (guitar), a record in a database table, and so on—we will usually have to create an item, retrieve an item, update an item, and delete an item. These are called the CRUD operations. There are three options for writing use cases in this situation:
a. Write a separate use case for each operation.
Answer:
Use Case: Create a course in a Schedule
Scope: Create a course in a Schedule
Level: user goal
Primary Actor: Student
Preconditions: Student is identified and authenticated.
Postconditions: Schedule is created and course is added.
Main Success Scenario
1. The student enters 5 primary course offering numbers.
2. The student then submits the request for courses.
3. The system Checks that prerequisites are satisfied for the requested course.
4. The system Adds the student to the course offering if the course offering is open.
Extensions (or Alternate Flow)
2A.If a primary course offering is not available, the system will substitute an alternate course offering.
Use Case: Update a Schedule
Scope: Update a Schedule
Level: user goal
Primary Actor: Student
Preconditions: Student is identified and authenticated.
Postconditions: Schedule is updated.
Main Success Scenario
1. The student indicates which course offerings to update.
2. The system checks that the final date for changes has not been exceeded.
3. The system verifies that the maximum course load has not been exceeded.
4. The system checks that prerequisites are satisfied for the requested course.
5. The system adds the student to the course offering if it is open.
Extensions (or Alternate Flow)
1A.If a primary course is not available, the system will prompt the Student ‘course is not found’.
Use Case: Retrieve (or Read) a Schedule
Scope: Retrieve (or Read) a Schedule
Level: user goal
Primary Actor: Student
Preconditions: Student is identified and authenticated.
Postconditions: Schedule is retrieved.
Main Success Scenario
1. The student requests information on all course offerings in which the student is registered for a given semester.
2. The system displays all courses for which the student is registered including course number, course name, number of credit hours.
Extensions (or Alternate Flow)
1A.If a primary course is not available, the system will prompt the Student ‘course is not found’.
Use Case: Delete a course in the Schedule
Scope: Delete a course in the Schedule
Level: user goal
Primary Actor: Student
Preconditions: Student is identified and authenticated.
Postconditions: Course is deleted.
Main Success Scenario
1. The Student selects the ‘delete a course’
2. The system retrieves and displays on the screen the Student current schedule.
3. The Student selects ‘delete’
4. The system prompts the Student to verify the deletion.
5. The Student verifies the deletion.
6. The system deletes the schedule.
7. The system notifies the student that the request has been processed
Extensions ( or Alternate Flow)
2A.If the course is not found in the schedule, the system will prompt the Student ‘course is not found’.
b. Write one use case for all the operations (a CRUD use case).
Answer:
Option 1: separate main flow for each kind CRUD
Use Case: CRUD a course in a Schedule
Scope: Create, Delete or Retrieve (or Read) a course in a Schedule
Level: user goal
Primary Actor: Student
Stakeholders and Interest
1. Student: Wants to register to take courses at the University.
2. Professor: Wants to teach at the University and select courses to teach.
3. Registrar: Wants to be responsible for the maintenance of the Registration system. And create a course catalogue. And maintain professor and student information.
4. Billing System: external system that bills students each semester.
Preconditions: Student is identified and authenticated.
Postconditions: A course in Schedule is Created, Deleted, Updated or Retrieved (or Read).
Main Success Scenario
1. The student enters the student id number.
2. The system verifies that the student id number is valid
3. The system prompts the student to select the semester.
4. The student enters the desired semester.
5. The system prompts the student to select the desired activity: Create a schedule or Add a course, retrieve a schedule or Delete a course.
6. Create a schedule or Add a course.
a. Checks that prerequisites are satisfied for the requested course.
b. Adds the student to the course offering if the course offering is open.
7. Retrieve a schedule.
a. The student requests information on all course offerings in which the student is registered for a given semester.
b. The system displays all courses for which the student is registered including course number, course name, number of credit hours.
8. Update a course in a schedule
a. The student indicates which course offerings to update.
b. The system checks that the final date for changes has not been exceeded.
c. The system verifies that the maximum course load has not been exceeded.
d. The system checks that prerequisites are satisfied for the requested course.
e. The system adds the student to the course offering if it is open.
9. Delete a course in a schedule
a. The Student selects the ‘delete schedule’
b. The system retrieves and displays on the screen the Student current schedule.
c. The Student selects ‘delete’
d. The system prompts the Student to verify the deletion.
e. The Student verifies the deletion.
f. The system deletes the schedule.
g. The system notifies the student that the request has been processed
10. The student indicates that the activity is complete.
11. The system will print the student schedule and notify the student that registration is complete
12. The system sends billing information for the student to the billing system for processing.
Extensions (or Alternate Flow)
1A. If an invalid id number is entered, the system will not allow access to the registration system.
6A. If an attempt is made to create a course which already exists, the system will prompt for a second choice to be made.
7A. If an attempt is made to retrieve a schedule for a semester where a course in a schedule does not exist, the system will prompt for a second choice to be made.
8A. If an attempt is made to delete a course where this course does not exist, the system will prompt for a second choice to be made.
.
Option 2: placing one of the operations as a main flow in the use case and other as extending flows(CRUD)
Use Case: CRUD a course in a Schedule
Scope: Create, Delete or Retrieve (or Read) a course in a Schedule
Level: user goal
Primary Actor: Student
Stakeholders and Interest
5. Student: Wants to register to take courses at the University.
6. Professor: Wants to teach at the University and select courses to teach.
7. Registrar: Wants to be responsible for the maintenance of the Registration system. And create a course catalogue. And maintain professor and student information.
8. Billing System: external system that bills students each semester.
Preconditions: Student is identified and authenticated.
Postconditions: A course in Schedule is Created, Deleted, Updated or Retrieved (or Read).
Main Success Scenario
1. The student enters the student id number.
2. The system verifies that the student id number is valid
3. The system prompts the student to select the semester.
4. The student enters the desired semester.
5. The system prompts the student to select the desired activity: Create a schedule or Add a course, retrieve a schedule or Delete a course.
6. Create a schedule.
a. Checks that prerequisites are satisfied for the requested course.
b. Adds the student to the course offering if the course offering is open.
7. The student indicates that the activity is complete.
8. The system will print the student schedule and notify the student that registration is complete
9. The system sends billing information for the student to the billing system for processing.
Extensions (or Alternate Flow)
1A. If an invalid id number is entered, the system will not allow access to the registration system.
5A. Retrieve a schedule.
5.A.1 The student requests information on all course offerings in which the student is registered for a given semester.
5.A.2 The system displays all courses for which the student is registered including course number, course name, number of credit hours.
5.B. Update a course in a schedule
5.B.1. The student indicates which course offerings to update.
5.B.2. The system checks that the final date for changes has not been exceeded.
5.B.3. The system verifies that the maximum course load has not been exceeded.
. 5.B.4. The system checks that prerequisites are satisfied for the requested course.
5.B.5. The system adds the student to the course offering if it is open.
5.C. Delete a course in a schedule
5.C.1. The Student selects the ‘delete schedule’
5.C.2. The system retrieves and displays on the screen the Student current schedule.
5.C.3. The Student selects ‘delete’
5.C.4. The system prompts the Student to verify the deletion.
. 5.C.5. The Student verifies the deletion.
. 5.C.7. The system deletes the schedule.
5.C.8. The system notifies the student that the request has been processed
6A. If an attempt is made to create a course which already exists, the system will prompt for a second choice to be made.
c. Omit the use cases from the specification.
Answer:
Use Case: CRUD a course in a Schedule
Scope: Create, Delete or Retrieve (or Read) a course in a Schedule
Level: user goal
Primary Actor: Student
Stakeholders and Interest
1. Student: Wants to register to take courses at the University.
2. Professor: Wants to teach at the University and select courses to teach.
3. Registrar: Wants to be responsible for the maintenance of the Registration system. And create a course catalogue. And maintain professor and student information.
4. Billing System: external system that bills students each semester.
Preconditions: Student is identified and authenticated.
Postconditions: A course in Schedule is Created, Deleted, Updated or Retrieved (or Read).
Main Success Scenario
1. The student enters the student id number.
2. The system verifies that the student id number is valid
3. The system prompts the student to select the semester.
4. The student enters the desired semester.
5. The system prompts the student to select the desired activity: Create a schedule or Add a course, retrieve a schedule or Delete a course.
6. Checks that prerequisites are satisfied for the requested course.
7. Adds the student to the course offering if the course offering is open.
8. The student requests information on all course offerings in which the student is registered for a given semester.
9. The system displays all courses for which the student is registered including course number, course name, number of credit hours.
10. The student indicates which course offerings to update.
11. The system checks that the final date for changes has not been exceeded.
12. The system verifies that the maximum course load has not been exceeded.
13. The system checks that prerequisites are satisfied for the requested course.
14. The system adds the student to the course offering if it is open.
15. The Student selects the ‘delete schedule’
16. The system retrieves and displays on the screen the Student current schedule.
17. The Student selects ‘delete’
18. The system prompts the Student to verify the deletion.
19. The Student verifies the deletion
20. The system deletes the schedule.
21. The system notifies the student that the request has been processed
22. The student indicates that the activity is complete.
23. The system will print the student schedule and notify the student that registration is complete
24. The system sends billing information for the student to the billing system for processing. .
Extensions (or Alternate Flow)
1A. If an invalid id number is entered, the system will not allow access to the registration system.
6A. If an attempt is made to create a course which already exists, the system will prompt for a second choice to be made.
10A. If an attempt is made to retrieve a schedule for a semester where a course in a schedule does not exist, the system will prompt for a second choice to be made.
13A. If an attempt is made to retrieve a schedule for a semester where a course in a schedule does not exist, the system will prompt for a second choice to be made.
17A. If an attempt is made to delete a course where this course does not exist, the system will prompt for a second choice to be made.
Which of the choices do you think is most appropriate in general? Why?
Answer:
The most appropriate choice in general (writing one use case for all the operations) PART B
we create a single use case CRUD, and present all operations as separate main flow for each kind of that is sub-goal for CRUD which somehow disagree with the idea of use cases but at the same time this will reduce the number of use cases up to four times. Also as a second option In second case (part b) we can consider placing one of the operations as a main flow and other as extending flows.
2. Suppose you amassed many thousands of digital pictures. You’d like a program to help organize, catalog, and manage your files. You plan on offering gallery-quality images for sale on a web site (that will come later). You need as much flexibility as possible in cataloging the photos as well as locating just the perfect photograph, based upon some sort of specification. There are many things that might be important for your specific needs.
a. You may have used some programs that let you manage digital photographs and liked many of their features or found some of them lacking. Do some research on two or three programs and construct a table that shows the features available for each of the programs.
Answer:
Adobe lightroom6 Imatch5 Serif PhotoStack
Panorama Merge: instead of selecting files in Lightroom and going into Photoshop to merge panoramas, you can now do it directly in Lightroom without ever opening Photoshop.
This software does not require you to import your photos to a database like other photo organizers do. Smart Album, this software creates automatically groups images together in terms of the criteria you set.
b. Write down the features you think are important in the program you want to have developed to manage your photographs. Describe each feature briefly (one or two sentences) to make sure the programmer has enough to know what they don’t know.
Answer:
1. search image by location
2. Color adjustment
3. Video editing
4. Online storage
5. create slideshow
6. Adding cosmetics
7. High resolution images
8. Use auto tags, stamp and date.
c. Take the features from your list in (b) and rank them from the most important to the least important. That is, the most important one is something that the program must have, or you won’t pay for it. As you go down the list, you should get to things that you could be talked out of if it really would cost too much, as well as things that would be nice to have (like perhaps the ability to add voice files to describe the photo) that you really could do without, but that would delight you if they were there.
Answer:
1. Online storage
2. Search image by location
3. Color adjustment
4. Adding cosmetics
5. Video editing
6. Use auto tags, stamp and date.
7. Create slideshow
d. If you are the project manager who is responsible for developing the photo manager, how would you organize all the development activities (hint: look “up”)?
Answer:
If I’m going to develop the photo manager, and to do that I need someone who has a good experience in developing this kind of programs. My main aim from this course is to learn how to design UML pattern, to make users more convenient and more satisfied for them to use photo manager with less cost.
3. Does it make sense to count the number of paths through a use case (that is, the number of scenarios)? Why or why not?
Answer:
Yes, it does make sense to count the number of paths through a use case and it is the right thing to choose a basic flow, one scenario covering each alternative flow, and use some reasonable combinations of alternative flows we have.
In addition, we need to identify all of the scenarios for the given use case and to find all scenarios, we need to find out all possible ways What should we do if we have infinite loops, and these loops are going backwards? Theoretically it would generate an infinite number of scenarios.
Therefore, the easiest away and the reasonable approach to describe a scenario is to provide a sequence of alternative flows and do the basic flow once, do a loop once, and then do a loop a second time. If the program works for both instances of the loop, we can assume it will work for all of them.
Part II: Project Assignment.
Each project group should submit answers to the following questions. In the submission, please indicate the relative % effort spent by each team member and which member works on which answer(s).
4. Identify 4 possible use cases in your proposed project, and write them in causal format. Pick the most important one and explain why it is chosen. Write it in fully-dressed format (will be possibly used for future assignment).
5. Time to do some OOA. Based on the fully-dressed use case in Q5 above and bounded by it, construct a domain model. Follow all the guidelines in Ch. 9.
Answer
In causal format(same page 63 text book):
Use Case (Option #1)
Use Case: register or drop a course in a Schedule
Scope: Create, Delete, update or Retrieve a course in a Schedule
Level: user goal
Primary Actor: Student
Stakeholders and Interest
1. Student: Wants to register to take courses at the University.
2. Professor: Wants to teach at the University and select courses to teach.
3. Registrar: Wants to be responsible for the maintenance of the Registration system. And create a course catalogue. And maintain professor and student information.
4. Billing System: external system that bills students each semester.
Preconditions: Student is identified and authenticated.
Postconditions: A course in Schedule is created, deleted, updated or retrieved
Main Success Scenario
The student enters the student id number. The system verifies that the student ID number is valid the system prompts the student to select the semester. The student enters the desired semester. The system prompts the student to select the desired activity: Create a schedule or Add a course, retrieve a schedule or Delete a course.
If create a schedule or add a course, the system checks that prerequisites are satisfied for the requested course, and the system adds the student to the course offering if the course offering is still open.
If retrieve a schedule. The student requests information on all course in which the student is registered for a given semester, and the system displays all courses for which the student is registered including course number, course name, number of credit hours.
If update a course in a schedule, the student indicates which course to update, and the system checks that the final date for changes has not been exceeded.
Then the system verifies that the maximum course load has not been exceeded.
And the system checks that prerequisites are satisfied for the requested course, and the system adds the student to the course offering if it is open.
If delete a course in a schedule, the system retrieves and displays on the screen the Student current schedule, the Student selects delete, the system prompts the Student to verify the deletion. the Student verifies the deletion. the system deletes the course in the schedule, and the system notifies the student that the request has been processed.
The student indicates that the activity is complete, and the system will notify the student that registration is complete
The system sends billing information for the student to the billing system for further processing.
Extensions (or Alternate Flow)
If an invalid id number is entered, the system will not allow access to the registration system.
If an attempt is made to create a course which already exists, the system will prompt for a second choice to be made.
If an attempt is made to retrieve a schedule for a semester where a course in a schedule does not exist, the system will prompt for a second choice to be made.
If an attempt is made to delete a course where this course does not exist, the system will prompt for a second choice to be made.
.
Use Case (Option #2)
Use Case: register or drop a course in a Schedule
Scope: Create, Delete, update or Retrieve a course in a Schedule
Level: user goal
Primary Actor: Student
Stakeholders and Interest
1. Student: Wants to register to take courses at the University.
2. Professor: Wants to teach at the University and select courses to teach.
3. Registrar: Wants to be responsible for the maintenance of the Registration system. And create a course catalogue. And maintain professor and student information.
4. Billing System: external system that bills students each semester.
Preconditions: Student is identified and authenticated.
Postconditions: A course in Schedule is created, deleted, updated or retrieved
Main Success Scenario
The student enters his/her id number. The system verifies the student id number. The system prompts the student to select the semester number, and the student enters the semester number, the system displays the available choices. The student selects the operation number
If student select create, then the student enters five courses, the student submits the request for courses, the system checks those prerequisites are satisfied for the requested course, and the system adds the student to the course if the course is open.
If student select delete, the student indicates which course to delete, the system checks if the final date for dropping a course has not been exceeded, and the system then deletes the student from the course offering, the system notifies the student that his/her request has been processed
If student select add a course, the student indicates which course to add.
The system checks that the final date for adding a course has not been exceeded.
The system then checks that prerequisites are satisfied for the requested course.
The system adds the student to the course if the course is open.
If retrieve a schedule. The student requests information on all course in which the student is registered for a given semester, and the system displays all courses for which the student is registered including course number, course name, number of credit hours. The system sends billing information for the student to the billing system for processing.
Extensions (or Alternate Flow)
If an invalid id number is entered, the system will not access to the registration system.
If an attempt is made to create a course which already exists, the system will prompt for a second choice to be made.
If an attempt is made to delete a course where this course does not exist, the system will prompt for a second choice to be made.
If an attempt is made to delete a course which will cause the load for the student to be exceeded due to the delete, then drop operation has to stop.
If an attempt is made to add a course and the system cannot add the course then it will display a message to indicate that
If an attempt is made to retrieve a schedule for a semester where a course in a schedule does not exist, the system will prompt for a second choice to be made.
.
Leave a reply