Sie sind auf Seite 1von 22

MASTER’S PROJECT REPORT

Spring 2006 (CS 698)

Project Life Cycle Management


System

ADVISORS
Dr. Irwin Levinstein
Mr. Ajay Gupta

PRESENTED BY
Nageswara Rao Sripathi
Student ID: @00074301
psripath@cs.odu.edu

DEPARTMENT OF COMPUTER SCIENCE


OLD DOMINION UNIVERISITY
ABSTRACT

Project Life Cycle Management System (PLMS) aims to simplify the process of
managing an IT Project by consolidating all the project information in one place. This
system will help track the different stages of an IT project including – Risk Analysis,
Requirements Gathering, Development, Testing and Maintenance. The typical users of
this tool will be – Project Managers, Business Analysts, Project End-Users, Developers
and Testers.

Document Management module of this application is integrated with all of the project
phases. Users can check-in, check-out , set access controls and manage all the
documents of the project using this module.

The tool has been developed using a three-tier architecture comprising of interaction
between the client, the web server and the database server. The front-end has been
developed using the ASP.NET framework in Microsoft Visual Studio. The middle tier has
been coded in C# and the application is hosted on IIS web server. MS SQL Server
database used. A combination of triggers, stored procedures and views has been
developed to reduce the load on the web server.
1. INTRODUCTION
Every IT Project implementation goes has the following stages –
• Feasibility/Risk Analysis
• Requirement Analysis
• Development
• Testing
• Maintenance

Having worked in different roles in Project implementations in different phases of the


Project Lifecycle, I have noticed that a single tool, which can keep track of the whole life
cycle of the project is a critical ingredient for the success of the project.

Information management in a project implementation, spread across different


geographical locations and involving hundreds of people is not an easy task. For
example – at my current client, Risk analysis was done before the project, but mostly
through emails, requirements were gathered from users and converted into requirements
for the application, but in excel sheets. Development was tracked but in MS Projects and
Bugs where reported, but in a different web based application.

So to know the current status of the project, a Project Manager would have to look
through multiple databases and work with multiple applications. And a person on the
road, and people sitting in different locations did not have access to the excel files sitting
in network drives in the centralized location.

The Project Lifecycle Management System, solves this problem by providing a single
point of access to collect and manage all this information.
2. PROCESS FLOW
The following section talks about the different kinds of users, who use this system and
the logical flow of data in the system.

Admin
The System Administrator will have the ability to create new projects and add users to
the project.

Setup Assign
Log In New Create Project to Set User
Project Users User Access

Typical Users: System Administrator

User
This tool is designed to work with multiple projects. Hence when a user logs in, the user
will have to select the project that he wants to work on.

System shows
Log In Select modules that Select
Project user has access Module

Typical Users: Project Manager, Developer, Tester, End-User

Modules
The system will be divided into the following Modules –

1. Risk Analysis / Delphi Study


The user will be able identify the different risks associated with the project, through an
iterative process of getting input from various project users. The risks will then be
validated, filtered, ranked and rated until consensus as determined by Mathematical
formula.
Delphi Methodology has been used to identify the major risks. According to this, the Risk
Analysis process is divided into 5 major Phases – with a minimum of 3 completed
Phases.

Phase I
IT Managers and Business Analysts in different locations and depts., who have an
interest in the project, log into the system and enter the risks that they think pose the
greatest threat to the project.
4 types of risks/barriers are identified in Phase I -
• Set Up Barriers
• Data Collection Barriers
• Data Analysis Barriers
• Knowledge Sharing Barriers
A Delphi Process Administrator will then login and eliminate duplicate risks and
consolidate the barriers/risks entered by different users. He will then activate Phase II.

Phase II
The users identify the top 20 risks of all the risks entered in Phase I.
The Delphi Admin will then activate Phase III of the process, there by triggering a
process, which carries the top 20 risks, selected by the most users, into the next phase.

Phase III
In this phase the users rank (relatively) and rate (absolutely) the importance of each
barrier. The most important barrier is the one that most inhibits the project. The barriers
are listed in decreasing order based on the percentage of panelists who included them in
their top twenty selection.

The users rank the barriers from 1-20, with 1 being the most important and 20 being the
least important. Ties are not allowed in this phase and all ranks should be used.

The users rate the importance of each barrier on a 9-point scale (1-9 with 1 being least
important, 9 being most important and NR indicating not rated). For this scale, there
may be ties (for instance, any number of items could be rated as “8”). However, the
rating should be consistent with your ranking.
The users also need to explain the reason for choosing their top barrier.

The Delphi Admin will check the Kendals W (a mathematically computed value, based
on the ranking of the users) at this time. If it is less than 0.5, he activates Phase IV,
where the same process is repeated. The top 20 barriers with the highest average rank
are carried forward from Phase III to Phase IV.

Phase IV
Phase IV is a repetition of the previous step to get a better Kendals W value. The user,
though, is now equipped with more information, including responses from the remaining
members of the group.

The Delphi Admin will check again check Kendals W after this phase. If it is below the
required value, he activates Phase V. 20 barriers with the highest average rank are
carried forward to PhaseV.

Phase V
Phase 5 also requires the user to rank the barriers, but this time, the user is provided
with the standard deviation of his rank from the average rank. The highlighted barriers in
this Phase indicate where the user differs most from the other people in the group. This
will help the user, to put the barriers in a better perspective and make any changes, if
he/she thinks necessary.

Review Rank & Rate Risks.


Identify Risks / Add Select top Repeat until Phase 5
Risks missing 20 Risks or Kendals W > 0.5.
Risks

Typical Users: Project Managers, Business Analysts


2. Requirement Analysis
The requirements for a project come from different business users / depts. in the
Organization. Not every requirement can be feature of the implemented IT System. The
Project Management team identifies the Requirements that are feasible and incorporate
them as Requirements for the Project. The Requirement Analysis Team develops use
cases to expand on the requirements. The use case will break down the requirements by
giving more details.
For ex: If there is requirement to create a Purchase Order, the use-case will include
steps that say – Create a Purchase Order by selecting the Vendor, Item, Cost etc. Save
the Purchase Order and submit it for approval and so on.
Some of the requirements may require custom development. For ex: Puchase Orders
with a dollar amount below $500 in Location A should be automatically approved, while
the rest should be routed to the Manager. This would require development of a
Purchasing Approval Workflow.
Such requirements can be marked as requiring Development. These requirements can
then be tracked in the development module.

Enter Enter Map Enter Use Map Use


Business Requirements. Requirem case cases to
Requests Identify ents to details Requirem
Development Business ents
Req. Requests

Upload
supporting
documents

Typical Users: Business Analyst, Stakeholders

3. Development
The requirements that need custom development can be assigned to principal
developers. The progress on development – in terms of percent complete also can be
updated.
Any supporting documentation, including Technical Specification Documents can be
attached in this module.

Show new Assign Upload


Development Select Developer & Supporting
Reqs Requirement Enter Details Docs

Show Items Update Upload


under Select Dev. Percent Supporting
Testing
Development Item Complete & Docs
Status

Typical Users: Project Manager, Developer

4. Testing
All development objects can be assigned to principal QA testers in this module after the
development is complete. The progress of testing can also be tracked.
Any supporting documentation, including Test Plans and Results can be attached in this
module.

Show Assign Upload


completed Select Dev Tester & Supporting
Dev. Items Item Enter Details Docs

Update Upload
Show Items Select Percent Supporting
under Testing Testing Item Complete & Docs
Status

Typical Users: Project Manager, Developer, Tester


5. Maintenance
The users will have the ability to enter bugs in this module. The entered bugs can be
assigned to developers and the progress and updates on the bugs can be tracked. The
bug history can also be viewed.
Any supporting documentation, including screen shots of bugs can be attached in this
module.

Enter Show Upload


New existing Select Bug Update Supporting
Bugs Bugs Bug Details Docs

Typical Users: Project Manager, Developer, Tester, End-User

6. Document Repository
As mentioned above, the document repository is integrated into each of the modules.
Documents can also be attached at the project level. Once the documents are uploaded,
view / download access can be given on these documents to other project users. Only
one user can work on a document at any given point of time. Once a document is
checked out, no other user can check out this document. Only the person who has
checked out the document and check it back in. The Check-in / Check-out history of the
document can also be viewed.

Owner

Grant
Select Select Upload Access to
Project Module Doc Users

Select Select View Docs View/Delete


Project Module Listing Docs
Owner / User

View
Select Select Available Check-out
Project Module Docs Docs

View
Select Select Checked- Check-in
Project Module Out Docs
Docs

7. Reports
The system will provide the following reports depending on User Access.
The homepage of every module will display the current status report.
The following reports are available –
1) Project Status: Show number of Business Requests, Project Requirements,
Usecases, the number of Items under development, Items for which
development is complete, Items under Testing, Items for which testing is
complete, the number of bugs entered and the ones that are resolved.
2) Risk Analysis Module Status: Shows number of risks identified and module
status.
3) Requirement Analysis Module Status: Shows number of Business Requests,
Project Requirements, Usecases.
4) Development Module Status: Shows number of Items under development, Items
for which development is complete.
5) Testing Module Status: Shows Items under Testing, Items for which testing is
complete.
6) Maintenance Module Status: Shows the number of bugs entered and the ones
that are resolved.
7) Project Requirements – Business Request Mapping: Shows the Requirements
and the Business requests that they originated from.
8) Use Cases – Project Requirements: Shows the Use Cases and Requirements
that they define.
3. TECHNICAL SPECIFICATIONS

Application Server : IIS


Front-End : ASP.NET
Middle-Tier : C#
Database : MS SQL SERVER

ARCHITECTURE DIAGRAM

COMPONENTS

IIS Web Server


IIS (Internet Information Services) is the web server on which the application is hosted.

ASP.NET
An ASP.NET page is contains HTML code and server-side scripts that are processed by
a web server before being sent to the client’s browser. ASP.NET framework has been
used in developing the presentation layer and maintaining Session Data. Form Security
feature of .NET has been used for Application Security. .NET Configuration feature has
been used to set Application variables and standardize features across the application.

ADO.NET
ADO.NET stands for ActiveX Data Objects for .NET. It refers to the suite of data access
technologies used to manipulate databases. ADO.NET provides database access to
web applications (ASP.NET) through data providers.

C#
The code-behind has been developed in C#. Database connectivity and business logic
has been encapsulated in the middle-tier. Each aspx page has an associated .cs file that
contains all the event-handling code written in C#.

VS.NET IDE
Visual Studio .NET is used as the IDE. Visual Studio .NET is a complete set of
development tools for building ASP Web applications, XML Web services, desktop
applications, and mobile applications.

MS SQL SERVER
Microsoft SQL Server is the relational database management system used as the
database for this application. Stored procedures and Triggers have been developed to
reduce the load on the front-end and number of database calls to the database from the
front-end.

SQL
SQL is a standard language for accessing and manipulating relational databases.

PL / SQL
Transact-SQL, which is commonly referred to as T-SQL or TSQL, is a step-up version of
SQL used by Microsoft in both SQL Server 7 and SQL Server 2000. It is an
extension to SQL statement set, which allows the developer to impose flow control,
logic design and exception handling in SQL blocks.
CODING

The following coding has been done for this project -

Front-End
About 54 Web Forms have been developed for this project. All the forms have been
developed in ASP.NET framework using Microsoft IDE – Visual Studio.
Lookups for values like Requirements, Use Cases, Developers, Testers etc have been
enforced using Java Script.

The following is the breakdown of the files by module –

Admin
createProject.aspx - Create new projects
updateProject.aspx - Update Project details
showProjects.aspx - List projects registered in the application
createUser.aspx - Create new Users
setUserAccess.aspx - Set User Access to Application Modules
showUsers.aspx - List all users of the system

Project
home.aspx - Module Status page
projectStatus.aspx - Display current Status of all modules in Project
updateProject.aspx - Update Project Details

Risk Analysis / DELPHI Study


home.aspx - Module Status page
admin.aspx - Activate next phase.
adminPhase1.aspx - Consolidate Phase I Barriers
phase1.aspx - Phase I Page
phase2.aspx - Phase II Page
phase3.aspx - Phase III Page
phase4.aspx - Phase IV Page
phase5.aspx - Phase V Page
Results.aspx - Display top 20 risks and Kendals W

Requirement Analysis
home.aspx - Module Status page
addStkhRequests.aspx - Add Stakeholder Requests
addRequirements.aspx - Add Requirements
addUseCases.aspx - Add Use Cases
mapReqStkh.aspx - Map Requirements to Stakeholder Requests
mapUsecaseReq.aspx - Map Use Cases to Requirements

Development
home.aspx - Module Status page
enterDevDetails.aspx - Enter new development object details
updateDevDetails.aspx - Update development object details
showDevReqs.aspx - Show requirements ready for development
showReqsInDev.aspx - Show current development objects

Testing
home.aspx - Module Status page
enterTestDetails.aspx - Enter new testing details
updateTestDetails.aspx - Update testing details
showTestReadyItems.aspx - Show development objects ready for testing
showDevInTesting.aspx - Show development objects being currently tested

Maintenance
home.aspx - Module Status page
enterBugs.aspx - Enter new bugs
updateBugs.aspx - Update bugs and view history
showBugs.aspx - List all bugs reported in the system

Repository
deleteFile.aspx - Delete File from repository
documents.aspx - Show My Documents
downloadFile.aspx - Check-Out File from repository
fileInfo.aspx - Show File Information and History
otherDocs.aspx - Show Documents owned by others, that you have access
reload.aspx - Check-In the downloaded Documents
reloadDocs.aspx - Perform actual file upload
setACL.aspx - Show all users to Set Access Control List
setPermissions.aspx - Grant Permissions to other uses in your file
uploadDocs.aspx - Upload new documents

Reports
home.aspx - Place-holder for future Project-level Reports

Common
changePassword.aspx - Change Password
logout.aspx - Logout from Application
lookup.aspx - Requirement/Use Case/Developer/Tester/User lookup
projects.aspx - Select Project
setSessionState.aspx - Set Application State

HomePage
home.aspx - Application login Page

Code-Behind
An equal number of code-behind files i.e., 54 have been developed for the middle-tier of
this project. The code is written in C#. ADO.NET has been used for Database
connectivity.
Each of the above mentioned aspx pages, have their own corresponding .cs files.

Database
50 Tables
2 Views
14 Stored Procedures &
6 Triggers
have been developed for this project.

The database has been normalized to prevent data redundancy and improve efficiency.

A combination of Stored Procedures, Triggers and Views has been used to reduce the
number of calls made from the Application Server to the Database server, thereby
enhancing the performance and making it more efficient.

Primary Keys, NOT NULL and Unique constraints have been used to maintain data
integrity. Referential integrity is maintained using Foreign Key – Primary Key
relationships. For ex: A row in Projects table cannot be deleted before all the rows in the
dependent tables (like requirements, use_cases etc are deleted). The ER Diagrams are
attached with the project report.

Less used features of T-SQL like Temporary tables have been used in stored
procedures to prevent permanent data storage space.

Here is a listing of all the database objects –

Tables
document_history - Document history
document_acl - Document access control list
documents - All documents in repository
file_actions - Master table for actions performed on Files (Ex: Check-In)
users - Master table of all users
projects - Master table of all Projects
project_users - Users of Project
modules - Master table of Modules
user_access - Module Assignment to Users
stkh_requests - Stakeholder Requests
requirements - Requirements
use_cases - Use Cases
request_requirement_mapping - Requirement & Stakeholder Request Mapping
requirement_usecase_mapping - Use Case & Requirement Mapping
dev_objects - Development Objects
testing - Testing Objects
bugs - Bugs
bug_history - History of reported bugs
Barrier - Risks/Barriers
barrier_comments - Phase I Comments
PhaseII - Phase II Details
PhaseIII - Phase III Details
PhaseIV - Phase IV Details
PhaseV - Phase V Details
delphi_status - Delphi Status Activation Details

Views
document_acl_v - Document Access Control List and Status
project_status - Status of all modules

Stored Procedures
insert_req_stkh_mapping - Insert Requirement & Stakeholder Mapping Details
update_req_stkh_mapping - Update Requirement & Stakeholder Mapping Details
insert_uc_req_mapping - Insert Use Case & Requirement Mapping Details
update_uc_req_mapping - Update Use Case & Requirement Mapping Details
insert_bug - Insert new Bugs
user_access_details - Return modules that user has access to
set_user_access - Set User access to modules
get_phase3_barriers - Pull Phase 3 Barriers based on Phase 2 response
get_phase4_barriers - Pull Phase 4 Barriers based on Phase 3 response
get_phase5_barriers - Pull Phase 5 Barriers based on Phase 4 response
update_delphi_status - Update Delphi Phase Activation Status
get_results - Returns Results based on Ranking of Barriers
download_document - Updates database when document is downloaded from
download manager

Triggers
bugs_history_trg - Populates Bug History when action is performed on Bug
phase1_to_phase2_trg - Populates Phase2 table when Admin consolidates Phase1
data
project_delphi_status - Insert Phase Status rows into Delphi Status when Proj is
created
new_file_update - Creates transaction entry for initial Doc upload
delete_document_history - Deletes Doc ACL & Doc History on Doc delete
update_file_status - Updates file status when doc is uploaded/downloaded

Web.config
The web.config has been used to set Application Variables that have been used across
the application.
For ex: the database connection string has been set here and is used in all files where
database connectivity is required. This helps standardize things and also makes it
easy to make changes. So when the database changes, change in code is required
in just this one file. The following is the entry –

<appSettings>
<add key="connectionString"
value="server=localhost;database=project;uid=sa;pwd=abc123" />
</appSettings>

This config file has also been used to enforce Forms Security feature provided by .NET,
which will be explained in greater detail below.

ASP.NET Security
Web security is primarily about preventing access of secure pages by un-authorized
users. A web server identifies the users using a mechanism called authentication.
ASP.NET thus provides 3 different kinds of authentication – Windows Authentication,
Forms Authentication and Passport Authentication. Forms Authentication has been
used in this application.
Forms Authentication is enforced by making the configuration entries in the web.config
file. Create a folder called protectedFiles and copy all secure files into this folder. Then
make the following entry in web.config –

<!--<authentication mode="Windows" />-->


<authentication mode="Forms">
<forms loginUrl="home.aspx">
</forms>
</authentication>

Create a web.config file in the directory – protectedFiles and make the following entry in
that file –

<configuration>
<system.web>
<customErrors mode="Off" />
<authorization>
<deny users="?" />
</authorization>
</system.web>
</configuration>

Add the following code in the login page (home.aspx in this case) –

if (CustomAuthenticate(txtUserName.Text, txtPassword.Text))
FormsAuthentication.RedirectFromLoginPage(txtUserName.Text, false);
else
lblMessage.Text="Invalid Login";

Write the database authentication code in the function CustomAuthenticate.

Session Maintenace
Session Object of ASP.NET has been extensively used maintain the state of the
application. For ex: once a user logs in, he selects the project that he wants to work on.
Session variables have been used across the application to make sure that the data is
thus segregated by the selected project.
The Session variable is set by –
Session["pname"] = "Project1";

Application Security
When a user logs into the Application, the Menus are set for the user based on his
access restrictions for the modules.
CONCLUSION

This tool would definitely be a great help for management of a project. In the current
scenario, where geographic location of users is no longer considered a limitation
and vast amount of information at each person’s disposal, a web-based application
like this will make project management easy and efficient. People need not look into
multiple systems to get the information they need. Everything they want to know
about the project is available in this application.
6. REFERENCES

1. http://msdn.microsoft.com/library/default.asp

2. http://www.asp.net

3. Jeff Poise (2002). CD ROM Edition. Programming Microsoft .NET. Microsoft

Press.

4. David Chappell (2002). 1st Edition. Understanding .NET: A Tutorial and Analysis.

Addison Wesley Professional.

Das könnte Ihnen auch gefallen