|
Le processus de conception de logiciels implique plusieurs activités clés, chacune produisant des résultats spécifiques. Ces activités ne sont pas toujours strictement séquentielles; il y a souvent des itérations et des chevauchements. Cependant, une représentation commune suit ces étapes :
1. Collecte et analyse des exigences :
* Activité : Comprendre les besoins des parties prenantes (clients, utilisateurs, etc.) et les documenter formellement. Cela implique des entretiens, des enquêtes, des examens de documents et la création de cas d'utilisation.
* Sortie : Document de spécification des exigences (SRS). Ce document définit précisément ce que le logiciel doit faire, et non comment il doit le faire. Il peut inclure des cas d'utilisation, des user stories, des exigences fonctionnelles, des exigences non fonctionnelles (performances, sécurité, etc.) et des contraintes.
2. Conception du système :
* Activité : Définir l'architecture globale du système. Cela inclut l'identification des principaux composants, leurs interactions et la manière dont ils fonctionneront ensemble pour répondre aux exigences. Les décisions concernant la technologie, les plates-formes et le déploiement sont prises à ce stade.
* Sortie : Document d'architecture du système. Cela inclut généralement des diagrammes montrant les composants du système, leurs relations (par exemple, des diagrammes UML comme les diagrammes de composants, les diagrammes de déploiement) et le flux de données. Les choix technologiques et les décisions de conception de haut niveau sont également documentés.
3. Conception détaillée :
* Activité : Décomposer le système en modules plus petits et plus faciles à gérer et spécifier la conception interne de chaque module. Cela implique la conception d'algorithmes, de structures de données et d'interfaces. Cette phase se concentre sur le « comment » – les détails de mise en œuvre.
* Sortie : Document de conception détaillé, qui comprend les spécifications du module, les diagrammes de classes (si vous utilisez une conception orientée objet), les descriptions d'algorithmes, les définitions de structure de données, les schémas de base de données (le cas échéant), les spécifications d'interface (API) et potentiellement un pseudocode ou des organigrammes.
4. Conception de base de données (le cas échéant) :
* Activité : Concevoir le schéma de base de données pour stocker et gérer les données de l'application. Cela implique la sélection d'un système de gestion de base de données (SGBD), la définition des tables, les relations entre les tables et les types de données.
* Sortie : Document de conception de schéma de base de données, comprenant des diagrammes Entité-Relation (ERD), des définitions de tables et des dictionnaires de données.
5. Conception de l'interface utilisateur (UI) :
* Activité : Concevoir l'interface utilisateur pour rendre le système facile et intuitif à utiliser. Cela inclut les wireframes, les maquettes et les prototypes. Les tests d'utilisabilité font souvent partie de cette phase.
* Sortie : Spécifications de conception d’interface utilisateur, y compris les wireframes, les maquettes, les prototypes et les guides de style d’interface utilisateur. Des rapports de tests d'utilisabilité peuvent également être inclus.
6. Tests et validation :
* Activité : Vérifier que la conception répond aux exigences et identifier les défauts éventuels. Cela peut impliquer de revoir les documents de conception, d'effectuer des visites guidées et de construire des prototypes à des fins de test.
* Sortie : Plans de test, cas de test et rapports de test détaillant les résultats des activités de test. Cela permet de garantir que la conception est robuste et répond aux exigences spécifiées.
Il est important de noter que les extrants de chaque activité servent d’intrants pour les activités ultérieures. Par exemple, la spécification des exigences éclaire la conception du système, qui éclaire ensuite la conception détaillée. La nature itérative du développement logiciel implique souvent de revisiter les étapes antérieures en fonction des commentaires et des changements apportés au cours des étapes ultérieures.
|