La conception d’un système implique la création d’une conception de haut niveau (High Level Design – HLD), qui ressemble à une feuille de route montrant le plan global, et d’une conception de bas niveau (Low-Level Design – LLD), qui est un guide détaillé pour les programmeurs sur la façon de construire chaque partie.
Cela garantit un projet bien organisé et fonctionnant sans problème. La conception de haut niveau et la conception de bas niveau sont les deux principaux aspects de la conception d’un système.
La conception d’un système définit l’architecture, les composants, les modules, les interfaces et les données d’un système pour répondre à des exigences spécifiques. Elle implique une conception de haut et de bas niveau et constitue une phase cruciale du cycle de vie de développement des systèmes logiciels.
Les aspects clés de la conception du système :
- Architecture : établit la structure et l’organisation globale du système, définissant comment les différents composants interagissent.
- Composants : identifie et spécifie les différentes parties du système, y compris les modules logiciels et les éléments matériels.
- Interfaces : définit comment les différents composants communiquent et interagissent entre eux et avec des systèmes externes.
- Flux de données : décrit la manière dont les données circulent dans le système et entre les composants, garantissant ainsi une gestion et un stockage appropriés des données.
- Pile technologique : choisit les technologies, les cadres et les outils appropriés qui seront utilisés dans le développement et le déploiement du système.
- Exigences non fonctionnelles : traitent des performances, de l’évolutivité, de la sécurité, de la fiabilité et d’autres qualités qui affectent la convivialité et l’efficacité du système.
- Expérience utilisateur (UX) : Considère la manière dont les utilisateurs interagiront avec le système, en se concentrant sur la convivialité et l’accessibilité.
Qu’est-ce que la conception de haut niveau (HLD) ?
La conception de haut niveau ou HLD fait référence au système global, une conception qui consiste en une description de l’architecture et de la conception du système et est une conception de système générique qui comprend :
- Architecture du système.
- Conception de base de données.
- Brève description des systèmes, des services, des plateformes et des relations entre les modules.
Un diagramme représentant chaque aspect de la conception est inclus dans le HLD (qui est basé sur les exigences commerciales et les résultats anticipés).
- Il contient une description du matériel, des interfaces logicielles et également des interfaces utilisateur.
- On l’appelle également conception de niveau macro/système.
- Il est créé par un architecte de solutions.
- Le flux de travail du processus typique de l’utilisateur est détaillé dans le HLD, ainsi que les spécifications de performances.
Le HLD décrit l’architecture globale et les principaux composants qui constitueront le système. Il se concentre sur ce que le système fera et sur la façon dont les composants interagissent les uns avec les autres.
Les aspects clés de la conception haut niveau :
- Présentation de l’architecture : définit l’architecture du système, y compris les logiciels et le matériel.
- Modules clés : répertorie les principaux modules et leurs interactions.
- Flux de données : cela décrit le flux de données entre différents modules et systèmes.
- Interfaces : détaille les interfaces externes, y compris les API et les protocoles de communication.
- Intégration système : explique comment différents systèmes et sous-systèmes s’intégreront.
- Pile technologique : spécifie les technologies, les plates-formes et les frameworks à utiliser.
- Exigences non fonctionnelles : couvrent des aspects tels que les performances, l’évolutivité, la fiabilité et la sécurité.
Le document HLD comprend généralement des diagrammes tels que des diagrammes de contexte système, des diagrammes de composants et des diagrammes d’interaction.
Qu’est-ce que la conception de bas niveau (LLD) ?
Le LLD, ou Low-Level Design , est une phase du processus de développement logiciel où les composants détaillés du système et leurs interactions sont spécifiés.
- Il décrit en détail chaque module, ce qui signifie qu’il inclut la logique réelle de chaque composant du système et qu’il approfondit les spécifications de chaque module.
- On l’appelle également conception micro-niveau/détaillée.
- Il est créé par des designers et des développeurs.
- Il s’agit de convertir la conception de haut niveau en un plan plus détaillé, abordant des algorithmes, des structures de données et des interfaces spécifiques.
- Le LLD sert de guide aux développeurs lors du codage, garantissant la mise en œuvre précise et efficace des fonctionnalités du système.
Le LLD se concentre sur les détails internes des composants et des modules identifiés dans le HLD. Il décrit comment chaque composant sera implémenté.
Les aspects clés de la conception bas niveau :
- Conception détaillée des composants : spécifie la conception des composants et modules individuels en détail.
- Diagrammes de classes : définissent les classes, les méthodes, les attributs et les relations.
- Conception de la base de données : détaille le schéma de la base de données, y compris les tables, les index et les relations.
- Algorithmes et logique : spécifie les algorithmes, les structures de données et la logique détaillée des fonctionnalités du système.
- Diagrammes d’état : cela décrit les transitions d’état pour les composants dépendants de l’état.
- Conception de l’interface utilisateur : fournit des maquettes fonctionnelles (wireframes) ou des prototypes d’interfaces utilisateur, le cas échéant.
- Gestion des erreurs et journalisation : décrit les stratégies de gestion des erreurs et de journalisation des événements.
Le document LLD comprend des diagrammes de classes, des diagrammes de séquence, des diagrammes d’état et des descriptions détaillées de la conception et de la mise en œuvre.
Différence entre conception haut niveau et bas niveau :
La différence entre conception haut niveau (HLD) et conception bas niveau (LLD) peut se résumer à 3 critères :
- Champ d’application : Le HLD couvre l’architecture globale du système, tandis que le LLD se penche sur la conception détaillée des composants individuels.
- Niveau d’abstraction : Le HLD est plus abstrait et conceptuel, alors que le LLD est détaillé et spécifique.
- Public cible : Le HLD est souvent destiné aux parties prenantes et aux chefs de projet pour comprendre l’architecture du système, tandis que le LLD est destiné aux développeurs et aux ingénieurs qui mettront en œuvre le système.
CONCEPTION DE HAUT NIVEAU | CONCEPTION DE BAS NIVEAU |
---|---|
La conception de haut niveau est la conception générale du système, ce qui signifie qu’elle fait référence à la conception globale du système. | La conception de bas niveau est similaire aux détails HLD, ce qui signifie qu’elle fait référence au processus de conception au niveau des composants. |
On l’appelle également conception de niveau macro/système. | On l’appelle également conception micro-niveau/détaillée. |
En outre, elle décrit la description/architecture globale de l’application. | Elle décrit en détail chaque module. |
La conception de haut niveau exprime la fonctionnalité brève de chaque module. | La conception de bas niveau exprime les détails de la logique fonctionnelle du module. |
Elle est créé par un architecte de solutions. | Elle est créé par des designers et des développeurs. |
Ici, dans le High Level Design, les participants sont l’équipe de conception, l’équipe de révision et l’équipe client. | Ici, dans la conception de bas niveau, les participants sont l’équipe de conception, les équipes d’exploitation et les responsables de la mise en œuvre. |
Il est créé en premier lieu avant la conception de bas niveau. | Il est créé en deuxième lieu après le High Level Design. |
Dans le HLD, le critère d’entrée est la spécification des exigences logicielles (Software Requirement Specification – SRS). | Dans le LLD, les critères d’entrée sont examinés dans le cadre de la conception de haut niveau (HLD). |
La solution de haut niveau convertit l’exigence commerciale/client en une solution de haut niveau. | La conception de bas niveau convertit la solution de haut niveau en une solution détaillée. |
Dans le HLD, les critères de sortie sont la conception de la base de données, la conception fonctionnelle et l’enregistrement de la révision. | Dans le LLD, les critères de sortie sont la spécification du programme et le plan de test unitaire. |
En conclusion
Les documents de conception de haut niveau sont comme des plans d’ensemble qui aident les chefs de projet et les architectes à comprendre comment un système fonctionnera et les documents de conception de bas niveau sont plus détaillés et sont conçus pour les programmeurs.
- Ils montrent exactement comment écrire le code et faire en sorte que les différentes parties du système s’assemblent. Ces deux documents sont importants pour les différentes personnes impliquées dans la création et la maintenance du logiciel.
- Créer une conception de haut niveau revient à élaborer un grand plan pour le logiciel et permet de détecter les problèmes le plus tôt possible, afin de mieux garantir la qualité du logiciel.
- D’autre part, lorsque la conception de bas niveau est bien documentée, il est plus facile pour les autres de vérifier le code et de garantir sa qualité lors de l’écriture réelle du logiciel.
Ces deux étapes permettent de détecter et de résoudre les problèmes le plus tôt possible, ce qui rend le processus global de développement logiciel plus fluide et plus fiable.