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

 > 

Réalisation d'un système multi-agents d'assistance à la modélisation

( Télécharger le fichier original )
par Claude Albert MOGHOMAYE
Ecole Polytechnique de Yaoundé - Ingénieur de Conception en Informatique option Génie Logiciel 2003
  

Disponible en mode multipage

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

    Au Seigneur Dieu Tout Puissant
    L éternel mon berger

    A la mémoire de ma mère feu Rebecca DJUIKOM
    Qui n a pas vécu assez longtemps
    Pour encadrer ses enfants

    A mon père Charles MOGHOMAYE
    Qui n a jamais ménagé d efforts
    Pour l éducation de ses enfants

    A la mémoire de mon oncle feu Albert FOTSO
    Je dédie ce mémoire

    lailfflefflge

    Ce mémoire a été réalisé au sein du Laboratoire d Informatique du Multimédia et Applications de l Ecole Polytechnique du Cameroun pendant le premier semestre de dans le cadre du mémoire d ingénieur de conception en informatique Les bases de ce travail proviennent de l Université du Québec A Montréal depuis l année

    J aimerai ici rendre gloire au Seigneur Dieu Tout Puissant pour la grâce qu il m a accordée tout au long de mes études ainsi que pour celle à venir

    Je remercie particulièrement le P Janine MAGNIER pour avoir accepté d apporter sa caution scientifique à ce travail en tant que Présidente du jury

    Qu il me soit ici permis d exprimer ma gratitude aux enseignants D Eric BADOUEL D Guillaume KOUM qui ont bien voulu apporter leur caution scientifique à ce travail en acceptant d être membres du jury

    Je souhaite à tous les étudiants de disposer d encadreurs comme D Claude TANGHA et D Roland YATCHOU Leurs disponibilités leurs promptitudes leurs critiques et leurs conseils ont beaucoup guidé la réalisation de ce travail qui est beaucoup plus le reflet du leur

    Je n oublierai pas d adresser un merci tout aussi particulier au P Roger NKAMBOU et à M Raphaël NBOGNI pour avoir initié le projet et pour le suivi de celui ci

    Je tiens à témoigner toute ma reconnaissance a ceux qui depuis toujours ont oeuvré pour mon épanouissement intellectuel la famille MOGHOMAYE Charles Chantal Julienne Alexis Mary et Joël

    A tous mes camarades de la promotion GI compagnons de bataille durant les cinq

    dernières années je souhaite à tous de réussir dans leurs carrières professionnelles

    A tous les membres du LABORIMA à qui je souhaite de savoir tirer le meilleur de ce laboratoire et d oeuvrer pour son rayonnement

    A tous ceux Michel YOUMBI Solange MAGNE La famille KENGNE Herve DONFACK Ghislain NGANTCHAHA Pierre Marie OUM SACK Yves WANKO Hervé FONDJA Achille TCHAPI Gérard KOM qui se reconnaîtront dans ce travail et dont l apport a été considérable pour sa réalisation

    MM

    La complexité sans cesse croissante des applications logicielles amène le génie logiciel à rechercher constamment de nouvelles méthodologies pour construire des logiciels faciles d utilisation et supportant l évolutivité Ces méthodologies à l instar du processus générique Rational Unified Process RUP de Rational Software elles mêmes très complexes définissent très souvent des approches de modélisation et des manières de travailler Les outils CASE proposent une assistance à la façon de modéliser mais peu d outils s intéressent au déroulement des activités du processus Ce déroulement est essentiellement guidée par une kyrielle de documents fournis par les auteurs de la méthodologie

    Une approche basée sur l utilisation d un Système Multi Agents SMA d agents intelligents pour assister le développeur dans la réalisation de ses logiciels en lui fournissant le How To Do Knowledge la connaissance sur le comment faire est une solution idoine Nous proposons ici la réalisation d un Système Multi Agents d Assistance à la Modélisation SM AM Notre système s intéresse essentiellement à l assistance au développeur pendant les disciplines d Expression des Besoins et d Analyse Conception du processus générique de développement RUP

    L aperception de ce système a nécessité d identifier dans le processus générique RUP les éléments pouvant permettre d assister le développeur dans l utilisation du processus Ensuite il a fallu formaliser ces connaissances et les implémenter dans une Base de Connaissances du Processus de Développement BCPD générique RUP Cette formalisation a suivi la spécification SPEM Software Process Engineering Metamodel de l Object Management Group OMG un méta modèle pour la représentation des processus d ingénierie logicielle

    Cette BCPD est ensuite exploitée avec efficience par le SMA qui dispose des éléments d assistance pour assister effectivement le développeur dans son travail en utilisant aussi la connaissance sur le profil du développeur profiling Elle constitue le blackboard de nos agents

    Mots Clés Assistance Génie Logiciel SMA RUP Base de Connaissances

    &MW

    The increasing complexity of software applications has caused the software industry to constantly seek new methodologies in order to build up easily usable software which supports evolutivity These methodologies which include the generic process Rational Unified Process RUP of Rational Software are themselves very complex and very often define a way of modelling and a way of working Whereas the CASE tools propose an assistance to the way of modelling little tools give a regard to the way of working throughout the RUP This way of working is primarily given by a great number of documents provided by authors of methodology

    An approach is using a Multi Agents System MAS where intelligent agents assist the developer in the realization of his software by providing him the How To Do Knowledge the how to do knowledge We propose here a Multi Agents System for Modeling Assistance MASMA Our system primarily assists the developer during the RUP s disciplines of Requirements and Analysis Design

    The construction of this system has required the identification of elements which can allow assistance to developer throughout the process Then it was necessary to formalize these knowledges and to implement them in a Knowledge Base of Development Process KBDP RUP This formalization follows SPEM Software Process Metamodel Engineering specification of the Object Management Group OMG a meta model for the representation of the software process engineering

    This KBDP is exploited by the MAS which has knowledge in assistance to assist indeed the developer in his work by also using knowledge on his profile profiling It represents the blackboard of our agents

    Keywords Assistance Software Engineering MAS RUP Knowledge Base

    »WI§

    DEDICACES i

    REMERCIEMENTS i

    RESUME ii

    ABSTRACT iii

    Sommaire iv

    Table des Illustrations vi

    TABLEAUX vii

    Sigles et Abreviations vii

    CaA??e« 1 Introduction

    I Contexte

    II Description du projet CIAO

    III Notre apport dans le projet CIAO

    IV Plan du mémoire

    CaA??eEE 11 Problématique

    I Un processus d ingénierie logicielle une introduction

    I Définition

    I Avantages d un processus

    I Le cycle de développement

    I UML dans le processus de développement

    II Expression des besoins

    II Problème

    II Position du produit

    II Spécification supplémentaires

    III Approches existantes

    III NATURE

    III CPCE

    III Argo Project

    III ALF Project

    III ArgoUML

    III WayPointer

    IV Analyse

    V Conclusion

    CaA??e« 111 Méthode et concepts

    I Concevoir un SM AM La méthode

    II Présentation des concepts

    II RUP Un processus générique

    II L assistance

    II Un Système Multi Agents

    II Une Base de Connaissance du Processus de Développement

    III Conclusion

    CEApnna lV Modélisation

    I Outils de Modélisation

    II Les ontologies de domaine et de tâches du RUP

    II RUP Ontologies de domaine

    II RUP Ontologies des tâches

    III Le Système Multi Agents d Assistance à la Modélisation

    III Vision du système

    III Expression des Besoins

    III Acteurs et Rôles

    III Modèle générique

    III Scénario

    III Cas d Utilisation

    III Architecture du système

    III Réalisation des Cas d Utilisation

    III Diagrammes de Classes

    III Prototype de l interface utilisateur

    III Conclusion

    CRapnea V Réalisation

    I Outils de réalisation

    II Une Base de Connaissances du Processus de Développement RUP

    III Un SMA pour l exploitation de la BCPD

    IV Une Assistance au développeur avec le SM AM

    IV Présentation de l interface

    IV Déroulement du scénario

    V Conclusion

    Canp?e« Vl Conclusion

    I Synthèse

    II Critiques propres

    III Perspectives BIBLIOGRAPHIE WEBOGRAPHIE GLOSSAIRE ANNEXE A Le Meta Modele SPEM ANNEXE B Acceder au site RUP ANNEXE C La BCPD RUP

    vaum le ima??a?»

    Figure Architecture de CIAO SI

    Figure Le processus d ingénierie logicielle

    Figure La Boite Noire du RUP

    Figure Présentation schématique de RUP selon axes RUP

    Figure Classification de Nwana HSN

    Figure Architecture BDI

    Figure Formats d échange et formalismes

    Figure La pyramide des niveaux de modélisation

    Figure Modèle conceptuel de SPEM SPEM

    Figure RUP Concepts et liens entre les concepts

    Figure La structure du processus RUP Rôles Activités et Artefacts Figure Analyse Conception RUP

    Figure Expression des exigences RUP

    Figure Schéma de fonctionnement

    Figure Acteurs du système

    Figure Activité de l Agent Activité

    Figure BCPD Modèle des Cas d Utilisation

    Figure Processus Modèle des Cas d Utilisation

    Figure SMA Modèle des Cas d Utilisation

    Figure Composants du système

    Figure SMA Structure

    Figure Classes persistantes du SM AM

    Figure Déroulement de l interface del application

    Figure SM AM Interface

    Figure Créer le projet sous Rational

    Figure Exporter le projet sous Rational

    Figure Importer Figure Nouveau Figure Nouveau Figure Nouveau Figure Adopter un rôle

    Figure Sélectionner une itération

    Figure Sélectionner un groupe d activité

    Figure Créer un acteur

    Figure Vue du projet

    Figure Explications

    Figure Rapport

    Figure Contrôles Figure Process Structure de SPEM Figure Dependancies de SPEM Figure Exemple RUP site

    ia1311a??

    Tableau Comparaison des différentes approches Tableau Rôles Artefacts Activités du RUP Tableau Les agents formalisme BDI

    81??Bt BU alliBe?Uhit

    Agent Working Group

    Base de Connaissances du Processus de Développement

    Computer Assist Software Engineering

    Conception Intelligemment Assistée par Ordinateur des Systèmes d Information

    Foundation of Intelligent Physical Agents

    Laboratoire d Informatique du Multimédia et Applications

    Object Constraint Language Object Management Group Rational Unified Process Système Multi Agents

    SMA d Assistance a la Modélisation

    Software Process Engineering Metamodel

    Unified Modelling Language

    chapitre 1

    I Contexte

    Ce projet s inscrit dans le cadre d un projet global dénommé CIAO SI Conception Intelligemment Assistée par Ordinateur des Systèmes d Information Ce projet a été initié par le Groupe Infotel et le laboratoire GDAC Gestion Diffusion et Acquisition des Connaissances de l Université du Québec A Montréal UQAM Il est réalisé en partenariat avec le Laboratoire d Informatique du Multimédia et Applications LABORIMA de l Ecole Nationale Supérieure Polytechnique de Yaoundé depuis deux ans

    II Description du projet CIAO

    Les projets de génie logiciel sont confrontés très souvent à un problème récurrent celui de produire et maintenir des logiciels de complexité élevée L application des méthodologies de développement de logiciels paraît nécessaire pour garantir un minimum de qualité des logiciels produits C est ainsi que de nombreuses méthodologies ont été développées durant les trois dernières décennies Seulement les méthodologies les plus complètes présentent elles mêmes une complexité certaine due au nombre élevé d artefacts exigés aux règles de la méthodologie et à leurs processus plutôt compliqués à mettre en oeuvre Il ne fait plus de doute que le développeur a aujourd hui besoin de plus d assistance qu avant que ce soit face à la complexité grandissante des problèmes à résoudre ou à celle des méthodologies de développement utilisées dans les différents projets

    CIAO SI vise l étude de faisabilité la conception et la mise en oeuvre d un système permettant d offrir une assistance au concepteur pendant le processus de développement de logiciels et de capitaliser l expérience acquise avec le développement d applications en constituant une mémoire de modèles de conception réutilisables

    CIAO SI NGA utilise une approche Case Based Reasonning CBR raisonnement à base

    de cas qui préconise la résolution de nouveaux problèmes par adaptation des solutions viables aux problèmes similaires déjà résolus

    CIAO SI comporte sept modules

    La gestion des ontologies Ce module consiste à spécifier les ontologies du domaine d application et ceux du processus de développement puis construire les bases de connaissances associées au domaine d application ainsi qu aux deux processus de développement MERISE et RUP

    La gestion des cas Il s agit de définir la structure d un cas en prenant en compte toutes les étapes d un processus de développement et permettre la création et la mise à jour des cas

    L exploitation des cas Permet de mettre en oeuvre des techniques d indexation et de recherche des cas

    L adaptation des cas On spécifie et on construit un système pour l adaptation des cas Le système pourrait être constitué d un agent spécialisé dans l adaptation des cas et d un agent interface

    L intégration Il s agit d intégrer les sous systèmes déjà construits gestion des cas recherche des cas adaptation des cas en vue de produire la première version utilisable prototype du système CIAO SI

    La gestion de l assistance A pour but de spécifier concevoir et construire un système pour l assistance du concepteur pendant le processus de développement

    La réutilisation du code La finalité est d étendre le système CIAO SI à la réutilisation au niveau du code source

    Figure 1 Architecture de CIAO-SI

    Deux étudiants ont déjà eu à travailler respectivement dans la gestion et l exploitation des

    cas la mise en oeuvre des ontologies du domaine d application

    III Notre apport dans le projet CIAO

    Nous intervenons primordialement dans la gestion des ontologies du processus de

    développement générique RUP par

    La réalisation d une ontologie des tâches spécifiant les tâches et liens entre tâches pour les différentes disciplines du cycle de développement associées au RUP

    La réalisation d une ontologie de domaine spécifiant les concepts et liens entre concepts manipulés dans les différentes disciplines du cycle de développement associées au RUP

    La construction de la Base de Connaissances du Processus de Développement BCPD générique RUP

    Une simulation de l exploitation de la BCPD avec un SMA Ceci passe par la mise en oeuvre d un Système Multi Agents d Assistance à la Modélisation SM AM

    Notre approche consiste à fournir une assistance au déroulement du processus de

    développement spécialement pour les disciplines d Expression des Besoins d Analyse Conception du RUP Il s agit de suivre et assister le développeur pendant la modélisation en s assurant qu il suit un processus donné

    C est ainsi que nous proposons de construire un Système Multi Agents d Assistance a la Modélisation SM AM lire SM two AM Nous partons du fait que la connaissance utile au développeur peut être représentée sous forme de best practices de guides de méthodologies et autres SM AM doit fournit cette connaissance SM AM vient combler l isthme entre la pléiade de documents et les outils CASE UML La suite de ce rapport spécifiera plus en détail le SM AM

    IV Plan du mémoire

    Notre travail se subdivise en six chapitres Un aperçu global de notre travail peut être

    obtenu en ajoutant à la lecture de l introduction et de la conclusion celle des résumes fournis au début de chaque chapitre

    Dans le second chapitre nous introduisons les notions fondamentales sur des processus

    d ingénierie logicielle afin de mieux appréhender la problématique Cette dernière nous amène à présenter des projets et 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 chapitre présente la méthodologie adoptée Après avoir introduit le

    processus générique RUP il spécifie les méthodes d assistance à utiliser Puis fournit des notions générales sur les SMA et leur application à notre contexte Enfin l ingénierie des connaissances incluant des éléments d ontologie et le méta modèle SPEM Software Process Engineering Metamodel standard de l OMG Object Management Group pour la spécification des processus d ingénierie logicielle sont présentés succinctement

    Des modèles de notre système sont présentés au chapitre quatre Nous commençons par

    la modélisation du métier du processus d ingénierie logicielle RUP qui aboutit à la BCPD Puis la modélisation expression des exigences analyse conception du SM AM qui utilise la BCPD pour assister le développeur

    Le chapitre cinq s intéresse davantage à l implémentation de la BCPD et du SM AM

    Une conclusion des discussions et des perspectives au chapitre six viennent clôturer

    le travail réalisé

    Le lecteur trouvera dans les annexes une présentation beaucoup plus détaillée du méta modèle SPEM Il y trouvera également un moyen d accéder au site du processus générique RUP pour une représentation des ontologies et enfin l implémentation de notre base de connaissances

    came« ii la013161??ille%

     

    Il faut que l imagination prenne trop pour que la pensée ait assez
    Gaston Bachelard

     

    La problématique ne saurait être bien assimilée sans des notions sur les processus d ingénierie logicielle ce chapitre commence par présenter les concepts clés d un processus d ingénierie logicielle Puis le problème posé à savoir l assistance au développeur avec un Système Multi Agents est étayé avec quelques exigences logicielles liées à l application elle même et au projet CIAO

    Un état de l art des initiatives et des solutions existantes se rapportant à la problématique est ensuite réalisé Nous y présentons notamment les projets NATURE CPCE Argo ArgoUML ALF et WayPointer

    Nous fournissons enfin une analyse des solutions existantes par rapport au travail que nous allons à réaliser Une conjecture nous permet de repréciser le contexte de l analyse

    I Un processus d'ingénierie logicielle -- une introduction

    1.1 Définition

    Un processus est un ensemble d étapes partiellement ordonnées destinées à réaliser des objectifs dans le génie logiciel le but est de construire un produit logiciel ou mettre en valeur ceux qui existent déjà Un processus définit qui rôles fait quoi artefacts quand workflow le faire et comment activités réaliser certains objectifs

    Un processus d ingénierie logicielle fournit une description de l ensemble des activités à réaliser pour transformer les besoins de l utilisateur nouveaux ou changeants en système logiciel

    Figure 2 Le processus d'ingénierie logicielle

    1.2 Avantages d'un processus

    Un processus d ingénierie logicielle est intéressant dans le développement d un système informatique à plus d un titre à savoir

    · Chaque membre de l équipe de développement comprend quel est son rôle dans le développement du produit

    · Les développeurs comprennent mieux leur participation dans le développement et leur contribution par rapport aux autres développeurs

    · Les dirigeants et responsables comprennent mieux l avancement du travail de chacun grâce aux différents modèles produits

    · Le processus permet de mesurer lors de la phase de lancement les risques liés au projet et de mesurer à chaque itération les écarts entre ce qui est prévu et la réalité

    1.3 Le cycle de développement

    L enchaînement des activités et des phases qui mènent à la réalisation d une version du logiciel s appelle cycle de développement Le cycle de vie est un enchaînement de plusieurs cycles de développement Le cycle de développement comprend généralement quatre phases d un point de vue de pilotage du projet KMP

    ·

    La phase d Etude d opportunité qui prend acte de la naissance du projet et définit sa portée L objectif réel étant de prendre la décision de réaliser ou de ne pas réaliser le projet sur la base d orientations générales claires

    · La phase d Elaboration est comparable à une activité de recherche et de développement dans le monde industriel Elle permet de finaliser l analyse du problème de construire l architecture du système de traiter les risques majeurs du projet et de finaliser le plan de développement


    · La phase de Construction permet de compléter le développement logiciel et de fournir une version opérationnelle pour la phase de transition


    · La phase de Transition concerne la mise en oeuvre chez les utilisateurs d une version opérationnelle non finalisée du logiciel

    D un point de vue des activités le cycle de développement représente l enchaînement des

    activités élémentaires qui se déroulent dans le cadre d une itération Ces activités sont le planning de l itération l analyse la conception le code et le test l évaluation et la préparation de version

    1.4 UML dans le processus de développement

    UML OMG est un langage de modélisation unifié qui tient une place importante dans la

    communication au sein des équipes de développement I Jacobson définit un processus d ingénierie logicielle comme un processus de construction de plusieurs modèles allant du modèle des besoins au modèle du code et du test Les modèles UML ont été largement adoptés dans l industrie du génie logiciel pour la communication et la production des résultats

    La vue générale des processus d ingénierie logicielle définie ci dessous nous permettra de mieux assimiler la problématique qui suit

    Il Expression des besoins

    11.1 Problème

    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 méthodologies elles même d une complexité sans cesse croissante ne fournissent des résultats qu après plusieurs années d expérience dans divers autres projets et une adaptation conséquente au type de projet Les développeurs doivent donc apprendre en parcourant la kyrielle de documents qui accompagnent ces méthodologies ce qui entraîne souvent des retards dans les projets ou de mauvaises interprétations des concepts de la méthodologie utilisée Les équipes de développeurs sont également confrontées au récurrent problème de savoir qui fait quoi et comment dans l équipe

    Eu égard à ceci il se pose le problème de savoir comment assister les équipes de développement en définissant les rôles qui les activités quoi et le workflow comment et en leur permettant d adapter la méthodologie choisie à leurs projets Et surtout en les dispensant d un énorme background dans le développement pour produire des logiciels de qualité En conséquence un certain nombre de problèmes prévalent à savoir

    Comment assister et guider activement le développeur pendant la modélisation avec le RUP méthodes d assistance

    Quelles connaissances nécessaires peuvent être manipulées par un système d assistance à la modélisation Comment peuvent elles être représentes conceptualisation et formalisation des connaissances

    Comment permettre au développeur d adapter RUP à son projet adaptation du processus

    Comment gérer et réutiliser la connaissance du processus RUP BCPD et SMA

    Comment aider le développeur à suivre le workflow en exploitant les best practices du RUP

    Au vu de la problématique ci dessus spécifiée nous proposons donc de construire un Système

    Multi Agents d Assistance à la Modélisation dans le cas du processus générique RUP

    SM AM

    11.2 Position du produit

    SM AM est destiné aux développeurs et aux équipes de développement Ceux ci ont très souvent besoin d être guidés activement autant que possible dans leur travail quotidien c est à dire assistés et conseillés guidés et contrôlés activement SM AM est une application basée sur un Système Multi Agents qui assiste et guide les équipes de développeurs dans la capacité à appliquer le processus d ingénierie logicielle générique RUP pour les disciplines d Expression des Besoins d Analyse Conception des Systèmes d Information SI SM AM exploite la généricité du processus de développement RUP pour permettre au développeur de configurer le processus et l appliquer à son type de projet Notre produit fournit une assistance stratégique et un guidage globaux au niveau du flot d activités il fournit également une assistance et un guidage locaux pendant le déroulement de chaque activité Cette assistance est essentiellement proactive

    SM AM fournira la connaissance nécessaire à l équipe de développement pour l adoption des rôles et la réalisation des activités Il permettra le suivi du workflow et des best practices Il s agit donc de concevoir un système qui sera perçu comme un collaborateur un véritable partenaire par les développeurs Cela revient à mettre à la disposition du développeur un système qui contribue à l efficacité et à l approfondissement de sa réflexion avec également une possibilité de délégation pour certaines tâches Notre assistance portera essentiellement sur la manière de travailler A way of working

    11.3 Spécification supplémentaires

    SM AM est un assistant au développement logiciel Il fournit la connaissance nécessaire au développeur en termes de best practices de guides de méthodologie et autres Il est capable de raisonner sur les connaissances du Processus de Développement pour aider le développeur à réaliser ses objectifs SM AM devrait donc assister le développeur en capturant les éléments d une base de connaissances en basant son raisonnement sur ces connaissances et en appliquant les éléments de ces connaissances à la construction du système en cours de développement

    SM AM est un outil d aide pour le développeur Pour remplir cette fonction de façon efficiente et substantielle il est nécessaire pour lui de

    · Comprendre la méthodologie il s agit de savoir quels sont les artefacts à produire les règles de la méthodologie le processus de développement de la méthodologie les tâches les activités

    ·

    Comprendre les objectifs du développeur Un projet a généralement des objectifs globaux Cependant chaque développeur participant au projet aura des objectifs propres basés sur les objectifs globaux du projet Le développeur adopte un Rôle pour réaliser une Activité qui produira un Artefact R A A ces notions de rôle d activité et d artefact doivent être comprises par l assistant qui assiste le développeur

    · Il doit savoir comment produire des artefacts pour le système savoir quand appliquer ses connaissances spontanément fournir au développeur des informations spécifiques Ceci peut se faire sur la base des activités l assistant sachant quand le développeur doit procéder à une activité donnée peut anticiper sur un besoin d aide Les connaissances sont appliquées aux artefacts pour les affiner selon les règles de la méthode

    En outre SM AM devra pouvoir

    · Etre intégrée à l environnement CIAO global

    · Permettre les échanges avec les outils CASE UML en permettant l importation et l exportation au format standard XMI

    · Interagir avec les outils de support de tâches de modélisation et d implémentation outils CASE EDI

    ·

    Raisonner dans un contexte particulier directement ou en dialoguant avec le développeur

    ·

    Etre personnalisable pour prendre en compte le type de projet ou encore le domaine de l application

    · Permettre de mettre à jour la base de connaissances

    Le problème étant clairement défini il s agit dans le paragraphe suivant de recenser les

    différentes approches de solutions existantes

    III Approches existantes

    Plusieurs travaux ont été réalisés en vue de l assistance à la production de logiciels Nous présentons ici les plus importants

    111.1 NATURE

    Les premiers travaux sur l assistance aux méthodes de modélisation ont débuté avec le projet NATURE PR et son environnement MENTOR SRG qui démontre la faisabilité de la modélisation orientée décision pour le support aux méthodes NATURE utilise une approche d utilisateur unique en faisant abstraction de l espace de travail des rôles et de tous les aspects organisationnels liées au développement

    111.2 CPCE

    L approche CPCE du laboratoire LORIA de l Université Nancy avec Jacques Lonchamp LON a vise à construire un noyau d environnement paramétré par des modèles de procédés qui fournit assistance et guidage actif à ses utilisateurs

    Grâce à une approche hybride orientée tâche au niveau global et orientée décision au niveau local le système peut s adapter à une large gamme d applications de conception collective Le premier prototype de CPCE permet de piloter essentiellement des inspections collectives de code

    Le projet CPCE propose une assistance et guidage stratégique au niveau du flot d activités et une assistance et un guidage tactique concernant les décisions à prendre pendant une activité spécifique Il propose également un approche intégrant quatre vues la vue orientée tâche workflow view la vue orientée décision problem solving view la vue oriente produit artifact view et la vue organisationnelle

    Ce premier prototype va faire évoluer le projet vers un nouvel autre qui le fait passer sous le giron du CNRS Centre National de Recherches Scientifique français le projet Argo qui généralise CPCE pour l assistance à la méthode et à la coopération

    111.3 Argo Project

    L objectif général du projet Argo est de construire un noyau d environnement LON b centré processus fournissant une assistance et une guidance active a ses utilisateurs

    Il utilise une approche hybride de modélisation orientée tâche et orientée décision cette approche peut être paramétrée pour supporter une plus large gamme d activités de conception Il préconise comme son prédécesseur quatre vues la vue tâche la vue
    organisation la vue produit et la vue processus

    111.4 ALF Project (1987 - 1992)

    Nacer Boudjlida et al de l Université de Loria présentent dans ALF ALF un framework

    pour construire des environnements de génie logiciel centrés processus Ce projet avait pour objectif de fournir des facilités pour supporter les activités de développement de logiciels

    Il se propose de rompre avec la mécanique des environnements de génie logiciel en proposant des éléments pour des environnements beaucoup plus orientés activités et objectifs de l utilisateur Il fournit deux fonctionnalités remarquables à savoir une assistance intelligente à l utilisateur et la possibilité pour l utilisateur de paramétrer son environnement

    111.5 ArgoUML

    ArgoUML est un projet Open Source fondé par Jason Robbins à l Université de Californie en Irvinie ArgoUML guide dans le workflow d un processus qui n a pas encore été défini ou plutôt qui manque de standard

    Il s apparente également à un outil CASE UML avec une surcouche assistance essentiellement axée sur les critiques dans la manière de modéliser Il vise à long terme une assistance complète au développeur pendant le processus de développement

    Poiseidon for UML reprend et étend les concepts de ArgoUML c est la version commerciale d ArgoUML

    Néanmoins ils n utilisent pas un Système Multi Agents à l instar de la dernière initiative dans le domaine WayPointer de Jaczone

    11 1.6 WayPointer

    WayPointer est défini par JAB comme une application personnelle de productivité basée

    sur les agents intelligents qui supportent un développeur individuel dans la modélisation avec le langage UML WayPointer permet de définir les objectifs en termes d artefacts qui peuvent être spécifiés ou affinés à la demande et il fournit un support proactif et des conseils sur la réalisation des objectifs définis WayPointer assiste le développeur dans la modélisation des cas d utilisation l analyse et la conception

    1V Analyse

    Les projets CPCE et Argo se sont particulièrement intéressés à la collaboration Ils définissent des méthodes d assistance et de guidage stratégiques et tactiques assez intéressantes Néanmoins les prototypes fournis encore incomplets ne sont pas à la hauteur de la modélisation ou plutôt des objectif à atteindre De plus ils utilisent des méthodologies propres pas encore assez répandues dans le génie logiciel

    Le projet ALF resté au niveau de la spécification des méthodes d assistance et de paramétrage n est pas appliqué à un processus particulier Il demeure un framework qui peut s adapter à toutes les méthodologies

    ArgoUML et Poseidon for UML s apparentent à des outils CASE UML avec une assistance consistant à critiquer le travail du développeur Ils disposent également de vues destinées à répartir le travail du développeur Ces projets n en sont pas encore à leur phase terminale qui consistera à pousser un peu plus loin pour assister le développeur dans la réalisation d un logiciel avec un processus clairement défini

    http argouml tigris org http www gentleware com http www jaczone com

    WayPointer est beaucoup plus intéressant du fait qu il utilise un SMA pour assister le développeur pendant les phases d expression des exigences et d analyse conception Il pêche au niveau du fait que son processus qui est une adaptation du processus générique RUP n est pas assez représentatif il dispose de sept activités sur la trentaine des disciplines concernées De plus la version disponible ne gère pas les rôles du processus Elle est payante et surtout ne fournit pas de format d échange standard si ce n est avec les outils de Rational Software

    Bien que ne satisfaisant pas complètement à nos besoins des concepts disparates de ces projets seront utilisés pour notre application notamment l assistance stratégique et active l orientation tâches et décision des deux premiers Les éléments d assistance du projet ALF seront également utilisés Puis les concepts de WayPointer nous seront d une grande utilité quant à la construction de nos agents Nous mettrons l accent sur la réutilisabilité en tenant compte du contexte qui est le projet CIAO

     

    Application

    Processus de
    modélisation

    Assistance

    Configuration
    du processus

    Réutilisation
    Imp Exp Format

    SMA

     

    Oui

    Inconnu

    Contrôle

    Non

    Non Non

    Non

     

    Oui

    Inconnu

    Contrôle

    Non

    Non Non

    Non

     

    Non

    Non

    Guidage Explication Contrôle

    Non

    Non Non

    Non

     

    Oui

    Inconnu

    Critiques

    Non

    Oui Oui XMI

    Non

     

    Oui

    Dérivation
    du RUP

    Explication Contrôle

    Non

    Non Oui XMI

    Oui

     

    Oui

    RUP

    Guidage Explication Contrôle

    Oui

    Oui Oui XMI

    Oui

     

    Tableau 1 Comparaison des différentes approches

    V Conclusion

    Ce chapitre a présenté tour à tour des notions fondamentales sur un processus d ingénierie logicielle la problématique posée l existant dans le domaine puis une critique de cet existant Nous allons maintenant poser les bases de notre approche pour la résolution du problème

    cmarnifts ooo eiIf001I If UMM

    Pour faire de grandes choses il ne faut pas être un si grand génie il ne faut pas être au dessus des hommes il faut être avec eux Montesquieu Sur l homme

    La problématique définie au chapitre précédent impose notre approche méthodologique Assister et guider activement le développeur pendant le processus nécessite de passer en revue les différentes méthodes d assistance à utiliser par notre SMA Identifier les éléments du processus générique RUP et les formaliser fait appel aux ontologies pour la construction de la BCPD Gérer et réutiliser la connaissance nécessite de construire la BCPD et le SMA qui l exploitera

    Une présentation succincte du processus générique RUP permet une plus grande clairvoyance dans la suite du travail La définition des éléments d assistance vient guider celle du SMA Nous concluons avec un distinguo des différents formalismes de représentation et une présentation de la spécification SPEM conforme au formalisme retenu UML OCL

    I Concevoir un SM2AM : La méthode

    Nous nous proposons en premier lieu d identifier et de formaliser les éléments du RUP pouvant permettre d assister un développeur Ceci sera suivi par la représentation cette base en utilisant une spécification donnée en l occurrence la spécification SPEM qui intègre le formalisme UML OCL

    Ensuite nous entrevoyons utiliser un agent interface pour gérer les interactions avec le développeur et des agents intelligents pour assister dans le déroulement du processus RUP sur un projet particulier Nous disposerons d agents spécialisés dans le déroulement du workflow l adoption des rôles et la réalisation des activités avec des connaissances particulières sur le processus fournies par la base de connaissances du RUP que nous aurons préalablement construite Les agents intelligents seront munis de croyances sur un projet faits représentant l état courant Ils consommeront ces faits pour atteindre leurs objectifs suivre un projet suivre un workflow suivre un rôle suivre une activité en réalisant les plans Guider Expliquer et Contrôler Les plans sont réalisés par l évaluation des règles sur le processus disponibles dans la BCPD en tenant compte des faits Ces plans modifient le tableau noir représenté par le projet en cours Les agents communiquent par l envoi de messages et collaborent afin d atteindre l objectif commun qui est l assistance Au niveau de celle ci l application devra fournir guidage actif en guidant en fournissant des explications et en contrôlant le travail Le développeur pourra également prendre des notes La BCPD RUP devra contenir les ontologies de tâches et de domaine

    La suite de ce travail va présenter le processus d ingénierie logicielle RUP les éléments d assistance des notions sur les SMA des notions d ontologie et une description de la spécification SPEM

    Il Présentation des concepts

    11.1 RUP : Un processus générique

    Le Rational Unified Process est une méthodologie de développement de logiciels qui a été mise en oeuvre par les auteurs d UML C est le dernier paradigme de la longue lignée de méthodologies de développement communément adoptées dans le génie logiciel C est également un produit RUP de Rational Software qui accompagne le processus RUP

    Deux facteurs principaux ont contribué au développement de cette méthodologie la complexité croissante des produits logiciels et le temps de livraison des produits sur le marché devenu un facteur critique dans le succès de ceux ci JBR

    RUP préconise l adoption d un certain nombre de meilleures pratiques pour un développement logiciel moderne GAP permettant de réduire les risques inhérents au développement de nouveaux logiciels Ces bonnes pratiques sont

    Développer itérativement

    Gérer les exigences

    Développer à base d architecture de composants

    Modéliser visuellement UML

    Evaluer continuellement la qualité

    Gérer les changements

    Ces bonnes pratiques sont mises en oeuvre par la définition des rôles des disciplines des

    activités et des artefacts tels que présentés sur la boîte noire du RUP Figure

    Figure La Boite Noire du RUP

    Le RUP est un processus itératif qui définit quatre phases pour les projets de

    développement logiciels A travers le temps le projet comprend les phases de Lancement d Elaboration de Construction et de Transition Chaque phase contient une ou plusieurs itérations où des exécutables peuvent être produits Durant chaque itération l effort est orienté vers des activités de disciplines différentes à des niveaux de détail divers La Figure présente une vue générale du RUP

    Figure 4 Présentation schématique de RUP selon 2 axes IRUP03 02]

    Les phases d expressions des besoins et d analyse et conception sont celles qui nous intéressent car elles constituent les disciplines principales pour la modélisation Nous les détaillons ci dessous

    Expression des Besoins

    L objectif principal de l expression des besoins est de décrire ce que le système est censé faire et permettre au développeur et au client de trouver un terrain d entente le premier sur ce qu il doit réaliser le second sur ce qu il doit recevoir Pour arriver à cela il est nécessaire d organiser et de documenter les fonctionnalités requises ainsi que les contraintes Tout ceci est réalisé en utilisant les cas d utilisation

    Analyse Conception

    L analyse la conception doivent pouvoir montrer comment le système sera réalisé à la phase d implémentation Elles produisent un modèle de conception et optionnellement un modèle d analyse Le modèle de conception consiste en un ensemble de classes de conception structurées en packages de conception et sous systèmes avec des interfaces bien définies représentant ce qui deviendra des composants pendant l implémentation

    Le RUP est un exemple de framework de processus TP qui a bénéficié d une longue

    expérience dans les différents projets L identification des concepts clés du RUP nous permet

     

    Microarchitecture qu on peut étendre ou réutiliser

     

    de ressortir un bon nombre de caractéristiques inhérentes à ce processus dont la disponibilité des outils guides fait de lui aujourd hui un processus en pleine croissance Notamment RUP gère très tôt les risques en développant rapidement une première version du système qui permet de définir l architecture du système Il ne gère pas un ensemble fixe de spécifications à la phase de lancement mais permet de les affiner et les compléter au cours du projet Le processus ne met pas un accent particulier sur la production de documents mais se prête à une automatisation des différentes tâches associées La qualité du logiciel produit par RUP se mesure au degré de satisfaction du client RUP est assez générique pour être appliqué à une large gamme de développement de logiciels et de projets

    11.2 L'assistance

    Un méta modèle pour la modélisation des processus d ingénierie logicielle est proposé par N

    BOU puis amélioré par celui ci dans ALF Ce méta modèle est orienté déroulement du processus pour l assistance au développeur Il propose des fonctionnalités de travail du système réaliser une tâche observer et contrôler monitoring et des fonctionnalités d assistance au développeur guider coaching prendre une initiative expliquer et apprendre

    Une dimension de l assistance est l initiative d après NIT une assistance peut

    être active ou passive Une autre dimension concerne le degré d automatisation un système d assistance peut agir automatiquement et exécuter des tâches pour l utilisateur proposer les prochaines actions possibles et fournir des informations Une autre dimension est le fait que le système d assistance doit être adaptatif ou adaptable il doit pouvoir s adapter lui même aux besoins de l utilisateur et l utilisateur doit pouvoir l adapter

    L assistance au développeur peut être catégorisée comme le suggère LON a en

    Une façon de modéliser A way of modeling où on dispose d un ensemble de

    concepts de modélisation fondamentaux pour capturer la connaissance sémantique sur un problème et sa solution avec un ensemble de vues et de notations pour présenter cette information

    Une façon de travailler à travers le processus A way of working le processus décrit

    le modèle a construire quand et comment le construire avec un ensemble de règles pour prendre des décisions de modélisation

    Le premier type d assistance est assez répandu avec les outils case UML le second beaucoup

    moins répandu fera l objet de l assistance que nous proposons dans la suite Nous proposons une assistance qui consiste à

    Contrôler les initiatives du développeur et le guider lorsqu il ne se conforme pas au processus

    Faire jouer au système un rôle actif c est à dire lui permettre de prendre des initiatives constructives pour réaliser les activités au gré du développeur prendre des initiatives de correction pour vérifier la consistance lorsque des prescriptions sont violées

    Guider les développeurs en leur fournissant les facilités suivantes

    Quoi faire après pour informer l utilisateur sur les activités à réaliser en considérant l état courant du processus

    Comment faire quelque chose qui fournit un type de chemin pour réaliser un

    objectif comme produire des artefacts

    Comment est ce que quelque chose marche pour aider dans la réalisation des activités

    Analyser l impact d une action donc évaluer ses conséquences spécialement pour les actions qui peuvent modifier des éléments de modèle

    Résumer ce qui a été fait et comment l état courant du système a été atteint Expliquer une initiative du système à l utilisateur

    Apprendre en observant le développeur et ses actions

    Ces éléments d assistance seront pris en compte par notre SMA pour assister le développeur

    Nous décrivons ci dessous un SMA

    11.3 Un Système MuIti-Agents

    La venue des SMA a été bénéfique à beaucoup de disciplines en leur permettant de construire des applications distribuées intelligentes et robustes Un SMA peut être défini comme un ensemble d agents qui collaborent et coopèrent afin d atteindre leurs buts respectifs ou communs Nous n irons pas ici donner une définition d un agent il existe une kyrielle de documents dans la littérature à ce sujet et il est très difficile de donner une définition complète Retenons juste qu un agent assiste et supplée un humain dans sa tâche et que tout le monde s accorde beaucoup plus sur les caractéristiques intrinsèques d un agent que sur leur définition

    Les agents se distinguent généralement des autres systèmes logiciels par leur habileté à interagir intelligemment dans un sens constructif avec les autres agents ou les hommes De plus leurs ressources et services ne sont pas directement accessibles mais invoquées par des requêtes

    11.3.1 Un agent : caractéristiques de I'AWG

    L AWG caractérise un agent par ses propriétés en l occurrence être capable d agir sans une intervention extérieure directe autonomie communiquer avec son environnement et les autres agents interactivité pouvoir modifier son comportement par l expérience adaptabilité ne pas réagir uniquement à son environnement mais être orienté objectifs proactivité avoir un état formalisé par une connaissance et communiquer avec les autres agents en utilisant un langage symbolique intelligence être capable de choisir une action suivant ses objectifs et sa connaissance rationalité être capable de réaliser une activité dans un environnement partagé avec d autres agents coordination et enfin être apte à collaborer avec les autres agents pour réaliser un but commun collaboration

    L AWG AWG propose également des éléments de caractérisation d un agent

    intelligent Son état doit être formalisé par une connaissance les croyances les buts les désirs les intentions les plans les hypothèses et il doit être capable d agir sur cette connaissance Il doit pouvoir examiner ses croyances et ses désirs former ses intentions planifier les actions qu il réalisera sous certaines hypothèses et éventuellement agir sur ses plans Il doit enfin pouvoir communiquer avec d autres agents en utilisant un langage symbolique L AWG AWG propose aussi des éléments de caractérisation d un agent interactif Un agent interactif peut communiquer avec son environnement et d autres entités Il réagit en observant les événements de son environnement Il coordonne ses actions avec celles des autres agents du système en coopérant avec ceux ci

    11.3.2 Les agents : classification de Nwana

    propose dans HSN une

    classification des agents tels que présentés à la Figure Il définit trois attributs des agents à savoir la coopération l autonomie et l adaptation Il combine la coopération et l adaptation ainsi que la coopération et l autonomie pour avoir une

    autre caractéristique des agents la

    collaboration Les agents interfaces

    Figure 5 Classification de Nwana (HSN 96]

    résultent de l autonomie et de l adaptabilité Enfin les agents intelligents viennent fédérer tous ces attributs

    11.3.3 Architecture du SMA : Le formalisme BD1 (Croyances -- Désirs - 1ntentions)

    L architecture BDI Beliefs Desires Intentions associe aux agents des croyances sur l environnement et les autres agents les désirs ou les objectifs à réaliser ainsi que les intentions ou plans à exécuter pour réaliser les désirs L environnement influe sur les croyances de l agent ces croyances permettent de réaliser des objectifs en utilisant les plans préalablement définis Ces plans modifient l environnement et le tableau noir qu ils utilisent également

    Figure 6 Architecture BD!

    Nos agents doivent disposer de connaissances sur le processus générique de développement RUP Ceci justifie le fait que nous donnions des notions relatives aux ontologies afin d implémenter une BCPD RUP

    11.4 Une Base de Connaissance du Processus de Développement

    La construction d une BCPD RUP passe par la conceptualisation et la formalisation des ontologies de domaine et des tâches du processus

    11.4.1 Ontologies

    11.4.1.1 Définition

    Nées du besoin de représenter les connaissances dans les systèmes informatiques les ontologies informatiques n ont été de ce fait précisément définies que par rapport au processus général de représentation des connaissances A l heure actuelle un certain consensus s est établi sur le rôle des ontologies dans ce processus consensus bâti autour de la

    formule de T G une ontologie est une spécification explicite et formelle d une

    conceptualisation commune GRU La construction d une ontologie n intervient donc

    qu après que le travail de conceptualisation ait été mené à bien Ce travail consiste à identifier au sein d un corpus les connaissances spécifiques au domaine de connaissances à représenter Dans le cadre de cette définition le terme conceptualisation renvoie à un modèle abstrait d un

    phénomène fondé sur l identification de concepts significatifs le terme explicite signifie que les concepts utilisés et leurs contraintes d utilisation sont définis de façon explicite l adjectif formelle précise que l ontologie doit être lisible par un ordinateur et enfin le terme commune renvoie à l idée qu une ontologie rend compte d un savoir consensuel elle n est pas liée à un individu mais elle est reconnue par un groupe

    N G affine la définition de T G en considérant les ontologies comme des

    spécifications partielles et formelles d une conceptualisation GUA Les ontologies sont formelles car exprimées sous forme logique et partielles car une conceptualisation ne peut pas toujours être entièrement formalisée dans un cadre logique du fait d ambiguïtés ou du fait qu aucune représentation de leur sémantique n existe dans le langage de représentation d ontologies choisi J N montre dans NOB que les formalismes opérationnels présentent une faible tolérance d interprétation ce qui oblige à passer directement d une ontologie informelle à une ontologie totalement formelle et non ambiguë De plus on doit souvent modifier la BCPD au cours de son élaboration ce qui entraîne des incohérences et des modifications plus larges

    11.4.1.2 Utilité

    Une ontologie est utile pour

    Capturer modéliser transformer et intégrer une connaissance dans un contexte particulier

    Traiter et automatiser les raisonnements de sur cette connaissance

    Partager en collaboration une compréhension commune d une structure d informations parmi les agents humains et ou parmi les agents logiciels

    Etre capable de réutiliser le domaine d intérêt par des connaissances opérationnelles ad hoc ou autre des standards qui unifient les mécanismes de modélisation des catégories ontologiques de connaissances sur l existence

    11.4.1.3 La nécessité d'un formalisme de représentation

    Le but de la représentation des connaissances est de modéliser un domaine particulier d application de sorte que la représentation ou le modèle obtenu soit manipulable par une machine La représentation des connaissances doit remplir les conditions suivantes

    L énoncé des connaissances doit être indépendant de tout mode d exploitation exploitation par un système à base de connaissances ou un SMA par exemple

    La facilité de compréhension et de modification des connaissances

    Le contrôle des mécanismes

    Les connaissances une fois modélisées débouchent sur une ontologie du domaine Le terme

    ontologie issu du domaine de la philosophie où il signifie explication systématique de l existence revêt de multiples acceptions suivant la discipline dans laquelle il est considéré Il existe plusieurs formalismes de représentation d ontologies qui se confondent très souvent avec ceux de représentation des connaissances

    11.4.1.4 Quelques formalismes de représentation des ontologies

    On classe généralement les formes de représentation des connaissances en deux groupes principaux DLI celui des représentations basées sur la logique et celui des représentation non basées sur la logique Parmi les représentations non basées sur la logique on distingue les représentations dites graphiques à cause de l utilisation dans celles ci de la notion des graphes des représentations proches de la terminologie des frames Les formats d échange des ontologies sont très souvent liés aux formalismes de représentation comme le montre la Figure

    Figure 7 Formats d'échange et formalismes

    Un graphe conceptuel représente une formule logique les noms et arguments sont représentés par des noeuds Les arcs du graphe relient les noms des prédicats à leurs arguments

    Les réseaux sémantiques représentent des structures plus complexes Un réseau sémantique est formé d un ensemble de graphes conceptuels Le réseau permet de visualiser l ensemble des relations existant entre les graphes conceptuels

    Les Frames sont des descriptions d entités conceptuelles ces entités pouvant être des objets réels comme une voiture ou un article ou des objets abstraits comme une facturation ou un achat ou encore un ensemble d objets Les frames sont essentiellement définis par leurs relations avec d autres frames Les relations entre les frames sont représentées par l utilisation des facettes

    La représentation logique est basée sur la logique du premier ordre qui propose des règles de dérivation utilisées dans les démonstrations On distingue le modus ponens le modus tollens et le principe de résolution

    La logique de description est une approche de représentation des connaissances plus flexible que les frames mais qui fournit une syntaxe et une sémantique assez rigoureuse

    La logique de description structure la connaissance en deux niveaux le niveau terminologique T Box qui contient les classes des objets du domaine concepts avec leurs propriétés rôles et un niveau assertionnel A Box qui comporte les objets abstraits individuels instances

    La représentation basée sur les frames a évolué en donnant naissance aux types abstraits de données et aux objets La représentation par objets se présente comme étant le mode de représentation le plus communément admis en raison de l existence d une large gamme d outils la supportant partant de langages de représentation aussi bien textuels que visuels aux environnements de modélisation de la grande structuration des connaissances Des langages de contraintes ont été définis pour combler le vide relevé quant à l expression des règles régissant le domaine du discours On peut cependant reprocher à cette forme de représentation l inexistence d un mécanisme formel de raisonnement

    La quasi totalité des langages utilisés aujourd hui pour représenter les connaissances sont

    basés sur le formalisme des frames voir Figure Le langage UML associé à OCL est de plus en plus utilisé pour représenter des ontologies des profils UML et des méta modèles exprimés en UML sont définis pour étendre le langage en l enrichissant de stéréotypes afin qu il se prête aisément à la représentation des concepts d un domaine donné

    Les choix du formalisme de représentation des connaissances et des modes de raisonnement vont nécessiter l aperception du mode d utilisation de ces connaissances En effet lorsqu on manipule des connaissances une bonne partie de nos réflexions sont implicites L un des objectifs à atteindre dans le projet est l exploitation des connaissances par un SMA Ceux ci devrait constituer le moteur d inférence de la base de connaissances construite Cette base de connaissances devra contenir les ontologies des tâches et de domaine du processus de développement RUP La mise à jour de ces ontologies se fera avec l évolution de RUP

    11.4.2 Le formalisme UML/OCL

    Les ontologies incluent les hiérarchies de classe sous classe les relations entre ces classes la définition des attributs et des axiomes qui spécifient les contraintes En UML cette information ontologique est généralement modélisée dans des diagrammes de classe et des contraintes OCL Object Constrainst Language De plus la représentation des connaissances dépend du type de connaissances TAN UML un langage graphique de modélisation des systèmes discrets est utilisé par le produit RUP c est aussi un standard de l OMG dont une spécification complète est disponible dans UML d où son adoption pour la représentation des ontologies de RUP Plus d une raison nous ont guidé dans le choix préconisé par

    dans l article SSM

    UML est un standard maintenu par l OMG et dispose d un mécanisme de définition des extensions dans le contexte d applications spécifiques à l instar de la modélisation des ontologies

    UML est largement adopté dans l industrie et dans plusieurs universités

    UML est supporté par une large gamme d outils CASE notamment par le produit RUP

    UML a été utilisé avec brio pour la représentation de plusieurs d ontologies CRA

    Un diagramme UML à l instar d un diagramme de classe n est typiquement pas assez affiné

    pour fournir tous les aspects liés à une spécification Plusieurs autres éléments nécessitent des contraintes supplémentaires souvent décrites dans le langage naturel Les langages formels existants nécessitent un background mathématique et ne sont de ce fait pas adaptés à la modélisation des logiciels

    OCL Object Constraint Language est un langage formel d expression des contraintes facile à lire et à écrire né pour pallier à ce manque C est un standard de l OMG OCL est purement un langage d expression qui est utilisé pour spécifier les invariants sur les classes et types dans le modèle de classe pour spécifier les invariants de types pour les stéréotypes pour décrire les pré et post conditions sur les opérations et les méthodes pour décrire les gardes OMG

    pour spécifier les contraintes sur les opérations Une spécification complète peut être trouvée au chapitre six de UML

    Le formalisme UML OCL étant choisi l OMG propose un méta modèle pour la description des processus d ingénierie logicielle SPEM Ce méta modèle est un stéréotype d UML qui utilise le formalisme UML OCL d où son adoption pour la représentation des ontologies Nous présentons SPEM dans la suite

    11.4.3 SPEM

    11.4.3.1 Approche de modélisation

    L OMG a adopté une approche orientée objet pour modéliser une famille de processus et utilise pour cela le langage UML La Figure présente les quatre couches de l architecture de modélisation telle que définie par l OMG Un processus qui est utilisé dans le déroulement d un projet réel se trouve au niveau M Le niveau M comprend les différents modèles des processus correspondants qui sont applicables dans des projets à l instar de RUP et ses différentes adaptations Les modèles de modèle de processus communément dénommés les méta modèles de processus se trouvent au niveau M Enfin le niveau M MOF Meta Object Facility est au sommet pour la représentation des méta méta modèles

    Figure 8 La pyramide des niveaux de modélisation

    La spécification SPEM est structurée comme un UML profile voir ci dessous et fournit aussi un méta modèle complet basé sur MOF Nous commençons par définir SPEM puis nous le décrivons comme un méta modèle et ensuite comme un UML profile

    11.4.3.2 SPEM, un standard

    Le méta modèle SPEM Software Process Engineering Metamodel SPEM est utilisé pour

    décrire un processus de développement logiciel ou une famille de processus Il permet de décrire le processus et ses composants SPEM est né d une RFP Request For Proposai de l OMG sur le Software Process Engineering Management en Novembre Nous faisons ici
    référence à la version de Novembre

    L objectif de SPEM est de définir un langage commun pour décrire des processus mais aussi de faciliter la communication entre les différents outils de fabrication des processus Le SPEM permet d unifier les vocabulaires utilisé pour décrire les processus Il définit un ensemble d éléments de modèle nécessaires pour décrire un processus quelconque de développement logiciel sans les contraintes et modèles spécifiques à une quelconque discipline telle la gestion des projets ou l analyse

    11.4.3.3 Le méta-modèle SPEM

    SPEM a pour idée sous jacente qu un processus de développement logiciel est une collaboration entre des entités abstraites les rôles qui réalisent des opérations appelées activités sur des entités tangibles appelées artefacts La Figure présente les liens entre ces trois concepts Plusieurs rôles peuvent collaborer par l échange de produits et le déclenchement de l exécution de certaines activités Le but global d un processus est de fournir un ensemble d artefacts dans un état bien défini

    Figure 9 Modèle conceptuel de SPEM (SPEM 02]

    SPEM est construit sur le SPEM Foundation package qui est un sous ensemble du modèle physique de UML et qui présente les types de données les éléments fondamentaux les actions les machines à état les graphes d activité et la gestion de modèles Il comporte également les six sous packages du SPEM Extension qui sont

    Basic Elements qui contient les éléments de base pour la description d un processus Dependancies montre les dépendances définies dans SPEM

    Process Structure définit les éléments structuraux majeurs qui permettent de construire la description du processus

    Process Components détaille le package des composants d un processus

    Process Lifecycle introduit les éléments de définition d un processus qui aident à sa mise en oeuvre

    Management of Process Assets en cours de définition

    Nous présentons en Annexe A le package Process Structure qui nous intéressera beaucoup

    pour l ontologie des tâches de RUP et le package Dependancies qui fournira les règles sur les composants de notre processus Les autres packages nous seront tout aussi utiles notamment dans la construction de la base de connaissances et interviennent dans l ontologie de domaine du RUP

    SPEM a été décrit ici directement comme un méta modèle Il peut être utilisé directement par instanciation de ce méta modèle Mais SPEM est aussi défini comme un UML profile

    11.4.3.4 SPEM comme un UML profile

    Un UML profile est une variante de UML qui utilise les mécanismes d extension de UML pour la standardisation dans un but particulier La définition de SPEM comme UML profile a été guidée par la popularité de UML auprès d une large communauté de développeurs qui utilisent des outils de modélisation UML Ceci permettra notamment la réutilisation de leurs

    connaissances de modélisation et des outils L OMG a ainsi procédé à un mapping des classes du méta modèle SPEM vers des classes de UML

    SPEM est supporté par l outil Rational Process Workbench RPW de Rational Software qui est un outil de construction de processus basé sur UML Et aussi XMI eXtensible Metamodel Interchange XMI un autre standard de l OMG qui définit le format d échange des méta données en terme de Meta Object Facility MOF standard définit une DTD Document Definition Type pour UML Tous ces éléments ainsi que la grande adoption de UML ont guidé l utilisation de SPEM comme un UML profile pour la suite de notre travail

    III Conclusion

    Ce chapitre a présenté la méthode adoptée pour résoudre le problème posé Ensuite les concepts fondamentaux relatifs aux différentes terminologies ont été passés en revue Notamment la présentation du processus générique RUP ainsi que les meilleures pratiques associées ensuite une formalisation de l assistance Puis une architecture d agent a été définie après les caractéristiques essentielles des agents selon l Agent Working Group et Nwana Le formalisme BDI a également été présenté Des notions d ontologie ont été abordées avec une description du formalisme UML OCL pour la représentation des ontologies Nous avons terminé par une brève description du méta modèle SPEM La suite de notre travail consistera à utiliser cette approche méthodologique pour modéliser notre système

    CRAMEZ liy eac???eece

     

    Le monde de la réalité a ses limites le monde de l imagination est sans frontières
    Jean Jacques Rousseau

     
     

    Nous présentons ici notre aperception du SM AM qui va aider le développeur à suivre un workflow en exploitant les best practices et les connaissances du processus générique RUP

    Les outils de modélisation de notre système UML RUP et Rational XDE liées à la méthodologie utilisée RUP for Small Project sont brièvement décrits

    Le mapping de SPEM au processus générique RUP pour la représentation des ontologies du RUP est ensuite décrit puis la conceptualisation et la formalisation de ces ontologies sont fournies comme modèle de notre BCPD générique RUP

    La modélisation du SM AM clos ce chapitre avec l expression des besoins qui contient la vision du système une présentation des acteurs et des rôles un modèle générique détaillant les fonctionnalités et les interactions entre les agents un scénario de fonctionnement du système et des modèles de cas d utilisation Une architecture du système est fournie Puis le passage de l expression des besoins à la conception est effectué par le biais des réalisations de cas d utilisation qui présentent les interactions Enfin les diagrammes de classes viennent compléter la conception avec une architecture détaillée du système

    I Outils de Modélisation

    Nous avons utilisé un certain nombre d outils et de concepts pour la modélisation de notre système Notamment UML pour le langage de modélisation RUP pour la méthodologie et Rational XDE comme outil de conception des modèles Nous décrivons brièvement ces outils ci dessous

    UML C est le langage de modélisation unifiée Il permet de décrire la structure et le comportement des systèmes et logiciels C est le standard pour décrire des modèles Il possède un ensemble de notations graphiques

    RUP le processus et le produit Voir la description de RUP au Chapitre II

    Rational XDE Rational XDE Professional for Java est une plate forme d édition Java un environnement de conception visuelle et de développement Il allie modélisation et implémentation orientée Java C est un outil particulièrement intéressant dans la gestion des différentes phases du processus générique RUP

    Il Les ontologies de domaine et de tâches du RUP

    L approche de modélisation de la base de connaissances tel que suggérée par le prosélyte
    d UML Philippe Kruchten le père des vues de UML et responsable du produit RUP à

    Rational Software par email a été le méta modèle SPEM

    11.1 RUP : Ontologies de domaine

    Nous présentons dans l ontologie de domaine les concepts du processus générique RUP et les liens entre ces différents concepts Nous commençons par identifier et définir les concepts clés de RUP ensuite nous proposons un modèle et les contraintes associées et enfin nous indiquons comment accéder a des illustrations de la représentation de ces concepts en Annexe B

    11.1.1 Conceptualisation

    · Activité Les rôles possèdent des activités qui définissent le travail qu ils réalisent Une activité est un

    élément qu un rôle réalise et qui fournit un résultat dans le contexte d un projet Chaque activité est composée d étapes et comporte un guide de travail associé

    · Artefact Les activités ont en entrée et en sortie des artefacts Un artefact est un produit de travail du

    processus les rôles utilisent les artefacts pour réaliser les activités et produisent des artefacts dans la réalisation de ces activités Les artefacts sont la responsabilité d un rôle unique On distingue cinq catégories d artefacts

    Un modèle comme le Modèle des Cas d Utilisation

    Un élément de modèle comme une Classe de Conception

    Un document comme le Document d Architecture Logicielle

    Le code source et les exécutables sorte de composants Les exécutables en tant que produit logiciel

    Dans la catégorie document on distingue trois éléments

    Guide d artefact et Point de contrôle

    Les artefacts ont des guides et des points de vérification associés qui présentent les informations sur leur développement leur évaluation et leur utilisation Les guides d artefacts capturent l essence même du travail réalisé tandis que la description des activités capture l essence de ce qui doit être fait Les points de vérification fournissent une référence rapide qui aide à estimer la qualité de l artefact

    Plan type

    Les plans types sont des modèles ou prototypes d artefacts Plusieurs plans types sont associés à la description d un artefact et peuvent être utilisés pour créer les artefacts correspondants Les plans types sont liés aux outils à utiliser

    Rapport

    Les modèles et éléments de modèle peuvent avoir des rapports associés Ces rapports extraient les informations sur le modèle et les éléments de modèle d un outil

    · Discipline Une discipline est une collection d activités liées par un intérêt majeur pendant tout le projet Le

    regroupement des activités dans une discipline permet de mieux appréhender le projet du point de vue de l approche linéaire

    · Etape Les activités sont composées d étapes On distingue trois catégories d étapes

    Les étapes de réflexion où l individu réalisant le rôle comprend la nature de la tâche rassemble et examine les artefacts en entrée et formule les sorties

    Les étapes de réalisation où l individu réalisant le rôle crée ou met à jour plusieurs artefacts

    Les étapes de revue où l individu réalisant le rôle inspecte les résultats au moyen d un certain nombre de critères

    · Guide de travail

    Les activités peuvent être associées à des guides de travail Ceux ci présentent des techniques et

    des conseils pratiques qui aident le rôle réalisant l activité

    · Guide outil Les activités les étapes ainsi que les guides associés fournissent un guidage général Pour aller

    un peu plus loin dans les étapes les Guides d outils sont des éléments additionnels qui fournissent le guidage en montrant comment réaliser les étapes en utilisant des outils spécifiques


    · Itération

    C est une séquence d activités distinctes accompagnées d un plan type et de critères

    d évaluation Elle produit une version interne ou externe

    · Jalon Point d arrêt formel d une phase il correspond à un point de version

    · Jalon Mineur Point d arrêt formel d une itération il correspond à un point de version

    · Phase C est le temps qui sépare deux jalons du projet pendant lequel un groupe d objectifs bien définis

    sont réalisés les artefacts complétés et les décisions d aller ou non à la prochaine phase sont prises

    · Rôle Le concept central du processus RUP est le rôle Un rôle définit le comportement et les

    responsabilités d un individu ou d un groupe d individus travaillant ensemble en équipe

    · Workflow Un workflow est une séquence d activités qui produisent en résultat une valeur observable Un

    workflow est généralement associé à une discipline on parle alors de workflow de discipline qui est représenté généralement sous forme de diagramme d activités Ce diagramme d activité comporte les détails de workflow comme les groupes d activités et les liens entre ceux ci

    11.1.2 Formalisation

    Modèle

     
     
     
     

    Discipline

     
     
     
     
     
     
     

    nom

     

    0..* 1

    description

     
     
     
     
     

    1

    1

    1

    1..*

    0..*

    5

    Equipe

    Workflow

    0..*

    1

    1

    0..*

    0..*

    Itération

    JalonMineur

    Personne

    0..*

    0..*

    Phase

    Jalon

    type (maj ou min)

    description sujet

    0..*

    0..*

    GuideDeTravail

    description sujet

    GuideOutil

    0..*

    Etape

    0..*

    Guide

    type discipline

    Artefact

    0..*

    0..*

    1

    1

    Rôle

    1

    0..*

    0..*

    0..*

    1

    0..*

    0..*

    discipline

    Activité

    discipline

    Modèle

    Document

    rôle

    planType

    activitésEntrée activitésSortie informations

    représentationUML rôleResponsable rapports

    informations activitésEntrée activitésSortie

     

    ElémentDeModèle

    nom espace

     

    Figure 10 RUP: Concepts et liens entre les concepts

    Le modèle de la Figure présente les différents concepts du processus générique RUP Un projet utilise une équipe qui est constituée de personnes et celles ci adoptent un ou plusieurs rôles pour la réalisation des objectifs du projet Parallèlement un projet utilise aussi le processus générique RUP Ce processus est découpé en phases qui représentent sa structure statique et qui se terminent chacune par un jalon Chaque phase comporte une ou plusieurs itérations qui sont conclues chacune par un jalon mineur Chaque itération met en oeuvre un workflow pour son achèvement Ces workflows parties intégrantes de la dynamique du processus sont constituées de plusieurs activités appartenant à l une des neuf disciplines du processus Et chaque activité est réalisée par un rôle prend en entrée des artefacts et en produit en sortie Chaque rôle qu un développeur adopte est responsable d un ou de plusieurs artefacts Chaque activité se décompose atomiquement en étapes et dispose d un guide de réalisation Les artefacts peuvent être des guides des modèles des éléments de modèle ou encore des documents

    Contraintes sur le modèle

    Les contraintes sur le modèle sont fournies dans SPEM ce sont notamment les règles C

    C C C C etC

    11.1.3 Représentation

    La représentation des ontologies de domaine consiste à instancier les éléments du modèle de la Figure Nous ne présentons pas cela ici Une manière d accéder à des illustrations est fournie en Annexe B

    11.2 RUP : Ontologies des tâches

    Nous présentons dans l ontologie des tâches celles du processus générique RUP et les liens entre ces différentes tâches Une tâche pour nous sera le trio Rôle Activité Artefact car une activité est liée au rôle qui la réalise et aux artefacts produits ou modifiés Nous commençons par identifier et définir les groupes d activités puis les activités en les regroupant par discipline Ensuite nous proposons un modèle et les contraintes associées et enfin nous fournirons une manière d accéder à des illustrations Annexe B Les relations entre les groupes d activités présentées ci dessous se trouvent sur les différentes Figure et Figure

    Nous utiliserons la numérotation suivante afin d y référer le moment venu xy z x représentera la discipline pour expression des besoins et pour analyse conception y prendra la valeur pour un groupe d activités pour une activité pour un artefact pour un rôle z sera le numéro del élément concerné

    11.2.1 Conceptualisation

    11.2.1.1 Expression des Besoins : Groupes d'activités

    Analyser le problème Ce groupe d activités consiste à capturer le

    vocabulaire courant développer la vision rechercher les acteurs et les cas d utilisation et développer un plan de gestion des besoins

    Comprendre les besoins du partenaire Ce groupe d activités consiste à capturer

    le vocabulaire courant développer la vision expliciter les requêtes du partenaire rechercher les acteurs et les cas d utilisation gérer les dépendances et réexaminer les changements de besoins

    Gérer les changements de besoins Ce groupe d activités consiste à gérer les

    dépendances réexaminer les changements de besoins réexaminer les besoins structurer le modèle des cas d utilisation et réexaminer le rapport

    Définir le système Ce groupe d activités consiste à développer la vision

    capturer le vocabulaire courant rechercher les acteurs et les cas d utilisation et gérer les dépendances

    Gérer la portée du système Ce groupe d activités consiste à développer la

    vision gérer les dépendances prioriser les cas d utilisation et réexaminer les changements de besoins

    Affiner la définition du système Ce groupe d activités consiste à détailler les

    cas d utilisation détailler les exigences du logiciel modéliser et prototyper l interface utilisateur

    11.2.1.2 Analyse & Conception : Groupes d'activités

    Définir une architecture candidate Ce groupe d activités consiste à analyser

    l architecture et les cas d utilisation

    Réaliser la synthèse architecturale Ce groupe d activités consiste à analyser

    l architecture construire l architecture preuve de concept et estimer sa viabilité

    Analyser le comportement Ce groupe d activités consiste à analyser les cas
    d utilisation identifier les éléments de conception et réexaminer la conception

    Affiner l architecture Ce groupe d activités consiste à prioriser les cas
    d utilisation décrire l architecture d exécution décrire la distribution identifier les mécanismes de conception réexaminer l architecture et structurer le modèle d implémentation

    Concevoir les composants Ce groupe d activités consiste à concevoir les cas

    d utilisation les classes de test et les packages les sous systèmes les capsules réexaminer la conception et implémenter les composants

    Concevoir la base de données Ce groupe d activités consiste à concevoir les

    classes la base de données réexaminer la conception et implémenter les composants

    11.2.1.3 Expression des Besoins : Activités

    Développer le plan de gestion des exigences

    Pour développer un plan de documentation des exigences leurs attributs et les guides pour la

    traçabilité et la gestion des exigences du produit

    Développer la vision

    S entendre sur les problèmes à résoudre

    Identifier les partenaires du système

    Définir les limites du système

    Décrire les premières caractéristiques du système

    Expliciter les requêtes avec le partenaire Pour savoir qui sont les partenaires du projet

    Pour collecter les requêtes sur les exigences à remplir par le système Pour accorder des priorités aux requêtes des partenaires

    Capturer le vocabulaire courant

    Pour définir le vocabulaire commun qui peut être utilisé dans toutes les descriptions textuelles

    du système spécialement dans la description des cas d utilisation

    Rechercher les acteurs et les cas d utilisation Pour mettre en relief les fonctionnalités du système

    Pour définir ce qui sera traité par le système et ce qui sera traité à l extérieur du système Pour définir qui et quoi pourra interagir avec le système

    Diviser le modèle en packages avec les acteurs et les cas d utilisation

    Créer les diagrammes du modèle de cas d utilisation

    Développer un aperçu du modèle de cas d utilisation

    Gérer les dépendances

    Pour utiliser les attributs et la traçabilité des exigences du projet pour assister dans la gestion

    des limites du projet et la gestion des changements d exigences

    Structurer le modèle de cas d utilisation

    Pour extraire le comportement dans le cas d utilisation qui nécessite d être considéré comme

    un cas d utilisation abstrait Comme exemple de ce comportement on a le comportement courant le comportement optionnel et le comportement qui sera développé dans les dernières itérations

    Pour rechercher de nouveaux acteurs abstraits qui définissent les rôles à partager par plusieurs acteurs

    Accorder des priorités aux cas d utilisation

    Pour définir les entrées à la sélection constituée de l ensemble des scénarii et cas d utilisation

    qui sont à analyser dans l itération courante

    Pour définir l ensemble des scénarios et cas d utilisation qui représentent des fonctionnalités significatives et centrales

    Pour définir l ensemble des scénarii et cas d utilisation qui couvrent substantiellement l architecture qui mettent en jeu plusieurs éléments architecturaux ou qui illustrent un point délicat et spécifique de l architecture

    Détailler un cas d utilisation

    Pour décrire le flot d évènements des cas d utilisation en détail

    Pour décrire le flot d évènements des cas d utilisation de manière à faciliter la compréhension par les clients et les utilisateurs

    Détailler les exigences logicielles

    Pour collecter détailler et organiser l ensemble package d artefacts qui décrivent

    complètement les exigences logicielles du système ou du sous système

    Modéliser l interface utilisateur

    Pour construire un modèle de l interface utilisateur sur lequel on peut discuter qu on peut

    améliorer et qui est aisé d utilisation

    Prototyper l interface utilisateur Pour créer un prototype d interface utilisateur

    Réexaminer les exigences

    Pour vérifier formellement que les résultats des exigences satisfont la vue du client du

    système

    11.2.1.4 Analyse & Conception : Activités

    Estimer la viabilité de l architecture candidate

    Pour évaluer l architecture candidate synthétisée et déterminer si les exigences critiques de

    l architecture sont réalisables et peuvent être utilisées par ce système ou une autre solution

    Analyse architecturale

    Pour définir une architecture candidate du système basée sur l expérience des problèmes de

    systèmes ou domaines similaires

    Pour définir les modèles d architecture les mécanismes clés et le conventions de modélisation pour le système

    Pour définir la stratégie de réutilisabilité

    Pour fournir une entrée au planning du processus

    Identifier les mécanismes de conception

    Pour transformer les mécanismes d analyse en mécanismes de conception basés sur les

    contraintes imposées par l environnement d implémentation

    Identifier les éléments de conception

    Pour analyser les interactions des classes d analyse et identifier les éléments du modèle de

    conception

    Construire l architecture candidate

    Pour synthétiser au moins une solution qui devra être tout simplement conceptuelle qui

    répond aux exigences architecturales critiques

    Incorporer les éléments de conception existants

    Pour analyser les interactions des classes d analyse et rechercher les interfaces des classes de

    conception et des sous systèmes de conception

    Pour affiner l architecture en incorporant la réutilisabilité où cela est possible

    Pour identifier les solutions courantes aux problèmes de conception couramment rencontrés Pour inclure des éléments du modèle de conception significatifs de l architecture dans la section de la vue logique du document d architecture logicielle

    Décrire l architecture d exécution

    Pour analyser les exigences concurrentes pour identifier le processus identifier les

    mécanismes de communication interprocessus allouer les ressources de coordination interprocessus identifier les cycles de vie du processus et distribuer les éléments du modèle à travers le processus

    Décrire la distribution

    Pour décrire comment la fonctionnalité du système est distribuée le long des noeuds

    physiques Ceci est fait juste pour les systèmes distribués

    Concevoir la capsule

    Pour élaborer et affiner la description d une capsule

    Analyser le cas d utilisation

    Pour identifier les classes qui réalisent un flot d événement de cas d utilisation

    Pour distribuer le comportement du cas d utilisation à ces classes en utilisant les réalisations du cas d utilisation

    Pour identifier les responsabilités les attributs et les associations des classes

    Pour noter l usage des mécanismes architecturaux

    Concevoir le cas d utilisation

    Pour affiner les réalisations du cas d utilisation en termes d interactions

    Pour affiner les exigences sur les opérations des classes de conception

    Pour affiner les exigences sur les opérations des sous systèmes et ou leurs interfaces Pour affiner les exigences sur les opérations des capsules

    Concevoir le sous système

    Pour définir les comportements spécifiés dans les interfaces du sous système en termes de

    collaborations des classes contenues dans le sous système

    Pour documenter la structure interne du sous système

    Pour affiner les réalisations entre les interfaces du sous système et les classes contenues dans le sous système

    Pour déterminer les dépendances avec les autres sous systèmes

    Concevoir la classe

    Pour s assurer que la classe fournit le comportement des réalisations du cas d utilisation

    requis

    Pour s assurer qu il y a assez d informations pour implémenter la classe sans ambiguïté Pour manipuler les exigences non fonctionnelles reliées à la classe

    Pour incorporer les mécanismes de conception utilisés par la classe

    Concevoir les classes de test et les packages Pour concevoir les fonctionnalités spécifiques de test

    Concevoir la base de données

    Pour s assurer que la persistance des données est efficacement stockée et est consistant

    Pour définir le comportement qui doit être implémenté dans la base de données Réexaminer l architecture

    Pour découvrir un quelconque risque ou des risques perçus dans l agenda ou le budget

    Pour détecter un défaut de conception quelconque dans l architecture Les défauts d architecture sont reconnus pour être difficiles à arranger les plus dommageables dans le processus

    Pour détecter des incohérences potentielles entre les exigences et l architecture conception élevée exigences non réalistes ou exigences perdues En particulier l évaluation pourrait examiner plusieurs aspects très souvent négligés dans les opérations l administration et la maintenance Comment le système est installé Mis à jour Comment migrer la base de données courante Pour évaluer une ou plusieurs qualités architecturales spécifiques la performance la sûreté l évolutivité la sécurité

    Pour identifier les opportunités de réutilisation

    Réexaminer la conception

    Pour vérifier que le modèle de conception est conforme aux exigences du système et qu il sert de bonne base pour son implémentation

    Pour s assurer que le modèle de conception est conforme au guide général de conception Pour s assurer que le modèle de conception remplit ses objectifs

    11.2.2 Formalisation

    Modèle

    Le modèle que nous présentons ci dessous résulte de l adaptation de la structure du processus de SPEM sur la Figure au processus générique RUP mapping L adaptation a consisté à affiner la structure d un processus fournie par SPEM au processus générique RUP

    Figure 11 La structure du processus RUP: Rôles, Activités et Artefacts

    Contraintes sur le modèle

    Les contraintes que nous utilisons sont celles présentées dans la structure du processus de SPEM SPEM au paragraphe de la page

    11.2.3 Représentation des concepts

    Les diagrammes basiques d UML seront utilisés pour présenter les différents aspects de RUP en respectant la standardisation SPEM En particulier nous utiliserons les diagrammes de classe de package et d activité

    Les diagrammes de classe permettent la représentation des aspects tels l héritage la dépendance les associations simples les points de commentaires pour les guides par exemple lien URL les relations Rôle Artefact la structure la décomposition et les dépendances des artefacts

    Les diagrammes de package permettent la représentation du processus des composants du processus des packages du processus et des disciplines

    Les diagrammes d activité permettent de présenter la séquence d activité avec leurs entrées sorties comme des états de flot d objet

    11.2.3.1 Les groupes d'activités

    Ces deux diagrammes d activités présentent les groupes d activités constituant les disciplines d expression des exigences et d analyse conception et leur enchaînement dans un ordre logique Dans la suite nous nous attarderons sur ces groupes d activités

    Figure 12 Analyse & Conception IRUP03

    Figure 13 Expression des exigences IRUP03 02] 02]

    Le tableau ci dessous présente les artefacts et les activités de chaque rôle pour les disciplines d Expression des Besoins et d Analyse Conception Des illustrations seront présentées en Annexe B

    Expression des Besoins

    Rôle

    Artefacts

    Activités

    Analyste Système

    Plan de Gestion des Besoins Requêtes du Partenaire

    Glossaire

    Vision

    Modèle des Cas d Utilisation Spécifications Supplémentaires Attributs des Besoins

    Développer le Plan de Gestion des Besoins

    Etablir les Requêtes du Partenaire Capturer le Vocabulaire Courant Développer la Vision

    Structurer le Modèle des Cas d Utilisation

    Gérer les Dépendances

     

    Spécificateur des Besoins

    Cas d Utilisation

    Package des Cas d Utilisation Spécification des Besoins Logiciels

    Détailler un Cas d Utilisation
    Détailler les Besoins Logiciels

     
     

    Acteur

    Classe Frontière

    Historique des Cas d Utilisation Prototype de l Interface

    Utilisateur

    Modéliser l Interface Utilisateur Prototyper l Interface Utilisateur

    Architecte Logiciel

     

    Prioriser les Cas d Utilisation

    Réexaminateur des Besoins

     

    Réexaminer les Besoins

     

    Analyse Conception

    Rôle

    Artefacts

    Activités

    Architecte Logiciel

    Concepteur

     

    Modèle de Déploiement Document d Architecture Logicielle

    Réalisation du Cas d Utilisation Sous système de Conception Package de Conception

    Classe d Analyse

    Classe de Conception

    Modèle d Analyse

    Modèle de Conception

    Preuve du Concept Architectural Architecture de Référence Interface

    Signal

    Evènement

    Protocole

    Estimer la viabilité de

    l Architecture Preuve du Concept Analyse Architecturale

    Identifier les mécanismes de conception

    Identifier les éléments de conception

    Construire l Architecture Preuve

    du Concept

    Incorporer les éléments de conception existants

    Décrire l Architecture d Exécution Décrire la Distribution

     

    Analyse des Cas d Utilisation Conception des Cas d Utilisation Conception des Sous systèmes Conception des Classes Conceptions des Classes de Test et des Packages

    Concepteur de BD

    Modèle de Données

    Conception de BD

     

    Concepteur de Capsule

    Capsule

    Conception de la Capsule

    Réexaminateur de l Architecture

    Pas d artefacts

    Réexamen de l Architecture

    Réexaminateur de la Conception

    Pas d artefacts

     
     
     

    Tableau 2 Rôles/Artefacts/Activités du RUP

    111 Le Système Multi-Agents d'Assistance à la Modélisation

    111.1 Vision du système

    Le SM AM dans le cas du processus générique RUP fournit la connaissance nécessaire à l équipe de développement pour l adoption des rôles et la réalisation des activités Il permet le suivi du workflow et des best practices du processus générique RUP Il permet également l adaptation du processus générique RUP à un projet et concerne essentiellement les phases d Expression des Besoins et d Analyse Conception

    Le système est un collaborateur un véritable partenaire du fait qu il assiste le développeur en le guidant en lui fournissant des explications en contrôlant son travail et en prenant des initiatives visant a anticiper sur les tâches du développeur C est un système qui contribue à l efficacité et à l approfondissement de la réflexion du développeur sur un projet en cours avec également une possibilité de délégation pour certaines tâches et d assistance du SMA sur le projet en cours

    Ce SMA tire sa connaissance de la base de connaissances du processus de développement Une connaissance désigne un élément du processus avec les règles qui l accompagnent La figure ci dessous présente ces différents éléments

    Interface d'assistance

    communique

    est assisté

    utilise

    Developpeur

    SMA

    accède

    BCPD

    Systeme Logiciel en cours

    Figure Schéma de fonctionnement

    met à jour

    111.2 Expression des Besoins

    Le système devra permettre au développeur de


    · Réaliser un projet

    · Réaliser les différentes itérations d un projet

    · Réaliser les différentes activités d une itération

    · Réaliser les différentes étapes d une activité

    Il devra également assister le développeur dans ces différentes tâches et prendre

    éventuellement des décisions de modélisation Assister consiste essentiellement à

    · Guider

    · Expliquer

    · Contrôler

    111.3 Acteurs et Rôles

    SM AM utilise essentiellement les cinq acteurs du développement présenté à la Figure

    Ce sont essentiellement deux acteurs primaires

    Le développeur qui est l utilisateur principal de notre système c est à lui qu est destiné le système Il doit disposer de connaissances sur le langage de modélisation unifié UML

    L expert s occupe essentiellement de la mise à jour de la base de connaissances du processus de développement RUP à chaque mise à jour par Rational Software ou lorsqu il veut modifier des connaissances

    Et quatre acteurs secondaires

    L Agent GUI est un agent interactif qui capture toutes les actions de l utilisateur et utilise le profil de l utilisateur et les connaissances des autres agents pour assister le développeur Il s adapte à l utilisateur L Agent GUI est un agent interface intelligent qui assiste le développeur dans l interaction et la réalisation des tâches liées au SM AM dans un environnement intuitif et agréable Il aide le développeur en l assistant dans son travail Il peut apprendre par l exemple et accumuler les expériences en observant et en interagissant avec le développeur ou en s informant chez ses pairs

    L Agent Activité est un agent intelligent qui dispose des connaissances relatives aux différentes activités du processus Une activité est définie comme une unité de travail qu un développeur réalise Le but d une activité est typiquement de créer ou de développer les artefacts Les activités sont subdivisées en étapes et chaque étape est associée à un certain nombre de règles qui supportent la réalisation de l étape

    L Agent Rôle est un agent intelligent qui dispose des connaissances relatives aux différents rôles du processus Il connaît également les différentes activités qu un rôle réalise et les artefacts dont il est responsable Il suit un développeur dans l adoption d un rôle particulier Il sera d un apport immense lors de la gestion des équipes de développement qui sort du cadre actuel de ce travail

    L Agent Workflow est aussi un agent intelligent qui intègre tous les éléments de déroulement du processus au vu des best practices de celui ci Il utilise également les éléments de la base de connaissances et la connaissance des Agents Activité et Rôle pour fournir des éléments d assistance à l agent GUI Il garde toutes les informations sur le projet en cours de réalisation

    interagit

    communique

    assiste

    Figure Acteurs du système

    Les agents réagissent aux événements qui affectent leurs rôles Une activité est réalisée par un rôle adopté par le développeur dans l environnement SM AM Cette activité fait partie intégrante d un workflow du processus générique RUP qui permet d assister le développeur dans sa tâche

    111.3.1 Les règles

    Les règles capturent la connaissance dans SM AM et servent les agents dans leur raisonnement Une règle est constituée d une partie condition et d une partie action à l instar d une clause if then dans les langages de programmation conventionnels

    111.4 Modèle générique

    Le Tableau présente les croyances les objectifs et les plans de nos agents intelligents selon le formalisme BDI Les agents ont exactement les même plans mais ils les appliquent différemment Les croyances sont les faits sur les éléments en cours de réalisation Dépendances concerne les dépendances entre les différentes activités les différents artefacts tels que définis par le package Dependencies de SPEM

     

    Croyances

    Objectif

    Plans

    Agent Workflow

    Itération Phase

    Discipline

    Groupe d activités Activités

    Dépendances

    Suivre et assister une itération

    Guider Expliquer Contrôler

    Agent Activité

    Activité Etapes

    Artefacts

    Suivre et assister une activité

    Guider Expliquer Contrôler

     

     

    Dépendances

     
     

    Agent Rôle

    Rôle

    Activités
    Artefacts

    Suivre et assister un rôle

    Guider Expliquer Contrôler

     

    Tableau 3 Les agents : formalisme BDI

    Beaucoup plus formellement les agents ont les rôles suivants

    Agent GUI Interface Gérer l interface Agent Workflow Assistant Guider Expliquer Contrôler Agent Role Assistant Guider Expliquer Contrôler Agent Activite Assistant Guider Expliquer Contrôler

    Ces différents rôles sont utilisé dans la réalisation des objectifs du développeur suivant la

    description des fonctionnalités détaillées des agents dans l environnement 111.4.1 Fonctionnalités détaillées des agents

    111.4.1.1 Agent GU1

    · Reçois la requête du développeur

    · Accède au profil du développeur

    · Décide du mode d assistance

    · Transmet la requête du développeur à l agent concerné et reçoit la réponse de celui ci

    · Transmet la réponse au développeur

    · Affiche les messages d assistance des différents agents au développeur de manière conviviale

    · Reçoit les modalités d interaction du développeur et s adapte à celui ci en mettant le profil à jour profiling

    ·

    Sent la présence du développeur clic par exemple

    111.4.1.2 Agent Workflow

    · Reçoit la requête de l Agent GUI

    · Accède à sa connaissance Base de Connaissances Connaissances Internes

    · Demande des informations appropriées aux autres agents

    · Reçoit les informations des autres agents

    · Suit une itération

    · Guide le workflow du projet en cours

    · Explicite le workflow du projet en cours

    · Contrôle le workflow du projet en cours

    · Envoie une réponse à l Agent GUI

    · Met à jour sa connaissance

    111.4.1.3 Agent Activité

    · Reçoit la requête de l Agent GUI

    ·

    Accède à sa connaissance Base de Connaissances Connaissances Internes


    · Demande des informations appropriées aux autres agents

    · Reçoit les informations des autres agents

    · Suit une activité

    · Suit une étape

    · Guide l activité en cours de réalisation par le développeur

    · Explicite l activité en cours de réalisation par le développeur

    · Contrôle l activité en cours de réalisation par le développeur

    · Envoie une réponse a l Agent GUI

    · Met à jour sa connaissance

    Le diagramme suivant présente l activité de l Agent Activité dans l environnement

    L'Agent Activité est toujours en attente des interactions du développeur. Une recommandation est proposition de l'agent au développeur tandis qu'une conclusion est le résultat d'une évaluation.

    Fournir la liste des
    artefacts et des étapes

    [Arrêt]

    Capturer les interactions

    Fournir des
    conclusions ou des
    recommandations

    Modifier l'état

    [Validation]

    Contrôler et enregistrer

    [Artefact]

    [Recommandation]

    [Conclusion]

    [Etape]

    Décrire et fournir les
    éléments à modifier

    Décrire et fournir les
    éléments à créer

    Contrôler l'étape

    Figure 16 Activité de l'Agent Activité

    111.4.1.4 Agent Rôle

    · Reçois la requête de l Agent GUI

    · Accède a sa connaissance Base de Connaissances Connaissances Internes

    · Demande des informations appropriées aux autres agents

    · Reçois les informations des autres agents

    · Suit un rôle

    · Guide le rôle courant adopté par le développeur

    · Explicite le rôle courant adopté par le développeur

     
     

    · Contrôle le rôle courant adopté par le développeur

    · Envois une réponse a l Agent GUI

    · Met à jour sa connaissance

    111.4.2 1nteractions des agents 111.4.2.1 Agent GU1 -- Agent Workflow

    · L Agent GUI informe l Agent Workflow du début d un projet

    · L Agent Workflow requiert les informations sur le projet

    · L Agent GUI informe l Agent Workflow du début d une phase

    · L Agent Workflow requiert les informations sur la phase

    · L Agent GUI informe l Agent Workflow du début d une itération

    · L Agent Workflow requiert les informations sur l itération

    · L Agent GUI demande de l assistance sur le workflow

    · L Agent Workflow fournit l assistance au workflow

    · L Agent GUI informe l Agent Workflow de la fin d une itération

    · L Agent GUI informe l Agent Workflow de la fin de la phase

    · L Agent GUI informe l Agent Workflow de la fin du projet

    111.4.2.2 Agent GU1 -- Agent Activité

    · L Agent GUI informe l Agent Activité du début d une nouvelle activité

    · L Agent Activité demande les informations sur l activité

    · L Agent GUI informe l Agent Activité du début d une nouvelle étape

    · L Agent Activité demande les informations sur la nouvelle étape

    · L Agent GUI demande de l assistance sur l activité ou un étape particulière

    · L Agent Activité fournit l assistance à l activité

    · L Agent GUI informe l Agent Activité de la fin d une activité

    111.4.2.3 Agent GU1 -- Agent Role

    · L Agent GUI informe l Agent Rôle de l adoption d un rôle par le développeur

    · L Agent GUI demande de l assistance sur le rôle

    · L Agent Rôle fournit l assistance au rôle

    111.4.2.4 Agent Workflow -- Agent Activité

    · L Agent Workflow demande des informations sur l activité en cours de réalisation

    · L Agent Activité informe l Agent Workflow sur l activité en cours de réalisation

    111.4.2.5 Agent Workflow -- Agent Role

    · L Agent Workflow demande des informations sur le rôle adopté par le développeur

    · L Agent Rôle informe l Agent Workflow sur le rôle adopté

    111.4.2.6 Agent Activité -- Agent Role

    · L Agent Activité demande des informations sur le rôle adopté par le développeur

    · L Agent Rôle informe l Agent Activité sur le rôle adopté

    · L Agent Rôle demande des informations sur l Activité en cours de réalisation


    · L Agent Activité informe l Agent Rôle sur l activité en cours de réalisation

    111.5 Scénario

    SM AM offre une assistance au développeur Cette assistance consiste essentiellement à le guider lui fournir des explications et contrôler son travail Ce scénario décrit la réalisation d un projet avec SM AM

    Le développeur crée un projet en précisant les informations relatives au projet nom nombre d itérations L Agent GUI informe l Agent Workflow du début d un projet Le développeur spécifie une itération L Agent GUI informe l Agent Workflow qui maintient un ensemble d activités disponibles pendant cette itération

    Le développeur adopte un rôle L Agent GUI informe l Agent Rôle qui crée une instance pour gérer le rôle Cette instance maintient un ensemble d activités réalisables par le rôle concerné et d artefacts dont le rôle est responsable L Agent Rôle informe l Agent Workflow des activités réalisables par le rôle

    Le développeur décide de réaliser une activité qu il sélectionne dans la liste des activités en respectant les précédences fournies par l Agent Workflow L Agent GUI informe l Agent Activité qui crée une instance pour gérer l activité Cette instance maintient un ensemble d artefacts utilisables et produits par l activité

    Le développeur réalise une activité en utilisant les éléments d assistance fournis par l Agent GUI pour documenter son activité Le développeur crée également les différents artefacts et peut consulter l état des artefacts existants fournit par l Agent Workflow

    Le développeur réalise également une activité avec l aide de l Agent Activité qui le guide pas à pas dans la réalisation des différentes étapes constitutives de l activité en cours

    Le développeur passe ensuite à l activité suivante fournie par l Agent Workflow

    Les Agents Workflow et Rôle interviennent dans la réalisation d une activité essentiellement au niveau de l assistance en particulier du contrôle

    Le développeur peut enregistrer son projet l importer au format standard d échange des fichiers de modélisation pour compléter son travail avec un outil case UML Il peut également obtenir le rapport de modélisation de SM AM avec des indications qui le guideront dans ces outils CASE

    111.6 Cas d'Utilisation

    Nous présentons ici les modèles de cas d utilisation des trois packages que nous avons

    défini plus haut Les noms des cas d utilisation ont été choisis de manière à lever toute ambiguïté tout en permettant d avoir une idée en se référant aux Chapitres II pour le package processus et III pour les éléments d assistance On peut également se référer à la description des fonctionnalités des agents Un modèle détaillé complet est momentanément disponible sur le site http sm am

    «extend»

    Agent peut-etre

    l'Agent Role, l'Agent Activite, l'Agent GUI ou l'Agent Processus

    «extend»

    Figure 17 BCPD : Modèle des Cas d'Utilisation

    «include»

    «include»

    «include»

    Figure 18 Processus : Modèle des Cas d'Utilisation

    «include»

    «include»

    «include»

    «include»

    «include»

    «include»

    Agent peut-etre l'Agent Role,

    l'Agent Activite, l'Agent GUI ou

    l'Agent Processus

    Figure SMA Modèle des Cas d Utilisation

    111.7 Architecture du système

    Notre système se compose essentiellement de cinq composants et de trois sous

    composants

    BCPD Base de connaissances du Processus de Développement elle contient les ontologies de tâches tâches et liens entre les tâches et de domaine concepts et liens entre les concepts du processus de développement Elle constitue la connaissance de certains agents Workflow Activité Rôle

    Interface d assistance Le développeur sera assisté par les agents au travers d une interface d assistance Toutes les entrées et les sorties des agents seront capturées à travers cette interface Cette interface unifie tous les éléments du système Cette interface intègre également un gestionnaire de projet qui se charge des tâches liées au projet à l instar de l importation l exportation la sauvegarde et l ouverture des projets

    Processus Très souvent les organisations et à moindre échelle les développeurs ont besoin de configurer un processus générique pour l adapter à leurs projets Le degré d adaptation ou de personnalisation dépend des objectifs à atteindre du temps des équipes Ce composant contient les éléments de configuration du processus ainsi que les éléments liés aux rôles aux activités et aux artefacts dans notre système

    Profil Utilisateur Ce package contient tous les éléments de gestion du profil d utilisateur Il constitue la connaissance de l Agent GUI

    SMA C est le noeud du système il contient un ensemble de règles sur le processus de
    développement Il utilise la base de connaissances du processus pour évaluer ces règles et les
    appliquer au projet en cours On distingue quatre types d agents dans le SMA l agent

    GUI les agents de rôle les agents d activités et l agent Workflow le détail a été donné

    plus haut

    Les dépendances entre ces composants sont représentées sur la Figure

    SMA

    BCPD

    Interface d'assistance

    Processus

    Activite

    Artefact

    Role

    Figure Composants du système

    Profil Utilisateur

    111.8 Réalisation des Cas d'Utilisation

    Le pont entre l Expression des Besoins et la Conception est la réalisation des cas d utilisation présenté dans REJ Elle consiste essentiellement à faire ressortir les interactions avec des diagrammes de séquence des diagrammes de collaboration ou des diagrammes d activités Une description complète est fournie sur le site http sm am

    111.9 Diagrammes de Classes

    Figure 21 SMA : Structure

    Les quatre agents dérivent de la superclasse Agent Les agents

    Workflow Activité et Rôle appliquent leurs plans guider contrôler et expliquer lorsque des faits peuvent être consommés L Agent GUI gère le projet en cours

    Figure 22 Classes persistantes du SM2AM

    Un Projet suit généralement un Processus Le processus est composé des activités et des rôles réalisant ces activités Les rôles et les activités peuvent appartenir à plusieurs processus à la fois Les valeurs de certain éléments d interface sont gardés au cours de leur dernier accès dans le Profiling et restitués lorsque le développeur y accède par la suite

    111.1 0 Prototype de l'interface utilisateur

    Plusieurs logiciels modernes sont conçus pour interagir avec des utilisateurs Pour faciliter la communication entre le système logiciel et les utilisateurs les développeurs ont inventé les interfaces graphiques utilisateurs Graphical User Interfaces RUP prône l intégration de l utilisateur final tout au long du processus afin de minimiser les risques Il est donc nécessaire de prototyper l interface utilisateur pour lui donner un aperçu du produit final Nous fournissons ici une description brève suivi d une illustration à la Figure

    L interface comporte un menu principal qui est toujours affiché Dans ce menu l utilisateur dispose des options comme nouveau projet ouvrir un projet enregistrer un projet importer un projet exporter un projet générer le rapport Pour un nouveau projet l ouverture d un
    projet et l importation le développeur précise les propriétés du projet Il peut également modifier son profil pour l ouverture d un projet

    Senior Architect à Rational Software présente dans REO une manière

    .,

    d utiliser les diagrammes d activités de UML pour détailler la navigation de l utilisateur a travers l interface Il définit pour cela des stéréotypes comme presentation pour indiquer une conversation entre l acteur et le système connector représente la connexion a un autre diagramme et frame décrit l affichage

    111.11 Conclusion

    Ce chapitre a présenté le modèle de notre système L identification des concepts et liens entre concepts et l identification des tâches et liens entre tâches proviennent essentiellement d une étude du produit RUP disponible sur le site de Rational Software Nous avons suivi la méthodologie de modélisation simplifiée de RUP RUP for Small Project pour la modélisation de SM AM Cette modélisation telle que décrite dans le cours en ligne de Rational Software consiste à identifier les cas d utilisation puis réaliser ces cas d utilisation en utilisant les diagrammes d interaction puis ressortir les classes Ceci a été complété par les éléments du RUP for Small Project

    [Quitter]

    [Projet]

    «presentation»
    Main Dialog(minimum)

    Affichage, Role, Activite, Modelisation,
    Outils et Aide n'ont pas ete presentes

    [nouveau]

    [importer]

    [exporter]

    [enregistrer]

    [ouvrir]

    [generer]

    «presentation»
    Nouveau

    «presentation»
    Importer

    «presentation»
    Ouvrir

    «presentation»
    Exporter

    «presentation»
    Enregistrer

    «f r am e»
    Ouvrir un document

    «presentation»
    Rapport

    «frame»
    Enregistrer un projet

    [Proprietes]

    «frame»
    Ouvrir un projet

    [OK]

    [conf igurer]

    «presentation» Proprietes du nouveau projet

    [O [OK]

    «presentation»
    Proprietes du projet

    [valider]

    [profil]

    [close]

    Valider

    «connector»
    Configuration du
    processus

    [OK,Annuler]

    [OK,Annuler]

    Projet complet
    avec toutes les
    fonctionnalites

    «presentation»
    Profil

    [OK,Annuler]

    «presentation»
    Main Dialog(GUI)

    Figure 23 Déroulement de l'interface de l'application

    cammu Y la?leltin«

    Vingt fois sur le métier remettez votre ouvrage Polissez le sans cesse et repolissez le
    Boileau

    Nous présentons ici les outils qui nous ont permis de construire la BCPD Protégé et d implémenter notre application NetBeans JDOM

    La BCPD contenant l implémentation des ontologies de domaine description du domaine et de tâches quoi réaliser et comment le réaliser du processus générique RUP est ensuite présentée

    Le SMA suit

    Nous terminons par la présentation de l application SM AM

    I Outils de réalisation

    Les outils suivant ont aidé à la réalisation de ce travail

    JDOM API java qui permet de gérer les fichiers XML Il définit une interface de consultation et de mise à jour des fichiers XML

    NetBeans Véritable environnement de développement visuel IDE Java NetBeans est une plate forme de réalisation d application web et Java Elle est disponible gratuitement sur le site de SUN

    Protégé Nous avons utilisé Protégé pour la construction de la base de

    connaissances du processus de développement générique RUP Protégé est le
    dernier outil d une suite d outils développés par l Université de Standford depuis pour l acquisition des connaissances Il est utilisé par un millier d utilisateurs à travers

    le monde qui développent des projets divers et variés Protégé est gratuitement

    disponible en téléchargement sous la licence open source Mozilla Protégé fournit

    un environnement graphique et interactif de conception d ontologie de développement de base de connaissances

    Rational XDE Présenté comme outil de modélisation au premier paragraphe du Chapitre IV

    II Une Base de Connaissances du Processus de Développement RUP

    Nous présentons en Annexe B la DTD du fichier XML représentant notre base de
    connaissances Elle est conforme à la DTD de SPEM présentée en Annexe A Les règles sur ces
    connaissances seront aussi fournies Elles sont représentées par les dépendances Elle a été

    générée avec l outil Protégé La mise à jour de la base de connaissance par l expert se fera

    sous Protégé qui génèrera le fichier XML Concevoir des interfaces de mise à jour aurait

    été développer un Protégé

    III Un SMA pour l'exploitation de la BCPD

    Nos agents utilisent trois concepts action conclusion recommandation pour assister le
    développeur Une recommandation est une tâche atomique que le développeur peut réaliser

    comme décrire un cas d utilisation ou nommer un acteur Une action est une proposition au développeur par le SMA d un ensemble de recommandations Une conclusion est également une action à la différence qu elle survient après l évaluation d une ou de plusieurs règles

    Le formalisme BDI est implémenté en munissant nos agents d un ensemble de faits Ces faits sont essentiellement les objets sur lesquels ils raisonnent et leur état courant Lorsque les agents Workflow Activité et Rôle sont informés de la modification d un fait ils cherchent un objectif qui peut consommer le fait l objectif trouvé ils appliquent le plan qui sied le mieux au fait

    IV Une Assistance au développeur avec le SM2AM

    IV.1 Présentation de l'interface

    Notre interface se décompose en un quinté d éléments tels que présentés à Figure

    Menu comporte les différentes fonctionnalités proposées au développeur Il s agit notamment pour fichier de lui permettre de créer ouvrir enregistrer importer et exporter un projet d imprimer un rapport de son activité Affichage lui permet de choisir parmi les actions les conclusions et les recommandations celles à afficher Rôle est utilisé par le développeur pour adopter un ou plusieurs rôle s Activité contient les groupes d activités que le développeur peut décider de réaliser Modélisation contient les éléments de modèles UML que l utilisateur peut décider de créer à un moment donné Enfin Outil permet au développeur de configurer son environnement et le processus

    Visualisation comporte trois vues qui permettent au développeur d avoir un récapitulatif de son projet à tout moment La vue cas d utilisation UseCaseView inclut le modèle des cas d utilisation qui représente les fonctionnalités attendues du système et l environnement tel qu il est perçu par les utilisateurs finaux Elle sert de contrat entre l utilisateur final et le développeur et est essentielle pour les activités d analyse et conception et de test Elle inclut également les diagrammes des cas d utilisation le flot d évènements des cas d utilisation et une documentation supplémentaire Il peut également inclure des diagrammes d activité C est le coeur des autres vues parcequ elle modèle l architecture du système La vue logique LogicalView supporte les besoins fonctionnels du système les services que le système final doit fournir à ses utilisateurs Elle inclut les réalisations des cas d utilisation les classes et les diagrammes d interaction et peut également inclure les diagrammes d état et les diagrammes d activité La vue développement EnactmentView permet d avoir un aperçu sur le déroulement du processus les activités déjà réalisées l activité en cours les activités à réaliser les différents artefacts avec leur état respectifs La documentation des activités y est incluse

    Activité vient guider le développeur dans la réalisation d une activité en lui fournissant des actions des conclusions ainsi que des recommandations Elle permet au développeur de modifier l état des artefacts en paramètres de l activité en cours Recommandation présente les éléments à modifier suivant les propositions de Activité Documentation et Assistance permet au SMA de guider le workflow du développeur de le contrôler et de lui fournir des explications Le développeur peut prendre des notes qui lui permettront de se remémorer le workflow

    Figure 24 SM2AM : Interface

    Un déroulement de scénario est fourni ici

    IV.2 Déroulement du scénario

    Pour le déroulement du scénario nous allons commencer par créer un projet sous Rational Rose puis l exporter au format XMI et l importer dans SM AM SM AM fera le contrôle et enfin le réexportera au format XMI et le développeur pourra continuer son développement en dessinant les diagrammes

    D Etape création et exportation du projet sous Rational Rose

    Le développeur crée un nouveau projet dénommé sm am Dans la Use Case View il crée

    quatre acteurs le développeur l agent GUI l agent Workflow l agent Activité et l agent Rôle

    Il crée également les cas d utilisation suivre un projet suivre une itération suivre une activité suivre un rôle et réaliser un projet Figure Le développeur exporte ensuite le projet au format standard XMI dans le menu Tools Export to UML Figure

    Ø

    Etape importation sous SM AM et création du projet Dans le menu Projet Importer le développeur entre le chemin du fichier et valide

    l importation La boîte de dialogue de création de nouveau projet apparaît également

    accessible à partir de Projet Nouveau Figure à Figure

    L Agent Workflow naît le premier bouton s allume et se met en attente

    Ø Etape adoption d un rôle Le développeur adopte un rôle celui d Analyste Système L Agent Rôle Analyste Système naît

    le deuxième bouton s allume et se met en attente Figure

    Ø Etape Réalisation d une activité dans un groupe d activités Il sélectionne Figure le groupe d activités à réaliser Définir le système

    Une description du groupe d activité est affichée et le développeur sélectionne l itération concernée Figure L Agent Workflow est aussitôt informé de l itération en cours Il modifie aussitôt la vue

    La liste des activités composant le groupe Définir le système s affiche Les Agents Capturer le vocabulaire courant Développer la vision Rechercher les acteurs et les cas d utilisation et Gérer les besoins naissent et se mettent en attente

    Il décide de réaliser l activité Rechercher les acteurs et les cas d utilisation en la sélectionnant

    Figure Le développeur crée un nouvel acteur l acteur Expert L agent Rechercher les acteurs et les cas d utilisation crée l acteur et met à jour le tableau noir L agent Workflow est informé de la modification et met à jour la vue Figure

    L assistance fournie permet au développeur de prendre des notes qui seront contenues dans le rapport du projet Des explications des éléments de guidage et de contrôle sont fournis Figure et Figure

    Ø

    Etape Génération du rapport Le développeur génère le rapport Figure du projet en précisant le niveau de détail Le

    rapport contient les éléments de la vue déroulement EnactmentView Des descriptions sont associées aux différents éléments

    Ø Etape Exportation du projet Le projet est ensuite exporté au format XMI et réutilisable sous Rational Rose pour ajouter des

    diagrammes

     
     

    Figure 25 Créer le projet sous Rational

    Figure 26 Exporter le projet sous Rational

     
     

    Figure 27 Importer

    Figure 28 Nouveau I

    Figure 29 Nouveau 2 Figure 30 Nouveau 3

     
     

    Figure 31 Adopter un rôle

     

    Figure 32 Sélectionner une itération

    Figure 33 Sélectionner un groupe d'activité

     
     

    Figure 35 Vue du projet

    Figure 34 Créer un acteur

     

     
     

    Figure 36 Explications

     

    Figure 37 Rapport

    Figure 38 Contrôles

    V Conclusion

    Nous avons présenté ici un résultat palpable de notre travail à savoir la base de connaissances de RUP qui est représenté sous le format d échange XML avec Protégé Ensuite la réalisation de notre SMA et l intégration à SM AM SM AM a également été présenté comme résultat de notre travail

    cmaruen s? Milan«

    Si tout ici bas était excellent il n y aurait rien d excellent Denis Diderot Le Neveu de Rameau

    I Synthèse

    Ce travail a présenté un prototype du SM AM avec le RUP Un SMA qui devait permettre d assister le développeur dans la conception d application Ce prototype a nécessite un certain nombre d étapes La première phase de notre travail a essentiellement consisté à l élaboration des données que notre système allait utiliser Nous avons suivi une démarche pour le moins méticuleuse et inductive en

    Identifiant les ontologies du processus de développement RUP

    Identifiant les formalismes de représentation des ontologies étape au cours de laquelle nous avons retenu le formalisme SPEM sous ensemble UML OCL

    Représentant ces ontologies avec le formalisme SPEM

    Cette phase d élaboration des données a conséquemment abouti à la construction de la BCPD

    conforme SPEM que le SMA devait exploiter Une autre étape menée en parallèle a été la modélisation du SM AM à concevoir avec une consécution d éléments nouveaux Cette modélisation a consistée à

    Modéliser la société d agents en utilisant les standards en l occurrence celui de la FIPA Foundation of Intelligent Physical Agents

    Modéliser le SM AM

    Bref nous avons identifiés dans le RUP les connaissances nécessaires pour guider un

    développeur dans la modélisation avec le RUP Puis nous les avons représentées Nous avons également mis en oeuvre une SMA pour gérer et utiliser ces connaissances Enfin le prototype fourni permet au développeur de suivre un workflow tout en étant assisté par le SMA Ce prototype a été réalisé en implémentant la société d agents et l application elle même puis en effectuant une intégration des deux sous systèmes

    II Critiques propres

    Vu le temps a nous imparti et aussi la documentation non disponible la réalisation n a pris en compte qu un RUP simplifié le RUP for Small Project De plus la configuration du processus par l utilisateur n a pas été réalisée Les plates formes de réalisation de SMA Zeus JACK FIPA OS n étaient pas assez documentées pour permettre un développement rapide de plus les forums sur ces différentes plates formes n étaient pas suivis Une étude comparative des

    http www fipa org

    différentes plates formes devrait être réalisée afin de choisir celle qui sied le mieux à notre système

    Il est certes des éléments qui auraient pu être faits autrement et beaucoup de choses à corriger du fait de notre manque d expérience item pour la technologie des agents elle même Les trois mois de travail en cours devraient nous permettre de prendre en compte tout le processus et d affiner la BCPD Toute oeuvre humaine n étant jamais parfaite nous restons ouverts à toutes critiques constructives

    III Perspectives

    Dans le cadre du projet CIAO nous devrons dans la suite intégrer le SMA d assistance à la production d artefacts valides de notre camarade Francis Michel KONHAWA Nous devrons également prendre en compte la méthodologie de développement MERISE L intégration dans CIAO devrait également mettre l accent sur la réutilisabilité par l exploitation des cas et de la base de connaissances du domaine d application

    Nous ne pouvons qu ici conjecturer en disant que ce prototype du SM AM vient à point nommé pour guider tous les protagonistes de la modélisation dans le génie logiciel avec le RUP Loin de la forte propension des prosélytes du way of modeling avec UML il est grand temps que les éditeurs se tournent vers le way of working en utilisant le Processus Unifié qui tend à la standardisation Cette initiative devrait aller plus loin pour couvrir toutes les neuf disciplines du RUP

    Bibliographie

    ?????????????

    Webographie

    ???????????

    http://www.aifb.uni-

    karlsruhe.de

    bject anagement roup,

    Glossaire

    ?????????

    (M??G/G (M : /1§ iti1§M Qa itiO?1§?1§ 8?Giti

    Figure 39 Process Structure de SPEM

    Un WorkProduct ou Artefact est un élément produit consommé ou modifié 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 dans 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 rôle Un Activity peut être décomposé en éléments atomiques appelés Step

    Un ProcessPerformer définit un rôle 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 rôles qui réalisent et assistent des activités spécifiques

    Figure 40 Dependancies de SPEM

    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 RefersTo 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

    Ce tableau présente une correspondance entre des éléments de SPEM et ceux du RUP Le reste n est pas modifié

    SPEM

    ProcessRole

    Activity Step

    WorkProduct

    Lifecycl e

    Guidance

    RUP eng

    Role

    Activity Step

    Artifact

    Process

    Guidelines

    RUP fr

    Rôle

    Activité Etape

    Artefact

    Cycle de Vie

    Guide

    Eillffl E31 Eil??111112 êl tit?11 laes

    Allez à l URL http www rational com

    Cliquez sur product dans le menu de gauche

    Cliquez sur le produit IBM Rational Unified Process au bas de la page

    Cliquez sur Free Eval à gauche

    Cliquez sur Try It pour évaluer le produit ou sur Online Demo pour une démonstration en ligne du produit RUP

    Accepter les termes de la licence

    Inscrivez vous pour évaluer le produit en remplissant le formulaire

    Répondez au mail d inscription et vous pouvez consulter RUP en ligne

    Lorsque vous accéder au site vous pouvez cliquez sur une discipline puis sur un groupe d activités pour avoir une représentation visuelle sommaire des ontologies à l exemple de la Figure

    Figure 41 Exemple RUP site

    _??___ ? ? Iii UY??I 1J1P

    >

    < Activity (assistant?, discipline, english_name?, french_name,

    numero?, step?)>

    < Activity

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < ActivityParameter (english_name?, french_name,

    hasWorkPerArtifact)>

    < ActivityParameter

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    < WorkDefinition (activity?, discipline, english_name?,

    french_name, numero?, parentWork?, performer?)>

    < WorkDefinition

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < WorkProduct (english_name?, french_name, isDeliverable, numero?,

    responsibleRole, workProductKind?)>

    < WorkProduct

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < WorkProductKind (english_name?, french_name)>

    < WorkProductKind

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < Step (english_name?, french_name)>

    < Step

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < ProcessPerformer (english_name?, french_name, work?)>

    < ProcessPerformer

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < ProcessRole (discipline, english_name?, french_name, numero?)>

    < ProcessRole

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < ProcessStructure (english_name?, french_name)>

    < ProcessStructure

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    >

    < PrecedenceKind (client, english_name?, french_name,

    pk_finish_finish, pk_finish_start, pk_start_start, supplier)> < PrecedenceKind

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    , french_name)>

    < ProcessComponent

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < ProcessLifecycle (english_name?, french_name)>

    < ProcessLifecycle

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < Dependancies (client, english_name?, french_name, supplier)>

    < Dependancies

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < Categorizes (client, english_name?, french_name, supplier)>

    < Categorizes

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < Impacts (client, english_name?, french_name, supplier)>

    < Impacts

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < Import (client, english_name?, french_name, supplier)>

    < Import

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < Precedes (client, english_name?, french_name, precedenceKind,

    supplier)>

    < Precedes

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    < RefersTo (client, english_name?, french_name, supplier)>

    < RefersTo

    id ID #IMPLIED

    superclass_id IDREFS #IMPLIED

    >

    s






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








"La première panacée d'une nation mal gouvernée est l'inflation monétaire, la seconde, c'est la guerre. Tous deux apportent une prospérité temporaire, tous deux apportent une ruine permanente. Mais tous deux sont le refuge des opportunistes politiques et économiques"   Hemingway