Family Tree Software Comparison

Estimation des coûts logiciels

Résumé

Logiciel d'estimation des coûts est le processus de prédiction de la les efforts requis pour développer un système logiciel. Le présent document donne un aperçu général des méthodes d'estimation des coûts logiciels, y compris les progrès récents dans le domaine. Comme un certain nombre de ces modèles reposent sur une estimation taille du logiciel en entrée, nous avons d'abord donner un aperçu des mesures de taille ordinaire. Nous présentons ensuite les modèles d'estimation des coûts qui ont été proposées et utilisées avec succès. Les modèles peuvent être classés en 2 grandes catégories: algorithmique et non-algorithmique. Chacun a ses propres forces et faiblesses. Un facteur clé dans la sélection d'un modèle d'estimation des coûts est la précision de ses estimations. Malheureusement, en dépit de la vaste expérience avec des modèles d'estimation, la précision de ces modèles ne sont pas satisfaisantes. Le document comprend des observations sur la performance des modèles d'estimation et de description des plusieurs nouveaux

approches pour l'estimation des coûts.

Mots-clés: estimation du projet, l'estimation de l'effort, modèles de coûts.

 

1. Introduction

 

Ces dernières années, le logiciel est devenu l'élément le plus coûteux des projets de systèmes informatiques. La majeure partie du coût des logiciels développement est dû à l'effort de l'homme, et les méthodes d'estimation des coûts plus l'accent sur cet aspect et donner des estimations en termes de personnes-mois.

Précis estimations des coûts logiciels sont essentiels pour les développeurs et les clients. Ils peuvent être utilisés pour générer la demande de propositions, la négociation des contrats, la planification, de suivi et de contrôle. Sous-estimer les coûts peut entraîner dans la gestion de l'approbation de systèmes proposé alors dépasser leurs budgets, avec des fonctions de sous-développés et de mauvaise qualité, et le défaut de terminer à temps. La surestimation peut entraîner dans trop de ressources engagées dans le projet, ou, au cours de soumissionner à des marchés ne permettent pas à remporter le contrat, qui peut conduire à des pertes d'emplois

.

Précis estimation des coûts est importante, car:

  • Il peut aider à classer et hiérarchiser les projets de développement à l'égard d'une entreprise globale plan.
  • Il peut être utilisé pour déterminer les ressources à engager au projet et la façon dont ces ressources seront utilisées.
  • Il peut être utilisé pour évaluer l'impact des changements replanification et de soutien.
  • Les projets peuvent être plus faciles à gérer et à contrôler lorsque les ressources sont mieux adaptés aux besoins réels.
  • Les clients s'attendent à coûts réels de développement de être en ligne avec les coûts estimés.
  • Logiciel d'estimation des coûts implique la détermination d'un ou de plusieurs des estimations suivantes:
  • effort (habituellement en personne-mois)
  • durée du projet (dans le calendrier du temps)
  • coût (en dollars)

 

Plus modèles d'estimation des coûts tenter de générer une estimation de l'effort, qui peut ensuite être

converti dans la durée du projet et les coûts. Malgré les efforts et les coûts sont étroitement liés, ils ne sont pas nécessairement liés par une fonction de simple transformation. L'effort est souvent mesurée en mois-personnes des programmeurs, des analystes et des gestionnaires de projet. Cette estimation de l'effort peut être converti en un chiffre en calculant le coût en dollars le salaire moyen par unité de temps du personnel concerné, puis en la multipliant par l'effort estimé nécessaire.

Praticiens ont lutté avec trois questions fondamentales:

  • Quel modèle d'estimation des coûts logiciels à utiliser?
  • Quelle taille de logiciels de mesure à utiliser – de lignes de code (LOC), points de fonction (PF), ou du point fonction?
  • Qu'est-ce qu'une bonne estimation?

La méthode du coût largement pratiquée estimation est un jugement d'expert. Pendant de nombreuses années, le projet

les gestionnaires se sont appuyés sur l'expérience et les normes de l'industrie en vigueur en tant que base de développer estimation des coûts. Toutefois, les estimations se fondant sur un jugement d'expert est problématique:

  • Cette approche est non répétable et les moyens d'en tirer une estimation ne sont pas explicites.
  • Il est difficile de trouver des estimateurs très expérimentés pour chaque nouveau projet.
  • La relation entre le coût et la taille du système n'est pas linéaire. Coût tend à augmenter

de façon exponentielle avec la taille. La méthode de jugement d'expert est appropriée uniquement lorsque la taille du projet en cours et projets antérieurs sont similaires.

  • manipulations du budget par la direction visant à éviter la saturation de faire de l'expérience et des données provenant de projets antérieurs discutable.

Au cours des trois dernières décennies, de nombreux modèles quantitatifs d'un logiciel d'estimation des coûts ont été développés. Elles vont des modèles empiriques tels que les modèles de COCOMO Boehm pour analyse modèles. Un modèle empirique utilise des données provenant de projets antérieurs afin d'évaluer le projet en cours et en tire les formules de base de l'analyse de la base de données particulière disponibles. Un modèle analytique, d'autre part, utilise des formules basées sur des hypothèses globales, telles que la vitesse à laquelle les développeurs à résoudre les problèmes et le nombre de problèmes disponibles.

La plupart des modèles de coûts sont basées sur la mesure de la taille, comme LOC et FP, obtenus à partir de la taille

estimation. La précision de la taille de l'estimation une incidence directe sur l'exactitude de l'estimation des coûts. Bien que les mesures de taille communes ont leurs inconvénients propres, une organisation peut faire bon usage de la personne, tant que la méthode de comptage est conforme utilisé.

Une estimation des coûts bon logiciel doit avoir les attributs suivants:

  • Il est conçu et soutenu par le chef de projet et le développement l'équipe.
  • Il est accepté par toutes les parties prenantes comme réalisables.
  • Il est basé sur un modèle de coût des logiciels bien définie avec un minimum de fondement.
  • Il est basé sur une base de données d'expérience pertinentes du projet (processus similaires, même

technologies, des environnements similaires, des personnes et aux mêmes besoins).

  • Il est défini de manière suffisamment détaillée pour que ses principaux domaines de risque sont bien compris et la probabilité de succès est objectivement évaluée.

Logiciel d'estimation des coûts a toujours été une difficulté majeure dans le développement logiciel.

Plusieurs raisons de la difficulté ont été identifiés:

  • L'absence d'une base de données historique de la mesure des coûts
  • Développement de logiciels impliquant de nombreux facteurs interdépendants qui influent sur l'effort de développement et de la productivité, et dont les relations ne sont pas bien compris
  • Manque de formation des estimateurs et des estimateurs possédant l'expertise nécessaire
  • peine de Little est souvent associée à une mauvaise estimation

 

2. Processus d'estimation

 

L'estimation des coûts est un élément important du processus de planification. Par exemple, dans l'approche de planification de haut en bas, l'estimation des coûts est utilisée pour dériver le plan du projet:

  1. Le gestionnaire de projet développe une caractérisation de la fonctionnalité globale, la taille, processus, environnement, personnes, et la qualité requis pour le projet.
  2. Une estimation macro-niveau de l'effort total et le calendrier est développé en utilisant un modèle d'estimation des coûts logiciels.
  3. Les partitions gestionnaire de projet de l'estimation des efforts dans un plus haut niveau la structure de répartition du travail. Il partitions sur le calendrier dans les dates étape importante et détermine un profil personnel, qui constitue ainsi un plan de projet.

Le processus d'estimation implique des coûts réels sept étapes

  1. Établir des objectifs l'estimation des coûts
  2. Générer un plan de projet pour les données requises et ressources
  3. exigences logicielles NIP
  4. Work out le plus de détails sur le système de logiciels en tant que possible
  5. Utiliser plusieurs techniques d'estimation indépendante des coûts de capitaliser sur leurs forces combinées
  6. Comparer les différentes estimations et itérer le processus d'estimation
  7. Après le démarrage du projet, suivre son coût réel et progrès et résultats de la rétroaction à la gestion de projet

Quel que soit le modèle d'estimation est sélectionnée, les utilisateurs doivent faire attention aux ci-dessous pour obtenir de meilleurs résultats:

  • la couverture de l'estimation (certains modèles générer un effort pour le cycle de vie complet, tandis que d'autres ne comprennent pas l'effort de l'exigence étape)
  • d'étalonnage et les hypothèses du modèle
  • paramètres de sensibilité des estimations à l'autre modèle
  • écart de l'estimation à ce qui concerne le coût réel

3. Logiciel de dimensionnement

 

La taille du logiciel est le facteur le plus important qui affecte le coût des logiciels. Cette section

décrit cinq mesures taille des logiciels utilisés dans la pratique. La ligne de code et des points de fonction sont les paramètres les plus populaires parmi les cinq paramètres.

Ligne de code: C'est le nombre de lignes de la source livrés code de le logiciel, à l'exclusion des commentaires et des lignes vides et est communément connue comme LOC. Bien que LOC est la programmation liée à la langue, il est le plus largement utilisé métriques taille du logiciel. Plus modèles se rapportent à cette mesure le coût des logiciels. Toutefois, LOC exacte ne peut être obtenue une fois le projet achevé. Estimation de la taille du code d'un programme avant qu'il ne soit effectivement construite est presque aussi fort que l'estimation du coût du programme.

Une méthode typique pour estimer la taille du code est de recourir au jugement des experts », ainsi qu'un

technique appelée PERT. Il s'agit de jugement d'experts de trois tailles possibles de code: SL, le plus bas possible la taille; Sh le plus haut possible la taille et Sm, la taille la plus probable. L'estimation de la le code S-taille est calculée comme suit:

S = S1 + Sh 4 Sm

6

PERT peut également être utilisé pour des composants individuels pour obtenir une estimation du système logiciel en additionnant les estimations de tous les composants.

 

la science de logiciel: Halstead proposé la longueur du code et les paramètres de volume. Longueur du code est utilisé pour mesurer la longueur du programme et le code source est définie comme:

 

N = N1 + N2

où N1 est le nombre total d'événements exploitant, et N2 est le nombre total d'événements opérande.

Volume correspond à la quantité d'espace de stockage requis et est défini comme:

log N V = (n1 + n2)

où N1 est le nombre d'opérateurs distincts, et n2 est le nombre d'opérandes distinctes qui apparaissent dans un programme.

points de fonction: Il s'agit d'une mesure basée sur la fonctionnalités du programme et a été introduite par Albrecht. Le nombre total de points de fonction dépend du nombre d'distincts (en termes de format ou de la logique de traitement) dans les types suivants cinq classes:

  1. -Input types d'utilisateur: les données ou le contrôle d'entrée utilisateur tape
  2. L'utilisateur de sortie types: types de données de sortie à l'utilisateur qui quitte le système
  3. types d'enquête: entrées interactifs nécessitant une réponse
  4. Interne types de fichiers: les fichiers (groupes logiques de l'information) qui sont utilisés et partagés au sein du système
  5. Extérieures types de fichiers: les fichiers qui sont transmis ou partagés entre le système et d'autres systèmes. Chacun de ces types est individuellement affecté l'un des trois niveaux de complexité de (1 = simple, 2 = moyen, 3 =) complexes et étant donné une valeur de pondération qui varie de 3 (pour l'entrée simple) à 15 (pour les dossiers complexes interne).

La fonction non désaisonnalisées-point chiffres (UFC) sont données à titre

5 3

UFC =?? W N

i = 1 j = 1 ij ij

N ij et W ij sont respectivement le nombre et le poids des types de classe I avec j complexité.

Par exemple, si la fonction point de chiffres bruts d'un projet sont 2 entrées simples (W ij = 3), 2

complexe sorties (W ij = 7) et 1 complexe de fichier interne (W ij = 15). Puis UFC = 2 * 3 + 2 * 7 +1 * 15 = 35.

Ce nombre initial de fonction-point est soit directement utilisées pour l'estimation des coûts ou encore modifié par des facteurs dont les valeurs dépendent de la complexité de l'ensemble du projet. Cela va prendre en compte le degré de traitement distribué, le montant de la réutilisation, l'exigence de performance, etc Le décompte final fonction-point est le produit de l'UFC et ces facteurs de complexité du projet. L'avantage de la mesure de point est qu'il peut être obtenu sur le cahier des charges du système à un stade précoce de logiciels de développement.

L'UFC est également utilisé pour l'estimation de taille de code en utilisant la formule linéaire suivante:

LOC = a * UFC + b

Les paramètres a, b peut être obtenue par régression linéaire et précédemment données du projet achevé. Les derniers points de fonction pratiques de comptage manuel est mis à jour par le IFPUG (International Function Point Users Group).

 

Extensions du point fonction: point d'entité étend les points de fonction d'inclure des algorithmes en tant que nouvelle classe. Un algorithme est défini comme l'ensemble des règles qui doivent être complètement exprimé à résoudre un problème important de calcul. Par exemple, une routine de la racine carrée peut être considéré comme un algorithme. Chaque algorithme utilisé est donné un poids allant de 1 (élémentaire) à 10 (sur des algorithmes sophistiqués) et le point caractéristique est la somme pondérée des algorithmes plus la fonction points. Cette mesure est particulièrement utile pour les systèmes d'entrée quelques / sortie et de haute complexité algorithmique, tels que les logiciels mathématiques, de simulations discrètes, et les applications militaires.

 

Une autre extension de points de fonction est le point de plein exercice (FFP) pour mesurer en temps réel

applications, en prenant également en considération l'aspect de contrôle de ces applications. FFP introduit deux nouvelles données de contrôle de la fonction et quatre types de contrôle de nouveaux types de fonctions transactionnelles.

points de l'objet: Tout élément ponctuel et FFP étendre le point de fonction, le point objet de mesures de la taille d'une dimension différente. Cette mesure est basée sur le nombre et la complexité des objets suivants: écrans, des rapports et 3GL composants. Chacun de ces objets est compté et compte tenu d'un poids allant de 1 (simple l'écran) à 10 (3GL composante) et le point de l'objet est la somme pondérée de tous ces objets. Ceci est une mesure relativement nouveau et il n'a pas été très populaire. Mais parce qu'il est facile à utiliser à la phase précoce du cycle de développement ainsi que des mesures de taille logiciels raisonnablement bien, cette mesure a été utilisée dans les modèles d'estimation majeurs tels que COCOMO II pour estimation des coûts.

4. Estimation des coûts

 

Il existe deux grands types de méthodes d'estimation des coûts: algorithmique et non-algorithmique.

modèles algorithmiques sont très variables dans la sophistication mathématique. Certains sont basés sur des formules arithmétiques simples en utilisant des statistiques sommaires telles que les moyens et les écarts-types. D'autres sont basés sur Des modèles de régression et les équations différentielles. Pour améliorer la précision des modèles algorithmiques, il est nécessaire d'adapter ou de calibrer le modèle à la situation locale. Ces modèles ne peuvent pas être utilisés hors du commerce. Même avec la précision d'étalonnage peut être assez mitigés.

Nous avons d'abord donner un aperçu des méthodes non-algorithmique.

 

4.1-Méthodes non algorithmique

 

Analogie des coûts: cette méthode exige un ou plusieurs projets achevés qui sont semblables à ce nouveau projet et en tire l'estimation par le raisonnement par analogie avec les coûts réels des projets antérieurs. Estimation par analogie peut se faire soit au niveau total du projet ou au niveau sous-système. Le niveau total du projet a l'avantage que tous les éléments de coût du système sera considéré alors que le niveau du sous-système a l'avantage de fournir une évaluation plus détaillée des similitudes et des différences entre le nouveau projet et les projets achevés. La force de cette méthode est que l'estimation est basée sur le projet réel expérience. Toutefois, il n'est pas clair dans quelle mesure le projet précédent est effectivement représentatif des contraintes, l'environnement et les fonctions à exécuter par le nouveau système.

Un jugement d'expert: Cette méthode consiste à consulter un ou plusieurs experts. Les experts de fournir des estimations en utilisant leurs propres méthodes et de l'expérience. mécanismes d'experts-consensus comme la technique Delphi ou PERT sera utilisé pour résoudre les incohérences dans les estimations. La technique Delphi fonctionne comme suit:

1) Le coordonnateur présente chaque expert avec une spécification et un formulaire pour enregistrer les estimations.

2) Chaque expert remplit le formulaire individuel (sans discuter avec d'autres) et est autorisé à poser des questions coordonnateur.

3) Le coordonnateur prépare un résumé de toutes les estimations des experts (y compris les moyens ou médians) sur un formulaire de demande d'une nouvelle version des estimations des experts et la raison pour les estimations.

4) Répétez les étapes 2) -3) autant de tours, le cas échéant.

Une modification de la technique Delphi proposé par Boehm et Fahquhar semble être plus efficace: Avant l'estimation, une réunion de groupe impliquant le coordonnateur et d'experts est organisée afin de discuter des problèmes d'estimation. À l'étape 3), les experts n'ont pas besoin de donner une justification de ces estimations. Au lieu de cela, après chaque tour de l'estimation, le coordonnateur convoque une réunion d'experts ont discuter de ces points où leurs estimations variaient considérablement.

Parkinson: Utilisation de Parkinson principe «travail se développe pour occuper le volume disponible», Le coût est déterminé (non estimée) par les ressources disponibles plutôt que sur une évaluation objective. Si le logiciel doit être livré en 12 mois et 5 personnes sont disponibles, l'effort est estimée à 60 mois-personne. Même si elle donne parfois bonne estimation, cette méthode est déconseillée car elle peut fournir des estimations très irréaliste. En outre, cette méthode ne favorise pas la bonne la pratique du génie logiciel.

 

Prix à gagner: le coût des logiciels est estimé être le meilleur Prix à gagner du projet. L'estimation est basée sur le budget du client au lieu des fonctionnalités du logiciel. Par exemple, si une estimation raisonnable des coûts d'un projet de 100 personnes-mois, mais la client ne peut se permettre 60 personnes-mois, il est fréquent que l'estimateur est demandé de modifier l'estimation pour s'adapter à l'effort de 60 mois personne afin de gagner le projet. C'est pas non plus une bonne pratique car il est très susceptible d'entraîner un retard de livraison ou de mauvais vigueur l'équipe de développement de travailler des heures supplémentaires.

Bottom-up: Dans cette approche, chaque composante du système de logiciel séparément estimés et les résultats agrégés pour produire une estimation pour l'ensemble du système. L'exigence de cette approche est qu'une conception initiale doit être mis en place qui indique comment le système se décompose en différents éléments.

Top-down: Ce approche est à l'opposé de la méthode bottom-up. Une estimation globale des coûts du système est dérivé de propriétés globales, en utilisant soit des méthodes algorithmiques ou non algorithmique. Le coût total peut alors être répartis entre les différentes composantes. Cette approche est plus approprié pour l'estimation des coûts à un stade précoce.

 

4,2 méthodes algorithmiques

Les méthodes algorithmiques sont basées sur des modèles mathématiques qui produisent estimation des coûts en fonction d'un certain nombre des variables, qui sont considérés comme les principaux facteurs de coûts. Tout modèle algorithmique est de la forme:

Effort = f (x 1, x 2, …, x n)

(x 1, x 2, …, x n) désignent les facteurs de coûts. Les méthodes existantes algorithmique diffèrent sous deux aspects: la sélection facteurs de coût, et la forme de la fonction f. Nous allons d'abord examiner les facteurs de coûts utilisées dans ces modèles, puis de caractériser les modèles en fonction de la forme des fonctions et si les modèles sont analytiques ou empiriques.

 

Coût des facteurs 4.2.1

 

Outre la taille du logiciel, il existe de nombreux autres facteurs de coûts. L'ensemble le plus complet des facteurs de coûts sont proposés et utilisés par Boehm et al dans le modèle COCOMO II. Ces facteurs de coûts peuvent être divisée en quatre types:

facteurs du produit: la fiabilité requises;; complexité taille de la base du produit utilisé; requis

réutilisation; match de documentation pour les besoins du cycle de vie;

facteurs Informatique: contrainte de temps d'exécution, le stockage principal contrainte, les contraintes d'exécution informatique, la volatilité plate-forme;

facteurs du personnel: la capacité d'analyste; expérience d'application, la programmation la capacité;

expérience plate-forme, le langage et l'expérience outil, la continuité du personnel;

facteurs du projet: le développement multi-sites; utilisation de l'outil logiciel; calendrier de développement nécessaires.

Les facteurs ci-dessus ne sont pas nécessairement indépendants, et la plupart d'entre eux sont difficiles à quantifier. Dans de nombreux modèles, certains des facteurs apparaissent sous forme combinée et certains sont tout simplement ignorés. En outre, certains facteurs prennent des valeurs discrètes, résultant en une fonction d'estimation d'une forme par morceaux.

4.2.2 Les modèles linéaires

Les modèles linéaires ont la forme:

n

Effort = A0 + une hache

i = 1 i i

où les coefficients a 1, …, un n sont choisis pour répondre au mieux les données du projet achevé. Le travail de Nelson appartient à ce type de modèles. Nous sommes d'accord avec le commentaire Boehm qu'il ya un trop grand nombre d'interactions non linéaires dans le logiciel développement d'un modèle linéaire de bien travailler ".

 

4.2.3 modèles multiplicatifs

modèles multiplicatifs ont la forme:

xi n

Effort = A0 ? A

i = 1 i

Encore une fois, les coefficients a 1, …, a n sont choisis pour répondre au mieux les données du projet achevé. Walston-Félix utilisé ce type de modèle à chaque x i prendre que trois valeurs possibles: -1, 0, +1. modèle Doty appartient aussi à cette classe les uns avec les x i prendre que deux valeurs possibles: 0, +1. Ces deux modèles semblent être trop restrictives sur les valeurs facteur de coût.

 

4.2.4 modèles de fonction Power

des modèles de fonction de courant ont la forme générale:

Effort = un «S b

S est la taille de code, et, b sont (en général simple) des fonctions autres facteurs de coûts. Cette classe contient deux des modèles les plus populaires algorithmique en cours d'utilisation, comme suit:

 

COCOMO (Coût constructive Model) modèles

Cette famille de modèles a été proposé par Boehm. Les modèles ont été largement acceptée dans la pratique. Dans le COCOMOs, la taille S code est donné en milliers LOC (KLOC) et l'effort se fait en personne-mois.

A) COCOMO Basic. Ce modèle utilise trois ensembles de (a, b) en fonction de la complexité des logiciels uniquement:

(1) pour les simples, compris et applications, un = 2,4, b = 1,05;

(2) Pour de plus amples systèmes complexes, un = 3,0, b = 1,15;

(3) pour les systèmes embarqués, un 3,6 =, b = 1,20.

Le modèle COCOMO de base est simple et facile à utiliser. Comme les facteurs de coût ne sont pas nombreuses

considéré, il ne peut être utilisé comme une estimation approximative.

B) COCOMO intermédiaire et COCOMO détaillée. Dans le COCOMO intermédiaire, une estimation de l'effort nominal est obtenu en utilisant la fonction puissance avec trois ensembles de (a, b), avec un coefficient un être légèrement différente de celle de l'COCOMO de base:

(1) pour les simples, compris et applications, un = 3,2, b = 1,05

(2) pour les plus complexes systèmes, un = 3,0, b = 1,15

(3) pour les systèmes embarqués, un 2,8 =, b = 1,20

Ensuite, les facteurs de coût quinze ans, avec des valeurs allant de 0,7 à 1,66 (voir tableau 1) sont déterminés [5]. Le facteur d'impact globale M obtenu que le produit de tous les facteurs individuels, et l'estimation est obtenue en multipliant M à l'estimation nominale.

 

 

 

 

 

 

Tableau 1: Les facteurs de coût et de leur poids dans COCOMO II

 

Facteurs de coûts

Description

Classement

Très faible

faible

nominal

Élevé

Très haute

 

Produit

 

 

 

 

 

RELY

la fiabilité des logiciels requis

0,75

0,88

1,00

1,15

1,40

DONNEES

taille de la base

0,94

1,00

1,08

1,16

CPLX

la complexité des produits

0,75

0,85

1,00

1,15

1,30

Ordinateur

TEMPS

exécution contrainte de temps

1,00

1,11

1,30

STOR

principal contrainte de stockage

1,00

1,06

1,21

VIRT

virtuel la volatilité machine

0,87

1,00

1,15

1,30

TURN

ordinateur délai d'exécution

0,87

1,00

1,07

1,15

Personnel

PACS

analyste capacité

1,46

1,19

1,00

0,86

0,71

AEXP

demande expérience

1,29

1,13

1,00

0,91

0,82

PPCE

programmeur capacité

1,42

1,17

1,00

0,86

0,70

VEXP

virtuel expérience machine

1,21

1,10

1,00

0,90

LEXP

langue expérience

1,14

1,07

1,00

0,95

Projet

MODP

moderne pratique de programmation

1,24

1,10

1,00

0,91

0,82

OUTIL

des outils logiciels

1,24

1,10

1,00

0,91

0,83

SCED

calendrier de développement

1,23

1,08

1,00

1,04

1,10

Bien que les deux de base et intermédiaires COCOMOs estimer le coût des logiciels sur le système

niveau, le COCOMO détaillée fonctionne sur chaque sous-système séparément et a une évidente

avantage pour les gros systèmes qui contiennent des sous-systèmes non homogènes.

C) COCOMO II. Peut-être la différence la plus significative de la modèles COCOMO début est que les changements exposant b en fonction des facteurs de coût suivants: precedentedness, la souplesse de développement, d'architecture ou de risque de résolution de cohésion d'équipe, maturité des processus et. D'autres différences incluent les facteurs de coûts nouvellement ajoutée et des modèles pour la solidification de l'architecture logicielle et la réduction des risques.

 

Putnam modèle et SLIM

Putnam tire son modèle basé sur Norden / distribution de Rayleigh et de la main-d'oeuvre de son trouver dans l'analyse de nombreux projets menés à terme. La partie centrale du modèle de Putnam est appelée équation de logiciels comme suit:

 

S = E (Effort) 1 / 3 t D 4 / 3

t d est le délai de livraison de logiciels; E est l'environnement de facteur reflète la capacité de développement, qui peuvent être tirées de données historiques sur l'utilisation du logiciel

équation. Le S taille est en LOC et l'effort est en année-personne. Un autre important relationfound par Putnam

Effort = D 0 't D 3

D 0 est un paramètre appelé main-d'oeuvre l'accumulation qui va de 8 (entièrement nouveau logiciel avec de nombreuses interfaces) à 27 (reconstruite logiciel). La combinaison de l'équation ci-dessus avec l'équation de logiciels, nous obtenons la fonction de puissance forme:

Effort = (D04 / 7 x E-9 / 7) X S9 / 7 et

td = (D0-1 / 7 x E-3 / 7) x S3 / 7

modèle de Putnam est aussi largement utilisé en pratique et SLIM est un logiciel basé sur ce modèle d'estimation des coûts et la planification des effectifs.

 

4.2.5 Modèle d'étalonnage par régression linéaire

Une application directe des modèles ci-dessus ne tient pas locale circonstances en considération.

  1. Toutefois, on peut ajuster les facteurs de coût en utilisant les données locales et la méthode de régression linéaire. Nous illustrons ce calibrage du modèle en utilisant la fonction puissance modèle général: Effort = a 'b S.

Prenez logarithme des deux côtés et laissez-Y = log (effort), A = log (a) et X = log (S). La formule est transformé en un linéaire l'équation:

Y = a + b 'X

Application de la place au moins méthode standard pour un ensemble de données du projet précédent (Y i, X i: i = 1, …, k), nous obtenons les paramètres requis et b A (et donc a) de la fonction de pouvoir.

 

4.2.6 modèles discrets

modèles discrets ont une forme de tableaux, qui se rapporte habituellement l'effort, la durée, la difficulté et les autres coûts facteurs. Cette catégorie de modèles contient modèle Aron, modèle Wolverton, et le modèle de Boeing. Ces modèles acquis une certaine popularité dans les premiers jours de l'estimation des coûts, car ils sont faciles à utiliser.

 

4.2.7 Les autres modèles

Plusieurs autres modèles existent et Les éléments suivants ont été utilisés avec succès dans la pratique.

 

Prix-S est un logiciel propriétaire modèle d'estimation des coûts développé et maintenu par RCA, au New Jersey. À partir d'une estimation de la taille du projet, le type et la difficulté, le modèle calcule le coût du projet et le calendrier.

 

SoftCost concerne la taille, l'effort et la durée de gestion du risque en utilisant une forme de la distribution de probabilité de Rayleigh. Il contient des heuristiques pour guider les estimateurs traitant des nouvelles technologies et les relations complexes entre les paramètres impliqués.

Les modèles algorithmiques peuvent être groupés comme indiqué dans le tableau 2.

 

Tableau 2. Classification des modèles algorithmiques

Algorithmique Modèles

Linéaire

Multiplicatifs

Fonction Power

Discret

D'autres

Empirique

Nelson

Herd Walston-Félix et à

COCOMOS

Aron Boeing Wolverton

Prix-S

Analytique

Putnam

Coût Soft

Le tableau 3 compare les forces et les faiblesses des différentes méthodes. De la comparaison, nous pouvons conclure que

  • Aucune méthode est la meilleure pour tous les projets.
  • Parkinson et prix à gagner méthodes ne conviennent pas pour les organisations dont le but est de gagner plus d'affaires.
  • En utilisant une combinaison de techniques peut fournir la meilleure estimation. Par exemple, l'estimation combinant top-down avec un jugement d'expert et des méthodes analogie peut donner un résultat supérieur.

Tableau 3. Résumé des forces et faiblesses des différentes méthodes

Méthodes

Force

Faiblesses

Non-algorithmique

Jugement d'experts

D'experts avec l'expérience pertinente peut fournir une bonne estimation;

En fonction de l '«expert»;

Peut constituer un préjugé;

Souffrent de rappeler incomplète

Analogie

expérience basée sur les données de projet actuels et passés

Similaire projets peuvent ne pas exister;

Les données historiques ne soient pas exactes

Parkinson Prix à gagner

Souvent avec le contrat

Pauvres la pratique;

Peut avoir des dépassements de grande

Top-down

concentrer au niveau du système;

Plus rapide et plus facile que la méthode bottom-up;

Requis détails du projet minimal

Fournir peu de détails pour justifier

des estimations;

Moins précis que d'autres méthodes

Bottom-up

Basé sur une analyse détaillée;

Projet d'appui à un meilleur suivi de toute autre méthode, que ses estimations de l'adresse tâches de bas niveau

Pourra faire abstraction des facteurs au niveau du système des coûts;

effort besoin de plus d'estimation

par rapport à Top-down;

Difficile pour effectuer l'estimation précoce du cycle de vie

Algorithmique

Objectifs, résultats reproductibles;

Acquérir une meilleure compréhension de l'estimation méthode

entrées subjective;

Calibré pour les projets passés et peuvent ne pas refléter l'environnement actuel;

Algorithmes peuvent être entreprise spécifique et ne pas être approprié pour les logiciels

développement en général

 

4,3 Mesure de la performance du modèle

Divers chercheurs ont utilisé des mesures d'erreur différent. L'erreur de mesure plus populaire est absolue moyenne erreur relative (MARE):

n

MARE = A (| (estimatesi – actuali) / actuali |) / n

i = 1

lorsque l'estimation i est l'effort estimé à partir du modèle, réel i est l'effort réel, et n est le nombre de projets.

Pour déterminer si les modèles sont biaisées, la moyenne erreur relative (MRE) peuvent être utilisés:

MRE = = A (| (estimatesi – Actuali) / actuali |) / n

Un MRE grande positive suggère que le modèle surestime généralement l'effort, tandis qu'un grand valeur négative indique l'inverse.

Les critères suivants peuvent être utilisés pour l'évaluation des modèles d'estimation des coûts:

1) Définition – a le modèle clairement défini les coûts, il est l'estimation, et les coûts, il est l'exclusion?

2) Fidelity – Les estimations proches des coûts réels dépensés sur les projets?

3) Objectivité – ce que le modèle éviter d'allouer plus de la variance des coûts logiciels à mal calibrés facteurs subjectifs (tels que la complexité)? Est-il difficile d'ajuster la modèle afin d'obtenir un résultat à l'utilisateur le souhaite?

4) la constructivité – Un utilisateur peut expliquer pourquoi le modèle donne les prévisions qu'elle fait? T-elle aider l'utilisateur à comprendre le travail de logiciels à faire?

5) Détails – Est-ce le modèle aisément de l'estimation d'un système de logiciel comportant un certain nombre de sous-systèmes et des unités? Est-il donne une phase précise et ventilations d'activité?

6) Stabilité – Ne petites différences dans les intrants de produire de petites différences dans les estimations de coûts de sortie?

7) Champ d'application – Est-ce le modèle de couverture de la classe de projets de logiciels dont les coûts de l'utilisateur nécessité d'estimation?

8) Facilité d'utilisation – Les paramètres du modèle et des options faciles à comprendre et préciser?

9) Prospectiveness – Est-ce le modèle d'éviter l'utilisation des informations qui ne seront pas connus tant que le projet est terminé?

10) parcimonie – Est-ce le modèle d'éviter l'utilisation de facteurs hautement redondantes, ou des facteurs qui ne font aucune contribution appréciable aux résultats?

 

 

5. Performance des modèles d'estimation

De nombreuses études ont tenté d'évaluer les modèles d'estimation des coûts. Malheureusement, les résultats ne sont pas encourageantes, car beaucoup d'entre eux ont été jugées pas très précise. Kemerer effectué une validation empirique de quatre modèles algorithmiques (SLIM, COCOMO, Estimacs et FPA). Aucun recalibrage des modèles a été réalisée sur les données du projet, ce qui est différent de celui utilisé pour l'élaboration du modèle. La plupart des modèles ont montré une forte plus biais d'estimation et les erreurs d'estimation grandes, allant d'une jument de 57% à 800%.

Vicinanza, Mukhopadhyay et Prietula experts utilisés pour estimer l'effort de projet à l'aide des données de jeu sans Kemerer formelle des techniques algorithmiques et trouvé les résultats ont dépassé les modèles dans l'étude originale. Toutefois, le MARE gammes de 32 à 1107%.

Ferens et Gurner évalué trois modèles (SPANS, Checkpoint, et COSTAR) utilisant 22

projets base de données Albrecht et 14 projets à partir des données de Kemerer ensemble. L'erreur d'estimation est également importante, avec MARE allant de 46% pour le modèle de Checkpoint à 105% pour le COSTAR modèle.

Une autre étude sur COCOMO a également constaté des taux d'erreur élevé, en moyenne 166%. Jeffery et Low étudié la nécessité de l'étalonnage du modèle à la fois l'industrie et les niveaux d'organisation. Sans étalonnage du modèle, l'erreur d'estimation est importante avec MARE allant de 43% à 105%.

Jeffery, Faible et Barnes tard par rapport au modèle SPQR/20 à FPA utilisant les données de 64 projets d'une seule organisation. Les modèles ont été recalibrés à l'environnement local pour éliminer les biais d'estimation. Amélioration dans l'estimation a été observée avec une jument de 12%, reflétant les avantages de l'étalonnage du modèle.

Il y avait également des études basées sur l'utilisation de l'analogie. Avec l'utilisation d'un programme appelé

Ange qui était basée sur la minimisation de la distance euclidienne dans l'espace à n dimensions, Shepperd et Schofield a constaté que l'estimation par analogie estimation basée sur des algorithmes surclassé calculée statistiquement.

Heemstra interrogés 364 organisations et a constaté que seulement 51 ont utilisé des modèles pour estimer efforts et que les utilisateurs du modèle fait pas mieux estimer que les utilisateurs non-modèle. En outre, l'utilisation de modèles d'estimation n'était pas meilleure que le jugement d'experts.

Une enquête de développement de logiciels au sein de JPL a constaté que 7% seulement des estimateurs utilisent

modèles algorithmiques comme une première approche de l'estimation.

 

6. Nouvelles approches

L'estimation des coûts demeure un problème complexe, qui continue d'attirer l'attention des recherches considérables. Les chercheurs ont tenté des approches différentes. Récemment, des modèles basés sur des techniques d'intelligence artificielle ont été développées. Par exemple, Finnie et Wittig appliquée réseaux de neurones artificiels (ANN) et le raisonnement par cas (CBR) à l'estimation de l'effort. En utilisant un ensemble de données de l'Association australienne de logiciels de métrologie, ANN a été en mesure d'estimer l'effort de développement au sein de 25% de l'effort réel dans plus de 75% des projets, et d'une jument de moins de 25%. Toutefois, les résultats de RBC ont été moins encourageants. Dans 73% des cas, les estimations ont été à moins de 50% de l'effort réel, et pour 53% des cas, les estimations ont été à moins de 25% de l'effectif.

Dans une étude séparée, Mukhopadhyay, Vicinanza et Prietula constaté que d'un expert système fondé sur le raisonnement analogique surperformé les autres méthodes.

Srinivasan et Fisher utilisé l'apprentissage automatique des approches fondées sur les arbres de régression et les réseaux neuronaux pour estimer les coûts. Les méthodes d'apprentissage ont été trouvés pour être compétitif avec SLIM, COCOMO, et des points de fonction, par rapport à l'étude précédente en Kemerer. Un des principaux avantages des systèmes d'apprentissage, c'est qu'ils sont adaptables et non paramétriques.

Briand, El Eman et Bomarius proposé une modélisation des coûts méthode hybride, COBRA: Coût

estimation, d'analyse comparative et l'analyse des risques. Cette méthode est basée sur les connaissances d'experts et de données quantitatives du projet d'un petit nombre de projets. Des résultats encourageants ont été fait état d'un petit ensemble de données.

About the Author

CURRICULUM VITAE

Objectives: -
Develop the desktop and Distributed Database Applications through the
application tools like :
C/C++, Visual Basic (Database Connectivity With Oracle or SQL Server2000,Ms-Access,Crystal Report)
Java, HTML, DHTML, Visual C++, ASP (Active Server Pages), VbScript, JavaScript.

Personal: – E-Mail: nomaniba@yahoo.com
Name: Muhammad Noman Siddiqui
F/Name: Muhammad Saeed Siddiqui
D.O.B: 13th June 1980

Sex: Male

Marital Status: Married

Nationality: Pakistani

Address: B-6/229 Indus Mehran Society,
Malir Extension Karachi.Pakistan
P.O.Box: 75080
Cell No: 0345-3623475
Experience: -
I have One year Teaching Experience in an Global Computer Institute.
C/C++,Visual Basic,Ms-Office(Ms-Word,Access,Excel)
SQL Server 2000,Crystal Report.

Qualification:-
Academic:-

Graduation:
MS (Network &Telecommunications;)
from Mohammad Ali Jinnah University

BS (Computer Science)
from Orasoft Training Institute
Affiliated With University Of Shah Abdul,Sindh
Intermediate: H.S.C from Govt Dehli Science College

Matric : S.S.C From F.J Grammar School

Strength:-
Handling and Design the Desktop Applications Through Visual Basic With Database Connectivity Like Sql Server-2000,Ms-Access and Oracle.
Handling and Design the Distributed Applications Through ASP and Jsp with the database connectivity like Ms-Access,Sql-Server-2000 and Oracle 8i.
Projects:-
• Library Information System
• Inventory Control System
• Sale/Purchase System (Designed in Visual Basic)
• Fixed Assets Management System(Under Process)
Reference:-
I have listened through my colleague.So consider me as an employee candidate in your concerned department of your organization.

Google I/O 2009 – How Do I Code Thee? Let Me Count the Ways


Leave a comment

Your comment