SoftwarePractice.org: Home | Courseware | Wiki | Archive

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 ActionSystem 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 ActionSystem 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 ActionSystem 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 ActionSystem 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 ActionSystem 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 ActionSystem 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:

Image:User_Interface.JPG

Design sketches drawn in tutorial 1:

Image:Interface.JPG


End of Week 2 Session

Tutorial Work Week 3

Class Definitions So Far


Progress
Responsibilities
  • Contains current and expected progress
  • Provides useful information about current and expected progress
Collaborations
  • DateTime
  • Information


Task
Responsibilities
  • Keeps track of completion and progress of a individual task
Collaborations
  • Information

 


Alert
Responsibilities
  • Displays important information about state
  • Whether an assigment is late, due soon or behind progress
Collaborations
  • Progress
  • Information
  • Task
  • Assignment


DeliveryMode
Responsibilities
  • Defines the three(3) possible delivery modes
  • Guide ways tasks are timetabled
Collaborations
  • Assignment
  • DateTime


Assignment
Responsibilities
  • Keeps track of all tasks required to complete assignment
  • Contains details of assignment
  • Keeps track of total work done of all tasks
Collaborations
  • Information
  • DeliveryMode
  • Task


DateTime
Responsibilities
  • Uses Date and Time systems functions
  • Implements date/time tools not used in system
Collaborations
  • Progress
  • Information

Class Diagram

Image:Class_Diagram2.jpg

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

Image:Collaboration_Diagram2.jpg

Sequence Diagrams For Each Collaboration Diagram

Creating A New Assignment


Get Assignment Status


Get Assignment Schedule

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:

  1. Regular increments- An assigment is comprised of many equal portions that should be completed regularly throughout the time period of the assignment
  2. Miniature Unified Process- Based on a set phases, with work on different sections beginning and starting and different times
  3. 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

  1. The scheduler is to be a GUI
  2. User to keep track of various assignments and their sub tasks
  3. A user friendly interface
  4. User to be able to view feedback on assignment status
  5. 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

PrincipleCreator
ProblemWho Creates Assignments?
SolutionAssignments Class has the responsibility to create an instance of class Assignment if all the following are true:
  • Assignment has a Subject ID and Subject Title
  • Assignment has a type and title
  • Assignment had a start date and finish date (finish date later than the start date
  • assignment has task(s)
  • Assignment has a delivery mode
PrincipleInformation Expert
ProblemWhat is a basic principle by which to assign responsibilities to Tasks?
SolutionEach task must contain a start and end date(end date after start date), have a delivery mode
PrincipleLow Coupling
ProblemHow to reduce the impact of change
SolutionEach 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.
PrincipleController
ProblemWhat is the first object beyond the UI layer which recieves and coorduinates a system operation?
SolutionAssigments is the first object beyonf the UI system and ti is responsible for orgranising everything related to a certain assignment
PrincipleHigh Cohesion
ProblemHow to keep objects focused, understandable, and manageable?
SolutionEvery 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”}


  • 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


  • 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


  • Progress.getProgressofTask(): Structure
    • pre: Tasks is valid
    • post: Progress of task is returned

Database Set Up For The Scheduler

Assignments Window Database Setup

Column TitlesData Type
Subject IDString
Subject TitleString
Assignment TitleString
Assignment TypeString
Assignment DescriptionString
Assignment Start DateDate
Assignment End DateDate
Delivery ModeDeivery Mode Structure
TasksTasks Structure
WeighingPercentage


Progress Window Database Setup

Column TitlesData Type
AsssignmentsAssignments Structure
TasksTasks Structure
Actual Percentage CompletedInteger
Sub-Tasks IncompleteString
Percentage Carried OverBoolean
Progress ReportString

Tasks Window Database Setup

Column TitlesData Type
Task NameString
DescriptionString
Task Start DateDate
Task End DateDate
Percentage of AssignmentInteger

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)

Personal tools