Approche pour la construction de modèles d’estimation réaliste de l’effort/coût de projet dans un environnement incertain

Aujourd’hui, les logiciels sont devenus indispensables pour les entreprises et organisations. Ils sont utilisés pour effectuer différentes activités relatives à la gestion des projets et des opérations, la communication, la simulation, etc. Le secteur du logiciel et des services informatiques constitue l’un des plus importants secteurs économiques avec, en 2014, un chiffre d’affaires global de 49,5 milliards d’euros et 365 000 salariés. Avec l’évolution des industries et de leurs besoins, les logiciels sont devenus de plus en plus grands et complexes. Cependant, le taux de réussite des projets de développement de ces logiciels n’a pas progressé car ils sont devenus plus difficiles à gérer et à réaliser. Selon une étude menée par le Standish Group International en 2012 (Chaos Report 2012 du Standish Group) [International2013] sur 50.000 projets logiciels, 43% des projets coûtent plus cher et durent plus longtemps que prévu. L’échec et l’abandon des projets logiciel avant leurs achèvements font perdre aux organisations d’énormes sommes d’argent. A titre d’exemple, en 2004, les échecs des projets logiciels ont couté 142 billions d’euros à l’union européen.

Généralités sur les projets de développement logiciel 

Projets de développement logiciels vs projets de construction ou de fabrication

Un projet de développement logiciel diffère d’un projet d’industrie de construction ou de fabrication à plusieurs égards, entre autres :
— Les logiciels sont des produits intangibles qui sont basés sur des instructions, des formules, des fichiers, etc. alors que les produits des projets de construction sont tangibles et basés sur des éléments physiques.
— Les technologies de développement logiciels évoluent plus rapidement que les technologies (machines, outils, etc.) utilisées dans les autres types de projets d’ingénierie.
— Les projets de développement présentent une bonne flexibilité. Les interfaces et composants d’un logiciel peuvent être changés à toute phase du cycle de vie du projet. Ainsi, les projets de développement logiciel présentent un grand degré de variabilité qui peut rendre difficile l’achèvement du projet dans les coûts et les délais prévus.
— Quand un projet de construction (d’un bâtiment par exemple) est démarré, son avancement est visible sur le chantier, étant donné qu’il s’agit d’un produit physique. Ceci n’est valable pour le cas des projets de développement logiciel que si des méthodes agiles sont employées.

Facteurs d’échec des projets logiciels 

De nombreuses études ont été conduites en vue de déterminer le taux d’échec des projets logiciels et de fournir une vision claire sur l’évolution du domaine de développement logiciel. Le rapport de Standish Group de 2012 indique que seulement 39% des projets sont réussis (livrés dans le temps, en budget et avec toutes les fonctionnalités requises), 43% sont en difficulté (en retard, avec un dépassement de budget et avec moins de fonctionnalités requises) et 18 % échoués (annulés ou livrés mais jamais utilisés). Ces résultats ont été critiqués par quelques auteurs comme étant basés sur des méthodes d’enquête qui sont soupçonnées d’être biaisées [Glass2006]. L’enquête de [El Emam+2008] sur les projets logiciels développés en 2005 et 2007 indique que le taux de réussite des projets logiciels varie entre 48% et 55% et que le taux d’échec varie entre 11.5% et 15.5%. Cette enquête, contrairement aux rapports du Standish Group, conclut qu’il n’y a pas d’importante amélioration entre les deux années 2005 et 2007 et que ce taux reste pourtant élevé. Il est à noter ce taux d’échec est plus important dans le domaine du développement logiciel que dans d’autres domaines tels que l’industrie et la construction [Chemuturi2013].

L’échec des projets logiciels est dû à différentes et nombreuses raisons. Le Standish Group décrit les dix plus importantes, elles comportent entre autres :
— L’incomplétude des exigences et spécifications,
— Le manque l’implication du client,
— Le manque de ressources,
— L’estimation non réaliste,
— Le manque du support exécutif.

De son coté [El Emam+2008] indique dans son enquête que les deux plus importants facteurs d’échecs sont relatifs aux changements des exigences et du cadre du projet, le manque d’implication de la haute direction et le déficit budgétaire dû entre autre à la mauvaise estimation. Une autre étude de [Humphrey2001] identifie différents facteurs d’échec de projets logiciels dont les planning non réalistes, les effectifs non adéquats et les spécifications changeantes et évolutives sont les plus influents. Clairement, tous les spécialistes et professionnels sont d’accord que l’un des plus importants facteurs d’échec des projets logiciels est relatif à l’estimation de l’effort. La question se pose concernant les enjeux de l’estimation de l’effort et son rôle dans le management des projets de développement logiciels.

Enjeux de l’estimation 

Capers Jone’s, spécialiste dans les méthodologies d’ingénierie logicielle, définit l’estimation dans le cadre des projets logiciels comme étant le processus permettant de prédire les réalisations futures d’un projet en termes de différents facteurs, à savoir la taille ou la complexité, le planning, l’effort, les coûts, les bénéfices et le risque [Capers2006]. Il est important de différencier les estimations des objectifs et engagements dans le cadre d’un projet logiciel. En effet, un objectif d’un projet représente un ou plusieurs buts commerciaux escomptés par le client. Même s’ils sont fortement souhaitables et parfois indispensables, les objectifs d’un projet ne sont pas toujours réalisables. Ils sont souvent établit indépendamment des estimations. Un engagement est une promesse de livrer les fonctionnalités définies conformément à un niveau spécifique de qualité à une date fixée. Un engagement (sur la durée du projet par exemple) peut être identique à l’estimation (de la durée du projet, par exemple), ou il peut être plus agressif ou plus modeste. Autrement, l’engagement n’est pas forcément identique à l’estimation [McConnell2006].

Importance de l’estimation 

La bonne estimation de l’effort, des coûts et des délais est un facteur clé de succès des projets logiciels. Par contre, une mauvaise estimation peut avoir des conséquences négatives [Clayton2014], notamment :
— La perte de confiance des clients et de l’équipe dans l’organisation.
— Le mécontentement de l’équipe, en particulier lorsqu’elle doit travailler des heures excessives pour respecter une date de livraison.
— La mauvaise qualité du logiciel due à l’empressement des développeurs à achever le projet et à respecter les délais au détriment des pratiques de contrôle de la qualité, comme les tests.
— L’échec du projet suite aux nombreuse estimations infructueuses et perte totale de la confiance du client dans la capacité de l’équipe à achever et livrer le projet en respectant les engagements.

Estimation et cycle de vie d’un projet 

Généralement, l’estimation de l’effort est effectuée et révisée plusieurs fois durant le cycle de vie d’un projet de développement logiciel :
— En amont du projet : Dans la phase de lancement du projet en interne, côté maitrise d’ouvrage, l’estimation est effectuée d’une manière globale et grossière dans le cadre de l’étude de faisabilité. A ce stade, les décideurs s’appuient sur l’estimation globale du projet pour décider de l’approbation du projet et de l’allocation des fonds et ressources. Lors d’une procédure d’appel d’offre, l’estimation est réalisée par les prestataires de développement pour faire des réponses et propositions afin d’acquérir le projet. A ce stade, l’estimation, vue par la maitrise d’œuvre, permet de : (1) assister l’estimateur dans la tarification du projet étant donnée que l’effort de développement est un composant majeur de coût dans le tarif global du projet, (2) estimer les ressources requises pour réaliser le projet, (3) assister les décideurs à déterminer si l’organisation possède les capacités et ressources nécessaires à la réalisation du projet, (4) assister les décideurs à présenter des engagements de livraison aux clients [Chemuturi+2010]. Généralement, en phase amont du projet, les informations disponibles sur le projet logiciel à développer sont minimales, ainsi la confusion sur l’estimation s’installe. Par conséquent, l’estimation est souvent grossière, pas assez fine et n’est utilisée que d’une façon indicative.
— Durant le développement du logiciel : Tout d’abord, l’estimation de l’effort est utilisée dans la phase de planning de projet comme base pour estimer les ressources requises pour accomplir le projet. Elle est révisée à la fin de la phase de spécification ou/et de la phase de conception afin de valider ou de proposer des modifications des engagements de livraison. L’estimation est utilisée tout au long du processus de développement pour suivre et contrôler l’avancement du projet afin de s’assurer du respect des engagements et prendre les mesures correctives si nécessaire. L’avancement du projet apporte progressivement des détails, réduit les incertitudes et lève la confusion sur l’estimation de l’effort.
— Après la livraison du projet : L’estimation de la taille et l’effort du projet sont révisés afin d’analyser la différence entre la taille/ l’effort estimés en phase amont et la taille/ l’effort estimés (mesurés) à la fin du projet. Cette pratique permet d’avoir un retour d’expérience sur l’estimation et ainsi d’améliorer le processus d’estimation. Malheureusement, cette pratique est peu commune et absente dans de nombreuses organisation [Chemuturi2009].

Le rapport de stage ou le pfe est un document d’analyse, de synthèse et d’évaluation de votre apprentissage, c’est pour cela rapport-gratuit.com propose le téléchargement des modèles complet de projet de fin d’étude, rapport de stage, mémoire, pfe, thèse, pour connaître la méthodologie à avoir et savoir comment construire les parties d’un projet de fin d’étude.

Table des matières

Introduction
contexte et problématique
Introduction générale
Généralités sur les projets de développement logiciel
Projets de développement logiciels vs projets de construction ou de fabrication
Facteurs d’échec des projets logiciels
Enjeux de l’estimation
Importance de l’estimation
Estimation et cycle de vie d’un projet
Facteurs d’échec de l’estimation
Le projet Projestimate (FUI)
Objectifs du projet Projestimate
Verrous scientifiques de Projestimate
Organisation du manuscrit
1 État de l’art
Introduction
1.1 Processus d’estimation
1.1.1 Mesure de la taille fonctionnelle du projet
1.1.2 Estimation de l’effort, de la durée et du coût
1.2 Techniques et modèles d’estimation d’effort
1.2.1 Techniques non algorithmiques
1.2.2 Techniques algorithmiques
1.2.3 Modèles d’estimation paramétriques
1.2.4 Modèles d’estimation non paramétriques
1.2.5 Autres classifications de modèles d’estimation
1.2.6 Cartographie des catégories de techniques d’estimation
1.3 Incertitudes dans le processus d’estimation
1.3.1 Sources d’incertitudes
1.3.2 Nature probabiliste des estimations
1.3.3 Expression des incertitudes dans l’estimation
1.3.4 Évaluation des approches de détermination d’Intervalles de Prédiction (IvP)
1.4 Sélection d’un modèle d’estimation d’effort
1.4.1 Exactitude, précision et biais
1.4.2 Évaluation des modèles d’estimation
1.4.3 Validation de modèles d’estimation
1.4.4 Études de comparaison de modèles d’estimation
1.4.5 Sources d’inconstance des résultats de comparaison de modèles d’estimation
Conclusion
2 Sélection de modèle d’estimation d’effort en prenant en compte les incertitudes
Introduction
2.1 Formulation du problème de sélection de modèle d’estimation
2.2 Approche de sélection de modèle d’estimation
2.3 Préparation de la base de données
2.3.1 Nettoyage de la base de données
2.3.2 Transformations des données
2.4 Évaluation de la performance prédictive des modèles d’estimation sur une base de données
2.4.1 Modèles d’estimation paramétriques d’effort
2.4.2 Modèles d’estimation non paramétriques d’effort
2.4.3 Indicateurs de performance prédictive
2.5 Évaluation des incertitudes des modèles d’estimation sur une base de données
2.5.1 Incertitudes et variabilité
2.5.2 Bootstrap pour l’évaluation des incertitudes
2.5.3 Indicateurs d’incertitudes
2.6 Aide à la sélection du meilleur modèle d’estimation d’effort
Conclusion
3 Construction et utilisation d’un système d’estimation réaliste dans un environnement incertain
Introduction
3.1 Construction d’un système d’estimation performant
3.2 Utilisation du système d’estimation dans un environnement incertain
3.2.1 Détermination des FDP des facteurs d’effort
3.2.2 Simulation Monte Carlo
3.2.3 Analyse des résultats de la simulation pour exprimer l’effort estimé
Conclusion
4 Expérimentation et mise en œuvre
Introduction
4.1 Expérimentation et interprétation des résultats de la comparaison de modèles d’estimation
4.1.1 Présentation de l’expérimentation
4.1.2 Base de données ISAS
4.1.3 Bases de données PROMISE
4.1.4 Base de données CAPRI
4.1.5 Discussion/Comparaison de modèles d’estimation
4.2 Expérimentation de l’approche de construction d’un système d’estimation – Estimation de l’effort d’un nouveau projet
4.2.1 Construction d’un système d’estimation pour CAPRI
4.2.2 Estimation de l’effort d’un nouveau projet
4.3 Implémentation informatique
4.3.1 Architecture
4.3.2 Licence logicielle
4.3.3 Déroulement d’un cas d’utilisation
Conclusion
Conclusion générale

Rapport PFE, mémoire et thèse PDFTélécharger le rapport complet

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.