Project Time/Size TablesProject Time/Size Tables (Effort Estimation)
I have concluded that project time and size esstimation is difficult in an academic world. A week in a university is not the same as one in industry. Students' schedule change from week to week, making detailed and precise calculations impossible. It is also strenous to to establish actually how many hours students actually work during the week.
I have provided some data that come allow us to create a "guesstimate" of the size of projects in the software factory. The prime indicator to providing estimates is to look at previous projects.
Steve Mcconnell - Rapid Development
McConnell provides tables that correlates the effort needed in terms of the size of the code. The tables provided in Rapid Development only show programs of size greater than 10,000 lines of code. According to McConnell, "The tables don't contain schedules for projects smaller than 10,000 lines of code. Projects in that range are usually completed by one person, and effort and schedule estimates for such projects are highly dependant on the capabilities of the individual doing to work."
The best indicator for effort estimation is reviewing previous work done. Past student projects should give an indication of how many lines of code of normally produced. This still does not indicate how many hours are dedicated to exact portions of a project: design, requirements analysis, implementation etc…
Management is not measured in lines of code, so we must find another means to determine to effort needed.
Barry W. Boehm - Software Engineering Economics
If the number of lines of code are known, one can use the COCOMO model to estimate the amount of man hours needed.
COCOMO uses mathematical equations to determine the size/effort estimation of average software projects.
Looking at the COCOMO model, it appears that it does not provide us with the formula we are looking for. The COCOMO model determines the amount of man hours depending on the size of the project. For a student project, the problem is reversed. Since the semester is a fixed length of time, we must determined how big can a project be given a certain number of students per team.
The COCOMO formulas provides the answer, just not directly. We must invert the formula to map the size of code according to the man hours. I have attempt to reverse the formulas, and my results are as follows:
MM = 2.4(KDSI)^1.05
Inverse formula = KDSI = (MM/2.4) ^ (1/1.05)
TDEV = 2.5(MM)^0.38
Inverse formula MM = (TDEV/2.5) ^ (1/0.38)
Calculate KDSI from TDEV
KDSI = (TDEV^2.5)/22.73
One can then substitute the hour variable with the relevant number.
So if a project has 6 students, working during a 15-week quarter, for 9 hours a week, etc...
This will not take into account projects that can carry over into other semesters, or last shorter than one semester. As you can see, calculating the perfect project size can be difficult.
Another difficulty that arises when attempting to use the COCOMO, is that project courses "specialize" in a specific phase of the COCOMO model. The phases are:
Verification and validation
Since some project course deal with only one phase (ie. Requirement analysis) it is ardous to use the COCOMO model for one phase only.
Tables 7.1 - 7.5 in Software Engineering Economics does give a break down in percantages for the time spent during an individual phase. This gives us better insight, but the project course tend not to be dedicated to a specific phase. There could be some requirements analysis done during the design phase, etc....
Links to this Page