📖 Scenario: You are a software analyst working on a new project. You need to estimate the size of the software using Function Point Analysis (FPA). This method helps you understand the complexity and effort required by counting different types of functions in the system.
🎯 Goal: Build a simple Function Point Analysis model by listing function types, assigning complexity weights, calculating unadjusted function points, and applying a value adjustment factor to get the final function point count.
📋 What You'll Learn
Create a dictionary with function types and their counts
Create a dictionary with complexity weights for each function type
Calculate the unadjusted function points by multiplying counts by weights and summing
Apply a value adjustment factor to calculate the final function points
💡 Why This Matters
🌍 Real World
Function Point Analysis helps project managers estimate software size and effort before development starts, improving planning and budgeting.
💼 Career
Software analysts, project managers, and developers use function points to communicate project scope and complexity clearly.
Progress0 / 4 steps
1
DATA SETUP: Define function counts
Create a dictionary called function_counts with these exact entries: 'External Inputs': 10, 'External Outputs': 7, 'Internal Logical Files': 5, 'External Interface Files': 3, and 'External Inquiries': 4.
Software Engineering
Hint
Use a Python dictionary with the exact keys and values given.
2
CONFIGURATION: Define complexity weights
Create a dictionary called complexity_weights with these exact entries: 'External Inputs': 4, 'External Outputs': 5, 'Internal Logical Files': 10, 'External Interface Files': 7, and 'External Inquiries': 3.
Software Engineering
Hint
Use a dictionary with the exact keys and weights given.
3
CORE LOGIC: Calculate unadjusted function points
Create a variable called unadjusted_fp and set it to the sum of the products of counts and weights for each function type using a for loop over function_counts.items().
Software Engineering
Hint
Use a for loop to multiply each count by its weight and add to unadjusted_fp.
4
COMPLETION: Apply value adjustment factor
Create a variable called value_adjustment_factor and set it to 1.1. Then create a variable called final_function_points and set it to unadjusted_fp multiplied by value_adjustment_factor.
Software Engineering
Hint
Multiply unadjusted_fp by value_adjustment_factor to get final_function_points.
Practice
(1/5)
1. What is the main purpose of Function Point Analysis in software engineering?
easy
A. To design the user interface
B. To write the actual code for software
C. To measure the size of software based on its features
D. To test software for bugs
Solution
Step 1: Understand the goal of Function Point Analysis
Function Point Analysis is used to measure software size by counting its features, not for coding or testing.
Step 2: Match the purpose with the options
Among the options, only measuring software size by features matches the purpose.
Final Answer:
To measure the size of software based on its features -> Option C
Quick Check:
Function Point Analysis = software size measurement [OK]
Hint: Focus on measuring software features, not coding or testing [OK]
Common Mistakes:
Confusing Function Point Analysis with coding or testing
Thinking it designs UI
Assuming it measures time instead of size
2. Which of the following is a correct step in the Function Point Analysis process?
easy
A. Counting the number of functions in the software
B. Writing test cases for each function
C. Compiling the source code
D. Deploying the software to users
Solution
Step 1: Identify the steps in Function Point Analysis
The process involves counting functions, weighting them, and adjusting for complexity.
Step 2: Compare options with the process steps
Only counting the number of functions matches the process; other options relate to later stages.
Final Answer:
Counting the number of functions in the software -> Option A
Quick Check:
Function Point Analysis step = counting functions [OK]
Hint: Remember: counting functions is the first step [OK]
Common Mistakes:
Mixing analysis steps with coding or deployment
Thinking testing is part of Function Point Analysis
Confusing compilation with analysis
3. If a software project has 10 input functions, 5 output functions, and 3 inquiry functions, and each input counts as 4 points, output as 5 points, and inquiry as 3 points, what is the total unadjusted function point count?
medium
A. 85
B. 80
C. 90
D. 74
Solution
Step 1: Calculate points for each function type
Input: 10 x 4 = 40 points; Output: 5 x 5 = 25 points; Inquiry: 3 x 3 = 9 points.
Step 2: Sum all points to get total function points
Total = 40 + 25 + 9 = 74 points.
Step 3: Verify if any other function types are included
No other types given, so total unadjusted function points = 74.
Final Answer:
74 -> Option D
Quick Check:
Sum of weighted functions = 74 [OK]
Hint: Multiply counts by weights, then add all [OK]
Common Mistakes:
Adding counts without weights
Multiplying weights incorrectly
Forgetting to sum all function types
4. A software project's function point count was calculated as 120, but the complexity adjustment factor was mistakenly applied as 0.8 instead of 1.2. What is the corrected adjusted function point count?
medium
A. 96
B. 144
C. 120
D. 100
Solution
Step 1: Understand the adjustment factor application
Adjusted function points = Unadjusted count x Complexity factor.
Step 2: Calculate corrected adjusted function points
Corrected = 120 x 1.2 = 144.
Final Answer:
144 -> Option B
Quick Check:
120 x 1.2 = 144 [OK]
Hint: Multiply by correct factor, not the wrong one [OK]
Common Mistakes:
Using the wrong adjustment factor
Confusing multiplication with division
Ignoring adjustment factor altogether
5. A project has the following function counts: 8 inputs, 6 outputs, 4 inquiries, 5 internal logical files, and 3 external interface files. The weights are: inputs=4, outputs=5, inquiries=3, internal files=7, external files=5. The complexity adjustment factor is 1.1. What is the final adjusted function point count?