71 research outputs found

    ModÚle de communication entre un laboratoire virtuel réflexif et un tuteur dans un systeme tutoriel intelligent

    Get PDF
    L'intégration des laboratoires virtuels à des agents tuteurs d'un systÚme tutoriel intelligent (STI) s'est souvent réalisée avec une perte de leur autonomie. En effet, l'encapsulation des composantes est difficile à préserver parce qu'elles doivent collaborer intimement. Il en résulte que les modifications de ces composantes sont difficiles. Notre objectif est de réconcilier ces deux aspects, c'est-à-dire d'ouvrir les fonctionnalités du laboratoire virtuel aux agents tuteurs tout en réduisant le couplage. Nous proposons à cet effet un cadre méthodologique de développement de laboratoires virtuels sous forme d'un modÚle générique. Ces laboratoires sont réflexifs aux agents tuteurs et à l'apprenant et peuvent s'intégrer aisément à une architecture de STI à travers une interface de communication qui fait partie du présent travail. La réflexivité permet aux laboratoires virtuels de décrire leurs caractéristiques et leurs fonctionnalités aux agents tuteurs via les ontologies. Elle permet également une adaptation plus facile de ces entités, tout en encapsulant les caractéristiques et les fonctionnalités de chacun

    Prévention et détection des interférences inter-aspects (méthode et application à l'aspectisation de la tolérance aux fautes)

    Get PDF
    La programmation orientĂ©e aspects (POA) sĂ©pare les diffĂ©rentes prĂ©occupations composant un systĂšme informatique pour amĂ©liorer la modularitĂ©. La POA offre de nombreux bĂ©nĂ©fices puisqu'elle permet de sĂ©parer le code fonctionnel du code non-fonctionnel amĂ©liorant ainsi leur rĂ©utilisation et la configurabilitĂš des systĂšmes informatiques. La configurabilitĂ© est un Ă©lĂ©ment essentiel pour assurer la rĂ©silience des systĂšmes informatiques, puisqu elle permet de modifier les mĂ©canismes de sĂ»retĂ© de fonctionnement. Cependant le paradigme de programmation orientĂ©e aspect introduit de nouveaux dĂ©fis pour le test. Dans les systĂšmes de grande taille oĂč plusieurs prĂ©occupations non fonctionnelles cohabitent, une implĂ©mentation Ă  l'aide d'aspects de ces prĂ©occupations peut ĂȘtre problĂ©matique. Partageant le mĂȘme flot de donnĂ©es et le mĂȘme flot de contrĂŽle les aspects implĂ©mentant les diffĂ©rentes prĂ©occupations peuvent Ă©crire dans des variables lues par d'autres aspects ou interrompre le flot de contrĂŽle commun aux diffĂ©rents aspects empĂȘchant ainsi l'exĂ©cution de certains d'entre eux. Dans cette thĂšse nous nous intĂ©ressons plus spĂ©cifiquement aux interfĂ©rences entre aspects dans le cadre du dĂ©veloppement de mĂ©canismes de tolĂ©rance aux fautes implĂ©mentĂ©s sous forme d aspects. Ces interfĂ©rences sont dues Ă  une absence de dĂ©claration de prĂ©cĂ©dence entre les aspects ou Ă  une dĂ©claration de prĂ©cĂ©dence erronĂ©e. Afin de mieux maĂźtriser l assemblage des diffĂ©rents aspects composant un mĂ©canisme de tolĂ©rance aux fautes, nous avons dĂ©veloppĂ© une mĂ©thode alliant l'Ă©vitement Ă  la dĂ©tection des interfĂ©rences au niveau du code. Le but de l'Ă©vitement est d'empĂȘcher l'introduction d'interfĂ©rences en imposant une dĂ©claration de prĂ©cĂ©dence entre les aspects lors de l'intĂ©gration des aspects. La dĂ©tection permet d'exhiber lors du test les erreurs introduites dans la dĂ©claration des prĂ©cĂ©dences. Ces deux facettes de notre approche sont rĂ©alisĂ©es grĂące Ă  l utilisation d une extension d'AspectJ appelĂ©e AIRIA. Les constructions d'AIRIA permettent l instrumentation et donc la dĂ©tection des interfĂ©rences entre aspects, avec des facilitĂ©s de compilation permettant de mettre en Ɠuvre l Ă©vitement d interfĂ©rences. Notre approche est outillĂ©e et vise Ă  limiter le temps de dĂ©boguage : le testeur peut se concentrer directement sur les points oĂč une interfĂ©rence se produit. Nous illustrons notre approche sur une Ă©tude de cas: un protocole de rĂ©plication duplex. Dans ce contexte le protocole est implĂ©mentĂ© en utilisant des aspects Ă  grain fin permettant ainsi une meilleure configurabilitĂ© de la politique de rĂ©plication. Nous montrons que l'assemblage de ces aspects Ă  grain fin donne lieu Ă  des interfĂ©rences de flot de donnĂ©es et flot de contrĂŽle qui sont dĂ©tectĂ©es par notre approche d'instrumentation. Nous dĂ©finissons un ensemble d'aspects interfĂ©rant pour l'exemple, et nous montrons comment notre approche permet la dĂ©tection d'interfĂ©rences.Aspect-oriented programming (AOP) separates the different concerns of a computer software system to improve modularity. AOP offers many benefits since it allows separating the functional code from the non-functional code, thus improving reuse and configurability of computer systems. Configurability is essential to ensure the resilience of computer systems, since it allows modifying the dependability mechanisms. However, the paradigm of aspectoriented programming introduces new challenges regarding testing. In large systems where multiple non-functional concerns coexist, an AOP implementation of these concerns can be problematic. Sharing the same data flow and the same control flow, aspects implementing different concerns can write into variables read by other aspects, or interrupt the control flow involving various aspects, and thus preventing the execution of some aspects in the chain. In this work we focus more specifically on interference between aspects implementing fault tolerance mechanisms. This interference is due to a lack of declaration of fine-grain precedence between aspects or an incorrect precedence declaration. To better control the assembly of the various aspects composing fault tolerance mechanisms, we have developed a method combining avoidance of interferences with runtime detection interferences at code level. The purpose of avoidance is to prevent the introduction of interference by requiring a statement of precedence between aspects during the aspects integration. Detection allows exhibiting during the test, errors introduced in the precedence statement. These two aspects of our approach are performed through the use of an extension called AspectJ AIRIA. AIRIA s constructs allow instrumentation and therefore the detection of interference between aspects, with facilities compilation to implement the interference avoidance. Our approach is designed and equipped to limit the debugging time : the tester can focus directly on the points where an interference occurs. Finaly, we illustrate our approach on a case study : a duplex replication protocol. In this context, the protocol is implemented using fine grained aspects allowing a better configurability of the replication policy.We show that the assembly of these fine-grained aspects gives rise to interference data flow and control flow that are detected by our instrumentation approach. We define a set of interfering aspects in this example, and show how our approach allows the detection of interferences.TOULOUSE-INP (315552154) / SudocSudocFranceF

    Prévention et détection des interférences inter-aspects : méthode et application à l'aspectisation de la tolérance aux fautes

    Get PDF
    La programmation orientĂ©e aspects (POA) sĂ©pare les diffĂ©rentes prĂ©occupations composant un systĂšme informatique pour amĂ©liorer la modularitĂ©. La POA offre de nombreux bĂ©nĂ©fices puisqu'elle permet de sĂ©parer le code fonctionnel du code non-fonctionnel amĂ©liorant ainsi leur rĂ©utilisation et la configurabilitĂš des systĂšmes informatiques. La configurabilitĂ© est un Ă©lĂ©ment essentiel pour assurer la rĂ©silience des systĂšmes informatiques, puisqu’elle permet de modifier les mĂ©canismes de sĂ»retĂ© de fonctionnement. Cependant le paradigme de programmation orientĂ©e aspect introduit de nouveaux dĂ©fis pour le test. Dans les systĂšmes de grande taille oĂč plusieurs prĂ©occupations non fonctionnelles cohabitent, une implĂ©mentation Ă  l'aide d'aspects de ces prĂ©occupations peut ĂȘtre problĂ©matique. Partageant le mĂȘme flot de donnĂ©es et le mĂȘme flot de contrĂŽle les aspects implĂ©mentant les diffĂ©rentes prĂ©occupations peuvent Ă©crire dans des variables lues par d'autres aspects ou interrompre le flot de contrĂŽle commun aux diffĂ©rents aspects empĂȘchant ainsi l'exĂ©cution de certains d'entre eux. Dans cette thĂšse nous nous intĂ©ressons plus spĂ©cifiquement aux interfĂ©rences entre aspects dans le cadre du dĂ©veloppement de mĂ©canismes de tolĂ©rance aux fautes implĂ©mentĂ©s sous forme d’aspects. Ces interfĂ©rences sont dues Ă  une absence de dĂ©claration de prĂ©cĂ©dence entre les aspects ou Ă  une dĂ©claration de prĂ©cĂ©dence erronĂ©e. Afin de mieux maĂźtriser l’assemblage des diffĂ©rents aspects composant un mĂ©canisme de tolĂ©rance aux fautes, nous avons dĂ©veloppĂ© une mĂ©thode alliant l'Ă©vitement Ă  la dĂ©tection des interfĂ©rences au niveau du code. Le but de l'Ă©vitement est d'empĂȘcher l'introduction d'interfĂ©rences en imposant une dĂ©claration de prĂ©cĂ©dence entre les aspects lors de l'intĂ©gration des aspects. La dĂ©tection permet d'exhiber lors du test les erreurs introduites dans la dĂ©claration des prĂ©cĂ©dences. Ces deux facettes de notre approche sont rĂ©alisĂ©es grĂące Ă  l’utilisation d’une extension d'AspectJ appelĂ©e AIRIA. Les constructions d'AIRIA permettent l’instrumentation et donc la dĂ©tection des interfĂ©rences entre aspects, avec des facilitĂ©s de compilation permettant de mettre en Ɠuvre l’évitement d’interfĂ©rences. Notre approche est outillĂ©e et vise Ă  limiter le temps de dĂ©boguage : le testeur peut se concentrer directement sur les points oĂč une interfĂ©rence se produit. Nous illustrons notre approche sur une Ă©tude de cas: un protocole de rĂ©plication duplex. Dans ce contexte le protocole est implĂ©mentĂ© en utilisant des aspects Ă  grain fin permettant ainsi une meilleure configurabilitĂ© de la politique de rĂ©plication. Nous montrons que l'assemblage de ces aspects Ă  grain fin donne lieu Ă  des interfĂ©rences de flot de donnĂ©es et flot de contrĂŽle qui sont dĂ©tectĂ©es par notre approche d'instrumentation. Nous dĂ©finissons un ensemble d'aspects interfĂ©rant pour l'exemple, et nous montrons comment notre approche permet la dĂ©tection d'interfĂ©rences. ABSTRACT : Aspect-oriented programming (AOP) separates the different concerns of a computer software system to improve modularity. AOP offers many benefits since it allows separating the functional code from the non-functional code, thus improving reuse and configurability of computer systems. Configurability is essential to ensure the resilience of computer systems, since it allows modifying the dependability mechanisms. However, the paradigm of aspectoriented programming introduces new challenges regarding testing. In large systems where multiple non-functional concerns coexist, an AOP implementation of these concerns can be problematic. Sharing the same data flow and the same control flow, aspects implementing different concerns can write into variables read by other aspects, or interrupt the control flow involving various aspects, and thus preventing the execution of some aspects in the chain. In this work we focus more specifically on interference between aspects implementing fault tolerance mechanisms. This interference is due to a lack of declaration of fine-grain precedence between aspects or an incorrect precedence declaration. To better control the assembly of the various aspects composing fault tolerance mechanisms, we have developed a method combining avoidance of interferences with runtime detection interferences at code level. The purpose of avoidance is to prevent the introduction of interference by requiring a statement of precedence between aspects during the aspects integration. Detection allows exhibiting during the test, errors introduced in the precedence statement. These two aspects of our approach are performed through the use of an extension called AspectJ AIRIA. AIRIA ‘s constructs allow instrumentation and therefore the detection of interference between aspects, with facilities compilation to implement the interference avoidance. Our approach is designed and equipped to limit the debugging time : the tester can focus directly on the points where an interference occurs. Finaly, we illustrate our approach on a case study : a duplex replication protocol. In this context, the protocol is implemented using fine grained aspects allowing a better configurability of the replication policy.We show that the assembly of these fine-grained aspects gives rise to interference data flow and control flow that are detected by our instrumentation approach. We define a set of interfering aspects in this example, and show how our approach allows the detection of interferences

    Adaptation en ligne de mécanismes de tolérance aux fautes par une approche à composants ouverts

    Get PDF
    L'adaptation en-ligne du logiciel de tolĂ©rance aux fautes permet de renforce la sĂ»retĂ© de fonctionnement du systĂšme et prenant en compte son environnement. L’adaptation nĂ©cessite de nouvelles techniques de conception. Ces travaux visent Ă  comprendre et maĂźtriser l'impact des modifications du logiciel de tolĂ©rance aux fautes en opĂ©ration sur les fonctionnalitĂ©s du systĂšme, pour en maĂźtriser les effets de bords. L’approche proposĂ©e introduit une architecture rĂ©flexive Ă  composants et une modĂ©lisation du logiciel. Un modĂšle structurel du logiciel permet de calculer et appliquer les modifications du contenu du logiciel. Un modĂšle comportemental dĂ©crit les observations attendues en fonctionnement. Il permet de dĂ©terminer les Ă©tats permettant d’appliquer les modifications, d’amener et de maintenir le systĂšme dans ces Ă©tats. Ces travaux montrent que, grĂące aux capacitĂ©s de manipulation et de contrĂŽle en ligne du logiciel, la modification des mĂ©canismes de tolĂ©rance aux fautes peut ĂȘtre rĂ©alisĂ©e en ligne de maniĂšre maĂźtrisĂ©e. ABSTRACT : On-line fault tolerance adaptation aims at enforcing system dependability by taking into account operational conditions and environment. Adapting the system requires new design techniques. This work aims at understanding and mastering the impact of such software modification in operation, especially regarding side effects on functionalities and dependability properties. Our approach relies on a reflective architecture based on components and models of the software that reflects on the one hand the content of the software in terms of state and algorithms (architectural model) and on the other hand the expected correct behaviour (behavioural model). The first one is used to determine the modifications and apply them at runtime, and the second one is used to drive the system in a state in which modifications can be done consistently, and maintain the system in such a state. We show that; thanks to manipulation capabilities and execution control, we can master the modification of fault tolerance software and ensure correctness properties

    Ethics of autonomous information systems towards an artificial thinking

    Get PDF
    Many projects relies on cognitives sciences, neurosciences, computer sciences and robotics. They concerned today the building of autonomous artificial beings able to think. This paper shows a model to compare the human thinking with an hypothetic numerical way of thinking based on four hierarchies : the information system classification, the cognitive pyramid, the linguistic pyramid and the digital information hierarchy. After a state of art on the nature of human thinking, feasibility of autonomous multi-agent systems provided with artificial consciousness which are able to think is discussed. The ethical aspects and consequences for humanity of such systems is evaluated. These systems lead the scientific community to react.Comment: in Frenc

    Adaptation des composants centrée sur l'utilisation

    Get PDF
    Avec la notion de composant logiciel, la dĂ©marche de conception d'applications informatiques a vu apparaĂźtre une alternative intĂ©ressante Ă  l'approche classique, oĂč le dĂ©veloppement est menĂ© selon une approche centralisĂ©e. L'idĂ©e est en effet de permettre la construction d'applications adaptĂ©es aux besoins spĂ©cifiques de chaque utilisateur par assemblage de composants prĂ©existants. NĂ©anmoins, le choix de composants prĂ©dĂ©finis, sur Ă©tagĂšre, pose le problĂšme de leur adĂ©quation Ă  une utilisation spĂ©cifique. Dans ce contexte, la possibilitĂ© d'adapter les composants semble cruciale, si l'on souhaite rendre rĂ©ellement effective l'approche de dĂ©veloppement par assemblage de composants. Cette thĂšse introduit une nouvelle approche de l'adaptation de composants logiciels qui consiste Ă  adapter le composant Ă  ses contextes d'utilisation en se basant sur le point de vue de l'utilisateur. Nous dĂ©crivons le profil d'utilisation sous la forme d'un ensemble de triplets dont chacun spĂ©cifie les propriĂ©tĂ©s souhaitĂ©es, les rĂ©actions correspondantes Ă  traiter dans le cas oĂč une condition n'est pas vĂ©rifiĂ©e et les Ă©chĂ©anciers d'Ă©valuation des propriĂ©tĂ©s. Nous proposons aussi un service de supervision de composant (SSC) qui repose sur la surveillance de l'Ă©tat des composants pour obtenir des clichĂ©s qui reflĂštent l'Ă©tat actuel du composant et les changements rĂ©cents. Nous dĂ©finissons Ă©galement le service de sĂ»retĂ© de service (SSS) qui intercepte les requĂȘtes clientes et qui les dĂ©lĂšgue vers le composant le plus convenable, tout en gĂ©rant l'exĂ©cution du composant en fonction du profil d'usage. ABSTRACT : The concept of software component, provides an interesting alternative to the traditional way of designing data-processing applications, where the development is undertaken according to a centralized approach. The idea is indeed to allow the construction of applications adapted to the specific needs for each user by assembling preexistent components. Nevertheless, the choice of off-the-shelf components, raises the problem of their adequacy to a specific use. In this context, the ability to adapt components appears to be crucial, if one wishes to make really effective the approach of development by assembling components. This thesis introduces a new approach of the adaptation of software components which consists in adapting the component to its contexts of use centered on the point of view of the user. We describe a user profile as a set of triples, where each triple specifies the desired properties, the reactions to be run if a condition is not checked and the schedule of evaluation of properties. We propose also a service of supervision of component (SSC) which is based on the monitoring of the state of the components to obtain snapshots which reflect the current state of the component and the recent changes. We also define the service of safety of service (SSS) which intercepts the user requests and delegates them towards the most suitable component, while managing the execution of the component according to the profile of use

    Modélisation générique d'un retour d'expérience cognitif. Application à la prévention des risques

    Get PDF
    Nous avons défini dans cette thÚse une architecture logicielle générique permettant de réaliser des applications de retour d'expérience cognitif. Ces derniers intÚgrent une formalisation de l'analyse experte et sont une alternative aux SystÚmes à Bases de Connaissance. Les applications sont opérationnalisées à partir de la définition du modÚle de l'expérience qui est basé sur une structure objet simple couplée avec le modÚle des croyances transférables pour prendre en compte les intertitudes. Nous avons développé des algorithmes génériques de recherche adaptés à la formalisation retenue de l'entité expérience ainsi qu'un alogorithme d'extraction d'un indicateur du risque. Ces algorithmes sont basés sur une proposition de similarité ensembliste particuliÚre. Le modÚle générique est basé sur un modÚle adaptatif (Adaptive Object Model). Nous avons appliqué une partie des résultats de la thÚse dans le cadre d'un projet Européen INTERREG SUP (Sécurité Urgence Pyrénées)

    Modélisation en UML/OCL des langages de programmation et de leurs propriétés et processus IDM

    Get PDF
    Cette étude est axée sur l'activité de génération de composants logiciels se situant en phase terminale des processus de développement de logiciels dirigés par les modÚles. Dans une premiÚre partie, nous présentons les travaux de recherche déjà existants sur les modÚles et les transformations de modÚles, ainsi que sur la modélisation en UML/OCL des langages de programmation limitée, la plupart du temps, aux aspects syntaxiques. Dans une deuxiÚme partie, nous montrons comment nous modélisons en UML/OCL, les propriétés comportementales et axiomatiques des langages de programmation de style impératif. La modélisation des propriétés comportementales et axiomatiques d'un langage, en UML/OCL enrichi d'un langage d'actions, nous amÚne à montrer comment on peut, à l'aide de triplets de Hoare, vérifier que des segments de modÚles de programmes sont corrects. Les assertions déduites des triplets de Hoare par application des propriétés axiomatiques du langage sont transmises à un Atelier B en vue d'étudier leurs éventuelles validités. Dans une troisiÚme partie, nous montrons comment on peut injecter au niveau du Méta-ModÚle UML des propriétés comportementales et axiomatiques spécifiques à un domaine d'applications particulier. Nous nous sommes limités au fragment du Méta-ModÚle UML définissant les diagrammes d'activité se situant donc en amont des modÚles de codes, avant la génération proprement dite des codes. La cohérence entre les modÚles et les codes peut se vérifier à l'aide de propriétés comportementales et axiomatiques en comparant les modÚles issues des exigences et les modÚles des codes. Ces travaux de recherche ont été financés dans le cadre de l'ANR.Our work focuses on the software component generation phase that takes place at the last phase of a model driven development process. Our work is related to either the modelware or the grammarware because the model driven process can be considered as a successive of model transformations whereas the code generation is a specific transformation from the model to a language grammar. In the first part, we resume some relative works in the domain of the models and of the models transformation; we also present the language modeling in UML which is generally restricted by the syntax modeling. In the second part, we show how we model in UML/OCL the behavioral and axiomatic properties of imperative programming languages. The modeling of the behavioral properties helps to execute the code models if we dispose a right execution environment. In the other hand, the modeling of the axiomatic properties helps to demonstrate the correctness of the code model. In fact, the assertions obtained from the modeling of the axiomatic properties of the language will be transferred to a B atelier in order to have further validation. In the third part, we show how we inject into the UML metamodel the considered domain behavioral and axiomatic properties. We focus on the activity diagram metamodel of the UML which defines the behavior part of a UML model. The coherence between the models and the codes can be then verified in comparing the behavioral and axiomatic properties of the models issued from the requirements and that of the codes. Our work is financed by the ANR research projects
    • 

    corecore