WOW !! MUCH LOVE ! SO WORLD PEACE !
Fond bitcoin pour l'amélioration du site: 1memzGeKS7CB3ECNkzSn2qHwxU6NZoJ8o
  Dogecoin (tips/pourboires): DCLoo9Dd4qECqpMLurdgGnaoqbftj16Nvp


Home | Publier un mémoire | Une page au hasard

 > 

Génération dynamique d'interfaces spécifiques dans l'exploitation des processus d'ingénierie logicielle en apprentissage

( Télécharger le fichier original )
par Claude Albert MOGHOMAYE
Ecole Polytechnique Yaoundé CAMEROUN - DEA en Sciences de l'Ingénieur option Génie Logiciel 2004
  

Disponible en mode multipage

GÉNÉRATION DYNAMIQUE D'INTERFACES SPÉCIFIQUES

DANS L'EXPLOITATION DES PROCESSUS D'INGÉNIERIE

LOGICIELLE EN APPRENTISSAGE

(DYNAMIC GENERATION OF SPECIFIC GRAPHICAL USER INTERFACE FOR
LEARNING IN SOFTWARE ENGINEERING)

Par
Claude Albert MOGHOMAYE

Ingénieur de Conception en Informatique
Master's Degree in Engineering

POUR L'OBTENTION DU
DEA EN SCIENCES DE L'INGENIEUR OPTION GENIE LOGICIEL
a
l' ECOLE NATIONALE SUPERIEURE POLYTECHNIQUE
NATIONAL HIGH POLYTECHNIC SCHOOL
YAOUNDE, CAMEROUN
20 SEPTEMBRE 2004

ECOLE NATIONALE SUPÉRIEURE POLYTECHNIQUE

NATIONAL HIGH POLYTECHNIC SCHOOL

DÉPARTEMENT DE GÉNIE INFORMATIQUE

Ce mémoire a été présenté et soutenu le 20 Septembre 2004 devant le jury composé des membres ci-dessous :

Président du Jury : Pr Laure Pauline FOTSO,

Maître de Conférences, UY1

Superviseurs : Dr Claude TANGHA,

Chargé de cours, ENSP

Dr Roland YATCHOU, Assistant, ENSP

Examinateurs : Dr Guillaume KOUM,

Chargé de cours, ENSP

Dr Marcel FOUDA, Chargé de cours, UY1

Dr Georges KOUAMOU, Chargé de cours, ENSP

To GOD, 'my shepherd 'my all

To nobody but to all those who are concerns.

Table des matières

Table des mat ières v

Liste des Figures viii

Résumé ix

Abstract x

Remerciements xi

Sigles & Abréviations 1

1 Introduction 2

1.1 Assistance au déroulement des processus 2

1.2 Elaboration et Exploitation des BCPD 3

1.3 PERSEE 3

1.4 Pourquoi une troisième dimension? 4

1.5 Plan du mémoire 4

2 Problématique 6

2.1 Notions d'Interaction Homme-Machine 6

2.2 D'oii vient le besoin d'un interfacage dynamique ? 7

2.3 Comment cela se résout-il généralement ? 10

2.3.1 Générer du code, le compiler et l'intégrer 11

2.3.2 Mettre en oeuvre des interfaces génériques 11

2.3.3 Offrir un moyen de décrire une interface 11

2.4 Une appréciation de ces méthodologies 12

3 Méthodes et Concepts 14

3.1 Les objets réutilisables 14

3.2 Le langage XUL 15

3.3 L'approche méthodologique 15

4 Modélisation 18

4.1 Une spécification formelle des interfaces 18

4.1.1 Pourquoi une spécification formelle ? 18

4.1.2 Quelques observations préliminaires 18

4.1.3 Principe de conception des interfaces 19

4.1.4 Typologie de l'interfacage 19

4.2 Une spécification semi-formelle des interfaces 20

4.3 Un modèle de ROSE 21

4.3.1 Le modèle de ROSE du Process State 22

4.3.2 Le modèle de ROSE du Process Engine 24

4.3.3 Le modèle de ROSE du Process GUI 25

4.4 Les besoins en acquisition 26

4.4.1 Les éléments à renseigner 26

4.4.2 Tâches à réaliser 26

4.5 Les besoins en exploitation 27

4.5.1 Les éléments à exploiter 27

4.5.2 Tâches à réaliser 27

5 Réalisation 30

5.1 Outils de réalisation 30

5.2 Description des GUI 31

5.3 Un scénario d'utilisation 31

5.4 Architecture Logicielle 31

5.5 Le déploiement des ROSE 35

5.6 Elaboration de la BC de MERISE 35

5.6.1 Artefacts de MERISE 37

5.6.2 Activités de MERISE 38

5.6.3 Roles de MERISE 38

5.6.4 Règles de validation des artefacts 38

6 Discussions & Conclusion 40

6.1 Rappel des objectifs 40

6.2 Intérêt du Process GUI 40

6.3 Avantages de PERSEE 41

6.4 Limites & Recherches futures 41

Bibliographie 43

A La structure d'un document XML i

A.1 La déclaration du type DOCTYPE i

A.2 La déclaration des notations i

A.3 La déclaration des entités i

A.4 La déclaration des éléments ii

A.5 La déclaration des attributs ii

B XML User interface Language iii

C Software Process Engineering Metamodel vi

C.1 Les éléments du processus vi

C.2 Les dépendances vii

Table des figures

2.1 Paradigme MVC 7

2.2 Description linéaire du processus RUP par IBM 9

2.3 Les trois (03) dimensions d'une base de connaissances 10

3.1 Représentation d'une interface en XUL 16

3.2 Interface XUL de la figure 3.1 générée par un interpréteur 16

4.1 Trois (03) niveaux de conception d'une interface 21

4.2 Le schéma UML du Process State 22

4.3 Dépendances entre les tâches d'acquisition 28

4.4 La démarche d'acquisition et d'exploitation 29

5.1 Créer un nouveau projet : choisir le processus 32

5.2 Créer un nouveau projet : spécifier l'emplacement 32

5.3 Création d'une entité dans l'activité Elaboration de la solution 33

5.4 Création d'un acteur dans l'activité Rechercher les acteurs et les cu 34

5.5 Architecture logicielle de PERSEE 35

5.6 La répartition physique des ROSE 36

5.7 La codification des ROSE 36

B.1 Code xul de l'interface spécifique B.2 iii

B.2 Interface spécifique de création d'un acteur iv

B.3 Code xul de l'interface spécifique B.4 iv

B.4 Interface spécifique de création d'une entité v

C.1 Le package Process Structure de SPEM [OMG 2002] vi

C.2 Le package Dependancies de SPEM [OMG 2002] vii

Résumé

Les systèmes à base de connaissances offrent des mécanismes permettant d'acquérir et de stocker les connaissances factuelles et les règles sur les processus de développement. Les connaissances ainsi acquises peuvent être exploitées pour l'apprentissage par des utilisateurs en quête du savoir faire sur un processus donné. On dénombre aujourd'hui plus d'une centaine de processus d'ingénierie logicielle, d'oii la difficulté de mettre en oeuvre une stratégie évolutive et adaptative afin d'exploiter les connaissances (faits et regles) sur celles-ci.

De plus, les utilisateurs d'un système interactif doivent accomplir certaines tâches structurées. L'Interaction Homme-Machine (IHM) doit donc avoir la même structure afin d'accomplir efficacement ces tâches. Découvrir une structuration adéquate de ces tâches du domaine et la restituer en interface utilisateur nécessite une expertise que beaucoup d'ingénieurs du logiciel ne possèdent pas. Nous proposons d'intégrer à l'acquisition et à l'exploitation des connaissances une troisième dimension : la dimension GUI (Graphic User Interface). Ainsi, nous pourrions décrire notre base de connaissances sur les processus de développement comme un ensemble d'objets réutilisables sur les connaissances factuelles, les règles, ainsi que les interfaces visuelles d'exploitation des processus de développement. Notre démarche s'appuie sur l'abstraction des interfaces; en effet, nous réalisons une catégorisation des interfaces; elle s'intéresse également aux attributs, méthodes, et à une abstraction des objets manipulés par celles-ci. L'apport de cette approche est de permettre une transparence dans l'exploitation des connaissances à des fins pédagogiques.

Nous mettons en oeuvre cela avec l'outil PERSEE (PERform Software Engineering on Education) qui est un outil d'assistance active au déroulement (enactment) des processus de développement.

Mots dles : base de connaissances, processus de développement, interface, objets réutilisables

Abstract

The Knowledge Base System offers mechanisms allowing to acquire and store factual knowledge and rules on the software engineering process. Knowledge thus acquired can be exploited for the training of learners who want to gain knowledge on a given process. Today, there are more than one hundred software process, the difficulty is to implement an evolutionary and adaptive strategy in order to exploit knowledge (facts and rules) on process.

In addition, the users of an interactive system has to accomplish certain structured tasks. The Human-Computer Interaction (HCI) then should have the same structure in order to achieve these tasks effectively. Discovering an adequate structuring of the domain tasks and restore it in user interface need an expertise that most software engineers do not have. We propose to integrate in the acquisition and the exploitation of knowledge a third dimension : dimension GUI (Graphic User Interface). Thus, we could describe our software engineering knowledge base like a whole of reusable objects on factual knowledge, rules, as well as visual interfaces of exploitation. Our apprach is based on the abstraction of interfaces; in fact, we carry out a typology of the dynamic and generic interfaces; we are also interested in the attributes, methods, and the abstraction of objects handled by these. The contribution of this approach is to allow transparency in exploitation of knowledge for teaching matters.

We implement this approch with PERSEE (PERform Software Engineering on Education) which is a active assistance tool to enactment of software process.

Keywords : knowledge base, software engineering process, interface, reusable objects

Remerciement s

Cette partie est probablement la plus difficile à rédiger dans un manuscrit de mémoire, et cela pour deux raisons : tout d'abord, c'est la plus personnelle; mais surtout c'est la seule partie qui va être consciencieusement lue par la famille, les amis ainsi que les collègues. Tout d'abord, je souhaite remercier Dr Roland YATCHOU, mon superviseur de recherche, pour sa patience et pour m'avoir soutenu (ou supporté) durant ces années. Je dois également avouer que si ce document est lisible, c'est en grande partie grace à ses talents de relecteur. Je tiens également à remercier Dr Claude TANGHA, Directeur du LABORIMA et Chef de Département du Génie Informatique, dont le soutien m'a été précieux, particulièrement lors des difficiles débuts de rédaction. D'une salve paternelle, il a su grace à ses conseils avisés et ses efforts de relecture me donner l'envie !d'amorcer la pompe".

Je remercie également les membres de mon jury. Mme Le Président du jury : Pr Laure Pauline FOTSO pour l'honneur qu'elle me fait en présidant ce jury. Parmi les membres du jury, je tiens à remercier Dr Marcel FOUDA pour la vision transcendante qu'il m'a donné du Génie Logiciel. Je suis également redevable pour beaucoup au Dr Guillaume KOUM. Je tiens également à remercier Dr Georges KOUAMOU pour l'initiation au Génie Logiciel et pour avoir accepté d'examiner ce travail.

Je mentionnerais ici que mes travaux ont été subventionnés par le laboratoire de Gestion, Diffusion et Acquisition des Connaissances (GDAC) de l'UQAM et Le Groupe Infotel (LGI). J'en remercie le Pr Roger NKAMBOU, Directeur du laboratoire et monsieur Raphael NBOGNI, Président de LGI dont les soutiens intellectuels et financiers ont été précieux.

Ces quelques lignes ne suffiront pas à exprimer un grand merci à tous ceux qui jour et nuit nous ont imprégnés des disciplines mathématique, physique & chimie, informatique, langues, ...durant ces six (06) années : nos enseignants.

Bien évidemment, je suis reconnaissant à toute ma famille (Charles, Chantal, Julienne, Alexis, Mary, Laëtitia, Joel, ...) et aux familles (Defo, Fono, Fotso, Kamga, Kaptué, Kengne, Momo, Piam, Tankeu, ...), ainsi que Michel, Charles, ... pour le soutien indéfectible qu'ils m'ont toujours accordé.

Enfin, j'aimerais remercier : Linda (pour avoir changé ma vie de pire à mauvais), la grande famille GI2003, mes collègues du Laborima, mes collègues de DEA, Ghislain, Hervé, Yves avec qui j'ai longtemps cheminé, ... Je ne saurais oublier de remercier la communauté anglophone du Centre Catholique Universitaire et celle des Frères Saint Jean de Vogt.

Sigles & Abréviations

BC : Base de Connaissances

BCPD : Base de Connaissances des Processus de Développement BD : Base de Données

BF : Base de Faits

BR : Base de Règles

CASE : Computer Aided Software Engineering

CIAO : Conception Intelligement Assistée par Ordinateur DTD: Document Type Definition GUI : Graphic User Interface

IHM : Interaction Homme-Machine MVC: Modèle Vue-Contrôleur OCL : Object Constraint Language

PERSEE : Perform Software Engineering on Education

RAS : Reusable Asset Specification

ROSE : Reusable Object for Software Engineering

RUP : Rational Unified Process SMA : Système Multi-Agents

SPEM : Software Process Engineering Metamodel

UML: Unified Modelling Language

XUL : XML-based User Interface Language XML : eXtensible Markup Language

Chapitre 1

Introduction

"Birds of a feather flock together"~ Old English adage

1.1 Assistance au déroulement des processus

Les processus de développement : assistance au déroulement, l'association est peut-être de trop, moins qu'on ne pourrait le croire. En effet, entre la nécessaire assistance avec des formations à la demande ou de la documentation et l'assistance fournie par les outils CASE', le chemin vers l'assistance active au déroulement des processus d'ingénierie logicielle est encore étroit. On progressera encore du côté des outils CASE, certes! On augmentera les formations et l'accès à la documentation, sürement! Pour autant, il n'y a guère de doute que l'assistance active restera indispensable et conquèrera un bon nombre d'ingénieurs du Génie Logiciel. Dans une proportion peut-être moindre il est vrai.

Déjà une décennie plus tôt, Nacer Boudjilida2 s'était interessé à ce domaine et avait élaboré un métamodèle d'assistance au déroulement des processus d'ingénierie logicielle. Par la suite, la multiplicité des processus n'a fait qu'apporter beaucoup d'eau à ce moulin. Car si cet article avait amené beaucoup à revoir la stratégie d'assistance, elle est demeurée du domaine de la spécification. Une décennie plus tard, devant l'intérêt de plus en plus croissant car mobilisant actuellement l'élite de recherche dans le Génie Logiciel, nous nous y sommes interessés pour la mettre en oeuvre.

Ainsi, assister était synonyme de guider, fournir des explications et contrôler les intervenants dans un projet au déroulement (mise en oeuvre réelle vs description linéaire). Cette assistance nécessitait d'élaborer les BCPD3, de les exploiter à l'aide d'un système d'assistance active. Pour plus de détails sur la nécessité d'utiliser des système à base de connaissances

'Computer Aided Software Engineering

2Modelling of Software Process Assistance, http :// www.loria.fr/ nacer/MyPubli.html 3Base de Connaissances des Processus de Développement

pour l'apprentissage, le lecteur se reportera à l'article de A. Stutt [Stutt 1997]. Nous présentons donc les BCPD4 dans la suite, ainsi que le système d'assistance.

1.2 Elaboration et Exploitation des BCPD

En se décomposant en Base de Faits (BF) et Base de Règles (BR), la Base de Connaissances (BC) est devenue l'élément fondamental du Knowledge Management (gestion des connaissances) pour la réutilisation des connaissances dans un domaine quelconque. A tel point que dans nos récents travaux [Konhawa 2003, Moghomaye 2003, Ngantchaha 2002], nous avons grace au formalisme UML/OCL [OMG 2003] construit les bases de connaissances des processus de développement MERISE [Nasser 2002] & RUP [Krol et al. 2003]. Ceci était un travail préalable à la mise en oeuvre d'un outil d'assistance à la modélisation à l'aide de la technologie des Multi-Agents. Nous avons ainsi élaboré les connaissances factuelles sur les éléments d'un processus, les règles sur les artefacts du processus (validation des artefacts), ainsi que les règles sur le déroulement du processus (dépen dances). Au delà de l'acquisition, l'outil a permis l'exploitation de ces connaissances factuelles, la validation des artefacts par rapport au processus et l'utilisation des règles sur le déroulement du processus pour assister (guider, contrOler, expliquer) le développeur dans le How To Do Knowledge" ou plus simplement la connaissance sur le savoir-faire.

1.3 PERSEE

L'approche avait consisté à fournir un outil d'assistance active à la modélisation, spécialement pour les disciplines d'Expression des Besoins, d'Analyse & Conception du RUP5. Il s'agissait de suivre et assister le développeur pendant la modélisation en s'assurant qu'il utilise un processus donné conforme à la spécification SPEM [OMG 2002]. C'est ainsi que nous avons élaboré un modèle d'assistance et l'avons mis en oeuvre avec un Système Multi-Agents d'Assistance à la Modélisation (SM2AM lire SM two AM). Nous partions du fait que la connaissance utile au développeur pouvait être représentée sous forme de "best practices" (bonnes pratiques), de guides, de méthodologies et autres éléments du processus. SM2AM fournissait cette connaissance et permettait ainsi de combler le fossé entre la pléiade de documents et les outils CASE UML.

PERform Software Engineering on Education (extension de SM2AM) est l'outil qui nous permet d'exploiter ces connaissances à des fins pédagogiques. L'introduction d'une troisième dimension à la base de connaissances est intéressante à plus d'un titre, on peut ainsi exploiter la base de connaissances d'un processus de développement pour l'une quelconque des

4Base de Connaissances des Processus de Développement 5IBM Rational Software, http : // www.ibm.com/rup/

phases de celui-ci dams PERSEE. En effet, SM2AM se limitait aux phases de modélisation, il est né des travaux amorcés dans le cadre du projet CIAO [Ngantchaha 2002].

1.4 Pourquoi une troisième dimension?

Mais après ceci, nous avons également élaboré la base de connaissances de MERISE afin de permettre son exploitation par le même outil. Cela n'a pas été facile, car il fallait penser et construire toutes les interfaces d'exploitation pour MERISE, ce qui n'était pas pour participer d'une démarche scientifique et évolutive.

Aussi avons nous opté pour l'acquisition même des interfaces d'exploitation et leur utilisation, d'oii la gémératiom dymamique d'imterfaces spécifiques dams l'exploitatiom des processus d'imgémierie logicielle em appremtissage.

Notre apport a déjà été de bâtir ce SMA, il est maintenant question d'intégrer la troisième dimension d'une base de connaissances à des fins pédagogiques. Nos travaux sont menés en parallèle avec ceux de KOM [Kom 2004] sur l'acquisition des connaissances sur les processus d'ingénierie. L'importance de cette dimension s'explique par le fait que la connaissance est accessible par la médiation d'une représentation comme le souligne Jean Charlet dans [Charlet 2002], que cette représentation soit un système de symboles ou tout autre langage. Le support de cette représentation, parcequ'il fournit un système supplémentaire de signifiants, par exemple l'interface d'un programme d'ordinateur, est aussi un système de médiation. Il y a ainsi non séparabilité de la connaissance et de sa représentation.

1.5 Plan du mémoire

Notre travail se subdivise en six (06) chapitres. Un aperçu global de celui-ci peut être obtenu en ajoutant à la lecture de l'introduction et de la conclusion celle des résumés fournis au début de chaque chapitre. Dans le second (02) chapitre, nous présentons la problématique de l'interfaçage dynamique. Cette dernière nous amène à évaluer la nécessité de celle-ci dans le contexte actuel et à présenter des projets accompagnés de solutions, existantes ou envisagées. Nous terminons par une analyse de ces différentes solutions afin de mieux élaborer la nôtre. Le troisième (03) chapitre présente la méthodologie adoptée. Il spécifie la démarche suivie, puis introduit les Objets Réutilisables et présente le XML User Interface Language. Des modèles de notre système sont présentés au chapitre quatre (04). Nous commençons par la typologie d'une interface, ses attributs et ses méthodes, les objets manipulés, ... Ensuite, nous proposons une démarche d'élaboration et d'intégration de celles-ci. Le chapitre cinq (05) s'intéresse davantage à la mise en oeuvre de la spécification de la solution dans l'environnement PERSEE.

En conclusion, des discussions et des perspectives au chapitre six (06) viennent clôre le travail réalisé. Le lecteur trouvera dans les annexes une brève présentation du langage XML, du métamodèle SPEM et la mise en oeuvre avec XUL des interfaces spécifiques.

Chapitre 2

Problématique

La question

Peut-on abstraire la définition des interfaces pour le déroulement d'un processus de développement à des fins pédagogiques?

a-t-elle une réponse plausible tenant compte des attributs, méthodes et objets manipulés par celles-ci?

Dans ce chapitre, nous présentons les motivations ayant sous-tendu nos travaux pour l'intégration d'une troisième dimension dans les bases de connaissances des processus de développement à l'aide des objets réutilisables. Ensuite, nous faisons un tour d'horizon des approches de résolutions existantes, puis un comparatif de celles-ci en termes d'avantages et d'inconvénients tenant compte des attributs de qualité logicielle. Mais avant, nous présentons la notion d'IHM.

2.1 Notions d'Interaction Homme-Machine

Hans V. Vliet résume l'Interaction Homme-Machine dans [Vliet 2002] à la résolution du problème suivant : comment rapprocher le plus possible le modèle mental de l'utilisateur (acquis par les formations et la documentation) du modèle conceptuel (modèle technique) d'une application? L'IHM est devenue le leimotiv de l'ingéniérie du domaine. On a ainsi assisté à l'émergence de plusieurs modèles d'IHM ayant toutes en commun la séparation des fonctionnalités du système, des interactions du système avec l'utilisateur. La décomposition largement adoptée aujourd'hui est le paradigme Modèle-Vue-Contrôleur' (MVC). La figure 2.1 présente les trois concepts du paradigme et les relations entre ces trois concepts et l'utilisateur. L'utilisateur se sert du contrôleur qui lui-même manipule le modèle, le modèle met à jour la vue qui est présentée à l'utilisateur. C'est dans un souci de séparation du

'MVC, http :// www.cs.indiana.edu/ cbaray/projects/mvc.html

contenu, du modèle et de la vue que nous vous présentons la nécessité des interfaces pour l'exploitation des connaissances sur les processus de développement en apprentissage.

FIG. 2.1 Paradigme MVC

2.2 D'ou vient le besoin d'un interfaçage dynamique?

Adopter un processus et le mettre en oeuvre c 'est, logiquement, une démarche qni consiste à instancier les artefacts, les consulter, les modifier et les supprimer au besoin; par des rOles précis au conrs d'activités spécifiqnes.

Le développement de logiciels de complexité croissante s'avère de plus en plus difficile aujourd'hui. Les développeurs apprennent continuellement les pratiques des nouvelles méthodologies de développement en les appliquant à leurs projets. Ces dernières elles mêmes de plus en plus complexes ne fournissent des résultats qu'après plusieurs années de mise en oeuvre dans divers autres projets et une adaptation conséquente au type de projet. Une approche de solution a été proposée dans [Moghomaye 2003] avec l'élaboration et l'exploitation d'une base de connaissances qui vient essayer de solutionner ce problème en permettant de capitaliser des connaissances et les mettre à la disposition du développeur à des fins pédagogiques

dans le cas du processus RUP2.

Aujourd'hui, l'évolution des methodologies de developpement a separe celles-ci du langage sous-jacent utilise; il y'a neanmoins une panoplie de langages ou plutôt de semantiques à prendre en compte dans l'exploitation des connaissances sur le processus. Pour illustrer notre propos : avec MERISE, on parle d'entites, associations, flux, graphe de dependances; avec RUP et les derives qui utilisent UML, on parle de classes, associations, diagramme de sequence, diagramme d'activite, . . . Alors, comment derouler un processus en faisant abstraction du langage, mieux, de la terminologie sous-jacente utilisee?

Alfred AHO dans [Aho et al. 1998] definissait l'informatique comme la mecanisation de l'abstraction, une science de l'abstraction où il s'agit de creer le bon modèle pour un problème et d'imaginer les bonnes techniques automatisables et appropriees pour le resoudre. On se demande donc comment mettre en oeuvre le processus de moulage des processus conformes au metamodèle SPEM.

Les systèmes à base de connaissances ont jusqu'ici abstrait deux (02) dimensions pour l'elaboration des bases de connaissances les plus complexes. Ce qui est assez singulier c'est qu'on ait fourni un effort considerable à l'elaboration beaucoup plus qu'à l'exploitation de celles-ci. En effet, très souvent l'exploitation se limite à une restitution plus ou moins lineaire (voir figure 2.2 l'outil RUP de IBM3 Rational Software) à la manière des livres des connaissances factuelles sur le processus [Nasser 2002, Krol et al. 2003]. Ceci etant très souvent l'agent vecteur d'une surcharge cognitive de l'apprenant. Pourtant, au-delà de l'interêt que nous avons toujours voue aux systèmes à base de connaissances sur ces deux (02) dimensions, nous pensons qu'il faudrait y integrer à des fins pedagogiques une troisième : la dimension GUI qui consiste à decrire les interfaces d'apprentissage (voir figure 2.3).

On peut se demander, en faisant une analogie avec les Bases de Donnees, de l'utilite de munir les Bases de Connaissances de Processus d'interfaces specifiques pour l'exploitation. En effet, l'approche est assez deplacee vu le contexte actuel des BD, on ne saurait munir les donnees d'interfaces specifiques pour les exploiter, ce serait contraindre leur utilisation. Mais, il faudrait se dire que la BD stocke des donnees tandis que la BC stocke des connaissances; une connaissance étant une ou plusieurs donnée(s) et des informations sur celle(s)-ci. D'ohi peut-être la necessite de gerer des interfaces d'exploitation. On peut egalement se demander si cette approche couplee aux technologies XUL pour la description des interfaces, et XSL pour le formatage et la presentation ne serait pas idoine pour les BD, car il est communement admis que l'on effectue generalement sur les donnees les operations d'ajout, de consultation, de mise à jour et de suppression. Et aussi des interfaces permettant d'exploiter les mêmes donnees ne diffèrent très souvent que par l'Interface Homme Machine qui concerne beau-

2pational Unified Process

3IBM Rational Software, http ://www.ibm.eom/rational/

FIG. 2.2 Description linéaire du processus RUP par IBM

FIG. 2.3 Les trois (03) dimensions d'une base de connaissances

coup plus les aspects de style. De plus, ce ne serait pas nouveau, l'approche de Microsoft Access qui permet de monter des projets de bases de données avec des interfaces prédéfinies et modelables va dans ce sens. Néanmoins, il sera peut-être difficile de définir un standard pour les objets (tables) manipulés car ne les connaissant pas à priori : une base de données pouvant servir à plusieurs applications dans différents domaines contrairement à une base de connaissances.

Il s'agit donc pour nous de fournir des préalables à l'élaboration et l'exploitation des objets réutilisables des processus de développement afin d'intégrer effectivement ces trois (03) dimensions.

2.3 Comment cela se résout-il généralement?

Nous allons dans la suite nous intéresser à la manière dont les outils d'exploitation font la mise à jour des connaissances 'visuelles ' impliquant une modification de l'interface utilisateur. Il existe globalement trois (03) approches, nous ne saurions donner des exemples exhaustifs d'outils adoptant ces différentes méthodologies car ce domaine reste, est, et sera toujours en amont du produit logiciel présenté aux utilisateurs finaux. On peut ainsi disposer de trois (03) classifications qui consistent à :

- Générer automatiquement du code, le compiler et l'intégrer manuellement;

- Mettre en oeuvre des interfaces génériques prenant en compte tous les types de langages ou définir un langage propre;

- Permettre de décrire les interfaces au niveau de l'acquisition des connaissances et disposer d'un interpréteur.

2.3.1 Générer du code, le compiler et l'intégrer

Partant du fait que des processus, ne sont pas créés tous les jours, on peut se dire que si nous disposons d'un outil d'exploitation des connaissances à des fins pédagogiques, on pourrait à chaque nouveau processus, rajouter le code correspondant, le compiler et l'intégrer ou même produire une nouvelle version. C'est l'approche classique très utilisée. On y gagne en temps car il y a réutilisation du code existant. Par contre, on y contraint l'expertise d'un développeur qui prendra du temps à s'imprégner s'il ne l'est pas encore. Un exemple parlant est l'outil WayPointer de Jaczone4. Des outils tels Castor d'Exolab5 et Zeus6 du projet Enhydra permettent même de générer du code Java à partir d'une DTD (Document Type Definition).

2.3.2 Mettre en oeuvre des interfaces génériques

Très souvent, on préfère s'affranchir des contraintes liées à la codification de nouvelles interfaces en mettant en oeuvre des interfaces génériques une fois pour toute. Leur généricité se manifeste par le fait qu'elles représentent un modèle du domaine et une instance de cellesci est un couplage interface générique -f paramètres du domaine en cours. C'est l'approche la plus utilisée, notamment dans les outils de télé-enseignement et les progiciels.

2.3.3 Offrir un moyen de décrire une interface

Entre l'approche particulière et l'approche générique, il y'a l'approche descriptive qui consiste à permettre à l'expert du domaine de décrire une interface, d'un côté et à l'interpréter au niveau de l'exploitation. Des outils tels Protégé7 2000 du MIT de Standford l'ont implémenté. Les éditeurs GLADE8 et Théodore9 permettent de générer des interfaces au format XUL.

A titre d'exemple, Avalon'°, la nouvelle couche graphique du futur système d'exploitation Windows Longhorn de Microsoft sera piloté par le langage propriétaire XAML (eXtensible Application Markup Language) dérivé du langage XML et proche de XUL. La nuance "applicative (au niveau de l'implémentation, car conceptuellement il est équivalent à XUL) du XAML : c'est en fait un langage pour réaliser des interfaces visuelles riches et unifiées dédiées aux applications Windows. C'est un sérieux concurrent pour XUL qui est largement adopté

4Jaczone, http : // www.jaczone.com 5Projet Castor, http :/ / castor.exolab.org 6Projet Zeus, http :// zeus.enhydra.org 7MIT, http :// www.mit.edu

8GLADE, http : // glade.gnome.org/

9Théodore, http :// www.carlsbadcubes.com/theodore/

'°http : //www.laboratoire_microsoft .org/articles/win/longhorn/

par la communaute du libre. Il existe egalement d'autres initiatives, notamment Macromedia XML (MXML11) de Macromedia, XML Data Package (XDP'2) d'Adobe.

2.4 Une appreciation de ces methodologies

Une appreciation de ces methodologies en terme de qualite logicielle est faite en tenant compte des aspects fonctionnel, fiable, convivial, performant, maintenable et portable, qui sont les caracteristiques de qualite selon ISO 9126 (voir /Vliet 2002]). Nous allons situer les attributs de qualite dans le Genie Logiciel, ainsi que le resultat de la comparaison par rapport à ceux-ci conformement au tableau presente plus loin.

Fonctionnel La capacite du logiciel à fournir des fonctions qui satisfont les besoins specifies et implicites lorsque le logiciel est utilise dans des conditions specifiees. Pour l'aspect fonctionnel, il est assez explicite qu'une application realisee en tenant compte des besoins de l'utilisateur est probablement plus fonctionnelle que celle où on a eu à decrire les interfaces (en effet, la description est contrainte par la méthodologie adoptée et le dégré d'abstraction souhaité), encore plus celle qui encapsule tous les besoins de l'utilisateur en les adaptant à elle.

Fiabilité La capacite du logiciel à maintenir un niveau de performance du système lorsqu'il est utilise dans les conditions specifiees. L'impact d'une mise à jour impliquant une modification du code source est toujours difficile à prevoir sur la fiabilite du système contrairement à une approche descriptive où le code source ne subit pas de modification.

Convivialité La capacite du logiciel à être compris, appris, utilise et accepte par les utilisateurs, lorsqu'il est utilise dans les conditions specifiees. En effet, il est peut-être plus facile pour un utilisateur d'apprendre une interface et de s'y adapter que de s'adapter à de perpetuelles modifications.

Performance La capacite du logiciel à fournir les performances requises, relative à l'ensemble des ressources utilisees, sous les conditions de depart. Etant specifiques, les interfaces et programmes construits avec l'approche de generation du code pourraient être facilement optimisables en tenant compte des ressources disponibles.

Maintenabilité La capacite du logiciel à être modifie. Les modifications contiennent les corrections, les ameliorations ou l'adaptation du logiciel aux changements dans l'environnement, et dans les besoins et specifications fonctionnelles. L'approche de generation est peut-être beaucoup moins evolutive que la description qui permet de tenir

11Macromédia, http :// www. macromedia. com/devrnet/flex/articles/paradigm.html '2XML , http :// xml. coverpages. org/rii2003- 07-15- a. html

compte de tous les aspects nouveaux dans l'environnement.

Portabilité La capacite du logiciel à être transfere d'un environnement à un autre.

Nous utiliserons trois (03) qualificatifs, +, . et - pour signifier respectivement le classement; premier, deuxième et troisième pour l'attribut specifie.

Approches

Integration

Genericite

Description

Fonctionnel

+

-

.

Fiabilite

-

.

+

Convivialite

-

+

.

Performance

+

-

.

Maintenabilite

-

.

+

Portabilite

-

.

+

Pour nous resumer, disons que l'integration necessite un investissement (en terme de temps, co2t) initial faible, elle a la particularite d'être simple au niveau de l'acquisition car on sait exactement ce qu'on traite. De plus, l'exploitation depend de la mise en oeuvre realisee. Neanmoins, cette solution n'est pas evolutive et sa fiabilite reste à demontrer, voir l'exemple du vol 501 de Ariane 5 dans [Vliet 2002]. Pour la genericite, l'investissement est moyen avec une acquisition beaucoup moins complexe. Neanmoins l'exploitation est contraignante car assez standard. L'investissement initial est assez eleve pour la description qui fournit une exploitation aisee car adaptee, bien que l'acquisition soit assez complexe si on envisage un domaine peu evolutif, mais benefique à long terme pour un domaine en constante evolution. Nous avons donc opte pour la description des interfaces compte tenu de la fiabilite, la maintenabilite et la portabilite de cette approche.

Chapitre 3

Méthodes & Concepts

Au coeur de notre travail, il y'a les objets réutilisables, le langage XUL' que nous présentons, soutendus par une approche méthodologique. Il s'agira en fait d'utiliser le langage et un interpréteur XUL pour l'élaboration et l'exploitation dynamique des interfaces spécifiques. Ensuite, de les joindre aux objets de la base de connaissances pour constituer les objets réutilisables des processus de développement (Reusable Objects for Software Engineering). Mais avant d'aller présenter la démarche, prenons le soin de situer quelques concepts nécessaires pour la suite à savoir les objets réutilisables et le langage XUL.

3.1 Les objets réutilisables

La réutilisation en Génie Logiciel est correlée à l'architecture logicielle très souvent. Une architecture logicielle doit donc fournir un contexte pour le développement de modules réutilisables. Aussi avons nous opté pour une réutilisabilité dans la dimension substance utilisée ou contenu avec les objets réutilisables dans la BCPD.

Les objets réutilisables ne sont pas des objets au sens d'instance de classe, ce ne sont pas des objets au sens de composants logiciels, mais c'est des objets au sens de produit permettant de stocker la connaissance et la manière dont cette connaissance sera utilisée. C'est ce que nous avons nommé 'Reusable Object' pour le Génie Logiciel ou plus simplement Reusable Objects for Software Engineering. Sans pour autant véhiculer des informations, ces objets réutilisables se rapprochent beaucoup plus des objets d'apprentissages définis par [Nelson et al. 1997, Nelson 1998, Wiley 2002].

La définition de ces objets dans la BCPD a été guidée par l'ontologisation du domaine des processus d'ingénierie logicielle avec le métamodèle SPEM. Leur mise en oeuvre a été inspirée de l'approche de Falbo qui propose des démarches pour le passage de l'ontologie du domaine aux objets réutilisables [Falbo et al. 2002].

'XML-based User Interface Language, prononcé !zoolU

3.2 Le langage XUL

XUL (XML-based User Interface Language, prononcé 'zool') est un langage de description d'interfaces homme/machine dérivé de XML2 (eXtensible Markup Language). Il est né du projet open source de Mozilla3. La norme XUL se propose de standardiser la manière dont les interfaces sont décrites et exploitées. Sa puissance de description est telle qu'il per-met de définir une application aussi complexe qu'un navigateur Web (XUL est au coeur de Mozilla et de Netscape 6). Certains voient en lui le concurrent de Java sur le poste client : il existe des interpréteurs pour toutes les plates-formes, XUL est donc un langage de description d'interface portable. Certains à l'instar de Frédéric Bordage proposent la relève des architectures client serveur (client lourd) et du web (client léger) par ce qu'il qualifie de Client Riche bâti sur XUL et à mi-chemin entre les deux (02) en corrigeant leurs différents défauts (voir l'article sur 01net4). De plus, XUL étant un dérivé de XML, il ne nécessite pas de compétences informatiques pointues.

Nous illustrons XUL avec un exemple de code XUL (voir la figure 3.1) et l'interface visuelle correspondante générée par un interpréteur (voir la figure 3.2).

Ce langage se fait encore discret, pourtant, il est à l'origine d'une nouvelle vague d'applications: étant écrit en XML, il est diffusable sur le Web simplement. Aucune documentation de référence n'est encore disponible, néanmoins on peut trouver des drafts5, ainsi que des interpréteurs swixml, luxor, XUI, thinlet, ...

3.3 L'approche methodologique

Ici, nous nous intéressons aux méthodes adoptées par les outils d'exploitation pour exploiter les connaissances 'visuelles' contenues dans les BC en considérant une exploitation active vs exploitation passive. Vu ainsi, cela pourrait justifier que nous ayons adopté la troisième approche celle d'abstraire les interfaces pour l'exploitation. Mais cela implique également de s'intéresser à leur acquisition pour les générer dynamiquement. Nous devons nous assurer qu'on peut acquérir les connaissances sur les processus de développement et les exploiter. Une partie de ce travail a déjà été réalisée au cours de nos précédents travaux [Konhawa 2003, Moghomaye 2003]. Il faudrait maintenant y intégrer la dimension GUI. Nous allons pour cela réaliser une typologie des interfaces, ensuite, celle-ci nous servira à mettre en oeuvre des interfaces d'acquisition de connaissances sur les processus dans la troisième dimension. Nous nous tournerons aussi vers l'exploitation de ces connaissances, toujours aidé

2Standards de XML, http :// www.xml.org

3Site des projets de Mozilla, http :// sourceforge.net

4Cliemt Riche : La relève du client serveur et du Web, http ://www.01met.eom

5XUL Planet, http : // www.xulplanet .org

FIG. 3.1 Représentation d'une interface en XUL

FIG. 3.2 Interface XUL de la figure 3.1 générée par un interpréteur

par la typologie et un interpréteur XUL, afin de rendre l'outil d'exploitation prêt à acceuillir un quelconque processus. Le choix de XUL s'est fait en tenant compte que, étant un dérivé de XML, on pourrait y coller des feuilles de style pour avoir des interfaces respectant la présentation IHM souhaitée, d'oii le fait que nous n'ayions pas accordé plus d'importance aux IHM. Au passage, nous allons construire et exploiter les objets réutilisables des processus de développement. Nous pourrons ainsi faire de PERSEE un process engine ou encore un outil permettant de dérouler un quelconque processus de développement conforme SPEM [OMG 2002].

Chapitre 4

Modélisation

'Useful abstractions are discovered, not invented' R.E. Johnson & B. Foote in Journal of Object Oriented Programming, 1(1), 1988

Ce chapitre présente une spécification formelle et semi-formelle du modèle d'interfacage proposé; puis, les propriétés et méthodes de celles-ci sont analysées, ainsi que les relations avec les objets manipulés dans la typologie de l'interfacage. Il définit également un modèle d'objets réutilisables pour les processus de développement qui découle de la spécification formelle. Nous définissons enfin une démarche pour l'acquisition et l'exploitation de ces objets.

4.1 Une specification formelle des interfaces

4.1.1 Pourquoi une specification formelle?

Nous voulons pouvoir générer dynamiquement des interfaces spécifiques (en ce sens qu'elles concernent un domaine précis) dans l'exploitation des processus d'ingénierie logicielle. Ceci implique de s'intéresser aux objets manipulés que sont les interfaces et aux processus d'acquisition et d'exploitation de celles-ci. La spécification formelle des interfaces permet de s'entendre sur les objets manipulés et d'en extraire des propriétés intéressantes pour leur manipulation. Ceci guidera l'élaboration des modèles d'objets réutilisables. Mais avant, définissons quelques observations empiriques. La spécification semi-formelle sommaire suivra pour résumer la modélisation des interfaces.

4.1.2 Quelques observations preliminaires

Les intuitions qui suivent proviennent d'observations essentiellement empiriques.

Intuition 1. L'ensemble des operations rCalisables sur les artefacts manipulCes par un processus contient quatre (04) operations : ajouter, consulter, modifier, supprimer.

Intuition 2. Il existe quatre (04) types d'interfaces dans la gestion des artefacts : les interfaces d'ajout, de consultation, de modification et de suppression.

Intuition 3. Toutes les interfaces prennent en entrée un artefact du processus et produisent en sortie l'artefact modifié. Donc chaque interface ne manipule qu'un unique artefact.

Illustration 1. Prenons le cas simpliste où nous voulons établir une association entre deux (02) artefacts, on peut se dire que l'interface concernée aura à manipuler deux (02) artefacts, mais on peut également se dire (ce qui nous sied le mieux) qu 'une association est un artefact avec comme attributs des liens logiques vers les artefacts associés.

Intuition 4. Les champs d'une interface sont un sous-ensemble des attributs du type d'artefact manipulé par celle-ci.

Trois (03) concepts se dégagent d'une interface : les attributs de celle-ci, ses méthodes et l'objet manipulé. Ces éléments vont nous permettre de définir un principe de conception des interfaces.

4.1.3 Principe de conception des interfaces

Definition 1. Principe de conception des interfaces pour l'exploitation des connaissances sur les processus

Nous proposons de disposer de trois (03) niveaux pour la conception des interfaces pour l'exploitation des connaissances sur un processus : le niveau lexical, le niveau sémantique et le niveau syntaxique, voir figure 4.1.

1. Le niveau lexical concerne la description des attributs de l'interface, on parlera de lexique d'une interface,

2. Le niveau sémantique quant à lui permet de décrire les actions associées à l'interface, on parlera de sémantique d'une interface,

3. Le niveau syntaxique s 'occupe des objets ou artefacts manipulés par cette interface, on parlera de syntaxe d'une interface.

Ce principe qui décrit les trois (03) niveaux de conception d'une interface guide le typage des interfaces que nous présentons ci-dessous.

4.1.4 Typologie de l'interfacage

Soit I l'ensemble des interfaces associées à un processus, A l'ensemble des artefacts de ce processus et O l'ensemble des opérations applicables sur les interfaces,

Definition 2. L'ensemble des opérations sur les interfaces peut-étre partitionné en quatre (04) sous-ensembles distincts :

~ Les opérations de création d'un artefact,

~ Les opérations de consultation d'un artefact, ~ Les opérations de modification d'un artefact,

Les operations de suppression d'un artefact.

La sCmantique d'une interface ne peut donc prendre que l'une des valeurs : creation, consultation, modification ou suppression.

Definition 3. Soit f : A x O ? I, la fonction de correspondance d'un couple (artefact,operation) à une interface, alors :

ViEI, ? ! (a,o)EAxO telque i=f(a,o)

f est bijective. On peut ainsi associer une unique interface à tout couple (artefact,methode).

Illustration 2. Une interface ne manipule qu'un unique artefact (voir Intuition 3), nous avons distinguC quatre (04) types d'opCrations rCalisables sur un artefact (voir Intuition 1) et Cgalement quatre (04) types d'interface (voir Intuition 2), la correspondance et l'unicitC sont vite Ctablies.

Definition 4. Soit f de la definition 3,

Vo E O,

Va=a1,a2,--- ,am E A, m E N,

| {z }

m attributs

Vi = i1, i2, - - - , in E I, n E N,

| {z }

n attributs

{

{i1,i2,...,in} c {a1,a2,...,am}

i = f(a,o) =o = semantique(i).

Le lexique d'une interface est un sous-ensemble des attributs de la syntaxe de celle-ci. De méme, la sCmantique d'une interface est l'opCration que celle-ci realise sur la syntaxe. Plus simplement, l'ensemble des attributs manipulCs par une interface i en correspondance avec l'artefact a est un sous-ensemble des attributs de celui-ci.

Il ressort de la typologie que le nombre d'interfaces nécessaires à un processus donné comportant n types d'artefacts est au pire des cas égal à 4 *n. La spécification formelle nous permettra de définir des modèles de ROSE pour les interfaces. De celle-ci découle une spécification semi-formelle beaucoup plus proche d'un modèle 'informatique de la représentation des interfaces.

4.2 Une specification semi-formelle des interfaces

La spécification semi-formelle se résume au modèle présenté à la figure 4.1. Ce modèle présente les trois (03) niveaux de conception d'une interface. Une interface munie de son lexique est en relation avec une opération qui constitue sa sCmantique ; également en relation

FIG. 4.1 Trois (03) niveaux de conception d'une interface

avec un artefact qui constitue sa syntaxe. Les attributs des classes présentées sont les mêmes que ceux des entités correspondantes dans le modèle de ROSE. Ces différentes spécifications vont nous permettre d'élaborer le modèle de ROSE du paragraphe suivant en complément du modèle semi-formel.

4.3 Un modèle de ROSE

modelrose Le triplet (a, o, i) ? A × O × I tel que i = f(a, o) sera qualifié d'objet réutilisable sur les processus de développement dans la dimension GUI constituant ici le Process GUI. Les éléments du processus selon le métamodèle SPEM' seront dénommés objets réutilisables sur les processus dans la dimension BF dont l'ensemble constitue le Process State. Enfin, les règles sur les artefacts du processus se verront attribuer le qualificatif objet réutilisable sur les processus dans la dimension BR dont l'ensemble constitue le Process Engine. Les dénominations Process GUI, Process State et Process Engine ont été empruntées à Bob Balzer qui s'était intéressé aux perspectives futures de la technologie du Génie Logiciel en 1999 dans [Balzer 1999].

Nous définissons la base de connaissances d'un processus de développement (BCPD) comme un entrepôt d'objets réutilisables (Object Repository for Software Engineering). Dans la suite, nous allons tour à tour présenter le modèle de ROSE sous forme de DTD essentiellement (ce choix est justiflé par le fait que nos connaissances factuelles, les règles et les interfaces sont stocicées sous forme de fichier XML) que nous définissons suivant chacune des dimensions d'une base de connaissances.

'Object Management Group, http :// www.omg.org

4.3.1 Le modèle de ROSE du Process State

Le modèle de ROSE du Process State s'appuie sur une spécialisation de la structure du processus suivant le métamodèle SPEM [OMG 2002]. En effet, nous avons utilisé la spécification SPEM et y avons ajouté des éléments afin de faciliter l'exploitation, conformément à nos objectifs pour constituer le modèle de ROSE. Nous avons donc obtenu après une étude,

FIG. 4.2 - Le schéma UML du Process State

le schéma de la figure 4.2, et la DTD qui suit a été obtenue en transformant ce modèle UML et en faisant les hypothèses et choix suivants :

Pendant la transformation, pour une association père fils, le père contient des identifiants vers l'ensemble de ses fils et chaque fils a une référence sur son père.

~ Bien qu'un WorkProduct puisse avoir plusieurs représentations, pour simplifier, nous
supposerons qu'à un moment donné, il ne peut avoir qu'une seule représentation.

- Pendant la transformation, pour une association many-to-many, il faut : soit faire un choix et privilégier un sens de l'association, soit créer un ensemble de références de chaque côté de l'association sur le côté opposé.

- On privilégie l'association de Iteration vers WorkDefinition; pour obtenir l'autre sens,

on pourra parcourir la liste des itérations.

-- On privilégie l'association de WorkDefinition vers Activity; pour obtenir l'autre sens, on pourra parcourir la liste des WorkDefinition.

-- On crée deux (02) nouveaux éléments Entree et Sortie au niveau de Activity qui représentent les WorkProducts en entrée et en sortie d'une activité. On crée également deux (02) nouveaux éléments Entrant et Sortant au niveau de WorkProduct qui représentent les activités qui prennent en entrée (resp. en sortie) ce WorkProduct pour des besoins de navigation.

Description devrait normalement se transformer en attribut de chacun des éléments, mais nous avons choisi de le garder comme un élément par souci d'ergonomie de nos fichiers résultants. En effet, compte tenu du fait que ce champ peut avoir une longueur de caractères assez importante, le prendre comme attribut rendrait le document touffu.

-- ProcessPerformer est implémenté comme un attribut de ProcessRole. En effet, on peut retrouver la description de ProcessPerformer à partir de celle des ProcessRole correspondants. De plus, sur le schéma, le ProcessPerformer n'est en relation qu'avec le ProcessRole, d'oii ce choix.

<!D O CTYPE ProcessState PUBLIC "*. dtd"> <!-- Description -->

<!ELEMENT Description (#PCDATA)>

<!-- Phase -->

<!ELEMENT Phase (Description,Iteration *)> <!ATTLIST Phase id NMTOKEN #REQUIRED> <!ATTLIST Phase name CDATA #REQUIRED> <!ATTLIST Phase visibility NMTOKEN #REQUIRED> <!-- Iteration -->

<!ELEMENT Iteration (Description, WorkDefinition*)> <!ATTLIST Iteration id NMTOKEN #REQUIRED> <!ATTLIST Iteration name CDATA #REQUIRED> <!ATTLIST Iteration visibility NMTOKEN #REQUIRED> <!-- WorkDefinition -->

<!ELEMENT WorkDefinition (decription,Activity*)> <!ATTLIST WorkDefinition id NMTOKEN #REQUIRED> <!ATTLIST WorkDefinition name CDATA #REQUIRED> <!ATTLIST WorkDefinition visibility NMTOKEN #REQUIRED>

<!-- Activity -->

<!ELEMENT Activity (Description,ProcessRole,Entree,Sortie,Step -i-)>

<!ATTLIST Activity id NMTOKEN #REQUIRED> <!ATTLIST Activity name CDATA #REQUIRED> <!ATTLIST Activity visibility NMTOKEN #REQUIRED> <!ProcessRole>

<!ELEMENT ProcessRole (Description,Activity *, WorkProdtct *)> <!ATTLIST ProcessRole id NMTOKEN #REQUIRED> <!ATTLIST ProcessRole name CDATA #REQUIRED> <!ATTLIST ProcessRole visibility NMTOKEN #REQUIRED> <!ATTLIST ProcessRole processPerformer CDATA #REQUIRED>

<!WorkProdtct>

<!ELEMENT WorkProdtct (Description,Representation,ProcessRole,Entrant,Sortant)>

<!ATTLIST WorkProd'uct id NMTOKEN #REQUIRED>

<!ATTLIST WorkProd'uct name CDATA #REQUIRED> <!ATTLIST WorkProdnct visibility NMTOKEN #REQUIRED>

<!ATTLIST WorkProdnct kind (report/model/gaide)> <!A TTLIST WorkProd'uct isDeliverable #PCDATA> <!-- Entrant -->

<!ELEMENT Entrant (Description,Activity*)> <!Sortant>

<!ELEMENT Sortant (Description,Activity*)> <!-- Entree -->

<!ELEMENT Entree (Description, WorkProdtct*)> <!-- Sortie -->

<!ELEMENT Sortie (Description, WorkProdtct*)> <!Step>

<!ELEMENT Step (Action *)>

<!ATTLIST Step id NMTOKEN #REQUIRED> <!ATTLIST Step name CDATA #REQUIRED> <!ATTLIST Step visibility NMTOKEN #REQUIRED> <!-- Action -->

<!ELEMENT Action (#PCDA TA)>

<!ATTLIST Action id NMTOKEN #REQUIRED> <!ATTLIST Action name CDATA #REQUIRED> <!ATTLIST Action visibility NMTOKEN #REQUIRED> <!ATTLIST Action interface #PCDATA> <!-- Discipline -->

<!ELEMENT Discipline (Description,ProcessRole -/-,Activity-/-, WorkProdtct-/-)>

<!ATTLIST Discipline id NMTOKEN #REQUIRED> <!ATTLIST Discipline name CDATA #REQUIRED> <!ATTLIST Discipline visibility NMTOKEN #REQUIRED>

La notion d'artefact en génie logiciel fait référence à trois types de production : le rapport, le modèle (on élément de modèle) et le guide. Nous supposerons dans la suite que nous ne traitons que de ceux-là. En effet, il s'avère compliqué de définir jusqu'à la typologie des rapports, cela pourrait contraindre l'utilisateur et nécessiterait un travail assez ennuyeux pour l'expert du domaine. Pour ce qui est des guides, il suffit au moment de renseigner les connaissances sur les processus de les fournir préalablement élaborés sous des formats html, pdf ou doc.

4.3.2 Le modèle de ROSE du Process Engine

Nous ne nous étendrons pas sur le modèle de ROSE du Process Engine, nous donnerons d'abord une explication sur l'importance des règles.

Si on se refère aux outils CASE qui ont également des règles de validation, on peut se demander à quoi bon refaire tout ceci; mais en y regardant de plus près on verra que les outils CASE s'intéressent à la vérification des artefacts par rapport au langage sous-jacent utilisé. Tandis que la validation des artefacts par rapport au processus consiste à s'assurer que ceux-ci sont conformes au déroulement du processus.

Les règles de validation proviennent essentiellement du package Dependancies de SPEM [OMG 2002]. Celui-ci propose cinq (05) types de dépendances pour un processus :

Precedes Spécifie qu'une Activity (ou un WorkProduct) précède une (ou un) autre.

Import Permet de spécifier qu'un élément du processus est importé pour appartenir à l'élément qui l'importe.

RefersTo Pour spécifier qu'un élément du processus réfère à un autre et s'assurer ainsi qu'ils sont inclus dans le même composant du processus.

Impact Relation entre deux WorkProduct du processus pour spécifier que la modification du premier peut avoir un impact sur le second.

Categorizes Permet de regrouper les éléments du processus de manière statique dans des packages.

Nous préconisons d'utiliser un moteur de règles à l'instar de QuickRules2 offrant une interface visuelle pour renseigner les règles sur les artefacts du processus et une interface d'exploitation de ces règles au format XML avec un programme Java. Nous nous réfèrerons donc à la DTD de Quickrules : QRML disponible en Open Source. On pourrait bien évidemment envisager de définir un modèle pour les ROSE du Process Engine et ainsi, ne pas dépendre d'un éditeur quelconque, mais il faudrait égalemment implémenter un moteur de règles conséquent. D'oii l'adoption de la DTD de QuickRules.

4.3.3 Le modèle de ROSE du Process GUI

Le modèle de ROSE du Process GUI dérive un peu de la spécification semi-formelle des interfaces (voir le paragraphe 4.2 et la figure 4.1), nous y avons rajouté des attributs afin de mieux l'étoffer.

<!D O CTYPE Process GUI PUBLIC "processstate. dtd "> <!-- Type Operation -->

<!ENTITY %TOperation (create/read/write/delete)> <!-- Lien Interface XUL -->

<!ENTITY %TView #PCDATA>

<!-- Liste des ElEments du lexique -->

<!-- avec pour chacun les contraintes sur les valeurs --> <!ENTITY %LProp #PCDATA>

<!Interface>

<!ELEMENT Interface (Description, WorkProduct, Operation)> <!ATTLIST Interface id NMTOKEN #REQUIRED> <!ATTLIST Interface name CDATA #REQUIRED> <!ATTLIST Interface visibility NMTOKEN #REQUIRED> <!ATTLIST Interface view %TView #REQUIRED> <!ATTLIST Interface propertylist %LProp #REQUIRED> <!-- Operation -->

<!ELEMENT Operation (Description)>

<!ATTLIST Operation id NMTOKEN #REQUIRED> <!ATTLIST Operation name CDATA #REQUIRED>

2QuickRules , http : // www.quickrules.com

<!ATTLIST Operation visibility NMTOKEN #REQUIRED> <!ATTLIST Operation type %TOperation #REQUIRED>

Ces différents modèles nous ont permis de définir les besoins en acquisition et en exploitation des ROSE dans la suite. Cette démarche est générale et s'intéresse aux éléments à renseigner et exploiter, ainsi qu'aux tâches à réaliser.

4.4 Les besoins en acquisition

4.4.1 Les éléments à renseigner

L'acquisition consistera à renseigner les éléments du Process State, à savoir : - Discipline

WorkDefinition

- ProcessRole

- Activity

- Iteration

- Phase

Representation

- WorkProduct

Une seconde étape consistera à renseigner pour chaque interface :

- La méthode associée à cette interface (créer,modifier,consulter,supprimer), elle permet de différencier les interfaces associées à un WorkProduct,

~ Le WorkProduct concerné choisi dans l'ensemble des WorkProduct préalablement renseignés,

- La description sommaire de l'interface.

Et pour chacun des champs ou attributs d'une interface, on renseignera :

- Le nom du champ,

- Le libellé du champ correspondant au label qui sera affiché,

~ Le type du champ (numérique, texte, image, ...),

- Le renseignement du champ qui représente ici la plage de valeurs (source) par exemple un champ peut être une liste de choix entre les différents WorkProduct.

4.4.2 Tâches à réaliser

Il s'agira donc de :

1. Fournir des interfaces permettant de renseigner les éléments ci-dessus cités dans un ordre efficient,

2. Proposer quatre (04) modèles d'interface adaptable (ajout, consultation, modification et suppression),

3. Spécifier les différentes représentations dans un fichier. Nom, description de la représentation et nom de l'icône associée (au format PNG 16x16) qui doit être copié dans un répertoire précis. Par défaut, on proposera les représentations UML pour les work-Product et RUP pour les autres éléments du processus, et on laissera l'utilisateur choisir,

4. Enregistrer les interfaces dans des fichiers XUL codifiés,

5. Renseigner les dépendances

~ Précédence : gérée par la définition des WorkDefinition,

- Import : gérée par une Activity qui importe des WorkProduct en entrée/sortie, Refers To : gérée par la définition des Discipline,

~ Impact : gérée dans la définition des WorkProduct de regroupement,

- Catégorizes : gérée par la définition des Discipline, WorkProduct, ProcessRole et Activity.

6. Pour chacun des WorkProduct, permettre de spécifier les règles de validation en proposant un modèle de projet adaptable sous QuickRules.

7. Bien évidemment, s'assurer que les fichiers .xul produits sont valides pour l'interpréteur utilisé au niveau de l'exploitation. Idem pour les règles de validation sous QuickRules.

Les dépendances en terme de précédence entre les différentes tâches spécifiques à l'acquisition sont présentées à la figure 4.3.

4.5 Les besoins en exploitation

Les éléments des BCPD étant élaborés après le processus d'acquisition, l'exploitation dépend essentiellement de l'orientation qu'on voudrait en faire. Nous décrivons ici des besoins orientés vers la mise en oeuvre d'un environnement de formation aux processus d'ingénierie logicielle.

4.5.1 Les éléments à exploiter

Les éléments à exploiter sont essentiellement ceux du processus, les interfaces d'exploitation, ainsi que les règles de validation sur les artefacts.

4.5.2 Tâches à réaliser

Il s'agira ici de :

FIG. 4.3 Dépendances entre les tâches d'acquisition

1. Permettre de choisir un processus et de le dérouler.

2. Permettre de valider les artefacts sur le processus en cours en utilisant le moteur de règles de QuickRules.

3. Définir un modèle d'assistance pour prendre en compte le déroulement d'un processus quelconque.

4. Utiliser un interpréteur pour construire dynamiquement l'interface spécifique représentée par le fichier xul.

5. Prendre en compte le déroulement de plusieurs processus par la mise en oeuvre de menus dynamiques adaptés à chaque processus.

6. Mettre en oeuvre l'importation et l'exportation des projets vers des outils CASE.

Un résumé de cette démarches est fournie par la figure 4.4. L'interface est spécifiée par l'expert au niveau de l'acquisition. A l'exploitation, elle est interprétée et présentée à un utilisateur qui la renseigne à des fins d'assistance. Dans la réalisation, nous nous sommes

FIG. 4.4 - La démarche d'acquisition et d'exploitation focalisés sur les besoins en exploitation.

Chapitre 5

Réalisation

"A Good Process Uses Tools to Do More by Doing Less" ~ ...

La réalisation présente la mise en oeuvre de l'interfacage dynamique dans l'application PERSEE. Il commence par présenter les outils, puis un scénario d'utilisation. Ensuite, l'architecture logicielle et le diagramme de déploiement viennent compléter la compréhension de l'outil. Nous terminons par quelques éléments sur l'élaboration de la Base de Connaissances de MERISE.

5.1 Outils de réalisation

Pour aboutir à ce travail, nous avons utilisé les outils suivants :

XPath Langage d'expression des chemins utilisé pour sélectionner des éléments dans un document XML.

dom4j Middleware de lecture/écriture/consultation des fichiers XML. Nous l'avons préféré à jdom car il est bâti sur jdom, de plus il integre XPath. La recherche d'un élément dont on ne connaIt pas la position dans l'arborescence nécessite d'écrire un bout de code sous jdom pour parcourir tout le document, alors qu'avec dom4j, une seule ligne avec XPath suffit.

NetBeans est un éditeur libre Java : celui de SUN Microsystems. Cooktop est un éditeur XML libre intégrant XPath, XSL et XLink.

Protégé 2000 est l'outil qui nous a permis d'implémenter les différentes bases de connaissances.

Q uickRules est un moteur de regles qui s'integre parfaitement aux applications Java.

5.2 Description des GUI

L'interface utilisateur (GUI) est beaucoup plus que ce qui est représenté à l'écran. La différence entre notre approche et les autres est assez significative. Nous combinons dans notre approche un interfacage qui prend en compte une exploitation complète des éléments de la BCPD. Ceci peut se matérialiser dans l'environnement qui a été réalisé et dont les menus qui sont dynamiques tirent leur contenu du Process State, le déroulement d'une activité spécifique exploite le Process GUI et le Process Rule intervient au niveau du déroulement d'une activité pour la validation des artefacts.

C'est dire que l'application devant permettre d'exploiter les BCPD doit être conforme au modèle de ROSE. PERSEE est conforme et nous présentons un scénario d'utilisation.

5.3 Un scenario d'utilisation

Le scénario d'utilisation consistera à créer un nouveau projet en spécifiant le processus MERISE (resp. RUP) (voir figures 5.1 et 5.2). Ensuite, suivant le processus choisi, les menus Roles, Activités et Artefacts sont générés dynamiquement. L'utilisateur spécifie l'activité à réaliser dans le menu Activités; dans la vue en haut et à droite les éléments de l'activité sont affichés. Il décide de créer une entité (resp. acteur) Géographe. L'interface spécifique (voir figures B.4 et B.2 en Annexes) représentée par le fichier .xul est interprétée, puis affichée. L'utilisateur renseigne le lexique (voir figures 5.3 et 5.4) de l'interface puis valide, une vérification est faite au niveau de la syntaxe de l'interface et la sémantique est utilisée pour valider la création de l'acteur Géographe. Ensuite, l'acteur est inséré dans la vue déroulement du projet. Celle-ci présente un regroupement spatial des éléments du processus instantiés par le projet en cours. Le lecteur voudra bien se reporter à l'annexe B pour un complément d'informations sur la mise en oeuvre de la génération dynamique d'interfaces spécifiques.

5.4 Architecture Logicielle

Le développement a été fait sous forme de composants et indépendemment de l'interface. On pourra donc accéder au système d'assistance et l'utiliser. Nous ne présentons ici que la distribution pour l'exploitation qui a été prise en compte au cours du développement. Ces composants sont :

- processstate contient les classes permettant de gérer les éléments du processus.

- processengine contient les classes permettant de gérer la validation des artefacts. - processgui contient les classes de manipulation des interfaces dynamiques. - bind contient les classes de liaison avec les fichiers XML.

FIG. 5.1 - Créer un nouveau projet : choisir le processus

FIG. 5.2 Créer un nouveau projet : spécifier l'emplacement

FIG. 5.3 Création d'une entité dans l'activité Elaboration de la solution

FIG. 5.4 - Création d'un acteur dans l'activité Rechercher les acteurs et les cu

projet contient les classes de gestion de projet.

- sma contient tous les agents qui s'occupent de l'assistance.

- gui contient les classes pour l'interface utilisateur.

- none contient tous les autres éléments.

Le package projet utilise sma pour l'assistance pendant le déroulement du processus, il utilise également processgui pour les interfaces spécifiques, ainsi que none. sma utilise gui pour fournir ses résultats à l'utilisateur, processstate et processengine pour les éléments d'assistance, ainsi que none.

FIG. 5.5 Architecture logicielle de PERSEE

5.5 Le déploiement des ROSE

Nous avons prévu pour le stockage physique une arborescence (voir figure 5.6) avec les répertoires correspondants respectivement aux dimensions Fait, Regle et GUI, ceci afin de nous conformer à la representation de SPEM. La codification qui y est présentée est détaillée à la figure 5.7. Cette codification comporte trois (03) champ : le premier représente le numéro de la discipline, le second peut prendre les valeurs 0,1,2 ou 3 suivant que l'on ait respectivement des WorkDefinition, des Activity, des WorkProduct ou des ProcessRole, le dernier numéro indique la position de l'élément du processus correspondant dans sa classe.

5.6 Elaboration de la BC de MERISE

Pour élaborer la base de connaissances de MERISE, nous avons été guidé par les méthodologies définies par Joseph Gabay [Gabay 2001] et Jean-Patrick Matheron [Matheron 2000]. En effet, il est assez difficile de trouver une démarche standard de MERISE à l'instar de RUP.

FIG. 5.6 - La répartition physique des ROSE

FIG. 5.7 - La codification des ROSE

Nous présentons ici une énumération sommaire, accompagnée de codifications, des éléments constituant la BC de MERISE : les artefacts, les activités et les roles. Les relations entre les éléments du processus ne sont pas présentés. Nous présenterons également des règles sur les artefacts de MERISE. Tout ceci concerne les disciplines d'étude préalable, de conception générale et de conception détaillée de MERISE.

5.6.1 Artefacts de MERISE

Nous présentons donc les artefacts de MERISE ainsi que leur codification :

121 Entité

122 Relation

123 Propriété

124 Processus

125 Opération

126 Evènement-Résulat

127 Syncronisation

221 Entité

222 Relation

223 Propriété

224 Procédure

225 Phase

226 Tâche

321 Table

322 Attribut

323 Procédure

324 Phase

325 Tâche

326 Fonction-Module-DLT

Le lecteur attentionné et connaissant un peu MERISE se demandera où sont le MCD (Modèle Conceptuel de Données), le MLD (Modèle Logique de Données), ..., en effet, nous ne les avons pas rescensés comme des artefacts. Nous nous intéressons essentiellement aux éléments de modèle et un MCD peut être vue comme un regroupement d'éléments de modèles, donc beaucoup plus comme un artefact de type rapport. De plus, les diagrammes qui sont des regroupements de modèles ne sont pas pris en compte dans notre démarche, autrement, on aurait déporté l'attention vers la mise en oeuvre d'un AGL à l'instar de IBM Rational Rose. Nous préférons rester un frontal avec les AGL. Certains artefacts (WorkProduct) ont été repétés, c'est intentionnel et nécessaire d'un point de vue structurel, en effet, un élément du

processus doit toujours appartenir à une discipline. Nous utilisons l'artifice de duplication pour gérer les éléments qui se retrouvent dans plusieurs disciplines, ceci n'empêche pas que ceci soit géré comme un unique artefact, ce que nous avons fait.

5.6.2 Activités de MERISE

MERISE dispose des six (06) groupes d'activité (WorkDefinition) suivant :

101 Conception globale de la solution

102 Conception générale

201 Recueil

202 Evaluation et plan de développement

301 Conception détaillée des phases

302 Plan de développement

Ces six (06) groupes d'activités sont un regroupement logique des dix (10) activités (Activity) suivantes :

111 Choix des orientations

112 Elaboration de la solution 113 Conception générale

211 Recueil préliminaire

212 Etude de la situation actuelle

213 Synthèse et bilan de la situation actuelle

214 Evaluation de la nouvelle solution

215 Plan de développement

311 Conception détaillée des phases

312 Plan de réalisation

5.6.3 Roles de MERISE

La définition des roles (ProcessRole) sous MERISE est assez imprécise, néanmoins, nous avons identifié les trois (03) roles suivant avec pour chacun le groupe de role (ProcessPerformer) auquel il appartient :

131 Spécificateur des besoins, processPerformer= Analyste

231 Analyste Système, processPerformer= Analyste

331 Analyste des données et des traitements, processPerformer= Concepteur

5.6.4 Regles de validation des artefacts

Nous distinguons deux (02) catégories de règles, celle concernant un unique artefact et celle mettant en relation plusieurs artefacts.

Regle N 01 (Tous) Définir les propriétés par exemple identifiant, ...

Regle N02 (Entité) Toutes les propriétés autres que l'identifiant doivent être en dépendance fonctionnelle et complète de l'identifiant. Par conséquent, pour chaque occurrence d'une entité, chaque propriété doit prendre une et une seule valeur (il ne peut donc y avoir ni valeurs répétitives, ni absence de valeur pour une méme propriété).

Regle N 03 (Relation) Toutes les propriétés d'une relation doivent dépendre complètement de l'identifiant de la relation; de plus, chaque propriété doit dépendre de tout l'identifiant et non d'une partie de cet identifiant. Ainsi, pour chaque occurrence d'une relation, chaque propriété doit être en dépendance fonctionnelle de l'identifiant de la relation et doit donc prendre une et une seule valeur.

Regle N 04 (Opération) A l'intérieur d'une opération, il ne doit pas apparaItre de résultat pouvant conditionner la suite du déroulement des opérations du processus étudié, si tel est le cas, il faudrait découper l'opération.

Regle N 05 (Opération) Une opération est une suite ininterrompue de traitements; toute intervention d'un acteur externe qui entraInerait une interruption provoque un découpage de l'opération.

Chapitre 6

Discussions & Conclusion

6.1 Rappel des objectifs

A l'origine de ce travail, les objectifs étaient assez simples, en effet, il fallait élaborer et intégrer la base de connaissances de MERISE à nos précédents travaux. Nous nous sommes rendus compte que l'intégration pouvait se faire de plusieurs façons.

On pouvait envisager de développer de nouvelles interfaces pour le processus MERISE, ce qui ne devait pas permettre l'évolutivité future. Il y avait également la possibilité de mettre en oeuvre des interfaces génériques, mais une question se posait, seraient-elles assez génériques et adaptables à tous les types de processus qui pourraient se présenter? Nous avons finalement opté pour la dernière solution qui consiste à réaliser une typologie de l'interfaçage visuel et permettre ainsi de décrire une interface.

Cette solution impliquait la redéfinition d'une Base de Connaissances de Processus de Développement comme un entrepôt d'objets réutilisables dans trois (03) dimensions à savoir : Process State, Process Engine et Process GUI. La typologie d'une interface nous a conduit à définir le lexique (attributs renseignés à partir de l'interface), la syntaxe (artefact manipulé par l'interface) et la sémantique (operation que l'on realise sur l'interface) d'une interface. L'innovation dans ces dimensions est le Process GUI.

6.2 Intérêt du Process GUI

La dimension Process GUI est intéressante à plus d'un titre. Elle consiste à faire renseigner par l'expert de la base de connaissances et de manière guidée, les propriétés des interfaces qui permettront d'exploiter ces connaissances. Puis, à stocker celles-ci au format d'échange standard des interfaces (XUL) et utiliser un interpréteur dans l'exploitation pour construire dynamiquement les interfaces visuelles.

Tout d'abord, les interfaces étant construites dynamiquement, on s'affranchit de leur dé-

pendance. Ensuite, on adapte l'interface à chaque processus. On peut également réutiliser dans plusieurs environnements d'exploitation des connaissances sur les processus, l'entrepôt d' obj ets réutilisables, améliorant ainsi le processus d' apprentissage. L 'apprentissage étant intimement lié au domaine d'application, ainsi qu'au niveau des apprenants; le process GUI avec la génération dynamique des interfaces spécifiques permet de prendre en compte le niveau des apprenants en plus du processus. Le Process GUI a été mis en oeuvre avec l'outil PERSEE dont nous présentons les avantages.

6.3 Avantages de PERSEE

PERSEE est l'environnement obtenu, mettant en oeuvre l'exploitation d'un entrepôt d'objets réutilisables. Avec ces modifications, PERSEE permet donc de dérouler une quelconque phase d'un processus de développement, c'est donc un système intelligent d'assistance (sous-tendu par un système multi-agents d'agents cognitifs) au déroulement (enactment) des processus de développement. Cet apport participe à un processus d'amélioration de la qualité. Il peut donc intégrer toutes les phases d'un processus de développement sous réserve élaborée qu'une ontologie correspondante ait été intégrée à la base de connaissances.

PERSEE sera d'un apport appréciable pour l'enseignement des cours de Génie Logiciel, il permettra notamment aux étudiants d'y réaliser des travaux pratiques et de bénéficier de l'assistance active du système. Il pourrait également servir à la formation ou au recyclage des professionnels du logiciel en entreprise.

6.4 Limites & Recherches futures

Nous suggérons que les recherches futures s'orientent vers :

- L'élaboration et l'intégration des éléments de connaissances sur les autres phases (autres que Specification des besoins, Analyse & Conception) des processus RUP et MERISE dans les différentes bases de connaissances;

Nous nous sommes focalisés dans le développement sur l'exploitation d'une BCPD en supposant celle-ci préalablement construite, mais en fait il faudrait également faire une étude pour l'intégration de la dimension Process GUI à l'acquisition dans nos BCPD. On pourrait pour cela avantageusement partir de GLADE ou Théodore, deux (02) éditeurs d'interface graphique générant le code XUL et l'adapter afin d'y intégrer la syntaxe d'une interface. En effet, ils permettent de définir le lexique et la sémantique d'une interface visuelle, mais pas la syntaxe.

~ Nous avons souligné plus haut que nous avions pris en compte les artefacts de type modèle et guide du fait de la complexité de ceci. On pourrait également étendre nos

travaux par l'utilisation de la récente spécification RAS de l'OMG [OMG 2004], c'est un standard pour la réutilisation des groupes d'artefacts d'évaluation à l'instar des rapp orts.

- Notre travail s'est appuyé sur le métamodèle des processus d'ingénierie logicielle SPEM, mais imaginons qu'on veuille appliquer toute cette démarche à un quelconque processus d'ingénierie (construction mécanique, aviation, construction navale, aéronautique, chimique, biomédicale, génie civil, ...), ne pourrait-on pas à juste titre penser à un méta-modèle des processus d'ingénierie?

Bibliographie

[Aho et al. 1998] A. AHO & J. ULMANN, Concepts fondamentaux de l'informatique, 2nd ed., DUNOD, Paris, 1998.

[Balzer 1999] B. BALZER, Current state and future perspectives of software process technology, Présentation, Information Sciences Institute, Décembre 1999.

[Charlet 2002] J. CHARLET, L'ingénierie des connaissances : Développements, résultats et perspectives pour la gestion des connaissances médicales, Ph.D. thesis, Université Pierre et Marie Curie, Département d'Informatique, 2002.

[Falbo et al. 2002] R. A. FALBO, GIANCARLO GUIZZARDI, K. C. DUARTE & A. C. C. NATALI, Developing Software for and with Reuse : An Ontological Approach, Computer Science Department, Federal University of Espirito Santo,2002.

[Gabay 2001] J. GABAY, Merise et uml pour la modélisation des systèmes d'information, un guide complet avec les études de cas, 4th ed., DUNOD, Paris, 2001.

[Kom 2004] G. KOM MBOUMI, Extraction et exploitation d'éléments d'ontologies existantes dans un contexte spécifique : Le cas du projet CIA O-SI, Master's Degree in Engineering, Université de Yaoundé I, Ecole Nationale Supérieure Polytechnique, Département de Génie Informatique, Yaoundé-Cameroun, Juin 2004.

[Konhawa 2003] F. M. KONHAWA, Spécifi cation et réalisation d'un système d'aide à la production d'artefacts consistants : Application au RUP, Master's Degree in Engineering, Université de Yaoundé I, Ecole Nationale Supérieure Polytechnique, Département de Génie Informatique, Yaoundé- Cameroun, Juin 2003.

[Krol et al. 2003] P. KROLL & P. KRUCHTEN, The rational unified process made easy, a practitionner's guide to rup, 1st ed., Object Technology Series, Addison Wesley, Pearson Education Inc., Boston, April 2003.

[Matheron 2000] J.-P. MATHERON, Comprendre merise, outils conceptuels et organisationnels, 7th ed., Eyrolles, Paris, 2001.

[Moghomaye 2003] C. A. MOGHOMAYE, Un système multi-agents d'assistance à la modélisation, Master's Degree in Engineering, Université de Yaoundé I, Ecole Nationale

Sup érieure Polytechnique, Département de Génie Informatique, Yaoundé-Cameroun, Juin 2003.

[Nasser 2002] K. NASSER & al., De merise à uml, 1st ed., Eyrolles, Paris, 2002.

[Nelson et al. 1997] L. M. NELSON & C. M. REIGELUTH, A new paradigm of isd, vol. 22, pp. 24-35, CO : Libraries Unlimited, Englewood, 1997, Educational media and technology yearbook.

[Nelson 1998] L.M. NELSON, Collaborative problem solving : An instructional theory for
learning through small group interaction, Unpublished doctoral dissertation, 1998.

[Ngantchaha 2002] G. NGANTCHAHA NGOUGUE, Raisonnement à base de cas appliqué à la conception assistée des systèmes d'information : Indexation et gestion de cas, Master's Degree in Engineering, Université de Yaoundé I, Ecole Nationale Supérieure Polytechnique, Département de Génie Informatique, Yaoundé-Cameroun, Juin 2002.

[OMG 2002] SPEM, Software process engineering metamodel specification, Object Management Group, 2002.

[OMG 2003] UML, Unified modeling language specification, vol. 1.5, Object Management Group, March 2003.

[OMG 2004] RAS, Reusable Asset specification, Object Management Group, June 2004.

[Stutt 1997] A. STUTT, Knowledge Engineering Ontologies, Constructivist Epistemology, Computer Rhetoric : A Trivium for the Knowledge Age, edmedia, 1997.

[Vliet 2002] H. V. VLIET, Software engineering : Principles and practice, 2nd ed., John Wiley & Sons, New York, August 2002.

[Wiley 2002] D. A. WILEY, Connecting learning objects to instructional design theory : A definition, a metaphor, and a taxonomy, 2002.

La structure d'un document XML

A.1 La declaration du type DOCTYPE

- Référence un fichier contenant la DTD privée

<!DOCTYPE ProcessGUI PUBLIC !processstate.dtd !> Référence un fichier contenant la DTD publique

<!DOCTYPE ProcessGUI SYSTEM !processstate.dtd !> publique - Inclusion de la DTD

<!DOCTYPE ProcessGUI [

<!ELEMENT Interface (Description,WorkProduct ,Operation)> ...]>

A.2 La declaration des notations

- Identifie une information non-XML (donc non parsee) <!NOTATION boundary SYSTEM !boundary.gif !>

A.3 La declaration des entités

- Entité générale interne : uniquement utilisée dans un document sous la forme &titre; <!ENTITY TOperation (create read write delete)>

- Entité paramètre interne : uniquement dans la DTD

<!ENTITY %TOperation (create read write delete)>

- Entité paramètre externe : uniquement dans la DTD

<!ENTITY %TOperation SYSTEM !operation.txt !>

Entité générale externe : uniquement dans la DTD

<!ENTITY TOperation PUBLIC !operation.txt ! NDATA boundary>

A.4 La declaration des éléments

~ Contenu vide

<!ELEMENT ProcessRole EMPTY>

~ Contenu quelconque

<!ELEMENT ProcessRole ANY>

- Contenu éléments fils : contient des éléments régis par une expression régulière (, séquence; alternative; multiplicateur * O-N; + 1-N;? 0-1)

<!ELEMENT ProcessRole(Description,Activity* ,WorkProduct*)>

Contenu mixte

<!ELEMENT ProcessRole (#PCDATA Activity*)>

A.5 La declaration des attributs

- Type chaInes de caractères CDATA

Type prédéfini ID : identifiant unique dans un document

- Type prédéfini IDREF, IDREFS : référence ou liste de références d'identifiants ID du document

- Type prédéfini ENTITY, ENTITIES : nom ou liste de noms d'entités non-XML, précédemment déclarées

- Type prédéfini NMTOKEN, NMTOKENS : nom ou liste de noms de mots clé - Valeurs énumérées

XML User interface Language

Ce paragraphe ne présente pas le langage XUL, mais plutôt deux (02) exemples de description d'interface avec les interfaces graphiques générées. Elles ont été utilisées dans la réalisation.

FIG. B.1 Code xul de l'interface spécifique B.2

FIG. B.2 Interface specifique de creation d'un acteur

FIG. B.3 - Code xul de l'interface specifique B.4

FIG. B.4 - Interface specifique de creation d'une entité

Annexe C

Software Process Engineering

Met amodel

FIG. C.1 Le package Process Structure de SPEM [OMG 2002]

C.1 Les éléments du processus

Un WorkProduct ou Artefact est un élément produit, consommé ou modiflé par le processus. Un WorkProduct décrit une classe de produits de travail résultant d'un processus. Un WorkProductKind décrit une catégorie de produits de travail, tels les documents textes, les modèles UML, les exécutables, le code,... WorkDefinition est une Operation qui décrit le travail réalisé dans le processus. Ses sous classes sont Activity, Phase, Iteration et Lifecycle

(dams le package Process Lifecycle). Il dispose d'entrées et de sorties explicites référencées par ActivityParameter. Activity est la sous-classe principale de WorkDefinition. Elle décrit un travail réalisé par un unique ProcessRole : les tâches, les opérations et les actions qui sont réalisées ou assistées par un role. Un Activity peut-être décomposé en éléments atomiques appelés Step. Un ProcessPerformer définit un role pour un ensemble de WorkDefinitions dans le processus. ProcessPerformer dispose d'une sous-classe ProcessRole qui définit les responsabilités pour des WorkProduct spécifiques, et définit les roles qui réalisent et assistent des activités sp écifiques.

FIG. C.2Le package Dependancies de SPEM [OMG 2002]

C.2 Les dépendances

Une dépendance Categorizes agit d'un package à un élément individuel du processus dans un autre package. Il permet d'associer les éléments du processus à plusieurs catégories. Une dépendance Impacts concerne les WorkProduct, elle indique que la modification d'un WorkProduct peut en invalider un autre. Une dépendance Import indique que le contenu du package cible est ajouté à la visibilité du package source. Une dépendance Precedes concerne des Activity ou des WorkDefinition pour indiquer le type de précédence. Start_start : synchronisation au début; finish_start : séquencement strict; finish_finish : synchronisation à la fin. Une dépendance Refers To indique qu'un élément du processus réfère à un autre. Une dépendance Trace agit sur les WorkDefinition pour montrer pour tracer les besoins et les changements à travers les modèles.






Bitcoin is a swarm of cyber hornets serving the goddess of wisdom, feeding on the fire of truth, exponentially growing ever smarter, faster, and stronger behind a wall of encrypted energy