This is the first in-depth software measurement guide focused entirely on the #1 technique for evaluating software productivity and quality: function point analysis. Written for both seasoned practitioners and newcomers, it reflects the latest standards defined by the International Function Point User Group (IFPUG), and presents realistic techniques for analyzing any type of software -- including graphical, object-oriented, Web and client/server applications. It also offers comprehensive preparation for the IFPUG CFPS certification exam. Coverage includes: all rules and guidelines prescribed by IFPUG's Counting Practices Manual 4.1; practical guidance on baselining and estimating; advanced counting techniques for contemporary distributed development environments; and using function point data to manage software development more effectively. The book presents extensive examples, case studies, and scenarios, and reviews repository and estimating tools that can streamline function point analysis. For every IT manager, project manager, software developer and engineer, and for any professional concerned with the measurement of software quality and productivity.
Basic Counting Rules.
Preparing for Certification.
Function Points and the Executive.
Function Point Utilization.
Industry Benchmarking Data.
The International Function Point Users Group.
The Need for Software Measurement.
Basic Software Measurement Elements.
Software Measurement Model: Quantitative and Qualitative Elements.
World-Class Measurement Program.
Industry Leader Level.
Establishing a World-Class Measurement Program.
Gap Analysis Phase.
Return on Investment.
Unit of Work.
Time to Market.
Function Points in the Lifecycle.
Function Point Measures.
Using Function Point Measurement Data Effectively.
Developing a Measurement Profile.
Available Industry Comparisons.
Project Manager Level: Estimating Software Projects.
Using Function Points.
IT Management Level: Establishing Performance Benchmarks.
Industry Best Practices.
Organization Level: Establishing Service-Level Measures.
Project and Application Outsourcing.
How IT Is Using Industry Data.
Benchmarking. Concerns with Industry Data.
What Role Do Function Points Play?
Sources of Industry Data.
The Gartner Group.
Rubin Systems, Inc.
Software Productivity Research.
The David Consulting Group.
The Benchmarking Exchange.
Hackett Benchmarking & Research.
Hope for the Future.
The Function Point Counting Process.
The Process Used to Size Function Points.
Types of Counts.
Identifying the Counting Scope and the Application Boundary.
Internal Logical Files.
External Interface Files.
Complexity and Contribution: ILFs and EIFs.
An Example of Counting ILFs and EIFs.
Complexity and Contribution: EIs.
An Example of Counting EIs.
Complexity and Contribution: EOs.
An Example of Counting EOs.
Complexity and Contribution: EQs.
An Example of Counting EQs.
General System Characteristics.
1. Data Communications.
2. Distributed Data Processing.
4. Heavily Used Configuration.
5. Transaction Rate.
6. Online Data Entry.
7. End User Efficiency.
8. Online Update.
9. Complex Processing.
11. Installation Ease.
12. Operational Ease.
13. Multiple Sites.
14. Facilitate Change.
Value Adjustment Factor.
Final Adjusted Function Point Count.
Counting a Catalog Business: An Example.
Function Point Calculations and Formulas.
Development Project Function Point Count.
Enhancement Project Function Point Count.
Application Function Point Count.
Three Case Studies.
Answers to the Three Case Studies.
A Short Case Study in Project Management.
A Function Point Counting Exercise in Early Definition.
Functionality of Web-Based Applications.
Data Warehouse Applications.
Functionality of Data Warehouse Applications.
Concerns about Productivity Rates for Data Warehouse Applications.
Counting GUI Functionality.
GUI Counting Guidelines.
Exercise in Counting a GUI System.
1. Determine the Type of Function Point Count.
2. Identify the Counting Scope and the Application Boundary.
3 and 4. Identify All Data and Transactional Functions and Their Complexity.
5. Determine the Unadjusted Function Point Count.
6. Determine the Value Adjustment Factor.
7. Calculate the Final Adjusted Function Point Count.
Functional Description of Personnel Query Service.
Starting Personnel Query Service.
Add and Delete Title, Location, and Organization Records.
Add and Delete an Employee's Picture.
Object Model for Personnel Query Service.
System Diagram for Personnel Query Service.
Function Point Analysis for Personnel Query Service.
Basic Tool Selection Criteria.
Selecting a Function Point Repository Tool.
Selecting a Project-Estimating Tool.
Conducting a Proof of Concept.
1. Identification of the Current Estimating Problem.
2. Definition of the Deliverable.
3. Process and Tool Selection.
4. Project Selection.
5. Review of the Estimating Process with the Project Managers.
6. Sizing and Complexity Analysis.
7. Identification of Project Variables.
8. Analysis of the Data.
9. Review of the Estimate.
10. Assessment of the Process.
Practice Certified Function Point Specialist Exam.
Answer Sheet: Part I.
Answer Sheet: Part II.
Answer Sheet: Part III.
Writing this book has been a process, a journey, and a wonderful learning experience.
We have been immersed in the world of function points and software metrics for more than ten years. We both are proud of our accomplishments and contributions to the advancement and utilization of the function point methodology. We recognize a responsibility, as experts in this field, to communicate our experiences and to express our opinions in such a way that others can gain from what we have observed, learned, and practiced. You could say that we believe and that we are extending the wisdom of the message. We have also found our writings to be an opportunity for continued learning. While writing this book, we had the good fortune to receive comments and constructive criticisms from a significant number of book reviewers and industry experts. Their thoughtful comments and contributions have given us greater insight into the software community views of software measurement and management and, in particular, function points. We thank all of you who participated in the review process.
Our second book was in many ways easier, but in some ways more challenging, than the first. We endeavored to write a book that was significantly better than the first. We achieved success with our first book, but we knew that there was so much more to share. The process of writing becomes easier once you understand that it is a process similar to developing software. Our challenge was to identify the content that would serve a diverse audience while not losing sight of the most important audience, the practitioner. After all, it is the practice, not the theory, of function points that will sustain this valuable software management methodology.