Measuring Software Size Exercises

  1. Software Engineering Institute's code counting checklist (originally published here):
    1. Individually, fill-out the checklist (click on image to download):
      SEI Code counting Checklist
    2. Do the following with your neighbor:
      1. Discuss what decisions were the easiest to make?
      2. Discuss what decisions were the hardest to make?
      3. Compare checklists. Identify the most fundamental differences.
  2. Discuss the following quote with your neighbor. Do you agree or disagree with it? Why?:
    "A proficient programmer can program approximately the same number of debugged lines of code per day regardless of the language"
    (From Software Measurement and Estimation by Linda M. Laird and M. Carol Brennan)
  3. Look at a gearing factors table (e.g., QSM's Function Point Languages Table). What does this mean? What language would you choose?
  4. Your boss wants to know how long a project will take. The requirements document has 200 requirements. Empirically, your group requires about 1.25 staff months per requirement (with a standard deviation of 9%).
    1. What questions should you answer?
    2. What do you tell your boss?
  5. Functional Points
    Given the function point complexity ratings below:
    Component Simple Average Complex
    Inputs 3 4 6
    Outputs 4 5 7
    Data Files 7 10 15
    Interfaces 5 7 10
    Inquires 3 4 6
    For a small program with 5 simple inputs, 2 basic data files and 3 outputs, what is the unadjusted function points?
  6. General System Characteristic Brief Descriptions:
    1. Data communications How many communication facilities are there to aid in the transfer or exchange of information with the application or system?
    2. Distributed data processing How are distributed data and processing functions handled?
    3. Performance Did the user require response time or throughput?
    4. Heavily used configuration How heavily used is the current hardware platform where the application will be executed?
    5. Transaction rate How frequently are transactions executed daily, weekly, monthly, etc.?
    6. On-Line data entry What percentage of the information is entered On-Line?
    7. End-user efficiency Was the application designed for end-user efficiency?
    8. On-Line update How many ILF’s are updated by On-Line transaction?
    9. Complex processing Does the application have extensive logical or mathematical processing?
    10. Reusability Was the application developed to meet one or many user’s needs?
    11. Installation ease How difficult is conversion and installation?
    12. Operational ease How effective and/or automated are start-up, back up, and recovery procedures?
    13. Multiple sites Was the application specifically designed, developed, and supported to be installed at multiple sites for multiple organizations?
    14. Facilitate change Was the application specifically designed, developed, and supported to facilitate change?