Spelling suggestions: "subject:"comain byspecific"" "subject:"comain specifific""
181 |
Methodology for the derivation of product behaviour in a Software Product LineIstoan, Paul 21 February 2013 (has links) (PDF)
The major problem addressed in this thesis is the definition of a new SPLE methodology that covers both phases of the SPLE process and focuses on the derivation of behavioral models of SPL products. In Chapter 2 three research areas scope context of this thesis: Software Product Lines, Business Processes, and Model-Driven Engineering. Throughout Chapter 3, we propose a new SPLE methodology that focuses on the derivation of product behavior. We first describe the main flow of the methodology, and then detail the individual steps. In chapter 4 we propose a new domain specific language called CBPF created for modeling composable business process fragments. A model driven approach is followed for creating CBPF: definition of the abstract syntax, graphical concrete syntax and translational semantics. In Chapter 5 we propose several types of verifications that can be applied to business processfragments to determine their "correctness". For structural verification we definine a set of fragment consistency rules that should be valid for every business process fragment created with CBPF. To check behavioral correctness we first transform the business process fragment into an equivalent HCPN. We can then check generic properties but also define aset of fragment specific properties. In chapter 6 we exemplify the proposed SPL methodology by applying it to a case study from the crisis management system domain. We also propose a tool suite that supports our methodology. Chapter 7 describes possible improvements and extensions to the contributions of this thesis. We conclude the thesis in Chapter 8 and draw some conclusions.
|
182 |
Modeliais grįsto programų kūrimo metodo taikymas dokumentų valdymo sistemų kūrime / Using model driven development in the creation of document management systemsVaitkevičius, Laurius 08 September 2009 (has links)
Modeliais grįstas programų kūrimas yra vienas naujausių abstrakcijos pakėlimo būdų programų kūrimo procese. Jis kai kuriais atvejais leidžia pagreitinti programų kūrimo procesą net iki 10 kartų. Šiame darbe analizuojamas dviejų modeliais grįstų metodų taikymas dokumentų valdymo sistemų kūrime – tai apibendrinta modeliais grįsta architektūra (MDA) ir dalykinei sričiai specifinis modeliavimas (DSM). Darbe rasite tiek teorinius šios temos aspektus, tiek ir praktinius bandymus. Teorinėje dalyje apibrėžta dokumentų valdymo sistema – jos pagrindinės funkcijos bei savybės. Taip pat išskirti pagrindiniai modeliais grįstų metodų privalumai ir trūkumai. Praktinių bandymų metu atsiskleidžia tikroji metodams skirtų palaikyti įrankių vertė. MDA įrankių atveju realiai pamatysite, kokios pagalbos galima laukti iš jų spartinant programų kūrimą. Tuo tarpu analizuojant DSM galimybes buvo sukurtas pilnai funkcionuojantis įrankis skirtas dokumentų valdymo sistemoms kurti, kuris leidžia sumodeliuoti dokumentų valdymo sistemų duomenų sluoksnį, sugeneruoti jo kodą bei duomenų bazių schemą. DSL kalbos kūrimo žingsnių aprašymas gali būti naudojamas kaip pagrindas kitų dalykinių sričių kalbų kūrimui, o sukurta kalba gali būti praplėsta iki tokio lygio, kokio reikia, ir naudojama dokumentų valdymo sistemų kūrime. / Model Driven Development is one of the newest ways to increase level of abstraction in software development process. In some cases it allows to increase productivity up to 10 times. This work analyzes usage of two model driven methods in the creation of document management systems. They are, unified Model Driven Architecture (MDA) and Domain Specific Modeling (DSM). You will find both, theoretical and practical aspects of this topic. Theoretical part consists of a definition of document management system, its functions and characteristics. It also contains main advantages and drawbacks of model driven methods. During practical experiments the real value of method supporting tools is revealed. In case of MDA tools, you will see what help can you expect while increasing productivity. Whereas while analyzing DSM possibilities the fully functional tool for modeling document systems was created. It allows creating a model of a data layer, generating its source code and database scheme. The description of DSL creation steps can be used as a base for other domains, and created language can be extended as much as needed and used to create document management systems.
|
183 |
CALV3 - Uma linguagem espec?fica de dom?nio para seguran?a em sistemas corporativos: um estudo de caso sistem?tico na ind?striaDantas, George Henrique Costa 06 August 2012 (has links)
Made available in DSpace on 2014-12-17T15:48:04Z (GMT). No. of bitstreams: 1
GeorgeHCD_DISSERT.pdf: 1498112 bytes, checksum: 47b708a57a0944475a3489af84029df2 (MD5)
Previous issue date: 2012-08-06 / The academic community and software industry have shown, in recent years,
substantial interest in approaches and technologies related to the area of model-driven
development (MDD). At the same time, continues the relentless pursuit of industry for
technologies to raise productivity and quality in the development of software products. This
work aims to explore those two statements, through an experiment carried by using MDD
technology and evaluation of its use on solving an actual problem under the security context
of enterprise systems. By building and using a tool, a visual DSL denominated CALV3,
inspired by the software factory approach: a synergy between software product line, domainspecific
languages and MDD, we evaluate the gains in abstraction and productivity through a
systematic case study conducted in a development team. The results and lessons learned from
the evaluation of this tool within industry are the main contributions of this work / A comunidade acad?mica e a ind?stria de software t?m demonstrado, nos ?ltimos
anos, bastante interesse em abordagens e tecnologias ligadas ? ?rea de desenvolvimento
dirigido por modelos (MDD). Em paralelo a isto, continua a busca incessante da ind?stria por
tecnologias que aumentem a produtividade e qualidade no desenvolvimento de produtos de
software. Esta pesquisa visa explorar estas duas afirma??es, atrav?s de um trabalho que usa
uma tecnologia MDD e avalia seu uso na resolu??o de um problema real no contexto de
seguran?a de sistemas corporativos. Com a constru??o e uso de uma ferramenta, uma DSL
visual denominada CALV3, inspirada na abordagem de F?bricas de Software: uma sinergia
entre linha de produto de software, linguagens espec?ficas de dom?nio e MDD, avaliamos os
ganhos em abstra??o e produtividade, atrav?s de um estudo de caso sistem?tico conduzido em
uma equipe de desenvolvimento. Os resultados e li??es aprendidas com a avalia??o desta
ferramenta no ?mbito industrial s?o uma das principais contribui??es deste trabalho
|
184 |
Automatic Optimization of Geometric Multigrid Methods using a DSL ApproachVasista, Vinay V January 2017 (has links) (PDF)
Geometric Multigrid (GMG) methods are widely used in numerical analysis to accelerate the convergence of partial differential equations solvers using a hierarchy of grid discretizations. These solvers find plenty of applications in various fields in engineering and scientific domains, where solving PDEs is of fundamental importance. Using multigrid methods, the pace at which the solvers arrive at the solution can be improved at an algorithmic level. With the advance in modern computer architecture, solving problems with higher complexity and sizes is feasible - this is also the case with multigrid methods. However, since hardware support alone cannot achieve high performance in execution time, there is a need for good software that help programmers in doing so.
Multiple grid sizes and recursive expression of multigrid cycles make the task of manual program optimization tedious and error-prone. A high-level language that aids domain experts to quickly express complex algorithms in a compact way using dedicated constructs for multigrid methods and with good optimization support is thus valuable. Typical computation patterns in a GMG algorithm includes stencils, point-wise accesses, restriction and interpolation of a grid. These computations can be optimized for performance on modern architectures using standard parallelization and locality enhancement techniques.
Several past works have addressed the problem of automatic optimizations of computations in various scientific domains using a domain-specific language (DSL) approach. A DSL is a language with features to express domain-specific computations and compiler support to enable optimizations specific to these computations. Halide and PolyMage are two of the recent works in this direction, that aim to optimize image processing pipelines. Many computations like upsampling and downsampling an image are similar to interpolation and restriction in geometric multigrid methods.
In this thesis, we demonstrate how high performance can be achieved on GMG algorithms written in the PolyMage domain-specific language with new optimizations we added to the compiler. We also discuss the implementation of non-trivial optimizations, on PolyMage compiler, necessary to achieve high parallel performance for multigrid methods on modern architectures. We realize these goals by:
• introducing multigrid domain-specific constructs to minimize the verbosity of the algorithm specification;
• storage remapping to reduce the memory footprint of the program and improve cache locality exploitation;
• mitigating execution time spent in data handling operations like memory allocation and freeing, using a pool of memory, across multiple multigrid cycles; and
• incorporating other well-known techniques to leverage performance, like exploiting multi-dimensional parallelism and minimizing the lifetime of storage buffers.
We evaluate our optimizations on a modern multicore system using five different benchmarks varying in multigrid cycle structure, complexity and size, for two-and three-dimensional data grids. Experimental results show that our optimizations:
• improve performance of existing PolyMage optimizer by 1.31x;
• are better than straight-forward parallel and vector implementations by 3.2x;
• are better than hand-optimized versions in conjunction with optimizations by Pluto, a state-of-the-art polyhedral source-to-source optimizer, by 1.23x; and
• achieve up to 1.5$\times$ speedup over NAS MG benchmark from the NAS Parallel Benchmarks.
(The speedup numbers are Geometric means over all benchmarks)
|
185 |
Falcon : A Graph Manipulation Language for Distributed Heterogeneous SystemsCheramangalath, Unnikrishnan January 2017 (has links) (PDF)
Graphs model relationships across real-world entities in web graphs, social network graphs, and road network graphs. Graph algorithms analyze and transform a graph to discover graph properties or to apply a computation. For instance, a pagerank algorithm computes a rank for each page in a webgraph, and a community detection algorithm discovers likely communities in a social network, while a shortest path algorithm computes the quickest way to reach a place from another, in a road network. In Domains such as social information systems, the number of edges can be in billions or trillions. Such large graphs are processed on distributed computer systems or clusters.
Graph algorithms can be executed on multi-core CPUs, GPUs with thousands of cores, multi-GPU devices, and CPU+GPU clusters, depending on the size of the graph object. While programming such algorithms on heterogeneous targets, a programmer is required to deal with parallelism and and also manage explicit data communication between distributed devices. This implies that a programmer is required to learn CUDA, OpenMP, MPI, etc., and also the details of the hardware architecture. Such codes are error prone and di cult to debug. A Domain Speci c Language (DSL) which hides all the hardware details and lets the programmer concentrate only the algorithmic logic will be very useful.
With this as the research goal, Falcon, graph DSL and its compiler have been developed. Falcon programs are explicitly parallel and Falcon hides all the hardware details from the programmer. Large graphs that do not t into the memory of a single device are automatically partitioned by the Falcon compiler. Another feature of Falcon is that it supports mutation of graph objects and thus enables programming dynamic graph algorithms. The Falcon compiler converts a single DSL code to heterogeneous targets such as multi-core CPUs, GPUs, multi-GPU devices, and CPU+GPU clusters. Compiled codes of Falcon match or outperform state-of-the-art graph frameworks for di erent target platforms and benchmarks.
|
186 |
Réseaux de Petri temporels à inhibitions / permissions : application à la modélisation et vérification de systèmes de tâches temps réel / Forbid/Allow time Petri nets – Application to the modeling and checking of real time tasks systemsPeres, Florent 26 January 2010 (has links)
Les systèmes temps réel (STR) sont au coeur de machines souvent jugés critiques pour lasécurité : ils en contrôlent l’exécution afin que celles-ci se comportent de manière sûre dans le contexte d’un environnement dont l’évolution peut être imprévisible. Un STR n’a d’autre alternative que de s’adapter à son environnement : sa correction dépend des temps de réponses aux stimuli de ce dernier.Il est couramment admis que le formalisme des réseaux de Petri temporels (RdPT) est adapté àla description des STR. Cependant, la modélisation de systèmes simples, ne possédant que quelquestˆaches périodiques ordonnancées de façon basique se révèle être un exercice souvent complexe.En premier lieu, la modélisation efficace d’une gamme étendue de politiques d’ordonnancementsse heurte à l’incapacité des RdPT à imposer un ordre d’apparition à des évènements concurrentssurvenant au même instant. D’autre part, les STR ont une nette tendance à être constitués de caractéristiques récurrentes, autorisant une modélisation par composants. Or les RdPT ne sont guèreadaptés à une utilisation compositionnelle un tant soit peu générale. Afin de résoudre ces deuxproblèmes, nous proposons dans cette thèse Cifre – en partenariat entre Airbus et le Laas-Cnrs– d’étendre les RdPT à l’aide de deux nouvelles relations, les relations d’inhibition et de permission,permettant de spécifier de manière plus fine les contraintes de temps.Afin de cerner un périmètre clair d’adéquation de cette nouvelle extension à la modélisation dessystèmes temps réel, nous avons défini Pola, un langage spécifique poursuivant deux objectifs :déterminer un sous-ensemble des systèmes temps réel modélisables par les réseaux de Petri temporelsà inhibitions/permissions et fournir un langage simple à la communauté temps réel dont lavérification, idéalement automatique, est assurée par construction. Sa sémantique est donnée par traduction en réseaux de Petri temporels à inhibitions/permissions. L’explorateur d’espace d’états de laboite à outils Tina a été étendu afin de permettre la vérification des descriptions Pola / Real time systems (RTS) are at the core of safety critical devices : they control thedevices’ behavior in such a way that they remain safe with regard to an unpredictable environment. ARTS has no other choices than to adapt to its environment : its correctness depends upon its responsetime to the stimuli stemming from the environment.It is widely accepted that the Time Petri nets (TPN) formalism is adapted to the description ofRTS. However, the modeling of simple systems with only a few periodic tasks scheduled according toa basic policy remains a challenge in the worst case and can be very tedious in the most favorable one.First, we put forward some limitations of TPN regarding the modeling of a wide variety of schedulingpolicies, coming from the fact that this formalism is not always capable to impose a givenorder on events whenever they happen at the same time. Moreover, RTS are usually constituted of thesame recurring features, implying a compositional modeling, but TPN are not well adapted to sucha compositional use. To solve those problems we propose in this Cifre thesis – in partnership withAirbus and the Laas-Cnrs – to extend the formalism with two new dual relations, the forbid andallow relations so that time constraints can be finely tuned.Then, to assess this new extension for modeling of real time systems, we define Pola, a specificlanguage aimed at two goals : to determine a subset of RTS which can be modeled with forbid/allowtime Petri nets and to provide a simple language to the real time community which, ideally, can bechecked automatically. Its semantics is given by translation into forbid/allow Time Petri nets. Thestate space exploration tool of the Tina toolbox have been extended so that it can model check Poladescriptions.
|
187 |
Polymage : Automatic Optimization for Image Processing PipelinesMullapudi, Ravi Teja January 2015 (has links) (PDF)
Image processing pipelines are ubiquitous. Every image captured by a camera and every image uploaded on social networks like Google+or Facebook is processed by a pipeline. Applications in a wide range of domains like computational photography, computer vision and medical imaging use image processing pipelines. Many of these applications demand high-performance which requires effective utilization of modern architectures. Given the proliferation of camera enabled devices and social networks optimizing these emerging workloads has become important both at the data center and the embedded device scales.
An image processing pipeline can be viewed as a graph of interconnected stages which process images successively. Each stage typically performs one of point-wise, stencil, sam-pling, reduction or data-dependent operations on image pixels. Individual stages in a pipeline typically exhibit abundant data parallelism that can be exploited with relative ease. However, the stages also require high memory bandwidth preventing effective uti-lization of parallelism available on modern architectures. The traditional options are using optimized libraries like OpenCV or to optimize manually. While using libraries precludes optimization across library routines, manual optimization accounting for both parallelism and locality is very tedious.
Inthisthesis,wepresentthedesignandimplementationofPolyMage,adomain-specific language and compiler for image processing pipelines. The focus of the system is on au-tomatically generating high-performance implementations of image processing pipelines expressed in a high-level declarative language. We achieve such automation with:
• tiling techniques to improve parallelism and locality by introducing redundant computation,
v
a model-driven fusion heuristic which enables a trade-off between locality and re-dundant computations, and anautotuner whichleveragesthefusionheuristictoexploreasmallsubsetofpipeline implementations and find the best performing one.
Our optimization approach primarily relies on the transformation and code generation ca-pabilities of the polyhedral compiler framework. To the best of our knowledge, this is the first model-driven compiler for image processing pipelines that performs complex fusion, tiling, and storage optimization fully automatically. We evaluate our framework on a modern multicore system using a set of seven benchmarks which vary widely in structure and complexity. Experimental results show that the performance of pipeline implementations generated by our approach is:
• up to 1.81× better than pipeline implementations manually tuned using Halide, a state-of-the-art language and compiler for image processing pipelines,
• on average 5.39× better than pipeline implementations automatically tuned using Halide and OpenTuner, and
• on average 3.3× better than naive pipeline implementations which only exploit par-allelism without optimizing for locality.
We also demonstrate that the performance of PolyMage generated code is better or compa-rable to implementations using OpenCV, a state-of-the-art image processing and computer vision library.
|
188 |
Abordagem para criação de linguagens específicas de domínio para robótica móvelConrado, Daniel Bruno Fernandes 12 November 2012 (has links)
Made available in DSpace on 2016-06-02T19:06:01Z (GMT). No. of bitstreams: 1
4765.pdf: 5526051 bytes, checksum: eca7635e3ad1f0a28a9f3871c97aac57 (MD5)
Previous issue date: 2012-11-12 / Universidade Federal de Sao Carlos / Autonomous mobile robots are machines capable of executing repetitive/dangerous tasks more efficiently. Most of them have an embedded software which is responsible for their execution. Over the last years, the complexity of these applications has continuously growing and they are presenting challenges that are uncommon to traditional information systems development. Therefore, any technique that can support their development is a great contribution. A technique that improves the productivity is to use domain-specific languages (DSLs). These are modeling and programming languages whose constructs are concepts and abstractions of a particular domain. It frees developers from worrying about generic programming concepts (classes, objects, attributes, etc.) and allows them to focus on the problem to be solved. As creating a DSL is not a trivial task and pointing the idiosyncrasies of mobile robots, this dissertation presents an approach for engineering DSLs to mobile robots. The aim is to make the activity of creating DSLs to this domain more systematic and controlled. In this approach, an application is taken as input and a series of domain statements is extracted from it. These statements are classified into categories and each one of them are analized in order to extract commonalities and variabilities, wich are transformed into components of a DSL. An important characteristic of the approach is that it asks for just one application to reach a first version of a running DSL. We suggest that the same DSL can be evolved just by applying the approach again using another application as input. So new components could be created and the existing ones could be modified. We also present a generic language model providing a foundation architecture that allows one to easily create new DSLs by extending it. Two proofs of concept are presented in order to exemplify the application of our approach. / Robôs móveis autônomos são máquinas com potencial para realizar atividades repetitivas ou de alta periculosidade com mais eficácia. Muitos possuem um software embarcado responsável pelo seu funcionamento. Nos últimos anos, a complexidade dessas aplicações robóticas embarcadas tem crescido continuamente e apresentam desafios que são incomuns ao desenvolvimento dos tradicionais sistemas de informação. Portanto, toda técnica que dê suporte a esse tipo de desenvolvimento pode contribuir significativamente. Uma técnica que permite o aumento de produtividade é a utilização de linguagens específicas de domínio (DSLs). Essas são linguagens de modelagem e programação cujas construções são conceitos e abstrações de um domínio de aplicação em particular. Isso desobriga o desenvolvedor de se preocupar com conceitos genéricos de programação (classes, objetos, atributos, etc.) para focar-se no problema a ser resolvido. Como o desenvolvimento de uma DSL não é uma tarefa trivial e tendo em vista as idiossincrasias dos robôs móveis autônomos, esta dissertação apresenta uma abordagem para construção de DSLs para robôs móveis. O objetivo é deixar mais sistemática e controlada a criação de DSLs para esse domínio. Nessa abordagem, uma aplicação é tomada como entrada e dela extraem-se declarações a respeito do domínio. Essas declarações são categorizadas e, para cada categoria, são levantadas partes comuns e variáveis. Então, essas partes são transformadas em componentes de uma DSL. Uma característica importante da abordagem apresentada é que uma versão inicial da DSL pode ser alcançada tendo apenas uma aplicação como base. Sugere-se que essa mesma DSL possa evoluir pela reaplicação da abordagem tendo uma nova aplicação como entrada. Dessa forma, novos componentes podem ser criados e os existentes, modificados. Também é apresentado um modelo genérico de linguagem que fornece uma arquitetura básica, permitindo que novas DSLs sejam facilmente construídas pela extensão da mesma. Duas provas de conceito são apresentadas com a intenção de exemplificar a aplicação da abordagem.
|
189 |
Desenvolvimento de uma DSL para a gerência de configuração de um sistema de gerenciamento integrado de redesPieroni, Rosangela 27 October 2014 (has links)
Made available in DSpace on 2016-06-02T19:06:19Z (GMT). No. of bitstreams: 1
6469.pdf: 4680875 bytes, checksum: 348ed33838e264f70033e8383aeaa100 (MD5)
Previous issue date: 2014-10-27 / The integrated network management system aims to manage the telecommunications network, regardless of network elements technology in order to identify the causes of problems, providing a more assertive decision making to remedy these problems and make the network available and operational. Thus, can to cater to the market that is increasingly demanding with the level of quality telecommunications products and services. Given this need, integrated networks management system belongs to a real company needs to respond quickly to customers' expectations with respect to requests for new functions system, and perform technology upgrades periodically. However, the integrated network management system development use centered-source technologies, and it requires great effort and hinders reuse. In this context, this master's project presents a proposal to facilitate the integrated network management system development using the techniques of MDD (Model Driven Development). MDD emphasizes the use of models in software development. These models specify the rules of business domain at a high level of abstraction, i.e., regardless of the programming language and to run the software platform. With appropriate computational tools transformations of models in the source code are performed. The use of MDD can provide software reuse procedurally, enabling faster development, lower cost, produce a flexible software and enable faster modifications. To apply MDD approach, a Domain Specific Language (DSL) for the configuration management of integrated network management system setting is designed to facilitate the inclusion of a new technology to be managed by the system, while providing faster development and with fewer errors of code. To evaluate the proposal, an experiment was conducted with the participation of software developers that know the system and work in this real company. The results showed that according to the descriptive analyses there was a reduction in the time spent in application development when it was used DSL compared to the specialization of classes. However, hypotheses tests showed no such reduction. The insertion of errors in the code occurred only in applications developed using specialization classes. The use of DSL provided a broader view of the business rule and you do not need knowledge of the programming language, once the code was automatically generated. / Um sistema de gerenciamento integrado de redes tem o objetivo de gerenciar uma rede de telecomunicações, independentemente da tecnologia dos elementos de rede, a fim de identificar as causas de problemas, proporcionando a tomada de decisão mais assertiva para saná-los e deixar a rede disponível e operacional. Dessa forma, o mercado que está cada vez mais exigente com o nível de qualidade dos produtos e serviços de telecomunicações é atendido. Diante dessa necessidade, o sistema de gerenciamento integrado de redes de uma empresa real precisa atender rapidamente às expectativas dos clientes com relação às solicitações de novas funções do sistema, assim como realizar atualizações tecnológicas periodicamente. Porém, o desenvolvimento do sistema de gerenciamento integrado de redes dessa empresa utiliza tecnologias centradas em código-fonte, o que implica em grande esforço e dificulta a sua reutilização. Neste contexto, este projeto de mestrado apresenta uma proposta para facilitar o desenvolvimento do sistema de gerenciamento integrado de redes utilizando as técnicas de MDD (Desenvolvimento Dirigido a Modelos). MDD enfatiza a utilização de modelos no desenvolvimento do software. Esses modelos especificam as regras de negócio de domínio em um alto nível de abstração, ou seja, independentemente da linguagem de programação e da plataforma de execução do software. Com ferramentas computacionais adequadas são realizadas as transformações dos modelos em código-fonte. A utilização de MDD pode proporcionar reúso de software de forma processual, possibilitar um desenvolvimento mais rápido, com menor custo, produzir um software flexível e possibilitar modificações mais rapidamente. Para aplicar a abordagem de MDD, uma linguagem específica de domínio (DSL) para a gerência de configuração do sistema de gerenciamento integrado de redes foi desenvolvida. Tem como objetivo facilitar a inclusão de uma nova tecnologia a ser gerenciada pelo sistema e ao mesmo tempo proporcionar um desenvolvimento mais rápido, com menos erros de código. Para avaliar a proposta foi realizado um experimento com a participação dos atuais desenvolvedores de software de uma empresa real. Os resultados obtidos mostraram que, segundo a análise descritiva, houve redução do tempo gasto no desenvolvimento das aplicações quando foi utilizada a DSL em comparação com o desenvolvimento baseado em especialização das classes. Porém, os testes das hipóteses não apresentaram tal redução. A inserção de erros no código ocorreu somente nas aplicações desenvolvidas utilizando especialização das classes. O uso da DSL proporcionou uma visão mais ampla da regra de negócio e não exigiu conhecimento da linguagem de programação, pois o código foi gerado automaticamente.
|
190 |
UMA LINGUAGEM ESPECÍFICA DE DOMÍNIO PARA CONSULTA EM CÓDIGO ORIENTADO A ASPECTOS / A DOMAIN SPECIFIC LANGUAGE FOR ASPECT-ORIENTED CODE QUERYFaveri, Cristiano de 28 August 2013 (has links)
Ensuring code quality is crucial in software development. Not seldom, developers resort
to static analysis tools to assist them in both understanding pieces of code and identifying
defects or refactoring opportunities during development activities. A critical issue when defining
such tools is their ability to obtain information about code. Static analysis tools depend, in
general, of an intermediate program representation to identify locations that meet the conditions
described in their algorithms. This perspective can be enlarged when techniques of crosscutting
concerns modularization, such as aspect-oriented programming (AOP) is applied. In AOP
applications, a piece of code can be systematically affected, using both static and dynamic
combinations. The main goal of this dissertation is the specification and the implementation of
AQL, a domain-specific language (DSL) designed to search aspect-oriented code bases. AQL is
a declarative language, based on object query language (OQL), which enables the task of querying
elements, relationships and program metrics to support the construction of static analysis
and code searching tools for aspect oriented programs. The language was designed in two steps.
First, we built a framework (AOPJungle), responsible to extract data from aspect-oriented programs.
AOPJungle performs the computation of metrics, inferences and connections between
the elements of the program. In the second step, we built an AQL compiler as a reference implementation.
We adopted a source-to-source transformation for this step, in which an AQL query
is transformed into HQL statements before being executed. In order to evaluate the reference
implementation, we developed a static analysis tool for identifying refactoring opportunities in
aspect-oriented programs. This tool receives a set of AQL queries to identify potential scenarios
where refactoring could be applied. / Assegurar a qualidade de código é um ponto crucial durante o desenvolvimento de software.
Frequentemente, os desenvolvedores recorrem às ferramentas de análise estática para
auxiliá-los tanto na compreensão de código, quanto na identificação de defeitos ou de oportunidades
de refatoração durante o ciclo de desenvolvimento de aplicações. Um dos pontos
críticos na definição de tais ferramentas está na sua capacidade de obter informações a respeito
de código. As ferramentas de análise estática dependem, em geral, de uma representação intermediária
de um programa para identificar situações que atendam às condições necessárias
descritas em seus algoritmos. Esse panorama se amplia com o uso de técnicas de modularização
de interesses transversais, tais como a programação orientada a aspectos (POA), na qual um
código pode ser afetado de forma sistêmica, por meio de combinações estáticas e dinâmicas.
O principal objetivo desta dissertação é a especificação e implementação de AQL, uma DSL
(linguagem específica de domínio) para a realização de busca em código orientado a aspectos.
A AQL é uma linguagem declarativa, baseada em linguagem de busca em objetos (OQL) e
que permite consultar elementos, relações, derivações e métricas de um programa orientado a
aspectos (OA), a fim de apoiar a construção de ferramentas de análise estática e de pesquisa
em código. O projeto de implementação da linguagem foi realizado em duas etapas. Primeiro,
foi criado um framework (AOPJungle) para a extração de dados de programas OA. O AOPJungle
além de extrair dados de programas OA, realiza a computação de métricas, inferências e
ligações entre os elementos de um programa. Na segunda etapa, um compilador de referência
para AQL foi construído. A abordagem adotada foi a transformação fonte a fonte, sendo uma
consulta AQL transformada em uma consulta HQL (Hibernate Query Language) antes de sua
execução. A fim de avaliar a implementação proposta, uma ferramenta de análise estática para
identificação de oportunidades de refatoração em programas AO foi elaborada, usando a AQL
para a busca de dados sobre esses programas.
|
Page generated in 1.1036 seconds