Supervisors
Mr. Shantha Fernando, Senior Lecturer Dept. of Computer Science & Engineering Mr. Indika Perera, Lecturer Dept. of Computer Science & Engineering
Mr. Aruna Dissanayake, Valista
Prepared by: SA-G3
Asanka Siriwardena 050434D Gobalakrishnan Nishandan 050295B Purathani Gunanayagam 050346J Satchithanantham Mayuran 050271A
DESIGN DOCUMETATION
1.
Contents
1.1.
Prerequisites ... 1
1.2.
Proposed audience ... 1
3.1.
Assumption and dependencies... 3
3.2.
Scope of the project ... 3
3.3.
Development methods ... 3
4.1.
Abstract System View ... 4
4.1.1.
Presentation Layer ... 5
4.1.2.
Application Layer ... 6
4.1.3.
Data Access Layer ... 6
5.1.
Use Case View ... 7
5.1.1.
User level use case diagram ... 7
1.
Introduction ... 1
2.
System Overview ... 2
3.
Design consideration ... 3
4.
System Architecture ... 4
5.1.2.
Use case diagram of manager ... 8
5.1.3.
Use case diagram for normal users ... 10
5.2.
Activity Diagrams ... 11
5.2.1.
Activity Diagram for Administrator: ... 11
5.2.2.
Activity diagram for Managers: ... 12
5.2.3.
Activity Diagram for normal users: ... 13
5.2.4.
Activity Diagram for Project files Extraction: ... 15
5.3.
Class Diagrams ... 16
5.4.
Component Diagram ... 18
5.5.
Sequence Diagrams ... 19
5.5.1.
Sequence Diagram for Administrator and Managers ... 19
5.5.2.
Sequence Diagram for users ... 20
5.5.3.
Sequence Diagram for overall system ... 21
TABLE OF FIGURES
FIGURE 1[ABSTRACT SYSTEM VIEW] ... 4
FIGURE 2[USE CASE FOR USER LEVEL] ... 7
FIGURE 3[USE CASE FOR MANAGER] ... 8
FIGURE 4[USE CASE FOR USER] ... 10
FIGURE 5[ACTIVITY DIAGRAM FOR ADMIN] ... 11
FIGURE 6[ACTIVITY DIAGRAM FOR MANAGER] ... 12
FIGURE 7[ACTIVITY DIAGRAM FOR USER] ... 14
FIGURE 8[ACTIVITY DIAGRAM FOR FILE EXTRACTION] ... 15
FIGURE 9[CLASS DIAGRAM OF SYSTEM] ... 17
FIGURE 10[COMPONENT DIAGRAM OF SYSTEM] ... 18
FIGURE 11[SEQUENCE DIAGRAM OF ADMIN/MANAGER]... 19
FIGURE 12[ACTIVITY DIAGRAM OF USER] ... 20
FIGURE 13[ACTIVITY DIAGRAM OF SYSTEM] ... 21
FIGURE 14[DATABASE DIAGRAM OF SYSTEM] ... 22
1
1.
Introduction
This is the software design and specification document which is highlighting the design consideration of our project “Open Source Time Tracking System”. It is a system which is implementing the functionalities of web-based time tracking system “WR Time Tracker” with MS Project, email and IDE integration.
1.1.
Prerequisites
Prerequisites for this document are the Project Proposal and Software Requirements Specifications.
1.2.
Proposed audience
The intended audience of this document are the software company ‘Valista’, the project supervisor, the course coordinator and the project team members who will play at least one or many roles such as requirement engineer, software process engineer, software developer, project manager, software architect, quality assurance engineer and technical writer throughout the project life cycle.
2
2.
System Overview
The “Open Source Time Tracking System” is a cross platform tool that is implementing the functionalities of web based time tracker “WR Time Tracker” with MS Project, email and IDE integration. The “Open Source Time Tracker” is not just replacement of “WR Time Tracker”. The tool is capable of parsing MS Project file and extracting the project task details according to the user.
Apart from the main implementation of time tracker the system has plug-ins for Mozilla thunderbird, eclipse IDE and IntelliJ IDEA to capture the time involvement of user in each of above tools.
As this is a cross platform system, all the implementations are done with java programming language.
This “Open Source Time Tracker” is using two types of database, one XML database for saving the local user’s current work status and one MySQL database for saving all the details.
3
3.
Design consideration
3.1.
Assumption and dependencies
Hardware requirements: Enough memory and processing power for run java VM
Software requirements: MySQL database, WR Time tracker server
Operating system: This system should be work with both Windows and UNIX operating systems environment.
3.2.
Scope of the project
The scope of this project is to develop a cross platform desktop client application similar to Google desktop in look, to capture the time involvement in each task by every employee. It will be easy to capture the worked time of employees and can be easy to maintain good time management.
3.3.
Development methods
We have used the “Agile software development” to implement this project. Short time boxes are used for mini iterations and the progress verified. The development team meets frequently to discuss about the progress of the project and constant feedback from the users are obtained wherever and whenever possible.
4
4.
System Architecture
4.1.
Abstract System View
PRESENTATION LAYER
APPLICATION LAYER
DATA ACCESS LAYER
GUI LOGIN MANAGER PROFILE MANAGER PROJECT MANAGER
ACTIVITY MANAGER PLUG-INS INVOICE GENERATOR REPORT GENERATOR XML PARSER DATABASE MANAGER
5
The system is designed on the conventional three layered architecture composed of the Presentation Layer which contains all the logic related to the user interface and profile options, the Application Layer which contains all the logic related to “WR Time Tracking System”, and the Data Access Layer which handles all the interactions the application has with the database.
4.1.1.
Presentation Layer
GUI
System has common GUI with different views for managers, co-managers and normal users. When the user logs in to system, the login manager selects the appropriate view of the user according to their user level.
LOGIN MANAGER
The login manager handles all the login related processes such as authentication. PROFILE MANAGER
The profile manager is responsible for selecting the appropriate view of the user according to the user level.
PROJECT MANAGER
The project manager is responsible for creating new projects, editing existing projects deleting finished projects and assign new users for projects.
ACTIVITY MANAGER
The activity manager is responsible for creating new activities, edit existing activities delete finished activities.
PULG-INS
6
4.1.2.
Application Layer
The application layer has all the logic of the system. Every activity of presentation layer has to go through the application layer.
XML PARSER
The xml parser is responsible for extract the project details and updates them into the database. The xml file will be uploaded in a shared folder by the particular project manager. REPORT GENERATER
Report generator is handling the report generation process and sending the generated reports to managers via mail.
INVOICE GENERATOR
Invoice generator is responsible for generate invoices for billing purposes.
4.1.3.
Data Access Layer
DATABASE MANAGER
The database manager is providing interfaces to higher layers to read and write data from the database and to the database.
7
5.
Detailed System Design
5.1.
Use Case View
5.1.1.
User level use case diagram
The following diagram shows the use case diagram of user level. User levels are,
1. Administrator 2. Manager 3. Co – Manager 4. Developer
8
5.1.2.
Use case diagram of manager
Manager
Manager supervises a team of users and co-managers by having full access to team data by playing the most important role in Time Tracker application. Time Tracker can handle multiple teams. Team manager controls only one team.
9
The following activities can be done by manager,
• Project Management
Manager can create projects for his team including editing and deleting the projects that are already created. For a particular project, he can create task and assign users (developers) to that facilitating the editing and deleting for both created tasks and assigned user.
• Create co-manager account
In case of team is too big to manage or handle, the manager will create co-manager accounts dividing the team into sub teams. Then the co –managers will be responsible for managing those sub teams.
• Manage team data
Manager will be managing the data from co-managers as well as data from sub group team members.
•Create reports
Manager can generate reports for the entire team as well as for individual members. Individual users also can create their own reports.
•Generate Invoices
The manager also can generate invoices for co-managers as well as users according to the hourly rate if their tasks are billable.
Co-manager:
Co-manager performs some of manager's tasks such as working with users, projects, activities, generating reports, and invoices.
10
5.1.3.
Use case diagram for normal users
Users will be using the time tracker system to enter their work times. He can log into the Time tracking system by entering username and password. Then he can start capturing time at the beginning of task involvement and stop the time capturing after finishing his tasks to submit the time involvement related to that task. Users can generate reports for themselves to view the progress and check their task status. Also he can reset password in order to receive a new password to his mail account.
11
5.2.
Activity Diagrams
5.2.1.
Activity Diagram for Administrator:
The administrator of this time tracker will be had following these activities below in the activity diagram. She/he has authority to create the team managers, edit created team managers and import teams’ data. And also they can customize the both dynamic and static database fields.
Login to the system
Create team managers
Delete created team managers Edit/Modify created team managers
Import teams data
[If required]
Customize dynamic database fields
Send modifications to particular managers
Logout the system
12
5.2.2.
Activity diagram for Managers:
One of the key roles of this system is managers. They will organize the team activities by creating project, create activity/task, assign users, generate reports and upload the project file into the shared folder. If the team is large then managers can create co-managers and allow them to manage the team with same permissions which are having by managers.
Login to the system
Access team data
Manage Project Generate Reports Manage own teams
Delete project Edit project
Create project
Select Activity Create Activity
Assign Users
[If large Team]
Create Co-Managers
[If Managable Team]
Supervise Activity
Upload Project file in shared folder
Send Emails
Logout the system
13
5.2.3.
Activity Diagram for normal users:
Normal user will be using the time tracker system to enter their work times. The normal user will be doing the following tasks.
• Login time tracker:
Perform the authentication
• Start and stop timer:
User enters the time spend on each activity by clicking start and stop buttons of relevant activity.
• Logout time tracker:
14 Login By EmailID & Password
Check Validation
[If Success]
Error Message
[If Fails]
User Interface
Select Particular Task
Start Timer
Stop Timer
Processing Task
Log Out the interface
[If requested]
Send Report to Manager
Calculating time Do the selected task after start the time.
15
5.2.4.
Activity Diagram for Project files Extraction:
The users will parse an MS project file that is saved in shared folder by the project managers and extracts tasks assigned to a given resource on the user interface. Extraction will be happen on the user interface by using his login name and password. The project manager will be getting mail alerts when the tasks are updated. And he will provide emails when he will upload the project files to the shared folder.
Users ProjectManagers
Upload Project file in shared folder Login with EmailID & Password
Extract Project file
[If Success]
[If fail]
Display Error Message
Display Extraction Successful
Update in the database
View the task details Edit tasks in project file
Save edited tasks
Send Emails
16
5.3.
Class Diagrams
17 +createCoManager() +assignUser() +createProject() +deleteProject() +editProject() +createActivity() Manager +startTimeTracker() +setProgress() +stopTimeTracker() Developers +createTeam() +importteamData() Administrator +createProject() +editProject() +deleteProject() +assignUser() +createActivity() +generateInvoice() Co_Manager +systemLogin() +generateReport() +resetPassword() #Name : String #email : String #Password : String User +setProject() +setActivity() +setUser() +setTimePeriod() +setFieldValues() +setGroupBy() +isBillable() : bool +setReportType() +checkuserLevel() -repName : String -repTitle : String -repUser : String Report +getFinishTime() +getProgressDetails() +createBody() +setMailServer() +selectReciever() -Title : String -Sender : String -Reciever : String Mail +createUserSession() +initateSession() +closeUserSession() -user_name : String -user_level : short Session +checkLogin() +createSession() +connetEmailServer() +callAPI() +startTimeTracking() +stopTimeTracking() +getTotalTime() -MozillaPluginClass +convertToXml() XmlReport +exportToExel() CSVRepor 1 0..* +loadApplication() +loadPlugin() +initiateComponents() +setGUIProperty() +invokeLoad()
-TimeTrackerJFrame frame : object -ActJPanel actpanel : object -PeopleJPanel ppl : object -ProjectJPanel proj : object
TimeTrackerMain 1 * 1 0..* * 0..* +getLocation() +seperateTokens() +formatOutput() +exportToInterface() -FileStream file : object -StreamReader reader : object -fileLocation : String -StreamWriter write : object
XmlParse
*
*
*
18
5.4.
Component Diagram
The following diagram shows the components of “Open Source Time Tracking System” and the interaction between the components.
19
5.5.
Sequence Diagrams
5.5.1.
Sequence Diagram for Administrator and Managers
After successfully login to his/her user account, manager can create a new team or can import a team already created which is form of xml file. Addition to that manager can be added new country to the database and can edit or deactivate the country which is already inserted into database.
Manager can be created the co-manager, normal users such as developers and clients using his/her user privileges. And also can delete them or edit their profile. Then manager will create the projects and activities for the projects. Later he/she can be edited or deleted the projects or activities which those are created earlier. The manager can generate the report according to his requirements.
20
5.5.2.
Sequence Diagram for users
After successfully login to his/her user account, each and every user can see the projects and the activities which those are created by manager for all users. But particular activity which is related to particular user will be able to access. And he/she can only view others’ activities, Can’t be accessed. When user starts to do the activity, timer will start to count the time. Then finish the activity timer will stop the counting the time for the particular activity involved by the user.
And users also can be generated the reports. To generate the report they will have to select the project, activity and time periods.
21
5.5.3.
Sequence Diagram for overall system
After the finishing the activities by users they will save it in xml database which is in the local host. Later they will update it to the server and server will save or update the database using those details passed by the server. Same as retrieve also will be done.
22
5.6.
Database Design
23 Figure 15[database diagram of system]