71 |
Engineering secure software architectures : patterns, models and analysis / Ingénierie des sytèmes sécurisés : patrons, modèles et analysesMotii, Anas 10 July 2017 (has links)
De nos jours la plupart des organisations pour ne pas dire toutes, dépendent des technologies de l'information et de la communication (TIC) pour supporter plusieurs tâches et processus (quelquefois critiques). Cependant, dans la plupart des cas, les organisations et en particulier les petites entreprises accordent une importance limitée à l'information et à sa sécurité. En outre, sécuriser de tels systèmes est une tâche difficile en raison de la complexité et de la connectivité croissante du matériel et du logiciel dans le développement des TICs. Cet aspect doit alors être pris en compte dès les premières phases de conception. Dans ce travail, nous proposons une approche basée sur les modèles permettant de sécuriser des architectures logicielles en utilisant des patrons. Les contributions de ce travail sont : (1) un cadre de conception intégré pour la spécification et l'analyse d'architectures logicielles sécurisées, (2) une nouvelle méthodologie à base de modèles et de patrons et (3) une suite d'outils. Le fondement de l'approche associe un environnement basé sur des langages de modélisation pour la spécification et l'analyse des modèles d'architectures sécurisées et un dépôt à base de modèles d'artéfacts dédiés à la sécurité (modèle de patrons de sécurité, menaces et propriétés de sécurités) permettant la réutilisation de savoir-faire et de connaissances capitalisées. Pour cela on utilise des langages de modélisation pour la spécification et l'analyse de l'architecture. Le processus associé est constitué des activités suivantes : (a) analyse de risques à base de modèle appliquée à l'architecture du système pour identifier des menaces, (b) sélection et importation de modèles de patrons de sécurité, afin d'arrêter ou de mitiger les menaces identifiées, vers l'environnement de modélisation cible, (c) intégration de modèles de patrons dans le modèle d'architecture, (d) analyse de l'architecture obtenue par rapports aux exigences non-fonctionnelles et aux menaces résiduelles. Dans ce cadre, on s'est focalisé sur la vérification du maintien du respect des contraintes temporelles après application des patrons. La recherche de menaces résiduelles est réalisée à l'aide de techniques de vérification exploitant une représentation formelle des scénarios de menaces issus du modèle STRIDE et basés sur des référentiels de menaces existants (ex., CAPEC). Dans le cadre de l'assistance pour le développement des architectures sécurisées, nous avons implémenté une suite structurée d'outils autour du framework SEMCO et de la plateforme Eclipse Papyrus pour supporter les différentes activités basées sur un ensemble de langages de modélisation conforme à des standards OMG (UML et ses profils). Les solutions proposées ont été évaluées à travers l'utilisation d'un cas d'étude autour des systèmes SCADA (systèmes de contrôle et d'acquisition de données). / Nowadays most organizations depend on Information and Communication Technologies (ICT) to perform their daily tasks (sometimes highly critical). However, in most cases, organizations and particularly small ones place limited value on information and its security. In the same time, achieving security in such systems is a difficult task because of the increasing complexity and connectivity in ICT development. In addition, security has impacts on many attributes such as openness, safety and usability. Thus, security becomes a very important aspect that should be considered in early phases of development. In this work, we propose an approach in order to secure ICT software architectures during their development by considering the aforementioned issues. The contributions of this work are threefold: (1) an integrated design framework for the specification and analysis of secure software architectures, (2) a novel model- and pattern-based methodology and (3) a set of supporting tools. The approach associates a modeling environment based on a set of modeling languages for specifying and analyzing architecture models and a reuse model repository of modeling artifacts (security pattern, threat and security property models) which allows reuse of capitalized security related know-how. The approach consists of the following steps: (a) model-based risk assessment performed on the architecture to identify threats, (b) selection and instantiation of security pattern models towards the modeling environment for stopping or mitigating the identified threats, (c) integration of security pattern models into the architecture model, (d) analysis of the produced architecture model with regards to other non-functional requirements and residual threats. In this context, we focus on real-time constraints satisfaction preservation after application of security patterns. Enumerating the residual threats is done by checking techniques over the architecture against formalized threat scenarios from the STRIDE model and based on existing threat references (e.g., CAPEC). As part of the assistance for the development of secure architectures, we have implemented a tool chain based on SEMCO and Eclipse Papyrus to support the different activities based on a set of modeling languages compliant with OMG standards (UML and its profiles). The assessment of our work is presented via a SCADA system (Supervisory Control And Data Acquisition) case study.
|
72 |
Model transformation on distributed platforms : decentralized persistence and distributed processing / Transformation de modèles sur plates-formes réparties : persistance décentralisée et traitement distribuéBenelallam, Amine 07 December 2016 (has links)
Grâce à sa promesse de réduire les efforts de développement et maintenance du logiciel, l’Ingénierie Dirigée par les Modèles (IDM) attire de plus en plus les acteurs industriels. En effet, elle a été adoptée avec succès dans plusieurs domaines tels que le génie civil, l’industrie automobile et la modernisation de logiciels.Toutefois, la taille croissante des modèles utilisés nécessite de concevoir des solutions passant à l’échelle afin de les traiter (transformer), et stocker (persister) de manière efficace. Une façon de pallier cette problématique est d’utiliser les systèmes et les bases de données répartis. D’une part, les paradigmes de programmation distribuée tels que MapReduce et Pregel peuvent simplifier la distribution de transformations des modèles (TM). Et d’autre part, l’avènement des base de données NoSQL permet le stockage efficace des modèles d’une manière distribuée. Dans le cadre de cette thèse, nous proposons une approche pour la transformation ainsi que pour la persistance de grands modèles.Nous nous basons d’un côté, sur le haut niveau d’abstraction fourni par les langages déclaratifs (relationnels) de transformation et d’un autre côté, sur la sémantique bien définie des paradigmes existants de programmation distribués, afin de livrer un moteur distribué de TM. La distribution est implicite et la syntaxe du langage n’est pas modifiée (aucune primitive de parallélisation n’est ajoutée). Nous étendons cette solution avec un algorithme efficace de distribution de modèles qui se base sur l’analyse statique des transformations et sur résultats récents sur le partitionnement équilibré des graphes. Nous avons appliqué notre approche à ATL, un langage relationnel de TM et MapReduce, un paradigme de programmation distribué. Finalement, nous proposons une solution pour stocker des modèles à l’aide de bases de données NoSQL, en particulier au travers d’un cadre d’applications de persistance répartie. / Model-Driven Engineering (MDE) is gaining ground in industrial environments, thanks to its promise of lowering software development and maintenance effort. It has been adopted with success in producing software for several domains like civil engineering, car manufacturing and modernization of legacy software systems. As the models that need to be handled in model-driven engineering grow in scale, it became necessary to design scalable algorithms for model transformation (MT) as well as well-suitable persistence frameworks. One way to cope with these issues is to exploit the wide availability of distributed clusters in the Cloud for the distributed execution of model transformations and their persistence. On one hand, programming models such as MapReduce and Pregel may simplify the development of distributed model transformations. On the other hand, the availability of different categories of NoSQL databases may help to store efficiently the models. However, because of the dense interconnectivity of models and the complexity of transformation logics, scalability in distributed model processing is challenging. In this thesis, we propose our approach for scalable model transformation and persistence. We exploit the high-level of abstraction of relational MT languages and the well-defined semantics of existing distributed programming models to provide a relational model transformation engine with implicit distributed execution. The syntax of the MT language is not modified and no primitive for distribution is added. Hence developers are not required to have any acquaintance with distributed programming.We extend this approach with an efficient model distribution algorithm, based on the analysis of relational model transformation and recent results on balanced partitioning of streaming graphs. We applied our approach to a popular MT language, ATL, on top of a well-known distributed programming model, MapReduce. Finally, we propose a multi-persistence backend for manipulating and storing models in NoSQL databases according to the modeling scenario. Especially, we focus on decentralized model persistence for distributed model transformations.
|
73 |
Spem4mde : un métamodèle et un environnement pour la modélisation et la mise en œuvre assistée de processus IDM / Spem4mde : a metamodel and software environment for assisted modeling and enactment of MDE processesDiaw, Samba 28 September 2011 (has links)
L’avènement de l’IDM (Ingénierie Dirigée par les Modèles) a suscité beaucoup d’intérêt de la part des organisations qui de fait commencent à transformer leur processus de développement traditionnel en un processus de développement dirigé par les modèles, appelé aussi processus IDM.Au moment où ces processus commencent à émerger, nous notons l’absence d’un langage dédié pour les modéliser et les mettre en œuvre. Le standard SPEM 2.0 propose des concepts génériques qui sont supposés être capables de décrire tout type de processus logiciel. Cependant, les concepts de SPEM ne capturent pas la nature exacte des processus IDM. D’autre part, une autre insuffisance majeure de SPEM réside dans le fait qu’il n’intègre pas les concepts relatifs à la mise en œuvre des processus.L’objectif de cette thèse est triple : (1) proposer une extension de SPEM dans laquelle les concepts centraux des processus IDM sont réifiés ; (2) proposer un langage dédié à la modélisation comportementale des processus IDM ; (3) proposer une architecture conceptuelle d’un environnement logiciel d’aide à la modélisation et à la mise en œuvre des processus IDM.Pour valider notre approche, un prototype a été développé sous l’environnement TOPCASED. Ce prototype fournit d’une part un éditeur graphique pour la modélisation structurelle et comportementale des processus IDM et d’autre part un environnement de mise en œuvre s’appuyant sur les modèles comportementaux des processus. Nous avons également appliqué notre approche à une étude de cas significatif: le processus UWE (UML-based Web Engineering), qui est un processus IDM dédié au développement d’applications web. / With the emergence of MDE, many organizations have been starting to transform their traditional software development processes into model-driven processes. Kleppe and al. define a model-driven software development as “a process of developing software using different models on different levels of abstraction with (automated) transformations between these models”.While model-driven development processes – called MDE processes – have started to appear, a tool-supported Process Modeling Language (PML) for describing and enacting such processes is still lacking. The concepts of SPEM 2.0 are quite generic since they are supposed to allow describing any kind of software. However, SPEM 2.0 concepts do not succeed in capturing the exact nature of most activities and artifacts of model-driven development. In addition, another major weakness of SPEM 2.0 is the lack of concepts for process enactment.The objective of this thesis is threefold: (1) provide an extension of SPEM that reifies the MDE concepts; (2) provide a language dedicated to behavioral modeling of MDE processes; (3) provide a conceptual architecture of a PSEE (Process-centered Software Engineering Environment) that guides process designer at modeling phase and developers at enactment time.To validate our approach, a prototype of this PSEE is developed under the TOPCASED environment. This prototype provides a graphical editor for structural and behavioral modeling of MDE processes, and a process enactment engine based on process behavior models. We have also applied our approach to a significant case study: the UWE (UML-based Web Engineering) process, which is a MDE process dedicated to web applications development.
|
74 |
Assistance à la validation et vérification de systèmes critiques : ontologies et intégration de composants / Support for the validation and verification of critical systems : ontologies and integration of componentsKezadri, Mounira 11 July 2013 (has links)
Les activités de validation et vérification de modèles sont devenues essentielles dans le développement de systèmes complexes. Les efforts de formalisation de ces activités se sont multipliés récemment étant donné leur importance pour les systèmes embarqués critiques. Notre travail s’inscrit principalement dans cette voie. Nous abordons deux visions complémentaires pour traiter cette problématique. La première est une description syntaxique implicite macroscopique basée sur une ontologie pour aider les concepteurs dans le choix des outils selon leurs exigences. La seconde est une description sémantique explicite microscopique pour faciliter la construction de techniques de vérification compositionnelles. Nous proposons dans la première partie de cette thèse une ontologie pour expliquer et expliciter les éléments fondateurs du domaine que nous appelons VVO. Cette ontologie pourra avoir plusieurs autres utilisations : une base de connaissance, un outil de formation ou aussi un support pour le choix de la méthode à appliquer et l’inférence de correspondance entre outils. Nous nous intéressons dans la seconde partie de cette thèse à une formalisation dans un assistant à la preuve de l’introduction de composants dans un langage de modélisation et des liens avec les activités de validation et vérification. Le but est d’étudier la préservation des propriétés par composition : les activités de vérification sont généralement coûteuses en terme de temps et d’effort, les faire d’une façon compositionnelle est très avantageux. Nous partons de l’atelier formel pour l’Ingénierie Dirigée par les Modèles Coq4MDE. Nous suivons la même ligne directrice de développement prouvé pour formaliser des opérateurs de composition et étudier la conservation des propriétés par assemblage. Nous nous intéressons au typage puis à la conformité de modèles par rapport au métamodèle et nous vérifions que les opérateurs définis permettent de conserver ces propriétés. Nous nous focalisons sur l’étude d’opérateurs élémentaires que nous exploitons pour spécifier des opérateurs de plus haut niveau. Les préconditions des opérateurs représentent les activités de vérification non compositionnelles qui doivent être effectuées en plus de la vérification des composants pour assurer la postcondition des opérateurs qui est la propriété souhaitée. Nous concluons en présentant des perspectives pour une formalisation algébrique en théorie des catégories. / The validation and verification of models have become essential in the development of complex systems. The formalisation efforts for these activities have increased recently being given their importance for critical embedded systems. We discuss two complementary visions for addressing these issues. The first is a syntactic implicit macroscopic description based on an ontology to help designers in the choice of tools depending on their requirements. The second is a microscopic explicit semantics description aiming to facilitate the construction of compositional verification techniques. We propose in the first part of this thesis an ontology to explain and clarify the basic elements of the domain of Verification and Validation that we call VVO. This ontology may have several other uses: a knowledge base, a training tool or a support for the choice of the method to be applied and to infer correspondence between tools. We are interested in the second part of this thesis in a formalisation using a proof assistant for the introduction of components in a modelling language and their links with verification and validation activities. The aim is to study the preservation of properties by the composition activities. The verification are generally expensive in terms of time and efforts, making theme in a compositional way is very advantageous. Starting from the formal framework for Model Driven Engineering COQ4MDE, we follow the same line of though to formalize the composition operators and to study the conservation of properties by composition. We are interested in typing and conformity of models in relation with metamodels and we verify that the defined operators allow to preserve these properties. We focus on the study of elementary operators that we use to specify hight level operators. The preconditions for the operators represent the non-compositional verification activities that should be performed in addition to verification of components to ensure the desired postcondition of the operator. We conclude by studying algebraic formalisation using concepts from category theory.
|
75 |
Formal Guaranties for Safety Critical Code Generation : the Case of Highly Variable Languages / Garanties formelles pour la génération de code critique : L’affaire des langages fortement variablesDieumegard, Arnaud 30 January 2015 (has links)
Les fonctions de commande et de contrôle sont parmi les plus importantes des systèmes embarqués critiques utilisés dans des activités telles les transports, la santé ou la gestion de l’énergie. Leur impact potentiel sur la sûreté de fonctionnement fait de la vérification de leur correction l’un des points les plus critiques de leur développement. Cette vérification est usuellement effectuée en accord avec les normes de certification décrivant un ensemble d’objectifs à atteindre afin d’assurer un haut niveau de qualité du système et donc de prévenir l’apparition de défauts. Cette vérification du logiciel est traditionnellement basée sur de nombreux tests et des activitiés de relectures de code, toutefois les versions les plus récentes des standards de certification permettent l’utilisation de nouvelles approches de développement telles que l’ingénierie dirigée par les modèles et les méthodes formelles ainsi que l’utilisation d’outil pour assister les processus de développement. Les outils de génération automatique de code sont exploités dans la plupart des processus de développement de systèmes embarqués critiques afin d’éviter des erreurs de programmation liées à l’humain et pour assurer le respect des règles de production de code. Ces outils ayant pour vocation de remplacer les humains pour la production de code, des erreurs dans leur conception peuvent causer l’apparition d’erreurs dans le code généré. Il est donc nécessaire de vérifier que le niveau de qualité de l’outil est le même que celui du code produit en s’assurant que les objectifs spécifiées dans les normes de qualification sont couverts. Nos travaux visent à exploiter l’ingénierie dirigée par les modèles et les méthodes formelles pour développer ces outils et ainsi atteindre un niveau de qualité plus élevé que les approches traditionnelles. Les fonctions critiques de commande et de contrôle sont en grande partie conçues à l’aide de langages graphiques à flot de données. Ces langages sont utilisés pour modéliser des systèmes complexes à l’aide de blocs élémentaires groupés dans des librairies de blocs. Un bloc peut être un objet logiciel sophistiqué exposant une haute variabilité tant structurelle que sémantique. Cette variabilité est à la fois liée aux valeurs des paramètres du bloc ainsi qu’à son contexte d’utilisation. Dans notre travail, nous concentrons notre attention en premier lieu sur la spécification formelle de ces blocs ainsi que sur la vérification de ces spécifications. Nous avons évalué plusieurs approches et techniques dans le but d’assurer une spécification formelle, structurellement cohérente, vérifiable et réutilisable des blocs. Nous avons finalement conçu un langage basé sur l’ingénierie dirigées par les modèles dédié à cette tâche. Ce langage s’inspire des approches des lignes de produit logiciel afin d’assurer une gestion de la variabilité des blocs à la fois correcte et assurant un passage à l’échelle. Nous avons appliqué cette approche et la vérification associée sur quelques exemples choisis de blocs issus d’applications industrielles et l’avons validé sur des prototypes logiciels que nous avons développé. Les blocs sont les principaux éléments des langages d’entrée utilisés pour la génération automatique de logiciels de commande et de contrôle. Nous montrons comment les spécifications formelles de blocs peuvent être transformées en des annotations de code afin de simplifier et d’automatiser la vérification du code généré. Les annotations de code sont vérifiées par la suite à l’aide d’outils spécialisés d’analyse statique de code. En utilisant des observateur synchrones pour exprimer des exigences de haut niveau sur les modèles en entrée du générateur, nous montrons comment la spécification formelle de blocs peut être utilisée pour la génération d’annotations de code et par la suite pour la vérification automatique des exigences. / Control and command softwares play a key role in safety-critical embedded systems used for human related activities such as transportation, healthcare or energy. Their impact on safety makes the assessment of their correctness the central point in their development activities. Such systems verification activities are usually conducted according to normative certification guidelines providing objectives to be reached in order to ensure development process reliability and thus prevent flaws. Verification activities usually relies on tests and proof reading of the software but recent versions of certification guidelines are taking into account the deployment of new development paradigms such as model-based development, and formal methods; or the use of tools in assistance of the development processes. Automatic code generators are used in most safety-critical embedded systems development in order to avoid human related software production errors and to ensure the respect of development quality standards. As these tools are supposed to replace humans in the software code production activities, errors in these tools may result in embedded software flaws. It is thus in turn mandatory to ensure the same level of correctness for the tool itself than for the expected produced code. Tools verification shall be done according to qualification guidelines. We advocate in our work the use of model-based development and formal methods for the development of these tools in order to reach a higher quality level. Critical control and command software are mostly designed using graphical dataflow languages. These languages are used to express complex systems relying on atomic operations embedded in blocks that are gathered in block libraries. Blocks may be sophisticated pieces of software with highly variable structure and semantics. This variability is dependent on the values of the block parameters and of the block's context of use. In our work, we focus on the formal specification and verification of such block based languages. We experimented various techniques in order to ensure a formal, sound, verifiable and usable specification for blocks. We developed a domain specific formal model-based language specifically tailored for the specification of structure and semantics of blocks. This specification language is inspired from software product line concepts in order to ensure a correct and scalable management of the blocks variability. We have applied this specification and verification approach on chosen block examples from common industrial use cases and we have validated it on tool prototypes. Blocks are the core elements of the input language of automatic code generators used for control and command systems development. We show how our blocks formal specification can be translated as code annotations in order to ease and automate the generated code verification. Code annotations are verified using specialised static code analysis tools. Relying on synchronous observers to express high level requirements at the input model level, we show how formal block specification can also be used for the translation of high level requirements as verifiable code annotations discharged using the same specialised tooling. We finally target the assistance of code generation tools qualification activities by arguing on the ability to automatically generate qualification data such as requirements, tests or simulation results for the verification and development of automatic code generators from the formal block specification.
|
76 |
Méthode d'évolution de modèles produits dans les sytèmes PLM / A pattern based approach for the evolution of PLM tools in the extended enterprise.Izadpanah, Seyed Hamedreza 28 September 2011 (has links)
Le système PLM est l’un des outils stratégiques de l’entreprise. Ces systèmes sont sujets à des changements récurrents dans l’entreprise. Les évolutions organisationnelles, le changement de l’offre produit ou encore le remplacement de logiciels PLM peuvent déclencher l’évolution du système d’information PLM. Une des structures les plus importantes dans les systèmes PLM est le modèle du produit, autour duquel s’articule les informations et processus. C’est autour du modèle produit que se concentrent nos recherches. Les causes d’évolution des modèles produits sont des éléments signifiants qui différencient les étapes de la démarche à suivre. Les méthodes d’IDM sont utilisées afin de formaliser la transformation des modèles. En plus, cette démarche bénéfice d’un cadre de similarité spécialement développé pour la configuration de produit. Un exemple industriel est illustré et résolu en appliquant cette démarche. Il s’agit de l’évolution d’un système gérant les modèles spécifiques de produit vers un système qui est capable de construire et d’utiliser les modèles génériques de produit. Un outil informatique support à nos travaux est développé dans le cadre d'Eclipse. / PLM systems are among the strategic components of enterprise’s information system architecture. These systems undergo frequent evolutions of enterprise. Organizational evolution or product offer variation as well as PLM application replacement may launch PLM systems’ evolution.One of the important structures in PLM systems is the product configuration, which organize and structure all product’s information and processes. Our research activities concern product model evolution. Reasons of product model evolution specify the appropriate methodology and necessary steps in order to handle it. MDE methods are used to formalize the model transformation process.Moreover, our methodology contains a specific similarity framework dedicated to product configuration. An industrial example was illustrated and resolved by this methodology. The problematic of this example is the migration of a system which manage only specific product configuration to a new system that is capable to construct and use generic models of product.
|
77 |
L'introduction de la gestion du cycle de vie produit dans les entreprises de sous-traitance comme vecteur d'agilité opérationnelle et de maîtrise du produit / ‘Product Lifecycle Management’ (PLM) in the subcontracting industry as a key for operational agility and product managementPinel, Muriel 30 May 2013 (has links)
Pour faire face à un environnement en perpétuelle évolution, les entreprises doivent changer et parfois en profondeur. Ces évolutions en principe voulues et contrôlées se font au moyen de projets dits « d'entreprise ». Parmi les buts qu'il s'agit d'atteindre par le biais de ces projets, deux buts majeurs sont identifiables : le développement de l'agilité opérationnelle et la maîtrise des produits. Dans ces travaux de thèse, nous nous focalisons sur le projet PLM (Product Lifecycle Management) et plus particulièrement sur la mise en oeuvre du système d’information nécessaire à la gestion du cycle de vie des produits : le système PLM. Ce système d’information coordonne tout ou partie des informations liées à la définition, à la réalisation, à l’usage et au retrait des produits. Après un état de l’art permettant de définir de façon précise les concepts liés à la gestion du cycle de vie des produits, une méthode est proposée pour définir le cahier des charges du système PLM. La définition de cette méthode montre la nécessité d’assurer la cohérence entre les différents modèles du système PLM d’une part et entre les différentes représentations du produit utilisées tout au long de son cycle de vie d’autre part. Un cadre de modélisation basé sur le paradigme systémique, sur le paradigme d'ambivalence et sur des concepts de métamodélisation est alors proposé. Ce cadre de modélisation apporte des éléments de réponse aux besoins de cohérence identifiés. Il supporte également l'adoption du raisonnement synergique indispensable au développement de l'agilité opérationnelle recherchée par l’entreprise. Une expérimentation est réalisée pour illustrer les concepts introduits dans notre cadre de modélisation. / Faced with a constantly evolving environment, companies have to change and sometimes have to change in depth. These evolutions are usually intentional and monitored and they are done through business projects. Two major goals can be identified among the goals to be reached through these projects: the operational agility development and the product management expertise. This thesis work focuses on PLM (Product Lifecycle Management) project and more precisely on the implementation of the information system needed to manage products’ lifecycle : the PLM system. This information system manages all or part of information related to the definition, the manufacturing, the use and the treatment as a waste of products. First of all, a state of the art of the concepts related to product lifecycle management is done. Basing on these concepts, a method for defining the PLM system requirements is proposed. Defining this method highlights two consistency needs. The first one is related to consistency among the several PLM system models. The second one is related to consistency among the several product representations used throughout the product lifecycle. A modeling framework based on the systemic paradigm, on the ambivalence paradigm and on metamodeling concepts is then proposed. On the one hand, this modeling framework provides elements to respond to identified consistency needs. On the other hand, it supports the adoption of the synergistic reasoning that is essential for developing the operational agility sought by the enterprise. An experimentation is carried out to illustrate the concepts introduced by the modeling framework.
|
78 |
Compilation optimisée des modèles UML / An Optimized UML CompilerCharfi Smaoui, Asma 12 December 2011 (has links)
Cette thèse s'inscrit dans le cadre de la mise en œuvre de l’ingénierie dirigée par les modèles (IDM) pour le développement des systèmes embarquées. Ces systèmes ayant généralement des ressources limitées (mémoire et/ou calculs), exigent que le code généré soit le plus optimisé possible. L’objectif de cette thèse est de produire à partir d’un modèle spécifié dans le langage UML, un code assembleur plus compact que le code assembleur produit par les compilateurs de code. Malgré l’évolution croissante des compilateurs optimisés, les compilateurs les plus répandus comme le GCC (Gnu Compiler Collection) sont incapables d’effectuer certains types d’optimisations qu'il est possible d'effectuer à un plus haut niveau d'abstraction dans une phase de pré-génération de code. En effet, certaines informations (liées à la sémantique d’exécution du langage UML) sont perdues lors de la génération de code. Ces informations, utiles pour les optimisations de haut niveau, sont invisibles par le compilateur de code vue qu’il prend toutes les informations liées au système modélisé à partir du code généré. Nous proposons ainsi une nouvelle approche dirigée par les modèles pour le développement des systèmes à ressources limitées, qui élimine l’étape de la génération de code en remplaçant cette étape par une compilation directe des modèles. Nous avons développé le premier compilateur de modèles UML (GUML : le front-end UML pour le compilateur GCC) qui génère directement de l’assembleur (sans passer par un langage de programmation) à partir des modèles UML. GUML permet de compiler les classes, les activités et les machines à états UML. Il permet de générer, en compilant certaines machines à états, un code assembleur plus compact que le code assembleur produit par GCC. Deux optimisations de GCC sont améliorées : l’élimination de code mort et l’élimination des expressions redondantes. / Model-Based Development (MBD) provides an additional level of abstraction, the model, which allows dealing with the increasing complexity of systems. Models let engineers focus on the business aspect of the developed system and permits automatic treatments of these models with dedicated tools like for instance synthesis of system's application by automatic code generation. Embedded Systems are often constrained by their environment and/or the resources they own in terms of memory, energy consumption or performance requirements. Hence, an important problem to deal with in embedded system development is linked to the optimization of software part of those systems according to the resources provided by their platform. Although automatic code generation and the use of optimizing compilers bring some answers to application optimization issue, this thesis shows that optimization results may be enhanced by adding a new level of optimizations at the model level before the code generation step. Actually, during the code generation, an important part of the modeling language semantics which could be useful for optimization is lost, thus, making impossible some optimizations achievement. We propose in this thesis a novel MBD approach that compiles directly UML models. The biggest challenge for this approach –tackled in this thesis- is to propose a model compiler that is as efficient as code compiler. Our model compiler (GUML: the UML front end for GCC) performs optimizations that GCC is unable to perform resulting in a more compact assembly code. Two GCC optimizations are enhanced: the dead code elimination optimization and the block merging.
|
79 |
A study to define an automatic model transformation approach based on semantic and syntactic comparisons / Etude d'une approche de transformation de modèles automatisée basée sur des comparaisons sémantique et syntaxiqueWang, Tiexin 10 December 2015 (has links)
Les modèles sont de plus en plus utilisés que ce soit pour la description d’un point de vue d’un système complexe ou pour l’échange d’information. Cependant, le partage d’information, le transfert d’information d’un modèle à un autre est aujourd’hui une problématique liée à l’interopérabilité des systèmes. Cette problématique peut être abordée selon trois approches : intégrée (tous les modèles identiques), unifiée (tous les modèles font référence à un modèle pivot), fédérée (pas de règles précises sur les modèles). Bien que des standards existent, ils sont rarement respectés avec rigueur. L’approche fédérée semble par conséquent l’approche la plus réaliste. Cependant, cette approche est complexe car les différents modèles, bien que comportant des concepts communs, peuvent avoir une structure et un vocabulaire très hétérogène pour décrire le même concept. Par conséquent, il faut identifier les concepts communs des différents modèles avant de définir les règles de transformation permettant de passer d’un format à un autre. Cette thèse propose une méthodologie permettant d’atteindre ces objectifs, elle se base d’une part sur la proposition d’un méta-méta-modèle permettant d’unifier la description de la structure des modèles, i.e. le méta-modèle, et d’autre part sur le calcul de distance entre chaque élément des modèles qui permettront de déduire les règles de transformation. Cette mesure de distance reflète la distance à la fois syntaxique, écritures différentes d’un même terme, ainsi que sémantique liée à l’utilisation de synonyme. La recherche de synonyme est basée sur l’utilisation de base de connaissance, représentée sous forme d’ontologie, tel que WordNet. / The models are increasingly used both for the description of a view of a complex system or for information exchange. However, to share the information, transferring information from one model to another is an issue related to the interoperability of systems now. This problem can be approached in three ways: integrated (all identical models), unified (all models refer to a pivot model), federated (no specific rules on the models). Although standards exist, they are rarely respected rigorously. The federated approach therefore seems to be the most realistic approach. However, because of the different models, this approach is complicated. Models can have a very heterogeneous structure and different vocabulary to describe the same concept. Therefore, we must identify the common concepts of different models before defining the transformation rules for transforming from one format to another. This thesis proposes a methodology to achieve these goals. It is partly based on the proposal of a meta-meta-model (to unify the description of the model structure), i.e. the meta-model, and secondly calculating the distance between each element of models to deduce the transformation rules. This distance reflecting both syntactic distance (words occurrence) and semantic relation that related to the synonymous. Researching synonym relation is based on the use of knowledge base, represented as ontology, such as WordNet.
|
80 |
Proposition d’un cadre méthodologique pour le management de la continuité d’activité : application à la prise en charge à domicile / A proposition of a methodological framework for the Business Continuity Management : application to homecareRejeb, Olfa 02 December 2013 (has links)
Dans le contexte actuel, les technologies d'information et de communication sont reconnues comme un élément inévitable pour améliorer les pratiques métiers. Dans le secteur de la prise en charge à domicile, par exemple, elles sont un élément déterminant dans la faisabilité d'un tel service au patient. Cependant, ces organisations évoluent dans un environnement très dynamique et incertain. Au regard de ces perturbations endogènes et exogènes auxquelles sont confrontées les organisations, elles se doivent de réagir de manière agile aux aléas et faire preuve de résilience. Le management de la continuité d'activité (MCA) est une approche de management des organisations qui répond à ces attentes. C'est dans ce contexte que se situent nos travaux de thèse cofinancés par la région Midi-Pyrénées. Notre motivation est la définition d'un cadre méthodologique pour mettre en œuvre le management de la continuité d'activité au sein d'un système socio-technique, cadre qui soutiendrait une nouvelle démarche d'ingénierie d'entreprise dirigée par les modèles. Après avoir fait une synthèse des connaissances sur la théorie du management de la continuité d'activité, un problème de structuration de ces connaissances est formulé. Un cadre méthodologique pour le management de la continuité d'activité est ensuite proposé. Il repose sur (i) la définition et la conception d'un méta modèle de référence fondé sur l'intégration entre management de la continuité d'activité et ingénierie d'entreprise ; (ii) le développement d'un ensemble de matrices d'évaluation de la criticité destinés à soutenir l'analyse d'impact de MCA ; et enfin sur (iii) la définition d'un langage de modélisation étendu aux concepts de MCA. Un cas d'études du domaine de la prise en charge à domicile vient illustrer le bien-fondé de l'application de ce cadre méthodologique sur une base réelle et concrète. / In the present context, Information and Communication technologies are recognized as an inevitable element to improve business practices. Particularly in the home-care field in order to meet challenges of coordination and care continuity. However, these organizations operate in a highly dynamic and uncertain environment. In view of these endogenous and exogenous disruptions, they have to react in an agile way to face risks and to ensure their resilience. The Business Continuity Management (BCM) meets these expectations. Our motivation in this research work is to define a methodological framework to implement the business continuity management within a socio -technical system as an integral part of a new approach to model driven enterprise engineering. After delivering a synthesis of related work to Business Continuity Management, a research question concerning the structuring of this knowledge has been addressed. A methodological framework for business continuity management is then suggested. It is based on (i) the definition and the design of a meta-model integrating BCM and enterprise engineering, (ii) the development of a set criticality assessment matrix to support the business impact analysis, and finally on (iii) the definition of a modeling language adapted to concepts of BCM. A case study from the home-care sector illustrates the foundation of the methodological framework.
|
Page generated in 0.0344 seconds