Project Life Cycle
Management System
Nageswara Rao Sripathi
MS Project Defence
Spring 2006
Computer Science Department
Old Dominion University
Overview
Introduction
Project Lifecycle
Application Overview
Modules
Technology
Coding
Conclusion
Introduction
IT Project Life Cycle
Limitation of Geographical
Locations
Information Overload
Multiple Systems & databases
Single Tool to track whole life cycle
of Project
IT Project Lifecycle
Risk
Analysis
Requireme
nt Analysis
Maintenanc
e
Developmen
t
Testing
Application Overview
5 Modules 1 for each Project
Stage
Repository for each Module
Reports
Project Based Segregation
Authentication
Application Security
Application Overview
Admin Functions
Log In
Setup New
Project
Create
Users
Assign
Project to
User
Set User
Access
Typical Users: Sysadmin
User Functions
Log In
Select
Project
System shows
modules that
user has access
Select
Module
Typical Users: Project Manager, Business Analyst,Developer, Tester, End-User
Modules Risk Analysis
Process Flow
Identify
Risks
Phase
Phase
Phase
Phase
Phase
Review
Risks / Add
missing
Risks
Select top
20 Risks
Rank & Rate Risks.
Repeat until Phase 5
or Kendals W > 0.5.
I Collect Barriers
II Identify top 20 Risks
III Rate and Rank Risks
IV Rate and Rank Risks (if required)
V Rate and Rank Risks (if required)
Modules Requirement
Analysis
Process Flow
Enter
Business
Requests
Enter
Requirements.
Identify
Development
Req.
Map
Requireme
nts to
Business
Requests
Enter Use
case
details
Map Use
cases to
Requireme
nts
Upload
supporting
documents
Collect Stakeholder Requests
Translate to Requirements
Build Use cases for Requirements
Modules Development
Process Flow
Show new
Development
Reqs
Select
Requirement
Show Items
under
Development
Select Dev.
Item
Assign
Developer &
Enter Details
Upload
Supporting
Docs
Update
Percent
Complete &
Status
Upload
Supporting
Docs
All development Requirements tracked
Assign Items to Developers
Update Development Status
Modules Testing
Process Flow
Show
completed
Dev. Items
Select Dev
Item
Show Items
under Testing
Select
Testing Item
Assign
Tester &
Enter Details
Upload
Supporting
Docs
Update
Percent
Complete &
Status
Upload
Supporting
Docs
All developed items are tracked
Assign Items to Testers
Update Testing Status
Modules Maintenance
Process Flow
Enter
New
Bugs
Show
existing
Bugs
Select Bug
Update Bug
Details
Report and track bugs
Assign Bugs to Developers
View Bug history
Upload
Supporting
Docs
Modules Repository
Single point of access to complete
project documentation
Documents secured by module
Quick access to required documents
Prevent multiple people working on
same file
Control who can view and edit each file
Track file history
Modules Repository
Process Flow - Owner
Select
Project
Select
Module
Upload
Doc
Select
Project
Select
Module
View Docs
Listing
Grant
Access to
Users
View/Delete
Docs
Owner -the person uploading the file
Grant access to other project users to View/Download
file
Delete file
View Document History
Modules Repository
Process Flow Owner / User
Select
Project
Select
Project
Select
Module
Select
Module
View
Available
Docs
View
CheckedOut
Docs
Check-out
Docs
Check-in
Docs
User All application users
View & Check-out available files
Access restricted by Module
Module - Reports
Intuitively designed for ease-of-use
Access restricted by Module
Report Listing
Project Status Report
Module Status Reports
Requirements Stakeholder Requests
Mapping Report
Use Case Requirement Mapping Report
Technical Specification
Application Server : IIS
Front-End : ASP.NET, Java Script,
HTML
Middle-Tier : C#
Database : MS SQL SERVER
Technical Specification
Architecture
3-Tier Architecture
Coding
Front-End
ASP.NET
Web Forms
Development using Microsoft Visual Studio
Java Script used for Lookups
Middle-Tier
C#
1 Code Behind file for each .aspx file
ADO.NET used for database connectivity
Coding
Database
MS SQL SERVER
Stored Procedures, Triggers & Views used
to reduce load on Application Server
Statistics
50 Tables
2 Views
14 Stored Procedures
6 Triggers
Database Design
Database
Database Design
Database
Database Design
Database
Views
Named Query
Uses
Easier retrieval of required data
Standardization
Reduce I/O operations from Middle-tier
document_acl_v
Returns the Access Control List and Status of the
documents
project_status
Returns the current status of all modules in the project
Triggers
An action(s) performed automatically when a
data manipulation operation is performed on
the database
Uses
Enforce business rules
Reduce I/O operations from Application Server
Faster application development, code is common
to all database applications
Auditing/tracking purposes
Triggers
bugs_history_trg
When the status of a bug is changed the bug history is automatically updated
phase1_to_phase2_trg
When the Delphi Admin consolidates the risks in Phase I, they are automatically
moved to Phase II
project_delphi_status
When a new project is created, the initial status for Delphi module is updated
new_file_update
When a new document is uploaded the entry is recorded in the file transaction
history table
delete_document_history
When a document is deleted, the corresponding Access Control List and Document
history are deleted
update_file_status
When a document is uploaded/downloaded the file status is updated
Stored Procedures
A program written in PL/SQL which is stored
in the database
Uses
Encapsulate business logic common to all
database applications
Reduce load on Application Server
Perform complicated operations/queries specific to
the database
Enforce data validation
Stored Procedures
insert_req_stkh_mapping
Inserts Requirement & Stakeholder Mapping Details
update_req_stkh_mapping
Updates Requirement & Stakeholder Mapping Details
insert_uc_req_mapping
Inserts Use Case & Requirement Mapping Details
update_uc_req_mapping
Updates Use Case & Requirement Mapping Details
insert_bug
Inserts new Bugs
update_delphi_status
Update Delphi Phase Activation Status
Stored Procedures
user_access_details
Returns modules that user has access to
set_user_access
Sets User access to modules
get_phase3_barriers
Creates barriers for Phase 3 based on Phase 2 user response
get_phase4_barriers
Creates barriers for Phase 4 based on Phase 3 user response
get_phase5_barriers
Creates barriers for Phase 5 based on Phase 4 user response
get_results
Returns Results based on Ranking of Barriers
Web.config
Divided into 2 sections - appSettings,
system.web
appSettings
Holds application specific data items
Allow behavior to be modified without changing
source code
System.web
Holds configuration settings of ASP.NET
Configure ASP.NET Security
Enable/Disable Trace
Web.config
Set the database connection string
<appSettings>
<add key="connectionString"
value="server=localhost;database=project;uid=sa;pwd=abc123" />
</appSettings>
Access connection string in webforms
using System.Configuration;
con = new
SqlConnection(ConfigurationSettings.AppSettings["connectionString
"]);
Similarly, set menu info, so each page
can easily show/hide menus
ASP.NET Security
Authentication
Enables recipient of request to ascertain callers
identity
3 types of authentication supported
Windows Authentication
IIS to authenticate the user based on their windows login
Passport Authentication
Microsoft Passport web service is used
Requires Passport SDK
Forms Authentication
Relies on login forms in web pages to authenticate users
Provide a custom form for users to enter their credentials
Authenticate users in application
User credential token is stored in a cookie
ASP.NET Security
Forms Authentication
Set authentication mode in Web.config
<configuration><system.web><authentication mode="Forms">
<forms loginUrl="home.aspx />
</authentication> </system.web></configuration>
Authenticate user in home.aspx by matching
user password from database
Create protectedFiles folder under root
Save secure files in this folder
Create web.config in this folder
<configuration> <system.web> <authorization>
<deny users="?" />
</authorization> </system.web></configuration>
Unauthorized users re-directed to home.aspx
Application Security
Project Access
Sysadmin sets user access to projects
When user logs in project access is checked
Show projects that user has access
Module Access
Sysadmin sets user access to modules
Dynamic Menus generated
Every web form checks if user has access
Use menu config settings from web.config
Show/hide menu items based on access
Session Time-Out
When the user session times out, he is re-directed to login
page
Sessions
Session Maintenance
Use Session Object of ASP.NET
Maintain login information
Maintain project information
Maintain access control information
For ex: when a user logs in, he selects
a project. Session Variables used to
segregate information across the
Application based on his selection.
DataGrid
Very powerful .NET tool
Easily configurable with ADO.NET
Intuitive user interface
Flexibility in controlling row and field
properties
View, insert, edit and delete data with
minimal coding
Sort data
Why .NET?
Powerful IDE
Easily configure application
settings
ASP.NET Security
Session Maintenance
DataGrid & ADO.NET
Conclusion
Great Tracking Tool
Web-based easy access
No Geographical Limitations
Avoid using multiple systems &
databases
Learning experience technically
and functionally
Questions???
THANK YOU