Download Presentation

Loading in 3 Seconds

This presentation is the property of its rightful owner.

X

Sponsored Links

- 63 Views
- Uploaded on
- Presentation posted in: General

INFO 636 Software Engineering Process I Prof. Glenn Booker

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

INFO 636Software Engineering Process IProf. Glenn Booker

Week 6 – Estimating Resources and Schedule

INFO636 Week 6

- This chapter covers planning multiple small tasks, and assigning earned value to each task
- As we get further into the course, notice the forms focus more on program management concerns than the details of programming or other technical matters

INFO636 Week 6

- Last week we focused on estimation of the size of our product
- Now we will apply the same techniques to estimate the time it will take to produce that work product
- The math and overall concept are the same - we just tweak what variables we’re using

INFO636 Week 6

- Productivity is the amount of effort (staff hours of work) needed to accomplish a task
- Here, might measure hours/LOC, or to write or review a document, hours/page
- Warning!! The text switches between LOC/hour and hours/LOC frequently

- As usual, our estimates of productivity are based on our own work history

INFO636 Week 6

- The procedure for estimating the time for developing software is on page 149
- N track – you started estimating time directly from your proxies, so you have essentially skipped directly to this step
- Once again, the method for estimation is based on historic data, the amount of work detail, and whether enough data is available for regression analysis

INFO636 Week 6

- Recall that the basis for having ‘enough data’ for regression analysis is pretty loose here:
- At least three sets of data points
- Their linear regression results in R2 of at least 0.50

- If you don’t have ‘enough data’, the estimate is pretty much a WAG (wild guess)

INFO636 Week 6

- Following the same math used for beta0 and beta1 last week, now use:
- The X axis is the number of “Estimated New and Changed LOC”
- This was (N) on form C39

- The Y axis is the total number of Actual hours (not planned) for each project
- See p. 153 for sample data

- The X axis is the number of “Estimated New and Changed LOC”

INFO636 Week 6

- R2 = 0.83 ≥ 0.50 so we can use regression, which gives us
- Slope beta1 = 0.12 hrs/LOC
- Intercept beta0 = -2.3 hrs

INFO636 Week 6

- The text uses hours for actual effort on each project
- Warning: the text frequently omits units

- We have been using minutes, since these are small projects
- If you want to keep using minutes consistently, that’s fine
- E.g. your slope would be in min/LOC

INFO636 Week 6

- A revised time estimate (p. 154) is
- Time = beta0 + beta1*(P+M)
- Be careful – this beta0 and beta1 have different values from those used for refining the size estimate
- We still use (P+M) since the X axis is LOC

- Time = beta0 + beta1*(P+M)
- The calculations for range and interval stay similar to before

INFO636 Week 6

- The range is also found on page 154
- Now sigma (s) is based on the hours and LOC data
- The ‘t’ variable is the same, but be careful with its ‘n’ value (number of data sets)
- The big square root term just uses LOC data

- The interval formula uses hours & range

INFO636 Week 6

- As projects get bigger, you may need to combine several estimates from smaller tasks
- Also handy for INFO 637, the Team Software Process

- Typically want a project broken into tasks between 10% and 25% of the whole effort

INFO636 Week 6

- As before, we want to define tasks in a way that will allow prediction of their size and effort
- The same rules apply for at least three data pairs and R2 at least 0.50
- For example, see data on page 158 for three parts of a larger project

INFO636 Week 6

- For each task, find the estimated hours, LPI, and UPI
- Find the variance for each task
- Variance = (UPI-LPI)2/4

- Add the variances, and take the square root to get the standard deviation of the estimate (32.28 hrs in the example)

INFO636 Week 6

- Std dev estimate = √[S(variance)]

- Midpoint = [S(LPI) + S(UPI)]/2
- This is 142.5 hrs in the example

INFO636 Week 6

- The UPI and LPI for the combined estimate are
- UPI = midpoint + std dev estimate
- LPI = midpoint – std dev estimate
- This gives the values shown on p. 159 of LPI = 110.22 and UPI = 174.78 hrs
- Notice this is a smaller span than the sum of LPI (89.8) to the sum of UPI (195.2)

INFO636 Week 6

- The previous method works for a wide range of estimation methods – parts of the project could be coding, parts documentation, etc.
- If all the parts are coding, and we have a good set of data for estimation, we can simplify the process

INFO636 Week 6

- Suppose we have the data on p. 163 as our historic data
- We want to estimate the time for developing three projects, which are 114, 193, and 318 object LOC = (P+M)
- This is the example starting on p. 161

INFO636 Week 6

- From the historic data, find beta1 and beta0
- beta1 = 0.1482 hrs/LOC
- beta0 = -5.95 hrs

- Combine the tasks into a single task
- Size = 114 + 193 + 318 = 655 LOC

- Hours = beta0 + beta1*Size = 91.13 hr

INFO636 Week 6

- The historic data is used to find
- s = 5.69 hrs

- The Range is based on the Size of this combined project, and the historic LOC
- Recall that ‘t’ is the only place where the prediction interval percent appears, 70%
- Range = 16.27 hrs (same units as s)

INFO636 Week 6

- Hence the prediction intervals are
- UPI = 91.13 + 16.27 = 107.40 hrs
- LPI = 91.13 - 16.27 = 74.86 hrs

- So this is the same process as finding the time interval for one task – since they are all based on the same data, we can combine them into one big estimate

INFO636 Week 6

- The example in section 6.5 on multiple regression is beyond the scope of this course
- Feel free to read it on your own, but we won’t be getting that messy
- Skip to section 6.6

INFO636 Week 6

- So far we have focused on estimating the size of the product (e.g. LOC) and the effort or resources needed to create it
- Now add the dimension of calendar schedule to the picture

INFO636 Week 6

- A work year should, in theory, have about 52 weeks * 40 hrs/week = 2080 work hours available
- Holidays, sick leave, and vacation typically cut this by 10-15% (say, 5 hrs per week on average)

INFO636 Week 6

- Most people spend some time each week dealing with other projects, general meetings, etc. which is another 25% lost (~10 hrs/wk)
- Therefore we only have about 25 hours per week for actual productive work!

INFO636 Week 6

- On a personal level, you can track how much time you actually get work done in a normal time interval
- If you set aside 4 hours for homework, what percent of that 4 hours is actually spent on the homework?
- Typically 75% is a good utilization factor

INFO636 Week 6

- The PSP schedule planning process is outlined on page 171
- The basic concept is straightforward
- Determine the time needed for the task
- Find the time available to work on the task
- Allocate available time to the task, until the task is done
- That’s your schedule

INFO636 Week 6

- Complicating factors can include
- Other time commitments (which take away from your available time)
- Figuring out the sequence in which tasks need to be accomplished
- Establish milestones to mark significant accomplishments toward task completion

INFO636 Week 6

- Pages 178-179 show an example, from the author’s tasks to write the text
- Each task has a number of Hours estimated (the Plan section)
- Those are added going down the column in the Cumulative Hours column
- Notice the Date when each task is planned is also shown

INFO636 Week 6

- “Earned value” is a method for planning and tracking progress on a project
- See INFO 630, lecture 3 for more details

- It balances measuring the time, effort (resources), and work accomplished on a project by assigning an ‘earned value’ to reward completion of each task

INFO636 Week 6

- In reality, earned value for a task is often related to its cost
- If a task is estimated to cost $3000, then 3000 is its ‘earned value’ when we complete it

- Here, we’ll use the planned earned value of a task to be ‘the planned percent of the overall project effort’

INFO636 Week 6

- So to determine the Planned Value for each task
- Estimate the effort for all tasks, and add them up for the total hours for the project
- Each project’s Planned Value is its Hours, divided by the total hours, times 100
- Planned Value = Hours / (Total Hours) * 100

INFO636 Week 6

- The Cumulative Planned Value (CPV) is just adding up Planned Value (PV) as you go down the column
- In the example on page 184
- The first CPV equals the first PV
- The second CPV is the previous CPV, plus the current PV (0.99+0.53=1.52)
- The third CPV is (1.52+1.43 = 2.95), etc.

INFO636 Week 6

- The last CPV for the last task should always be 100.0 (%)
- This isn’t true for the examples in the text, because they don’t show all tasks for writing the book

- So the Plan section tells how much effort each task will be, and what percent of the overall project it is

INFO636 Week 6

- Now for the Actual part
- As each task is accomplished, note the Date is was completed
- The Earned Value for each task is equal to its Planned Value – regardless of how much time it really took to perform the task

INFO636 Week 6

- Then the (Actual) Cumulative Earned Value (CEV) is added up the same way as the Planned CEV
- When all the tasks have been completed, the last entry (Actual) CEV should normally be 100%
- The only time this isn’t true is if you had to change a plan after the project started

INFO636 Week 6

- The Adjusted Earned Value column is only used if you had to replan a project
- Typically done when new tasks are identified, but you don’t want to recalculate earned values for every task
- If an existing task turns out to have much different scope than planned, you don’t replan – just accept it as a poor estimate

INFO636 Week 6

- So to add tasks to an existing plan, use the same estimation method to determine the amount of effort (Hours) needed for each new task
- Assign each new task a Planned Value based on the original number of total hours for the project

INFO636 Week 6

- Now treat the new tasks like any others in the plan
- The main impact will be that the final (end of project) values for Cumulative Planned Value and Cumulative Earned Value will be greater than 100%, but equal to each other
- This is discussed, sort of, on pp. 182-3

INFO636 Week 6

- As described in the INFO 630 notes in more detail, the primary benefit of earned value is that, by tracking work accomplished separately from the amount of actual effort, we can estimate both when the project will finish, and the total effort (cost) needed
- Good estimates can be made only 15-20% into the project

INFO636 Week 6

- There are many ways to compare the results of planning with the actual project performance
- Here we focus on the Percent Error
- Percent Error = 100*(actual - estimate) / (estimate)

- This can be calculated for each project, for example

INFO636 Week 6

- We can find the Percent Error for anything we are planning and measuring:
- Program Size
- Effort
- Schedule

INFO636 Week 6

- On pp. 197-201 of the text, there are many examples of Percent Error during a typical PSP course
- The main reason for plotting this is to determine if your estimates are getting more accurate
- In class, the process you follow is changing often, so I wouldn’t worry if they don’t

INFO636 Week 6

- Many small estimates together will have less error than the worst of them
- This is part of our motivation for breaking a project into small parts for estimation

- You also can examine your trend for Percent Error to see if you are overcompensating for your estimation errors

INFO636 Week 6