Student affairs it-portfolio management

advertisement

TEAM 2 FINAL PRESENTATION

Giscielle Carlisa

Kelly Chien

Suman Koirala

Bowen Ni

Heidy Jimenez Pinto

Michael Signorotti

Kunal Shalia

Hiromichi Yamamoto

Database design

CONTENT:

I. Introduction

II. Database Design

III. Database Implementation: Queries

IV. Database Normalization

Client: SAIT-Portfolio Management

What is SAIT?

Student Affairs Information

Technologies (SAIT) is a shared service center with consolidated technological resources and support.

Overview:

Maintains campus IT Systems

Manages security and infrastructure of IT Services

What does SAIT do?

Receives project requests from campus departments

Defines project’s:

 costs

 risks feasibility

Manages project’s development

Provides resources for project development

Database Workflow

Step by step

CONTENT:

I. Introduction

II. Database Design

III. Database Implementation: Queries

IV. Database Normalization

Simplified EER – Database design

1.

2.

5.

6.

7.

Relational

Schema (Cont.’)

3.

4.

Project ( ProjectID, PName, ClientID 9 )

Task (TaskID, Start_Date, Expectedend_Date, Description, Priority_Level,

ClientID 9 , ResidentID 6 , EmployeeID 13b , EmployeeID 13 , immediate_predecessor)

Project_Log (ProjectID 1 , Start_Date, Expected_End_Date, Status, Comment,

Actual_End_Date, To-Do-List)

Service_Evaluation(SE_ID, ClientID 9 , Comments, Overall_Satisfaction,

Date_Evaluated)

Supplier(SupplierID, SName, SAddress, SEmail, Phone, Primary_Contact)

Resident (ResidentID, R_Fname, MI, R_Lname, Email, Resident_Type, Phone)

Insurance(PolicyID, Company, Start_Date, End_Date, Type,

Company_Description, Contact)

Relational

Schema (Cont.’)

8.

9.

10.

11.

12.

Equipment(EquipmentID, quantity, location, condition) a. Software(EquipmentID 8 , name, version) b. Hardware(EquipmentID 8 , brand, name, model_num) c. Tool(EquipmentID 8 , model)

Client(ClientID, CName, CAddress, Email, Phone, DepartmentID 14 )

Skill (SkillID, Skill_Name) a. Tech_Skill (SkillID 10 ) b. Non-Tech_Skill (SkillID 10 )

Expenditure_Log(EL_ID, ProjectID 1 , budget_estimate, budget_actual, cost_description, comment, employee_cost, resource_cost)

Employee_Evaluates_Employee(EEID, overall_score, comment, date_evaluated, technical_performance, customer_service, professionalism,

Employee_EvaluatorID 13 , Employee_EvaluatedID 13 )

**Based on assumption any employee can evaluate any other employee..

Relational

Schema (Cont.’)

13.

Employee (EmployeeID, Email, FName, MI, LName, Date_of_Birth, Pay_Rate,

PhoneNumber, PolicyID 7 , DepartmentID 14 ) a.

b.

c.

PMO (EmployeeID 13 )

TeamLead (EmployeeID 13 )

Contractor (EmployeeID 13 , Company_Name) d.

e.

Staff (EmployeeID 13 , TL_EmployeeID 13b )

Student (EmployeeID 13 , TL_EmployeeID 13b )

**(d) and (e) represent “Supervises” relationship between Team Lead and Employees

14.

Department(DepartmentID, DName, College, Division, Office_Address_Room,

15.

16.

Office_Address_Building, Office_Address_City, Office_Address_State,

Office_Address_ZIP, department_head, division_head, primary_contact, phone)

Type_of_Project(Type)

Warranty(WarrantyID, description, warranty_end_date, SupplierID 5 )

Relational

Schema (Cont.’)

17.

Assessment (ProjectID 1 , EmployeeID 13 , ClientID 9 , Scope_Score, Cost_Score,

Recurring_Cost_Score,TimeLine_Score, Collaborative_Scope, Required_Score,

18.

19.

20.

Current_State_Score,Overall_Score, Accepted_Y/N)

Time_Slot(Start_Time, End_Time)

Order (OID, Order_Details, SupplierID 5 , EmployeeID 13

)

Project_has_a_Type_of_Project (ProjectID 1 , Type 15 )

21.

22.

Type_of_Project_requires_Equipment (EquipmentID 8 , Type 15 )

Employee_works_during (EmployeeID 13 ,Start_Time 18 , End_Time 18 ,Date)

23.

24.

25.

26.

27.

Employee_is_Available (EmployeeID 13 ,Start_Time 18 , End_Time 18 , Date)

Teamlead_specializesIn (Type 15 , EmployeeID 13 )

Project_uses_equipment (PID 1 , EquipmentID 8 )

Project_requires_skill (PID 1 , SkillID 10 )

Project_requires_skill (PID 1 , SkillID 10 )

Relational

Schema (Cont.’)

28.

29.

30.

31.

32.

33.

34.

35.

36.

37.

TypeOfProject_requires_skill (Type 15 , SkillID 10 , level_Of_Skill)

Skill_relates_equipment (SkillID 10 , EquipmentID 8 )

Employee_Has_Skill(EmployeeID 13 , SkillID 10 ,Skill_Level)

Employee_worksOn_Project (EmployeeID 13 , PID 1 )

Employee_completes_task (EmployeeID 13 , TaskID 2 )

Employee_checks_equipment (EmployeeID 13 , EquipmentID 8 )

ProjectManager_assigns_TeamLead(PMO_EmployeeID 13a , TL_EmployeeID 13b , assignDate, taskID, projectID)

ProjectManager_hires_Contractor(PMO_EmployeeID 13a , C_EmployeeID 13c , date, projectID)

Project_Active_Item(ProjectID 1 subtaskID, Subtask, Start_Date, End_Date,

Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a), Comments,

Immediate_predecessor, DUration, Cost)

Project_Log_Detail (PID 1 , Date, Day, Cost_to_date, Percentage_completion, comments)

CONTENT:

I. Introduction

II. Database Design

III. Database Implementation: Queries

IV. Database Normalization

Query 1: Forecasting Demand

Forecast the demand for project types, using weighted moving average forecasting model.

Help SAIT estimate number of incoming project requests.

SAIT will benefit by improving its capacity planning strategy.

Query 1: Forecasting Process

IEOR Concepts

Moving

Average

Forecasting

Weighted

Moving

Average

Forecasting

• To minimize

Forecast Error

Query 1: Forecasting SQL

SELECT PT.Type, PL.Year, PL.Month_Name, PL.Month,

Count(PL.ProjectID) AS Count_Projects

FROM Project_has_a_Type_of_Project AS PT, Project_Log AS PL

WHERE (((PT.ProjectID)=[PL].[ProjectID]))

GROUP BY PT.Type, [PL.Year], PL.Month_Name, PL.Month

ORDER BY PT.Type, [PL.Year], PL.Month;

Query 1: Forecasting SQL Output

Query 1: Forecasting Demand Results

Use optimal weights calculated to forecast demand for project(s) using weighted moving average forecasting model.

Query 2: Project Acceptance Prediction

Predict whether a project will be accepted or rejected by the

Technology Conference.

 Assist SAIT in determining if a particular set of project intake form scores will result in project acceptance.

Query 2: Prediction Process

IEOR Concepts

Machine

Learning

Query 2: Prediction SQL

SELECT Overall_Score, Cost_Score

FROM Assessment

WHERE ProjectID >=[input_1] AND ProjectID<=[input_2];

Assumptions

Model is based only around overall and cost score

Projects to be tested have adjacent ProjectID’s

Query 2: Prediction k-Nearest Neighbor

(kNN) Classification

Overview

Simple machine learning algorithm used for classification of state.

Output is in the form of a state which is decided based on the known states of k-nearest neighbors.

How it works

 For predicting the state of an unknown data point, kNN looks at the states of the closest k data points with known states and assigns a state based on majority vote. The closest states are calculated through Euclidean distances.

Query 2: Training Data

Fitting the model.

Legend

Red : Accepted

Black : Rejected

Query 2: Testing Data

Used for determining the best value k for minimizing the probability of misclassification.

Choose k=12

Query 2: Validation Data

Used for performance evaluation.

33 random points of project intake overall and cost scores.

Performance metric of 24% misclassification.

Legend

Filled Red: Correct

Classification of acceptance

Filled Black: Correct

Classification of rejection

Filled Orange: Missed

Classification of

Acceptance

Filled Yellow: Missed

Classification of

Rejection

Query 3: Employee Ranking and

Scheduling

Determine which employees are available during a certain time to work on a specific type of project and rank the respective employees by their experience.

Help SAIT to determine employee availabilities for certain projects.

Enable SAIT to continually update employee experience levels based on past experiences.

Query 3: Schedule and Rank SQL

Find the employees

(Employee IDs) of workers able to code in

Python (Skill ID #31) who are able to work on 1/2/2014 between

2:00PM and 3:00PM.

List the results, by descending order, of the total number of hours worked so far as well as their skill level

(1 as introductory and

5 as professional).

SELECT Employee_is_Available.EmployeeID,

Sum(DateDiff("h",[Employee_works_during.Start_Time],[Employee_works_during.En

d_Time])) AS hours_worked, Employee_has_Skill.Skill_Level

FROM (Employee_is_Available INNER JOIN Employee_has_Skill ON

Employee_is_Available.EmployeeID = Employee_has_Skill.EmployeeID) INNER

JOIN Employee_works_during ON Employee_is_Available.EmployeeID =

Employee_works_during.EmployeeID

GROUP BY Employee_is_Available.EmployeeID, Employee_has_Skill.Skill_Level,

Employee_has_Skill.SkillID, Employee_is_Available.Date_Worked,

Employee_is_Available.Start_Time, Employee_is_Available.End_Time

HAVING (((Employee_has_Skill.SkillID)=31) AND

((Employee_is_Available.Date_Worked)=#1/2/2014#) AND

((Employee_is_Available.Start_Time)<=#12/30/1899 14:00:00#) AND

((Employee_is_Available.End_Time)>=#12/30/1899 15:00:00#))

ORDER BY hours_worked DESC , Employee_has_Skill.Skill_Level DESC;

Query 3: Scheduling Output

Employee Availability Employee Work log

Query 3: Employee Ranking Output

IEOR Concepts:

 Optimization of Staffing methods.

Query 4: Optimal Project Scheduling

Use Critical Path Method/PERT to determine critical subtasks required to complete project on time.

Organize all subtasks in a sequential order based on the respective predecessor.

Determine the start date, end date, slack, and duration of each subtask.

Identify Critical Subtask(s).

Query 4: CPM Creation

IEOR Concepts

Critical

Path

Method

Subtask’s duration calculated from 6 Sigma

Beta Distribution

Query 4: Scheduling Data SQL & Output

SELECT p.ProjectID, p.subtaskID, p.subtask, p.Cost, p.Start_Date, p.End_Date, p.immediate_predecessor, p.Duration

FROM Project_Log_List AS p

ORDER BY Start_Date;

Query 4: CPM Result from MS Project

Query 5: Project Performance

&Progress Measurement

EVM: Earned Value Management

Take into consideration factors such as scope, cost, and schedule to asses the performance of a project.

After baseline costs and a schedule is outlined, actual performance is measured compared to the baseline values.

Query5: Project Data SQL

SELECT p.Start_Date, p.Expected_End_Date, p.Actual_End_Date, e.budget_estimate, e.budget_actual, d.cost_to_date, d.day, d.percentage_completion

FROM Project_Log AS p, Expenditure_Log AS e,

Project_Log_Detail as d

WHERE p.ProjectID = e.ProjectID and d.ProjectID = p.ProjectID;

Query5: Project Data Output

Project 2

Project 20

Query5: EVM Calculations

PV (Planned Value) = (total expected cost of the project apportioned by the number of expected days to complete the project) * (actual duration of project to date)

EV (Earned Value) = (percentage of project actually completed) * (total expected cost of the project)

AC (Actual Cost) = Cost to date

SPI (Schedule Performance Index, time efficiency) = (EV/PV)

CPI (Cost Performance Index, cost efficiency) = (EV/AC)

CR (Critical Ratio, indicator) = (SPI * CPI)

CR < 1 means poor project performance

CR = 1 means project performance is on target

CR > 1 means good project performance

Query5: EVM Excel Results

Query5: Control Chart Results

CONTENT:

I. Introduction

II. Database Design

III. Database Implementation: Queries

IV. Database Normalization

Normalization to 1NF & 2NF

Current Schema:

Project_Log (ProjectID 1 , Start_Date, Expected_End_Date, Status, Comment,

Actual_End_Date, To-Do-List )

Multivalued attribute To-Do-List because there might be multiple subtasks in to-dolist.

Normalizing to 1NF and 2NF:

Project_Action_Item (ProjectID 1 subtaskID, Subtask, Start_Date, End_Date,

Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a), Comment,

Immediate_predecessor, Duration, Cost)

Project_Log (ProjectID 1 , Start_Date, Expected_End_Date, Status, Comment,

Actual_End_Date)

Normalization to 1NF & 2NF

Current Schema:

Project_Action_Item(ProjectID 1 subtaskID, Subtask, Start_Date, End_Date,

Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a), Comment,

Immediate_predecessor , Duration, Cost)

Multivalued attribute Immediate_predecessor .

Normalizing to 1NF and 2NF:

Project_Action_Item(ProjectID 1 subtaskID, Subtask, Start_Date, End_Date,

Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a), Comment,

Duration, Cost)

SubtaskPredecessor (Immediate_predecessor, subtaskID 35 )

Normalization to 1NF & 2NF

Current Schema:

Project_Action_Item(ProjectID 1 , SubtaskID, Subtask, Start_Date, End_Date,

Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a),

Comments, Immediate_predecessor, Duration, Cost)

Subtask can be derived from SubtaskID

Normalizing to 1NF and 2NF:

Project_Action_Item(ProjectID 1 , subtaskID 2 , End_Date,

Expected_Duration(m), Pessimistic_Duration(b), Optimistic_Duration(a),

Comment, Duration, Cost)

Subtask (SubtaskID, Subtask)

Normalization to 3NF

Current Schema:

Insurance(PolicyID, Company , Start_Date, End_Date, Type, Company_Description,

Contact)

Assumption: Companies do not have the same name.

There exists a non-prime pair, Company , Company_Description :

Company → Company_Description

Normalizing to 3NF:

Insurance(PolicyID, Company 2 , Start_Date, End_Date, Type)

Insurance_Company (Company, Company_Description, Contact)

All related entities are now in 3NF (There exists no non-prime pair A,B: A →B)

Normalization to BCNF

Current Schema:

Equipment(EquipmentID, quantity, location, condition)

b. Hardware(EquipmentID 8 , brand, name, model_num )

Assumption: EquipmentID for a hardware piece can be traced with the model_num (i.e. wire) model_num → Hardware EquipmentID

Normalization to BCNF:

HardwareDetail (model_Num, brand, Name)

Hardware(EquipmentID 8 , model_Num HardwareDetail )

Download