Démystifier le processus d'estimation des logiciels (introduction)

Apr 22 2023
Un projet logiciel réussi dépend d'une estimation précise de l'effort, du temps et du coût. Les budgets, les délais et la portée du projet peuvent être difficiles à gérer sans une estimation appropriée.

Un projet logiciel réussi dépend d'une estimation précise de l'effort, du temps et du coût. Les budgets, les délais et la portée du projet peuvent être difficiles à gérer sans une estimation appropriée.

Parfois, une mauvaise estimation peut nous amener à introduire beaucoup de stress en essayant de respecter les délais et de livrer ce que nous avons promis.

Nous pouvons dire que l'estimation logicielle aide à identifier les risques et incertitudes potentiels, à hiérarchiser les tâches, à allouer efficacement les ressources et à assurer la satisfaction du client.

Espérons que cet article expliquera pourquoi l'estimation de logiciel est si importante et comment elle peut bénéficier aux équipes et aux clients.

Photo de Firmbee.com sur Unsplash

Différents types d'exigences de projet

Pour commencer à discuter des approches d'estimation de projet, nous devons comprendre les différents types d'exigences et ce qui est inclus et non inclus dans les approches dont nous discuterons dans ces articles.

Ces approches conviennent aux projets de développement ou d'amélioration de logiciels qui dépendent beaucoup de la taille du logiciel. Cependant, cette approche ne peut pas être utilisée pour tous les projets de logiciels ou de systèmes.

Une explication plus détaillée de la mesure de la taille fonctionnelle suivra dans celui du prochain article. Pour l'instant, il est important de comprendre les trois types d'exigences pour les projets logiciels afin d'expliquer la mesure de la taille fonctionnelle et comment elle s'intègre dans l'estimation.

Figure 1 : Différents types d'exigences de projet de développement logiciel

Selon la figure 1, les exigences du projet peuvent être divisées en trois catégories distinctes (cette répartition améliore également la communication entre les utilisateurs et les membres de l'équipe du projet). Il existe trois types d'exigences : les exigences fonctionnelles de l'utilisateur, les exigences non fonctionnelles de l'utilisateur et les exigences techniques du bâtiment.

Exigences fonctionnelles de l'utilisateur

Clarifier les fonctions d'un logiciel est essentiel lors de son développement. Une exigence essentielle est un ensemble de spécifications décrivant comment le logiciel doit exécuter des processus ou des tâches métier spécifiques, tels que l'observation de la température d'un environnement.

Il est souvent utilisé pour mesurer la taille des exigences fonctionnelles d'un système logiciel en fonction du nombre de points de fonction. Pour que le système logiciel puisse exécuter les fonctions prévues, les points de fonction sont calculés en fonction du nombre d'entrées, de sorties et d'interactions utilisateur qu'il nécessite.

Un développeur de logiciels peut mieux estimer le temps et les ressources nécessaires pour créer et tester un logiciel en définissant les exigences fonctionnelles et en calculant les points de fonction.

Voici un exemple d'exigences fonctionnelles d'un scénario semi-réel. Supposons que nous allons créer un logiciel pour un CMS, comme Penzle ou Strap i, par exemple.

Figure 2 : Exigences fonctionnelles pour un CMS

Sur la base de ces exigences fonctionnelles, l'équipe de développement logiciel devra calculer les points de fonction pour le CMS. Par exemple, le CMS peut avoir un total de 180 points de fonction.

Cela peut aider à garantir que le CMS répond aux besoins de ses utilisateurs prévus et exécute correctement ses fonctions prévues, ce qui conduit finalement à un système de gestion de contenu réussi et efficace.

Veuillez noter que le développement d'un CMS est beaucoup plus complexe que dans l'exemple précédent et qu'il implique de nombreuses fonctionnalités. Si vous êtes intéressé par le nombre de fonctionnalités qu'un CMS peut avoir, je vous suggère de jeter un coup d'œil sur le site Web Penzle.com pour voir ce qu'il propose ou sur des vidéos YouTube .

Exigences non fonctionnelles de l'utilisateur

Le deuxième type d'exigences logicielles est appelé exigences non fonctionnelles, qui décrivent comment le logiciel doit fonctionner et ne sont pas considérées comme faisant partie de la taille fonctionnelle. Des exemples d'exigences non fonctionnelles incluent la sécurité, la précision et la fiabilité.

Il est important de noter que ces exigences ne sont souvent pas écrites séparément, mais sont plutôt intégrées dans tout le document d'exigences. Les exigences non fonctionnelles spécifient les caractéristiques du logiciel, telles que le cryptage des données et le temps de réponse. Par conséquent, il est crucial de les garder à l'esprit et d'être prudent lors de leur examen.

Nous pouvons dire que les exigences non fonctionnelles, que nous appelons également les exigences de qualité , consistent à s'assurer que le logiciel fonctionne correctement et répond aux attentes des utilisateurs. Ils comprennent des éléments tels que :

Figure 3 : Exigences non fonctionnelles de l'utilisateur

Le terme « non fonctionnel » fait référence à des exigences qui ne sont pas liées à la fonctionnalité d'un système ou d'un produit, mais concernent d'autres aspects, tels que les performances, la sécurité, l'évolutivité, la fiabilité et la disponibilité. L'importance de ces exigences ne peut être surestimée puisqu'elles contribuent à la qualité du système et à sa capacité à répondre aux besoins des utilisateurs.

En ingénierie, les exigences non fonctionnelles sont cruciales pour développer des produits et des systèmes de haute qualité. Lors de la planification, de la conception, de la mise en œuvre et des tests de produits ou de systèmes, les ingénieurs doivent tenir compte des exigences non fonctionnelles. Il est nécessaire de traiter de nombreuses transactions en temps réel s'il s'agit d'un système de traitement des transactions dans les banques, par exemple. La performance peut être une exigence non fonctionnelle importante.

Exigences techniques du bâtiment

Ces exigences concernent principalement les ingénieurs et traitent de la manière dont le logiciel sera développé ou construit. Ils incluent les outils, les méthodes, le type de projet, les niveaux de compétence des ressources, etc. Ces exigences sont là où la conception architecturale, les méthodes de gestion de configuration, la méthodologie de développement, l'utilisation de packages et l'utilisation des outils CASE (Computer-Aided Software Engineering) entrent en jeu. Les exigences techniques englobent les exigences matérielles et logicielles, les exigences d'infrastructure, les types de bases de données, etc.

Figure 3 : Exigences techniques du bâtiment

Garder un œil sur les exigences techniques du bâtiment est crucial pour s'assurer qu'un système logiciel répond à ses exigences fonctionnelles, est évolutif, maintenable et efficace. En tenant compte des exigences techniques lors du développement, les équipes peuvent créer des systèmes logiciels qui répondent aux besoins des utilisateurs et des parties prenantes, sont rentables et peuvent évoluer au fil du temps pour répondre aux exigences changeantes.

Enfin

Comme il ressort de la discussion ci-dessus, les trois types d'exigences de projet sont essentiels pour produire une estimation précise de l'effort total du projet logiciel. Cependant, dans le prochain article, nous nous concentrerons principalement sur la taille fonctionnelle. La taille fonctionnelle représente la taille des exigences fonctionnelles et est un élément crucial du processus d'estimation.

Il est important de noter que la taille fonctionnelle n'est qu'une des nombreuses variables requises pour une estimation précise. Pour un nouveau projet de développement, la taille fonctionnelle fait référence à la taille de toutes les fonctionnalités livrées ou installées, similaire au plan d'étage d'un bâtiment. Pour un projet d'amélioration, la taille fonctionnelle est la taille totale de toutes les exigences fonctionnelles nouvelles, rénovées ou supprimées dans le logiciel.

Si vous êtes intéressé par ce sujet important, veuillez garder un œil sur l'article à venir ou envisager de vous abonner , car une mauvaise estimation peut souvent entraîner l'échec du projet.

PS Si vous pensez que je peux vous aider avec quelque chose, n'hésitez pas à me contacter, et je vous répondrai dans les plus brefs délais. [email protected]

Acclamations!

Les références: