Function Point Analysis (FPA) is a standardized method to measure the size of software based on its functionality from the user's perspective. The International Function Point Users Group (IFPUG) promotes and develops guidelines for FPA. FPA counts different components of software functionality, such as inputs, outputs, inquiries, files and interfaces, assigning each a complexity level and weight in function points. These weights are then summed to calculate an overall function point size for the software.