Conception et Architecture des Systèmes Logiciels
Classé dans Informatique
Écrit le en
français avec une taille de 8,4 KB
Modèle de conception des systèmes structurés
C'est le processus consistant à décider quels composants utiliser, ainsi que l'interconnexion entre eux, pour résoudre un problème bien déterminé.
Les différents types de conception
- Conception des données : elle transforme le modèle du domaine de l'information, créé lors de l'analyse, en structures de données qui seront nécessaires pour mettre en œuvre le logiciel.
- Conception de la structure : elle définit les relations entre les éléments structurels principaux du programme. Le principal objectif de la conception de la structure est de développer une structure de programme modulaire et de représenter les relations de contrôle entre les modules.
- Conception de la procédure : elle transforme les éléments structurels en une description de la procédure du logiciel. La conception de procédure est effectuée après avoir établi la structure du programme et des données. Elle définit les algorithmes de traitement nécessaires.
L'importance de la conception
L'importance de la conception de logiciels peut se résumer en un seul mot : la qualité.
Le design est le processus sous-jacent à la qualité du développement logiciel. La conception produit des représentations d'un logiciel qui permettent d'évaluer leur qualité.
Les structures de conception tendent à transformer le développement de logiciels d'une pratique traditionnelle vers une discipline d'ingénierie : efficacité, flexibilité, maintenabilité, modifiabilité, gouvernance et utilité.
Conception du système
La conception du système est la stratégie de haut niveau pour résoudre les problèmes et construire une solution. Elle implique de prendre les décisions suivantes :
- Organiser le système en sous-systèmes ;
- Identifier la concurrence inhérente au problème ;
- Affecter les sous-systèmes aux processeurs et aux tâches ;
- Gérer l'accès aux ressources mondiales ;
- Sélectionner le déploiement des logiciels de contrôle ;
- Gérer les conditions aux limites et les priorités de compensation en place.
Modélisation et conception orientée objet
La modélisation et conception orientée objet est basée sur la réflexion sur les problèmes à résoudre en utilisant des modèles organisés sur la base de concepts du monde réel.
- Modèle d'objet : décrit la structure de données des objets et leurs relations.
- Modèle dynamique : décrit les aspects du comportement d'un changement de système au fil du temps.
- Composant : morceau de code pré-emballé qui encapsule des fonctionnalités exposées par le biais d'interfaces standard.
Avantages du paradigme orienté objet
L'utilisation de ce paradigme présente certains avantages :
- La réutilisation du logiciel : elle conduit à une augmentation du niveau de réutilisation du logiciel.
- Simplification des tests : elle permet d'effectuer des tests sur chacun des composants avant de tester l'ensemble des éléments assemblés.
- Simplification de la maintenance du système : grâce à un couplage faible entre les composants, le responsable du projet (RDP) est libre de mettre à jour et/ou d'ajouter des composants, au besoin, sans affecter d'autres parties du système.
- Qualité supérieure : puisqu'un composant peut être construit et constamment amélioré par un expert ou un organisme, la qualité de l'application à base de composants s'améliorera au fil du temps.
L'architecture logicielle
L'architecture logicielle est l'organisation fondamentale d'un système formé par ses composants, leurs relations et le contexte dans lequel il est mis en œuvre, ainsi que les principes directeurs de sa conception et de son évolution.
Son objectif est de fournir des éléments qui aident à la prise de décision et, en même temps, de fournir un langage et des concepts communs permettant la communication entre les équipes participant à un projet.
Les modèles ou les vues
- Vision statique : décrit quels sont les éléments d'architecture.
- Vision fonctionnelle : décrit ce que fait chaque composant.
- Vision dynamique : décrit comment les composants se comportent dans le temps et comment ils interagissent.
Architectures communes
- Structure monolithique : où le logiciel est composé de groupes fonctionnels très liés.
- Client-Serveur : lorsque le logiciel partage la charge de calcul en deux parties distinctes, mais sans attribution claire des rôles.
- Architecture à trois couches : spécialisation de l'architecture client-serveur où la charge est divisée en trois parties (ou couches) avec une répartition claire des fonctions : une couche de présentation (interface utilisateur), une pour le calcul (modélisation métier) et une pour le stockage (persistance). Une couche ne communique qu'avec la suivante.
Conception d'interface et de base de données
Le User Interface Design est la conception d'applications, de machines, d'appareils de communication mobiles, de logiciels et de sites Web axés sur l'expérience utilisateur et l'interaction.
Le Database Design peut être assez complexe, mais avec quelques règles simples, il sera beaucoup plus facile de créer une base de données parfaite pour notre prochain projet.
Processus de conception et contrôles
Il s'agit de la préparation adéquate des données ou des éléments de base de l'information et de leur traitement par des règles et procédures pour effectuer diverses opérations (calculs).
Le contrôle inclut les essais, l'inspection, la vérification, le contrôle de gestion et la régulation d'un phénomène (processus, activités).
Les métriques logicielles
Une métrique est un instrument qui permet de quantifier un critère. Elles nous aident à comprendre les processus techniques utilisés pour développer un produit, ainsi que le produit lui-même.
- Les mesures indirectes : elles concernent la fonctionnalité, la qualité, la complexité, l'efficacité, la fiabilité, la facilité d'entretien, etc.
- Les paramètres du logiciel : ce sont ceux associés au développement des fonctionnalités du logiciel, à sa complexité et à son efficacité.
- Métriques techniques : elles se concentrent sur les caractéristiques du logiciel. Elles mesurent la structure du système et la façon dont il est fait.
- Métriques de qualité : elles fournissent une indication de la façon dont le logiciel s'ajuste aux exigences explicites et implicites du client.
- Métriques de productivité : elles mettent l'accent sur la performance du processus de génie logiciel. C'est la mesure de la productivité du logiciel que je conçois.
- Métriques orientées personne : elles fournissent des informations sur la façon dont les gens développent des logiciels et, en particulier, sur l'efficacité des outils et des méthodes du point de vue humain. Ce sont des mesures effectuées sur le personnel qui réalise le système.
- Métriques de taille : elles permettent de savoir à quel moment le logiciel sera terminé et le nombre de personnes nécessaires. Ce sont des mesures directes pour le logiciel et le processus par lequel il se développe, si une organisation logicielle conserve des dossiers simples.
- Métriques axées sur la fonction : ce sont des mesures indirectes du logiciel et du processus par lequel il se développe. Au lieu de calculer les lignes de code, elles se concentrent sur la fonctionnalité ou l'utilisation du programme.
L'un des inconvénients des métriques est qu'il n'existe pas de critères généralement reconnus pour le régime d'évaluation.