Introduction : L’objectif de la phase de conception dans le cycle de vie du développement logiciel est de produire une solution à un problème donné dans le document SRS(Software Requirement Specification). Le résultat de la phase de conception est le document de conception logicielle (SDD).
Basiquement, la conception est un processus itératif en deux parties. La première partie est la conception conceptuelle qui indique au client ce que le système fera. La seconde est la conception technique qui permet aux constructeurs du système de comprendre le matériel et le logiciel réels nécessaires pour résoudre le problème du client.
La conception conceptuelle du système :
- Ecrit dans un langage simple c’est-à-dire un langage compréhensible par le client.
- Explication détaillée des caractéristiques du système.
- Décrit la fonctionnalité du système.
- Il est indépendant de la mise en œuvre.
- Liée au document d’exigences.
Conception technique du système:
- Composant matériel et conception.
- Fonctionnalité et hiérarchie du composant logiciel.
- Architecture logicielle
- Architecture de réseau
- Structure et flux de données.
- Composant E/S du système.
- Montre l’interface.
Modularisation : La modularisation est le processus de division d’un système logiciel en plusieurs modules indépendants où chaque module fonctionne indépendamment. Il existe de nombreux avantages de la modularisation dans le génie logiciel. Certains d’entre eux sont donnés ci-dessous :
- Facile à comprendre le système.
- La maintenance du système est facile.
- Un module peut être utilisé plusieurs fois selon leurs besoins. Pas besoin de l’écrire encore et encore.
Couplage : Le couplage est la mesure du degré d’interdépendance entre les modules. Un bon logiciel aura un faible couplage.
Types de couplage:
- Couplage de données : Si la dépendance entre les modules est basée sur le fait qu’ils communiquent en ne passant que des données, alors les modules sont dits couplés aux données. Dans le couplage de données, les composants sont indépendants les uns des autres et communiquent par le biais de données. Les communications entre modules ne contiennent pas de données de traçage. Exemple-système de facturation des clients.
- Couplage par timbre Dans le couplage par timbre, la structure de données complète est transmise d’un module à un autre module. Par conséquent, il implique des données de tramp. Il peut être nécessaire en raison de facteurs d’efficacité – ce choix est fait par le concepteur perspicace, pas par un programmeur paresseux.
- Couplage de contrôle : Si les modules communiquent en passant des informations de contrôle, alors on dit qu’ils sont couplés au contrôle. Cela peut être mauvais si les paramètres indiquent un comportement complètement différent et bon si les paramètres permettent la factorisation et la réutilisation de la fonctionnalité. Exemple- fonction de tri qui prend la fonction de comparaison comme argument.
- Couplage externe : Dans le couplage externe, les modules dépendent d’autres modules, externes au logiciel développé ou à un type de matériel particulier. Ex- protocole, fichier externe, format de périphérique, etc.
- Couplage commun : Les modules ont des données partagées comme les structures de données globales.Les modifications des données globales impliquent de remonter à tous les modules qui accèdent à ces données pour évaluer l’effet de la modification. Donc, il a obtenu des inconvénients comme la difficulté de réutiliser les modules, la capacité réduite de contrôler les accès aux données et la maintenabilité réduite.
- Couplage de contenu : Dans un couplage de contenu, un module peut modifier les données d’un autre module ou le flux de contrôle est passé d’un module à l’autre module. C’est la pire forme de couplage et elle doit être évitée.
Cohésion : La cohésion est une mesure du degré auquel les éléments du module sont fonctionnellement liés. C’est le degré auquel tous les éléments dirigés vers l’exécution d’une seule tâche sont contenus dans le composant. En fait, la cohésion est la colle interne qui maintient l’unité du module. Une bonne conception de logiciel aura une cohésion élevée.
Types de cohésion:
- Cohésion fonctionnelle : Chaque élément essentiel pour un seul calcul est contenu dans le composant. Une cohésion fonctionnelle exécute la tâche et les fonctions. C’est une situation idéale.
- Cohésion séquentielle : Un élément sort certaines données qui deviennent l’entrée d’un autre élément, c’est-à-dire un flux de données entre les parties. Elle se produit naturellement dans les langages de programmation fonctionnelle.
- Cohésion communicationnelle : Deux éléments opèrent sur les mêmes données d’entrée ou contribuent vers les mêmes données de sortie. Exemple- mettre à jour un enregistrement dans la base de données et l’envoyer à l’imprimante.
- Cohésion procédurale : Les éléments de la cohésion procédurale assurent l’ordre d’exécution. Les actions sont encore faiblement connectées et peu susceptibles d’être réutilisables. Ex- calculer la moyenne générale de l’élève, imprimer la fiche de l’élève, calculer la moyenne générale cumulée, imprimer la moyenne générale cumulée.
- Cohésion temporelle : Les éléments sont reliés par leur timing impliqué. Un module relié par une cohésion temporelle toutes les tâches doivent être exécutées dans le même laps de temps. Cette cohésion contient le code d’initialisation de toutes les parties du système. Beaucoup d’activités différentes se produisent, toutes au temps init.
- Cohésion logique : Les éléments sont liés logiquement et non fonctionnellement. Ex- Un composant lit les entrées de la bande, du disque et du réseau. Tout le code de ces fonctions se trouve dans le même composant. Les opérations sont liées, mais les fonctions sont sensiblement différentes.
- Cohésion coïncidente : Les éléments ne sont pas liés(non liés). Les éléments n’ont aucune relation conceptuelle autre que l’emplacement dans le code source. C’est accidentel et la pire forme de cohésion. Ex- imprimer la ligne suivante et inverser les caractères d’une chaîne de caractères dans un seul composant.
Attention lecteur ! N’arrêtez pas d’apprendre maintenant. Mettez la main sur tous les concepts importants de la théorie CS pour les entretiens SDE avec le cours de théorie CS à un prix adapté aux étudiants et devenez prêt pour l’industrie.