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
  

sommaire suivant

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

sommaire suivant






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








"Aux âmes bien nées, la valeur n'attend point le nombre des années"   Corneille