PROJECT Documentation- Group A2
From SoftwarePractice.org
Please Note: Our Group would like to keep documentation on weekly basis to ensure that all group members are aware what has beeen happening every week. However, our final documentation will based on each MUP phase,i.e. each phase will include its own set of documentation whcih will be presented to class at the end of the session. Link to Final Documentation: [1]'
Contents |
Tutorial Work Week 2
Project Choice
We have chosen to complete the "Personal Assignment Scheduler", We (supposedly) think that this is simpler, and more understandable than the other options. In addition that the end product might actually be useful to us!
Stake Holders and Their Expectations
- Students (Particularly Busy / Tertiary)- An easy to understand interface (user friendly), be able to input all neccessary information for each assignment and a reliable system that can keep track of everything.
- Developers- Build an easy to understand system, return on investment made to create the program.
- Distributors- Sell software to the target group and make a profit.
- Management- Be able to have ways of maintaining and supporting the software.
- Testers- Able to access good documentation on the software and be able to make changes to the software easily (easy to understand code).
- Education Institutions- Provide a system that allows their students to keep track of their assignments and hence minimize special consideration requests, save time and money.
Usage Scenarios
Scenario 1-Best Scenario
1) Peter clicks on an icon to open up the screen where he can type in details of his assignments on a scheduler. He’s then led through a number of windows to enter the information about assignment dates, tasks and type. He’s not entirely happy with the display colours and fonts.
Other Usage Scenarios
2) Jane changes the delivery mode of her assignments. As usual she left everything until the last minute and now she has to update things. She needs all the help she can get. She thinks her scheduler can help her better organise every minute she can spare. She doesn’t understand why the scheduler didn’t warn her about being so late.
3) Lecturer Rick clicks of progress report for each student to find out how they’re going with their assignments. This way he can have private chat with struggling students to get them back on track. He’s pretty happy with this kind system where he can keep constant track of progress.
4) Marry opens a window to check the progress of her assignments. She finds out she’s ahead in all assignments except one. She sees which part of the assignment she still needs to do. She also updates the progress of each tasks of each assignment to reflect the work she’s done.
5) Bobby needs to check when the assignment is due and what format. He looks under the assignment details and he’s now aware of the due date and the format of the assignment submission.
6) While checking the progress of her assignments, Kayla sees a warning telling her that two of her assignments are due soon and behind schedule. She knows to concentrate more on these assigments.
Best Use Case
Student wants to add subjects and their assignments to the schedule and save it.
Add Subject
| Use Action | System Responsibility |
|---|---|
| 1. Click ‘Add Subject' | |
| 2. Load subject 'Schedule Requirements' screen. Prompt for subject name | |
| 3. Enter subject name | |
| 4. Click ‘Next’ to go to 'Create Assignment' window |
Other Essential Use Cases
I) User creates the assignments for each subject.
Create Assignment
| User Action | System Responsibility |
|---|---|
| 1. Click ‘Create Assignment’ | |
| 2. load next screen. Prompt for assignment list for the subject | |
| 3. Enter Assignment Name | |
| 4. Click 'Next' | |
| 5. Create overloading Alert and display on screen if too many assignments are listed on the list | |
| 6. Click OK if overloading alert is displayed | |
| 7. Enter Assignment Duration | |
| 8. Click 'Next' | |
| 9. Set Delivery Mode | |
| 10. Click 'Next' | |
| 11. Display Assignments and their details | |
| 12. Save Assignments Page |
II) User to report back to the software the progress they made during the week or time phase set for each part of the project.
Report Progress
| User Action | System Responsibility |
|---|---|
| 1. Selects 'Report Progress' | |
| 2. Loads Progress Page | |
| 3.Update assignment progress | |
| 4. Save and show updated display |
III) User to deal with alerts given out by the software when assignment deadlines are not met.
Alert Student
| User Action | System Responsibility |
|---|---|
| 1. 'Alert Student' for overloading/urgent deadlines | |
| 2. Reads Alert | |
| 3. Acknowledges Alert by clicking on the dialogue box |
IV) System feedback for the user to view.
System Feedback
| User Action | System Responsibility |
|---|---|
| 1. Click 'Check Progress' | |
| 2. Load the progress screen | |
| 3. Check assignment schedules on screen | |
| 4. Notify system of project completion | |
| 5. System Removes From Active Projects | |
| 6. Generate 'System Feedback' report | |
| 7. View report | |
| 8. Click save to save report on a file | |
| 9. Save report |
V)A student needs a method for keeping track of progress through any given assignment at a time. With progress being able to be shown how far ahead or behind.
Check progress
| Use Action | System Responsibility |
|---|---|
| 1. Click ‘Check Progress’ | |
| 2. Display progress screen | |
| 3. View assignment progress on screen | |
| 4. Click OK to exit screen |
Use Case Diagram
Things To Consider For Next Week
An initial concept of interface:
Design sketches drawn in tutorial 1:
End of Week 2 Session
Tutorial Work Week 3
Class Definitions So Far
| Progress | |
Responsibilities
|
Collaborations
|
| Task | |
Responsibilities
|
Collaborations
|
| Alert | |
Responsibilities
|
Collaborations
|
| DeliveryMode | |
Responsibilities
|
Collaborations
|
| Assignment | |
Responsibilities
|
Collaborations
|
| DateTime | |
Responsibilities
|
Collaborations
|
Class Diagram
End of Week 3 Session
Instructor comments
(I've been asked by some teams to make comments on their wiki. I don't know who exactly, but perhaps this is a good way to provide feedback to all teams.)
A good start. Please be careful with the terminology, we are working with usage scenarios and use cases. Your scenarios don't show use of the system. Another thing to make sure is that all of your artifacts are consistent. For example, I can't see how the use case diagram relates to your list of use cases -- the names should match up. Keep at it :) (JohnR 18 Aug 06)
Group Reply to Instrcutor's Comments
We have changed the terminology that describes Use Cases and Usage Scenarios
We have changed our Usage Scenarios to reflect the actual use of the system
We have changes our Use Case diagram to ensure that the labels match those of the Use cases
Tutorial Work Week 4
Collaboration Diagram
Sequence Diagrams For Each Collaboration Diagram
Project Scope Document-Draft 1
After much deliberation among group memebr, A2 has now realied that it is missing the most vital piece of documentation neccessary to get any project done. That is a scope document. For our project the scope document is shown below. It is to be followed very closely at all times and it will be modified as this project continues.
Introduction
The purpose of this document is to identify the requirements and resources necessary to create a personal assignment scheduler for tertiary students. It is indented to allow students to keep up to date with their assignments and hopefully reduce unprofessional, late and poor quality submissions.
Description of Assignment Scheduler
Tertiary students, who take multiple subjects with multiple assignments for each, need a way to store details of their assignment requirements on a scheduler to allow them to keep up with the assignment submission requirements. They can set three different types of delivery modes for the assignment:
- Regular increments- An assigment is comprised of many equal portions that should be completed regularly throughout the time period of the assignment
- Miniature Unified Process- Based on a set phases, with work on different sections beginning and starting and different times
- Eleventh Hour Mode- Start the assignment 2 days before the assignment is due
The main point of focus is not to get sidetracked by unnecessary details and focus on the main task- to help overloaded students manage their assignment load.
Inputs, Outputs, Processes Inputs
- Assignment Title
- Start Date
- End Date
- Delivery Mode
- Tasks
Outputs
- Progress charts
- Warnings
Processes
- Progress (Actual Vs Expected)
- Delivery of Tasks
- Appropriate warning system depending on the situation
Project Requirements
- The scheduler is to be a GUI
- User to keep track of various assignments and their sub tasks
- A user friendly interface
- User to be able to view feedback on assignment status
- User to be able to save information about each assignment to a file
Detailed Project Requirements
1. The scheduler is to be a GUI
1.1 Choose appropriate screen colours
1.1.1. Avoid bright colours for backgrounds- recommended background to be
white
1.2. Choose appropriate fonts and font sizes
1.2.1. Recommended font to be San Serif type such as Arial. Do not use any
more than 2 different font types for the whole application
1.2.2. Keep font sizes between 12 and 20. Do not use any more than 4
different font sizes for the whole application
1.3.Choose an appropriate window size
1.3.1. Specify only one window size
1.3.2. Allow for maximum and minimum sizes
1.4.Ensure easy of use through appropriate button sizes and ease of
understanding details on the screen
1.4.1. Use basic words everyone can understand. Avoid using technical
jargon
1.4.2. Provide a help function
1.4.3. Ensure all buttons and their corresponding text are legible
1.5. Ensure correct sequence of windows based on the function incorporated into
the application
1.5.1. User to be able to go from an initial main window into various
other windows depending on the information they are after
1.5.2. Allow for a static frame on the left side of the window to allow
for scrolling from one window to another
1.5.3. Do not create pop up windows. All information to be displayed in
one static window on the right.
2. User to keep track of various assignments and their sub tasks
2.1. User to enter details about each assignment
2.1.1. The subject the assignment belongs to
2.1.2. The assignment title
2.1.3. Assignment tasks and the break up of each task
2.1.4. Assignment start and end dates based on system calendar
2.1.5. Delivery modes
2.1.5.1. Regular Increment, Fortnightly, Eleventh Hour
2.1.5.2. Eleventh Hour
2.1.5.3. Minature Unified Process
2.2. User to view progress of each assignment
2.2.2. Contains information about the expected progress and actual
progress for each task
3. A user friendly interface
3.1. Appropriate GUI
3.2. Easy of understanding all buttons
3.3. Ease of entering and finding desired information
3.4. Application response time to be a quick as possible
4. User to be able to receive feedback on assignment status
4.1. View an overall assignment report and a status report on each or all
assignment
4.2. Receive warnings when the demands of particular assignment tasks have not
been met
4.2.1. Warnings to be used to warn user if they are late in submitting
assignment information and if they are not able to meet most of each task’s
requirements. They are also to be used to remind the user of a particular
due date.
4.2.2. User must be able to turn off warnings
4.3. Status report to include such information as assignment tasks dues dates,
actual progress Vs expected progress, progress review based on the extent of the
gap between actual and expected progress and delivery mode
5. User to be able to save, edit and retrieve information about each assignment
to a file
5.1. Information about the assignment should be saved to a file and retrieved
when necessary
5.2. User to be able to construct new schedules
5.3. User to be able to delete assignments and specific information about them
Appendix:Coding Standard
Variable and Function Naming Variables All variables will follow <naming-convention name> convention. Which is lower-case first Letter, with rest of words being upper case.
/**
* string HelloWorld; //WRONG!
* string HELLOWORLD; //WRONG!
* string helloWorld; //Right!
*/
All variables should be named something that reflects what they are
/**
* int a, b, c; //WRONG!
* int inputValue, calculatedValue, outputValue; //Right!
*/
Functions
Functions should be named with the first letter of each word in uppercase.
/**
Class Description
Each class requires a class description, that comes at the top of each file. This description should take the form JavaDoc, which allows the use of HTML tags. Below is an example:
/**
* Abstract class DeliveryMode
* Describes the interface required for the 3 delivery modes
*
* @author Michael Southeren
* @author (Add Other Names Here)
* @version <li> 1.0.0 M.Southeren 20-Aug-06 14:30.00 - Created inital interface and stubbing
*/
Each person who edits the class, adds their name as a seperate author, like shown
Each time the file has finished being worked on, and submitted back to others, a version tag is added. This tag should follow the format:
@version <li> (Incremented version number) (Name) (Date) (Time) - Comment of what was done
For Small Changes 0.0.*, for Large changes, 0.*.0, for Massive/Complete changes *.0.0)
Function Descriptions
Each function, with the exception of accessor methods or VERY SIMPLE methods, should have a function description. This description should contain, at a minimuim: What the function does, arguments passed to it, what it returns. Any additional information, such as psuedo-code, logic tables, reasons for doing a particular way should be included as appropriate. Below is an example:
/**
* An example of a method - replace this comment with your own
*
* @param y a sample parameter for a method
* @return the sum of x and y
*/
Standard Interfaces
VersionInfo Purpose VersionInfo is a class that contains general infomation that is used by the program. This infomation, such as the developers of the program (us), the current version of the program, the name of the program and a breif description. This File exists to provide congruency so that infomation that needs to be consistent though many classes can be changed easily
Interface
+PROGRAM_NAME: String
+PROGRAM_VERSION: String
+DEVELPOERS: String
+PROGRAM_DESCRIPTION: String
End of Week 4 Session
Tutorial Work Week 5
Assignment of Responsibilities
| Principle | Creator |
| Problem | Who Creates Assignments? |
| Solution | Assignments Class has the responsibility to create an instance of class Assignment if all the following are true:
|
| Principle | Information Expert |
| Problem | What is a basic principle by which to assign responsibilities to Tasks? |
| Solution | Each task must contain a start and end date(end date after start date), have a delivery mode |
| Principle | Low Coupling |
| Problem | How to reduce the impact of change |
| Solution | Each class's responsibilities has been identified at the most fundemental level. Theerefore a change will mainly impact one or two classes only and not the whole project. |
| Principle | Controller |
| Problem | What is the first object beyond the UI layer which recieves and coorduinates a system operation? |
| Solution | Assigments is the first object beyonf the UI system and ti is responsible for orgranising everything related to a certain assignment |
| Principle | High Cohesion |
| Problem | How to keep objects focused, understandable, and manageable? |
| Solution | Every object class's responsibilites have been clarified and the boundary of each class is set. This way we achieve higg cohesion |
Object Diagram
Operation Specifications
- Assignments.createnewAssignment (subjectID:String,subjectTitle:String,assignmentTitle:String, assignmentType:String, AssignmentSchedule:AssignmentSchedule, Tasks:String, weighing: Boolean):Assignment
- pre:subjectID is valid
- assignmentTitle is valid
- subjectTitle is valid
- assignmentType is valid
- Tasks is valid
- weighing is valid
- post: A new Assignment object exists
- if no duplicate titles, then true is returned and the newAssignment object is linked to the Assignments object. Else false is returned.
- class variant:
- type={“internal semester test”, ”external semester test”, “major project”, “minor project”, “assignment sub component”}
- deliveryMode={“weekly”, “MUP based”, “11th hour”}
- pre:subjectID is valid
- deliveryMode.setdeliveryMode():Integer
- pre: Assignment is valid
- post:deliveryMode is returned
- Assignment.setAssignmentSchedule(deliveryMode:Integer, StartDate: Date, EndDate: Date): AssignmentSchedule
- pre: Assignment is valid
- deliveryMode is valid
- startDate is valid
- endDate is valid (endDate cannot be earlier than StartDate)
- post:AssignmentSchedule is returned
- pre: Assignment is valid
- Tasks.createnewTask (title:String, description: String)
- pre: Assignment is valid
- post: Task is returned
- DateTime.getDateTime():Date
- pre: Assignment object is valid
- post:DateTime is returned
- Progress.getAssignmentStatus (): Progress
- pre: assignment is valid
- task is valid
- post: return AssignmentStatus
- pre: assignment is valid
- Progress.getProgressofTask(): Structure
- pre: Tasks is valid
- post: Progress of task is returned
Database Set Up For The Scheduler
Assignments Window Database Setup
| Column Titles | Data Type |
|---|---|
| Subject ID | String |
| Subject Title | String |
| Assignment Title | String |
| Assignment Type | String |
| Assignment Description | String |
| Assignment Start Date | Date |
| Assignment End Date | Date |
| Delivery Mode | Deivery Mode Structure |
| Tasks | Tasks Structure |
| Weighing | Percentage |
Progress Window Database Setup
| Column Titles | Data Type |
|---|---|
| Asssignments | Assignments Structure |
| Tasks | Tasks Structure |
| Actual Percentage Completed | Integer |
| Sub-Tasks Incomplete | String |
| Percentage Carried Over | Boolean |
| Progress Report | String |
Tasks Window Database Setup
| Column Titles | Data Type |
|---|---|
| Task Name | String |
| Description | String |
| Task Start Date | Date |
| Task End Date | Date |
| Percentage of Assignment | Integer |
Initial Code For The Project
Tutorial Work Week 6
Test Cases
Test Cases
Best Scenario
1) Peter clicks on an icon to open up the screen where he can type in details of his assignments on a scheduler. He’s then led through a number of windows to enter the information about assignment dates, tasks and type. He’s not entirely happy with the display colours and fonts.
Overview
| Identifier | test_case_1 |
| Test Case Creator | Group A2 |
| Version | v0.1 |
| Name | enter_assignment |
| Use Case Identifier | Case_1 |
| Purpose | To check if the program can accept and store an assignment. |
| Dependencies | Nil |
Test case activity
| Testing Environment/Configuration | Standard Desktop PC Windows O/S Assignment Scheduler |
| Initialization | Open “Assignment Scheduler” |
| Finalization | Close and Exit “Assignment Scheduler” |
| Actions | Click on 'Enter New Assignment' Enter in Assignment details |
| Input Data | Assignment details |
Results
| Expected Results | A display revealing details of the assignment in various views, timeline etc. |
| Actual Results | |
| Pass/Fail |
2) Jane changes the delivery mode of her assignments. As usual she left everything until the last minute and now she has to update things. She needs all the help she can get. She thinks her scheduler can help her better organise every minute she can spare. She doesn’t understand why the scheduler didn’t warn her about being so late.
Overview
| Identifier | test_case_2 |
| Test Case Creator | Group A2 |
| Version | v0.1 |
| Name | change_delivery |
| Use Case Identifier | Case_2 |
| Purpose | To check if the program can change the delivery mode of an assignment. |
| Dependencies | test_case_1 - Pass |
Test case activity
| Testing Environment/Configuration | Standard Desktop PC Windows O/S Assignment Scheduler |
| Initialization | Open “Assignment Scheduler” |
| Finalization | Close and Exit “Assignment Scheduler” |
| Actions | Click on 'Edit existing assignment' Change 'Delivery Mode' to MUP etc |
| Input Data | The required Delivery Mode |
Results
| Expected Results | A display of the new timetable for the assignment. |
| Actual Results | |
| Pass/Fail |
3) Marry opens a window to check the progress of her assignments. She finds out she’s ahead in all assignments except one. She clicks on the assignment to find out what she still needs to do. She also updates the tasks of each assignment to reflect the work she’s done.
Overview
| Identifier | test_case_3 |
| Test Case Creator | Group A2 |
| Version | v0.1 |
| Name | check_progress |
| Use Case Identifier | Case_3 |
| Purpose | To check if the program can update the current progress of an assignment. |
| Dependencies | test_case_1 - Pass |
Test case activity
| Testing Environment/Configuration | Standard Desktop PC Windows O/S Assignment Scheduler |
| Initialization | Open “Assignment Scheduler” |
| Finalization | Close and Exit “Assignment Scheduler” |
| Actions | Click on 'View current assignments' Click on the assignment that is behind schedule Update the current progress of assignment |
| Input Data | Current progress of assignment |
Results
| Expected Results | A display of the new timeline for the assignment. |
| Actual Results | |
| Pass/Fail |
4) Bobby needs to check when the assignment is due and what format. He looks under the assignment details and he’s now aware of the due date and the format of the assignment submission.
Overview
| Identifier | test_case_4 |
| Test Case Creator | Group A2 |
| Version | v0.1 |
| Name | view_assignment |
| Use Case Identifier | Case_4 |
| Purpose | To check if the program can display the correct details of each assignment. |
| Dependencies | test_case_1 - Pass |
Test case activity
| Testing Environment/Configuration | Standard Desktop PC Windows O/S Assignment Scheduler |
| Initialization | Open “Assignment Scheduler” |
| Finalization | Close and Exit “Assignment Scheduler” |
| Actions | Click on 'View current assignments' Click on the specific assignment |
| Input Data | Assignment details |
Results
| Expected Results | A display showing detailed information on the specific assignment. |
| Actual Results | |
| Pass/Fail |
5) While checking the progress of her assignments, Kayla gets a message warning her that two of her assignments are due next week. She acknowledges the warning.
Overview
| Identifier | test_case_5 |
| Test Case Creator | Group A2 |
| Version | v0.1 |
| Name | warning |
| Use Case Identifier | Case_5 |
| Purpose | To check if the program delivers a warning once an assignment is close to due. |
| Dependencies | test_case_1 - Pass |
Test case activity
| Testing Environment/Configuration | Standard Desktop PC Windows O/S Assignment Scheduler |
| Initialization | Open “Assignment Scheduler” |
| Finalization | Close and Exit “Assignment Scheduler” |
| Actions | Click on 'View current assignments' |
| Input Data | Overdue Assignment |
Results
| Expected Results | A reminder displaying information on the two assignments which are due. |
| Actual Results | |
| Pass/Fail |
Instructor comments
Overall, lots of effort and thought being put into this project, but I would suggest (again?) that you focus on the deliverables that are being asked for in this assignment and begin working the structure of your Wiki article towards something that will enable you to incrementally move towards the final deliverble (instead of a big and unhappy reorganization near the end.) JohnR 11:44, 9 September 2006 (UTC)
Agree with all of the above :-) --Dawsonj 23:49, 7 October 2006 (UTC)


