SoftwarePractice.org: Home | Courseware | Wiki | Archive

Project Doucmentation (Group A4)

From SoftwarePractice.org

Contents

Personal Assignment Schedular Introduction

This page documents the software design process of our group project, "Personal Assignment Scheduler (PAS)".

The objective of our group project is to develop a program that helps students with tracking their assignments and finishing them on time. As it is an educational project, we also aim to explore the different phases of a software desing process. As well, through out the project, we aim to learn different set of software DnD tools and programs.

PAS Functionality

Through discussiong with our tutors as well was group discussions, we have decided that the PAS shall have the following functionalities.

  • Add, save, modify, view and delete assignments.
  • Show assignment progress using a progress bar.
  • Display a list of completed tasks.
  • Display the due date and number of days left.
  • Shows a warning message if an assignment is overdue.
  • Simple user interface.
  • Incoperates a workflow for the user to follow.

System Inputs and Outputs

The first analysis we've done is system analysis. This is to look at the system and work out what the system inputs and outputs are. This gives clear understing of how the system interfaces and reacts to the outside world.

The table below shows the system inputs and outputs of the PAS.

Student Inputs System Outputs
Assignment and Subject Names Warning Messages
Due Date (DD / MM / YYYY) Eleventh-hour Mode
Assignment Type, Mode, Submission Method Status Progress Bar and Due Date
Lecturer/Tutor contact details and Comments Details of Assignment
Reverent tasks for Assignment List of saved Assignments

Stakeholders

Through the lectures and tutorials, we've come to understand that it is imperative to understand the user needs of the software, before we begin the design and development. One way to do this is the stakeholders analysis. This is to find out who the stakeholds of the project and hence the final product (i.e PAS), and understand their needs and interests.

The table below shows the PAS stakeholders and their needs and interests

Stakeholders Table
Stakeholders Needs and Intrests
Student To achieve high marks on All assignments
keeping upto date with courseware while following a schedule
Lecturer
Tutor
Teacher
Able to guide Students
reduction in late submission and inappropriate formatting
University To provided all students this software
Public School To provided all students this software
Parents Satisfaction that kids are learning on time and keeping upto required standards
Offices
Businesses
use a version of our software to help their employees keep track and update their performance
Maintenance To upgrade software and add further functionality desired

Scenarios

Usage Scenarios

Usage scenarios help us understand how our software will be used by the end users. Then, we have better pictures of how the sofware should interaface and react to the unser inputs. From these scenarios, we can elicit some design inputs as well.

The following are the usage scenarios of our PAS.

  • Creating Assignments
    • Mike wants to make a schedule for his assignments which includes weekly tasks. He runs the PAS program and enters all the assignment details into program and saves them.
  • Deleting Assignments
    • James wants to delete his finished assignment from his schedule. He runs the program, selects his finished assignment and clicks on the 'Delete' button to delete it.
  • Warning Messages
    • Ricky is worried about his un-finished assignments. He usually forgets what task should be completed for the current week. By using the PAS software he can keep track of his assignments and tasks by visually seeing what he is upto and how he is progressing.
  • Progress Performance
    • Adam wishes to see progress and where does he stand as far the standards are set.He can to see bar indicating his performance/standards required at one place by opening a schedule and its progress report
  • Managing Multiple Assignments
    • John is given four assignments, one for each subject that he is studying and wants to be able to track his progress with each assignment without wasting too much time on managment tasks. Using the software, he will be able to manage as many assignments and tasks as he wishes without worrying about each individual assignment.
  • Revision of submission Details
    • Alex is confused about where and what format is the assignment to be submitted; He can verify the submission method by opening the assingment and viewing it's details within the program.
  • Checking Due Date of Assignment
    • John wants to check due date and how many days left for one of his assignment. He runs the Personal Assignment Scheduler program and selects the right assignment from Assignment list. He then clicks “Due Date” button to view the due date of the chosen assignment. System will popup a message with the due date and how many days left.

Use Case Diagram

Use case analysis is good for capturing functional requirements of a software. Again this give us insights into how the software should interact with the users (called actors) to achieve a specific function of the software. Use case analysis is usually done with a diagram of use case. We have done so and the diagarm below shows the use cases of our PAS.

PAS Use Case Diagram

Use Cases

Based on the above use case diagram, we have developed the use case scenarios as below. This helps us to elicit functional requirments and hence design inputs to our PAS.

Creating Assignment
User Action System Responsibility
1. Open Computer
2. Open Software
3. Choose Add New Assignment
4. Open New Assignment Form
5. Input Assignment Details
6. Create Assignment
7. Add to Existing Assignments
8. Logout
Checking Progress
User System Response
1. Open software program
2. Open existing assignment
3. Details & Options displayed
a. Edit
b. View detail
c. View progress
d. Delete
6. Selection to view progress
5.Shows 2 different colour bars with
percentage for expected and actual progress
Options Displayed :
6.return to main menu
7.close window
8.Back
9.Close window


Adding Assignment
User Action System Responsibility
1. Getting assignment Question
2. Open Program
4. Ask subject code
5. Enter due date
6. Ask delivery mode
7. Enter milestones
8. Choose delivery type
9. Save new assignment
10. Show all existing assignments
11. Show any due assignment
12. Do assignments
13. Ask status of weekly assignments
14. Show progress of assignments


Checking Due Date of Assignment
User Action System Responsibility
1. Run PAS program
2. Choose Assignment
3. Click “Due Date” button
4. Get Date data from chosen assignemtn
5. Get System current date
6. Calculate day left
7. Show due date and how many days left
8. Press OK to Main page

Object Oriented Design Analysis

Outline of the Miniature Unified Process
Enlarge
Outline of the Miniature Unified Process

At this poin in the porject, we have completed the requirement analysis. We now have a good understanding of user requiremet as well as software functional specifications. All the analysis we have done so far help us achieve that. In regard to the Miniature Unified Process, we have now completed the Inspection and Elaboration phases of the process. We are about to begin the Construction phase, which is mainly of design and implementation activities.

To start the design of PAS, we start to perform the class diagram analysis, which is one of the main principles of the object oriented design. In this project, we used UML language to perform the class diagram analysis. We analysed the static structure of the PAS and tried to describe the major classes and their attributes and operations. These classes will be the backbone of our final object oriented design of PAS.

Class Diagram

BlueJ Screenshot

PAS Class Diagram, BlueJ

Analysis Class Diagram

Class Diagram

CRC Diagram

Assignment
Responsibilities Collaborations
Displaying/Editing the due date
Displaying/Editing the milestones
Displaying/Editing the delivery mode
Progress
GUI



Progress
Responsibilities Collaborations
Status diplay for the assignments completed Assignment
GUI
Time



GUI
Responsibilities Collaborations
Creating/Updating information messages
Responsible for displaying created messages with Detail
Warning/Reminder Messages
Progress
Assignment
Time



Time
Responsibilities Collaborations
Checking the time and date
Calculation for Eleventh hours mode
Comparing the Current time with due time & dates
Progress
Assignment


Function List

This section lists the major functions used in the design of the PAS.

Assignment GUI Time Progress
newAssignment openProgram checkTime checkProgress
deleteAssignment createForm dueDate currentProgress
openAssignment displayMsg setDueDate modifyProgress
saveAssignment displayForm systemTime
modifyAssignment displayProgress checkDueDate

Collaboration Diagram

Create New Assignment


Image:CollaborationDiagram1troy.gif


Checking Progress Need to put arrow lines on it. Description

Modify Milestone Image:Milestone2.jpg

Sequence Diagram

New Assignment

Image:SequenceDiagram2.gif


Check Progress

Image:CheckProgress.gif

Delete Assignment

Image:DelAssignment.gif

Modify Due Date

Image:SequenceDiagramSM.gif

Pre/Post Conditions of the Functions

In the following sections, we describes the pre and post conditions of the fucntions we are going to used in PAS design.

Operation Specifications for Assignments

  • Assignment.newAssignment():
      pre-conditions:
              user is valid
      post-conditions:
              a new assignment exist
              the new assignment is linked to the Milestone
              Assignment.duedate is set
              set default Milestone plan
              GUI is returned
  • Assignment.delAssignment(assignment):
      pre-conditions:
              user is valid
              assignment is valid
      post-conditions:
              delete the assignment
              delete the assignment.progress
              delete the assignment.Milestone
              GUI is returned
  • Assignment.openAssignment(assignment):
      pre-conditions:
              user is valid
              assignment is valid
      post-conditions:
              call the assignment
              call the assignment.progress
              call the assignment.Milestone
              call the assignment.duedate
              GUI is returned
  • Assignment.editAssignment(assignment):
      pre-conditions:
              user is valid
              assignment is valid
      post-conditions:
              edit the assignment
              edit the assignment.progress
              edit the assignment.Milestone
              edit the assignment.duedate
              GUI is returned
  • Assignment.saveAssignment(assignment):
      pre-conditions:
              user is valid
              assignment is valid
      post-conditions:
              save the assignment
              save the assignment.progress
              save the assignment.Milestone
              save the assignment.duedate
              GUI is returned
  • Assignment.detailsAssignment(assignment):
      pre-conditions:
              user is valid
              assignment is valid
      post-conditions:
              show the assignment
              show the assignment.progress
              show the assignment.Milestone
              show the assignment.duedate
              GUI is returned

Operation Specifications for GUI

  • GUI.openProgram()
      pre-conditions:
              Program is not already running.
      post-conditions:
              Opens program, calls GUI.displayMsg.
  • GUI.createForm():
      pre-conditions:
              Assignment.newAssignment is valid.
      post-conditions:
              New assignment form is created.
  • GUI.displayMsg():
      pre-conditions:
              Display inputs are valid.
      post-conditions:
              Required message or prompts are created and displayed.
  • GUI.displayForm():
      pre-conditions:
              Form has been created.
      post-conditions:
              Form is displayed.
  • GUI.displayProgress():
      pre-conditions:
              currentProgress is valid/exists.
      post-conditions:
              Displays current progress.
  • GUI.displayMilestone():
      pre-conditions:
              milestoneProgress is valid/exists.
      post-conditions:
              Displays current milestones and progress.


Operation Specifications for Progress

  • Assignment.checkProgress()
      pre-conditions:
              Assignment is valid; milestones exist/valid
      post-conditions:
              method assignmentDetails() is called by displayMilestone() values of saved milestones are accessed and compared by systemTime() is called by checkTime()
  • Assignment.currentProgress ()
      pre-conditions:
              Assignment is valid; milestones exist/valid
      post-conditions:
              assignmentDetails() is called by displayMilestone() ; checkTime() is called to compare saved milestone details
  • Assignment.expectedProgress()
      pre-conditions:
              Assignment is valid; milestones exist/valid
      post-conditions:
              Display expected progress via methods assignmentDetails() is called by displayMilestone()
  • Assignment.modifyProgress()
      pre-conditions:
              Assignment is valid; milestones exist/valid
      post-conditions:
              Display the form field :call displayForm() and the record changes with user specifications by: saveAssignment()
  • Assignment.milestoneProgress()
      pre-conditions:
              Assignment is valid; milestones exist/valid
      post-conditions:
              Display form fields call displayForm() & record changes with user specifications by: calling editAssignment() & saveAssignment()

PAS Screenshots

Finally, we have completed our PAS:) It is quite a achievement and pleasure to see our PAS working. The following are the screen shots of our PAS in action :)

Design Screenshots

Welcome Page
Enlarge
Welcome Page
Step 2
Enlarge
Step 2
Add New Assignment
Enlarge
Add New Assignment
Delete Assignment
Enlarge
Delete Assignment
Open Assignment
Enlarge
Open Assignment
Check Progress
Enlarge
Check Progress
Milestone
Enlarge
Milestone

Program Screenshots

Maing Page
Enlarge
Maing Page
Add New Assignment
Enlarge
Add New Assignment
View Page
Enlarge
View Page
Modify Page
Enlarge
Modify Page
Process Page
Enlarge
Process Page
Messages from PAS
Enlarge
Messages from PAS

Test Cases

Through out the implementation phase, we have done a lot of testing of the functions as we wrote them. We took the approach of black box testing, where inputs is fed to the function and the output is observed to check the correct operation of the fuction under test. Then we performed integration testing, by putting the functions together, where we made sure that functions that were written seperately by group members worked togehter. Finally, we did the user acceptance testing where we have demostrated our PAS working infront of our tutors and let him test it. The followings are the test cases that we used.

Best Test Case of PAS

  • Scenarios
    • Best Test Case for PAS (modify the due date)
      • Martin receives an email from his OOD subject coordinator that the project of the subject date line extends to next week. Therefore, he needs to change the date line for the project. He opens the Personal Assignment Schedular (PAS) program. PAS program main page shows the list of Martin assignments and projects that he assigned into PAS system before. He easily clicks the title of the OOD project name from the list and clicks the “MODIFY” button to edit the date due date. PAS program brings up all the data form his projects such as due date, subject name and so on. In the due date section, Mark easily rechooses the due date. Then he clicks the “save” button to save his modification into his file. PAS will bring him back to the main page with refreshment of his assignments and projects list. He also can easily check up the due date for pressing the “Due Date” button which will tells him due date and how many days left. On the other hand, he also can click by “View” button to check full details of this project. The view page will show all the details the status of the project which overdue or how many days left.
User Action System Action
1. Open PAS
2. Check the current Date
3. Search all saved files in the system
4. Show the list of user saved projects and assignments
5. Wait user input
6. Choose project from the list
7. Hit “MODIFY” button
8. Check button status (MODIFY or VIEW)
9. Check “null” input
10. Grab the file name of the project
11. Grab the data from the file
12. Open Modify page
13. Show all details of the project on Modify page
14. Set the Date, Month, Year
15. Check “null” inputs
16. Update all the data into file
17. Open Main / Home page
18. Reload the file list
19. Recalulate Due Date left
20. Wait user inpt
21. Click “EXIT” button
22. Ask “YES” or “NO” to exit
23. Comfirm by pressing “YES”
24. Kill the program


  • Test case for viewing assignment details

Jane has a physics assignment due in three weeks. She used PAS to enter and save her assignment details. A week later, she wanted to check the due date and other details about the assignment.

To view her assignment details, she must do the following:

User Action System Action
1. Double-click on PAS icon to run the program.
2. System runs the program.
3. Once loaded, select the right assignment from the Assignments list.
4. Click ‘View’ button to view the assignment details.
5. Switch to the ‘View’ tab and display the all the assignment details.
6. Once finished viewing the assignment details, click on the ‘Close’ button to return to the Main Menu of the program.
7. Closes the ‘View’ tab and returns the user to the Main Menu to select another assignment to carry out a different operation.


Group Talk

All done! and well done to all who have put in lots of effort in making this project successfull.

Thanks to our lectures and tutors who have supported, helped and guided us through out the semesters.

Instructor comments

Good work, you're making great progress. I'd suggest at this point that it would be good to work on getting a class diagram together. JohnR 11:46, 9 September 2006 (UTC)

Personal tools