Génie logiciel : Conception Orientée Objet avec UML Responsable : Abdelmajid DARGHAM Licence Professionnelle  ABD Semestre...
Chapitre 1 :   Introduction au génie logiciel
Sommaire <ul><li>Caractérisation du logiciel </li></ul><ul><li>Les facteurs de qualité d’un logiciel </li></ul><ul><li>Cyc...
Caractérisation du logiciel <ul><li>Aspects des systèmes informatiques :  </li></ul><ul><ul><li>Matériel  :  </li></ul></u...
Caractérisation du logiciel <ul><li>Matériel informatique :  </li></ul><ul><ul><li>Fabrication  :  </li></ul></ul><ul><ul>...
Caractérisation du logiciel <ul><li>Logiciel informatique :  </li></ul><ul><ul><li>Nature virtuelle  :  </li></ul></ul><ul...
Caractérisation du logiciel <ul><li>La « crise du logiciel » :  </li></ul><ul><ul><li>Étude sur 8 380 projets de fabricati...
Caractérisation du logiciel <ul><li>Le génie logiciel (Software Engineering) :  </li></ul><ul><ul><li>Objectifs  :  </li><...
Les facteurs de qualité d’un logiciel <ul><li>Les facteurs de qualité d’un logiciel :  </li></ul><ul><ul><li>Correction  :...
Les facteurs de qualité d’un logiciel <ul><li>Les facteurs de qualité d’un logiciel :  </li></ul><ul><ul><li>Réutilisabili...
Les facteurs de qualité d’un logiciel <ul><li>Les facteurs de qualité d’un logiciel :  </li></ul><ul><ul><li>Efficacité  :...
Cycle de vie d’un logiciel <ul><li>Utilité du cycle de vie d’un logiciel :  </li></ul><ul><ul><li>Maîtriser le processus d...
Cycle de vie d’un logiciel <ul><li>Étapes du cycle de vie :  </li></ul><ul><ul><li>Étude de faisabilité . </li></ul></ul><...
Cycle de vie d’un logiciel <ul><li>Étapes du cycle de vie :  </li></ul><ul><ul><li>Tests d’intégration  :  </li></ul></ul>...
Cycle de vie d’un logiciel <ul><li>Les deux Types de maintenances :  </li></ul><ul><ul><li>Maintenance corrective  :  </li...
Cycle de vie d’un logiciel <ul><li>Les modèles de cycle de vie du logiciel :  </li></ul><ul><ul><li>Modèle en tunnel  :  <...
Cycle de vie d’un logiciel <ul><li>Les modèles de cycle de vie du logiciel :  </li></ul><ul><ul><li>Modèle itératif  : </l...
Cycle de vie d’un logiciel Modèle en cascade
Cycle de vie d’un logiciel Modèle en V
La modélisation en général <ul><li>Modèles :  </li></ul><ul><ul><li>Définition  : </li></ul></ul><ul><ul><ul><li>Un modèle...
La modélisation en général <ul><li>Modèles :  </li></ul><ul><ul><li>Utilité (suite)  : </li></ul></ul><ul><ul><ul><li>Perm...
La modélisation en général <ul><li>Types de Modélisation :  </li></ul><ul><ul><li>Modélisation à priori  : </li></ul></ul>...
La modélisation en général <ul><li>Types de Modélisation :  </li></ul><ul><ul><li>Modélisation à posteriori  : </li></ul><...
La modélisation en génie logiciel <ul><li>Approches de modélisation pour le logiciel :  </li></ul><ul><ul><li>Approche fon...
La modélisation en génie logiciel <ul><li>Modélisation fonctionnelle :  </li></ul><ul><ul><li>Approche descendante  : </li...
La modélisation en génie logiciel <ul><li>Modélisation fonctionnelle :  </li></ul><ul><ul><li>Avantages  : </li></ul></ul>...
La modélisation en génie logiciel <ul><li>Modélisation orientée objets :  </li></ul><ul><ul><li>Approche fondée sur les ob...
La modélisation en génie logiciel <ul><li>Modélisation orientée objets :  </li></ul><ul><ul><li>Avantages  : </li></ul></u...
La modélisation en génie logiciel <ul><li>Penser et programmer objet :  </li></ul><ul><ul><li>COO & POO  : </li></ul></ul>...
La modélisation en génie logiciel <ul><li>Penser et programmer objet :  </li></ul><ul><ul><li>COO & POO  : </li></ul></ul>...
La modélisation en génie logiciel <ul><li>Utilisation efficace de l’approche objet :  </li></ul><ul><ul><li>Niveau démarch...
La modélisation en génie logiciel <ul><li>Langages de modélisation :  </li></ul><ul><ul><li>Objectifs  : </li></ul></ul><u...
La modélisation en génie logiciel <ul><li>Langages de modélisation :  </li></ul><ul><ul><ul><li>Adaptés aux systèmes à obj...
La modélisation en génie logiciel <ul><li>Langages à objets :  </li></ul><ul><ul><li>Langages de programmation  : </li></u...
Prochain SlideShare
Chargement dans…5
×

Introduction au Génie Logiciel

12 285 vues

Publié le

Ce cours a été réalisé par A. DARGHAM, Professeur à la Faculté des Sciences d'Oujda.

Publié dans : Formation, Voyages, Business
4 commentaires
10 j’aime
Statistiques
Remarques
Aucun téléchargement
Vues
Nombre de vues
12 285
Sur SlideShare
0
Issues des intégrations
0
Intégrations
26
Actions
Partages
0
Téléchargements
515
Commentaires
4
J’aime
10
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Introduction au Génie Logiciel

  1. 1. Génie logiciel : Conception Orientée Objet avec UML Responsable : Abdelmajid DARGHAM Licence Professionnelle ABD Semestre 5 Année universitaire 2009/2010
  2. 2. Chapitre 1 : Introduction au génie logiciel
  3. 3. Sommaire <ul><li>Caractérisation du logiciel </li></ul><ul><li>Les facteurs de qualité d’un logiciel </li></ul><ul><li>Cycle de vie d’un logiciel </li></ul><ul><li>La modélisation en général </li></ul><ul><li>La modélisation en génie logiciel </li></ul>
  4. 4. Caractérisation du logiciel <ul><li>Aspects des systèmes informatiques : </li></ul><ul><ul><li>Matériel : </li></ul></ul><ul><ul><ul><li>Équipements physiques : processeurs, Mémoires, périphériques, …etc. </li></ul></ul></ul><ul><ul><ul><li>Représente 20% du coût global. </li></ul></ul></ul><ul><ul><li>Logiciel : </li></ul></ul><ul><ul><ul><li>Programmes : OS, compilateurs, SGBD, bureautique, gestion, comptabilité, …etc. </li></ul></ul></ul><ul><ul><ul><li>Occupe 80% du coût global. </li></ul></ul></ul>
  5. 5. Caractérisation du logiciel <ul><li>Matériel informatique : </li></ul><ul><ul><li>Fabrication : </li></ul></ul><ul><ul><ul><li>Assurée par quelques fabricants seulement. </li></ul></ul></ul><ul><ul><li>Fiabilité : </li></ul></ul><ul><ul><ul><li>Le matériel est devenu relativement fiable. </li></ul></ul></ul><ul><ul><li>Standardisation : </li></ul></ul><ul><ul><ul><li>Le marché du matériel est standardisé. </li></ul></ul></ul>À notre époque, le matériel ne pose pas de vrais problèmes !!!
  6. 6. Caractérisation du logiciel <ul><li>Logiciel informatique : </li></ul><ul><ul><li>Nature virtuelle : </li></ul></ul><ul><ul><ul><li>Le logiciel est un produit immatériel. </li></ul></ul></ul><ul><ul><li>Nature technique : </li></ul></ul><ul><ul><ul><li>Le logiciel est un objet technique fortement contraint. </li></ul></ul></ul><ul><ul><li>Cycle de production particulier : </li></ul></ul><ul><ul><ul><li>La reproduction ne pose pas de problèmes, seule la première copie a un coût. </li></ul></ul></ul>Les problèmes liés à l’informatique sont essentiellement des problèmes de logiciel !!!
  7. 7. Caractérisation du logiciel <ul><li>La « crise du logiciel » : </li></ul><ul><ul><li>Étude sur 8 380 projets de fabrication de logiciels (Standish Group, 1995) : </li></ul></ul><ul><ul><ul><li>Succès : 16%; </li></ul></ul></ul><ul><ul><ul><li>Problématique : 53% (budget ou délais non respectés, défaut de fonctionnalités); </li></ul></ul></ul><ul><ul><ul><li>Échec : 31% (projets abandonnés). </li></ul></ul></ul>Le taux de succès décroît avec la taille des projets et la taille des entreprises
  8. 8. Caractérisation du logiciel <ul><li>Le génie logiciel (Software Engineering) : </li></ul><ul><ul><li>Objectifs : </li></ul></ul><ul><ul><ul><li>Comment faire des logiciels de qualité ? </li></ul></ul></ul><ul><ul><ul><li>Définir et spécifier les critères de qualité logicielle. </li></ul></ul></ul><ul><ul><ul><li>Maîtriser le processus de fabrication de logiciels. </li></ul></ul></ul>Définition : le génie logiciel regroupe les sciences et les technologies qui permettent la construction de logiciels de qualité.
  9. 9. Les facteurs de qualité d’un logiciel <ul><li>Les facteurs de qualité d’un logiciel : </li></ul><ul><ul><li>Correction : </li></ul></ul><ul><ul><ul><li>Le logiciel assume correctement ses fonctionnalités, comme a été définie par sa spécification. </li></ul></ul></ul><ul><ul><li>Robustesse : </li></ul></ul><ul><ul><ul><li>Le logiciel réagit correctement dans une situation anormale. </li></ul></ul></ul><ul><ul><li>Extensibilité : </li></ul></ul><ul><ul><ul><li>Le logiciel présente une grande facilité d’adaptation aux changements de spécifications. </li></ul></ul></ul>
  10. 10. Les facteurs de qualité d’un logiciel <ul><li>Les facteurs de qualité d’un logiciel : </li></ul><ul><ul><li>Réutilisabilité : </li></ul></ul><ul><ul><ul><li>Les composants du logiciel peuvent très bien servir à la construction de nouveaux logiciels. </li></ul></ul></ul><ul><ul><li>Compatibilité : </li></ul></ul><ul><ul><ul><li>Les éléments du logiciel peuvent être combinés à d’autres sans problèmes. </li></ul></ul></ul><ul><ul><li>Portabilité : </li></ul></ul><ul><ul><ul><li>Le logiciel peut être transféré d’un environnement à un autre. </li></ul></ul></ul>
  11. 11. Les facteurs de qualité d’un logiciel <ul><li>Les facteurs de qualité d’un logiciel : </li></ul><ul><ul><li>Efficacité : </li></ul></ul><ul><ul><ul><li>Le logiciel consomme le minimum de ressources tels que le temps d’exécution, l’espace mémoire, la bande passante du réseau, …etc. </li></ul></ul></ul><ul><ul><li>Facilité d’utilisation : </li></ul></ul><ul><ul><ul><li>Le logiciel présente une grande facilité d’utilisation (installation + apprentissage + pilotage, tous faciles). </li></ul></ul></ul>
  12. 12. Cycle de vie d’un logiciel <ul><li>Utilité du cycle de vie d’un logiciel : </li></ul><ul><ul><li>Maîtriser le processus d’élaboration de logiciel. </li></ul></ul><ul><ul><ul><li>La qualité du processus de fabrication est garante de la qualité du produit. </li></ul></ul></ul><ul><ul><li>Réduire la complexité du logiciel. </li></ul></ul>Définition : le cycle de vie d’un logiciel ( software lifecycle ) regroupe les étapes de production du logiciel, ainsi que leur ordonnancement.
  13. 13. Cycle de vie d’un logiciel <ul><li>Étapes du cycle de vie : </li></ul><ul><ul><li>Étude de faisabilité . </li></ul></ul><ul><ul><li>Analyse et spécification des besoins . </li></ul></ul><ul><ul><li>Conception générale : </li></ul></ul><ul><ul><ul><li>Définir l’architecture globale du logiciel. </li></ul></ul></ul><ul><ul><li>Conception détaillée : </li></ul></ul><ul><ul><ul><li>Déterminer les modules du logiciels. </li></ul></ul></ul><ul><ul><li>Programmation : </li></ul></ul><ul><ul><ul><li>Coder le logiciel (Implémentation). </li></ul></ul></ul><ul><ul><li>Tests unitaires : </li></ul></ul><ul><ul><ul><li>Vérifier le fonctionnement de chaque module. </li></ul></ul></ul>
  14. 14. Cycle de vie d’un logiciel <ul><li>Étapes du cycle de vie : </li></ul><ul><ul><li>Tests d’intégration : </li></ul></ul><ul><ul><ul><li>Vérifier le fonctionnement de l’ensemble des modules. </li></ul></ul></ul><ul><ul><li>Documentation du logiciel : </li></ul></ul><ul><ul><ul><li>Éditer le manuel d’installation et le manuel d’utilisation. </li></ul></ul></ul><ul><ul><li>Distribution du logiciel . </li></ul></ul><ul><ul><li>Maintenance : </li></ul></ul><ul><ul><ul><li>Définir les éléments du logiciel à maintenir. </li></ul></ul></ul>
  15. 15. Cycle de vie d’un logiciel <ul><li>Les deux Types de maintenances : </li></ul><ul><ul><li>Maintenance corrective : </li></ul></ul><ul><ul><ul><li>Maintenir pour corriger certaines lacunes dans le logiciel. </li></ul></ul></ul><ul><ul><li>Maintenance évolutive : </li></ul></ul><ul><ul><ul><li>Maintenir pour faire évoluer certaines fonctionnalité du logiciel. </li></ul></ul></ul>
  16. 16. Cycle de vie d’un logiciel <ul><li>Les modèles de cycle de vie du logiciel : </li></ul><ul><ul><li>Modèle en tunnel : </li></ul></ul><ul><ul><ul><li>Absence de modèle de développement. </li></ul></ul></ul><ul><ul><li>Modèle en cascade : </li></ul></ul><ul><ul><ul><li>L’enchaînement des étapes est linéaire. Chaque étape ne commence que lorsque l’étape précédente est terminée. </li></ul></ul></ul><ul><ul><li>Modèle en V : </li></ul></ul><ul><ul><ul><li>À chaque étape correspond une étape de test spécifique. </li></ul></ul></ul><ul><ul><ul><li>Les tests peuvent être définis avant les phases de test. </li></ul></ul></ul>
  17. 17. Cycle de vie d’un logiciel <ul><li>Les modèles de cycle de vie du logiciel : </li></ul><ul><ul><li>Modèle itératif : </li></ul></ul><ul><ul><ul><li>On commence par développer un sous-ensemble des fonctionnalités (noyau du logiciel) de manière linéaire (en cascade). </li></ul></ul></ul><ul><ul><ul><li>On itère un modèle linéaire pour développer incrémentalement de plus en plus de fonctionnalités, jusqu’à achèvement du projet. </li></ul></ul></ul>
  18. 18. Cycle de vie d’un logiciel Modèle en cascade
  19. 19. Cycle de vie d’un logiciel Modèle en V
  20. 20. La modélisation en général <ul><li>Modèles : </li></ul><ul><ul><li>Définition : </li></ul></ul><ul><ul><ul><li>Un modèle est une représentation abstraite de la réalité qui exclut certains détails du monde réel. </li></ul></ul></ul><ul><ul><li>Utilité : </li></ul></ul><ul><ul><ul><li>Reflète ce que le concepteur croit important pour la compréhension et la prédiction du phénomène modélisé, les limites du phénomène modélisé dépendent des objectifs du modèle. </li></ul></ul></ul>
  21. 21. La modélisation en général <ul><li>Modèles : </li></ul><ul><ul><li>Utilité (suite) : </li></ul></ul><ul><ul><ul><li>Permet de réduire la complexité d’un phénomène en éliminant les détails qui n’influencent pas son comportement de manière significative. </li></ul></ul></ul><ul><li>Modélisation : </li></ul><ul><ul><li>Définition : </li></ul></ul><ul><ul><ul><li>Processus par lequel on arrive à élaborer un modèle décrivant un système réel (ou un phénomène du monde réel). </li></ul></ul></ul>
  22. 22. La modélisation en général <ul><li>Types de Modélisation : </li></ul><ul><ul><li>Modélisation à priori : </li></ul></ul><ul><ul><ul><li>Modéliser un système avant sa réalisation (le système n’existe pas encore). </li></ul></ul></ul><ul><ul><ul><li>Objectifs : </li></ul></ul></ul><ul><ul><ul><ul><li>Comprendre le fonctionnement du future système. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Mesurer et Maîtriser sa complexité. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Assurer sa cohérence. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Pouvoir communiquer au sein de l’équipe de réalisation. </li></ul></ul></ul></ul>
  23. 23. La modélisation en général <ul><li>Types de Modélisation : </li></ul><ul><ul><li>Modélisation à posteriori : </li></ul></ul><ul><ul><ul><li>Modéliser un système après sa réalisation (le système existe déjà). </li></ul></ul></ul><ul><ul><ul><li>Objectifs : </li></ul></ul></ul><ul><ul><ul><ul><li>Corriger les erreurs dans l’ancien système. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Faire évoluer l’ancien système. </li></ul></ul></ul></ul>
  24. 24. La modélisation en génie logiciel <ul><li>Approches de modélisation pour le logiciel : </li></ul><ul><ul><li>Approche fonctionnelle : </li></ul></ul><ul><ul><ul><li>Approche traditionnelle basée sur l’utilisation des procédures et des fonctions. </li></ul></ul></ul><ul><ul><ul><li>Les grands programmes sont décomposés en sous-programmes. </li></ul></ul></ul><ul><ul><li>Approche orientée objets : </li></ul></ul><ul><ul><ul><li>On identifie les éléments du système et on en fait des objets. </li></ul></ul></ul><ul><ul><ul><li>On cherche à faire collaborer ces objets pour qu’ils accomplissent la tâche voulue. </li></ul></ul></ul>
  25. 25. La modélisation en génie logiciel <ul><li>Modélisation fonctionnelle : </li></ul><ul><ul><li>Approche descendante : </li></ul></ul><ul><ul><ul><li>La modélisation du système se base sur les fonctions, et non pas sur les objets. </li></ul></ul></ul><ul><ul><ul><li>On commence par déterminer la fonction globale du système. </li></ul></ul></ul><ul><ul><ul><li>Puis, on décompose la fonction globale du système en plusieurs sous-fonctions jusqu’à obtenir des fonctions élémentaires simples à programmer. </li></ul></ul></ul><ul><ul><ul><li>Il s’agit d’une démarche descendante . </li></ul></ul></ul>
  26. 26. La modélisation en génie logiciel <ul><li>Modélisation fonctionnelle : </li></ul><ul><ul><li>Avantages : </li></ul></ul><ul><ul><ul><li>Adéquate pour les petits logiciels et les système peu complexes. </li></ul></ul></ul><ul><ul><ul><li>Démarche ordonnée et organisée. </li></ul></ul></ul><ul><ul><li>Inconvénients : </li></ul></ul><ul><ul><ul><li>Pose des problèmes de structuration de données, car elle est orientée fonctions. </li></ul></ul></ul><ul><ul><ul><li>Produit des logiciels non réutilisables. </li></ul></ul></ul><ul><ul><ul><li>Produit des logiciels très difficile à les faire évoluer ou corriger. </li></ul></ul></ul>
  27. 27. La modélisation en génie logiciel <ul><li>Modélisation orientée objets : </li></ul><ul><ul><li>Approche fondée sur les objets : </li></ul></ul><ul><ul><ul><li>Le modèle à produire est décrit en terme d’objets et non pas en terme de fonctions. </li></ul></ul></ul><ul><ul><ul><li>On peut partir des objets du domaine (briques de base) et remonter vers le système global. </li></ul></ul></ul><ul><ul><ul><li>On défini également les interactions et les collaborations entre les objets du système. </li></ul></ul></ul><ul><ul><ul><li>Il s’agit essentiellement d’une approche ascendante . </li></ul></ul></ul>
  28. 28. La modélisation en génie logiciel <ul><li>Modélisation orientée objets : </li></ul><ul><ul><li>Avantages : </li></ul></ul><ul><ul><ul><li>Démarche naturelle et logique. </li></ul></ul></ul><ul><ul><ul><li>Raisonnement par abstraction sur les objets du domaine. </li></ul></ul></ul><ul><ul><li>Inconvénients : </li></ul></ul><ul><ul><ul><li>Parfois moins intuitive que l’approche fonctionnelle. </li></ul></ul></ul><ul><ul><ul><li>Rien dans les concepts de base objets ne précise comment modéliser la structure objet d’un système de manière pertinente. </li></ul></ul></ul>
  29. 29. La modélisation en génie logiciel <ul><li>Penser et programmer objet : </li></ul><ul><ul><li>COO & POO : </li></ul></ul><ul><ul><ul><li>La conception objet doit être dissociée de la programmation objet. </li></ul></ul></ul><ul><ul><ul><ul><li>Les langages à objets ne présentent que des manières particulières d’implémenter certains concepts. Ils ne valident en rien la conception. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Il est même possible de concevoir objet et de coder en fonctionnelle (Langage C, par exemple). </li></ul></ul></ul></ul>
  30. 30. La modélisation en génie logiciel <ul><li>Penser et programmer objet : </li></ul><ul><ul><li>COO & POO : </li></ul></ul><ul><ul><ul><li>Connaître des langages de programmation objet comme C++ ou Java n’est pas suffisant. </li></ul></ul></ul><ul><ul><ul><ul><li>Il faut savoir s’en servir en utilisant un moyen de modélisation, d’analyse et de conception objet. </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Sans les langages de haut niveau (donc de modélisation), il est difficile de comparer plusieurs solutions de modélisation objet. </li></ul></ul></ul></ul>
  31. 31. La modélisation en génie logiciel <ul><li>Utilisation efficace de l’approche objet : </li></ul><ul><ul><li>Niveau démarche de modélisation : </li></ul></ul><ul><ul><ul><li>Il faut suivre une démarche d’analyse et de conception objet. </li></ul></ul></ul><ul><ul><ul><ul><li>Ne pas effectuer une analyse fonctionnelle, et se contenter d’une implémentation objet. </li></ul></ul></ul></ul><ul><ul><li>Niveau langage de modélisation : </li></ul></ul><ul><ul><ul><li>Il faut utiliser un langage de modélisation qui permet de représenter les concepts abstraits, de limiter les ambiguïtés et de faciliter l’analyse. </li></ul></ul></ul>
  32. 32. La modélisation en génie logiciel <ul><li>Langages de modélisation : </li></ul><ul><ul><li>Objectifs : </li></ul></ul><ul><ul><ul><li>Définir la sémantique des concepts. </li></ul></ul></ul><ul><ul><ul><li>Définir une notation pour la représentation des concepts. </li></ul></ul></ul><ul><ul><ul><li>Définir des règles d’utilisation des concepts et de construction. </li></ul></ul></ul><ul><ul><li>Langages de modélisation : </li></ul></ul><ul><ul><ul><li>Adaptés aux système procéduraux (MERISE, …). </li></ul></ul></ul><ul><ul><ul><li>Adaptés aux systèmes temps réel (ROOM, SADT, …). </li></ul></ul></ul>
  33. 33. La modélisation en génie logiciel <ul><li>Langages de modélisation : </li></ul><ul><ul><ul><li>Adaptés aux systèmes à objets (OMT, Booch, UML, …). </li></ul></ul></ul><ul><ul><li>Ateliers de génie logiciel : </li></ul></ul><ul><ul><ul><li>Présenter des outils pour la modélisation. </li></ul></ul></ul><ul><ul><ul><li>Le rôle de ces outils est primordial pour l’utilisabilité en pratique des langages de </li></ul></ul></ul>
  34. 34. La modélisation en génie logiciel <ul><li>Langages à objets : </li></ul><ul><ul><li>Langages de programmation : </li></ul></ul><ul><ul><ul><li>SIMULA (1967). </li></ul></ul></ul><ul><ul><ul><li>Smalltalk (1972). </li></ul></ul></ul><ul><ul><ul><li>C++ (1985). </li></ul></ul></ul><ul><ul><ul><li>JAVA (1995). </li></ul></ul></ul><ul><ul><li>Méthodes de modélisation : </li></ul></ul><ul><ul><ul><li>OMT : Object Modeling Technique. </li></ul></ul></ul><ul><ul><ul><li>OOSE : Object Oriented System and Engineering. </li></ul></ul></ul>

×