Documente Academic
Documente Profesional
Documente Cultură
Table of Contents
Abstract i
Acknowledgement ii
Declaration iii
Table of Contents iv
List of Figures vi
List of Tables vi
List of Acronyms and Abbreviations vii
1. Introduction
1 Problem Statement 01
2 Product Scope 01
1.2.1 Objectives 01
1.2.2 Goals 02
1.2.3 Benefits 02
3 Project Report Structure 03
2. Methodology
1 Requirement Analysis 04
2.1.1 Use case Diagram 04
2 Design 07
2.2.1 Class Diagram 07
2.2.2 Activity Diagrams 08
2.2.3 Database Design 15
3 Implementation 17
2.3.1 Integration of the Components 19
2.3.2 Central Administration 20
Page | 1
Group ID: ITP09/WE/G1 Final Report for PRoMaT
4 Testing 20
2.4.1 Test Plan Objectives 20
2.4.2 Test Scope 20
2.4.3 Test Strategy 21
2.4.4 Test Environment Requirements 22
2.4.5 Test Schedule 22
2.4.6 Control Procedures 22
2.4.7 Functions Tested 23
2.4.8 Suspension/Exit Criteria 23
2.4.9 Resumption criteria 23
3. Evaluation
1 Assessment of the Project Results 24
2 Lessons Learned 25
3 Future Work 27
4. Conclusion 30
5. References 31
Page | 2
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page(s)
Tables
Table 1.1 – Definitions and acronyms 1
Table 4.1 – User Levels 34
Figures
Figure 2.1 – Organizational Hierarchy 8
Figure 3.1 – Add Task Form 13
Figure 3.2 – Issues Information Form 14
Figure 3.3 – My Team Time Entry Approvals 15
Figure 3.4 – My Time Sheet 15
Figure 3.5 – Connectivity and Data Flow 17
Figure 4.1 – Use Case Diagram 19
Figure 4.2 – Enhanced Entity Relationship Diagram 38
Page | 3
Group ID: ITP09/WE/G1 Final Report for PRoMaT
1 Introduction
1.2.1 Objectives
The following objectives achieved through developing PRoMaT,
Share the details relevant to projects within one platform; MS SharePoint.
Input project related data through timesheets and other relevant forms.
Construct different access levels according to the user groups.
Accumulate project details into a customized database.
Generation of reports
Page | 4
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Furthermore ProMaT facilitates entering and updating details, generating unique ids,
approval of forms, sending e-mail notifications and etc...
The allocation of human resource (assigning project managers, assigning employees) can
be done by using relevant forms and arise of bottlenecks can be avoid by the use of
applicable reports. Time sheets enables assign work for consultants according to time
basis.
1.2.2 Goals
We have developed the proposed sub-system as per the expected level. The Project
Management system (PRoMaT) provides a superior platform to deal with project related
data according to the user’s needs and wants, irrespective of the place. Also it is capable
of operating with Microsoft Windows environment. PRoMaT enables user to integrate
their work flow with Microsoft SharePoint server 2007. Furthermore it enhances the
group collaboration whilst generating reports which helps the decision making process.
1.2.3 Benefits
In any organization managers require information to make correct and effective
assessments over subordinates work, at the right time. The developed system provides the
following benefits to the organization as a whole;
All user groups can share project details through the system according to the
respective user level.
The manual work and delays can be minimized with the facilities of the system.
Utilization of resources can be done in an optimal manner with use of reports.
Evaluation of daily project status, work progress of projects, performance of
ongoing projects, assessment of weekly summary of project work.
Integrated work flow, security, authority ensures sufficient level of data
protection.
Page | 5
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Chapter 01 – Introduction
Overall Problem Statement, Product Scope in addition with Objectives, Goals and
Benefits has been discussed under this section.
Chapter 02 – Methodology
This section provides a comprehensive analysis of requirements along with Design
(inclusive of main diagrams), Implementation and Testing.
Chapter 03 – Evaluation
The assessment of Project results, its outcomes has been discussed in this section. In
addition, the lessons we learned as the developer team and the Future Work regarding
this project has been indicated here.
Chapter 04 – Conclusion
This part provides a brief description about the Project success, benefits to the client,
limitations/constraints and shortfalls regarding the project.
Chapter 05 – References
This section provides the websites, materials, articles, blogs and references used during
the documentation.
Page | 6
Group ID: ITP09/WE/G1 Final Report for PRoMaT
2 Methodology
2.1 Requirement Analysis
2.1.1 Use Case Diagram and Activity Diagram
The following diagram expresses the ProMaT’s behavioral requirements along with
the functional requirements. Each use case given below describes the how the
requirements/tasks have been achieved in the proposed sub-system.
PRoMaT
The Project Management System
Client Validation
<<include>>
Notification
<<include>>
Sales/Technical Team <<include>>
Assign Project
Manager & Technical Lead
Remove Project
E-Mail Server
<<include>> <<include>>
Approve Time Sheet
<<include>>
<<include>>
Project Issues
Entry
<<extend>>
Solution Entry
Update Project Assing Emplooyees
Project Manager
Report Generation
Technical Lead
Project Data Entry
<<include>>
<<include>>
Time Sheet Data
Consultant Entry <<include>>
Validate Group
Page | 7
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page | 8
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page | 9
Group ID: ITP09/WE/G1 Final Report for PRoMaT
2.2 Design
The following UML Diagrams were used at the different phases of the project to identify
the work flow and the behavior.
2.2.1 Class Diagram
Project
Client
+name
+name +type
+address +status
+department +start date
+email +end date
+tel no 1 +duration
1..*
+enter_data(name, address, department, email, tel no) +project manager
+find_project() +technical leader
+enter_data(name, type, status, start date, end date, duration, project manager, technical leader)
+update_status(status)
+find_employees()
+find_tasks()
Time sheet
+task id 1..*
+date
+start time
+end time 0..*
+description 1..*
+status
+total Task
+enter_data(date, start time, end time, description, status) +project id
+calculate_total() +name
+priority
+status 1
+description
0..* +start time
+deadline
1
0..* +enter_data(project id, name, priority, status, description, start time, deadline)
Employee +update_status(status)
1..* +enter_problem()
+fname
+lname 1..*
+address 1
+city
+country
+salary
+enter_data(fname, lname, address, city, country, salary)
+find_task()
+generate_report ()
Consultant 0..*
Problem
+time_sheet_data_entry()
Sales/Technical Team +description
+proposed solution
CTO
+project_data_entry()
+enter_data(description, proposed solution)
+assign_PM&TL() +update_solution(solution)
+update_project()
Project Manager
+assign_employees()
+project_issues_entry()
+update_project()
+project_data_entry()
+approve_timesheet()
+remove_project()
Technical Lead
+assign_employees()
+project_issues_entry()
+update_project()
+project_data_entry()
Page | 10
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page | 11
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Validate user
[Valid] [Invalid]
Load the relevant form Ignore request and display an error message
Submit form
Page | 12
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Activity Diagram 04
[Vlalid] [Invalid]
Syatem load the Project data form Ignore request and display error message
Project manager enters project data and ask for the project code
Page | 13
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Activity Diagram 05
Validate User
[Valid] [Invalid]
Assign employees to tasks and sub tasks Ignores the request and dispaly an error message
Page | 14
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Activity Diagram 06
Validate User
Enter relevant details (daily work) Ignore the request and dispaly an error message
Page | 15
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Activity Diagram 07
Validate user
[Valid] [Invalid]
Enter details and approve the form Ignore request and display an error message
Submit form
Page | 16
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Activity Diagram 13
[Valid]
[Invalid]
Identify the access level Ignore the request and display error message
Identify user as CTO/CEO or COO Identify user as a project manager Identify user as a technical lead Identify user as a consultant
Generate report
Page | 17
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page | 18
Group ID: ITP09/WE/G1 Final Report for PRoMaT
The database is used to store data related to projects in Spring Global Services and
generate reports according to the user access level. The database is implemented using
Microsoft SQL server 2005. SQL server 2005 provides performance, scalability, security
and manageability. It is also a Business Intelligence vendor.
Database Model
Entities of the database are,
Client
Project
Employee
Task
Subtask
Problem.
The datasets
The client dataset stores basic information about clients. This is the
PROMATCLIENT table. A client may have multiple telephone numbers and this
is stored in the PROMATCTELEPHONE table.
The project dataset stores basic details about the project including
approved/rejected status and assigned Project Manager and Technical Lead. This
is the PROMATPROJECT table.
The employee dataset stores basic information about all employees. This is the
PROMATEMPLOYEE table. An employee may have multiple telephone
numbers and this is stored in the PROMATETELEPHONE table.
The task dataset contains information about tasks under a given project. This is
the PROMATTASK table.
The sub task dataset contains information about sub tasks under a given task. This
is the PROMATSUBTASK table.
The assigned dataset contains data about which employees are assigned to a
particular task/sub task. For tasks, this is the PROMATTASKASSIGNED table
and for sub tasks this is the PROMATSUBTASKASSIGNED table.
Page | 19
Group ID: ITP09/WE/G1 Final Report for PRoMaT
The timesheet dataset contains data about when and how long an employee has
spent on his/her assigned task/sub task. For tasks, this is the
PROMATTASKALLOCATETIME table and for sub tasks this is the
PROMATSUBTASKALLOCATETIME table.
The bottleneck dataset contains information about problems encountered in a
task/subtask. For tasks, this is the PROMATTASKBOTTLENECK table and for
sub tasks this is the PROMATSUBTASKBOTTLENECK table.
2.3 Implementation
The sub system developed for SGS was based on the latest technologies that provided by
the Microsoft Corporation. The entire system were developed using the concept of
component base implementation. This phase carried out with three categories shown
below.
Forms Implementation
Database implementation
Report generation
Microsoft InfoPath 2007, Microsoft Visual Studio 2008, Microsoft SQL Server 2005,
SQL Server Reporting Services 2005, SharePoint Server 2007, SharePoint Server
Services 2007 are the technologies used at the development process.
Forms Implementation
MSI 2007 and C# with the .NET framework 3.5sp1 were used to develop the forms.
The data entered by a particular user needs MSI 2007 services for the temporary storage
of data in XML format. The code segments and C# classes which used to store data in
SQL 2005 relational databases are provided with the Appendix C-Section A.
The resetting process of controllers on the forms is essential to increase performance and
user-friendliness of the sub-system. Both code segments given in Appendix C-Section B
and Appendix C-Section C.
Page | 20
Group ID: ITP09/WE/G1 Final Report for PRoMaT
XPathNavigator and XmlNamespaceManager classes have been used to convert the data
to be stored in the database. SelectSingleNode method has been used to read and identify
controllers uniquely.
The C# classes and code segment has been used to create the database connectivity is
given at the Appendix C-Section C. This special code segment implemented with
exception handling techniques since user need to read values from database and write
values to the database. The other code segments contain the general classes and methods
available in C#. One of the interfaces which used the above code segment is given below.
The forms were developed by using Business Forms services of the SP 2007 as browser
based forms to avoid the barriers of physical location.
Database Implementation
Database implementation was done with the SQL 2005 using relational database model
which represents twenty one (21) tables. Schema refinement, Normalization and database
validations were done do enhance its performance. The database is maintained as an
external source which is connected with the SP 2007.
Page | 21
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Thus all user inputs stored in it, is considered as external but connected with the SP 2007
which is managed through the content management services.
Report Generation
Report Generation is completely handled with VS 2008 .NET Frame Work 3.5sp1 and
SQLRS 2005. This is laid on top of the Business Intelligence services of the SP 2007.
The Content Management Services is integrated with the Business Intelligence services
in order to revise the reports according to the updates. All the reports is designed in order
to facilitate the decision making process.
Page | 22
Group ID: ITP09/WE/G1 Final Report for PRoMaT
2.4 Testing
This phase carried out most experimental examination with the sensitive data relevant to
the system. As a result of that the developer team enabled to identify the deviations of the
users given requirements and the quality of the proposed sub-system.
Define the activities required to prepare for and conduct System, Beta and User
Acceptance testing.
Communication of the system test strategy to all responsible parties.
Define deliverables and responsible parties.
Communication of dependencies and risks to all responsible parties.
Reports
The system allows user groups to view and print reports according to their authority
level.
Page | 23
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Security
Each user provided with a User ID and Password to login to the system. User access to
the system maintained by the Windows Active Directory [2].
System Test
The System test was focus on the behavior of the PRoMaT. User scenarios have been
executed against the system and error messages were tested. Finally the integrated system
verified that it meets the requirements defined by the client.
Performance Test
Performance test has been conducted to ensure that the system response times to meet the
client expectations and do not exceed the specified performance criteria.
Security Test
Security test has been carried out to examine how secure the PRoMaT is. The test has
been verified and prevented unauthorized user access to the confidential data.
Stress and Volume Test
PRoMaT has been tested with high input conditions and high volume of data during the
peak times. Furthermore it has been tested with twice of the concurrent accesses.
Beta Test
This has been done at the customer premises and they reported the errors and bugs found
with the system.
Page | 24
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page | 25
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page | 26
Group ID: ITP09/WE/G1 Final Report for PRoMaT
3 Evaluation
3.1 Assessment of the Project Results
It provides fully integrated security in the form of user logins and authentication. It
makes easy in administration in the form of group policies and permissions. It makes
easy to identify the resources. It is tightly integrated with DNS services for all its
operations, which will provide better identifications and migrations.
Page | 27
Group ID: ITP09/WE/G1 Final Report for PRoMaT
The user interface and much of the business calculations are done by the client
workstation. All database concurrency control, data movement, data searching, and data
manipulation are performed by the Database Server on the file server. The Database
Server becomes a central point of control for database access.
Clear communication
For a successful project, clear communication is one of the key features. All the
members of the team must be able to articulate their feelings, expressions, plans and
ideas. By keeping this in mind, for a better communication we experienced so many
techniques available in the World Wide Web.
For instance, Team Viewer, software which enables remote communication.
By creating our own Web site that is http://www.projecthostoi .com we were able to
share documents as in a real environment.
Version control, updating, check-in and check-out processes were maintained through
the website. This process was same as the process of using configuration management
tool such as Key Stone. This was a real time experience that we came across.
Also we experienced that the poor configuration management caused waste of time
and effort. This was a good experience that we faced, once we have deleted a folder
with valuable records and unable to recover it.
Page | 28
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Establish roles
It is absolutely necessary for team members to understand their role in the team and
responsibilities. Understanding the abilities of each person and providing the best role
for her/him to act in the project was the difficult part we had. Since we were in the
same batch we understood each people’s capabilities and divided the roles among the
team members.
This gave us a good experience on working with people with different capabilities.
Sharing the knowledge with each member helped us to increase our knowledge on
multiple domains.
Conflict Resolution
Conflicts will arise no matter how well a team functions together, these happen for
various reasons, so we understood that team members should be able to voice their
concerns without fear of offending others. Respect others and breaking self barriers
were the most important lessons that we learnt. In a situation like this, we knew the
roles and the responsibilities that the team leader should take.
Page | 29
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Meeting Deadlines
Since this was a team work contribution of each member to meet deadlines was
highly expected. Dividing the work load among the team members reduced the risk of
passing deadlines. Understanding the risks in the project and mitigation of the risk
always lead our team to meet the dead lines successfully as we planned.
We performed a lot of work to get a stable server application and still have to invest time
to eliminate bugs. Since some software patches were released while writing, we have
made some progress.
We will enhance the interfaces in such manner the user gets more comfortable,
attractive and user friendly system. Currently we have used InfoPath and SharePoint
default interfaces and it is expected to enhance interfaces with attractive pictures, colors
and minimizing user actions.
We could invest more time to test multi user accessing at the same time using
Active Directory Accounts. Currently we have tested the system using 4 users and
planning to test more than 20 users accessing the system while eliminating
problems.
Page | 30
Group ID: ITP09/WE/G1 Final Report for PRoMaT
We will enhance the existing user levels and permissions to different types of
users. Currently PRoMaT has 3 access levels and we will plan to introduce more
than 6 access levels in our system.
We expect to spend more time to test sending e-mail notifications through the
system using external e-mail server. Currently we are using internal mail server to
send email notifications through the system. Later we will enhance the system to
send mails using external mail servers such as Google mail, Yahoo mail, Hotmail.
We could invest more time to improve the PRoMaT, to attach it with any
organization which has Microsoft SharePoint Server. This system specially
designed for SGS’s requirements and we will plan to enhance PRoMaT to be
compatible with general requirements of other similar kind of companies.
Page | 31
Group ID: ITP09/WE/G1 Final Report for PRoMaT
4 Conclusion
In conclusion it is reasonable to express that PRoMaT is a successful project as per the
expected level, within the given duration to the project. PRoMaT runs efficiently as web
based component. In addition to that PRoMaT can be easily plugged into the client’s
system.
The proposed sub-system has been achieved the objects stated below;
Share the details relevant to projects within one platform; MS SharePoint.
Input project related data through timesheets and other relevant forms.
Construct different access levels according to the user groups through the
use of AD.
Accumulate project details into a customized database.
Generation of reports according to the user levels to aid decision making
process.
Due to the limitations and unavailability of the resources (At the actual performance
PRoMaT needs four server unit integration at once to perform its tasks), the developer
team could not perform the system testing criteria at Sri Lanka Institute of Information
Technology, but managed to do a single system test at the customer premises.
Finally we expect that SGS will be capable of using the sub-system as another application
available in their organizational intranet while achieving benefits such as group
collaboration, share project data within one platform, create different views to the user
groups and enhanced decision making process with use of reports.
Page | 32
Group ID: ITP09/WE/G1 Final Report for PRoMaT
5 References
[2] - Security
http://www.sqatester.com/documentation/testplansmpl.htm
Accessed 30/09/2009.
Page | 33
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Appendix A
Deployment Diagram
Sharepoint Server
Infopath Forms
Services
PC http over intranet
Web browser
LAN
SQL server
Page | 34
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Appendix B
Test Result
Page | 35
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page | 36
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Page | 37
Group ID: ITP09/WE/G1 Final Report for PRoMaT
Appendix C
Section A
XPathNavigator xpnav = this.CreateNavigator();
XmlNamespaceManager xmlnsm = this.NamespaceManager;
clntname = xpnav.SelectSingleNode("/my:myFields/my:txtCName",
xmlnsm).ToString();
clntadd = pnav.SelectSingleNode("/my:myFields/my:txtAddress", mlnsm).ToString();
clntcity = xpnav.SelectSingleNode("/my:myFields/my:txtCity", xmlnsm).ToString();
Section B
XPathNavigator xpnav1 = this.CreateNavigator();
XmlNamespaceManager xmlnsm1 = this.NamespaceManager;
xpnav1.SelectSingleNode("/my:myFields/my:txtCName", xmlnsm1).SetValue("");
xpnav1.SelectSingleNode("/my:myFields/my:txtAddress", xmlnsm1).SetValue("");
xpnav1.SelectSingleNode("/my:myFields/my:txtCity", xmlnsm1).SetValue("");
Section C
SqlConnection conn = new SqlConnection("Data Source=SERVER2003;Initial
Catalog=PROMAT;Integrated Security=True");
if (approved == 1)
{
query = "update promatproject set papproval=1, pmid='" + projectManager +
"',techleadid='" + technicalLead + "' where projectid='" + projectid + "'";
}
if (approved == 0)
{
Page | 38
Group ID: ITP09/WE/G1 Final Report for PRoMaT
finally
{
conn.Close();
}
}
clicked = false;
}
Page | 39
Group ID: ITP09/WE/G1 Final Report for PRoMaT
try
{
SqlCommand comm = new SqlCommand(queryPid, conn);
conn.Open();
SqlDataReader reader;
reader = ReadTable(queryPid);
while (reader.Read())
{
projectname = reader[0].ToString();
clientname = reader[1].ToString();
clientid = reader[2].ToString();
projecttype = reader[3].ToString();
pdescription = reader[4].ToString();
billingtype = reader[5].ToString();
priority = reader[6].ToString();
}
reader.Close();
navi.SelectSingleNode("/my:myFields/my:txtProject", mana).SetValue(projectname);
navi.SelectSingleNode("/my:myFields/my:txtClient", mana).SetValue(clientname);
navi.SelectSingleNode("/my:myFields/my:txtClientID", mana).SetValue(clientid);
Page | 40
Group ID: ITP09/WE/G1 Final Report for PRoMaT
navi.SelectSingleNode("/my:myFields/my:txtProjectType",
mana).SetValue(projecttype);
navi.SelectSingleNode("/my:myFields/my:txtDescription",
mana).SetValue(pdescription);
navi.SelectSingleNode("/my:myFields/my:txtBill", mana).SetValue(billingtype);
navi.SelectSingleNode("/my:myFields/my:txtPriority", mana).SetValue(priority);
}
catch
{
}
finally
{
conn.Close();
}
}
Page | 41