Vous êtes sur la page 1sur 104

CEng 491 Graduation Project Design

Final Design Report


Of

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 -

1. Definition of the problem


With the huge advances in the information technology of our days, it is much wise to let some
software manage our software projects than to let it completely to the hands of men.
A software project management tool provides the members of a software project with the
visualization of the most fundamental aspects of the project: the tasks assigned to a member,
starting/finishing dates of the tasks, percentage of completion of the tasks, roles and works of
other members, time and effort statistics etc
With a well-designed software project management tool at hand, organizing, distributing and
checking the progression of different tasks in a project would be a rapid and easy deal for project
managers. Furthermore each team member might anytime check and know which tasks are under
his responsibility and which are not. This greatly helps avoiding loosing time looking for project
reports or consulting other people. As we all know, efficient time management is what we need
most during a project.
We, the members of the project group PRO-C, were asked to design a project management tool
as a duty of CEng491 Senior Design Project course. The tool that we would design must have
included the following fundamental features:
A tool for planning, management and supervision of a development project:
This is the most fundamental aspect of a project management tool. The tool that is to be
designed must let its users to create a project, divide it into subtasks, describe each task
separately, assign tasks to the members of the project, perform time planning of the
project etc A project management tool must also offer a high level of flexibility when
managing users, letting them bear different access rights depending on the project. Access
rights must range from the basic read-only to the full control level. Each project should
have an individual structure and management style. Each project manager must be able to
organize his projects along his preferences, defining assigned users, tasks, groups,
statuses, and priorities.
Almost all the above mentioned features are available on the project management tools
currently in the market.
Online&multiuser facilities for project scheduling
For a software tool, being online means being accessible anytime from anywhere by
means of an internet connection. A project management tool should provide online
facilities to let the members of a project consult and make changes in their data about
ongoing projects whenever they feel the necessity for it.
On the other hand, efficient multiple user management is indispensable for a project
management tool because of the large numbers of possible members of a project. Each
member must be able to bear different statuses with different rights and an absolutely
secure data management should still be provided for the management of a project.
4

Individual&group based task assignment


When a project and its tasks are defined, then the turn comes to assign tasks to project
members. A project management tool must enable project administrators to easily assign
different tasks to the members of his project group and also to check anytime the progress
of the work on the tasks.
In almost all medium size development projects, there are smaller work groups inside the
whole project group. Groups are usually there in order to ease the partition of all the tasks
of a whole project. Each group may be assigned to tasks concerning the groups field of
work. The project management tool we had to design should have support easy and
efficient individual and group based task assignment.
Human and other resources management
Human resources management is about the individual and group based task assignment.
Apart from that, each project or task or project group may be granted with a resource. A
resource may be anything necessary while working to accomplish a development project.
Software/hardware tools, meeting rooms, printing/scanning devices and all other possible
facilities may be a resource. A project management tool must ensure secure assignment of
resources to groups of users or to parts of projects in order to enable powerful resource
management during a development project.
Graphical data construction
Graphical data are the easiest and the most effective way for consulting and getting
correct insight about an ongoing project. Project management tools should provide easyto-read and illustrative graphical data displaying features in order for the users of these
programs to be able to reach different types of information about their development
projects. Gantt charts, critical path displays, statistical charts are basic and efficient
graphical data types.

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.

3.1 First meeting with ProjeX


As all web based programs, ProjeX will have a main page that will welcome visitors and
already registered users. Main page of ProjeX is called the Login Page and is shown in
figure 3.1. Visitors will find on the Login Page a help link for reaching the user manual of
ProjeX and getting to know what ProjeX is and how it works. Help Module is the part of the
program responsible for this operation.
Unregistered visitors will also be able to create themselves a new account to start to use
ProjeX. The link sign up is there for letting a visitor create a new company account.

Figure 3.1 Login Page

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.

3.2 Creating a company account


In order to use ProjeX, a project administrator must start by creating himself a user profile
and a company account. Projects, tasks, users and the like will all be created inside a
company account. By clicking on the sign up button on the Login Page one will open the
Company Profile Registration Page. This page is shown in figure3.2. To create an account, a
project administrator should supply necessary information about his company and then click
on the Continue Registration button. This button will lead the administrator to the Create
User Profile Page where he will be asked to create a user profile for himself.

Figure3.2 Company Profile Registration Page

3.3 Creating a user profile


Anyone willing to use ProjeX should have a user account inside an existing company account
in the program. User accounts are created by privileged users who have the adequate
permissions to do so; namely project administrators. As one might guess, a project
administrator should start his affaires by creating a user account for himself. He will be asked
for it once he supplied the necessary information to create a company account and clicked on
the Continue Registration button on the Create User Profile Page. To create a new user
account the administrator will be led to the Create User Profile Page which shown in
figure 3.3.

Figure 3.3 Create User Profile Page


On Create User Profile Page there are several fields to fill in. These fields, as their labels
imply, will contain the personal information of the user whose profile is going to be created.
While creating a new user profile, also for himself, a project administrator should
obligatorily fill in the fields NAME, SURNME and E-MAIL for the newly created user. The
username and password for the user will be automatically generated by the system and both
the username and the password will be sent to the e-mail address of the user.
On the right-bottom corner of Create User Profile Page, as one might notice, there is a list
containing several permissions that a newly created user may bear. ProjeX enables its users
to bear different permissions inside a company and inside a project. Permissions are granted
to a user when its profile is created. The first user to create a company account, namely the
project administrator will bear all of the permissions inside the company. Then while creating
a new user profile, the administrator may choose to assign a permission to the user by
clicking on the line of that permission inside the permissions list. If for example the
administrator wants to create a user who will be able to create other user profiles, then he
10

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.

3.4 Page of a project


Now lets assume a company has been created, users have been added to the company, there
are ongoing projects, several different tasks have been added to the ongoing projects etc
So ProjeX is being used by a company to manage its projects. When a user of ProjeX is
logged in, he will mostly swap between two main parts of the program: Projects Page and
My Office Page. In this section, how to use the Projects Page will be explained. My Office
Page will be dealt with in section 3.8.
The main function of Projects Page is to display the tasks of a project and let the users
consult or modify data about the tasks or about the project itself. Projects Page is shown in
figure 3.4.

Figure 3.4.1 Projects Page

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

3.5 Creating or modifying a task


The pages for creating a task and modifying the data of a task are quite similar. They both
display the fields containing different attributes of a task. The page Create Task is displayed
when a user clicks on the create task button in the Projects Page. The page Modify Task is
displayed when a user clicks on the name of a task in the Projects Page.
While creating a task, the user must supply necessary information in empty fields and click
on the create button. It is the same for modifying a task except that now most probably the
fields are full because the task is an existing one and the user should edit the fields in which
he wants to make changes. The pages Create Task and Modify Task are shown in figure 3.5.1
and figure 3.5.2 respectively.

Figure 3.5.1 Create Task Page

13

Figure 3.5.2 Modify Task Page

14

3.6 Creating a group of users


It is quite probable that there be smaller work groups inside a project group. This lets a
project manager assign different types of jobs to different work groups. For example a task
necessitating the design of a database may be assigned to a database group while a task of
graphical user interface preparation may be assigned to a GUI group. Group based task
assignment is one of the features we are asked to implement while building up our project
management tool.
Inside ProjeX, a task may be assigned to a single person or to a group of people. A group of
people is created by using the Group Creation Page. A user bearing the permission to create
a group, namely the group leader might create a work group and includes other users in it. He
may then assign tasks to his group by filling in the corresponding fields. Each member of a
group may bear different permissions inside the group. These permissions will let a group
member to add a new member to his group, to assign a task or a resource to his group etc.
Group Creation Page is displayed in figure 3.6.

Figure 3.6 Group Creation Page

15

3.7 Gantt chart display


A user of ProjeX will be able to reach three different types of graphical data about the tasks
assigned to him, all the tasks of a project or the overall project:
1. Gantt chart
2. Critical path
3. Statistics
Gantt charts provide easy-to-read schedule information about ongoing and already terminated
tasks in a project. The display of a Gantt chart inside ProjeX is illustrated in figure 3.7.2. As
one might have noticed, there is a button labeled gantt chart on the Projects Page (figure
3.7.1).When a user clicks on this button, the Gantt chart of the corresponding project will be
displayed on the Gantt Chart Page.

gantt chart
button

Figure 3.7.1 Projects Page

Figure 3.7.1 Gantt Chart Page


16

3.8 My Office Page


As mentioned in section 3.4, a user of ProjeX will mostly use two main parts of the program.
One of them, Projects Page, was explained in section 3.4. Now it is the turn for the second
one: My Office Page. On this page, a user will be able to consult and manage whatever kind
of data that is related to him: tasks assigned to him, projects which he is in, his messages, his
preferences etc. The usage of the page is quite similar to the usage of Projects Page. The user
may make the program lists his tasks and the operations he can perform are exactly the same
as the ones for Projects Page. If he makes the program display his projects and clicks on one
of the projects then he will be sent to Projects Page and the project on which he clicked will
be displayed.
The English version of My Office Page is shown in figure 3.8.1. As stated in the first part of
this design report, ProjeX will be available in both English and Turkish. Notice that on each
graphical user interface of the program, there is a button labeled TRKE. If a user clicks on
that button, the Turkish version of the current page will be displayed. Figure 3.8.2 shows the
Turkish version of My Office Page. That page is going to be displayed if a user clicks on the
TRKE button in his office.

Figure 3.8.1 My Office Page, English version

17

Figure 3.8.1 My Office Page, Turkish version

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

4.1 Help Module


This module does nothing but opens information pages of ProjeX. Any person visiting the main
page of ProjeX will be granted the opportunity to get information about what ProjeX is and how
it works. On the other hand an existing user of ProjeX would like to consult the user manual of
the program. So Help Module will be there to open the necessary information pages of ProjeX
whenever a visitor or a user demands for it. Help Module will take as input the state of the help
button (check section 3.1 of this report) so that when a visitor or a user clicks on this button it
will perform necessary operations for opening the necessary information pages. The so called
help button is displayed on almost every page of ProjeX so Help Module may be called in any
phase of the program.
Methods related to Help Module may be listed as:
-

CheckTheStateOfHelpButton()
DisplayHelpPages()

: Checks whether the help button is clicked on.


: Display user manual of ProjeX

The following flowchart summarizes the operation of the Help Module:

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 ( )

Figure 4.1 Flowchart for Help Module

20

4.2 Create Account Module


This is the module responsible for creating a new account for starting to use ProjeX. Once an
account is created then a company may create projects inside the account; tasks, resources,
groups inside the projects; may create user profiles and assign users to tasks etc. The creator of
the account will automatically bear the administrator status and have all the permissions. Once
an account is created then the creator may add new users inside the account by creating new
users [Check User Operation Module, 4.7].
When a new account is to be created a user profile should be created for the creator of the
account. This evidently requires providing a user name and a password for the creator. Hence in
order to create an account one must supply the following information:
company_name

[STRING]

user_name
user_password

[STRING]
[STRING]

: Name of the company for which the account is created.


This is in fact the name of the account.
: User name for the creator of the account.
: Password for the creator of the account.

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.

The following flowchart summarizes the operation of Create Account Module:

'

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()

Figure 4.2 Flowchart for Create Account Module

22

4.3 Login Module


Login Module is responsible for identifying an existing user of the program an opening his
account. An existing user means a user already registered to an account inside ProjeX. Once the
user provides necessary inputs for logging in to his account Login Module will perform the
operations to check the users inputs and open his account. In order to open his account a user
must provide three inputs to Login Module: the name of the account (which is named as
company login name, his user name and his password. So Login module will accept the
following three inputs from the user in order to identify him:
-

company_login_name [STRING]
user_name
[STRING]
user_password [STRING]

: The name of the account


: Username of the user
: Password of the user

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.

The following flowchart summarizes the operation of the Login Module:

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()

Figure 4.3 Flowchart for Login Module

24

R e j e c t L o g in ( )

4.4 Display Project Module


Display Project Module is the part of the system responsible for exposing correctly the features
of a project and for calling appropriate functions or modules in order to perform necessary
operations on the exposed project. Display Project Module is designed to be the program part
running behind the Projects Pages [see section 3.4] so you may find it useful to have a look at
that interface in order to get better insight to the functioning mechanism of this module.
Display Project Module is invoked whenever a user opens the interface for displaying a project.
First job of the module is to properly list the tasks of the concerned project according to three
constraints:
1. Task List Property:
The user would like to list all of the tasks, only the incomplete tasks or only the complete
tasks of a project. Hence Display List Module must consider what we call Task List
Property while displaying the tasks of a project.
2. Task List Filter:
The user would like to list only the tasks bearing one or more special properties like all
tasks having the urgent priority, all tasks whose start date is before 07/11/2004 etc
Task List Filter will impose to Display Project Module which tasks are to be displayed.
3. Sort Criterion:
As the name implies, Sort Criterion will provide necessary information to Display
Project Module for sorting the tasks by a special property (like due date or task number)
whenever the user wants so.
The above constraints for listing the tasks of a project will be determined by the inputs taken
from the user.
The interaction between the users demands and Display Project Module will be performed with
the use of buttons on the display project interface. If a button on the interface is clicked on by a
user, the module will check which button is clicked and will then perform the necessary
operations.
Along with displaying the tasks of a project according to some criteria, five other types of
operation may be demanded by the user:
An operation on,
1. the displayed project
2. a task of the displayed project
3. a resource
4. a group
5. graphical data display
To perform the possible operations on the above features Display Project Module has to invoke
the necessary modules. These modules are respectively Project Operation Module, Task
Operation Module, Resource Operation Module, Group Operation Module and Graphical Data
Display Module. Their functions are explained in sections 4.5, 4.6, 4.7.
The following flowchart summarizes the operation of the Display Project Module:

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

Figure 4.4 Flowchart for Display Project Module


26

4.5 Project Operation Module


This module is responsible for performing the three main types of operations about a project:
1. Create Project
: Create a new project inside an account.
2. Display Project
: Display attributes the project.
3. Delete a project
: Delete completely a project from an account.
Project Operation Module takes one input, operation_type [INTEGER], and it is this input that
tells to the module which of the above three operation is to be performed.
Project Operation Module starts its function by checking the status of the user invoking it. The
module will let the user perform any operation on a project if his status is appropriate for that
operation.
When the operation is Display Project the system will display the attributes of the project like
due date, estimated moths etc If the status of the user permits it, the fields displaying the
attributes of the project will be editable. Hence a user might change the attributes of a project (if
his status allows it) after having invoked Display Project operation.
Methods related to Project Operation Module are as follows:
-

CheckUserStatus()

SendRejectionMessage()

: Check the status of the user to see whether he is allowed to


perform the requested operation on a project.

: Send a message to the user stating that his status is


not appropriate to perform the requested operation on a
project.
GetProjectInfo()
: Get the information (attributes) provided by the user
to create a project.
CheckProjectInfo() : Check whether the information provided by the user to
create a project is sufficient.
SendInsufficientInfoMessage()
: Send a message to the user stating that the
information provided is not sufficient to create a
new project.
CreateProject()
: Create a new project with the information provided by
the user.
EditProject()
: Let the user edit the attributes of the project.
SaveNewProjectInformation()
: Save the changes made on the projects
attributes.
DeleteProject()
: Delete completely a project from the account.

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 ( )

Figure 4.5 Flowchart for Project Operation Module

28

D e le t e P r o je c t ( )

4.6 Task Operation Module


Similar to Project Operation Module, Task Operation Module is responsible for three kinds of
operations on tasks: creating a new task, editing an existing task and deleting an existing task.
Such task operations are limited only to users bearing an appropriate status. For example a user
can create a task only if his status permits doing so. Hence whenever the Task Operation Module
is invoked, the module fist checks whether the status of the user invoking it is appropriate. If it is
so then a task operation may be performed. If not the task operation request is rejected.
A task has the following attributes. In order to create a new task the creator should provide the
ones marked with *:
task_name*
task_description
task_status*

[STRING]
[LONG STRING]
[INTEGER]

percentage_of_completion [INTEGER]
task_priority*
start_date*
due_date*
estimated_hours

[INTEGER]
[STRING]
[STRING]
[STRING]

: The name of the task


: Description of the task
: Official status of the task that shows whether
the task has just started or tested or
completed etc..
: Numeric data showing how much of the task
is completed.
: Priority of the task.
: Starting date of the task.
: Due date of the task.
: Estimated hours of completion for the task

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]

: Number of the task inside the project. The first


created task will have 1 as its number, the second 2
etc
: ID of the user who created the task

Methods related to Task Operation Module are as follows:


-

CheckUserStatus()

: Check the status of the user to see whether he is allowed to


perform the requested operation on a task.
SendRejectionMessage()
: Send a message to the user stating that his status is not
appropriate to perform the requested operation on a task.
GetTaskInfo()
: Get the information (attributes) provided by the user to
create a task.
CheckTaskInfo()
: Check whether the information provided by the user to create a
task is sufficient.
SendInsufficientInfoMessage()
: Send a message to the user stating that the
information provided is not sufficient to create a
new task.
29

CreateTask()

: Create a new task with the information provided by


the user.
EditTask ()
: Let the user edit the attributes of the task.
SaveNewTaskInformation() : Save the changes made on the tasks attributes.
DeleteTask()
: Delete completely a task from the account.

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 ( )

Figure 4.6 Flowchart for Task Operation Module


30

D e le t e T a s k ( )

4.7 User Operation, Group Operation and Resource Operation Modules

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] )

: Assigns a user, a group or a resource to a task. The


task to which one of these three will be assigned is
determined by the argument task_number. If
task_number is zero, then the concerned user,
group or resource is assigned to the whole project
not to a specific task.

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 ( )

Figure 4.7 Flowchart for Resource Operation Module

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 ( )

4.8 Graphical Data Display Module


Visualization of numeric data by the means of graphical methods is an indispensable way
for members of any kind of project in order to get easy and fast understanding of different
aspects of a project. As stated and explained in the Requirement Analysis Report of
ProjeX, a user of the ProjeX system will be able to view three different graphical data
about the ongoing projects:
1. Gantt Charts
2. Statistics
3. Critical Path
Graphical Data Display Module is the part of the program responsible for generating and
displaying these graphical data whenever a user requests for one of them. The module
takes one input : data_type [INTEGER] that specifies which of the three possible
graphical data is to be displayed.
Methods related to Graphical Data Display Module may be listed as:
- CheckValueOfDataType()
determine which

: Check the value of the input data_type to

graphical data is to be displayed.


DisplayProjectGanttChart() : Generate and display Gantt chart for the project.

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 ( )

Figure 4.8 Flowchart for Graphical Data Display Module


33

4.9 My E-Mail Account Module


As explained in the Requirement Analysis Report of ProjeX, every user of ProjeX
will have a mail account inside the program. Having a mail account inside the
program provides fast and strong communication between members of a project team.
Members may be notified quickly and without any effort whenever a crucial change
occurs in the ongoing project.
My E-Mail Account Module is the part of ProjeX for assuring the function of the
operations about the e-mail account of a user. This module is invoked whenever a
user requests for visiting his mail account.
Methods related to My E-Mail Account Module may be listed as follows:
-

DisplaySelectedMessage()
ComposeMessage()
ReplyToMessage()
ForwardMessage()
DeleteMessage()

The following flowchart summarizes the operation of My E-Mail Account Module:

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 ()

Figure 4.9 Flowchart for My E-Mail Account Module

34

D e le t e M e s s a g e ( )

4.10 My Office Module


This module is the part of the program running behind My Office Page [section 3.8]. My
Office Module is responsible the part of the system responsible for exposing correctly the
features of My Office Page and for calling appropriate functions or modules in order to
perform necessary operations invoked by the user in his ofice2.
My Office Module is quite similar to Display Project Module in its functioning. It is
invoked whenever a user clicks on My Office button on a page of ProjeX. All the possible
operations that a user might perform by means of Display Project Module are also
possible with My Office Module and they are performed in the same way. As a difference
My Office Module may open a users e-mail account when the user clicks on my
messages button on the My Office Page and this is by calling My E-Mail Account
Module.

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:

Packages for project/task/human scheduling (General Project Management)


Packages for GUI

Packages for database

Packages for file management

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

5.1.1 Package for project/task/human scheduling (General Project


Management)
This package is the main package that requires user-interaction. The inputs (either from
user or other modules) are processed here. It consists of the following sub-packages:
Company worker management
Group Leader
Administrator
Project Manager
Project Developer(ordinary user)
Project management
Discussion forum
Task management
Group management
Account management
Sign-up
login
Schedule management
Gantt-chart generation
Critical-path management
Meeting
Dependency
Statistics & performance evaluation
Listing
Status overview
Filtering
Resource Management
Hardware Resources
Software Resources
Human Resources
Other Resources

37

These package, sub-package, component, database table relationships can be drawn as


follows:

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.

H ard w are 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)

5.1.2 Packages for GUI


Instead of having hardware components, the tool is just software because it is a web
based program. Thus graphical user interfaces are very important to orient the users. The
39

users will see the links active if they have the permission to use that link. The GUI is
divided into the modules below:

Project member GUI


Project manager GUI
Project administrator GUI
Non-project member GUI

5.1.3 Packages for Database


The tool needs a database to keep the information belonging to different instances. The
basic entities can be grouped as below:

User database
Task database
Group database
Project database
Resource database

5.1.4 Packages for file management


File management is an essential feature for our tool. Users of this tool would want to add
a file to system for other users info.
File upload
File Import/Export

6. Algorithm for Critical Path Calculation


40

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

A Critical Path for Project management can be implemented as follows:


topological_sort(vertices [] );
41

for each vertex v V[G]


//here G is the graph holding the vertices which are tasks
do current_completion_time[v] =
predecessor[v] = NIL ;
// if there is a dependency between tasks use predecessor
current_completion_time[startvertex] = 0;
for each vertex u
//in topological order
do for each vertex v adjacent[u]
{
if current_completion_time=
current_completion_time[u]+ task_completion_time ( u ,v )
then current_completion_time[v]=current_completion_time[u]
+task_completion_time( u, v );
predecessor[v] = u;
}

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

< < in c lu d e > >

c re a te c o m p a n y
account

m an ag e reso u rc es

< < i n c lu d e > >

s e t p r io r i t y

ad d reso u rc e

Figure 7.1 The Manager/Administrator Use Case Diagram

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

Figure 7.2 The Ordinary Project Member Use Case Diagram

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

7.2 Class Diagram (Revised)


The Class Diagram below shows the relationships between classes in ProjeX. After the
feedbacks, an administrator class has been added.
P r o je c t M e m b e r
p r o je c t m e m b e r _ id
p r o je c t m e m b e r _ n a m e
p a s s w o rd
lo g in _ n a m e

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 ( )

Figure 7.4 Class Diagram for ProjeX

46

D a ta ba se
1

7.3 State Diagrams


If valid information is entered, an account can be created.
State diagram shows the state transitions in the system. They comply with the
state transition diagrams described before.
Viewing the user accounts can lead to editing preferences and storing new data if
any new data entered.
If a user opens a project while he/she is in the system, then he can either edit it or
store a new project and/or can add resources to that project.
If the user selects a project, he/she can add a new member to it or display task
statuses in that project. Also, one can display members of that project and can edit
member information.
If the user selects to display the current tasks, he/she can just view the statuses
according to some selection criteria or he can add a new task and store it. After this the
Gantt Chart for the current project can be viewed.
R e s p o n s e ( ) [ in v a li d ]

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

D is p la y P ref eren ces


Page

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

Figure 7.5 State Diagram For the System


47

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

7.4 Activity Diagrams (Revised)

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

7.5 The Interaction Diagrams (Collaboration Diagram Revised )


After adding the administrator entity to the system and assigning the jobs of creating
company and user accounts to it the collaboration diagrams have slightly changed as seen
below:

: 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

8. Control Flow Diagram


During the execution of the program password and permissions are checked.
Password is checked at the begining. However permissions are checked for every request.
But they change according to project and group. So projeX has three permission types
which are general access rights, project based access rights, and group based access
rights. These are controlled during the execution of the program and CFD diagram
reveals this procedure.

57

58

9. Data Flow Diagram (DFD)


9.1 DFD Level 0
DFD level 0 is revised and one more user type is added. Admin actually makes all
of the configurations of the system. so data about projects, tasks, groups, profiles, and
resources is provided to projeX by admin. Ordinary users can only acccess the output
windows like gantt chart, statistics and performance, lists, and e-mails. This procedures
are described in the figure in Appendix.

9.2 DFD Level 1


The contribution of admin user type is better visualized here. In the earlier version
there were not admin user type and everybody was considered as user. And their access
capabilities were determined according to their permissions. Here it is revised.

9.3 DFD Level 2 of Account Management


Account Management can be mapped to my office interface. Users manage
their individual tasks, projects, etc here. To achieve this information should be gathered
from other modules. For example if a task is assigned to a user from task management
this should be sent to this mail. Also this will result in an e-mail notification to the user.
In other words this modules gets information from others.

9.3.1 DFD Level 2 of Human & Resources Management


This data flow explains the basic relations between time and human, also time and
resources. This module aims to ease project managers life. While they are assigning
tasks to users they can check the availability of project developer. Resources are also
managed so. If the person is not suitable for that time duration project manager (actually
admin) is notified with an alert. Schedule information of users are gathered from schedule
management module which will be explained next.
Schedule data is manipulated here. It is sent to human & resources management
from here. Also it is sent to project management module. Also in this modules some
outputs are generated like gantt chart, performance graphics, etc.

59

9.3.2 DFD Level 2 of Information Management


Information management is very important to keep the track of the projects. It is
so important that projeX opens the latest ongoing projects incompleted tasks page by
default after logging in. Here the data is kept and after organizing them in a meaningful
manner presented to users. Projex generally lists this data.

9.3.3 DFD Level 2 of Project Management


Admins operations is done here. He/She enters the data and here it is sent to
exact parts of the tool. Here it can be thougt as projects and groups are the subset of
companies, tasks and resources are the subset of projects and groups. All of them defines
similar data operations like create, modify, delete.

60

10. Database Construction with SQL & MSAccess


In this part, the database of ProjeX will be constructed step by step with SQL.
These tables were also constructed with Microsoft Access. The Access view of each table
will also be given.
1. The following is the COMPANY table. Everything about the companies is stored in
this table. The attribute names are self-explanatory, but we had better mention that
CompanyLoginName is used while logging in and this may be a short version of the
CompanyName.
CREATE TABLE COMPANY (
CompanyID INTEGER,
CompanyLoginName CHAR(15),
CompanyName CHAR(30),
CompanyAddress CHAR(50),
CompanyTelephone CHAR(15),
CompanyFax CHAR(15),
CompanyContactEmail CHAR(25)
PRIMARY KEY (CompanyID) );
Access view of COMPANY:

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

Access view of PROJECTS:

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:

4. This table associates each task with its predecessor.


CREATE TABLE PREDECESSORS(
TaskID INTEGER,
PredecessorTaskID INTEGER,
PRIMARY KEY (TaskID, PredecessorTaskID),
FOREIGN KEY (TaskID) REFERENCES TASKS,
FOREIGN KEY (PredecessorTaskID) REFERENCES TASKS(TaskID));
Access view of PREDECESSORS:

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:

6. If a resource is associated with a project, that information is stored in this table.


CREATE TABLE RESOURCES_PROJECTS(
ResourceID INTEGER,
ProjectID INTEGER,
WasAllocatedOn DATE,
WillBeAllocatedTill DATE,
PRIMARY KEY (ResourceID,ProjectID),
FOREIGN KEY (ProjectID) REFERENCES PROJECTS
ON DELETE CASCADE);
Access view of RESOURCES_PROJECTS:

7. If a resource is associated with a project, that information is stored in this table.


CREATE TABLE RESOURCES_TASKS(
ResourceID INTEGER,
TaskID INTEGER,
WasAllocatedOn DATE,
WillBeAllocatedTill DATE,
PRIMARY KEY (ResourceID,TaskID),
FOREIGN KEY (ProjectID) REFERENCES PROJECTS
ON DELETE CASCADE);
Access view of RESOURCES_TASKS:

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);

INFORMATION ABOUT PEOPLE INVOLVED IN THE PROJECTS


10. This table contains information about the users, most importantly the company they
work for.
CREATE TABLE USERS(
UserID INTEGER,
CompanyID INTEGER,
FirstName CHAR(15),
LastName CHAR(15),
Department CHAR(20),
Title CHAR(20),
Email CHAR(25),
PhoneNumber CHAR(15),
Address CHAR(50),
InterestArea CHAR(50),
TechnicalSkills CHAR(50),
PRIMARY KEY (UserID),
FOREIGN KEY (CompanyID) REFERENCES COMPANY );
64

Access view of USERS:

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:

12. Every project has one or more project managers.


CREATE TABLE PROJECT_MANAGER(
ManagerID INTEGER,
ManagerName CHAR(30),
ProjectID INTEGER,
PRIMARY KEY (ManagerID),
FOREIGN KEY (ProjectID) REFERENCES PROJECTS );
Access view of PROJECT_MANAGER:

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:

24. Associates mailboxes with their owners.


CREATE TABLE MAILBOX(
MailBoxID INTEGER,
UserID INTEGER,
PRIMARY KEY (MailBoxID),
FOREIGN KEY (UserID) REFERENCES USERS);
Access view of MAILBOX:

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

11. Entities and Their Attributes


1) COMPANY: CompanyID, CompanyLoginName, CompanyName, CompanyAddress,
CompanyTelephone, CompanyFax, CompanyContactEmail
2) PROJECTS : ProjectID, ProjectName, ProjectCreationDate, ProjectBeginDate,
ProjectEndDate, ProjectEstimate, ProjectDescription, ProjectPriority, ProjectTesterName,
CompanyID, ForumID
3)TASKS: TaskID, ProjectID, TaskName, TaskStartDate, TaskEndDate, TaskPriority,
TaskStatus, WorkDone, TaskEstimation and TaskTesterName
4)RESOURCES: ResourceID, CompanyID, ResourceName, ResourceDescription,
ResourceCost, CompanyID
5)USERS: UserID, CompanyID, FirstName, LastName, Department, Title, Email,
PhoneNumber, Address, InterestArea, TechnicalSkills, CompanyID
6) USERLOGINDATA: UserLoginName, CompanyLoginName, Password
7) ADMIN: AdminID, AdminName, CompanyID
8) PROJECT_MANAGER: ManagerID, ManagerName, CompanyID
9) GROUP: GroupID, CompanyID, GroupName, GroupManager
10) FORUM: ForumID, ForumName, ForumDescription
11) THREAD: ThreadID, ForumID, ThreadTopic
12) FORUM_MESSAGES: MessageID, ThreadID, UserID, MessageDate,
MessageContent
13) E_MAIL: eMailID, eMailSubject, SentBy, DestinationAddress, SendingDate,
MailText
14) MAILBOX: MailBoxID, UserID

70

12. Entity Relationships


Note: While explaining relationships we used dashed lines to show the relationships set
via the FOREIGN KEYs among entities.
1) The following figure shows the relations among COMPANY, ADMIN,
PROJECT_MANAGER, PROJECTS and TASKS entities which are set via the
FOREIGN KEYS.
The tuples in PROJECTS table have a CompanyID field, the projects and
companies are associated via that field. Similarly, the ProjectID fields in ADMIN and
PROJECT_MANAGER tables show who is admin or project manager in which project.
Admin and project manager are automatically associated with companies since every
project is associated with a company. Tasks are associated with projects with the
ProjectID field appearing in TASKS table.
PREDECESSORS relationship associates each task with its predecessor.

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

13. Graphical User Interfaces


13.1 Input Interfaces
Company Sign-up Step 1 Interface
To create an account the person creating the company (administrator) should provide at
least name, company login name, and e-mail information. Figure 1 visualizes this
procedure. But registration is not completed yet. Administrator should also be registered.
So he/ she is oriented to next step of registration.

Figure 13.1 Company Sign-up Step 1 Interface

75

Company Sign-up Step 2 Interface


Company registration continues in Figure 2. Here administrator creates his/her own
account. He/She has default permissions. So these rights are not asked here again.

Figure 13.2 Company Sign-up Step 2 Interface

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.

Figure13.3 Login Page

77

Profile Creation Interface


demonstrates one of the basic interfaces of projeX. This GUI is designed for
users with administrative capabilities. They have the right to create new profiles within
the company. In fact, they do not enter the whole information about the person. They fill
the areas of name, surname, e-mail address, and permissions. A username is created
consisting of name and surname. For example if name is Jack and surname is Brown then
the username is JackBrown. Then an automatic password is generated for the first usage.
Registration information is sent to the user automatically. User has the right to change
his/her password, but not the username and permissions.
Figure 4

Figure 13.4 Profile Creation Interface

78

Profile Modification Interface (for project developers)


Users can edit and update his/her profile information. However they can not change all of
the information. Name, surname, username, and permissions cannot be changed.
Permissions can only be updated by Project managers, group leaders or administrators.
This can be seen below in Figure 5. Also ineterest area field is a combo box menu. Interest
areas can be chosen and add. This field is also important for Project managers while
assigning Project developers to tasks. Project developers can be matched with their
interest area during assignation.

Figure 13.5 Profile Modification Interface (for Project Developers)

79

Task Creation Interface


Figure 13.6 demonstrates the task creation operation. This interface can only be
accessed by admins, project managers, and group leaders.
One of the facilities of this page is that while creating a task user has the chance to view
the general status of projects and tasks. Statuses are displayed graphically.

Figure13.6 Task Creation Interface

80

Group Creation Interface


Figure 13.7 illustrates group creation process. To create a group user (having the right to
create group) should define general information, members, resources,and tasks of the
group. Group can be thought as a company inside of another company. So group has its
members. And these members have permissions on group base. That is to say,
permissions determining the accesses to the groups tasks, resources, accounts, etc. These
permissions are given while adding members to the group, synchronizely. When a
member is added his/her rights are given, either put on a tick or cross.

Figure13.7 Group Creation Interface

81

Resource Creation Interface (Admin)


Resources are created by the interface below. Admin has the ability to create, modify, and
delete resources.
Resources attiributes availability and in which project it is used- are displayed here.
From the tab, assignations, admin can assign time duration to resources.

Figure13.8 Resource Creation Interface (Admin)

82

13.2 Output Interfaces


Projects Interface (for Project Developers)
When a project developer logs in default window is Projects Interface as it can be shown
below (Figure13.9). Here, by default, incomplete tasks of the on-going project is
displayed. However user has the chance to change the order of tasks listed. He/she can
order them according to status, priority, assigned person criteria.
Since Figure13.9 (below) illustrates projects interface for project developers some
buttons are inactive. Project develeopers can not create or delete task, project, resource,
and group.

Figure13.9 Projects Interface (Project Developers)

83

Project Interface (for Admin)


Difference of the figure below (Figure 13.10) from figure x is that create and delete task,
project, group, resource is now active.
To view the details of each task it is enough to click on the name of the task then admin
can change its details.

Figure 13.10 Projects Interface (for Admin)

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.

Figure 13.11 Gantt Chart

85

Project Statistics Interface


This interface shown below (Figure 13.12) is also a common window. Through this page
users of any category can get an idea about the project's status.
There are three tables here. First table gives the general information about project. Then
the second table displays the statistics of project members. And finally last table gives the
statistics of tasks.

Figure13.12 Project Statistics Interface


Project Performance Interface
In this interface performance of each project member is revealed graphically. For each
member of the project there are time vs task number and project number graphics.
Everyone can see all other members' performance. This can be a encouragement for
project developers to finish their work on time.

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.

Figure13.13 My Office Interface

87

My Office Interface (Turkish)


One of the difference of projeX from other Project management tools is that it gives the
chance to change the tool's language. Although default language is English it can be
turned into Turkish if the user prefers. Figure 13.14 is one of the example Turkish pages.

Figure 13.14 My Office Interface (Turkish)

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.

Figure 13.15 Help Interface

89

14. Platform Alternatives


This part covers our development platform alternatives with their pros and cons.

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

of web programming with ASP.NET and database programming with ADO.NET , we


decided to develop ProjeX with Microsoft Visual Studio .NET.

15. Estimations (Lines Of Code (LOC) Based)


The languages that are to be used are SQL and C++/C# .The mainly used language is C+
+/C# (nearly 65%) and SQL is used for queries. So the conversions are as follows:
C++/C# = 64 LOC/FP
SQL = 12 LOC/FP
So the weighted percentage for LOC/FP: 65 % * 64 + 35 % * 12 = 45.8 LOC/FP
Then,
LOC = 45.8 * 647 =29.6 KLOC

15.1 Effort Estimations


a) Bailey Basili Model:
E = 5.5 + 0.73 * (KLOC) ^(1.16)
= 5.5 + 0.73 * (29.6) ^(1.16)
= 42.6 person-months
b) Waltson Felix Model:
E = 5.2 * (KLOC) ^(0.91)
= 113 person-months
c) Boehm Simple Model:
E = 3.2 * (KLOC) ^(1.05)
= 112 person- months

15.2 Time Estimations


According to Boehm-Simple Model:
Time = 112/ 4 = 28 months (Since 4 people are working on the project)

92

16. Design Considerations and Constraints


As seen above, the calculated estimations are very high. Since we have a limited
time of 3 months for configuration management, implementation, testing/debugging and
demo completion, the contents of the packages will be kept in a reasonable level. We are
experienced in C++ applications, but .NET environment is a new area for us to study; so
were going to have to spend time on understanding .NET and its usages in our kind of
web applications.
While designing our project, we gave importance for it to be easy-to-use and
simple. We have tried to avoid implementations that will distract the user from using our
software. Because after our user surveys, we have seen that the project members in the
companies do not use task scheduling programs, altough these programs are available in
their computers.
In the user account creation part, the administrator has the permissions to create
the project members accounts, providing company information and usernames. But the
password creation is being managed by a random password generator; because we dont
want the administrator to take part in assigning passwords to the project members.
The administrator entity is included in the program, because the user account
creation shouldnt be a workload for the project manager.
It was decided to give several user permissions to project members because the
user might play a role in any part of the project and may need to have different
permissions for different tasks. For example, a user might be the tester of a project and
have the rights concerning the testing phase; and he/she might be a group leader in
another project and have the right to create workgroups and assign tasks.
The user will have a workspace where he/she can see his personal details and
assigned tasks. The workspace, called My Office in the GUIs, will be viewed by the
user according to his/her permissions. For example, the links to task creation will not be
available to a normal project member.

93

17. Schedule for the Next Semester]


17.1 Tentative Milestones of the Project for the Next Semester
Week of Start
February, 21
(1 Weeks)
February, 21
(2 weeks)
February, 28
(1 week)
February, 28
(2 Weeks)
February, 28
(1 Week)
February, 28
(3 Weeks)
March, 7
(1 Week)
March, 7
(4 Weeks)
March, 14
(4 Weeks)

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

Components Decision Making


Web Page Creation for ProjeX
Development Snapshot Preparing
Living Schedule Creation
Configuration Management and Development Plan
Planning of testing Specifications for performance and Features
Database Packages Implementations
Graphical User Interface Implementations

Task Management Package Implementations


User Management Package Implementations
Account Creation Package Implementations
Resource Management Package Implementations
Critical Path Implementation
Group Management Implementations
Gantt Chart Generation Package Implementations

94

April, 25
(3 Weeks)

Statistics and Performance Evaluation Package Implementations

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

17.2 Gannt Chart


T E N T A T IV E S C H E D U L E F O R N E X T S E M E S T E R
Ja n u a ry

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

18.2 Data Flow Diagram for Level 0


l e v e l 0 D F D fo r P r o je c t M a n a g e m e n t T o o l
p r o je c t m e m b e r

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

18.3 Data Flow Diagram for Level 1


p r o je c t m e m b e r

% 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

com pany nam e

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

18.4 Data Flow Diagram for Project Management - Level 2

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

18.5 Data Flow Diagram for Account Management - Level 2

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

18.6 Data Flow Diagram for Informationt Management - Level 2

102

18.7 Data Flow Diagram for Human & Resources Management- Level 2

103

18.8 Data Flow Diagram for Schedule Management - Level 2

104

Vous aimerez peut-être aussi