Spelling suggestions: "subject:"réingénierie"" "subject:"géoingénierie""
11 |
Improvements brought to graphical user interfaces for insurance illustration systemsEid, Imad January 2000 (has links)
Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal.
|
12 |
Réingénierie du transport forestier : cas d'étude et modèles collaboratifsDorval, Jean-Simon 20 April 2018 (has links)
Dans notre étude, nous nous sommes intéressés à la collaboration en transport pour le secteur forestier. Plus particulièrement, nous avons cherché à voir comment un syndicat représentant un ensemble de propriétaires forestiers pourrait réorganiser son transport de façon à diminuer les coûts de transport du groupe et réduire les kilomètres parcourus à vide. Pour ce faire, nous avons tout d’abord cartographié les flux de transport du syndicat dans le but de cibler certaines régions du Québec propices au développement d’une collaboration. Nous avons par la suite fait appel à un outil d’optimisation du transport qui nous a permis d’estimer un potentiel d’économie de l’ordre de 2% si certaines règles d’affaires concernant la répartition géographique des transporteurs dans le réseau étaient modifiées. Enfin, nous avons développé trois modèles d’affaires collaboratifs pour le contexte, représentant chacun un niveau d’intensité de la collaboration différent selon ce qui pourrait être souhaité par les partenaires.
|
13 |
From monolithic architectural style to microservice one : structure-based and task-based approaches / Du style architectural monolithique vers le style microservice : approches basées sur la structure et sur les tâchesSelmadji, Anfel 03 October 2019 (has links)
Les technologies logicielles ne cessent d'évoluer pour faciliter le développement, le déploiement et la maintenance d'applications dans différents domaines. En parallèle, ces applications évoluent en continu pour garantir une bonne qualité de service et deviennent de plus en plus complexes. Cette évolution implique souvent des coûts de développement et de maintenance de plus en plus importants, auxquels peut s'ajouter une augmentation des coûts de déploiement sur des infrastructures d'exécution récentes comme le cloud. Réduire ces coûts et améliorer la qualité de ces applications sont actuellement des objectifs centraux du domaine du génie logiciel. Récemment, les microservices sont apparus comme un exemple de technologie ou style architectural favorisant l'atteinte de ces objectifs.Alors que les microservices peuvent être utilisés pour développer de nouvelles applications, il existe des applications monolithiques (i.e., monolithes) cons-truites comme une seule unité et que les propriétaires (e.g., entreprise, etc.) souhaitent maintenir et déployer sur le cloud. Dans ce cas, il est fréquent d'envisager de redévelopper ces applications à partir de rien ou d'envisager une migration vers de nouveaux styles architecturaux. Redévelopper une application ou réaliser une migration manuellement peut devenir rapidement une tâche longue, source d'erreurs et très coûteuse. Une migration automatique apparaît donc comme une solution évidente.L'objectif principal de notre thèse est de contribuer à proposer des solutions pour l'automatisation du processus de migration d'applications monolithiques orientées objet vers des microservices. Cette migration implique deux étapes : l'identification de microservices et le packaging de ces microservices. Nous nous focalisons sur d'identification en s'appuyant sur une analyse du code source. Nous proposons en particulier deux approches.La première consiste à identifier des microservices en analysant les relations structurelles entre les classes du code source ainsi que les accès aux données persistantes. Dans cette approche, nous prenons aussi en compte les recommandations d'un architecte logiciel. L'originalité de ce travail peut être vue sous trois aspects. Tout d'abord, les microservices sont identifiés en se basant sur l'évaluation d'une fonction bien définie mesurant leur qualité. Cette fonction repose sur des métriques reflétant la "sémantique" du concept "microservice". Deuxièmement, les recommandations de l'architecte logiciel ne sont exploitées que lorsqu'elles sont disponibles. Enfin, deux modèles algorithmiques ont été utilisés pour partitionner les classes d'une application orientée objet en microservices : un algorithme de regroupement hiérarchique et un algorithme génétique.La deuxième approche consiste à extraire à partir d'un code source orienté objet un workflow qui peut être utilisé en entrée de certaines approches existantes d'identification des microservices. Un workflow décrit le séquencement de tâches constituant une application suivant deux formalismes: un flot de contrôle et/ou un flot de données. L'extraction d'un workflow à partir d'un code source nécessite d'être capable de définir une correspondance entre les concepts du mon-de objet et ceux d'un workflow.Pour valider nos deux approches, nous avons implémenté deux prototypes et mené des expérimentations sur plusieurs cas d'étude. Les microservices identifiés ont été évalués qualitativement et quantitativement. Les workflows obtenus ont été évalués manuellement sur un jeu de tests. Les résultats obtenus montrent respectivement la pertinence des microservices identifiés et l'exactitude des workflows obtenus. / Software technologies are constantly evolving to facilitate the development, deployment, and maintenance of applications in different areas. In parallel, these applications evolve continuously to guarantee an adequate quality of service, and they become more and more complex. Such evolution often involves increased development and maintenance costs, that can become even higher when these applications are deployed in recent execution infrastructures such as the cloud. Nowadays, reducing these costs and improving the quality of applications are main objectives of software engineering. Recently, microservices have emerged as an example of a technology or architectural style that helps to achieve these objectives.While microservices can be used to develop new applications, there are monolithic ones (i.e., monoliths) built as a single unit and their owners (e.g., companies, etc.) want to maintain and deploy them in the cloud. In this case, it is common to consider rewriting these applications from scratch or migrating them towards recent architectural styles. Rewriting an application or migrating it manually can quickly become a long, error-prone, and expensive task. An automatic migration appears as an evident solution.The ultimate aim of our dissertation is contributing to automate the migration of monolithic Object-Oriented (OO) applications to microservices. This migration consists of two steps: microservice identification and microservice packaging. We focus on microservice identification based on source code analysis. Specifically, we propose two approaches.The first one identifies microservices from the source code of a monolithic OO application relying on code structure, data accesses, and software architect recommendations. The originality of our approach can be viewed from three aspects. Firstly, microservices are identified based on the evaluation of a well-defined function measuring their quality. This function relies on metrics reflecting the "semantics" of the concept "microservice". Secondly, software architect recommendations are exploited only when they are available. Finally, two algorithmic models have been used to partition the classes of an OO application into microservices: clustering and genetic algorithms.The second approach extracts from an OO source code a workflow that can be used as an input of some existing microservice identification approaches. A workflow describes the sequencing of tasks constituting an application according to two formalisms: control flow and /or data flow. Extracting a workflow from source code requires the ability to map OO conceptsinto workflow ones.To validate both approaches, we implemented two prototypes and conducted experiments on several case studies. The identified microservices have been evaluated qualitatively and quantitatively. The extracted workflows have been manually evaluated relying on test suites. The obtained results show respectively the relevance of the identified microservices and the correctness of the extracted workflows.
|
14 |
Alimentation d'un dépôt de code source pour l'analyse détaillée de systèmes de taille industrielleBédard, Jean-François January 2002 (has links)
Mémoire numérisé par la Direction des bibliothèques de l'Université de Montréal.
|
15 |
Construction de lignes de produits logiciels par rétro-ingénierie de modèles de caractéristiques à partir de variantes de logiciels : l'approche REVPLINE / Reverse Engineering Feature Models From Software Variants to Build Software Product Lines : RIVEPLINE ApproachAl-Msie' Deen, Ra'Fat 24 June 2014 (has links)
Les lignes de produits logicielles constituent une approche permettant de construire et de maintenir une famille de produits logiciels similaires mettant en œuvre des principes de réutilisation. Ces principes favorisent la réduction de l'effort de développement et de maintenance, raccourcissent le temps de mise sur le marché et améliorent la qualité globale du logiciel. La migration de produits logiciels similaires vers une ligne de produits demande de comprendre leurs similitudes et leurs différences qui s'expriment sous forme de caractéristiques (features) offertes. Dans cette thèse, nous nous intéressons au problème de la construction d'une ligne de produits à partir du code source de ses produits et de certains artefacts complémentaires comme les diagrammes de cas d'utilisation, quand ils existent. Nous proposons des contributions sur l'une des étapes principales dans cette construction, qui consiste à extraire et à organiser un modèle de caractéristiques (feature model) dans un mode automatisé. La première contribution consiste à extraire des caractéristiques dans le code source de variantes de logiciels écrits dans le paradigme objet. Trois techniques sont mises en œuvre pour parvenir à cet objectif : l'Analyse Formelle de Concepts, l'Indexation Sémantique Latente et l'analyse des dépendances structurelles dans le code. Elles exploitent les parties communes et variables au niveau du code source. La seconde contribution s'attache à documenter une caractéristique extraite par un nom et une description. Elle exploite le code source mais également les diagrammes de cas d'utilisation, qui contiennent, en plus de l'organisation logique des fonctionnalités externes, des descriptions textuelles de ces mêmes fonctionnalités. En plus des techniques précédentes, elle s'appuie sur l'Analyse Relationnelle de Concepts afin de former des groupes d'entités d'après leurs relations. Dans la troisième contribution, nous proposons une approche visant à organiser les caractéristiques, une fois documentées, dans un modèle de caractéristiques. Ce modèle de caractéristiques est un arbre étiqueté par des opérations et muni d'expressions logiques qui met en valeur les caractéristiques obligatoires, les caractéristiques optionnelles, des groupes de caractéristiques (groupes ET, OU, OU exclusif), et des contraintes complémentaires textuelles sous forme d'implication ou d'exclusion mutuelle. Ce modèle est obtenu par analyse d'une structure obtenue par Analyse Formelle de Concepts appliquée à la description des variantes par les caractéristiques. L'approche est validée sur trois cas d'étude principaux : ArgoUML-SPL, Health complaint-SPL et Mobile media. Ces cas d'études sont déjà des lignes de produits constituées. Nous considérons plusieurs produits issus de ces lignes comme s'ils étaient des variantes de logiciels, nous appliquons notre approche, puis nous évaluons son efficacité par comparaison entre les modèles de caractéristiques extraits automatiquement et les modèles de caractéristiques initiaux (conçus par les développeurs des lignes de produits analysées). / The idea of Software Product Line (SPL) approach is to manage a family of similar software products in a reuse-based way. Reuse avoids repetitions, which helps reduce development/maintenance effort, shorten time-to-market and improve overall quality of software. To migrate from existing software product variants into SPL, one has to understand how they are similar and how they differ one from another. Companies often develop a set of software variants that share some features and differ in other ones to meet specific requirements. To exploit existing software variants and build a software product line, a feature model must be built as a first step. To do so, it is necessary to extract mandatory and optional features in addition to associate each feature with its name. Then, it is important to organize the mined and documented features into a feature model. In this context, our thesis proposes three contributions.Thus, we propose, in this dissertation as a first contribution a new approach to mine features from the object-oriented source code of a set of software variants based on Formal Concept Analysis, code dependency and Latent Semantic Indexing. The novelty of our approach is that it exploits commonality and variability across software variants, at source code level, to run Information Retrieval methods in an efficient way. The second contribution consists in documenting the mined feature implementations based on Formal Concept Analysis, Latent Semantic Indexing and Relational Concept Analysis. We propose a complementary approach, which aims to document the mined feature implementations by giving names and descriptions, based on the feature implementations and use-case diagrams of software variants. The novelty of our approach is that it exploits commonality and variability across software variants, at feature implementations and use-cases levels, to run Information Retrieval methods in an efficient way. In the third contribution, we propose an automatic approach to organize the mined documented features into a feature model. Features are organized in a tree which highlights mandatory features, optional features and feature groups (and, or, xor groups). The feature model is completed with requirement and mutual exclusion constraints. We rely on Formal Concept Analysis and software configurations to mine a unique and consistent feature model. To validate our approach, we applied it on three case studies: ArgoUML-SPL, Health complaint-SPL, Mobile media software product variants. The results of this evaluation validate the relevance and the performance of our proposal as most of the features and its constraints were correctly identified.
|
16 |
Describing Dynamic and Variable Software Architecture Based on Identified Services From Object-Oriented Legacy Applications / Architecture dynamique basée sur la description de la variabilité et des services identifiés depuis des applications orientées objetAdjoyan, Seza 30 June 2016 (has links)
L'Orienté Service (SOA) est un paradigme de conception qui facilite la construction d’applications extensibles et reconfigurables basées sur des artefacts réutilisables qui sont les services. Ceux-ci sont structurés via des interfaces bien définies et publiables et qui peuvent être dynamiquement découvertes.Beaucoup d’approches ont été proposées dans la littérature pour la réingénierie d’applications existantes développées dans des paradigmes pré-services, principalement l’orienté objet, vers SOA. L’objectif est de permettre de sauvegarder la valeur métier de ces d’applications tout en leur permettant de bénéficier des avantages de SOA. Le problème est que ces approches s'appuient sur des critères ad-hoc pour identifier correctement des services dans le code source des applications existantes.Par ailleurs, l'une des caractéristiques les plus distinctives d'une application orientée service est sa capacité de se reconfigurer dynamiquement et d'adapter son comportement en fonction de son contexte d'exécution. Cependant, dans les langages de description d'architecture (ADL) existants dont l’aspect de reconfiguration et pris en compte, les règles de reconfiguration sont représentées d'une manière ad-hoc; en général, elles ne sont pas modélisées d'une manière explicite mais enfouillées dans la description de l'architecture. D'une part, ceci engendre une difficulté de la gestion de la reconfiguration dynamique au niveau de l'architecture et d’autre part, la traçabilité de la description de la reconfiguration dynamique à travers les différents niveaux d'abstraction est difficile à représenter et à gérer.Afin de surmonter les problèmes précédents, nous proposons dans le cadre de cette thèse deux contributions. D'abord, nous proposons une approche d'identification de services basée sur un modèle de qualité où les caractéristiques des services sont étudiées, raffinées et réifiées en une fonction que nous utilisons pour mesurer la validité sémantique de ces services. La deuxième contribution consiste en une proposition d'un langage de description d'architecture orientée service (ADL) qui intègre la description de la variabilité architecturale. Dans cette ADL les services qui peuvent constituer l’architecture, les éléments de contexte dont les changements d’état sont à l’origine des changements architecturaux, les variantes des éléments architecturaux sélectionnées en fonction des états des éléments de contexte et le comportement architectural dynamique sont ainsi spécifiés de façon modulaire. / Service Oriented Architecture (SOA) is an architectural design paradigm which facilitates building and composing flexible, extensible and reusable service-oriented assets. These latter are encapsulated behind well-defined and published interfaces that can be dynamically discovered by third-party services. Before the advent of SOA, several software systems were developed using older technologies. Many of these systems still afford a business value, however they suffer from evolution and maintenance problems. It is advantageous to modernize those software systems towards service-based ones. In this sense, several re-engineering techniques propose migrating object-oriented applications towards SOA. Nonetheless, these approaches rely on ad-hoc criteria to correctly identify services in object-oriented legacy source code.Besides, one of the most distinguishing features of a service-oriented application is the ability to dynamically reconfigure and adjust its behavior to cope with changing environment during execution. However, in existing architecture description languages handling this aspect, reconfiguration rules are represented in an ad-hoc manner; reconfiguration scenarios are often implicit. This fact hinders a full management of dynamic reconfiguration at architecture level. Moreover, it constitutes a challenge to trace dynamic reconfiguration description/management at different levels of abstraction.In order to overcome the aforementioned problems, our contributions are presented in two axes: First, in the context of migrating legacy software towards SOA, we propose a service identification approach based on a quality measurement model, where service characteristics are considered, refined to measurable metrics in order to measure the semantic correctness of identified services. The second axis is dedicated to an Architecture Description Language (ADL) proposition that describes a variant-rich service-based architecture. In this modular ADL, dynamic reconfigurations are specified at architecture level. Moreover, the description is enriched with context and variability information, in order to enable a variability-based self-reconfiguration of architecture in response to context changes at runtime.
|
17 |
Identification et localisation des préoccupations fonctionnelles dans un code légataire JavaEl Kharraz, Amal 06 1900 (has links)
Traditionnellement, les applications orientées objets légataires intègrent différents aspects fonctionnels. Ces aspects peuvent être dispersés partout dans le code. Il existe différents types d’aspects :
• des aspects qui représentent des fonctionnalités métiers ;
• des aspects qui répondent à des exigences non fonctionnelles ou à d’autres considérations de conception comme la robustesse, la distribution, la sécurité, etc.
Généralement, le code qui représente ces aspects chevauche plusieurs hiérarchies de
classes. Plusieurs chercheurs se sont intéressés à la problématique de la modularisation de ces aspects dans le code : programmation orientée sujets, programmation orientée aspects et programmation orientée vues. Toutes ces méthodes proposent des techniques et des outils pour concevoir des applications orientées objets sous forme de composition de fragments de code qui répondent à différents aspects. La séparation des aspects dans le code a des avantages au niveau de la réutilisation et de la maintenance. Ainsi, il est important d’identifier et de localiser ces aspects dans du code légataire orienté objets.
Nous nous intéressons particulièrement aux aspects fonctionnels. En supposant que
le code qui répond à un aspect fonctionnel ou fonctionnalité exhibe une certaine cohésion
fonctionnelle (dépendances entre les éléments), nous proposons d’identifier de telles fonctionnalités à partir du code. L’idée est d’identifier, en l’absence des paradigmes de la programmation par aspects, les techniques qui permettent l’implémentation des différents aspects fonctionnels dans un code objet. Notre approche consiste à :
• identifier les techniques utilisées par les développeurs pour intégrer une fonctionnalité
en l’absence des techniques orientées aspects
• caractériser l’empreinte de ces techniques sur le code
• et développer des outils pour identifier ces empreintes.
Ainsi, nous présentons deux approches pour l’identification des fonctionnalités existantes dans du code orienté objets. La première identifie différents patrons de conception qui permettent l’intégration de ces fonctionnalités dans le code. La deuxième utilise l’analyse formelle de concepts pour identifier les fonctionnalités récurrentes dans le code.
Nous expérimentons nos deux approches sur des systèmes libres orientés objets pour
identifier les différentes fonctionnalités dans le code. Les résultats obtenus montrent
l’efficacité de nos approches pour identifier les différentes fonctionnalités dans du code
légataire orienté objets et permettent de suggérer des cas de refactorisation. / Object oriented applications integrate various functional aspects. These aspects can
be scattered everywhere in the code. There are various types of aspects :
• aspects which represent business functionalities ;
• aspects related to non functional requirements or to design concerns such as robustness, distribution, and security.
The code representing such aspects can be located in different class hierarchies. Researchers have been interested in the problem of the modularisation of these aspects and many approaches were proposed : oriented programming subjects, oriented programming Aspects and oriented programming view. These approaches offer techniques and
tools for designing object oriented applications based on the composition of slices of various aspects. The main benefit of the separation of aspects is supporting reuse and maintenance. Consequently, it is well worth identifying and extracting aspects of legacy object oriented applications.
Our work mainly focuses on functional aspects. Assuming that the code of a functional aspect or a feature has a functional cohesion (dependencies between elements), we suggest methods for identifying such features from the code. The idea is to identify, in the absence of any aspect oriented paradigm, the techniques used for implementing a feature in the code. Our approach consists of :
• identifying techniques used by developers to integrate a feature in the absence of
aspect oriented techniques
• characterizing the patterns of these techniques
• and developing tools to identify these patterns.
We present two approaches for the identification of the existing features in the object oriented code. The first one identifies various design patterns which integrates these features in the code. The second approach uses the formal concept analysis to identify the recurring features in the code. We experiment our approaches to identify functional features in different open source object oriented applications. The results show the efficiency of our approaches in identifying various functional features in the legacy object oriented, and can some times suggest refactoring.
|
18 |
Aide à la décision pour l'intégration de la sécurité au plus tôt en phase de conception : approche innovante de reconception de machines agricoles / Decision support for safety integration at the earliest design phases : innovative approach to redesigning of agricultural machinerySadeghi, Leyla 21 July 2014 (has links)
Les travaux de recherche exposés dans ce mémoire se positionnent dans le domaine de la conception sécuritaire. Cette thèse s’intéresse plus particulièrement à rendre opérationnelle la méthode IRAD (Innovative Risk Assessment Design), qui intègre la sécurité de manière systématique tout au long du processus de conception. Dans cet objectif, nous proposons dans un premier temps de formaliser un type de retour d’expérience (les rapports d’accident) qui détaille les faits liés aux éléments d’une situation de travail et à des événements qui ont mené à un accident. Ensuite, nous proposons deux démarches complémentaires de reconception sécuritaire: une démarche d’ingénierie inverse fonctionnelle pour la sécurité (FRES) et une démarche de réingénierie fonctionnelle pour la sécurité (FR2ES). FRES permet d’extraire les connaissances à la fois sur l’accident et sur la conception du système impliqué dans l’accident. Elle permet ensuite d’évaluer le niveau de sécurité du système par l’estimation d’un indicateur de sécurité dépendant notamment du type de risque identifié. Cet indicateur est utilisé comme paramètre d’aide à la décision lors de la phase de reconception du système. La deuxième démarche, FR2ES, permet de définir les objectifs de sécurité liés à chaque phase de la conception dans le but d’éliminer ou de réduire un risque donné. Les solutions les plus sécuritaires possibles sont ensuite obtenues d’une part en intégrant ces objectifs de sécurité dans le processus de reconception et d’autre part à l’aide de l’indicateur de sécurité appliqué aux solutions proposées. Enfin, l’applicabilité de ces démarches a été démontrée sur deux types de liaisons tracteurs-outils, l’arbre de transmission à cardans et la liaison trois points - systèmes permettant d’atteler les outils aux tracteurs et de les motoriser. / The research presented in this thesis is positioned in the field of design for safety. This thesis is particularly interested in operationalizing the IRAD (Innovative Risk Assessment Design) method, which integrates safety systematically throughout the design process. For this purpose, in first step, we propose to formalize a type of experience feedback (accident reports) detailing the facts relating to the elements of a working situation and the events that led to an accident. In the next step, we propose two complementary approaches to redesign for safety: functional reverse engineering for safety (FRES) and functional re-engineering for safety (FR2ES). FRES is used to extract knowledge on both the accident and the design of the system involved in the accident. This approach allows assessing the safety level of the system by estimating a safety indicator depending on the type of identified risk. This indicator is used as a parameter for decision support during the redesign of the system. FR2ES defines the safety objectives related to each phase of the design in order to eliminate or reduce a given risk. The safest solutions are then obtained, on the one hand, by incorporating these safety objectives in the redesign process and, on the other hand, by using the safety indicator applied to the proposed solutions. Finally, the applicability of these approaches is demonstrated on two types of tractor-implement hitches: the power take off shaft and the three point hitch systems.
|
19 |
Ingénierie et réingénierie des EIAH - L'approche REDiMChoquet, Christophe 10 December 2007 (has links) (PDF)
Ce document présente nos recherches dans le domaine des EIAH (Environnements Informatiques pour l'Apprentissage Humain). Ces travaux se sont structurés en tant que projet scientifique impliquant plusieurs chercheurs. <br />Ce projet, REDiM (Réingénierie des EIAH Dirigée par les Modèles), a pour objectif d'intégrer les enseignants et les formateurs de terrain dans le processus de conception d'un EIAH. La posture scientifique générale est de considérer la conception comme continue, supportée par un processus itératif alternant des phases d'analyse des usages et de réingénierie de l'EIAH, dans une approche dirigée par les modèles. Nous entendons en cela promouvoir une démarche d'ingénierie générative où l'EIAH est généré à partir de modèles prescriptifs (i.e. qui définissent et encadrent l'activité des acteurs de l'EIAH) ou, ad minima, prédictifs (i.e. qui décrivent et préconisent l'activité idéale que les acteurs de l'EIAH devraient avoir). Cette démarche d'ingénierie a également pour objectif de construire des modèles descriptifs qui rendent compte des situations pédagogiques observées, directement manipulables et interprétables par les concepteurs enseignants ou formateurs. Nos travaux se sont centrés sur une famille particulière de modèles d'un EIAH : les scénarios pédagogiques.<br />La première partie de ce document se consacre à définir notre position et notre problématique scientifiques. A partir d'exemples concrets extraits de nos expérimentations, nous listons les situations de conception qu'il convient d'éviter pour impliquer les enseignants et les formateurs dans les processus actifs de l'ingénierie d'un EIAH. Nous proposons alors une première problématisation de notre objet d'étude, l'ingénierie et la réingénierie d'un scénario pédagogique, et positionnons nos travaux par rapport à ceux de la communauté nationale et internationale qui leur sont connexes. Cette première partie se conclut par une présentation de notre problématique scientifique et de notre méthodologie de recherche.<br />La seconde partie de ce document présente nos résultats de recherche. Un premier ensemble de travaux s'est attaché à définir un modèle de l'ingénierie et de la réingénierie d'un scénario pédagogique. Ce modèle identifie les processus actifs participant au développement d'un scénario pédagogique et caractérise les flux de communication entre ces processus par les artefacts échangés. Un deuxième ensemble de travaux se centre sur l'instrumentation des activités de modélisation et d'analyse des observations de l'utilisation d'un EIAH. Nous proposons notamment un langage permettant (1) de définir ce qu'il faut observer pendant une session d'apprentissage, (2) de décrire la méthode d'analyse des observations collectées et (3) de représenter ces observations de manière à construire un ensemble de scénarios descriptifs qui rendent comptent des situations pédagogiques observées. Les caractéristiques de ce langage favorisent la capitalisation et le partage des savoir-faire d'analyse des traces d'utilisation d'un EIAH.<br />La dernière partie de ce document fait une synthèse de nos contributions et dresse un ensemble de perspectives de recherche sur l'instrumentation de l'enseignant dans son rôle de concepteur d'un EIAH, sur la définition et l'exploitation de modèles productifs pour le développement d'un EIAH et sur les moyens et les enjeux de la capitalisation et du partage des savoir-faire en matière d'ingénierie et de réingénierie d'un EIAH.
|
20 |
Identification et localisation des préoccupations fonctionnelles dans un code légataire JavaEl Kharraz, Amal 06 1900 (has links)
Traditionnellement, les applications orientées objets légataires intègrent différents aspects fonctionnels. Ces aspects peuvent être dispersés partout dans le code. Il existe différents types d’aspects :
• des aspects qui représentent des fonctionnalités métiers ;
• des aspects qui répondent à des exigences non fonctionnelles ou à d’autres considérations de conception comme la robustesse, la distribution, la sécurité, etc.
Généralement, le code qui représente ces aspects chevauche plusieurs hiérarchies de
classes. Plusieurs chercheurs se sont intéressés à la problématique de la modularisation de ces aspects dans le code : programmation orientée sujets, programmation orientée aspects et programmation orientée vues. Toutes ces méthodes proposent des techniques et des outils pour concevoir des applications orientées objets sous forme de composition de fragments de code qui répondent à différents aspects. La séparation des aspects dans le code a des avantages au niveau de la réutilisation et de la maintenance. Ainsi, il est important d’identifier et de localiser ces aspects dans du code légataire orienté objets.
Nous nous intéressons particulièrement aux aspects fonctionnels. En supposant que
le code qui répond à un aspect fonctionnel ou fonctionnalité exhibe une certaine cohésion
fonctionnelle (dépendances entre les éléments), nous proposons d’identifier de telles fonctionnalités à partir du code. L’idée est d’identifier, en l’absence des paradigmes de la programmation par aspects, les techniques qui permettent l’implémentation des différents aspects fonctionnels dans un code objet. Notre approche consiste à :
• identifier les techniques utilisées par les développeurs pour intégrer une fonctionnalité
en l’absence des techniques orientées aspects
• caractériser l’empreinte de ces techniques sur le code
• et développer des outils pour identifier ces empreintes.
Ainsi, nous présentons deux approches pour l’identification des fonctionnalités existantes dans du code orienté objets. La première identifie différents patrons de conception qui permettent l’intégration de ces fonctionnalités dans le code. La deuxième utilise l’analyse formelle de concepts pour identifier les fonctionnalités récurrentes dans le code.
Nous expérimentons nos deux approches sur des systèmes libres orientés objets pour
identifier les différentes fonctionnalités dans le code. Les résultats obtenus montrent
l’efficacité de nos approches pour identifier les différentes fonctionnalités dans du code
légataire orienté objets et permettent de suggérer des cas de refactorisation. / Object oriented applications integrate various functional aspects. These aspects can
be scattered everywhere in the code. There are various types of aspects :
• aspects which represent business functionalities ;
• aspects related to non functional requirements or to design concerns such as robustness, distribution, and security.
The code representing such aspects can be located in different class hierarchies. Researchers have been interested in the problem of the modularisation of these aspects and many approaches were proposed : oriented programming subjects, oriented programming Aspects and oriented programming view. These approaches offer techniques and
tools for designing object oriented applications based on the composition of slices of various aspects. The main benefit of the separation of aspects is supporting reuse and maintenance. Consequently, it is well worth identifying and extracting aspects of legacy object oriented applications.
Our work mainly focuses on functional aspects. Assuming that the code of a functional aspect or a feature has a functional cohesion (dependencies between elements), we suggest methods for identifying such features from the code. The idea is to identify, in the absence of any aspect oriented paradigm, the techniques used for implementing a feature in the code. Our approach consists of :
• identifying techniques used by developers to integrate a feature in the absence of
aspect oriented techniques
• characterizing the patterns of these techniques
• and developing tools to identify these patterns.
We present two approaches for the identification of the existing features in the object oriented code. The first one identifies various design patterns which integrates these features in the code. The second approach uses the formal concept analysis to identify the recurring features in the code. We experiment our approaches to identify functional features in different open source object oriented applications. The results show the efficiency of our approaches in identifying various functional features in the legacy object oriented, and can some times suggest refactoring.
|
Page generated in 0.0712 seconds