Télécharger la présentation
La présentation est en train de télécharger. S'il vous plaît, attendez
Publié parPons Maillot Modifié depuis plus de 10 années
1
CURSUS DE FORMATION AUX NOUVELLES TECHNOLOGIES DE DEVELOPPEMENT UV IBM WSAD Module WSAD
2
Module UV IBM WSAD Page 2 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module WSAD n Présentation d IBM WSAD n Démarche de développement J2EE n WTE : l environnement de tests unitaires n Le débogage n Maintenir le référentiel CVSNT
3
Module UV IBM WSAD Page 3 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Présentation d IBM WSAD n Naissance d une plate-forme de développement OpenSource nommée Eclipse. n Le projet Eclipse remplace désormais Visual Age, en proposant un panel d outils, dont la première génération est appelée: Websphere Studio Application Developer (WSAD)
4
Module UV IBM WSAD Page 4 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Pourquoi Eclipse? n IBM met en place une stratégie de portabilité des applications pour une communauté de développeurs. n IBM propose une nouvelle standardisation et tente de contrer Microsoft et le modèle VisualStudio.NET n Accroître la communauté suivant plusieurs points de vues: –marketing –diffusion d outils (open source) –leadership technologique –ergonomie des outils
5
Module UV IBM WSAD Page 5 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Environnement J2EE 1.2 n WSAD 4.0 est un environnement de développement intégrant Visual Age for Java et WebSphere Studio. n Il permet de développer des applications Java classiques, des applications J2EE, de les tester et de les déployer. n Il intègre notamment un environnement de test des applications J2EE : WebSphere Test Environment (WTE).
6
Module UV IBM WSAD Page 6 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les perspectives n L ergonomie générale de WSAD est organisée autour des perspectives. n Ce sont des fenêtres rassemblant des options autour d un thème commun. n Il existe sept perspective par défaut dans WSAD.
7
Module UV IBM WSAD Page 7 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective JAVA n La perspective Java rassemble tous les outils pour développer des classes Java. n Il est nécessaire de sauvegarder toutes modifications avant de changer de vue ou de sélectionner un nouveau fichier Java. n La perspective Java compile et vérifie automatiquement le code lors d une sauvegarde (compilation incrémentale).
8
Module UV IBM WSAD Page 8 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Le refactoring n La perspective Java intègre des outils de refactoring prisés par la méthodologie Extreme Programming. n Il s agit de transformer la structure du code sans modifier sa logique : –renommer un objet : toutes les références sont mises à jour –extraire une méthode : la sélection de portion de code peut être transformée en méthode d un simple clic. –Déplacer du code.
9
Module UV IBM WSAD Page 9 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective Debugger n Elle propose des services de debug classiques. n Toutefois elle ne permet pas : –des points d arrêt conditionnel, –de remplacement de code à chaud (HCR), seul les valeurs de variables peuvent être modifiées, –de passage méthode par méthode quand elles sont chaînées au sein d une ligne, –de reprise du debogage en amont dans le code.
10
Module UV IBM WSAD Page 10 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective Web n Elle intègre un environnement complet de développement Web. n Cela inclut : –les pages HTML –les JSP –les servlets –le descripteur de déploiement XML
11
Module UV IBM WSAD Page 11 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective Web n Elle propose les fonctionnalités suivantes: –Création, validation et édition de fichiers JSP, HTML, –Edition de graphismes et d animations, –Support d édition de feuilles de styles, –Moteur JavaScript (Rhino), –Support de DHTML, –Importation (HTTp, FTP) et exportation FTP, –Importation/exportation de fichiers WAR, –Visualisation de liens, –Gestion et analyse (parsing) des liens, –Edition graphique du fichier web.xml
12
Module UV IBM WSAD Page 12 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective J2EE n Elle donne accès aux informations nécessaires pour créer et configurer une application d entreprise. n Il est possible de manipuler des composants Web, des composants Java EJB 1.1 et de paramètrer le serveur Web. n De nombreux assistants permettent de générer rapidement une application J2EE (EAR), des EJB et de les tester en quelques clics, de façon unitaires.
13
Module UV IBM WSAD Page 13 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective XML n Elle donne accès à des outils utiles lors du développement d applications XML: –Editeur XML pour créer et valider les documents, –Editeur de DTD, –Mapping de XML vers XML via XSLT –Traceur XSLT, –Validateur de documents XML vérifie le respect de la DTD –Mapping RDB vers XML pour convertir les résultats de requêtes SQL en XML.
14
Module UV IBM WSAD Page 14 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective Serveur n Elle permet de visualiser et de modifier la configuration du serveur exécutant des EJB et des applications Web. n Il intègre une serveur de test : WTE et une EJB Client Test pour tester de façon unitaire le comportement des EJB.
15
Module UV IBM WSAD Page 15 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective Profiling n Les outils de profiling permettent de mesurer la performance d applications. n L outil principal d analyse de performance est l outil IBM Jinsight.
16
Module UV IBM WSAD Page 16 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La perspective Data n Elle est destinée aux administrateurs de bases de données et aux développeurs d EJB. n Elle permet d importer, de créer et de modifier des schémas de bases de données relationnelles. A partir de l EJB représentant le schéma, il est possible d interroger la base. n Des drivers JDBC pour les bases les plus courantes sont inclus (UDB2, Oracle 8i, etc.)
17
Module UV IBM WSAD Page 17 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module WSAD n Présentation d IBM WSAD n Démarche de développement J2EE n WTE : l environnement de tests unitaires n Le débogage n Maintenir le référentiel CVSNT
18
Module UV IBM WSAD Page 18 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Création de l application J2EE n L application J2EE est définie par une archive EAR globale contenant deux parties : –une archive JAR : liste des classes de l EJB, des classes utilitaires (sérialisables) et des classes classiques Java, –une archive WAR : regroupant les pages HTML, les JSP, les Java Beans, etc. n Etape 1 : Séléctionner la vue J2EE n Etape 2 : Sélectionner Enterprise Applications –effectuer un clic droit, puis new - > Enterprise application Project –Saisir le nom du projet –décocher l Application Client –cliquer sur Finish
19
Module UV IBM WSAD Page 19 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exemple de création d EAR
20
Module UV IBM WSAD Page 20 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exemple de création d EAR
21
Module UV IBM WSAD Page 21 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Création d un EJB n A ce stade le fichier JAR a été généré par WSAD pour contenir les EJB de l application. n Les étapes suivantes permettent d ajouter une EJB dans l archive JAR. n Etape 3 : sélectionner EJB Modules –explorer pour faire apparaître l archive JAR –sélectionner l archive JAR –click droit -> new -> Enterprise bean –mettre le nom de l EJB (bean name) –ajouter Remote à la fin du nom dans la partie Remote Interface –cliquer sur Finish
22
Module UV IBM WSAD Page 22 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exemple de création d EJB
23
Module UV IBM WSAD Page 23 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Exemple de création d EJB
24
Module UV IBM WSAD Page 24 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Modifier un EJB n Chaque EJB est défini selon trois parties : –la partie Home, décrivant les méthodes de création, de suppression de l EJB –la partie Remote définissant les services, les fonctionnalités (métiers) proposés par l EJB, –la classe qui implémente la partie Home et Remote. n WSAD a généré ces trois types de fichiers automatiquement. Il faut alors lister les services dans la partie Remote et les implémenter dans la classe en respectant le même type de retour, le même nom de méthode et les mêmes paramètres transmis.
25
Module UV IBM WSAD Page 25 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Modifier un EJB n Etape 4 : Explorer l EJB créé dans l archive JAR, pour faire apparaître les trois parties. –Editer la partie Remote (double clic) –Dans le fichier, insérer les imports nécessaires (java.util.*, etc.) –Puis donner la liste des services : public String envoyerHelloWorld() throws java.rmi.RemoteException; public Vector envoyerListeHello(int nombre) throws java.rmi.RemoteException;
26
Module UV IBM WSAD Page 26 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La partie Remote de l EJB
27
Module UV IBM WSAD Page 27 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Modifier un EJB –Editer la classe d implémentation de l EJB (double clic): insérer les imports nécessaires, implémenter les services en reprenant exactement le service spécifié dans la partie Remote (copier - coller) : public String envoyerHelloWorld() {return HelloWorld; } mettre également le constructeur de la classe, pour pouvoir créer l EJB: public NomDeLaClasse() {}
28
Module UV IBM WSAD Page 28 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La partie Classe de l EJB
29
Module UV IBM WSAD Page 29 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Créer les classes utilitaires n Les EJB échangent souvent des objets sur le réseau. n De tels objets doivent être sérialisables, et décrits par une classe dite utilitaire. n Ces classes font parties de l archive de l EJB.
30
Module UV IBM WSAD Page 30 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Créer les classes utilitaires n Etape 5: Créer les classes utilitaires en sélectionnant l EJB –clic droit -> new -> Other... –puis dans la fenêtre sélectionner Java -> Java Class –Saisir le nom de la classe Java (Name) –cocher Constructors from superclass –cliquer sur le bouton Add de la zone Extended Interfaces –Dans la fenêtre, mettre la lettre S, à la place de A, puis sélectionner l interface Serializable. –Valider avec OK, puis Finish.
31
Module UV IBM WSAD Page 31 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Créer les classes utilitaires
32
Module UV IBM WSAD Page 32 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Créer les classes utilitaires
33
Module UV IBM WSAD Page 33 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Créer les classes utilitaires
34
Module UV IBM WSAD Page 34 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Créer les classes utilitaires
35
Module UV IBM WSAD Page 35 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Sauvegarde du projet n A ce stade, il est nécessaire de sauvegarder les modifications et de vérifier quil n y a pas d erreurs générées lors de la compilation des fichiers Java. n Etape 6 : –File -> Save All –Project -> Rebuild All
36
Module UV IBM WSAD Page 36 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Générer le code RMI n Les EJB doivent disposer de mécanismes RMI, pour être accessibles à distances par des clients. n Etape 7 : Sélectionner l EJB –clic droit -> Generate deploy code. –File -> Save All et Project -> Rebuild All
37
Module UV IBM WSAD Page 37 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Générer le code RMI
38
Module UV IBM WSAD Page 38 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Identifier l EJB via JNDI n Pour que l EJB soit accessible par des clients, il faut quil porte un nom JNDI, permettant de le référencer à travers différentes JVM. Le nom JNDI permet alors au client de récupérer les parties Home et Remote par un simple appel à lookup(). n Etape 8 : Sélectionner l archive JAR de l EJB –clic droit -> Open With -> EJB Extension editor –dans la fenêtre d édition, sélectionner l onglet Bindings (en bas à droite), puis explorer le Jar pour séléctionner l EJB, toujours dans la fenêtre d édition. –Saisir alors le nom JNDI (JNDI Name)
39
Module UV IBM WSAD Page 39 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Identifier l EJB via JNDI
40
Module UV IBM WSAD Page 40 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Identifier l EJB via JNDI Clic Bindings
41
Module UV IBM WSAD Page 41 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module WSAD n Présentation d IBM WSAD n Démarche de développement J2EE n WTE : l environnement de tests unitaires n Le débogage n Maintenir le référentiel CVSNT
42
Module UV IBM WSAD Page 42 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Présentation de WTE n Websphere Test Environment propose un ensemble d outils, basés sur le serveur WebSphere pour déployer, tester et déboger : –les fichiers JSP et les servlets, –les fichiers HTML, –les EJBs via l outil EJB test client, –les connexions bases de données via les DataSources.
43
Module UV IBM WSAD Page 43 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Démarche d utilisation de WTE n La démarche est composée d une suite d étapes permettant de tester les fonctionnalités d un EJB: n Etape 1 : en mode Vue J2EE et lorsque le serveur est stoppé,on sélectionne un composant de l application (EAR, JAR, WAR, etc.) –nous sélectionnons l EJB de l archive JAR. –Clic droit -> Run On server provoque le lancement du serveur Websphere et de l environnement de test.
44
Module UV IBM WSAD Page 44 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Démarche d utilisation de WTE
45
Module UV IBM WSAD Page 45 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Lancement du serveur n L action run on server provoque le lancement du serveur WebSphere, et notamment de l outil EJB test client, pour tester les différentes fonctionnalités de notre EJB. n Lorsque l on a sélectionné le JAR il faut passer par JNDI pour récupérer la partie Home de l EJB n Par contre lorsque l on a sélectionné l EJB dans le JAR, WTE a automatiquement récupéré la partie Home n Etape 2 : Il faut invoquer la méthode create de la partie Home -> puis Invoke, puis Work with Object
46
Module UV IBM WSAD Page 46 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Connexion JNDI Clic nom JNDI
47
Module UV IBM WSAD Page 47 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Récupérer la partie Remote
48
Module UV IBM WSAD Page 48 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Tester les services de l EJB n Etape 3 : sélectionner la référence EJB –explorer la référence jusqu à faire apparaître les services –sélectionner un service, puis Invoke et vérifier les résultats –dans le cas où la réponse du service est un objet, il est possible de faire Work with object et d explorer alors le contenu de l objet. n Répéter l étape 3 pour tous les services de l EJB, afin de vérifier le comportement des méthodes.
49
Module UV IBM WSAD Page 49 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Tester un service de l EJB résultat Liste des services
50
Module UV IBM WSAD Page 50 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Tester un service de l EJB Indiquer la valeur du paramètre
51
Module UV IBM WSAD Page 51 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Modifier l application n La modification de l application n entraîne pas le redémarrage du serveur. Par conséquent les modifications ne sont pas prises en compte. n Etape 1 (bis) : fermer l EJB Client Test n Etape 2 (bis) : le serveur des déjà lancé –passer en vue server –clic sur l onglet server –puis sur clic droit sur la ligne server instance –sélectionner Publish, puis Restart Project et le fichier JAR –si des problèmes surviennent, faîtes Stop puis Start, –revenir en vue J2EE puis faire Run on server.
52
Module UV IBM WSAD Page 52 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Relancer le serveur
53
Module UV IBM WSAD Page 53 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module WSAD n Présentation d IBM WSAD n Démarche de développement J2EE n WTE : l environnement de tests unitaires n Le débogage n Maintenir le référentiel CVSNT
54
Module UV IBM WSAD Page 54 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Présentation du débogage n Le débogage permet de stopper l exécution du serveur de test, afin de vérifier la valeur des variables d une classe, des méthodes, etc. n Ceci permet de détecter d éventuels dysfonctionnements et de les corriger, avant le déploiement effectif de l EJB
55
Module UV IBM WSAD Page 55 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Les points d arrêt n L arrêt du serveur est réalisé par des points d arrêts positionné dans le programme, soit avant l exécution de l EJB ou soit pendant son exécution. n Ils sont indiqués par une bulle sur le côté gauche du programme, dans la fenêtre d édition. n Pour placer un point d arrêt, il faut double cliquer dans la zone grise de l éditeur de code, au niveau de l instruction à vérifier. n L instruction ne sera pas exécuté.
56
Module UV IBM WSAD Page 56 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Mettre un point d arrêt Point d arrêt
57
Module UV IBM WSAD Page 57 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Vérifier l état des variables n Lors de l exécution de l EJB (Run on server), lorsque le serveur rencontre un point d arrêt, il stoppe son exécution et indique qu il est passé en mode débogage. n Il faut alors passer dans la vue Debug, à partir du sélecteur de perspective puis other.… -> Debug.
58
Module UV IBM WSAD Page 58 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La vue debug n La vue debug présente la liste des points d arrêts présents dans l application, en indiquant le numéro de ligne et le fichier dans lequel il est positionné. n Un double clic sur le point d arrêt permet d afficher le code source du programme.
59
Module UV IBM WSAD Page 59 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La vue debug n Cette vue propose dans la partie haute-gauche les onglets suivants : –Breakpoints donne la liste des points d arrêt du programme, –Inspector permet de visionner le contenu des objets et de modifier la valeur de certaines variables. –Varaibles donne la liste des variables et leurs états avant l arrêt de l exécution du serveur, il est possible de choisir une variable et de l introspecter (Inspect), ou de changer sa valeur.
60
Module UV IBM WSAD Page 60 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle La vue debug
61
Module UV IBM WSAD Page 61 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Reprendre l exécution du serveur n Pour continuer l exécution du serveur, il faut sélectionner l onglet debug, et rechercher le thread qui est suspendu. n A partir du menu debug, l on peut exécuter le programme sur le serveur de plusieurs manières : –Resume : exécute complètement le programme jusqu au prochain point d arrêt, –Step Into exécute la partie droite de l instruction (calcul) en entrant dans la première instruction à exécuter. –Set Return exécute complètement la partie droite de l instruction et bloque avant l affectation du résultat. –Step over exécute l instruction et passe à la suivante.
62
Module UV IBM WSAD Page 62 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Visionner l état des variables n Suivant la commande du menu Debug, l état des variables apparaît au fur et à mesure dans l onglet variable de la vue Debug. n Il est alors possible : –d explorer le contenu d une variable (double clic), –de modifier sa valeur (clic droit -> Change Value), –d instrospecter un objet (clic droit -> Inspect)
63
Module UV IBM WSAD Page 63 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Visionner l état des variables Sélection de Step Over
64
Module UV IBM WSAD Page 64 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Visionner l état des variables
65
Module UV IBM WSAD Page 65 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Module WSAD n Présentation d IBM WSAD n Démarche de développement J2EE n WTE : l environnement de tests unitaires n Le débogage n Maintenir le référentiel CVSNT
66
Module UV IBM WSAD Page 66 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle CVS n Lancer cvsnt_1.11.1.3.exe ou cvsnt_1.11.1.2.exe Choisir l'option custom Choisir le chemin d'installation Ex: e:\cvs Choisir les composants suivants : command-line client : l'exécutable du programme client (optionnel) ex: d:/cvs/cvs.exe Server Components : le programme serveur comprend l'executable, les dll, un programme de génération de mots de passe, l'ajout d'une clé dans le registre, l'installation du service et de son icône dans le tableau de configuration et dans le menu démarrer. ReadMe : un fichier de notes sur le service (configuration...)
67
Module UV IBM WSAD Page 67 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle CVS n Après l'installation: –Créez un dossier non partagé "repository" sur le disque. Ce dossier sera le dossier racine de tous les projets partagés via CVS. –Ajoutez le chemin choisi dans la variable d'environnement système PATH >panneau de configuration >System >Advanced >Environement Variables... >System Variables >Edit PATH et ajouter le chemin séparé des autres valeurs par un point virgule. Ex: path= mon_ancien_path ; d:\cvs\
68
Module UV IBM WSAD Page 68 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle CVS n Lancez le programme de configuration du service CVS for NT: >Panneau de Configuration >CVS for NT Ajoutez le chemin du dossier "repository" dans la fenêtre de l'onglet repositories. Vérifiez que le chemin spécifié dans : >Onglet Advanced >Temporary Directory correspond bien à un repertoire temporaire capable de supporter la charge relative à l'utilisation de ce service. Installez le service >Onglet Service Status >Install Lancez le service >Onglet Service Status >Start n Vous pouvez maintenant accéder au service via un client cvs.
69
Module UV IBM WSAD Page 69 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle CVS n A partir de la vue Team, il est possible d insérer le projet dans le référentiel, pour permettre de garder une version (Release), et de permettre aux collaborateurs de travailler sur les sources. n La démarche consiste à : –sélectionner le projet, puis en faisant un clic droit de choisir Synchronize with Stream. –On sélectionne un stream disponible avec CVSNT, puis les données de la version courante sont affichées dans la vue Team
70
Module UV IBM WSAD Page 70 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Vue Team
71
Module UV IBM WSAD Page 71 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Mise à jour du référentiel n Lors d une mise à jour des fichiers, le système est capable de détecter les différences entre les programmes, et de les afficher de manière graphique. n La mise à jour du référentiel est réalisée en effectuant Team -> Synchronize With Stream, à partir du menu contextuel du composant à mettre à jour
72
Module UV IBM WSAD Page 72 / 72 Deruelle Laurent Copyright © 2002 Laurent Deruelle Vérifier les différences
Présentations similaires
© 2024 SlidePlayer.fr Inc.
All rights reserved.