project life cycle management.doc

30
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 [email protected]

Upload: samuel90

Post on 15-Jan-2015

1.812 views

Category:

Technology


4 download

DESCRIPTION

 

TRANSCRIPT

Page 1: project life cycle management.doc

MASTER’S PROJECT REPORT

Spring 2006 (CS 698)

Project Life Cycle Management System

ADVISORSDr. Irwin Levinstein

Mr. Ajay Gupta

PRESENTED BYNageswara Rao SripathiStudent ID: @00074301

[email protected]

DEPARTMENT OF COMPUTER SCIENCEOLD DOMINION UNIVERISITY

Page 2: project life cycle management.doc

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.

Page 3: project life cycle management.doc

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.

Page 4: project life cycle management.doc

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.

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.

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.

Log InSetup New

ProjectCreate Users

Assign Project to

UserSet User Access

Log In Select Project

System shows modules that

user has accessSelect Module

Page 5: project life cycle management.doc

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.

Page 6: project life cycle management.doc

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.

Typical Users: Project Managers, Business Analysts

Identify Risks

Review Risks / Add

missing Risks

Select top 20 Risks

Rank & Rate Risks.Repeat until Phase 5 or Kendals W > 0.5.

Page 7: project life cycle management.doc

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.

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.

Enter Business Requests

Enter Requirements.

Identify Development

Req.

Map Requirem

ents to Business Requests

Enter Use case

details

Map Use cases to

Requirements

Upload supporting documents

Page 8: project life cycle management.doc

Any supporting documentation, including Technical Specification Documents can be

attached in this module.

Testing

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.

Typical Users: Project Manager, Developer, Tester

Show completed Dev. Items

Select Dev Item

Assign Tester &

Enter Details

Upload Supporting

Docs

Show Items under Testing

Select Testing Item

Update Percent

Complete & Status

Upload Supporting

Docs

Show new Development

ReqsSelect

Requirement

Assign Developer & Enter Details

Upload Supporting

Docs

Show Items under

DevelopmentSelect Dev.

Item

Update Percent

Complete & Status

Upload Supporting

Docs

Page 9: project life cycle management.doc

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.

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

EnterNewBugs

Show existing

BugsSelect Bug

Upload Supporting

DocsUpdate

Bug Details

SelectProject

Select Module

UploadDoc

Grant Access to

Users

SelectProject

Select Module

View Docs Listing

View/Delete Docs

Page 10: project life cycle management.doc

Owner / User

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.

SelectProject

Select Module

View Available

DocsCheck-out Docs

SelectProject

Select Module

View Checked-

OutDocs

Check-in Docs

Page 11: project life cycle management.doc

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.

Page 12: project life cycle management.doc

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

Page 13: project life cycle management.doc

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.

Page 14: project life cycle management.doc

4. 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

Page 15: project life cycle management.doc

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

Page 16: project life cycle management.doc

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

Page 17: project life cycle management.doc

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

Page 18: project life cycle management.doc

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

Page 19: project life cycle management.doc

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" />-->

Page 20: project life cycle management.doc

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

Page 21: project life cycle management.doc

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.

Page 22: project life cycle management.doc

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.