Spelling suggestions: "subject:"architecture logicielle"" "subject:"architecture logicielles""
1 |
Canevas de développement agile pour l’évolution fiable de systèmes logiciels à composants et orientés services / Agile development framework for the safe evolution of component-based and service-oriented systemsWaignier, Guillaume 26 January 2010 (has links)
Les logiciels se caractérisent par un besoin d'évolutions perpétuelles et rapides. Pour faciliter l'évolution rapide de systèmes, des approches de génie logiciel ont été proposées, telles que les architectures logicielles et la méthode de conception agile. Néanmoins, les solutions actuelles offrent peu de support pour permettre l'évolution fiable d'un système, c'est-à-dire permettre sa modification tout en garantissant le respect de ses exigences de qualités de service (QdS) et de bon fonctionnement global. La contribution de cette thèse est CALICO, un canevas de développement agile et multi plates-formes pour la conception et l'évolution fiable de systèmes logiciels à composants/services. Le développement agile repose sur un cycle itératif et incrémental qui permet à l'architecte d'itérer entre les étapes de conception de l'architecture et de débogage du logiciel dans son environnement d'exécution. Ainsi, lors de la conception, l'architecte dispose de métamodèles pour spécifier la structure de l'architecture et ses diverses exigences de QdS. Lors du déploiement, CALICO utilise les modèles spécifiés pour instancier le système sur la plate-forme d'exécution et les garde synchronisés avec le logiciel lors de son exécution. L'architecte dispose toujours d'une vue conceptuelle qui lui permet de raisonner sur les propriétés de son logiciel lors d'une évolution. Pour fiabiliser ces évolutions, CALICO offre un cadre fédérateur qui autorise la réutilisation de nombreux outils d'analyse statique et de débogage dynamique qui étaient jusqu'alors dispersés dans différentes plates-formes. CALICO permet donc de fiabiliser les évolutions même si les plates-formes ne le proposent pas. / Software is characterized by a need for constant and rapid evolution. To facilitate the rapid evolution of systems, software engineering approaches have been proposed, such as software architecture and agile method. However, current solutions offer poor support to enable the development of a reliable system, i.e., allow its modification while ensuring compliance with the quality of service requirements (QoS) and its good overall safety. The contribution of this thesis is CALICO, an agile and multi platforms development framework for the design and evolution of reliable component-based and service-oriented software. The agile development relies on an iterative and incremental cycle that allows the architect to iterate between the design of architecture and the debug of software in its execution context. Thus, at design, the architect can use the CALICO's metamodels to specify the structure of the architecture and the various QoS properties. At deployment, CALICO instantiates the system on the runtime platform from the specified models and keeps them synchronized with the software during its execution. By this way, the architect has a conceptual view which allows him to reason on the software properties during its evolution. In order to check these evolutions, CALICO provides a unifying framework which allows reuse of many static analysis tools and dynamic debugging tools that were previously scattered in different platforms. Globally, CALICO enables reliable evolutions even if the platforms do not provide this support.
|
2 |
Contribution à une démarche de vérification formelle d'architectures logiciellesGraiet, Mohamed Giraudin, Jean-Pierre. January 2007 (has links)
Reproduction de : Thèse de doctorat : informatique : Grenoble 1 : 2007. / Titre provenant de l'écran-titre. Bibliogr. p. 159-167.
|
3 |
Extensibilité du tutorat dans un système tutoriel intelligent : intégration des paradigmes de traçage des connaissances et de séquençage du curriculumEbale Nnemete, Alphonse 12 August 2024 (has links)
Les systèmes tutoriels intelligents (STI) sont une des applications de l'intelligence artificielle (IA) en éducation. Ils visent à simuler les activités (tâches) des tuteurs humains et à s'adapter au contexte individuel de chaque apprenant en vue de l'accompagner vers l'acquisition des habiletés requises pour la résolution d'une ou de quelques classes de problèmes dans un domaine de compétences donné. Le modèle de tutorat des environnements d'apprentissage adaptatif résulte alors de la modélisation duale de champs de compétences spécifiés et de processus pédagogiques. Ainsi, le modèle de tutorat assure l'automatisation des interventions pédagogiques en se reposant sur le modèle du domaine et en tenant compte du contexte cognitif, voire du contexte métacognitif, social, ou affectif de l'apprenant. La complexité fonctionnelle de ces plateformes a généré deux approches conceptuelles divergentes priorisant chacune, de manière mutuellement exclusive, un seul des deux principaux paramètres à la base de la modélisation du tutorat informatique, à savoir, la densité des contenus d'apprentissage et la précision du suivi des acquis et du processus d'apprentissage. L'opérationnalisation de chacune de ces approches soulève de problèmes architecturaux conséquents se rapportant à la question de l'extensibilité du tutorat dans un STI. La divergence principielle de ces approches induit une certaine complémentarité que nous avons mise en exergue dans ces travaux. En guise de réponse à la question susmentionnée, nous proposons une approche hybride de conceptualisation du tutorat informatique, une démarche de modélisation et un ensemble d'abstractions permettant de rendre compatible les approches de tutorat par traçage des connaissances (TC) et par séquençage du curriculum (SC). L'extension d'un système d'IA est un processus complexe qui passe par la mise en collaboration de différents formalismes de représentation des connaissances et divers mécanismes d'inférence. Ainsi, notre démarche, qui vise à intégrer les logiques principielles de SC et de TC, s'appuie sur la compatibilité et la flexibilité existant entre le mécanisme de raisonnement à base de règles et le formalisme de représentation par objets au sein duquel les mécanismes natifs de propagation d'instances assurent le changement d'états du système et l'automatisation des processus métiers. D'un modèle ontologique de haut niveau d'abstraction à un modèle d'architecture physique, en passant par un vocabulaire de description des contenus et des contextes d'apprentissage et par un ensemble de modèles logiques et fonctionnels, notre contribution à la résolution des défauts de scalabilité des STI actuels intègre la définition et la conceptualisation du problème de l'extensibilité des modèles de tutorat assisté par ordinateur, la proposition d'une solution, l'élaboration et la mise en œuvre d'une démarche d'opérationnalisation et de validation de la solution proposée. / Intelligent tutoring systems (ITS) are one application of artificial intelligence in education. They aim to simulate the activities of "human tutors" and adapt to the context of each learner to help them acquire the skills required to solve problems in a given knowledge area. The tutoring model of an adaptive learning environment then results from the modelling of a specific knowledge domain and the modelling of pedagogical expertise. Thus, the tutoring model ensures the automation of pedagogical interventions by referring to the domain model and considering the cognitive context, and sometimes, the metacognitive, social or affective context of learners. From the functional complexity of these platforms have emerged two divergent conceptual approaches prioritising, each one, in a mutually exclusive way, only one of the two main parameters underlying the modelling of computer-aided tutoring: the size of the learning content and the precision of the monitoring of learner's skills and the learning process. Operationalising these paradigms raises enormous architectural issues including the question of scaling up tutoring in an ITS. The principled divergence of both paradigms induces some complementarity highlighted in this work, and, answering the above question, we propose a hybrid approach to the conceptualisation of automated tutoring, a modeling approach and a set of abstractions to make the knowledge tracing (KT) and curriculum sequencing (CS) approaches compatible. Scaling up an artificial intelligence system is a critical process that requires the collaboration of different knowledge representation formalisms and inference mechanisms. Our approach, which aims to integrate the conceptual logics of SC and KT, is based on the compatibility and flexibility between the rule-based reasoning mechanism and the object-based or frame-oriented representation formalism within which the native mechanisms of instance propagation ensure the system's state changes and the automation of business processes. From a high-level ontological model (based on a vocabulary for describing content and learning contexts) to a physical architecture model, passing by logical and functional models, our contribution to fixing this level 2 scalability defect includes, on the one hand, the definition of the problem of scaling up tutoring in an ITS and the proposal of a solution, and on the other hand, the conceptualisation, the operationalisation and the validation (via prototyping) of that solution.
|
4 |
Vers une approche automatique pour l'extraction des règles d'affaires d'une applicationChénard, Gino January 2007 (has links) (PDF)
Les compagnies font face à d'énormes coûts pour maintenir leurs applications informatiques. Au fil des ans, le code de ces applications a accumulé des connaissances corporatives importantes (règles d'affaires et décisions de conception). Mais, après plusieurs années d'opération et d'évolution de ce code, ces connaissances deviennent difficiles à récupérer. Les développeurs doivent donc consacrer beaucoup de leur temps à l'analyser: une activité connue sous le nom de
« compréhension du logiciel ». Comme il a été estimé que cette activité accapare entre 50 % et 90 % du travail d'un développeur, simplifier le processus de compréhension du logiciel peut avoir un impact significatif dans la réduction des coûts de développement et de maintenance. L'une des solutions au problème de compréhension du logiciel est la rétro-ingénierie. Celle-ci est le processus d'analyse du code source d'une application pour (1) identifier les composantes de l'application et les relations entre ces composantes et (2) créer une représentation de haut niveau de l'application. Plusieurs approches ont été proposées pour la rétro-ingénierie ; cependant, la représentation abstraite du code source extraite par la plupart de ces approches combine la logique d'affaires de l'application et son architecture (ou son infrastructure). Dans ce mémoire, nous présentons une nouvelle approche qui permet d'analyser le code source d'une application orientée objet afin d'en extraire un modèle abstrait ne décrivant que les règles d'affaires de cette application. Ce modèle prend la forme d'un diagramme de classes UML, présentant les classes d'affaires de cette application ainsi que les relations entre ces classes. Cette approche a été validée sur plusieurs systèmes (écrits en Java) de différentes tailles. L'approche donne de bons résultats pour les systèmes possédant une bonne architecture et un bon style de programmation. Dans le cas contraire, les résultats sont moins convaincants.
|
5 |
Élaboration du modèle conceptuel flexible et extensible d'une architecture logicielle orientée-objet permettant la parallélisation et la distribution d'une architecture de simulation séquentielle /Shields, Jean-Philippe. January 2007 (has links) (PDF)
Thèse (M.Sc.)--Université Laval, 2007. / Bibliogr.: f. [125]-128. Publié aussi en version électronique dans la Collection Mémoires et thèses électroniques.
|
6 |
Simulations orientées-interaction des systèmes complexes / Interaction-oriented design of complex systems simulationsKubera, Yoann 06 December 2010 (has links)
Les simulations multi-agents reproduisent un phénomène en modélisant intuitivement son fonctionnement au niveau microscopique. Ce fonctionnement est décrit par le comportement d'entités autonomes qui agissent dans un environnement commun. Toutefois, les approches actuelles restreignent les interactions à des effets de bord ou ne fournissent aucune méthodologie réifiant la notion d'interaction. La conception de simulations contenant un grand nombre d'agents interagissant de manière variée s'en trouve complexifiée. Nous soutenons que pour faciliter la conception des simulations, il est préférable que toute entité soit concrétisée par un agent et tout comportement par une interaction. Le moteur de simulation doit de plus être clairement séparé des agents et interactions, de sorte que tout le système multi-agents soit régi par le même algorithme de simulation. Une telle approche procure de nombreux avantages tels que l'automatisation de l'implémentation, la réutilisabilité des interactions ou la conception graduelle du modèle du phénomène. En nous fondant sur ces principes, nous avons développé une approche centrée sur les interactions (IODA) composée d'une pyramide d'outils : un modèle formel, un ensemble d'algorithmes de simulation et une méthodologie. Nous confirmons la faisabilité de cette approche par une plateforme de simulation paramétrable (JEDI) fidèle au modèle formel et un environnement de développement intégré (JEDI-Builder) qui automatise le passage du modèle IODA au code JEDI. Nous montrons ainsi que la concrétisation logicielle des interactions a conduit à une unification du concept d'agent et à une simplification du processus de conception de simulations. / This thesis focuses on the design of Multi-Agent Based Simulations (MABS). MABS are aimed at reproducing real phenomena of intuitively modeling their inner mechanisms using autonomous entities behaving in a synthetic environment. For either of the following two reasons, current MABS design techniques are unsatisfactory: the interactions are limited to exchanging messages or MABS are restricted to formal specifications. As a consequence, large-scale simulations --e.g. featuring many agents and many interactions-- are still hard to design. In this context, our research promotes a more homogeneous knowledge representation, resulting in practice into the reification of each entity by an agent and each behaviour by an interaction. That way, the simulation engine has to be separated from both the agents and the interactions, enabling the MABS to be ruled by a single and accurate algorithm. Besides, we show that the interactions can be re-used, the models incrementally designed and the implementation automated. Based on these principles, we have developped IODA, an interaction-oriented approach to simulation design. IODA provides a formal model for describing the agents and their interactions, a set of algorithms for unifying their action selection and a methodology for incremental design. IODA also features JEDI, a parameterizable simulation framework faithful to IODA's principles, and JEDI-Builder, an automated tool for translating IODA models into JEDI code. As a result of this research, it is shown that the reification of the interaction leads not only to the unification of the agent concept, but also to a simplification of the simulation design process.
|
7 |
Architecture logicielle : une expérimentation industrielle avec Dassault SystèmesSanlaville, Rémy 03 May 2002 (has links) (PDF)
L'architecture logicielle est un domaine récent du génie logiciel qui a reçu une attention particulière ces dix dernières années. Les éditeurs de logiciels ont pris conscience qu'une architecture est un facteur critique dans la réussite du développement et facilite la maintenance et l'évolution du logiciel. Elle contribue à la maîtrise des grands logiciels. L'architecture logicielle permet d'améliorer ces aspects grâce à l'étude des structures de haut niveau du logiciel. De nombreuses avancées ont été proposées au niveau de la formalisation par des Langages de Description d'Architecture (ADLs: Architecture Description Languages), du raisonnement et de l'analyse au niveau architectural. Bien que la communauté scientifique ait réalisé des progrès significatifs, les résultats restent essentiellement académiques. Les retombées de ces recherches ont du mal à pénétrer le milieu industriel. Ce rapport de thèse relate notre expérience avec Dassault Systèmes : répondre aux besoins de Dassault Systèmes pour le développement de ses logiciels en utilisant une approche basée sur l'architecture logicielle. Dassault Systèmes est le leader mondial de la Conception Assistée par Ordinateur (CAO) avec son logiciel phare CATIA V5 (~5 MLoc). Pour atteindre cet objectif, nous avons parcouru les principales approches pour la description d'une architecture logicielle et tenté de les appliquer dans notre contexte industriel. Nous expliquerons les difficultés que nous avons rencontrées pour les utiliser et montrerons pourquoi ces approches ne sont pas adaptées pour la maintenance et l'évolution d'un logiciel tel que CATIA V5. Nous décrirons notre démarche basée sur l'analyse des besoins architecturaux des différents acteurs de Dassault Systèmes qui a permis de fournir des solutions concrètes et exploitables. Enfin, nous expliciterons ces besoins architecturaux et présenterons les divers prototypes que nous avons développés pour y répondre.
|
8 |
Architecture générique pour la découverte de la signification d'un messageMorin, Simon-Pierre January 2008 (has links)
Ce mémoire présente la conception, la réalisation et les tests effectués pour une architecture générique permettant à une machine de reconnaitre le sens d'un message en utilisant le modèle de la cognition linguistique de l'humain et un environnement commun à celui des humains. À ce jour, les machines reconnaissent des mots clés et répondent en suivant un modèle préfabriqué, tous deux préprogrammés par des humains. Donc, chaque agent informatique muni d'une forme d'interaction avec le public se voit attribuer un certain nombre de questions potentielles avec les réponses associées, parfois préconstruite. C'est-à-dire que la machine possède une base de mots avec un ordre prédéfini de ceux-ci qu'elle peut utiliser, parfois une phrase déjà entièrement construite, que la machine utilise telle qu'elle. L'objectif principal de ce projet est de démontrer qu'il est possible pour la machine de s'approcher du modèle proposé par les linguistes, principalement un modèle proposé par Kleiber, adjoint à un modèle de cognition, celui du STI, et d'extraire le sens d'un message dans le but de l'interpréter Ainsi, il est possible d'établir une forme de dialogue entre un être humain et une machine. Cet objectif est atteint en proposant une nouvelle architecture générique pour le traitement du langage naturel. Contrairement à ce qui est fait habituellement dans ce genre de problématique, les réponses obtenues ne doivent pas être des réponses préconçues, mais bien des phrases générées par la machine à partir de la grammaire de la langue. Les résultats obtenus montrent qu'il est possible de donner un sens aux mots composant un message de manière à ce qu'une machine soit en mesure de l'interpréter dans un langage qui lui est propre. Cela est fait de manière à ce que cette même machine puisse répondre à son interlocuteur, voire éventuellement prendre une décision en rapport avec la conversation.
|
9 |
Coopération entre véhicules sous-marins autonomes : une approche organisationnelle réactive multi-agent / Cooperation between Autonomous Underwater Vehicles : A multi-agent reactive organizational approachCarlési, Nicolas 19 December 2013 (has links)
Les applications sous-marines actuelles exigent la réalisation de travaux de différentes natures dans des zones de plus en plus vastes et toujours plus profondes. La conception et l'utilisation de flottilles d'AUV dans ce contexte est un véritable challenge. Les bénéfices attendus sontmultiples. Premièrement, cela doit permettre de minimiser les coûts grâce à une répartition de ceux-ci sur l'ensemble de la flottille : la perte d'un AUV ou son mauvais fonctionnement ne remettront pas en cause l'intégralité de la mission. Deuxièmement, l'utilisation d'une flottilledoit de fait permettre de réduire le temps d'exécution d'une mission grâce à la parallélisation de certaines tâches. Enfin, la réalisation d'une mission par une flottille permet de conserver le caractère spécialisé des AUV et donc d'envisager plus facilement leur réutilisation dansd'autres contextes. Cependant, les approches de coopération multi-AUV existantes sont limitées par deux principaux verrous : (1) le nombre de communications induit et (2) la gestion de l'hétérogénéité potentielle d'une flottille.L'approche que nous proposons vise à répondre à ces problématiques.L'idée principale est de combiner une approche de coopération réactive avec une approche organisationnelle. L'approche de coopération réactive permet l'échange des signaux de communication très simples. Cependant, elle ne permet de résoudre que des problèmes de coopération de nature assez restreinte qui concernent essentiellement la coordination spatiale de véhicules homogènes. La première contribution de cette thèse est l'extension de l'approche satisfaction-altruisme. Un nouveau mécanisme décisionnel réactif, capable de considérer des actions coopératives de diverses natures, est proposé. La deuxième contribution consiste à spécifier les contextes d'interactions réactives à l'aide d'une approche organisationnelle. Le modèle organisationnel Agent/Groupe/Rôle est utilisé pour avoir une représentation explicite de l'organisation de la flottille. Les concepts de groupe, mais surtout de rôle, sont employés dans l'adressage des signaux de communication et permettent la mise en oeuvre d'interactions hétérogènes avec une grande modularité. L'ensemble est intégré dans une nouvelle architecture logicielle, appelée REMORAS, destinée à équiper des véhicules sous-marins autonomes. Une validation de la faisabilité de notre approche est proposée à l'aide d'une simulation de plusieurs scénarios mettant en jeu des AUV hétérogènes. / Underwater marine applications are nowadays branching into various fields covering larger and deeper zones. Performing the required tasks with the aid of AUV flotillas is a real challenge. However, the advantages of using such a new technology are numerous. Firstly, this would highly reduce the cost of the mission thanks to the distribution of this former among the various AUV: the loss of one AUV or its bad functioning will not degrade the performance of the flotilla in general. Secondly, the use of a flotilla reduces the execution time of a mission given the parallelization of certain tasks. Finally, any mission can be accomplished by the flotilla by taking into consideration the specificity of each AUV. In fact, each of these vehicles holds different characteristics rendering the global architecture heterogeneous and therefore applicable in different contexts. However, the methods concerned with multi-AUV cooperation are hindered by two main limitations: (1) the number of communications induced and (2) the management of the heterogeneity in the flotilla.The proposed approach aims at responding to these challenges. The principal idea is to combine this reactive cooperational approach with an organizational one. The reactive cooperational approach allows the exchange of simple communication signals. However, it does not help in solving the problems of cooperation that are very constrained and that mainly concern the spatial coordination of homogeneous vehicles. The first contribution in this thesis is the extension of the satisfaction-altruism approach. A new reactive decisional mechanism capable of considering the cooperative actions of various natures is proposed. The second contribution consists in specifying the context of reactive interactions based on an organizational approach. The organizational model Agent/Group/Role is used in order to have an explicit representation of the flotilla. The concepts of "group" and especially "role" are used in the attribution of the communication signals allowing the accomplishment of heterogeneous interactions with a big modularity. A new concept is therefore born and is integrated in a new software architecture called REMORA intended to equip autonomous underwater vehicles. This proposed new method has been validated through various numerical simulations in different scenarios putting at stake heterogeneous AUV.
|
10 |
Canevas de développement agile pour l'évolution fiable de systèmes logiciels à composants et orientés servicesWaignier, Guillaume 26 January 2010 (has links) (PDF)
Les systèmes logiciels modernes se caractérisent par un besoin d'évolutions perpétuelles et rapides, comme par exemple dans le monde de l'informatique mobile. Pour faciliter le développe\-ment et l'évolution rapide de systèmes complexes, des approches de génie logiciel ont été proposées, telles que les architectures logicielles et la méthode de conception agile. Néanmoins, les solutions actuelles offrent peu de support pour permettre l'évolution fiable d'un système, c'est-à-dire permettre sa modification tout en garantissant le respect de ses exigences de qualités de service et de bon fonctionnement global. La contribution de cette thèse est CALICO, un canevas de développement agile pour la conception et l'évolution fiable de systèmes logiciels à composants et orientés services. Le développement agile repose sur l'utilisation d'un cycle de développement itératif et incrémental qui permet à l'architecte d'itérer entre les étapes de conception de l'architecture et de débogage du logiciel dans son environnement d'exécution. A chaque itération du cycle, l'architecte peut faire évoluer son logiciel et fiabiliser ses évolutions grâce à l'exécution d'analyses statiques et dynamiques complémentaires. Ainsi, lors de la conception et de l'évolution d'un système, l'architecte dispose d'un ensemble de métamodèles pour spécifier la structure de l'architecture de son logiciel et ses diverses exigences de qualité de services. Lors du déploiement, CALICO utilise les modèles spécifiés pour instancier le système sur la plate-forme d'exécution cible et les garde synchronisés avec le logiciel lors de son exécution. De cette façon, l'architecte dispose toujours d'une vue conceptuelle qui lui permet de raisonner sur les propriétés critiques de son logiciel lors d'une évolution. De plus, pour fiabiliser ces évolutions, CALICO offre un cadre fédérateur qui autorise la réutilisation de nombreux outils d'analyse statique des architectures logicielles et de débogage dynamique qui étaient jusqu'alors dispersés dans différentes plates-formes existantes. Ainsi, chaque évolution peut être analysée statiquement sur la vue conceptuelle avant d'être propagée au système logiciel. Les analyses dynamiques reposent quant à elles sur des valeurs disponibles à l'exécution. La capture de ces valeurs est effectuée grâce à une instrumentation automatique du système logiciel. CALICO permet donc de fiabiliser les évolutions même si les plates-formes d'exécution sous-jacentes ne le proposent pas nativement. Notre contribution se concrétise par une implémentation multi plates-formes. La version actuelle prend en charge quatre plates-formes à composants et une plate-forme à services. Par ailleurs, les tests de performances que nous avons réalisés démontrent que CALICO est utilisable pour la conception et l'évolution fiable de larges applications jusqu'à 10000 composants et services, ce qui correspond à la montée en charge maximale de la plupart des plates-formes d'exécution.
|
Page generated in 0.0722 seconds