3ISIL Chapitre 1 : Introduction au GL/ concepts de base de l’OO et Modélisation

3ISIL Chapitre 1 : Introduction au GL/ concepts de base de l’OO et Modélisation avec UML GL Chapitre1 : Introduction au GL/ concepts de base de l’approche par objets et la modélisation avec UML 1. Introduction L’informatique s’est glissée dans la plupart de nos activités quotidiennes. Nombreux sont les appareils qui utilisent des applications logicielles et qui deviennent complexes et couteuses avec le temps. La demande de logiciels sophistiqués alourdit considérablement les contraintes imposées aux équipes de développement. Les informaticiens sont confrontés à une complexité croissante, à cause de la nature des applications, des environnements distribués et hétérogènes, de la taille des logiciels, de la composition des équipes de développement, et des attentes des utilisateurs. Pour surmonter ces difficultés, les informaticiens doivent apprendre à faire, à expliquer et à comprendre. C’est pour ces raisons qu’ils ont et auront besoin de méthodes d’analyse et de conception pour leur guider dans les différentes phases de conception. L’approche objet est incontournable dans le cadre du développement de systèmes logiciels complexes, capables de suivre les évolutions incessantes des technologies et des besoins applicatifs que la programmation fonctionnelle. La modélisation apporte une grande rigueur, offre une meilleure compréhension des logiciels, et facilite la comparaison des solutions de conception avant leur développement. Cette étape permet de s’affranchir des langages d’implémentation. Plusieurs méthodes orienté objet sont disponibles qui chacune utilise ses propres notation et spécifications. Une unification des trois méthodes dominantes : Booch, OOSE (Object Oriented Software Engineering), d’Ivan Jacobson et OMT (Object Modeling Technique), de James Rumbaugh, sont à l’origine de la création du langage UML (Unified Modeling Language). Ce chapitre se trouve partagé en quatre parties. Dans la première partie, une introduction au domaine GL est faite. Dans la deuxième méthode, une présentation des méthodes d’analyse et de conception est faite avec des définitions reliées comme la modélisation, le modèle…etc. Dans la troisième partie, une présentation des concepts de base de l’orienté objet et dans la quatrième partie, une introduction au langage de modélisation UML est faite. 2. Introduction au GL 2.1. Définitions Le Génie Logiciel (GL) est un domaine des sciences de l’ingénieur dont l’objet d’étude est la conception, la fabrication, et la maintenance des systèmes informatiques complexes. Le génie logiciel est une branche de l'ingénierie associée au développement de logiciels utilisant des principes, méthodes et procédures scientifiques bien définis. Le résultat de l'ingénierie logicielle est un produit logiciel efficace et fiable. IEEE définit le génie logiciel comme l'application d'une approche systématique, disciplinée et quantifiable au développement, à l'exploitation et à la maintenance des logiciels. Le génie logiciel est considéré comme étant un ensemble d’activités de conception et de mise en œuvre des produits et des procédures tendant à rationaliser (normaliser) la production du logiciel et 3ISIL Chapitre 1 : Introduction au GL/ concepts de base de l’OO et Modélisation avec UML GL Dr. Ouarda ZEDADRA 2 son suivi. Autrement dit, le génie logiciel est l’art de produire de bons logiciels, au meilleur rapport qualité prix. L’objectif du GL est de répondre à un problème qui s’énonçait en deux constatations : 1. D’une part le logiciel n’était pas fiable, 2. De l’autre part, il était incroyablement difficile de réaliser dans des délais prévus des logiciels satisfaisant leur cahier des charges. Crise de l’industrie du logiciel (1970):  L’augmentation des coûts ;  Les difficultés de maintenance et d’évolution ;  La non fiabilité ;  Le non-respect des spécifications ;  Le non-respect des délais. 2.2. Cycle de vie d’un logiciel Le Cycle de vie d’un logiciel (software lifecycle): ensemble d’étapes de développement d’un logiciel de sa conception, sa réalisation, sa maintenance jusqu’à sa disparation. C’est la période de temps s’étalant du début à la fin du processus du logiciel. L’origine du découpage provient du constat que les erreurs ont un coût d’autant plus élevé qu’elles sont détectées tardivement dans le processus de réalisation. Le cycle de vie permet de détecter les erreurs au plus tôt et ainsi de maîtriser la qualité du logiciel, les délais de sa réalisation et les coûts associés. Il existe de nombreux modèles de cycle de vie du développement d’un logiciel. Les plus courants comportent les phases suivantes: 1. Faisabilité: Déterminer si le développement proposé vaut la peine d’être mis en œuvre; 2. Spécifications: déterminer les fonctionnalités que doit assurer le logiciel: 1. Collecte des exigences: obtenir de l’utilisateur ses exigences pour le logiciel 2. Analyse du domaine: déterminer les taches et les structures qui se répètent dans le problème 3. Organisation du projet: déterminer la manière dont développer le logiciel 1. Analyse des couts: établir une estimation du prix du projet 2. Planification: établir un calendrier pour le développement; 3. Assurance qualité du logiciel: déterminer les actions qui permettront de s’assurer de la qualité du produit fini; 4. Répartition des taches: hiérarchiser les taches et sous-taches nécessaires au développement du logiciel; 4. Conception: déterminer la façon dont le logiciel fournit les différentes fonctionnalités recherchées; 1. Conception architecturale: déterminer la structure du système; 2. Conception des interfaces: déterminer la façon dont les différentes parties du système agissent entre elles; 3. Conception détaillée: déterminer les algorithmes pour les différentes parties du système; Qualité d’une conception: 3ISIL Chapitre 1 : Introduction au GL/ concepts de base de l’OO et Modélisation avec UML GL Dr. Ouarda ZEDADRA 3 1. Cohésion: un composant devrait implémenter une seule fonction logique ou une seule entité logique. Elle signifie que chaque unité ne représente qu’une partie de la résolution du problème. Il faut une forte cohésion dans le composant; 2. Couplage: c’est une indication de la force d’interconnexion des différents composants d’un système. En règle générale, des modules sont fortement couplés lorsqu’ils utilisent des variables partagées ou lorsqu’ils échangent des informations de contrôle. Il faut un faible couplage; 3. Compréhensibilité: pour modifier un composant dans une conception, il faut comprendre l’opération effectuée par ce composant; 4. Adaptabilité: si une conception est maintenable a, alors elle est facilement adaptable. Il faut que les composants soient faiblement couplés, la conception doit être bien documentée et la documentation doit être facilement compréhensible et consistante avec l’implémentation et cette dernière doit être écrite de manière lisible; 5. Implémentation: écrire le code du logiciel. La conception détaillée est traduite dans un langage de programmation dans cette phase; 6. Tests: essayer le logiciel sur des données d’exemple pour s’assurer qu’il fonctionne correctement par les développeurs et par le client. Il existe des tests unitaires, et des test d’intégration; 7. Livraison: fournir au client une solution logicielle qui fonctionne correctement (installation, formation et assistance) 8. Maintenance: mettre à jour et améliorer le logiciel pour assurer sa pérennité 1. Corrective: une maintenance qui corrige les erreurs et les défauts d’utilisabilité, de fiabilité…identifie aussi les défaillances et les dysfonctionnements; 2. Adaptative: pour adapter le logiciel à une un nouvel environnement. C’est par exemple le changement de SGBD, de machine…; 3. Perfective et d’extension: pour répondre à des nouveaux besoins… 2.3. Modèles de cycle de vie d’un logiciel 2.3.1. Le modèle séquentiel linéaire (en cascade) C’est la première modélisation d’une suite de taches standard. Le projet est découpé en phases successives dans le temps et à chaque phase correspond une activité principale bien précise produisant un certain nombre de livrables et on ne passe à l’étape suivante que si les résultats de l’étape précédente sont jugés satisfaisants. L’élaboration des spécifications est une phase particulièrement critique, les erreurs de spécifications sont généralement détectées au moment des tests, voire au moment de la livraison du logiciel à l’utilisateur. Leur correction nécessite alors de reprendre toutes les phases du processus. Les interactions ont lieu seulement entre étapes successives: on s’autorise des retours en arrière uniquement sur l’étape précédente. Ce modèle est mieux adapté aux petits projets ou ceux dont les spécifications sont bien connues et fixes. Il existe plusieurs versions de ce modèle, qui ne comprennent pas les mêmes étapes spécifiques du développement, mais qui les regroupent en phases différemment. Vous remarquerez que dans la version présentée, les activités de faisabilité et de planification du projet sont comprises dans la phase d’analyse et de spécification des besoins. 3ISIL Chapitre 1 : Introduction au GL/ concepts de base de l’OO et Modélisation avec UML GL Dr. Ouarda ZEDADRA 4 2.3.2. Le modèle en V Ce modèle précise la conception des tests: – Les tests système sont préparés à partir de la spécification; – Les tests d’intégration sont préparés à partir de la conception architecturale; – Les tests unitaires sont préparés à partir de la conception détaillée des composants. Il est souvent adapté aux projets de taille et de complexité moyenne. Sa première branche correspond à un modèle en cascade classique. La seconde branche correspond à des tests effectifs effectués sur des composants réalisés. 2.3.3. Le modèle par prototypage Des fois il est difficile de dégager correctement les besoins, surtout lorsque l’on connait peu le domaine. Dans ce cas, on ne peut pas espérer de manière réaliste définir les besoins de manière définitive avant le début du développement du logiciel. Lorsqu’il est difficile d’établir une spécification détaillée, on a recours au uploads/Ingenierie_Lourd/ chapitre1-introduction-gl-modelisationoo-uml.pdf

  • 35
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager