COCOMO stands for Constructive Cost Model. It is a method used to estimate the cost, effort, and time required to develop software.
Click to reveal answer
beginner
Name the three levels of the COCOMO model.
The three levels of COCOMO are: 1. Basic COCOMO 2. Intermediate COCOMO 3. Detailed COCOMO
Click to reveal answer
beginner
What is the main input used in the COCOMO model to estimate effort?
The main input is Lines of Code (LOC) or thousands of lines of code (KLOC) expected to be written in the software project.
Click to reveal answer
intermediate
How does the Intermediate COCOMO model improve upon the Basic COCOMO?
Intermediate COCOMO adds cost drivers or factors like product reliability, complexity, and team experience to adjust the effort estimate, making it more accurate than Basic COCOMO.
Click to reveal answer
intermediate
What is the purpose of the Detailed COCOMO model?
Detailed COCOMO breaks down the project into smaller components and applies cost drivers to each part, providing a very detailed and precise estimate of effort and schedule.
Click to reveal answer
What is the primary measure used by COCOMO to estimate software development effort?
ANumber of developers
BLines of Code (LOC)
CProject budget
DNumber of features
✗ Incorrect
COCOMO uses Lines of Code (LOC) as the main input to estimate effort.
Which COCOMO model includes cost drivers to adjust estimates?
AIntermediate COCOMO
BBasic COCOMO
CDetailed COCOMO
DNone of the above
✗ Incorrect
Intermediate and Detailed COCOMO use cost drivers to refine effort estimates.
What does the Detailed COCOMO model do differently compared to the Basic model?
ABreaks project into parts and applies cost drivers to each
BUses only LOC without adjustments
CIgnores project complexity
DEstimates only schedule, not effort
✗ Incorrect
Detailed COCOMO divides the project and applies cost drivers to each part for precise estimates.
Which of the following is NOT a factor considered in Intermediate COCOMO's cost drivers?
AProduct reliability
BTeam experience
CSoftware complexity
DNumber of programming languages used
✗ Incorrect
Number of programming languages is not a typical cost driver in Intermediate COCOMO.
COCOMO is primarily used to estimate which of the following?
ASoftware development effort and cost
BUser satisfaction
CHardware requirements
DMarketing budget
✗ Incorrect
COCOMO estimates the effort and cost needed to develop software.
Explain the three levels of the COCOMO model and how they differ in estimating software development effort.
Think about how each level adds more detail and factors to improve accuracy.
You got /3 concepts.
Describe how cost drivers influence the effort estimation in the COCOMO model.
Consider why just counting lines of code might not be enough.
You got /3 concepts.
Practice
(1/5)
1. What is the primary purpose of the COCOMO model in software engineering?
easy
A. To manage software version control
B. To design the user interface of software
C. To test software for bugs
D. To estimate the effort and time required for a software project
Solution
Step 1: Understand COCOMO's role
COCOMO stands for Constructive Cost Model and is used to estimate effort and time.
Step 2: Compare options
Only To estimate the effort and time required for a software project describes estimation of effort and time, which matches COCOMO's purpose.
Final Answer:
To estimate the effort and time required for a software project -> Option D
Quick Check:
COCOMO estimates effort and time [OK]
Hint: COCOMO estimates project effort and duration [OK]
Common Mistakes:
Confusing COCOMO with testing or design tools
Thinking COCOMO manages code versions
Assuming COCOMO is for UI design
2. Which of the following is a correct formula used in the basic COCOMO model to estimate effort (in person-months)?
easy
A. Effort = a * (KLOC)^b
B. Effort = a + b * KLOC
C. Effort = a / (KLOC)^b
D. Effort = a * b + KLOC
Solution
Step 1: Recall COCOMO effort formula
Basic COCOMO uses Effort = a * (KLOC)^b, where a and b are constants and KLOC is thousands of lines of code.
Step 2: Check options
Only Effort = a * (KLOC)^b matches the correct formula structure with multiplication and exponent.
Final Answer:
Effort = a * (KLOC)^b -> Option A
Quick Check:
Effort formula uses multiplication and power [OK]
Hint: Look for multiplication and exponent in effort formula [OK]
Common Mistakes:
Using addition or division instead of multiplication and power
Mixing constants incorrectly
Confusing effort with time formulas
3. Given a software project with 50 KLOC, and basic COCOMO constants a=2.4 and b=1.05, what is the estimated effort in person-months? (Use formula: Effort = a * (KLOC)^b)
Hint: Calculate power first, then multiply by constant a [OK]
Common Mistakes:
Forgetting to raise KLOC to power b
Using wrong constants
Rounding too early causing big errors
4. A developer wrote this COCOMO effort estimation code snippet but it gives wrong results:
effort = a * KLOC ** b
Given a=2.5, b=1.1, KLOC=40, what is the likely error?
medium
A. Incorrect order of operations causing wrong calculation
B. Not converting KLOC to thousands of lines
C. No error; code is correct
D. Using exponentiation operator incorrectly in this context
Solution
Step 1: Analyze the formula and code
The code uses Python exponentiation operator ** correctly for Effort = a * KLOC^b.
Step 2: Check variable values and units
KLOC is already in thousands of lines (40), so no conversion needed. The formula and code match.
Final Answer:
No error; code is correct -> Option C
Quick Check:
Code matches formula and units [OK]
Hint: Check if code matches formula and units exactly [OK]
Common Mistakes:
Assuming exponent operator is wrong in Python
Forgetting KLOC unit is already thousands
Thinking order of operations is incorrect
5. A software project is classified as 'organic' in COCOMO with constants a=2.4, b=1.05, c=2.5, d=0.38. If the project size is 30 KLOC, what is the estimated development time (in months)? Use formulas: Effort = a * (KLOC)^b Time = c * (Effort)^d