Académique Documents
Professionnel Documents
Culture Documents
by PRO_C
(Sevgi Bayraktar, Duygu Saraolu, Yasemin ahin, Nazm Yenier)
Table of Contents
TABLE OF CONTENTS.........................................................................................................................................- 2 1. DEFINITION OF THE PROBLEM...................................................................................................................- 4 2. STATEMENT OF SCOPE...................................................................................................................................- 6 3. MAIN SCENARIO...............................................................................................................................................- 8 3.1 FIRST MEETING WITH PROJEX.........................................................................................................................- 8 3.2 CREATING A COMPANY ACCOUNT....................................................................................................................- 9 3.3 CREATING A USER PROFILE............................................................................................................................- 10 3.4 PAGE OF A PROJECT.......................................................................................................................................- 11 3.5 CREATING OR MODIFYING A TASK..................................................................................................................- 13 3.6 CREATING A GROUP OF USERS.......................................................................................................................- 15 3.7 GANTT CHART DISPLAY..................................................................................................................................- 16 3.8 MY OFFICE PAGE...........................................................................................................................................- 17 4. SYSTEM MODULES........................................................................................................................................- 19 4.1 HELP MODULE...............................................................................................................................................- 20 4.2 CREATE ACCOUNT MODULE..........................................................................................................................- 21 4.3 LOGIN MODULE.............................................................................................................................................- 23 4.4 DISPLAY PROJECT MODULE...........................................................................................................................- 25 4.5 PROJECT OPERATION MODULE......................................................................................................................- 27 4.6 TASK OPERATION MODULE...........................................................................................................................- 29 4.7 USER OPERATION, GROUP OPERATION AND RESOURCE OPERATION MODULES...........................................- 31 4.8 GRAPHICAL DATA DISPLAY MODULE............................................................................................................- 33 4.9 MY E-MAIL ACCOUNT MODULE...................................................................................................................- 34 4.10 MY OFFICE MODULE...................................................................................................................................- 35 5. ARCHITECTURAL DIAGRAMS...................................................................................................................- 36 5.1 WORK PACKAGES & PACKAGE/COMPONENT BASED DIAGRAMS (USING COSEML)...............................- 36 5.1.1 Package for project/task/human scheduling (General Project Management)..................................- 37 5.1.2 Packages for GUI..................................................................................................................................- 39 5.1.3 Packages for Database..........................................................................................................................- 39 5.1.4 Packages for file management..............................................................................................................- 39 6. ALGORITHM FOR CRITICAL PATH CALCULATION............................................................................- 40 7. UML DIAGRAMS.............................................................................................................................................- 42 7.1
7.2
7.3
7.4
7.5
USE CASE DAGRAMS (REVSED)..........................................................................................................- 42 CLASS DIAGRAM (REVISED).........................................................................................................................- 45 STATE DIAGRAMS..........................................................................................................................................- 46 ACTIVITY DIAGRAMS (REVISED)..................................................................................................................- 47 THE INTERACTION DIAGRAMS (COLLABORATION DIAGRAM REVISED........................................................- 53 -
8. CONTROL FLOW DIAGRAM........................................................................................................................- 56 9. DATA FLOW DIAGRAM (DFD).....................................................................................................................- 58 9.1 DFD LEVEL 0................................................................................................................................................- 58 9.3 DFD LEVEL 2 OF ACCOUNT MANAGEMENT..................................................................................................- 58 9.3.1 DFD Level 2 of Human & Resources Management..............................................................................- 58 9.3.2 DFD Level 2 of Information Management...........................................................................................- 59 9.3.3 DFD Level 2 of Project Management..................................................................................................- 59 10. DATABASE CONSTRUCTION WITH SQL & MSACCESS.....................................................................- 60 -
11. ENTITIES AND THEIR ATTRIBUTES........................................................................................................- 69 12. ENTITY RELATIONSHIPS...........................................................................................................................- 70 13. GRAPHICAL USER INTERFACES.............................................................................................................- 74 13.1 INPUT INTERFACES .......................................................................................................................................- 74 13.2 OUTPUT INTERFACES...................................................................................................................................- 82 14. PLATFORM ALTERNATIVES......................................................................................................................- 89 15. ESTIMATIONS (LINES OF CODE (LOC) BASED)..................................................................................- 91 15.1 EFFORT ESTIMATIONS..................................................................................................................................- 91 15.2 TIME ESTIMATIONS......................................................................................................................................- 91 16. DESIGN CONSIDERATIONS AND CONSTRAINTS................................................................................- 92 17. SCHEDULE FOR THE NEXT SEMESTER]...............................................................................................- 93 17.1 TENTATIVE MILESTONES OF THE PROJECT FOR THE NEXT SEMESTER........................................................- 93 17.2 GANNT CHART.............................................................................................................................................- 95 18. APPENDIX.......................................................................................................................................................- 96 18.1 CONTROL FLOW DIAGRAM..........................................................................................................................- 96 18.2 DATA FLOW DIAGRAM FOR LEVEL 0...........................................................................................................- 97 18.3 DATA FLOW DIAGRAM FOR LEVEL 1...........................................................................................................- 98 18.4 DATA FLOW DIAGRAM FOR PROJECT MANAGEMENT - LEVEL 2.................................................................- 99 18.5 DATA FLOW DIAGRAM FOR ACCOUNT MANAGEMENT - LEVEL 2.............................................................- 100 18.6 DATA FLOW DIAGRAM FOR INFORMATIONT MANAGEMENT - LEVEL 2.....................................................- 101 18.7 DATA FLOW DIAGRAM FOR HUMAN & RESOURCES MANAGEMENT- LEVEL 2.........................................- 102 18.8 DATA FLOW DIAGRAM FOR SCHEDULE MANAGEMENT - LEVEL 2............................................................- 103 -
2. Statement of scope
As stated in the first part this design report we are asked to design a project management tool as
a duty of the CEng491 Senior Design Project course. In this part of this design report, we aim to
explain what issues our main efforts will be spent on while designing ProjeX, our project
management tool.
The fundamental features mentioned in the first part of the report that we were to take into
consideration are all present in ProjeX. Apart from these, as a feed-back of the user and literature
survey we conducted during our requirement analysis phase, we have decided to include some
extra features to our design.
Here are the main titles of the issues we followed while designing ProjeX:
Multiple Project and Task Management: ProjeX will be designed for businesses. It
will allow managing several projects within an organization and several tasks within a
project. Moreover, it will offer a high level of flexibility when managing users, who have
different permissions depending on the project. Access rights will range from the basic
read-only to the full control level. A high level of security will be ensured while
managing different user types.
Multiple-User Environment: Efficient multiple user management will be one of our
main goals. ProjeX will allow lots of members with different titles and statuses in the
same project. All users will be able to consult and make changes on the tasks they are
assigned to in the limits their statuses permit. This will certainly be done simultaneously
and effortlessly.
A Web Based Program: ProjeX will be totally web-based and this is probably the most
powerful feature of it. Our deal is to enable the members of a software team to consult or
make changes in their data about the ongoing project and this should be done anytime
from anywhere. Members must be able to manage their tasks remotely, easily and
effortlessly. Being accessible on the internet is the only way for a project management
tool to provide all these facilities. ProjeX will be an online system, hence available 24
hours a day, from anywhere in the world. So one doesnt have to be in his office to
consult his project. Accessing ones project and making modifications on it would only
require a standard browser and an internet connection.
Instant E-mail Notification: Many people who answered to our user survey remarked
the necessity of this feature. Instant e-mail notification permits excellent communication
within a team. Each user may decide to receive an e-mail when he is assigned to a new
task or when one of his tasks is modified. E-mail notification will be automatic hence
freeing the teams time.
File uploading: Attaching files to ones messages, tasks, or to the whole project is
probably the best way to provide others with a good description of a subject. Screenshots
of different parts of the GUI, tutorials, images, reports etc. may be seen and consulted by
other team members whenever they are uploaded to the concerned part of the program.
6
Multiple Language Support: ProjeX will be available both in Turkish and in English.
During our user survey we noticed that information technology professionals do not use
project management tools so often. That is mostly because they are not willing to learn
how a new program works and to loose time on it. We thought Making ProjeX available
in Turkish would make people more eager for using it.
As Nice and User-Friendly GUIs as Possible!: Yes, we try to design the graphical user
interfaces of ProjeX as good-looking as possible again to let people more eager to use the
program.
3. Main Scenario
All computer programs, from the smallest program that calculates the sum of two integers to the
huge programs built upon millions of lines of code, have a way of working. Such way of
working includes in itself the order of happenings of different events and the conditions that
would let such events occur. We call it the main scenario of the program. In this part of this
design report the main scenario of ProjeX will be described step by step referring to the graphical
user interfaces of the program. We will start by the first meeting with the program and go
through all fundamental functionalities of it.
Those users who already had an account and started to use ProjeX will have to log on to their
account in order to use the program. They will be asked to provide their Company login
name, username and password in the corresponding fields on the Login Page. Once they will
provide necessary information and click on the login button, they will log on to their account
if the login information they provided is valid.
would click and put a tick on the permission called profile create/update/delete while
creating that users profile.
To create a new user profile the administrator has to supply only three data and nothing more:
A username, an e-mail address and the permissions that the new user will bear. Other
personal information may be supplied later by the user himself. Once the administrator
makes sure he supplied all necessary information about the new user to be created, he should
click on the Create Profile button.
11
As seen on figure 3.4.1 tasks of a project are listed with some of their attributes. These
attributes are Description, Status, Priority, Estimated Hours of Completion, %Done, Start
Date, Due Date and Assigned Users. One may list the tasks according to an attribute of it by
clicking on the name of the attribute. Clicking on the label Start Date will arrange the tasks
by their starting date for example.
The brief descriptions of the tasks, which are in fact their names, are underlined. This is so
because these names are hyperlinks and when one clicks on the name of a task, the page for
displaying the task will be opened. The function and usage of this page will be explained in
section 3.5.
There are also several buttons on the page to enable a user to perform different operations
like adding a new task to the project, creating a new user profile, a new group, a new
resource, displaying the Gantt chart of the project, uploading a file etc
Notice that one may create or modify a task, a resource or a group only if he bears the
adequate permissions to do so. If not he will not be able to perform such operations because
the buttons needed to perform these operations will be inactive for him. This is illustrated in
figure 3.4.2.
Inactive buttons
showing that the user
have
necessary
permissions to perform
operations
doesnt
these
figure 3.4.2 Projects page: view of a user not bearing some permissions
12
13
14
15
gantt chart
button
17
18
4. System Modules
While designing and implementing ProjeX, object oriented methods will mainly be followed.
Therefore we first decided on the basic entities and their attributes that will be used in the design
of the system and then elaborated the working parts of the program. A module simulates a
general view of a functional part of the whole system. A module might take inputs that specify its
action and it includes methods or other modules that it calls to perform necessary operations.
The modules explained in this section include all single parts of the whole ProjeX functioning
system. These modules are a slightly revised version of the modules we put in the initial design
report o ProjeX.
The following modules are explained in the following sections:
1. Help Module
2. Create Account Module
3. Login Module
4. Display Project Module
5. Project Operation Module
6. Task Operation Module
7. User Operation Module
8. Group Operation Module
9. Resource Operation Module
10. Graphical Data Display Module
11. My E-Mail Account Module
12. My Office Module
19
CheckTheStateOfHelpButton()
DisplayHelpPages()
C h e c k T h e S t a t e O f H e lp B u t t o n ( )
I f H e lp B u t t o n
is c lic k e d o n
T
D s p la y H e lp P a g e s ( )
20
[STRING]
user_name
user_password
[STRING]
[STRING]
The information above must obligatorily be provided to create an account. Other information
about the creator profile may be provided later [User Operation Module, section 4.7]. Once an
account is created the system will automatically open it for the usage of its creator.
Methods related to Create Account Module may be listed as:
-
GetCreatorInfo()
: Get the information provided by the user to create the account.
CheckCreatorInfo() : Check whether the information provided by the user to create an
account is sufficient.
SendInsufficientInfoMessage()
: Send a message to the user stating that the
information provided is not sufficient to create an
account.
CreateAccount()
: Create a new account with the information provided.
OpenAccount()
: Open the account just created.
'
21
G e tC re a to rIn fo ()
C h e c k C re a to rIn fo ()
C r e a te A c c o u n t( )
S e n d I n s u f f ic ie n t I n f o M e s s a g e ( )
I f c r e a t o r in f o
is s u f f ic ie n t
O p e n A c c o u n t()
22
company_login_name [STRING]
user_name
[STRING]
user_password [STRING]
If these three inputs provided by a user are not valid for any existing account, Login Module will
reject the users demand of logging in to an account.
If the inputs above are valid then Login Module will open the corresponding account for the user.
Before opening the account, the status of the user will be determined by his information in the
database. This is necessary since the session opened to a user bearing the manager status is
different than the session opened to other normal users. The number of operations that a manager
may perform is also greater hence the system should know who is logging in. The status of a user
is determined once when the user logs in and is kept in memory till the user logs out of his
account. This helps checking easily whether the status of a user allows him to perform a specific
operation like adding/deleting tasks, creating new user profile etc
Methods related to Login Module may be listed as:
- GetUserInfo()
- CheckUserInfo()
- GetUserStatus()
- OpenAccount()
- RejectLogin()
- SendRejectionMessage()
: Get the company name, user name and password of the user
: Check the company name, user name and password of the
user.
: Get the status of the logged in user.
: Open the corresponding account of the user.
: Reject the login demand.
: Send the necessary rejection message.
23
G e tU s e r In f o ()
S e n d R e je c t io n M e s s a g e ( )
C h ec k U serIn fo ()
G e tU s e r S ta tu s ( )
I f u s e r in f o
is v a li d
O p e n A c c o u n t()
24
R e j e c t L o g in ( )
25
O p e n P r o je c t ( )
A d ju s t T a s k L is t P r o p e r t y ( )
D e l e t e P r o je c t ( )
A d ju s t T a s k L is t F it e r ( )
G e t S o r t C r i t e r io n ( )
A d ju s t S o r t C r it e r io n ( )
D e le t e T a s k ( )
L is t T a s k s ( )
C h e c k C l ic k e d B u t t o n S t a t u s ( )
F
I f o p e r a t io n
a b o u t p r o je c t
I f o p e r a t io n
abo ut task
T
If O p en
P r o je c t
If So rt
T a sk s
F
T
If C reate
P r o je c t
C re a te T a s k ( )
F
T
I f o p e r a t io n
abo ut gro up
I f E d it
P r o je c t
G e t G r a p h ic a lD a t a T y p e ( )
G e t R e s o u r c e O p e r a t io n T y p e ( )
G e t G r o u p O p e r a t io n T y p e ( )
G r a p h ic a lD a t a D is p la y O p e r a t io n (
d a ta _ ty p e )
R e s o u r c e O p e r a t io n (
o p e r a t io n _ t y p e )
G r o u p O p e r a t io n (
o p e r a t io n _ t y p e )
I f D e le t e
T a sk
F
C r e a t e P r o je c t ( )
F
I f o p e r a t io n
a bo ut re so urc e
I f D e le t e
P r o je c t
T
T
E d it P r o je c t ( )
I f g ra p h ic a l
d a t a d isp la y
o p e r a t io n
If C reate
T a sk
F
F
D is p la y T a s k ( )
I f D is p la y
T a sk
CheckUserStatus()
SendRejectionMessage()
27
The following flowchart summarizes the operation of the Project Operation Module:
C h e c k O p e r a t io n T y p e ( )
C h e c k U s e r S ta tu s ( )
S e n d R e je c t io n M e s s a g e ( )
F
If u se r st a t u s is
a p p r o p r ia t e
F
I f o p e r a t io n is
C r e a t e P r o je c t
R e je c t O p e r a t io n D e m a n d ( )
F
I f o p e r a t io n is
E d it P r o je c t
F
I f o p e r a t io n is
D e le t e P r o je c t
G e t P r o je c t In f o ( )
C h e c k P r o je c t In f o ( )
S e n d In s u f f ic ie n t In f o M e s s a g e ( )
I f p r o je c t
in f o r m a t io n is
su f f ic ie n t
E d it P r o je c t ( )
S a v e N e w P r o je c t In f o r m a t io n ( )
C r e a t e P r o je c t ( )
28
D e le t e P r o je c t ( )
[STRING]
[LONG STRING]
[INTEGER]
percentage_of_completion [INTEGER]
task_priority*
start_date*
due_date*
estimated_hours
[INTEGER]
[STRING]
[STRING]
[STRING]
Apart from the attributes provided by the user, the system will automatically assign the following
attributes to a newly created task:
task_number
[INTEGER]
task_creator
[INTEGER]
CheckUserStatus()
CreateTask()
The following flowchart summarizes the operation of the Task Operation Module:
C h e c k O p e r a t io n T y p e ( )
C h e c k U s e rS ta tu s ( )
S e n d R e je c t io n M e s s a g e ( )
F
I f u s e r st a t u s is
a p p r o p r ia t e
I f o p e r a t io n is
C re a t e T a sk
R e je c t O p e r a t io n D e m a n d ( )
F
I f o p e r a t io n is
E d it T a sk
F
I f o p e r a t io n is
D e le t e T a sk
G e t T a s k In f o ( )
C h e c k T a s k In f o ( )
S e n d In s u f f ic ie n t In f o M e s s a g e ( )
If T a sk
in f o r m a t io n is
s u f f ic ie n t
E d it T a s k ( )
S a v e N e w T a s k In f o r m a t io n ( )
C r e a te T a s k ( )
D e le t e T a s k ( )
User Operation Module, Group Operation Module and Resource Operation Module all work in a
similar manner so we choose to explain them in this same section.
These three modules are responsible for four kinds of action:
1. Create
2. Edit
3. Assign
4. Delete
A project manager should first create a new user profile inside a project and then assign this new
user to a task. He is also free to edit the attributes of the user or delete completely the user profile
from the account.
On the other hand, a group of users might be created and be assigned to a task inside a project.
Again a project manager may create a group with already existing user profiles in a project (like
database group, hardware group etc). One can also create a group and then edit it, to add new
users to the group for example. Finally the whole group might be completely deleted by the
project manager.
As a user and a group, a resource for a project might be created, edited, assigned to a task (or to
the whole project) and deleted.
The methods related to these three modules function in the same manner as the ones related to
Project Operation and Task Operation Modules. The only different method is
Assign(task_number):
- Assign( task_number [INTEGER] )
We provide in Figure 4.7 the flowchart for Resource Operation Module. The flowcharts for User
Operation and Group Operation Modules are similar.
31
C h e c k O p e r a t io n T y p e ( )
C h e c k U s e r S ta tu s ( )
S e n d R e je c t io n M e s s a g e ( )
F
I f u s e r st a t u s is
a p p r o p r ia t e
F
I f o p e r a t io n is
C reate
F
I f o p e r a t io n is
E d it
C r e a te R e s o u r c e ( )
R e je c t O p e r a t io n D e m a n d ( )
E d it R e s o u r c e ( )
F
I f o p e r a t io n is
A ss ig n
T
A s s ig n R e s o u r c e ( t a s k _ n u m b e r )
S a v e N e w R e s o u r c e In f o r m a t io n ( )
I f o p e r a t io n is
D e le t e
T
D e le t e R e s o u r c e ( )
DisplayProjectStatistics()
: Generate and display statistics for the project.
DisplayProjectCriticalPath() : Generate and display critical Path for the project.
The following flowchart summarizes the operation of Graphical Data Display Module:
C h e c k V a lu e O f D a t a T y p e ( )
F
I f d a t a t y p e is
G an tt C h art
F
I f d a t a t y p e is
S t a t ist ic s
D is p la y P r o je c t G a n t t C h a r t ( )
D is p la y P r o je c t S t a t is t ic s ( )
F
I f d a t a t y p e is
C r it ic a l P a t h
T
D is p la y P r o je c t C r it ic a lP a t h ( )
DisplaySelectedMessage()
ComposeMessage()
ReplyToMessage()
ForwardMessage()
DeleteMessage()
O p e n M a ilA c c o u n t ( )
C h e c k C lic k e d B u t t o n S t a t u s ( )
If re quest fo r
d is p la y in g a
m e ssa ge
T
D is p la y S e le c t e d M e s s a g e ( )
If re quest
fo r
c o m p o s in g a
m e ssa ge
If re quest
f o r r e p ly in g
t o a m e ssa ge
T
C o m p o s e M e s s a g e ()
If re quest fo r
f o r w a r d in g a
m essage
If reque st
f o r d e le t in g
a m e ssa g e
T
R e p ly T o M e s s a g e ( )
F o rw a rd M e s s a g e ()
34
D e le t e M e s s a g e ( )
35
5. Architectural Diagrams
5.1 Work Packages & Package/Component Based Diagrams (using
COSEML)
The system can be decomposed to the following packages which can be implemented
independently. These packages resemble and comply with the modules whose detailed
definitions have been made in the Modules section of the report. The general system is
composed of the packages seen in the below diagram:
M e a n in g s o f s y m b o ls u s e d :
C om ponent
P ackage
D a ta b a s e s a n d
P r o je c t M n g m t .
P ac k ag es are
im p le m e n t e d i n t h e
n e x t d ia g r a m
P r o je X
P r o je c t
M n g m t.
GU I
P r o je c t
M anager G U I
P r o je c t
M em ber G U I
D a ta b a s e
G rou p
L eader G U I
D a t a b a s e T a b le
N o n - p r o je c t
m em ber G U I
F ile
M a n a g m t.
U p lo a d
Figure 5.1 COSEML Diagram Showing the General Packages of the System
36
Im p o rt/
E xp o rt
37
38
P r o je X
P r o je c t
M anagem ent
P ac kages &
S u b-p ac kag es
P r o je c t
M n g m t.
C om pany
W orker
s h o w s r e la t io n s
b e tw e e n p a c k a g e s
G ro up
U s e r T a b le s
G ro u p
S t a t is t ic s
Account
T ask
R eso u rc e
L is t in g
S ta tu s
P r o je c t
R e s o u r c e s T a b le
P r o je c t T a b le
T a s k T a b le
O th e r R e s .
S c h e d u le
A d m in is t r a t o r
M anager
G ro up L ead er
O r d in a r y U s e r
P r o je c t
H um an R es.
T ask
F oru m
G a n tt C h a rt
D ependenc y
M e e t in g
S o ftw a re R e s .
C r it ic a l
P a th
Figure 5.2 The COSEML Diagram Showing the Packages and the Components of
Main Project Management Package (Module)
users will see the links active if they have the permission to use that link. The GUI is
divided into the modules below:
User database
Task database
Group database
Project database
Resource database
A project is composed of smaller tasks whose deadlines and durations are, at least
approximately, known. Also these tasks might be dependent on each other, i.e. one task
must be finished before another so that the later one can use the predecessors outputs.
To compute minimum completion time (the earliest date that all the tasks in the project
can be finished) can be computed using the shortest path algorithm for Directed Acyclic
Graphs (DAGs) :
vertices[no_of_vertices];
completion_time[ vertices [1] ] = length[ task[ 1 ] ];
for i : 2 to n
completion_time[vertices[i]] = 0;
topological_sort(vertices);
//u,v :vertices
for u : 1 to m
for v : 1 to k
if ( (u,v) is an edge leaving u)
completiontime [vertices] =
max(current_completion_time[v]+ completion_time[u] + task_time[v] );
Critical path is the longest time from the starting vertex to final vertex. If a project
should be completed earlier than the calculated critical path, the times for the tasks in the
project should be reduced. Time estimates to calculate the task durations can be computed
as below:
( Minimum time + likely time * 4 + maximum time ) / 6
42
7. UML Diagrams
7.1 Use Case Diagrams (Revised)
The Manager / Administrator Use Case Diagram below, shows the main processes
that an administrator of a system and a project manager can do when they are in the
system. The administrator must have created the company account and the user accounts
for the project manager to create and assign projects and tasks to users. Same rule applies
for resource management, too. The manager is also responsible for assigning permissions
to users in accordance with their capabilities in a project or a task. The manager is the
member of the project who has all the permissions in the system.
m a n a g e ta s k s
c re a te u s e r
account
c r e a te /m a n a g e
p r o je c t
v ie w p r . / t a s k s t a t u s
< < in c lu d e > >
a s s i g n p r o je c t m e m b e r
< < e x te n d > >
c r e a t e g r o u p le a d e r
ac c ount
a s s ig n g r o u p le a d e r
M anager
A d m in
c re a te c o m p a n y
account
m an ag e reso u rc es
s e t p r io r i t y
ad d reso u rc e
43
The Project Member Use Case Diagram below shows the capabilities of an
ordinary project member in the system. Of course, more capabilities can be added to the
user by changing his/her permissions.
e d it p r o f ile
v i e w a s s ig n e d t a s k s
v i e w a s s ig n e d p r o j e c t s
< < e x te n d > >
v ie w p r . / t a s k / p e r s o n a l s t a t u s
M em ber
u p l o a d f i le s
e n te r ta s k s ta tu s
< < e x te n d > >
send m essage
44
The Project Manager / Group Leader Use Case Diagram below shows the group leaders
capabilities in relation to the project manager. A group leader has most of the permissions
that the project manager has. But he/she is responsible for the group he/shes leading and
his permissions are valid in that group.
c r e a te g r o u p
a s s ig n g r o u p m e m b e r
a s s ig n g r o u p le a d e r
v ie w g r o u p s t a t u s
P r o je c t
M anager
a s s ig n r e s o u r c e s
a s s ig n / m a n a g e g r o u p / t a s k
Figure 7.3 The Project Manager / Group Leader Use Case Diagram
45
G rou p
L eader
G rou p
A c c o u n t L o g in ()
E d it P r e f e r e n c e s ( )
S ig n - in ( )
S ig n - o u t ( )
U p lo a d F ile ( )
G e t I n f o r m a t io n ( )
S u b m it C o m p le t e d T a s k ( )
V ie w G a n n t C h a r t ( )
V ie w T a s k S t a t u s ( )
V ie w P r o je c t S t a t u s ( )
1 ...*
g _ id
g_nam e
V
V
V
V
ie w
ie w
ie w
ie w
R
C
G
G
e s o u rc e s ()
r it ic a lP a t h ( )
ro u p M e m b e rs ()
ro u p L e a d e r()
1
A d m in is t r a t o r
a d m _ id
adm _nam e
m _ id
m _nam e
C re a te C o m p a n y A c c o u n t()
C re a te U s e rA c c o u n t()
A d d R E s o u rc e ()
C re a te T a s k ()
C r e a t e P r o je c t ( )
C re a te G ro u p ()
A s s ig n P r o je c t ( )
A s s ig n T a s k ( )
E d it P r e f e r e n c e s ( )
E d it A c c o u n t ( )
E d it P r o je c t ( )
E d it T a s k ( )
A s s ig n P e r m is s io n ( )
V ie w G a n n t C h a r t ( )
G rou p L eader
M anager
1
1
1
1 ...*
H as
H as
P r o je c t
p _ id
p_name
le a d e r _ id
le a d e r _ n a m e
V ie w G r o u p ( )
V ie w G r o u p M e m b e r s ( )
C re a te G ro u p M e m b e r()
E d it G r o u p M e m b e r ()
V ie w T a s k S t a t u s ( )
V ie w P r o je c t S t a t u s ( )
A s s ig n T a s k ( )
A s s ig n d u e D a t e ( )
C re a te G ro u p ()
1 ...*
D is p la y C r it ic a lP a t h ( )
C a lc u la t e D e p e n d e n c y ( )
L is t P r o je c t ( )
F o r m P r o je c t ( )
A d d P r o je c t ( )
D e le t e P r o je c t ( )
E d it P r o je c t ( )
Task
t _ id
t_ n a m e
D is p la y D u e D a t e ( )
F o rm T a s k ()
C re a te T a s k ()
E d it T a s k ( )
D e le t e T a s k ( )
A s s ig n T a s k ( )
1 ...*
A ccou n t
a _ id
L is t T a s k s ( )
O p e n P r o je c t ()
D is p la y T a s k ( T a s k I d ,C lie n t _ S t a 1 . . . *
tu s )
C h e c k P e r m is s io n ( )
In
D is p la y G a n n t C h a r t ( )
D is p la y S t a t is t ic s ( )
D is p la y P r e f e r e n c e s ( )
C r e a t e P r o f ile ( )
H as
1 ...*
F ile
C re a te R e s o u rc e ()
D e le t e R e s o u r c e ( )
E d it R e s o u r c e ( )
A s s ig n R e s o u r c e ( )
f_ n a m e
f _ id
U p lo a d F ile ( )
E x p o r t F ile ( )
I m p o r t F ile ( )
R e sou rce s
r _ id
r_ n a m e
1
S yste m
P re fe re n ce s
A c t iv a t e M y O f f ic e ( )
A c t iv a t e A c c o u n t ( )
A c t iv a t e M a n a g e r ( )
A c t iv a t e M e m b e r ( )
A c t iv a t e G r o u p ( )
A c t iv a t e G r o u p L e a d e r ( )
S to re D a ta ()
R e a d D a ta ()
E d it P r e f e r e n c e s ( )
V ie w P r e f e r e n c e s ( )
46
D a ta ba se
1
C r e a te A c c o u n t( )
C h e c k in p u t
v a lid ity
S i g n - in ( )
c
R e s p o n s e ( ) [ v a l id ]
O p e n P r o je c t ( )
S how u ser
accou n t
S to re
A cco u n t I n fo
E d i t P r o je c t ( )
D is p la y
P r o je c t s
A d d M em b er()
B ac k ()
C h an g e P referen c es ()
G o H o m eP ag e()
E d it M e m b e r ( )
S h o w T a s k L is t ( )
D is p la y
M e m bers
D is play
C urrent Task s
A d dR eso u rc e()
S to re n e w
R e sou rce
E d it M e m b e r
I n fo
V ie w D e t a i ls ( )
V i e w D e t a il s ( )
P r o je c t D e t a i ls
D is p la y
G an n t C h a rt
A s s ig n R e s o u r c e ( )
V i e w D e t a il s ( )
D is pla y P r o je c t
S ta tu s
C re a te G a n n t
C h art
A d d M em b er()
V ie w T a s k S t a t u s ( )
S to re N e w
P re fe re n ce s
S to re T a sk
E d it M e m b e r ( )
V ie w P r o je c t S t a t u s ( )
P r e f e r e n c e D e t a i ls
A d d T ask ()
D is play
C urren t T ask s
S to re
M em ber
S to re n e w
p r o je c t
E d it T a s k ( )
D isp la y S e le cte d
P ro je ct
C r e a t e P r o je c t ( )
E d it P r e f e r e n c e s ( )
A c c o u n t c r e a te d
R e s o u r c e D e t a ils
V ie w D e t a i ls ( )
D is p la y T a s k
S ta tu s
V ie w D e t a i ls ( )
T a s k D e t a ils
S to re
M e m b e r in f o
V i e w D e t a il s ( )
M e m b e r D e t a i ls
A dd R esou ce
To m em ber
V ie w D e t a i ls ( )
R e s o u r c e D e t a ils
Aa
P r o je X
A d m in is t r a t o r
S t a r t R e g is t e r in g F o r C o m p a n y r t
P r o v id e C o m p a n y
S ig n - u p I n f o
C h e c k V a lid it y
[ r e je c t ]
[a c c e p t]
S t o r e S ig n - u p
in f o in d a t a b a s e
C o m p a n y A c c o u n t C re a te d
S t a r t L o g g in g - in c o m p a n y A c c o u n t
C h e c k V a lid it y
c o m p a r in g w it h
d a ta b a s e
E n t e r L o g - in
In fo
[ r e je c t ]
[a c c e p t]
D ir e c t T o u s e r
acco u n t
L o g g in g - in c o m p le t e d
Figure 7.6
The administrator creates the accounts then any member can log-in their company
accounts. The validities of the log-in information are checked. If not valid the user is
directed back to the log-in page.
48
P r o je c t M a n a g e r
P r o je X
S t a r t M a n a g in g A c c o u n t
S e le c t f r o m
C o m p an y A cco u n t
M a n a g e m e n t O p t io n s
V a lid a t e o p t io n
[ p r o je c t _ s e le c t ]
M an ag e
p r o je c t
p r o je c t m a n a g e d
[ r e s o u r c e _ s e lc t ]
[ g r o u p _ s e le c t ]
M an ag e
re s o u rc e s
reso u rc es m an ag ed
[ m e m b e r _ s e lc t ]
[ p re f e r _ s e le c t ]
g ro u p s m an ag ed
M an ag e
g ro u p s
m em b ers m an ag ed
M an ag e
m e m b e rs
M an ag e
p re fe re n c e s
p referen c es m an ag ed
S t a r t M a n a g in g A P r o je c t
S e le c t a n
O p t io n
V a lid a t e o p t io n
a d d n e w p r o je c t
d e le t e a p r o je c t
e d it a p r o je c t
a s s ig n a u s e r
v ie w p r o je c t s t a t u s
u p lo a d a f ile
s p e c if y t a s k d e p e n d e n c ie s
a d d a ta s k
Figure 7.7
After logging-in the system, the project manager can choose one of the options
shown above to manage the company account.
49
P r o je c t M a n a g e r / G r o u p L e a d e r
P r o je X
S t a r t M a n a g in g A R e s o u r c e
V ie w L is t o f
R e s o u rc e s
S h o w L is t
S e le c t a n
o p t io n
V a lid a t e o p t io n
ad d reso u rc e
d e le t e r e s o u r c e
a s s ig n r e s o u r c e
v ie w s t a t u s
S t a r t M a n a g in g A G r o u p
V ie w L is t o f
G ro u p s
S h o w L is t
S e le c t a n
o p t io n
V a lid a t e o p t io n
c r e a te g r o u p
ad d grou p
d e le t e g r o u p
a s s ig n g r o u p
v ie w g r o u p
a s s ig n m e m b e r
Figure 7.8
The project manager or the group leader can choose to folllow the menus for
options shown above. Then their options are evaluated and the result is displayed.
50
P r o je c t M a n a g e r / G r o u p L e a d e r
P r o je X
s t a r t a d d in g a t a s k
E n t e r t a s k in f o
C h e c k V a lid it y
[ in v a lid ]
v a lid ]
C a lc u la t e T a s k
D ep en d en cy
[o th e r ta s k s
e ffe c te d ]
U s e r in f o r m e d
o f th e c h a n g e s
S t o r e t a s k in
d a ta b a s e
ta s k a d d e d
P r o je c t M a n a g e r / G r o u p L e a d e r / M e m b e r
P r o je X
S t a r t L is t in g T a s k s
L is t C r it e r ia
S e le c t c r it e r ia
E v a lu a t e
C r it e r ia
S e le c t f r o m t h e
d a t a b a s e a c c o r d in g
t o t h e c r it e r ia
D is p la y
S e le c t io n L is t
s e le c t io n v ie w e d
Figure 7.9
Adding a task can be done by the project members who have task-adding
permissions.
After a task is added, its dependency with its predecessors is calculated and the gannt
chart is updated according to the new task.
51
All project members can list the tasks and their statuses; they can also select
criteria for viewing the tasks. For example, one user can choose to see only the tasks that
are completed up to that moment.
P r o je c t M a n a g e r / G r o u p L e a d e r
P r o je X
s t a r t d e v e lo p in g G a n t t C h a r t
ta s k a d d e d to
d a ta b a s e
a d d ta s k s
V ie w A d d e d
ta s k s
R e q u e s t G a n tt
C h a rt
V ie w in g
B u ild G a n t t C h a r t b y
in f o f r o m t h e
d a ta b a s e
G a n t t c h a r t D is p la y e d
Figure 7.10
The data for creating the Gantt Chart for the project is automatically updated in
the database when a new task is added to the project. The gantt chart is displayed when
there is a request from the user or after the user adds a new task.
52
P r o je c t M e m b e r / G r o u p L e a d e r
P r o je X
S t a r t a d d in g c o m p le t e d t a s k in f o
C h a n g e ta s k s ta tu s
t o c o m p le t e d
c h e c k t im in g
[ o n t im e ]
[ la t e ]
in f o r m G r o u p
le a d e r / P r o je c t m a n a g e r
o f c o m p le t io n
C a lc u la t e
d e p e n d e n c ie s
e d it d e p e n d e n t s '
d u e d a te s
c o m p le t e d t a s k in f o a d d e d
S to re a d d e d ta s k
in f o in d a t a b a s e
P r o je c t M a n a g e r
P r o je X
S t a r t c o n f ir m in g c o m p le t io n o f a t a s k
G e t a p p ro v a l
o f c o m p le t io n
M a rk T a s k a s
" c o m p le t e d " a n d
s t o r e in d a t a b a s e
C o n f ir m
c o m p le t io n
c o n f ir m in g c o m p le t e d
Figure 7.11
When a tasks completion information is added to the database, the system checks
if it is on time or late. If it is late, the finisihing times of dependents of that task is
modified.
A task is in the state of completed only when it is approved completed by the
project manager; and it is stored in the database as completed.
53
: A d m in is t r a t o r
2 :C r e a t e A c c o u n t I n f o ( )
5 :E d it P r e f e r e n c e s
1 :E n t e r S ig n u p I n f o ( )
3 :A c t iv a t e A c c o u n t
:M anager
: S y s te m
:A ccount
7 :A c t iv a t e P r o j e c t
4 :S t o r e D a t a
6 :C r e a t e P r o je c t ( )
1 0 :F o r m G r o u p
1 1 :C r e a t e M e m b e r A c c o u n t
8 :C r e a t e T a s k ( )
1 9 :I n c lu d e P r o je c t ( )
: P r o je c t
: D a ta b a s e
2 1 : C a l c u la t e D e p e n d e n c y ( )
9 :I n c l u d e T a s k ( )
1 4 : I n c lu d e P r o j e c t ( )
:T ask
2 0 :I n c l u d e G a n n t C h a r t ( )
1 3 :C r e a t e G r o u p L e a d e r ( )
1 7 : I n c lu d e R e s o u r c e
: R e s o u rc e
1 5 :A s s ig n T a s k ( )
1 6 :I n c lu d e R e s o u r c e ( )
:M em ber
: G ro u p
1 8 :I n c lu d e R e s o u r c e
1 2 :P ic k G r o u p L e a d e r ( )
Figure 7.12 The Main Procedures in the System During a Project Creation.
54
: G ro u p L e a d e r
:M anager
2 :E d i t P r o je c t ( )
4 . E d it T a s k ( )
1 : V ie w P r o je c t S t a t u s ( )
3 . V ie w T a s k S t a t u s
: P r o je c t
:T ask
6 :S t o r e D a t a ( )
5 .S to re D a ta ()
: D a ta b a s e
This diagram shows the main procedure for adding a task to a project.
2 :C r e a t e G r o u p ( )
: G ro u p L e a d e r
1 :V i e w M e m b e r ( )
: G ro u p
3 :A s s i g n M e m b e r ( )
4 :C r e a t e R e s o u r c e ( )
6 :S t o r e D a t a
:M em ber
: R e s o u rc e
5 :A s s i g n T a s k
7 :C a l c u la t e D e p e n d e n c y
:T ask
: D a ta b a s e
Figure 7.13 The Sequences of the Group Leaders Creating a Group and Assigning
Tasks and Members to it
55
2 :E d i t T a s k ( )
1 :C o m p l e t e T a s k ( )
:M em ber
3 :I n f o r m M a n a g e r ( )
:Task
4 :A p p r o v e T a s k ( )
5 :S t o r e D a t a ( )
:M anager
: D a ta b a s e
Figure 7.14 Completion Approval of a Task by the Project Manager; the Task is
Submitted by a Project Member
56
57
58
59
60
2. PROJECTS table stores the name of the project, when it was created, the date the
company started to work on the project, the due date, stored here. The CompanyID
field helps us distinguish between projects of different companies. Every project has a
different forum to provide easy communication among people working on that project.
The ForumID field in this table associates the project with the corresponding forum.
CREATE TABLE PROJECTS(
ProjectID INTEGER,
CompanyID INTEGER,
ProjectName CHAR(30),
ProjectCreationDate DATE,
ProjectBeginDate DATE,
ProjectEndDate DATE,
ProjectEstimate CHAR(50),
ProjectDescription CHAR(30),
ProjectPriority INTEGER,
ProjectTesterName CHAR(100),
ForumID INTEGER,
PRIMARY KEY (ProjectID),
FOREIGN KEY (CompanyID) REFERENCES COMPANY
ON DELETE CASCADE,
FOREIGN KEY (ForumID) REFERENCES FORUM );
61
3. TASKS table stores all the tasks.The ProjectID field associates each task with the
project they belong to.
CREATE TABLE TASKS(
TaskID INTEGER,
ProjectID INTEGER,
TaskName CHAR(30),
TaskStartDate DATE,
TaskEndDate DATE,
TaskPriority INTEGER,
TaskStatus REAL,
WorkDone REAL,
TaskEstimation CHAR(50),
TaskTesterName CHAR(100),
PRIMARY KEY (TaskID),
FOREIGN KEY (ProjectID) REFERENCES PROJECTS
ON DELETE CASCADE );
Access view of TASKS:
62
5. This table stores resources with the ID of the company that they belong to.
CREATE TABLE RESOURCES(
ResourceID INTEGER,
CompanyID INTEGER,
ResourceName CHAR(30),
ResourceDescription CHAR(200),
ResourceCost INTEGER,
PRIMARY KEY (ResourceID),
FOREIGN KEY (CompanyID) REFERENCES COMPANY
ON DELETE CASCADE);
Access view of RESOURCES:
63
8. A resource, like a laptop may be allocated for a user. This kind of information is stored
in this table.
CREATE TABLE RESOURCES_USERS(
ResourceID INTEGER,
UserID INTEGER,
WasAllocatedOn DATE,
WillBeAllocatedTill DATE,
PRIMARY KEY (ResourceID,UserID),
FOREIGN KEY (UserID) REFERENCES USERS
ON DELETE CASCADE);
Access view of RESOURCES_USERS:
9. A resource may be allocated for a group. This kind of information is stored in this
table.
CREATE TABLE RESOURCES_GROUPS
(ResourceID INTEGER,
GroupID INTEGER,
WasAllocatedOn DATE,
WillBeAllocatedTill DATE,
PRIMARY KEY (ResourceID,GroupID),
FOREIGN KEY (GroupID) REFERENCES GROUPS
ON DELETE CASCADE);
11. Every project has one or more administrators. That information is stored in the
following table.
CREATE TABLE ADMIN(
AdminID INTEGER,
AdminName CHAR(30),
ProjectID INTEGER,
PRIMARY KEY (AdminID),
FOREIGN KEY (ProjectID) REFERENCES PROJECTS );
Access view of ADMIN:
13. This table stores the information which user is assigned to which project.
CREATE TABLE USERS_PROJECTS(
UserID INTEGER,
ProjectID INTEGER,
Right CHAR(10),
PRIMARY KEY (UserID, ProjectID),
FOREIGN KEY (UserID) REFERENCES USERS,
FOREIGN KEY (ProjectID) REFERENCES PROJECTS);
Access view of USERS_PROJECTS:
65
14. This table stores the information which group is assigned to which project.
CREATE TABLE GROUPS_PROJECTS(
GroupID INTEGER,
ProjectID INTEGER,
PRIMARY KEY (GroupID, ProjectID),
FOREIGN KEY (GroupID) REFERENCES GROUPS,
FOREIGN KEY (ProjectID) REFERENCES PROJECTS);
Access view of GROUPS_PROJECTS:
15. This table stores the information which user is assigned to which task.
CREATE TABLE USERS_TASKS(
UserID INTEGER,
TaskID INTEGER,
Right CHAR(10),
PRIMARY KEY (UserID, TaskID),
FOREIGN KEY (UserID) REFERENCES USERS,
FOREIGN KEY (TaskID) REFERENCES TASKS);
Access view of USERS_TASKS:
16. This table stores the information which group is assigned to which task.
CREATE TABLE GROUPS_TASKS(
GroupID INTEGER,
TaskID INTEGER,
PRIMARY KEY (UserID, TaskID),
FOREIGN KEY (UserID) REFERENCES USERS,
FOREIGN KEY (TaskID) REFERENCES TASKS);
Access view of GROUPS_TASKS:
66
17. The following table is going to be used in the authentication process. The data entered
by users during the log-in-phase will be checked for validity using the
USERLOGINDATA table and the decision to authenticate them or not will be made.
CREATE TABLE USERLOGINDATA(
UserLoginName CHAR(15),
CompanyLoginName CHAR(15),
Password CHAR(10),
UserID INTEGER,
PRIMARY KEY (UserLoginName),
FOREIGN KEY (CompanyLoginName) REFERENCES COMPANY
FOREIGN KEY (UserID) REFERENCES USERS);
Access view of USERLOGINDATA:
18. The following two tables exist to explain the groups. The GROUP table associates the
group with the COMPANY table to mention the company of the group. Group name, the
name of the manager of the group are also stored in this table.
CREATE TABLE GROUP(
GroupID INTEGER,
CompanyID INTEGER,
GroupName CHAR(15),
GroupManager CHAR(30)
PRIMARY KEY (GroupID)
FOREIGN KEY (CompanyID) REFERENCES COMPANY);
Access view of GROUP:
19. The group members are stored in the following table by associating GroupIDs with
UserIDs of the group members.
CREATE TABLE GROUP_MEMBERS(
GroupID INTEGER,
UserID INTEGER,
PRIMARY KEY (GroupID),
FOREIGN KEY (UserID) REFERENCES USERS);
Access view of GROUP_MEMBERS:
67
FORUMS
The following three tables store all the information about the forums.
20. As mentioned before, every project has a distinct forum. Projects are associated with
their forums with the help of the ForumID field in the PROJECTS table.
CREATE TABLE FORUM(
ForumID INTEGER,
ForumName CHAR(30),
ForumDescription CHAR(100),
PRIMARY KEY (ForumID) );
Access view of FORUM:
21. Thread is a group of forum messages about a specific topic. Threads are associated
with the forums with the help of the ForumID field in the THREAD table.
CREATE TABLE THREAD(
ThreadID INTEGER,
ForumID INTEGER,
ThreadTopic CHAR(30) );
Access view of THREAD:
22. Every forum message is associated with a thread with the ThreadID field.
CREATE TABLE FORUM_MESSAGES(
MessageID INTEGER,
ThreadID INTEGER,
UserID INTEGER,
MessageDate DATE,
MessageContent CHAR(1000) );
Access view of FORUM_MESSAGES:
68
E-MAILS
23. This table stores the e-mail messages.
CREATE TABLE E_MAIL(
eMailID INTEGER,
eMailSubject CHAR(30),
SentBy CHAR(20),
DestinationAddress CHAR(20),
SendingDate DATE,
MailText CHAR(10000);
PRIMARY KEY (eMailID));
Access view of E_MAIL:
25. Associates email messages with the mailboxes which were asscocited with the Users
in the previous table.
CREATE TABLE MAILS_IN_BOXES
MailBoxID INTEGER,
eMailID INTEGER,
PRIMARY KEY (MailBoxID, eMailID),
FOREIGN KEY (MailBoxID) REFERENCES MAILBOX,
FOREIGN KEY (eMailID) REFERENCES E_MAIL );
Access view of MAILS_IN_BOXES:
69
70
COMPANY
PREDECESSOR
S
ADMIN
PROJECTS
PROJECT_
MANAGER
Figure 12.1
71
TASKS
2) The second figure has got much to say. First of all it shows the relation between a
group and its members. The relation between USER_LOGIN_DATA and USERS table is
set via the foreign key UserID in the USER_LOGIN_DATA. So that after the user enters
the login information, the tool can identify him correctly. The remaining part of the
figure shows the relations among projects, tasks, users and groups and the rights of users.
USER_
LOGIN_DATA
GROUPS
GROUP_
MEMBERS
GROUPS_
PROJECTS
USERS
USERS_
PROJECTS
PROJECTS
Right
s
TASKS
GROUPS_
TASKS
GROUPS_
TASKS
Right
s
Figure 12.2
72
3) Every project has a separate forum and a project is associated with its forum by the
ForumID field in the PROJECTS table. There are threads in the forums: groups of
messages about some subject. Threads are related with FORUM by the use of ForumID
in THREAD table. Messages are related with threads by the use of ThreadID field in the
FORUM_MESSAGES table.
PROJECTS
FORUM
THREAD
FORUM_
MESSAGES
Figure 12.3
4) Every user has a mailbox which are associated with each other with the UserID field in
MAILBOX table. E-mails are associated with mailboxes with the MAILS_IN_BOXES
relationship.
E_MAIL
MAILS_IN_
BOXES
MAILBOX
USERS
Figure 12.4
73
5) The last figure explains the relations of the RESOURCES entity with the others.
ProjeX allows users to associate a resource with a project, a task, a user or a group. These
relations are shown in the figure.
PROJECTS
TASKS
RESOURCES_
PROJECTS
RESOURCES_
TASKS
RESOURCES
RESOURCES_
GROUPS
RESOURCES_
USERS
GROUPS
GROUP_
MEMBERS
Figure 12.5
74
USERS
75
76
Login Page
In the interface given on figure x users (not having an account) can create an account for
a company or if they have already an account then they just login to projeX. Users need
to enter company login name, username, and password to login to the system.
Figure 3 illustrates this process. These parameters are checked by the system. Then user is
directed to the main projects page.
77
78
79
80
81
82
83
84
Gantt Chart
Once the project(s) and task(s) are provided to ProjeX, it outputs the gantt chart (Figure
13.11) to the user. Gantt chart is one of the common windows. It is displayed to all users
of the company. Also it is a useful illustration to get info about the timing of project.
85
86
My Office Interface
ProjeX give its users to view their individual tasks, projects, etc. These capability of
projeX is demonstrated below (Figure 13.13). Here, closing dates are red circled to warn
the user about coming due dates. So visually user can order his/her tasks in due order.
87
88
Help Interface
Users and non-users of projeX have the facility to view help pages as in figure x. Help
pages give information abolut the usage of projeX, its facilities, and version differences.
This page can be reached from both the introduction page (sign-up window
(Figure 13.15) and also from any page after logged in.
89
JAVA
Java is a multivendor and multiplatform environment.
Gets ahead of PHP with its advanced debugging facilities.
Java is good for large applications.
Fascinating object oriented features, code packaging, multithreading and security.
Interpreted Java is very much slower than C in the original Java interpreters. This
has improved quite a bit over time, but it still remains an important number.
For non-Web development projects the solution to this speed problem is just in
time (JIT) compilers.
Java provides exceptions for error handling.
PHP
Platform independent.
MySql supports PHP. The tool called PhpMyAdmin eases the work related to
database.
PHP is very suitable for designing a web interface for a database and small web
based applications since it is an excellent tool to quickly produce simple dynamic
pages which are able to parse requests, query a database and insert results into a
template.
The great strengths of PHP are that it has loads of powerful libraries and it is very
easy to do simple stuff with PHP.
For PHP you have a whole list of supported databases. There are native drivers for
MYSQL, Oracle and Postgres.
Implementing error handling in PHP is dependent on programmers which leads to
less consistency.
90
Another weakness of PHP is that the function names are case sensitive which
makes the job of programmers difficult.
C++
This one is platform dependent.
MySql can be used.
Java beats C++ at this point: C++ is not designed for solving any special kind of
problem. It has been adapted in a number of ways to solve particular problems.
Tools like Microsoft Visual C++ and Borland C++ Builder solve the problem of
developing end-user applications with interfaces.
Microsoft Visual C++ and Borland provides productivity gains if we choose to
use the rich libraries.
C++ provides exception handling via try, catch and throw.
.NET
This is the drawback of .NET: it is platform dependent.
.NET can use MySql.
We can enjoy the performance benefits of .NETs compiled codes.
.NET supports multiple languages. Great flexibility to choose the language.
ASP.NET works with scripted languages like VBScript, Jscript, Perlscript, and
Python as well as compiled languages such as VB, C#, C, Cobol, Smalltalk and
Lisp. With the Common Language Runtime feature, all the code is compiled into
Microsoft Intermediate Language code, which the CLR then executes.
The framework provides object-oriented programming.
Apart from the programming language and the methodology, database access is
also an important concern in .NET. Database access is accomplished through
ODBC if you program with ASP.NET and this provides a consistent set of calling
functions to access the database.
The strength of ASP.NET is its clean design and implementation with object
oriented features supported and also the development environment (developers
can use WebMatrix, Visual Studio .NET, Borland tools, etc.)
Having multiple language support, .NET was the platform that attracted us most in
the first place. Later, when we started to know more about .NET; because of the easiness
91
92
93
Development Stage
Design Revisions
Week of Start
March, 14
(5 Weeks)
April, 4
(5 Weeks)
April, 4
(5 Weeks)
April, 4
(1 Week)
April, 4
(4 Weeks)
April, 18
(5 Weeks)
April, 4
(5 Weeks)
April, 18
(2 Weeks)
Development Stage
Project Management Package Implementations
94
April, 25
(3 Weeks)
Week of Start
April, 25
(2 Weeks)
April, 25
(2 Weeks)
April, 11
(3 Weeks)
April, 25
(3 Weeks)
April, 25
(5 Weeks)
April, 25
(5 Weeks)
May, 9
(3 Weeks)
May, 16
(2 Weeks)
May, 16
(4 Weeks )
Development Stage
File Upload /Import /Export Packages Implementations
Status Overview Package Implementations
First Version Release Implementations
First Version Release
Testing and debugging the programs
Final Package Preperation
User and Installation Manuals, Software Specifications
Release Notes
Final Demo Completions
95
T a sk s
W e ek 1
W e ek 2
W e ek 1
W e ek 2
W e ek 3
F e b ru a ry
W e ek 4
W e ek 1
W ee k 2
W e ek 4
W e ek 1
W ee k 2
W e e k 3
M a rc h
W e ek 4
W ee k 1
W ee k 2
W e ek 4
W ee k 1
W ee k 2
W ee k 3
W ee k 4
P r e p a r e P r o to ty p e D e m o
D e sig n R e v isio n
C o m p o n e n ts D e s ic io n M a k in g
C r e a te W e b P a g e
D e v e lo p m e n t S n a p sh o t
L iv in g S c h e d u le D e c isio n
C o n fig u r a ti o n M . a n d D e v e lo p m e n t P l a n
T e s tin g S p e c ifi c a tio n s P la n
D a ta b a se P a c k a g e Im p le m e n ta tio n
G U I P a c k a g e Im p le m e n ta tio n
P ro je c t M n g m t. P a c k a g e Im p .
A p ril
T a sk s
W e ek 3
M ay
W e e k 3
June
D a ta b a s e P a c k a g e Im p le m e n ta tio n
G U I P a c k a g e Im p le m e n ta tio n
P ro je c t M n g m t. P a c k a g e Im p .
T a sk M a n a g e m e n t P a c k a g e Im p .
U se r M a n a g e m e n t P a c k a g e Im p .
A c c o u n t C r e a tio n
P a c k . Im p .
R e so u rc e M a n a g e m e n t P a c k a g e Im p .
C r itic a l p a th Im p .
G ro u p M a n a g e m e n t Im p .
G a n tt C h a rt G e n e ra tio n
P a c k . Im p .
S t a t is t ic s ,P e r f o r m a n c e E v a l. M n g Im p .
F ile U p lo a d P a c k a g e Im p .
S t a t u s O v e r v ie w a n d Q u e r y in g P a c k . Im p
F irst v e rsio n R e le a se Im p l.
T e stin g
D e b u g g in g
F in a l P a c k a g e P r e p e r a tio n
U s e r a n d In s ta lla tio n M a n u a ls P r e p .
S o ftw a r e S p e c i fic a ti o n s D e c is io n s
R e le a s e N o te s
F in a l D e m o C o m p le tio n
K E Y
K e y D a te s
M ile s t o n e m a rk e r - s t a r t
M ile s t o n e m a rk e r - e n d
G a n tt b a r
1 /1 9
P ro to ty p e D e m o s
5 /2
P re m a t u re R e le a s e
2 /2 1
C re a te w e b p a g e
5 /1 5
P re s e n t a t io n s
3 /7
C M P la n
6 /1
Dem os
3 /1 4
F irst D e v e lo p m e n t S n a p sh o t
3 /2 1
T e s tin g p la n n in g
96
W ee k 3
W ee k 4
18. Appendix
18.1 Control Flow Diagram
97
a d m in
d a ta b a s e
p r o je c t i n f o r m a t i o n
t a s k in f o r m a t io n
g r o u p in f o r m a t i o n
p e r s o n a l i n f o r m a t io n
c o m p a n y in f o r m a t io n
e - m a ils
p e r s o n a l i n f o r m a t io n
e - m a i ls
P r o je X
s ta tu s e s
l is t s
p e r f o r m a n c e & s t a t i s t ic s
g a n n t c h a rts
e - m a i l n o t if i c a t io n
p r o je c t m e m b e r
a d m in
in f o r e q u e s t
g e n e r a l in f o r m a t io n
n o n - p r o je c t m e m b e r
n o n - p r o je c t m e m b e r
p e r s o n a l in f o r m a t io n
nam e
u sern am e
su rn am e
e - m a il
t e le p h o n e n u m b e r
ad d ress
d e p a rtm e n t
t it le
p o s it io n
p r o je c t s ( s / h e w o r k in g o n )
in t e r e s t a r e a
t e c h n i c a l s k i l ls
g r o u p in f o r m a t io n
nam e
m em b ers
c r e a to r
ta s k s
s ta tu s
s c h e d u le
e s tim a tio n s
t im e
in p u t
g e n e r a l in fo r m a tio n
f e a tu r e s
c o n t a c t i n f o r m a t io n
d e v e lo p e r i n f o r m a t i o n ( P R O _ C )
s a le in f o r m a t i o n
c l ie n t s
faq
h e lp
new s
p r o je c t in f o r m a t io n
nam e
m em b ers
c re a to r
ta s k s
s ta tu s
s c h e d u le
ta s k in fo r m a tio n
nam e
s c h e d u le
d e v e lo p e r
te s te r
res o u rc es
p re d e c e s s o r ta s k (s )
s ta tu s
w o rk d o n e (% )
ty p e ( to d o , e tc ..)
p r io r it y
e s t im a t e d h o u r s / d a y s / . . .
file in f o r m a t io n
nam e
t a s k ( b e lo n g s t o )
s iz e
u p lo a d d a t e
u p lo a d e r
p e r m is s io n s
d e s c r ip t i o n
pre fe re n ce s
n o t i f ic a t i o n a le r t
c h o o s e la n g u a g e
s t a t is tic s & p e r fo r m a n c e
group based
i n d i v id u a l
p r o je c t
d a il y
m o n t h ly
y e a r ly
c o m p a n y in fo r m a tio n
nam e
ad d ress
t e le p h o n e n u m b e r
e - m a il a d d r e s s
sta tu s e s
m e m b e r s ta tu s
d a te s ta tu s
f i le s t a t u s
p r o je c t m e m b e r s t a t u s
98
requ est
i n f o r m a t io n r e q u e s t
% d o n e ( p e r c e n t a g e o f c o m p le t io n )
p r o je c t m e m b e r
f ile in f o r m a t io n
a d m in
p r o j e c t in f o r m a t i o n
m e m b e r s ta tu s
re s o u r c e s ta tu s
p r o je c t
m a n a g em en t
a d m in
y e s /n o
a v a ila b ili t y
hum an
&
reso u rces
m a n a g em en t
t a s k in f o r m a t io n
s t a t is t i c s & p e r f o r m a n c e
g an n t c h art
e - m a il n o t if ic a t io n
sch ed u le
m a n a g em en t
s c h e d u le s
m e m b e r s ta tu s
in f o r m a tio n
m a n a g em en t
lis t s
n e w a c c o u n ts
lo g in in f o r m a t io n
p r o je c t in f o r m a t io n
e - m a ils
c o m p a n y in f o r m a t i o n
p e r s o n a l i n f o r m a t io n
m a ils
a cco u n t
m a n a g em en t
u s e rn a m e
p a s s w o rd
g et g en era l
in f o r m a tio n
g e n e r a l in f o r m a t io n
n o n - p r o je c t m e m b e r
d a ta b a s e
99
n o n - p r o je c t m e m b e r
h e lp
LEVEL 2 D FD FO R PR O J EC T M AN AG EM EN T
d a ta b a s e
p r o je c t m e m b e r
a d m in
p r o je c t m e m b e r
t a s k i n f o r m a t io n
g r o u p in f o r m a t io n
fi le in f o r m a t io n
p r o j e c t in f o r m a t io n
ta s k
m a n a g em en t
a d m in
grou p
m a n a g em en t
f ile
m a n a g em en t
fi le s
c re a te /
m o d if y /
d elete
p r o je c t
n o n - p r o je c t m e m b e r
n o n - p r o je c t m e m b e r
100
L e v e l 2 D F D fo r A c c o u n t M a n a g e m e n t
p r o je c t m e m b e r
e - m a ils
m e s s a g in
g c e n te r
s ig n in f o r m a t io n ( p e r s o n a lly )
account
lo g in
s ig n in f o r m a t io n ( f o r o t h e r p r o je c t m e m b e r s )
s ig n u p
r e q u ir e d in fo r m a tio n
s to r e d in fo r m a tio n
d a ta b a s e
p r o je c t m e m b e r
e - m a ils
s ig n in f o r m a t io n
n o n - p r o je c t m e m b e r
n o n - p r o je c t m e m b e r
101
102
18.7 Data Flow Diagram for Human & Resources Management- Level 2
103
104