1k likes | 1.5k Views
Planning a software project: Function point analysis. José Onofre Montesa Andrés Universidad Politécnica de Valencia Escuela Superior de Informática Aplicada 2003-2004. Function point analysis. ... Is an accepted standard for the measurement of software.
E N D
Planning a software project: Function point analysis. José Onofre Montesa Andrés Universidad Politécnica de Valencia Escuela Superior de Informática Aplicada 2003-2004
Function point analysis. • ... Is an accepted standard for the measurement of software. • IFPUG (International Function Point Users Group). • CPM 4.0 de 1994 (Counting Practice Manual) • Initially introduced by Albrecht of IBM in 1979. • ¿How measure software? GpiI-2B Planning a software project: Function point analysis.
Function point analysis. • Can be used in the initial development stages. • It’s based fundamentally on “external” characteristics of the software to be developed. • Two types of characteristics are sized: • Functionality. (data and transactional) • General system characteristics. GpiI-2B Planning a software project: Function point analysis.
Count Data Function Types Determine Unadjusted Function Point Count Determine Type of Count Identify Counting Boundary Count Transactional Function Types Calculate Final Adjusted Function Point Count Determine Value Adjustment Factor Counting Procedure. GpiI-2B Planning a software project: Function point analysis.
Function Point Count Function Point Count Function Point Count Function Point Count Function Point Count Requirements Initial Design Detail Design Coding Testing Implementation Maintenance Determine Type of Count. • There are three types: • Development project function point count • Enhancement project function point count • Application function point count • In development could occur ... GpiI-2B Planning a software project: Function point analysis.
Identify Counting Boundary • The function point counting boundary indicates the border between the project or application being measured and the external applications or user domain. • Purpose: • The scope of the product being measured • Data ownership required for function point counting (owned by one application and/or another) • Processing relationships required for function point counting (where processing occurs and purpose).. GpiI-2B Planning a software project: Function point analysis.
Identify Counting Boundary • Rules: • The boundary is determined based on the user's point of view. The focus is onwhat the user can understand and describe. • The boundary between related applications is based on separate business functions as seen by the user, not on technological concerns. • For enhancement projects, the initial boundary must conform to the boundaries already established for the application or applications being modified. GpiI-2B Planning a software project: Function point analysis.
Identify Counting Boundary • Procedures: • Identify the application or project boundary using the boundary rules.. • Document the following items: • The boundary identified • The purpose of the count • Any assumptions that the count is based on GpiI-2B Planning a software project: Function point analysis.
Identify Counting Boundary MANAGER DISTRIBUTOR Distributor_ Dialog Manager_Dialog ZipiZape Kiosk System Client_ Dialog Clients CLIENT GpiI-2B Planning a software project: Function point analysis.
Unadjusted Function Point Internal Logical Files Data Function Types External Logical Files Unadjusted Function Point External Inputs Transactional Function Types External Outputs External Inquires GpiI-2B Planning a software project: Function point analysis.
Count Data Function Types • Internal Logical Files • An internal logical file (ILF) is a user identifiable group of logically related data or control information maintained within the boundary of the application. • External Interface Files • An external interface file (EIF) is a user identifiable group of logically related data or control information referenced by the application, but maintained within the boundary of another application. This means an EIF counted for an application must be an ILF in another application. GpiI-2B Planning a software project: Function point analysis.
Definitions for Embedded Terms in ILFs and EIFs. • Control Information • data used by the application to ensure compliance with business function requirements specified by the user. • User Identifiable • requirements that an experienced user would define for the application. GpiI-2B Planning a software project: Function point analysis.
Definitions for Embedded Terms in ILFs and EIFs. • Maintained • Ability to modify data through an elementary process. • Elementary Process • the smallest unit of activity that is meaningful to the end user in the business. • This elementary process must be self-contained and leave the business of the application being counted in a consistent state GpiI-2B Planning a software project: Function point analysis.
Internal Logical Files (ILF) • User identifiable group logical related data o control information. • It’s different: • Work files, spool files,... • Files introduced because of technology. • Data is maintained by the application being counted. GpiI-2B Planning a software project: Function point analysis.
ILF Identification Rules • The group of data or control information is a logical, or user identifiable, group of data that fulfills specific user requirements. • The group of data is maintained within the application boundary. • The group of data is modified, or maintained, through an elementary process of the application. • The group of data identified has not been counted as an EIF for the application. GpiI-2B Planning a software project: Function point analysis.
DIAGRAMA DE CONTEXTO External Interface Files (EIF) • Data acceded by the application with a unique objective: obtaining information. • Are maintained by other applications • This application never actualizes it. GpiI-2B Planning a software project: Function point analysis.
EIF Identification Rules • The group of data or control information is a logical, or user identifiable, group of data that fulfills specific user requirements. • The group of data is referenced by, and external to, the application being counted. • The group of data is not maintained by the application being counted. • The group of data is counted as an ILF for at least one other application. • The group of data identified has not been counted as an ILF for the application. GpiI-2B Planning a software project: Function point analysis.
Files Complexity GpiI-2B Planning a software project: Function point analysis.
Data Element Type (DET) • Definition: is a unique user recognizable, nonrecursive field on the ILF or EIF. • DET Rules • Count a DET for each unique user recognizable, nonrecursive field on the ILF or EIF. • Count a DET for each piece of data in an ILF or EIF that exists because the user requires a relationship with another ILF to be maintained. GpiI-2B Planning a software project: Function point analysis.
DET Rules • Count the following physical implementation techniques as a single DET for the entire group of fields: • Fields that appear more than once in an ILF or EIF because of technology or implementation techniques. • Repeating fields that are identical in format and exist to allow for multiple occurrences of a data value. GpiI-2B Planning a software project: Function point analysis.
Record Element Type (RET) • Definition: is a user recognizable subgroup of data elements within an ILF or EIF. • There are two types of subgroups: • Optional: user has the option of using one or none. • Mandatory: user must use at least one of the subgroups. • RET Rules • Count each optional or mandatory subgroup. • If there are no subgroups, count the ILF or EIF as one RET. GpiI-2B Planning a software project: Function point analysis.
ILF, EIF Contribution. • Internal logical file (ILF) • Low 7 Unadjusted Function Points. • Average 10 Unadjusted Function Points. • High 15 Unadjusted Function Points. • External Interface Files (ILF) • Low 5 Unadjusted Function Points. • Average 7 Unadjusted Function Points. • High 10 Unadjusted Function Points. GpiI-2B Planning a software project: Function point analysis.
Transactional Function Types • Transactional function types represent the functionality provided to the user for the processing of data by an application. Transactional function types are defined as external inputs (EIs), external outputs (EOs), and external inquiries (EQs). GpiI-2B Planning a software project: Function point analysis.
Processes data or control information that comes from outside the application's boundary. The external input itself is an elementary process. The processed data maintains one or more ILFs. The processed control information may or may not maintain an ILF. External input (EI) GpiI-2B Planning a software project: Function point analysis.
Definitions for Processing Logic • Processing logic is defined as any of the following requirements specifically requested by the user to complete an elementary process: • Edits, algorithms, or calculations • A reference to or use of an ILF or EIF GpiI-2B Planning a software project: Function point analysis.
(EI) Identification Rules • To identify external inputs, look for data or control information that falls within the definition of an external input. The rules are presented in the following paragraphs as • Data counting rules • Control information processing rules. GpiI-2B Planning a software project: Function point analysis.
Data Counting Rules (must apply) • The data is received from outside the application boundary. • The data in an ILF is maintained through an elementary process of the application. • The process is the smallest unit of activity that is meaningful to the end user in the business. • The process is self-contained and leaves the business of the application being counted in a consistent state. • For the identified process, one of the rules must apply: • Processing logic is unique from other external inputs for the application. • The data elements identified are different from other external inputs for the application. GpiI-2B Planning a software project: Function point analysis.
Control Information Processing Rules (must apply ) • The control information is received from outside the application boundary. • The information is specified by the user to ensure compliance with business function requirements. • For the identified process, one of the following two rules must apply: • Processing logic is unique from other external inputs for the application. • The data elements identified are different from other external inputs for the application. • The processed control information may or may not maintain an ILF. GpiI-2B Planning a software project: Function point analysis.
Complexity and Contribution Definitions and Rules (EI) • The number of external inputs and their relative functional complexity determine the contribution to the unadjusted function point count. Assign each identified EI a functional complexity based on the number of file types referenced (FTRs) and data element types (DETs). GpiI-2B Planning a software project: Function point analysis.
FTR (file types referenced ) • A file type referenced is: • An internal logical file read or maintained by a function type • An external interface file read by a function type. • The rules to apply when counting FTRs: • Count a file type referenced for each internal logical file (ILF) maintained. • Count a file type referenced for each internal logical file (ILF) or external interface file (EIF) read during the processing of the external input. • Count only one FTR for each ILF that is both maintained and read by the external input. GpiI-2B Planning a software project: Function point analysis.
DET (data element type ) • is a unique user recognizable, nonrecursive field maintained on an internal logical file by the external input. • The rules to apply when counting DETs: • Count a DET for each user recognizable, nonrecursive field maintained on an ILF by an external input. • Count a DET for each field that is not entered by the user, but through an external input, is maintained on an internal logical file. GpiI-2B Planning a software project: Function point analysis.
The rules to apply when counting DETs (cont.): • Count the following physical implementation techniques as a single DET for the group of fields: • A logical field that is stored physically as multiple fields, but is required by the user as a single piece of information. • Fields that appear more than once in an internal logical file because of technology or implementation techniques. • Fields that indicate an error occurred during processing or confirm that processing is complete. • Count a single DET for the capability to specify the action to be taken by the external input. GpiI-2B Planning a software project: Function point analysis.
External Input complexity (EI) • Low 3 Unadjusted function Points • Average 4 Unadjusted function Points • High 6 Unadjusted function Points GpiI-2B Planning a software project: Function point analysis.
External Outputs (EO) • is an elementary process that generates data or control information sent outside the application's boundary. GpiI-2B Planning a software project: Function point analysis.
Rules to identify external outputs (must apply ) • The process sends data or control information external to the application's boundary. • The data or control information is sent through an elementary process of the application. • The process is the smallest unit of activity that is meaningful to the end user in the business. • The process is self-contained and leaves the business of the application being counted in a consistent state. • one of the following two rules must apply: • Processing logic is unique from other external outputs. • The identified data elements are different from other external outputs for the application. GpiI-2B Planning a software project: Function point analysis.
External Output complexity (EO) • Low 4 Unadjusted function Points • Average 5 Unadjusted function Points • High 7 Unadjusted function Points GpiI-2B Planning a software project: Function point analysis.
External Inquiries (EQ) • is an elementary process made up of an input-output combination that results in data retrieval. The output side contains no derived data. No internal logical file (ILF) is maintained during processing. GpiI-2B Planning a software project: Function point analysis.
Derived Data • is data that requires processing other than direct retrieval and editing of information from internal logical files and/or external interface files. • Examples include • (1) calculating an employee's monthly salary from the hourly rate stored in an ILF • (2) totaling the number of employees at a location. GpiI-2B Planning a software project: Function point analysis.
External Inquiry Identification Rules • An input request enters the application boundary. • Output results exit the application boundary. • Data is retrieved. • The retrieved data does not contain derived data. • The input request and output results together make up a process that is the smallest unit of activity that is meaningful to the end user. GpiI-2B Planning a software project: Function point analysis.
External Inquiry Identification Rules (cont) • The elementary process is self-contained and leaves the business of the application being counted in a consistent state. • The processing does not update an ILF. • For the identified process, one of the following two rules must apply: • The processing logic on the input or output side is unique from other external inquiries in the application. • The data elements making up the input or output side are different from other external inquiries in the application. GpiI-2B Planning a software project: Function point analysis.
External Inquiry complexity (EQ) • Assign each identified EQ a functional complexity based on the number of file types referenced (FTRs) and data element types (DETs) for each input and output component. • Use the higher of the two functional complexities for either the input or output side of the inquiry to translate the external inquiry to unadjusted function points. • Use the same values as in the EI (3,4,6). GpiI-2B Planning a software project: Function point analysis.
Unadjusted Function Point Count Calculation GpiI-2B Planning a software project: Function point analysis.
General System Characteristics • The user function delivered by information systems includes pervasive general factors that are not sufficiently represented by the countable transactional and data functions. • There are fourteen (GSC). • Evaluated independently and assigned a unique value between 0 y 5. • And integrated in the adjusted function point. GpiI-2B Planning a software project: Function point analysis.
1. Data communications 2. Distributed data processing 3. Performance 4. Heavily used configuration 5. Transaction rate 6. Online data entry 7. End-user efficiency 8. Online update 9. Complex processing 10. Reusability 11. Installation ease 12. Operational ease 13. Multiple sites 14. Facilitate change General System Characteristics list GpiI-2B Planning a software project: Function point analysis.
General system characteristic (GSC) degrees of Influence. • 0 Not present, or no influence • 1 Incidental influence • 2 Moderate influence • 3 Average influence • 4 Significant influence • 5 Strong influence throughout • If none fits the application exactly, a judgment must be made to determine which degree of influence applies. GpiI-2B Planning a software project: Function point analysis.
1. Data Communications • The data and control information used in the application are sent or received over communication facilities. • Terminals connected locally to the control unit are considered to use communication facilities. • Protocol is a set of conventions which permit the transfer or exchange of information between two systems or devices. All data communication links require some type of protocol. GpiI-2B Planning a software project: Function point analysis.
Descriptions to Determine Degree of Influence 0 Application is pure batch processing or a standalone PC. 1 Application is batch but has remote data entry or remote printing. 2 Application is batch but has remote data entry and remote printing. GpiI-2B Planning a software project: Function point analysis.
Descriptions to Determine Degree of Influence 3 Application includes online data collection or TP (teleprocessing) front end to a batch process or query system. 4 Application is more than a front-end, but supports only one type of TP communications protocol. 5 Application is more than a front-end, and supports more than one type of TP communications protocol. GpiI-2B Planning a software project: Function point analysis.
2. Distributed Data Processing • Distributed data or processing functions are a characteristic of the application within the application boundary. GpiI-2B Planning a software project: Function point analysis.
Descriptions To Determine Degree of Influence 0 Application does not aid the transfer of data or processing function between components of the system. 1 Application prepares data for end user processing on another component of the system such as PC spreadsheets and PC DBMS. 2 Data is prepared for transfer, then is transferred and processed on another component of the system (not for end-user processing). GpiI-2B Planning a software project: Function point analysis.