• Refine Query
  • Source
  • Publication year
  • to
  • Language
  • 32
  • 17
  • 6
  • 5
  • 3
  • 1
  • 1
  • 1
  • 1
  • Tagged with
  • 76
  • 76
  • 76
  • 27
  • 27
  • 19
  • 19
  • 19
  • 18
  • 17
  • 16
  • 15
  • 13
  • 11
  • 11
  • About
  • The Global ETD Search service is a free service for researchers to find electronic theses and dissertations. This service is provided by the Networked Digital Library of Theses and Dissertations.
    Our metadata is collected from universities around the world. If you manage a university/consortium/country archive and want to be added, details can be found on the NDLTD website.
31

CoMDD: uma abordagem colaborativa para auxiliar o desenvolvimento orientado a modelos / CoMDD: a collaborative model driven development approach

David Fernandes Neto 01 June 2012 (has links)
O desenvolvimento orientado a modelos (Model Driven Development - MDD) é uma abordagem que tem ganhado cada vez mais espaço na indústria e na academia, trazendo grandes benefícios, como o aumento de produtividade. Uma forma de se trabalhar usando MDD em equipe é usando uma IDE (Integrated Development Environment) associada a um sistema de versionamento. Entretanto, trabalhar colaborativamente usando uma IDE associada a um sistema de versionamento pode trazer algumas complicações para o desenvolvimento como: conflitos de modelos, documentação descontinuada, dificuldades por parte dos interessados em usar sistemas de versionamento, etc. Nesse contexto, este trabalho propõe uma abordagem de uso de wiki para desenvolvimento de MDD, de modo que o desenvolvedor seja capaz de criar modelos, gerar código fonte, compartilhar e versionar os modelos e ainda documentar colaborativamente, de maneira mais simples e fácil do que abordagens tradicionais. Isso possibilita que mais usuários não desenvolvedores possam participar mais no processo de desenvolvimento e ainda permite o aumento de produtividade. Para tentar evidenciar de que é possível uma wiki ser usada para desenvolver software, foi criada uma Domain Specific Language - DSL em uma wiki e foram realizados três estudos de caso: um com estudantes do ensino médio e que representam os não desenvolvedores, um com quatro alunos de pós-graduação com experiência de desenvolvimento na indústria e o último estudo de caso foi realizado com 48 participantes entre desenvolvedores e alunos de pósgraduação em Ciências da Computação. Os estudos de caso mostraram que é viável usar uma wiki para desenvolvimento, que não desenvolvedores se adaptam bem à abordagem e que 86% dos desenvolvedores usariam a abordagem proposta se tivessem que trabalhar com MDD. Os estudos de caso também levantaram as principais barreiras para aumentar a aceitação da abordagem. Com isso, este trabalho apresenta além de uma abordagem relativamente inédita na literatura, resultados sobre uso de sistemas de versionamento, de IDEs e de desenvolvimento colaborativo / The Model Driven Development (MDD) is an approach that has gained more space in industry and academia, bringing great benefits such as increased productivity. One way of working in teams with MDD is using an IDE (Integrated Development Environment) with a versioning system. However, to collaboratively work with an IDE and a versioning system may have implications and problems for the development as: conflicts of models, documentation discontinued, difficulties for stakeholders to use versioning systems, etc. In this context, this work proposes an approach to use a wiki to develop MDD, so that the developer is able to create models, generate source code, sharing and versioning models and also to collaboratively document, in a more simple and easy way than the traditional approaches. This enables non developers can participate more in the development process and also allows increasing productivity. To try to show that a wiki can be used to develop software, we created a Domain Specific Language (DSL) in a wiki and were performed three case studies: one with high school students and represent the non developers, another one with four graduate students with experience in software development in the industry, and the last case study was conducted with 48 participants among developers and graduate students in Computer Science. The case studies showed the feasibility of using a wiki for development, that non developers adapted well to the approach and 86 % of the developers would use a wiki to develop MDD. The study also raised the main barriers to increase the acceptance of the approach. Therefore, this work presents also a relatively new approach in the literature and results on the use of versioning systems, IDEs and collaboratively development
32

Achieving non-intrusive interoperability between models for involving users in modeling tasks

Pérez Pérez, María Francisca 02 December 2015 (has links)
[EN] Model-Driven Development (MDD) promotes models as the cornerstone in the software development process, thereby displacing source code as the development process's main feature. Although this model-centric schema claims advantages over traditional software development (e.g., the code could be automatically generated from the models), it does not have the level of adoption that has been expected. The literature review reveals a broad agreement in the fact that end-users may develop and adapt systems themselves but the complexity in modeling standards and the lack of modeling skills prevents their active involvement in modeling tasks of existing MDD processes. To overcome this, end-users should be provided with different modeling languages that use concepts, which fit their particular skills, context and needs. This challenge is the main goal of this thesis, which is addressed by combining the End-user Development and the Model-Driven Development fields. This work starts with the involvement of end-users into the modeling tasks using a tool-supported visual modeling language that allows end-users to select and customize system features of pervasive systems using closer concepts for them. Afterwards, this thesis shows the necessity of enriching existing MDD processes for supporting the development of a new generation of software systems (e.g., smart health) that require expertise in a variety of domains. Consequently, different types of users (e.g., scientists, engineers and end-users) must actively participate in the description of model fragments that depend on their expertise using a different modeling language. Thus, users are able to collaborate to obtain a unified system description. At this point, it becomes necessary to provide mechanisms that transforms models fragments from one modeling language to another, delimits which model fragments are described by a different user, and integrates those model fragments. To provide this, the presented approach encompasses variability management in a novel way to enable collaborative modeling by supporting both the selection of model fragments of the system that may be described using a different modeling language, and the integration of those model fragments once they are described. Furthermore, interoperability mechanisms bridge two different modeling languages in a non-intrusive way with the structure of models by transforming the description of gaps. Thus, our proposal could enrich models of existing MDD processes with model fragments that have been described using a different modeling language, which could make users feel confident to adopt models for describing domain-specific content and could help to adopt MDD processes. The proposal has been validated in three case studies from different levels of complexity and domains: smart home systems, web information systems, and biomechanical protocols. The results have proven the applicability and feasibility of our approach to actively involve different types of users (end- users with software professionals, domain experts with software development experts, and doctors with biomedical engineers, respectively) in model descriptions of existing MDD processes using a different modeling language. / [ES] En el Desarrollo de Software Dirigido por Modelos (DSDM) los modelos son la piedra angular del proceso de desarrollo de software, desplazando así al código fuente como artefacto principal. Aunque este enfoque centrado en modelos ofrece ventajas sobre el desarrollo de software tradicional (por ejemplo, la generación de código de forma automática a partir de los modelos) no tiene el nivel de adopción esperado. La literatura científica revela un amplio acuerdo en el hecho de que los usuarios finales puedan ellos mismos desarrollar y adaptar los sistemas pero la complejidad de los estándares de modelado y la carencia de habilidades de modelado impide su participación activa en procesos DSDM existentes. Para lograrlo, los usuarios finales deben disponer de lenguajes de modelado diferentes con conceptos adaptados a sus habilidades, contexto y necesidades. Este desafío es el objetivo principal de esta tesis que se aborda combinando las ideas del desarrollo orientado al usuario final y el DSDM. Este trabajo comienza involucrando usuarios finales en tareas de modelado con una herramienta que les proporciona un lenguaje de modelado visual para seleccionar y personalizar características de un sistema pervasivo utilizando conceptos familiares para ellos. Después, esta tesis motiva la necesidad de enriquecer procesos de DSDM existentes para soportar el desarrollo de una nueva generación de sistemas software (por ejemplo, salud inteligente) que requieren conocimientos especializados en una variedad de dominios. Consecuentemente, diferentes tipos de usuarios (por ejemplo, científicos, ingenieros y usuarios finales) deben participar activamente en la descripción de fragmentos de modelos que dependen de su experiencia utilizando un lenguaje de modelado diferente. De este modo, los usuarios pueden colaborar para obtener una descripción del sistema unificada. En este punto, es necesario proporcionar mecanismos que transformen e integren los fragmentos de un lenguaje de modelado a otro y delimiten qué fragmentos se describen por un usuario diferente. Para proporcionar esto, la propuesta presentada utiliza la gestión de variabilidad de forma novedosa para permitir modelado colaborativo seleccionando fragmentos de un modelo del sistema que pueden ser descritos utilizando un lenguaje de modelado diferente y, la integración de esos fragmentos una vez que hayan sido descritos. Además, la propuesta utiliza mecanismos de interoperabilidad para conectar dos lenguajes de modelado diferentes transformando la descripción de los fragmentos de una manera no invasiva con su estructura. Por tanto, nuestra propuesta puede enriquecer los modelos de procesos DSDM existentes con fragmentos de modelos que han sido descritos con un lenguaje diferente y esto, podría hacer que los usuarios se sientan seguros al adoptar modelos para describir contenido de dominio específico y podría ayudar a adoptar procesos DSDM. La propuesta ha sido validada en tres casos de estudio con diferentes niveles de complejidad y dominios: sistemas para el hogar inteligente, sistemas de información web y protocolos biomecánicos. Los resultados han demostrado la aplicabilidad y viabilidad de nuestra propuesta para involucrar diferentes tipos de usuarios (usuarios finales con profesionales de software, expertos en el dominio con expertos en desarrollo de software y, médicos con ingenieros biomédicos, respectivamente) en descripciones de modelos de procesos DSDM existentes utilizando un lenguaje de modelado diferente. / [CAT] En el Desenvolupament de Programari Dirigit per Models (DPDM) els models són la pedra angular del procés de desenvolupament de programari, desplaçant així al codi font com a artefacte principal. Encara que aquest enfocament centrat en models ofereix avantatges sobre el desenvolupament de programari tradicional (per exemple, la generació de codi de forma automàtica a partir dels models) no té el nivell d'adopció esperat. La literatura científica revela un ampli acord en el fet que els usuaris finals puguen ells mateixos desenvolupar i adaptar els sistemes però la complexitat dels estàndards de modelatge i la falta d'habilitats de modelatge impedeix la seua participació activa en processos DPDM existents. Per a aconseguir-ho, els usuaris finals han de disposar de llenguatges de modelatge diferents amb conceptes adaptats a les seues habilitats, context i necessitats. Aquest desafiament és l'objectiu principal d'aquesta tesi que s'aborda combinant les idees del desenvolupament orientat a l'usuari final i el DPDM. Aquest treball comença involucrant usuaris finals en tasques de modelatge amb una eina que els proporciona un llenguatge de modelatge visual que permet als usuaris finals seleccionar i personalitzar característiques d'un sistema pervasiu utilitzant conceptes familiars per a ells. Després, aquesta tesi motiva la necessitat d'enriquir processos de DPDM existents per a suportar el desenvolupament d'una nova generació de sistemes programari (per exemple, salut intel¿ligent) que requereixen coneixements especialitzats en una varietat de dominis. Conseqüentment, diferents tipus d'usuaris (per exemple, científics, enginyers i usuaris finals) han de participar activament en la descripció de fragments de models que depenen de la seua experiència utilitzant un llenguatge de modelatge diferent. D'aquesta manera, els usuaris poden col¿laborar per a obtenir una descripció del sistema unificada. En aquest punt, és necessari proporcionar mecanismes que transformen i integren els fragments d'un llenguatge de modelatge a un altre i delimiten quins fragments es descriuen per un usuari diferent. Per a proporcionar açò, la proposta presentada utilitza la gestió de variabilitat de forma nova per a permetre modelatge col.laboratiu seleccionant fragments d'un model del sistema que poden ser descrits utilitzant un llenguatge de modelatge diferent i, la integració d'aqueixos fragments una vegada que hagen sigut descrits. A més, la proposta utilitza mecanismes d'interoperabilitat per a connectar dos llenguatges de modelatge diferents transformant la descripció dels fragments d'una manera no invasiva amb la seua estructura. Per tant, la nostra proposta pot enriquir els models de processos DPDM existents amb fragments de models que han sigut descrits amb un llenguatge diferent i açò, podria fer que els usuaris se senten segurs en adoptar models per a descriure contingut de domini específic i podria ajudar a adoptar processos DPDM. La proposta ha sigut validada en tres casos d'estudi amb diferents nivells de complexitat i dominis: sistemes per a la llar intel¿ligent, sistemes d'informació web i protocols biomecànics. Els resultats han demostrat l'aplicabilitat i viabilitat de la nostra proposta per a involucrar diferents tipus d'usuaris (usuaris finals amb professionals de programari, experts en el domini amb experts en desenvolupament de programari i, metges amb enginyers biomèdics, respectivament) en descripcions de models de processos DPDM existents utilitzant un llenguatge de modelatge diferent. / Pérez Pérez, MF. (2015). Achieving non-intrusive interoperability between models for involving users in modeling tasks [Tesis doctoral no publicada]. Universitat Politècnica de València. https://doi.org/10.4995/Thesis/10251/58429 / TESIS
33

Séparation des préoccupations en épidémiologie / Separation of concerns in epidemiology

Bui, Thi-Mai-Anh 09 December 2016 (has links)
La modélisation mathématique est largement utilisée pour effectuer des recherches sur la modélisation des maladies infectieuses. Combler le fossé entre les modèles conceptuels et leurs simulations est l'un des problèmes de la modélisation. Les langages métiers sont souvent utilisés pour addresser ces problèmes en séparant deux aspects de la modélisation : la spécification (modèles conceptuels) et la simulation (modèles informatiques). Dans cette perspective, nous développons un langage métier, appelé KENDRICK, dédié à la modélisation épidémiologique, couplé avec une plate-forme de simulation. Un autre problème de la modélisation en épidémiologie est le mélange des aspects de domaine qui doivent être séparés. Afin de faciliter l'écriture et l'évolution des modèles, il est crucial de pouvoir définir une préoccupation avec aussi peu de dépendances avec d'autres que possible et de pouvoir les combiner aussi librement que possible. Nous abordons ces défis en proposant un méta-modèle mathématique commun qui peut représenter les modèles ainsi que les préoccupations. Nous définissons ensuite les opérateurs qui permettent de combiner des préoccupations ainsi que de les appliquer dans un modèle. Le langage KENDRICK simplifie donc la programmation des simulations épidémiologiques en décomposant un modèle monolithique hautement-couplé en préoccupations modulaires. Cela rend alors plus facile la construction des modèles complexes de l'épidémiologie où plusieurs préoccupations sont considérées en même temps. / Mathematical and computational models have become widely used and demanded tools for examining mechanisms of transmission, exploring characteristics of epidemics, predicting future courses of an outbreak and evaluating strategies to find a best control-program. One of the problems of modelling is bridging the gap between conceptual models (i.e compartmental models of epidemiology) and their computer simulation (through deterministic, stochastic or agent-based implementation). Domain Specific Languages (DSLs) are often used to address such difficulties by separating two concerns of modelling, specification (conceptual model) and implementation (computational model). In this perspective, we develop a DSL called KENDRICK targeted to the epidemiological modelling and coupled with a simulation platform that allows the study of such models. The other important issue needs to be addressed in the context of epidemiological modelling is the heterogeneities introduced by separate concerns. In order to facilitate the specification of models and their evolution, it is crucial to be able to define concerns with as few dependencies with each other as possible and to combine them as freely as possible. We address such challenges by proposing a common mathematical meta-model that supports both concerns and models and enabling their compositions by some operators. We then implement our proposal language KENDRICK based on this meta-model. The language simplifies the construction of complex epidemiological models by decomposing them into modular concerns, by which common concerns can be reused across models and can be easily changed.
34

An Arrow Metalanguage for Partially Invertible Computation / Ett Arrow-metaspråk för partiellt inverterbar beräkning

Ågren Thuné, Anders January 2023 (has links)
Programming languages traditionally describe computations going one way: a program might compute a hash value from a string, or an encrypted message from a plaintext. However, sometimes it is also of interest to go the other way around: for encryption, we not only want to encrypt messages but also to decrypt them, and to be sure that the decryption correctly reproduces the original message. In an invertible programming language, a single program specifies two directions of a transformation, and the language guarantees that the two correspond as inverses. Invertible languages often require programs to be composed from atomic invertible fragments, a property known as local invertibility. This requirement has connections to applications such as low-energy and quantum computing. However, many invertible algorithms are more naturally expressed as depending unidirectionally on some inputs, e.g., the encryption key—this property is known as partial invertibility. Existing work largely lacks a systematic treatment of partial invertibility, and the connection to the locally invertible paradigm is not yet well-understood. In this thesis, we show that with the right design tradeoff, partial invertibility can be expressed within a locally invertible setting. We present KALPIS, a new functional language supporting expressive partial invertibility, yet maintaining a straightforward locally invertible semantics. This is made formal by a novel arrow combinator language RRARR, with primitives embodying functions, parameterized bijections, and interactions between the two. The formulation is based on recent work on effects in invertible computation, namely the irreversibility effect and the reversible reader. We substantiate the work with a prototype implementation of KALPIS, and demonstrate its utility through a number of nontrivial examples. Further, we give a complete formalization of the two systems, including the operational semantics and type system of KALPIS and a locally invertible interpretation and equational characterization of RRARR. Finally, we give a compositional translation from KALPIS into RRARR, motivating us to call it an arrow metalanguage. Most of the formalization is mechanized using the proof assistant Agda. / Programmeringsspråk beskriver traditionellt beräkningar som går åt ett håll: ett program kan till exempel beräkna ett hash-värde från en sträng eller ett krypterat meddelande från en klartext. Ibland är det dock även av intresse att gå åt andra hållet: vid kryptering vill vi inte bara kryptera meddelanden utan också avkryptera dem, och vara säkra på att avkrypteringen korrekt återskapar det ursprungliga meddelandet. I ett inverterbart programmeringsspråk beskriver ett enskilt program två riktningar av en transformation, och språket garanterar att de två motsvarar varandra som inverser. Inverterbara språk kräver ofta att program konstrueras från enskilt inverterbara komponenter, en egenskap som kallas lokal inverterbarhet. Denna egenskap har kopplingar till tillämpningar som lågenergioch kvantdatorer. Å andra sidan är det ofta naturligt att inverterbara algoritmer beror enkelriktat på vissa indata, till exempel krypteringsnyckeln—något som kallas partiell inverbarhet. Tidigare forskning saknar i stor utsträckning en systematisk behandling av partiell inverterbarhet, och kopplingen till lokal inverterbarhet är ännu inte välförstådd. I denna avhandling visar vi att med rätt designavvägning kan partiell inverterbarhet uttryckas ovanpå en lokalt inverterbar grund. Vi presenterar KALPIS, ett nytt funktionellt språk som stöder uttrycksfull partiell inverterbarhet, samtidigt som det bibehåller en enkel lokalt inverterbar semantik. Detta formaliseras genom ett nytt Arrow-kombinatorspråk RRARR, vars primitiver representerar funktioner, parameteriserade bijektioner och interaktioner mellan de två. Formuleringen baseras på ny forskning om sidoeffekter i inverterbar beräkning, nämligen irreversibilitetseffekten och reversible reader. Vi substantierar arbetet med en prototypimplementation av KALPIS och visar dess användbarhet genom ett antal icketriviala exempel. Dessutom ger vi en komplett formalisering av de två systemen, inklusive operativ semantik och typsystem för KALPIS och en lokalt inverterbar tolkning och ekvationskaraktärisering av RRARR. Slutligen ger vi en kompositionell översättning från KALPIS till RRARR, vilket motiverar oss att kalla det ett Arrow-metaspråk. Det mesta av formaliseringen är mekaniserad med hjälp av bevisassistenten Agda.
35

Test Automation for Grid-Based Multiagent Autonomous Systems

Entekhabi, Sina January 2024 (has links)
Traditional software testing usually comes with manual definitions of test cases. This manual process can be time-consuming, tedious, and incomplete in covering important but elusive corner cases that are hardly identifiable. Automatic generation of random test cases emerges as a strategy to mitigate the challenges associated with the manual test case design. However, the effectiveness of random test cases in fault detection may be limited, leading to increased testing costs, particularly in systems where test execution demands substantial resources and time. Leveraging the domain knowledge of test experts can guide the automatic random generation of test cases to more effective zones. In this thesis, we target quality assurance of multiagent autonomous systems and aim to automate test generation for them by applying the domain knowledge of test experts. To formalize the specification of the domain expert's knowledge, we introduce a small Domain Specific Language (DSL) for formal specification of particular locality-based constraints for grid-based multiagent systems. We initially employ this DSL for filtering randomly generated test inputs. Then, we evaluate the effectiveness of the generated test cases through an experiment on a case study of autonomous agents. Applying statistical analysis on the experiment results demonstrates that utilizing the domain knowledge to specify test selection criteria for filtering randomly generated test cases significantly reduces the number of potentially costly test executions to identify the persisting faults.  Domain knowledge of experts can also be utilized to directly generate test inputs with constraint solvers. We conduct a comprehensive study to compare the performance of filtering random cases and constraint-solving approaches in generating selective test cases across various test scenario parameters. The examination of these parameters provides criteria for determining the suitability of random data filtering versus constraint solving, considering the varying size and complexity of the test input generation constraint. To conduct our experiments, we use QuickCheck tool for random test data generation with filtering, and we employ Z3 for constraint solving. The findings, supported by observations and statistical analysis, reveal that test scenario parameters impact the performance of filtering and constraint-solving approaches differently. Specifically, the results indicate complementary strengths between the two approaches: random generation and filtering approach excels for the systems with a large number of agents and long agent paths but shows degradation in larger grid sizes and stricter constraints. Conversely, constraint solving approach demonstrates robust performance for large grid sizes and strict constraints but experiences degradation with increased agent numbers and longer paths. Our initially proposed DSL is limited in its features and is only capable of specifying particular locality-based constraints. To be able to specify more elaborate test scenarios, we extend that DSL based on a more intricate model of autonomous agents and their environment. Using the extended DSL, we can specify test oracles and test scenarios for a dynamic grid environment and agents having several attributes. To assess the extended DSL's utility, we design a questionnaire to gather opinions from several experts and also run an experiment to compare the efficiency of the extended DSL with the initially proposed one. The questionnaire results indicate that the extended DSL was successful in specifying several scenarios that the experts found more useful than the scenarios specified by the initial DSL. Moreover, the experimental results demonstrate that testing with the extended DSL can significantly reduce the number of test executions to detect system faults, leading to a more efficient testing process. / Safety of Connected Intelligent Vehicles in Smart Cities – SafeSmart
36

Application of software engineering methodologies to the development of mathematical biological models

Gill, Mandeep Singh January 2013 (has links)
Mathematical models have been used to capture the behaviour of biological systems, from low-level biochemical reactions to multi-scale whole-organ models. Models are typically based on experimentally-derived data, attempting to reproduce the observed behaviour through mathematical constructs, e.g. using Ordinary Differential Equations (ODEs) for spatially-homogeneous systems. These models are developed and published as mathematical equations, yet are of such complexity that they necessitate computational simulation. This computational model development is often performed in an ad hoc fashion by modellers who lack extensive software engineering experience, resulting in brittle, inefficient model code that is hard to extend and reuse. Several Domain Specific Languages (DSLs) exist to aid capturing such biological models, including CellML and SBML; however these DSLs are designed to facilitate model curation rather than simplify model development. We present research into the application of techniques from software engineering to this domain; starting with the design, development and implementation of a DSL, termed Ode, to aid the creation of ODE-based biological models. This introduces features beneficial to model development, such as model verification and reproducible results. We compare and contrast model development to large-scale software development, focussing on extensibility and reuse. This work results in a module system that enables the independent construction and combination of model components. We further investigate the use of software engineering processes and patterns to develop complex modular cardiac models. Model simulation is increasingly computationally demanding, thus models are often created in complex low-level languages such as C/C++. We introduce a highly-efficient, optimising native-code compiler for Ode that generates custom, model-specific simulation code and allows use of our structured modelling features without degrading performance. Finally, in certain contexts the stochastic nature of biological systems becomes relevant. We introduce stochastic constructs to the Ode DSL that enable models to use Stochastic Differential Equations (SDEs), the Stochastic Simulation Algorithm (SSA), and hybrid methods. These use our native-code implementation and demonstrate highly-efficient stochastic simulation, beneficial as stochastic simulation is highly computationally intensive. We introduce a further DSL to model ion channels declaratively, demonstrating the benefits of DSLs in the biological domain. This thesis demonstrates the application of software engineering methodologies, and in particular DSLs, to facilitate the development of both deterministic and stochastic biological models. We demonstrate their benefits with several features that enable the construction of large-scale, reusable and extensible models. This is accomplished whilst providing efficient simulation, creating new opportunities for biological model development, investigation and experimentation.
37

Compilation efficace d'applications de traitement d'images pour processeurs manycore / Efficient Compilation of Image Processing Applications for Manycore Processors

Guillou, Pierre 30 November 2016 (has links)
Nous assistons à une explosion du nombre d’appareils mobiles équipés de capteurs optiques : smartphones, tablettes, drones... préfigurent un Internet des objets imminent. De nouvelles applications de traitement d’images (filtres, compression, réalité augmentée) exploitent ces capteurs mais doivent répondre à des contraintes fortes de vitesse et d’efficacité énergétique. Les architectures modernes — processeurs manycore, GPUs,... — offrent un potentiel de performance, avec cependant une hausse sensible de la complexité de programmation.L’ambition de cette thèse est de vérifier l’adéquation entre le domaine du traitement d’images et ces architectures modernes : concilier programmabilité, portabilité et performance reste encore aujourd’hui un défi. Le domaine du traitement d’images présente un fort parallélisme intrinsèque, qui peut potentiellement être exploité par les différents niveaux de parallélisme offerts par les architectures actuelles. Nous nous focalisons ici sur le domaine du traitement d’images par morphologie mathématique, et validons notre approche avec l’architecture manycore du processeur MPPA de la société Kalray.Nous prouvons d’abord la faisabilité de chaînes de compilation intégrées, composées de compilateurs, bibliothèques et d’environnements d’exécution, qui à partir de langages de haut niveau tirent parti de différents accélérateurs matériels. Nous nous concentrons plus particulièrement sur les processeurs manycore, suivant les différents modèles de programmation : OpenMP ; langage flot de données ; OpenCL ; passage de messages. Trois chaînes de compilation sur quatre ont été réalisées, et sont accessibles à des applications écrites dans des langages spécifiques au domaine du traitement d’images intégrés à Python ou C. Elles améliorent grandement la portabilité de ces applications, désormais exécutables sur un plus large panel d’architectures cibles.Ces chaînes de compilation nous ont ensuite permis de réaliser des expériences comparatives sur un jeu de sept applications de traitement d’images. Nous montrons que le processeur MPPA est en moyenne plus efficace énergétiquement qu’un ensemble d’accélérateurs matériels concurrents, et ceci particulièrement avec le modèle de programmation flot de données. Nous montrons que la compilation d’un langage spécifique intégré à Python vers un langage spécifique intégré à C permet d’augmenter la portabilité et d’améliorer les performances des applications écrites en Python.Nos chaînes de compilation forment enfin un environnement logiciel complet dédié au développement d’applications de traitement d’images par morphologie mathématique, capable de cibler efficacement différentes architectures matérielles, dont le processeur MPPA, et proposant des interfaces dans des langages de haut niveau. / Many mobile devices now integrate optic sensors; smartphones, tablets, drones... are foreshadowing an impending Internet of Things (IoT). New image processing applications (filters, compression, augmented reality) are taking advantage of these sensors under strong constraints of speed and energy efficiency. Modern architectures, such as manycore processors or GPUs, offer good performance, but are hard to program.This thesis aims at checking the adequacy between the image processing domain and these modern architectures: conciliating programmability, portability and performance is still a challenge today. Typical image processing applications feature strong, inherent parallelism, which can potentially be exploited by the various levels of hardware parallelism inside current architectures. We focus here on image processing based on mathematical morphology, and validate our approach using the manycore architecture of the Kalray MPPA processor.We first prove that integrated compilation chains, composed of compilers, libraries and run-time systems, allow to take advantage of various hardware accelerators from high-level languages. We especially focus on manycore processors, through various programming models: OpenMP, data-flow language, OpenCL, and message passing. Three out of four compilation chains have been developed, and are available to applications written in domain-specific languages (DSL) embedded in C or Python. They greatly improve the portability of applications, which can now be executed on a large panel of target architectures.Then, these compilation chains have allowed us to perform comparative experiments on a set of seven image processing applications. We show that the MPPA processor is on average more energy-efficient than competing hardware accelerators, especially with the data-flow programming model. We show that compiling a DSL embedded in Python to a DSL embedded in C increases both the portability and the performance of Python-written applications.Thus, our compilation chains form a complete software environment dedicated to image processing application development. This environment is able to efficiently target several hardware architectures, among them the MPPA processor, and offers interfaces in high-level languages.
38

Aplicação da análise de mutantes no contexto do teste e validação de redes de Petri coloridas" / The application of mutation testing in the context of testing and validation of coloured Petri nets

Simão, Adenilso da Silva 17 December 2004 (has links)
O uso de técnicas e métodos formais contribui para o desenvolvimento de sistemas confiáveis. No entanto, apesar do rigor obtido, em geral, é necessário que essas técnicas sejam complementadas com atividades de teste e validação. Deve-se ressaltar que o custo para eliminar erros encontrados nas etapas iniciais de desenvolvimento é menor do que quando esses erros são encontrados nas fases posteriores. Dessa forma, é essencial a condução de atividades de VV&T - Verificação, Validação e Teste - desde as primeiras fases de desenvolvimento. Critérios de teste, como uma forma sistemática de avaliar e/ou gerar casos de teste de qualidade e, dessa forma, contribuir para aumentar a qualidade da atividade de teste, têm sido investigados para o teste de especificação de Sistemas Reativos. A técnica Redes de Petri Coloridas tem sido constantemente utilizada para a especificação do aspecto comportamental de Sistemas Reativos. Apesar de existirem diversas técnicas de análise, um aspecto não considerado é a cobertura alcançada, visto que, em geral, a aplicação exaustiva não é viável devido ao alto custo. Considerando a relevância do estabelecimento de métodos sistemáticos para o teste e validação dessas especificações, este trabalho propõe a aplicação do critério de teste Análise de Mutantes para o teste de Redes de Petri Coloridas. Neste trabalho foram almejados três objetivos principais, os quais podem ser divididos em estudos teóricos, estudos empíricos e automatização. No contexto de estudos teóricos, foi realizada a definição e embasamento teórico para possibilitar a aplicação da Análise de Mutantes no contexto de Redes de Petri Coloridas. Além disso, investigaram-se mecanismos genéricos para a descrição e geração de mutantes. Definiu-se um algoritmo para a geração de casos de teste baseado na Análise de Mutantes. No contexto de estudos empíricos, foram conduzidos estudos de caso para avaliar a aplicabilidade e eficácia dos resultados teóricos obtidos. Finalmente, no contexto de automatização, foram desenvolvidas ferramentas de apoio à aplicação da Análise de Mutantes. / The usage of formal methods and techniques contributes to the development of highly reliable system, but, in spite of the achieved rigour, these techniques must be complemented with testing and validation activities. It should be highlighted that the cost to eliminate errors found in the early phases of development is smaller than when those errors are found in the later phases. Therefore, the accomplishment of VV&T activities - Verification, Validation and Test - starting at the first development phases is essential. Testing criteria, as a systematic way to evaluate and/or generate test cases, contributing, therefore, to improve the quality of the test activity, have been proposed for testing reactive systems specifications. A technique that has been steadily employed for specifying the behavioural aspect of reactive systems is the coloured Petri nets. Although there are several analysis and validation techniques, a usually neglected aspect is the achieved coverage, given that, in general, the exhaustive application is not feasible due to its high cost. Considering the relevance of establishing systematic methods for the test and validation of coloured Petri nets based specification, this work proposes the investigation of the viability of applying Mutation Testing to test coloured Petri nets. In this work three main goals were pursued, which can be grouped in: theoretical studies, empirical studies and tool development. In the context of theoretical studies, it was accomplished the definition of theoretical concepts to enable the application of Mutant Analysis in the context of coloured Petri nets. Moreover, a mutation-based algorithm was defined to generate test sequences for Petri nets. In the context of empirical studies, case studies were carried out to evaluate the applicability and effectiveness of the achieved theoretical results. Finally, in the context of tool development, tools for supporting the application of Mutation Testing were developed.
39

Description of languages based on object-oriented meta-modelling

Scheidgen, Markus 19 May 2009 (has links)
In dieser Dissertation, schaue ich auf objekt-orientierte Metamodellierung und wie sie verwendet werden kann, um Computersprachen zu beschreiben. Dabei, fokussiere ich mich nicht nur auf die Beschreibung von Sprachen, sondern auch auf die Verwendung von Sprachbeschreibungen zur automatischen Erzeugung von Sprachwerkzeugen aus Sprachbeschreibungen. Ich nutze die Idee von Metasprachen und Metawerkzeugen. Metasprachen werden verwendet um bestimmte Sprachaspekte, wie Notationen und Semantiken, zu beschreiben, und Metawerkzeuge werden verwendet um Sprachwerkzeuge wie Editoren und Interpreter aus entsprechenden Beschreibungen zu erzeugen. Diese Kombination von Beschreibung und automatischer Entwicklung von Werkzeugen ist als Domänenspezifische Modellierung (DSM) bekannt. Ich verwende DSM basierend auf objekt-orientierter Metamodellierung zur Beschreibung der wichtigen Aspekte ausführbarer Computersprachen. Ich untersuche existierende Metasprachen und Metawerkzeuge für die Beschreibung von Sprachvorkommen, ihrer konkreten Repräsentation und Semantik. Weiter, entwickle ich eine neue Plattform zur Beschreibung von Sprachen basierend auf dem CMOF-Modell der OMG MOF 2.x Empfehlungen. Ich entwickle eine Metasprache und Metawerkzeug für textuelle Notationen. Schlussendlich, entwickle ich eine graphische Metasprache und Metawerkzeug zur Beschreibung von operationaler Semantik von Computersprachen. Um die Anwendbarkeit der vorgestellten Techniken zu prüfen, nehme ich SDL, die Specification and Description Language, als einen Archetypen für textuell notierte Sprachen mit ausführbaren Instanzen. Für diesen Archetyp zeige ich, dass die präsentierten Metasprachen und Metawerkzeuge es erlauben solche Computersprachen zu beschreiben und automatisch Werkzeuge für diese Sprachen zu erzeugen. / In this thesis, I look into object-oriented meta-modelling and how it can be used to describe computer languages. Thereby, I do not only focus on describing languages, but also on utilising the language descriptions to automatically create language tools from language descriptions. I use the notion of meta-languages and meta-tools. Meta-languages are used to describe certain language aspects, such as notation or semantics, and meta-tools are used to create language tools, such as editors or interpreters, from corresponding descriptions. This combination of describing and automated development of tools is known as domain specific modelling (DSM). I use DSM based on object-oriented meta-modelling to describe all important aspects of executable computer languages. I look into existing meta-languages and meta-tools for describing language utterances, their concrete representation, and semantics. Furthermore, I develop a new platform to define languages based on the CMOF-model of the OMG MOF 2.x recommendations. I develop a meta-language and meta-tool for textual language notations. Finally, I develop a new graphical meta-language and meta-tool for describing the operational semantics of computer languages. To prove the applicability of the presented techniques, I take SDL, the Specification and Description Language, as an archetype for textually notated languages with executable instances. For this archetype, I show that the presented meta-languages and meta-tools allow to describe such computer languages and allow to automatically create tools for those languages.
40

Model transformation languages for domain-specific workbenches

Wider, Arif 15 December 2015 (has links)
Domänenspezifische Sprachen (DSLs) sind Software-Sprachen, die speziell für bestimmte Anwendungsdomänen entwickelt wurden. Mithilfe von DSLs können Domänenexperten ihr Domänenwissen auf einem hohen Abstraktionsniveau beschreiben. Wie andere Software-Sprachen auch, benötigen DSLs Sprachwerkzeuge, die Assistenz bei der Erstellung und Verarbeitung von domänenspezifischen Modellen bieten. Eine domänenspezifische Werkbank (DSW) ist ein Software-Werkzeug, welches mehrere solcher Sprachwerkzeuge für eine DSL miteinander integriert. Existierende Werkzeuge, die es erlauben eine DSW aufgrund der Beschreibung einer DSL automatisch generieren zu lassen, unterstützen jedoch nicht die Beschreibung und Generierung von editierbaren Sichten. Eine Sicht ist ein Teil einer DSW, der nur einen bestimmten Aspekt eines Modells darstellt. Diese Dissertation stellt spezielle Modelltransformationssprachen (MTLs) vor, mit denen die Synchronisation von Sichten in einer generierten DSW beschrieben werden kann. Dadurch können DSWs mit editierbaren Sichten mittels existierender Werkzeuge zur Generierung von Sprachwerkzeugen erstellt werden. Dafür wird eine DSW für die Nanophysik-Domäne sowie eine Taxonomie von Synchronisationstypen vorgestellt, welche es erlaubt genau zu bestimmen, welche Art von Modelltransformationen für die Synchronisation von Sichten in dieser Werkbank benötigt werden. Entsprechend dieser Anforderungen werden zwei MTLs entwickelt. Insbesondere wird eine bidirektionale MTL entwickelt. Mit solch einer Sprache kann man eine Relation, welche definiert ob zwei Modelle synchron sind, so beschreiben, dass die entsprechende Synchronisationslogik automatisch abgeleitet werden kann. Die gezeigten MTLs werden als interne DSLs - das heißt eingebettet als ausdrucksstarke Bibliotheken - in der Programmiersprache Scala implementiert. Auf diese Weise kann Scalas Typprüfung genutzt werden, um Transformationen und deren Komposition statisch zu verifizieren. / Domain-specific languages (DSLs) are software languages which are tailored to a specific application domain. DSLs enable domain experts to create domain-specific models, that is, high-level descriptions of domain knowledge. As any other software languages, DSLs rely on language tools which provide assistance for processing and managing domain-specific models. A domain-specific workbench is an integrated set of such tools for a DSL. A recently proposed approach is to automatically generate a domain-specific workbench for a DSL from a description of that DSL. However, existing tools which apply this approach do not support to describe and generate editable domain-specific views. A view is a part of domain-specific workbench that presents only one aspect of a model, for example, its hierarchical structure. This dissertation presents special model transformation languages which support the description of view synchronization in a generated domain-specific workbench. This allows a multi-view domain-specific workbench to be created with existing tools for language tool generation. We present a generated domain-specific workbench for the nanophysics domain and present a taxonomy of synchronization types. This allows us to precisely define what model transformations are required for view synchronization in that workbench. According to these requirements, we develop two transformation languages by adapting existing ones. In particular, we develop a bidirectional transformation language. With such a language one can describe a relation which defines whether two models are in sync and let the synchronization logic be inferred automatically. We implement model transformation languages as internal DSLs - that is, embedded as expressive libraries - in the Scala programming language and use Scala''s type checking for static verification of transformations and their composition.

Page generated in 0.0931 seconds