Upload
gilbertine-marquis
View
112
Download
0
Embed Size (px)
Citation preview
Cycle d’Ingénieurs en GI – 2ème Année
Module: Conception Orientée Objet
Enseignant Responsable:
Slim KANOUN
Maître Assistant au DGIMA - ENIS
Chapitre I :
Introduction au Génie Logiciel
I.1 Notion de Processus de développement de logiciels / Notion de Cycle de vie de logiciels
I.2 Notion de Méthode d’Analyse et de Conception
I.3 Notion d’Approche de Développement de Logiciels
I.4 Architectures Logicielles et SGBD
I.5 Outils Case (Computer Aided Software Engineering)
I.6 Culture générale, Connaissances, Compétences et expériences en informatique pour l’ingénieur
I.1 Notion de Processus de développement de logiciels / Notion de Cycle de vie de logiciels
Expression des besoins
Spécification
Analyse
Conception
Implémentation
Test de Vérification
Validation
Maintenance et Evolution
Documentation et Archivage
Expression des besoinsUne organisation cherche à mettre en place une solution informatique pour l’une de ses Expertises métiers (Applications) : Gestion Comptable, Gestion Financière, Gestion Commerciale, Gestion de Ressources Humaines, Gestion d’un Hôpital, Gestion d’un Hôtel, Gestion de Production, Gestion d’Agences (de Voyages, Locations de Voitures, Immobilières, etc), Gestion d’une Compagnie d’Assurance, Gestion d’Institutions Universitaires, Gestion d’Auto-Ecole, Gestion de Pharmacie, Gestion de Chantiers, etc.
Comment Faire ?
Expression des besoinsFaire appel soit à une Société de Service en Ingénierie Informatique (SSII) ou au Service Informatique (SI) de l’organisation concernée.
Une équipe d’Informaticiens ayant des diplômes suivants sera sollicitée :
• Ingénieurs (Chefs de projet – Bac + 5 ou Bac + 6)
• Maîtrises (Analystes / Programmeurs – Bac + 4)
• Licences et Techniciens (Programmeurs – Bac + 3)
Expression des besoinsDes dialogues, des discussions, des entrevues, des réunions, des interviews … seront ainsi effectués entre:
Les membres de l’équipe d’Informaticiens
+
Les Experts Métiers
Expression des besoinsIdentifier :1. Les problèmes (retards de livraison de
marchandises, erreurs de calcul au niveau des factures, augmentation considérable du volume de données à gérer, passage du mono-utilisateur au multi-utilisateurs, etc)
2. Les besoins (éliminer les retards, éliminer les erreurs de calcul, migrer vers un environnement multi-Utilisateurs, etc)
3. Les objectifs (améliorer la qualité du service et l’image de marque, diminuer le nombre d’employés et par conséquent les salaires à payer, etc)
Expression des besoinsAnalyser :
1. Les moyens humains en terme de connaissances, compétences et expériences, années de formation des cadres informaticiens, etc, si l’organisation concernée dispose d’un Service Informatique
2. Les moyens matériels (bilan des machines PC en terme de mémoires RAM et de processeurs, bilan des machines serveurs, bilan des réseaux, etc)
3. les moyens financiers en terme d’argents associés à la mise en place de la solution informatique
Expression des besoinsIl faudra aussi que l’équipe d’informaticiens soit au courant de tous les progiciels proposés par les SSII qui représentent des solutions informatiques pour l’expertise métier en question
Proposer des Recommandations (Solutions informatiques + Conseils) :
- Développer sur mesure (Logiciel) au sein de l’entreprise ou par une SSII ?
- Acheter de la part des SSII (progiciel) ? Avec Adaptation ou Sans Adaptation ?
Expression des besoinsExemples de recommandations:
Recommandation 1: Développer sur mesure au sein du SI de l’organisation concernée: Prix nécessaire ? Durée prévue ? Technologies à utiliser ? Cadres informaticiens qui va développer ? Besoins de formation des cadres informaticiens ?
Recommandation 2: Développer sur mesure chez une des SSII: il faudra présenter pour chaque SSII le Prix demandé ? La Durée prévue ? Technologies à Utiliser ?
Recommandation 3: Acheter un progiciel de la SSII 1: Prix ? Fonctionnalités ? Technologies ?
Expression des besoinsExemples de recommandations:
Recommandation 4: Acheter un progiciel de la SSII 2: Prix ? Fonctionnalités ? Technologies ?
Recommandation 5: Acheter un progiciel de la SSII 3: Prix ? Fonctionnalités ? Technologies ?
…
Recommandation n: Acheter un progiciel de la SSII n: Prix ? Fonctionnalités ? Technologies ?
Expression des besoins
L’équipe d’informaticiens ne pourra jamais
prendre une décision finale pour adopter
l’une des recommandations proposées
qu’après l’étape de Spécification
(Elaboration du cahier des charges de
développement de logiciels / Rapport de
Spécification)
Spécification Identifier la liste exhaustive des utilisateurs / experts métiers (ceux qui vont utiliser la solution informatique pour effectuer leurs travaux)
Identifier les Fonctionnalités (Acheter un produit, Approvisionner un produit, Affecter une chambre, Elaborer une facture, Régler une facture, etc) de l’expertise métier à informatiser et les décrire sous forme de texte (Phrases et Paragraphes) Cahier de charges (Rapport de spécification) Choix finale d’une recommandation sur la base du
cahier de charges: Acheter (Avec Adaptation ou sans Adaptation) ou Développer sur mesure
Analyse
Elaborer les (Modèles / Diagrammes d’Analyse) : Modélisation de l’expertise métier: Modèles / Diagrammes d’Analyse
(100 % Expertise Métier: Sans prendre en compte considération les choix technologiques) Au cours de cette étape, on n’a pas encore choisi ni Architecture (ni Langage de Programmation), ni SGBD, …
ConceptionChoisir les Architectures Logicielles (JEE, .NET, 1 ou 2 ou 3 ou 4-Tiers, CORBA, etc) et / ou le SGBD
Elaborer les Modèles / Diagrammes de Conception: Modèles / Diagrammes d’Analyse + Choix technologiques (Architectures, SGBD, etc)
Elaboration des Algorithmes et des Structures de données à partir des modèles / diagrammes de Conception
ArchitectureS et SGBD
Modèles / Diagrammes de Conception
Les Algorithmes et les Structures de Données
Implémentation : Programmation (Production de codes sources)
Test de vérification : Détection des erreurs (erreurs de programmation + erreurs métiers)
Validation : Evaluation de la satisfaction des experts métirs
Maintenance et Evolution : Maintenance Corrective (issues des erreurs de programmation et des erreurs métiers après le déploiement du logiciel pendant quelques mois + Maintenance Evolutive (issues de nouveaux besoins exprimés par les experts métiers
Expression des besoins
Spécification
Analyse : Modèles / Diagrammes d’Analyse ?
Conception: Modèles / Diagrammes de Conception ?
Implémentation
Test de vérification
Validation
Maintenance et Evolution
Méthode d’Analyse et de Conception /
Processus de Modélisation?
I.2 Notion de Méthode d’Analyse et de Conception / Processus de Modélisation
Avec quel Modèle / Diagramme, faudra t-il commencer ?
Avec quel modèle / Diagramme, faudra t-il finir ?
Comment découler un tel diagramme à partir d’un autre ?
Besoin d’une Méthode / un Processus pour guider l’Analyse et la Conception et élaborer
les modèles / Diagrammes
Une Méthode d’Analyse et de Conception =
Une démarche en plusieurs étapes+
Un Formalisme de Représentation (FR) /Un Langage de Modélisation (LM) /Un Ensemble de Notification (EN)
pour Elaborer les Modèles / Diagrammes
Une démarche en plusieurs étapes =
Etape 1 : Elaborer de 1 à N Modèles / Diagrammes
Etape 2 : Elaborer de 1 à N Modèles / Diagrammes
. . .
Etape n : Elaborer de 1 à N Modèles / Diagrammes
Un Langage de Modélisation (LM) =
Des Notifications Graphiques (RG): Rectangle, Triangle, Cercle, Losange, etc
+
Règles de Construction de Modèles / Diagrammes
Notification graphique ?
Pour une approche donnée, il s’agit de représenter chaque concept par une notification graphique
Par exemple : pour l’approche objet:
On pourrai représenter une classe par un rectangle
On pourrai représenter l’héritage par un triangle
Diagramme d’UML + Expertise Métier =
Diagramme concret qui modélise
presque la réalité de l’expertise métier au
sein de l’organisation en question
Règles de construction de modèles /
Diagrammes :
Règles d’associations entre les notifications
graphiques pour construire les modèles /
Diagrammes
Méthode d’Xavier CASTELLANI (USA)
=
Etapes : Etude d’opportunité , Analyse fonctionnelle, Analyse organique +
Réalisation
+
Un Langage de Modélisation pour élaborer les deux modèles suivantes:
Modèle fonctionnel
Modèle organique
Méthode MERISE : Méthode d’Elaboration et de Réalisation Informatique de Systèmes
d’Entreprises (France)
=
Etapes: Etude préalable, Analyse détaillée, analyse technique, réalisation et maintenance
+
Un Langage de Modélisation pour élaborer les 6 modèles suivantes:
MCT: Modèle Conceptuel de Traitements
MCD: Modèle Conceptuel de Données (Modèle Entité / Association)
MOT: Modèle Organisationnel de Traitements
MLD: Modèle Logique de Données (Modèle Relationnel)
MOpT: Modèle Opérationnel de Traitements
MPD: Modèle Physique de Données
Méthode OMT : Object Modeling Technique (USA)
=
Etapes: Analyse, Conception du système,
Conception des objets,
+
Un Langage de Modélisation pour élaborer les modèles :
Modèle Statique (Modèle objet)
Modèle Dynamique
Modèle Fonctionnel
Modélisation : Analyse et Conception
Implantation : Implémentation :
Programmation : Codage : Production de
codes sources
Le Réel Le Modèle L'implantation
H F
V
H(......) F (......) V(......)
Modélisation Implantation
Expression des besoins
Spécification
Analyse: Modèles / Diagrammes d’Analyse
Conception: Modèles / Diagrammes de Conception
Implémentation: Codes Sources ?
Test de vérification
Validation
Maintenance et Evolution
MAC ?LP ?
Méthode d’Analyse et de Conception + Langage de Programmation (LP) :
Approche ?
Il faudra choisir une approche parmi trois en se basant essentiellement sur la complexité, la
taille, et l’évolutivité de l’expertise métier à informatiser:
• Approche fonctionnelle
• Approche Systémique
• Approche Orientée Objet
I.3 Notion d’Approche de développement de logiciels
Approche Fonctionnelle =
Analyse et Conception Fonctionnelle (Modélisation
des Traitements) avec une Méthode d’Analyse et de
Conception Fonctionnelle comme celle d’Xavier
CASTELLANI
+
Implémentation Fonctionnelle avec un Langage de Programmation Fonctionnelle (en C, Pascal, Basic,
Fortran, Cobol, …)
Persistance des données : Fichiers avec un SGF
Approche Systémique = Analyse et Conception Systémique (Modélisation
des Traitements et Modélisation des Données Séparément) avec une Méthode d’Analyse et de
Conception Systémique comme MERISE
+
Implémentation Fonctionnelle (PL / SQL d’ORACLE, TRANSACT-SQL de SQL-Server, etc) ou (C&Pro*C et Cobol&Pro*Cobol d’ORACLE)
Persistance des données: Base de Données avec un SGBD ou Fichiers avec un SGF
Approche Orientée Objet =
Analyse et Conception Orientée Objet (Modélisation de la Communication entres
Objets de Classes par envoi de messages) avec une Méthode d’Analyse et de Conception
Orientée Objet comme OMT
+
Implémentation Orientée Objet (JAVA, C++, C#, Delphi, …)
Persistance des données: Base de Données avec un SGBD ou Fichiers avec un SGF
I.4 Architectures Logicielles et SGBD
Choix d’une Architecture pour développer et distribuer le logiciel: JEE et .NET ou d’un
SGBDSoit une Implémentation OO: Architecture ?
Architecture CORBA ?Soit une Implémentation Fonctionnelle: PL / SQL d’ORACLE ou TRANSACT – SQL de SQL – SERVER ?
JAVA
JDBC, Servlets et JSP, RMI, …
Paquetages de Classes
JAVA Virtual Machine
C#, C++, Delphi, J#, VB
ADO, ASP, DCOM, …
Paquetages de Classes
Commun Language Runtime
Choix de l’Architecture du logiciel pour gérer la Monté en Charge (Augmentation
du nombre d’Utilisateurs) et la Taille fonctionnelle de l’Application :
Mono-Utilisateur : 1-TierMulti-Utilisateurs : 2-Tiers (Clients –
Serveur) ou 3-Tiers ou 4-TiersUn logiciel comporte toujours trois principales
couches:
Couche 1: Présentation (Interface Graphique )Couche 2: Application (Expertise Métier)
Couche 3: Persistance (Données)
Architecture 1-Tier (1 Utlisateur)
Les trois couches sur une même machine : un seul poste (PC)
Couche 1: Présentation (Interface Graphique )Couche 2: Application (Expertise Métier)
Couche 3: Persistance (Données)
Architecture 2-Tiers (moins que 100 Utilisateurs connectés en même temps)La couche présentation sur des postes
clients (PC) et les deux couches application et persistance sur une ou plusieurs même(s)
machine(s) serveur(s)Couche 1: Présentation (Interface Graphique )
généralement en ORACLE FORMS ou en JAVACouche 2: Application (Expertise Métier) généralement en PL / SQL d’ORACLE ou
TRANSACT-SQL de SQL SERVER de MICROSOFT)
Couche 3: Persistance (Données) SQL
Architecture 3-tiers (Plus que 100 Utilisateurs)
Couche 1: Présentation (Interface Graphique ) sur des Postes Clients (PC)
Classes d’Interface (JAVA.AWT ou JAVA.SWING par exemple)
Couche 2: Application (Expertise Métier en OO) sur une ou plusieurs machine(s) serveur(s)Classes métiers + Serveur d’Application
Couche 3: Persistance (Données) sur une ou plusieurs machine(s) serveur(s)
Classes de persistance (JAVA.SQL par exemple + SGBD configuré en tant que serveur de données)
JDBC (JAVA DATABASE CONNECTIVITY)
Architecture 3-tiers
Solution libre actuellement très utilisée au niveau des entreprises
JSF (JAVA SERVER FACES)SPRING
HIBERNATE
Architecture 4-tiers (Application WEB)Le serveur WEB et Serveur d’Application
peuvent être jumelés dans un même logiciel ou deux logiciels différents et peuvent être installé sur une même machine serveur ou
sur deux machines différentes
Couche 1: Présentation (Interface Graphique )Couche 2: Serveur WEB
Couche 3: Application (Expertise Métier en OO)Classes métiers + Serveur d’Application
Couche 4: Persistance (Données)
Exemple de Serveurs d’Application propriétaires (il faudra acheter):IBM WebSphere Application Server
ORACLE- BEA Weblogic Application Server
ORACLE Application Server
BORLAND Application Server
ORACLE – SUN Java System Application Server
Citrix
Novell Application Server
Sybase Application Server
Exemple de Serveurs d’Application libres (Open Source) :
Apache Tomcat (Serveur WEB)JBoss
JOnAS Serveur d‘Application Open Source proposé par OW2
GlassFish Serveur d‘Application Open Source de Sun - Oracle
GeronimoNirva Application Platform
ZobolleZope
I.5 Outils CASE (Computer Aided Software Engineering)
Environnement de développement
Outils facilitant la programmation, la génération automatique de codes sources pour des interfaces graphiques dessinées, la compilation, l’édition des liens, le débogage, etc
Exemples:
Visual Studio.net, Eclipse, NetBeans, Jbuilder, Jdevelopper, Kawa, C++ Builder, Turbo C++, …
Ateliers de Génie Logiciel
Outils facilitant aux informaticiens l’Elaboration des diagrammes, la génération automatique de codes sources à partir de diagrammes, la génération automatique de diagrammes à partir de codes sources (Reverse Engineering), etc
Exemples:Entreprise Architect, Visual Paradigm, Paradigm Plus, Power AMC, Windev, Webdev, StarUML, ArgoUML, FUJABA, Eclipse + Plug - in (Omondo, Domino, Plug – in de IBM, etc)
I.6 Culture générale, connaissances, compétences et expériences nécessaires pour l’ingénieur en informatique
Programmation Orientée Aspect
Technologie AJAX: Asynchronous Javascript and XML
Différence entre PHP et JSP et ASP
Différence entre .NET et JEE, entre JSE, JEE, JME
Model Driven Architecture (MDA): Architecture dirigée par les modèles
Model-View-Controller (MVC): Modèle-Vue-Controleur
Design Patterns: Patrons de Conception
Customer RelationShip Management (CRM): Progiciel de Gestion de la Relation avec les Clients
WEB-Service et Service Oriented Architecture (SOA) : Service WEB et Architecture Orientée ServiceInformatique Décisionnelle (Business Intelligence): DataWareHouse et DataMining (ORACLE WAREHOUSE BUILDER, ORACLE DISCOVERER, PENTAHO, …)Informatique Embarquée: LINUX embarqué, WINDOWS CE, WINDOWS Mobile, Architecture Android Open Source, General Public Licence (GPL), Licence Publique Générale (LPG), Association AFUL: Association Francophone des Utilisateurs de Logiciels Libres
Audit Informatique ?
ISACA : Information Systems Audit and Control Association
AFAI : Association Française de l’Audit et du Conseil Informatiques
CISA : Certified Information System Auditor
CISM : Certified Information Security Manager CGEIT : Certified in the Governance of Enterprise Information Technology
Conseil Informatique ?
ERP: Entreprise Resource Planning: PGI : Progiciel de Gestion Intégré
ANSI: Agence Nationale de la Sécurité Informatique
ANCE: Agence Nationale de Certification Electronique
Cloud Computing: l’Informatique dans les nuages: Virtualisation des Systèmes d’Information des entreprises
Processus de développement de logiciels: processus en Cascade, processus en V, processus en W, processus en Spirale, processus Agiles (XP, RUP, SCRUM, etc)
Certification d’équipes d’informaticiens (SSII):
CMM: Capability Maturity Model et CMMI:
Capability Maturity Model Integration du SEI:
Software Engineering Institute – USA
ITIL: Information Technology Infrastructure
Library de l’OGC : Office of Government
Commerce et ensuite Cabinet Office
Certification de logiciels: Il faudra avoir des
compétences en terme de Test et de Qualité de
Logiciels, il faudra disposer de logiciels de test de
logiciels, il faudra connaître les standards ISO pour
le développement de logiciels (normes de codage,
etc).
ITSQB (International Software Testing
Qualifications Board)
Organismes certificateurs de logiciels:
AFNOR: Association Française de
NORmalisation
ANSI: American National Standard Institute
ISO: International Standard Organisation
INNORPI: Institut National de la
NORmalisation et de la Propriété
Intellectuelle
Certification de personnes :
OCUP (OMG Certified UML Professional)
– Object Management Group
JEE - ORACLE – SUN
.NET, SQL – SERVER – MICROSOFT
ORACLE (SQL, Administration des BD,
…) - ORACLE
Organismes certificateurs de personnes en Tunisie
CIFODE’COM: Centre d’Information, de Formation, de Documentation et d’Etudes en Technologies des Communications
SmartFutur Solutions
ADVANCIA, …
3C: Cabinet de Certification des Compétences à Sfax, site web: http://www.3c-formation.com/
Métiers de l’Informatique
ConsultingIntégration Progicielle
Ingénierie Logicielle
M
E
T
I
E
R
Infrastructure & Production: Administration Système, Administration de
Bases de Données
Structuration du marché Informatique
Cabinet de Conseil
Editeurs SSII
C
L
I
E
N
T
S
F
I
N
A
U
X
Fournisseurs de Technologies
Axes très demandés par le marché
informatique:
- Ingénierie Logicielle - CMMI
- Test de Logiciel – ITSQB (International
Software Testing Qualifications Board)
- Réseaux et Sécurité – CISCO, etc
- Systèmes et Bases de Données (UNIX,
WINDOWS, ORACLE, SQL – SERVER, etc)
Chapitre II :
Genèse d’UML et RUP
Méthode d’Analyse et de Conception OOMéthode OOD (Object Oriented Development) de Grady BoochMéthode OMT (Object Modeling Technique) de James RumbaughMéthode OOSE (Object Oriented Software Engineering) d’Ivar JacobsonMéthode OOAD de Shlaer et MellorMéthode OOA (Object Oriented Analysis) de Coad et YourdonMERISE/2 (1990) et puis Méthode OOM : Orientation Objet dans MERISE date de 1992Méthode O*
Méthode MCO d’Xavier Castellani
Au cours de la période : 1990 - 1997
Pour l’approche fonctionnelle et l’approche systémique :
Apparition de 20 Méthodes d’Analyse et de Conception
Pour l’approche Orientée Objet : Plus de 150 Méthodes d’Analyse et de Conception
Aucune méthode ne s'est réellement imposée
Les trois méthodes les plus utilisées sont : OMT, OOD et OOSE
Méthodes d’Analyse et Conception Orientées Objets dominantes OOD: Object Oriented DevelopmentProposée 1981 par Grady BOOCH
Diagrammes pour la Conception: Diagramme de classes, Diagramme d’instances, Diagramme d’états / transitions,Diagrammes pour l’Implémentation: Diagrammes de modules, Diagramme de processus - Définie pour le DOD (USA), afin de rationaliser le développement d'applications ADA, puis C++
- Ne couvre pas l’étape de Spécification et l’étape d’Analyse: Centré sur l’étape Conception et l’étape d’Implémentation
Méthodes d’Analyse et Conception Orientées Objets dominantes OMT: Object Modeling Technique Proposée en 1991 par James RUMBAUGH
- Modèles: Modèle statique (Modèle Objet), Modèle Dynamique et Modèle fonctionnel - Issue du centre de Recherche et Développement de General Electric au USA. - Ne couvre pas l’étape de Spécification: Centré sur l’étape d’Analyse et l’étape de Conception- Notation graphique riche et lisible : 80 % des notifications graphiques d’UML sont du LM d’OMT
Méthodes d’Analyse et Conception Orientées Objets dominantes OOSE: Object Oriented Software Engineering
Proposé en 1995 par Ivar JACOBSON
- Modèles: Modèle de Besoins (Cas d’Utilisation), Modèle d’Analyse, Modèle de Conception, Modèle d’Implantation, Modèle de Test- Issue d'un centre de développement d'Ericsson, en Suède.- Couvre pratiquement toutes les étapes du processus de développement de logiciels - JACOBSON est le seul qui a proposé un modèle à élaborer au niveau de l’étape de Spécification
Méthode OMT de James RUMBAUGH : Langage de Modélisation 1 (LM 1) + Démarche 1
Méthode OOD de Grady BOOCH : Langage de Modélisation 2 (LM 2) + Démarche 2
Méthode OOSE de Ivar JACOBSON : Langage de Modélisation 3 (LM 3) + Démarche 3
…Nième méthode : Langage de Modélisation N (LM N) + Démarche N
SSII 1 a modélisée un logiciel de gestion commerciale avec OMT (LM de OMT)SSII 2 a modélisée un logiciel de gestion commerciale avec OOD (LM de OOD)SSII 3 a modélisée un logiciel de gestion commerciale avec OOSE (LM de OOSE)
Les informaticiens de SSII 1 et de SSII 2 et de SSII 3 veulent se réunir sur une même table pour se mettre d’accord sur une modélisation unique qui récapitule les trois différentes modélisations
Comment faire ?Solution: UML
En 1994, on recensait plus de 50 Méthodes d’Analyse et de Conception Orientées Objets (50 Langages de Modélisation) !!!??? Dans le but de remédier à cette dispersion que les « poids-lourds » des Méthodes d’Analyse et de Conception Orientées objets ont décidé de se rassemblerEn Octobre 1994, Grady BOOCH et James RUMBAUGH se sont réunis au sein de la société RATIONAL SOFTWARE dans le but de travailler à l’élaboration d’une Méthode Commune en unifiant leurs deux méthodes OOD et OMT et en corrigeant les défauts et en comblant les déficits
Au niveau de la Conférence OOPSLA’95
(Object Oriented Programming
Systems, Languages and Applications
Conference): la grande conférence sur la
programmation orientée objet: Grady
BOOCH et James RUMBAUGH
présentent UNIFIED METHOD V 0.8
Réaction des industriels :
- Proposer une méthode unifiée en vue d’un standard c’est comme la proposition d’une nouvelle méthode comme les autres méthodes utilisées déjà depuis des années
- unifier et standardiser une méthode unifier et standardiser des étapes à suivre pour modéliser (démarche, processus) unifier et standardiser les habitudes de tous les informaticiens dans le monde !!!???
Message passé à BOOCH et RUMBAUGH: Les informaticiens ont du mal à changer leurs habitudes ils veulent bien garder les étapes à suivre (la démarche) des méthodes qu’ils ont eu l’habitude de suivre mais pas de problèmes si on leurs change le Langage de ModélisationLes travaux de BOOCH et de RUMBAUGH ne visaient plus à constituer une méthode unifiée (unified method), mais un langage unifié (unified language)Fin 1995, Ivar JACOBSON rejoint BOOCH et RUMBAUGH chez RATIONAL SOFTWARE et l’UML (Unified Modeling Language) 0.9 a vu le jour
Les initiatives de BOOCH, RUMBAUGH et JACOBSON ont été soutenues par de nombreuses sociétés comme : MICROSOFT, ORACLE, HP, IBM, etc) UML 1.0 a été déposé en Janvier 1997 à l’OMG (Object Management Group) en vue de la standardisation d’un Langage de Modélisation.Une version améliorée de UML 1.0 (UML 1.1) a été soumise à l’OMG en Septembre 1997Après une étude approfondie, UML 1.1 a été accepté en Novembre 1997 par l’OMG en tant que standard (norme) sous la référence UML 1.1.
Différentes Versions d’UML
UML 1.XNovembre 1997 - UML 1.1, Juin 1998 - UML 1.2Mars 2000 - UML 1.3, Septembre 2001 - UML 1.4, Septembre 2004 - UML 1.4.2, Mars 2003 - UML 1.5
UML 2.XJuillet 2005 - UML 2.0, Août 2007 - UML 2.1.1,Novembre 2007 - UML 2.1.2, Février 2009 - UML 2.2, Mai 2010 - UML 2.3, Mars 2011 - UML 2.4 – Beta 2
OMG: Object Management Group
Organisme à but non lucratif fondé en 1989
Constitué de plus de 700 entreprises
Connu pour la norme CORBA
Site WEB: www.omg.org
UML
Unified : Unifié
Modeling : Analyse et Conception
Language : UML est un Langage de Modélisation et ne pas une Méthode d’Analyse et de Conception / Processus de Modélisation
Les diagrammes d’UML sont plus étendus que les
modèles / Diagrammes des méthodes OMT, OOSE,
OOD en nombre et en vision (sémantique)
Les travaux de RUMBAUGH, BOOCH et
JACOBSON ne visaient pas que l’unification des
notifications graphiques mais visaient aussi la
proposition de diagrammes plus riches et plus
intéressants que les diagrammes de leurs méthodes
OMT, OOD et OOSE en ajoutant de nouveaux
diagrammes si nécessaire
UML =
LM de OMT
Union + Choix
LM d’OOD
Union + Choix
LM d’OOSE
4 principales phases ont conduit à UML:
Fragmentation: Chacun propose son LM
Unification par RUMBAUGH, BOOCH et
JACOBSON
Standardisation par l’OMG
Industrialisation par les entreprises
Use Case Diagram
Activity Diagram
Sequence Diagram
Collaboration Diagram
State Machine Diagram
Class Diagram
Object Diagram
Component Diagram
Deployment Diagram
9 Diagrammes d’UML 1.X
13 Diagrammes d’UML 2.X
9 Diagrammes d’UML 1.X + Changements
+
4 Nouveaux Diagrammes
13 Diagrams d’UML 2.XUse Case DiagramActivity Diagram
Sequence DiagramCommunication DiagramState Machine Diagram
Class DiagramObject Diagram
Component DiagramDeployment Diagram
Composite Structure DiagramPackage DiagramTiming Diagram
Interaction Overview Diagram
Le Langage de modélisation a été unifié et standardisé et industrialisé
Depuis novembre 1997 : les informaticiens ont utilisé la notation suivantes: Langage de modélisation / Méthode
(Processus de modélisation)
Exemples: UML / OMTUML / OOSEUML / OOD, …
3 Modèles de la méthode OMT
Modèle Objet ou Statique
Modèle Fonctionnel
Modèle Dynamique
9 Diagrammes d’UML 1.X
Diagramme de Classes
Diagramme d’Activités
Diagramme d’Etat / Transition +
Diagramme de Séquence
Diagramme d’Objets ?Diagramme de Cas d’Utilisation ?Diagramme de Collaboration ?Diagramme de composants ?Diagramme de déploiement ?
Les informaticiens ont rencontré des problèmes d’agencement de diagrammes:Avec quel diagramme on commencera ?Avec quel diagramme on termineraComment découler un tel diagramme à partir d’un autre ?Quelle est la relation entre un tel diagramme et un autre ?OMT ou OOD ou OOSE (3, 5, 5 Diagrammes / Modèles) / UML (9 Diagrammes) ?
Comment faire ? Solution : UP / RUP
• Méthode OMT de James RUMBAUGH : Langage de Modélisation 1 (LM 1) + Démarche 1
• Méthode OOD de Grady BOOCH : Langage de Modélisation 2 (LM 2) + Démarche 2
• Méthode OOSE de Ivar JACOBSON : Langage de Modélisation 3 (LM 3) + Démarche 3
…• Nième méthode :
Langage de Modélisation N (LM N) + Démarche N
UP =
Démarche de OMT
Union & Choix
Démarche d’OOD
Union & Choix
Démarche d’OOSE
RUP : UP + Améliorations de Rational Software
3 principales phases ont conduit à UP :
Fragmentation: chacun sa méthode
Unification par RUMBAUGH, BOOCH et
JACOBSON
Industrialisation par les entreprises
Un processus pourra être toujours unifié
mais jamais être standardisé
UP / RUP se base sur les étapes du processus de développement de
logiciels et défini les diagrammes d’UML à élaborer au niveau de
chaque étape
La notion de Méthode d’Analyse et de Conception a disparu:
Conclusion: UML / RUP
Extensions d’UML
Pour les applications WEB (Hypermédias)Avant UML :
- Méthode RMM : Relationship Management Methodology [Isakowitz et al., 1995]
- Méthode OOHDM : Object Oriented Hypermedia Design Methodology
- Méthode AWIS-M : Adaptative Web-based Information System – Method [Gnaho 2000]
- Méthode HyperTIM : Hypermedia Task oriented Information Modeling [Wettengel 01]
- Langage WebML : Web Modeling Language [Ceri 00]
Après l’apparition d’UML :
- Koch en 2000 a proposé UML-based Web Engineering (http://uwe.pst.ifi.lmu.de)
- Conallen a proposé en 2000 Web – UML dans son livre « Concevoir des applications web avec UML, EDITIONS EYROLLES, 2000 »
Pour la Modélisation et l’Analyse des Systèmes Temps Réels et Embarqués:
UML - MARTE (UML profile for Modeling and Analysis of Real-Time and Embedded Systems), Projet d’extension de Charles André Laboratoire I3S (Laboratoire d'Informatique, Signaux et Systèmes de Sophia-Antipolis) de Nice en France
Cette extension a été acceptée en tant que standard par l’OMG depuis Juin 2007 (http://www.omgmarte.org)