Reference no: EM13906
Objectives
• To exercise the analysis, design, and implementation activities of software development.
• To learn requirement analysis using use cases
• To learn noun-verb analysis and CRC technique
• To produce UML class diagram; Use a software tool to draw a UML diagram
• Study java.util.GregorianCalendar to learn how to manipulate, day, week and month of calendar.
• The design of the program will be done by a group of two. The implementation will be done individually based on the same design. (The group for this assignment doesn't have to be the same for the team project.)
• In your implementation, ignore cases to recognize a user request and make sure to follow the given format to enter data.
The initial screen shows the current month looking like this. It also highlights today's date.
January 2013
S M Tu W Th F S
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
The initial screen comes with a main menu with following options: View by, Create, Go to, Event list, Delete, and Quit. After the function of an option is done, the main menu is displayed again for the user to choose the next option.
Select one of the following options:
View by Create, Go to Event list Delete Quit
The user may enter one of the letter inside of bracket to choose an option. For example, will choose the View by option.
View by
User can choose a Day or a Month view. If a Day view is chosen, the calendar displays the current date. If there is an event(s) scheduled on that day, display them in the order of start time of the event. With a Month view, it displays the current month and highlights day(s) if any event scheduled on that day. After a view is displayed, the calendar gives the user three options: p, n, and m, where p, n, and m stand for previous, next, and main menu, respectively. The previous and next options allow the user to navigate the calendar back and forth by day if the calendar is in a day view or by month if it is in a month view. If the user selects m, navigation is done, and the user gets to access the main menu again.
Dy view or Mview ?
If the user selects D, then
Wed, Jan 30
Dr. Kim 13:15 - 14:00
Previos or [N]ext or [M]ain menu ?
If the user selects M, then
Previos or Next or Main menu ?
• Create
This option allows the user to schedule an event. The calendar asks the user to enter the title, date, starting time, and ending time of an event. For simplicity, we consider one day event only. Also, let's assume there is no conflict between events that user entered, and therefore your program doesn't have to check if a new event is conflict with existing events. Please stick to the following format to enter data:
o Title: a string (doesn't have to be one word)
o date: MM/DD/YYYY
o Starting time and ending time: 24 hour clock such as 06:00 for 6 AM and 15:30 for 3:30 PM. The user may not enter ending time if an ending time doesn't make sense for the event.
• Go to
With this option, the user is asked to enter a date in the form of MM/DD/YYYY and then the calendar displays the Day view of the requested date including any event scheduled on that day in the order of starting time.
• Event list
The user can browse scheduled events. The calendar displays all the events scheduled in the calendar in the order of starting date and starting time. An example presentation of events is as follows:
• 2013
• January 20 13:15 - 14:00 Dentist
• February 12 15:00 - 16:00 Bank of SJSU
• 2014
• June 20 17:00 Leave for Korea
• Delete
User can delete an event from the Calendar. There are two different ways to delete an event: Selected and All. Other type of deletion will not be considered for simplicity.
o Selected: all the events scheduled on the selected date will be deleted.
o All: all the events scheduled on this calendar will be deleted.
• Selected or All ?
If the user enters s, then the calendar asks for the date as shown below.
Enter the date.
• Quit saves all the events scheduled in a text file called "reservation.txt" in the order of starting date and starting time.
The main menu will be displayed after each option is done. It is crucial to have a user friendly interface for the user to enter input. For example, if the calendar needs a date from the user, suggest a specific format of the date for the user to use. Our class grader will be the user to operate your calendar, and you don't want to frustrate the user with a confusing interface.
Deliverables
• Hard copy per team -
- A set of use cases
- A set of CRC cards
- UML class diagram