Estimation et contrôle des coûts

Function Points

Points de Fonction : Un Outil Puissant pour la Détermination de la Taille et l'Estimation des Logiciels

Dans le monde du développement logiciel, des estimations et une détermination de la taille précises sont cruciales pour la planification de projet, l'allocation des ressources et le contrôle des coûts. Si les lignes de code (LOC) sont souvent utilisées comme métrique, elles peuvent être trompeuses, en particulier pour les applications complexes. C'est là qu'interviennent les **Points de Fonction (FP)** - une technique puissante et polyvalente pour mesurer la fonctionnalité des logiciels.

Que sont les Points de Fonction ?

Les Points de Fonction sont une mesure de la taille fonctionnelle d'une application logicielle. Contrairement aux LOC, qui se concentrent sur le code physique, les FP prennent en compte la **complexité fonctionnelle** du système. Ils tiennent compte des différentes entrées, sorties, fichiers et interfaces avec lesquelles les utilisateurs interagissent, offrant une représentation plus holistique et significative de la portée du logiciel.

Composants de l'analyse des Points de Fonction :

L'analyse des Points de Fonction implique l'identification et la quantification de cinq composants clés :

  • Entrées Externes (EE) : Données que le système reçoit de sources externes.
  • Sorties Externes (SE) : Données que le système produit pour les utilisateurs externes.
  • Requêtes Externes (RE) : Demandes de données au système, qui aboutissent à une réponse.
  • Fichiers Logiques Internes (FLI) : Données stockées en interne par le système.
  • Fichiers d'Interface Externe (FIE) : Fichiers utilisés pour la communication avec d'autres systèmes.

Avantages de l'utilisation des Points de Fonction :

  1. Estimation précise des coûts : Les FP offrent une base fiable pour estimer les coûts de développement, permettant une meilleure budgétisation et allocation des ressources.
  2. Détermination de la taille de projet efficace : Les FP aident à définir la véritable portée d'un projet, permettant une planification et une programmation précises.
  3. Estimation des efforts de maintenance : Les FP peuvent être utilisées pour estimer les efforts nécessaires à la maintenance et à l'amélioration du logiciel, favorisant une meilleure gestion des coûts à long terme.
  4. Comparaison objective : Les FP offrent un langage commun pour comparer la taille et la complexité de différents projets logiciels.
  5. Communication améliorée : Les FP facilitent une communication claire entre les développeurs, les gestionnaires et les parties prenantes sur la portée du projet et les attentes.

Le processus d'analyse des Points de Fonction :

  1. Identifier les composants fonctionnels : Identifier tous les composants fonctionnels clés du système, en se concentrant sur les interactions utilisateur.
  2. Classer chaque composant : Classer chaque composant en fonction des cinq éléments (EE, SE, RE, FLI, FIE).
  3. Déterminer la complexité : Attribuer une note de complexité à chaque composant en fonction de facteurs tels que le volume de données, le nombre de calculs et les relations de données.
  4. Calculer les Points de Fonction : Appliquer des formules prédéfinies pour calculer le total des Points de Fonction en fonction de la complexité et du nombre de composants.

Conclusion :

Les Points de Fonction sont un outil précieux pour la détermination de la taille et l'estimation des logiciels, offrant une représentation plus complète et précise de la complexité du logiciel que les mesures traditionnelles des LOC. En fournissant une approche standardisée, les FP permettent aux équipes de projet de planifier, de gérer et de suivre efficacement leurs efforts de développement logiciel.


Test Your Knowledge

Function Points Quiz

Instructions: Choose the best answer for each question.

1. What is the primary advantage of using Function Points over Lines of Code (LOC) for software sizing?

a) Function Points are easier to calculate. b) Function Points consider only the physical code size. c) Function Points measure the functional complexity of the system. d) Function Points are more suitable for small-scale projects.

Answer

c) Function Points measure the functional complexity of the system.

2. Which of the following is NOT a component of Function Point analysis?

a) External Inputs (EI) b) External Outputs (EO) c) Internal Data Structures (IDS) d) External Interface Files (EIF)

Answer

c) Internal Data Structures (IDS)

3. What is the main purpose of determining the complexity of each Function Point component?

a) To simplify the calculation process. b) To identify potential design flaws. c) To accurately reflect the effort required for implementation. d) To compare the size of different software systems.

Answer

c) To accurately reflect the effort required for implementation.

4. Which of the following is NOT a benefit of using Function Points for software estimation?

a) Improved communication between stakeholders. b) Accurate cost estimation and resource allocation. c) Easier project management for waterfall methodologies. d) Objective comparison of software project sizes.

Answer

c) Easier project management for waterfall methodologies.

5. What is the final step in the Function Point analysis process?

a) Identifying functional components. b) Classifying components based on their type. c) Determining complexity of each component. d) Calculating the total Function Points using predefined formulas.

Answer

d) Calculating the total Function Points using predefined formulas.

Function Points Exercise

Scenario:

You are tasked with estimating the size of a new online banking application using Function Points. The application has the following features:

  • Customer login: Users can log in with their username and password.
  • Account balance inquiry: Users can view their account balances.
  • Transaction history: Users can view a detailed history of their transactions.
  • Transfer funds: Users can transfer funds between their own accounts.
  • Bill payment: Users can pay bills directly from their accounts.

Instructions:

  1. Identify the functional components of the application and categorize them based on the five Function Point elements (EI, EO, EQ, ILF, EIF).
  2. Determine a complexity rating for each component (simple, average, complex).
  3. Calculate the total Function Points based on the complexity and component count.

Exercice Correction

Here's a possible breakdown of the Function Points for the online banking application:

ComponentTypeComplexity
Customer loginExternal Input (EI)Average
Account balance inquiryExternal Output (EO)Average
Transaction historyExternal Output (EO)Complex
Transfer fundsExternal Input (EI)Complex
Bill paymentExternal Input (EI)Complex
Customer account dataInternal Logical File (ILF)Complex
Transaction dataInternal Logical File (ILF)Complex

**Calculating Function Points:**

To calculate the total Function Points, you would need to apply specific formulas based on the complexity and count of each component. The exact formulas vary depending on the Function Point counting method used. However, a simplified approach would involve assigning weights to each complexity level (e.g., simple = 3, average = 4, complex = 5) and multiplying those weights by the number of components.

For example, in this scenario, the total Function Points could be calculated as follows:

Total Function Points = (3 x 1) + (4 x 1) + (5 x 1) + (5 x 1) + (5 x 1) + (5 x 1) + (5 x 1) = **37 Function Points**

Note: This is a simplified calculation and the actual Function Point count may vary depending on the specific methodology and complexity weights used.


Books

  • Function Point Analysis: A Practical Guide by Capers Jones: A comprehensive guide to Function Points, covering its history, methodology, and applications.
  • Software Measurement: A Practical Guide to Understanding, Defining, and Using Software Metrics by David Galin: Explores various software metrics, including Function Points, and their applications in software development.
  • Effective Software Measurement: A Practical Guide to Software Measurement by Robert Grady and Deborah Caswell: Focuses on applying software measurement techniques, including Function Points, to improve software quality and productivity.

Articles

  • Function Points: A Powerful Tool for Software Sizing and Estimation by [Your Name]: This article provides a good overview of Function Points and their advantages.
  • Function Points: A Guide for Estimating Software Development Effort by the International Function Point Users Group (IFPUG): A detailed explanation of the Function Point methodology and its application in software development.
  • Function Point Analysis: A Case Study by [Author Name]: A case study illustrating the practical application of Function Points in a specific software project.

Online Resources

  • International Function Point Users Group (IFPUG): The official website of the IFPUG, providing comprehensive resources on Function Points, including standards, training materials, and certification information.
  • Function Point Analysis (Wikipedia): A general overview of Function Points with links to relevant resources and further information.
  • Function Points: A Guide for Beginners (Article): A beginner-friendly introduction to Function Points, explaining the basic concepts and how they are used.

Search Tips

  • "Function Point Analysis" + "best practices": To find articles and resources on best practices for implementing Function Points.
  • "Function Point Analysis" + "case study": To find case studies illustrating the application of Function Points in different software projects.
  • "Function Point Analysis" + "training": To find training courses and certifications related to Function Point analysis.

Techniques

Chapter 1: Techniques

Function Point Analysis: A Detailed Look at the Techniques

Function Point analysis involves a structured approach to measuring software functionality. This chapter delves deeper into the specific techniques used to calculate Function Points.

1.1 Counting Techniques:

  • Unweighted Function Points (UFP): This technique focuses on simply counting the number of functional components without considering their complexity. Each instance of EI, EO, EQ, ILF, and EIF is given a weight of 1.
  • Weighted Function Points (WFP): This technique accounts for the complexity of each component by assigning weights based on specific factors. The complexity levels are often categorized as low, average, and high, with corresponding weights.

1.2 Function Point Value (FPV):

  • FPV = Count x Complexity Weight
  • This formula is applied to each component type, resulting in a weighted count for each EI, EO, EQ, ILF, and EIF.
  • The total FPV is the sum of the individual component FPVs.

1.3 Value Adjustment Factor (VAF):

  • The VAF accounts for factors like data communication, distributed processing, performance, and security.
  • These factors are assigned a rating based on their impact on the overall system complexity.
  • The VAF is a multiplier that adjusts the total FPV to account for the added complexity.

1.4 Calculation Formula:

  • Function Points (FP) = (FPV x VAF) / 100
  • This formula provides the final Function Point value, which represents the software's functional size and complexity.

1.5 Different Function Point Counting Standards:

  • IFPUG (International Function Point Users Group): This is the most widely recognized standard for Function Point counting.
  • COSMIC (Counting and Sizing Method for Information Systems): Another popular standard, often used in Europe.
  • NESMA (National Estimating Standards for Software Maintenance and Applications): Focuses on maintenance and application sizing.

1.6 Advantages of Different Techniques:

  • UFP: Simple and quick for initial estimates, but less accurate for complex systems.
  • WFP: Provides a more refined estimate by considering complexity, but requires more detailed analysis.
  • VAF: Accounts for external factors that impact complexity, leading to a more accurate representation.

1.7 Conclusion:

By understanding these techniques, software teams can choose the most appropriate method for their specific needs, ensuring accurate and reliable function point calculations. This information forms the foundation for accurate software sizing and estimation, leading to better project management and decision-making.

Termes similaires
Forage et complétion de puitsGéologie et explorationSysteme d'intégrationPlanification des interventions d'urgenceTraitement du pétrole et du gazGestion des ressources humainesConstruction de pipelinesLeaders de l'industriePlanification et ordonnancement du projetTermes techniques générauxFormation et développement des compétencesDes installations de productionTest fonctionel
Les plus regardés
Categories

Comments


No Comments
POST COMMENT
captcha
Back