Spelling suggestions: "subject:"aspectoriented"" "subject:"affectoriented""
161 |
AdaptiveRME e aspectCompose: um middleware adaptativo e um processo de composição orientado a aspecto para o desenvolvimento de software móvel e ubíquo / AdaptiveRME and aspectCompose: A middleware adaptative and a guided process of composition the aspects for the development of software móvel and ubiquitousRocha, Lincoln Souza January 2007 (has links)
ROCHA, Lincoln Souza. AdaptiveRME e aspectCompose: um middleware adaptativo e um processo de composição orientado a aspecto para o desenvolvimento de software móvel e ubíquo. 2007. 102 f. Dissertação (Mestrado em ciência da computação)- Universidade Federal do Ceará, Fortaleza-CE, 2007. / Submitted by Elineudson Ribeiro (elineudsonr@gmail.com) on 2016-07-11T18:16:05Z
No. of bitstreams: 1
2007_dis_lsrocha.pdf: 2405680 bytes, checksum: 7063a81265f0d1a3757c5dff48a28581 (MD5) / Approved for entry into archive by Rocilda Sales (rocilda@ufc.br) on 2016-07-18T16:10:13Z (GMT) No. of bitstreams: 1
2007_dis_lsrocha.pdf: 2405680 bytes, checksum: 7063a81265f0d1a3757c5dff48a28581 (MD5) / Made available in DSpace on 2016-07-18T16:10:13Z (GMT). No. of bitstreams: 1
2007_dis_lsrocha.pdf: 2405680 bytes, checksum: 7063a81265f0d1a3757c5dff48a28581 (MD5)
Previous issue date: 2007 / Ubiquitous computing is an extensive computational paradigm, which can provide solutions to regular citizens or can be useful to handle complex medical environment data, for example. This paradigm proposes a new human-computer interaction approach based on the proactivity of computers that makes users’ life easier. However, this approach demands a high level of collaboration and communication among the computational elements that compose the mobile and ubiquitous environments. One of the main challenges is related to the way of conceiving software systems capable of dealing with the high variation of resources and services, along with guaranteeing the interoperability among the diversity of computational elements that compose these environments. Therefore, this work proposes an adaptive middleware for móbile and ubiquitous environments that intends to solve heterogeneity and dynamicity problems. This dissertation also proposes a software composition process to reduce coupling between the proposed middleware and applications. The middleware uses dynamic adaptation and support for context-aware software development mechanisms, and the composition process uses Aspect-Oriented Programming (AOP) techniques. A case study is developed to evaluate the adaptive middleware’s functionalities and demonstrate the composing process. Furthermore, a performance analysis is presented to measure the proposed middleware’s impact in a wireless network. / A computação ubíqua é um paradigma computacional de grande abrangência, com aplicabilidades tanto para o cotidiano de um cidadão comum quanto para o tratamento de informações complexas em ambientes hospitalares. Este paradigma propõe uma nova forma de interação homem-computador baseada na proatividade dos computadores para facilitar a vida dos usuários. Entretanto, tal forma de interação demanda um alto grau de colaboração e comunicação entre os elementos computacionais que compõem os ambientes móveis e ubíquos. Um dos principais desafios está relacionado a maneira de como conceber sistemas de software capazes de lidar com a alta variação de recursos e serviços, além de garantir a interoperabilidade entre os diversos elementos computacionais que compõem estes ambientes. Este trabalho propõe, então, um middleware adaptativo para ambientes móveis e ubíquos com o objetivo de solucionar problemas de heterogeneidade e dinamicidade. Para diminuir o acoplamento entre o middleware proposto e as aplicações que o utilizam, esta dissertação também propõe um processo de composição de software. O middleware utiliza mecanismos de adaptação dinâmica e suporte ao desenvolvimento de software sensível ao contexto, e o processo de composição faz uso de técnicas de Programação Orientada a Aspectos (POA). Um estudo de caso é desenvolvido para avaliar a funcionalidade do middleware adaptativo e demonstrar a utilização do processo de composição. Além disso, uma análise de desempenho é apresentada para medir o impacto provocado pelo uso do middleware proposto em um ambiente de rede sem fio.
|
162 |
UM PROCESSO PARA O USO DE LINGUAGENS DE CONSULTA EM CÓDIGO FONTE / USE OF SEARCH LANGUAGES IN SOUCE CODE REPOSITORYCantarelli, Gustavo Stangherlin 08 November 2012 (has links)
The search in the source code is gaining more and more space because of the increasing complexity of current software systems and also the need for improvements in source code. Although the paradigms of object-oriented programming and aspect-oriented programming have several features to improve code reuse and clarity when maintenance of code is required, developers tend to reduce productivity because of problems on locating the parts to be corrected or improved. Aiming maintenance activities, this paper presents a search code process that can be applied to source code repositories. This process is exemplified through three instantiations: searches in object-oriented code using SPARQL and SQL, and aspect-oriented code using XML, suggesting that its use may be of great value for any combination of tools and query languages. / As buscas em código-fonte estão ganhando cada vez mais espaço devido ao atual aumento da complexidade dos sistemas de software e também à necessidade de melhorias em código-fonte. Embora os paradigmas de programação orientada a objetos e de programação orientada a aspectos possuam diversos recursos para melhorar o reuso e a clareza de código, quando é necessária manutenção de trechos de código, os programadores tendem a reduzir sua produtividade em função de problemas em localizar os trechos a serem corrigidos ou melhorados. Visando as atividades de manutenção, este trabalho apresenta um processo de consulta que pode ser aplicado em repositórios de código-fonte. Tal processo é exemplificado através de três instanciações: buscas em código orientado a objetos usando SQL e SPARQL, e em código orientado a aspectos usando XML, evidenciando que seu uso poderá ser de grande valia para qualquer combinação entre ferramentas e linguagens de consulta.
|
163 |
K-Aspects : uma abordagem baseada em aspectos para implementação de sistemas de conhecimentos / K-Aspects: an approach for building knowledge systems using aspectsCastro, Eduardo Studzinski Estima de January 2009 (has links)
Esse trabalho define K-Aspects (Knowledge Aspects), uma abordagem para a implementação de Sistemas de Conhecimento (SC) em linguagens orientadas a objetos usando o paradigma orientado a aspectos (OA) e anotações de metadados. Essa abordagem define uma forte correspondência entre o Modelo de Conhecimento (MC) e sua implementação no paradigma da orientação a objetos (OO). K-Aspects fornece um conjunto de anotações documentacionais para facilitar a leitura da associação entre o modelo de implementação e o modelo conceitual do conhecimento; um conjunto de anotações para facilitar a separação de interesses na implementação do SC usando OA; um conjunto de bibliotecas para realizar a interpretação das anotações e sua execução em aspectos; e uma ferramenta para geração de documentação do MC a partir das anotações no código. A abordagem busca atender tanto os engenheiros de conhecimento quanto os engenheiros de desenvolvimento em projetos de SC. Os engenheiros de conhecimento tem ao seu alcance um modo adequado para elaborar a especificação do MC que resulta em uma especificação em uma linguagem orientada a objetos, permitindo aos engenheiros de desenvolvimento implementarem o sistema preservando a estrutura do modelo conceitual e mantendo clara distinção entre os requisitos associados ao MC dos demais requisitos. K-Annotations adicionam recursos de OA ao modelo conceitual do conhecimento OO, oferecendo facilidades de tratamento separado de diversas funcionalidades transversais de um SC, através do particionamento do sistema em aspectos que implementam funcionalidades específicas, ativadas através das anotações inseridas no componente do modelo conceitual. Anotações distinguem, clara e visualmente, no código, os elementos do MC em relação ao restante do código do programa, facilitando a leitura do código pelos engenheiros de conhecimento. A função principal das anotações é prover as informações necessárias para a interpretação dos elementos de conhecimento durante a execução do programa. Anotações identificam as funcionalidades transversais relativas aos construtos do modelo e são gerenciadas pela biblioteca de aspectos. A abordagem foi validada re-escrevendo com o uso de K-Annotations um sistema de conhecimento no domínio da análise da qualidade de reservatórios de petróleo. O modelo desse sistema representa uma ontologia de domínio sobre o qual métodos de solução de problemas para interpretação e classificação de rochas são aplicados. A análise dos resultados identificou um conjunto de vantagens no uso de K-Aspects, como distinção clara entre a implementação do MC e a implementação dos demais requisitos, suporte nativo aos construtos providos no modelo de conhecimento e alto grau de rastreabilidade entre o modelo e sua implementação. Além disso, provê redução de tarefas repetitivas de implementação e redução da dispersão de código a partir da geração automática de código. As bibliotecas de aspectos garantem o encapsulamento de inferências e tarefas. As bibliotecas tratam os construtos do modelo para garantir a reutilização em diferentes projetos de SCs. / This work defines K-Aspects (Knowledge Aspects), an approach for implementing Knowledge Systems (KS) with object-oriented languages using the aspect-oriented paradigm (AO) and metadata annotations. This approach defines a strong link between the knowledge model (KM) and its implementation in the object-oriented paradigm (OO). K-Aspects provides a set of documentational annotations to make the association between the implementation model and the knowledge conceptual model easier to read; a set of annotations to enable the separation of concerns, using aspect orientation, of the implementation of the different requirements of the knowledge system; a set of libraries to perform the interpretation and execution as aspects of annotations; and a tool for documentation generation of the KM extracted from the annotations on the code. The approach aims to support both knowledge engineers and development engineers in KS projects, by providing to the knowledge engineers a well-defined way to elaborate the KS specification, which results in a specification presented in an object oriented language, making it easily understandable and extensible by development engineers that can thus implement the knowledge system preserving its conceptual knowledge structure and keeping a clear distinction of the requirements associated to the KM from the other requirements. K-Annotations add aspect oriented resources to the OO conceptual knowledge model, providing features to manage separately the multiple crosscutting concerns of a KS, partitioning the system in aspects that implement specific features, activated by annotations inserted in the knowledge conceptual model. Annotations distinguish, clearly and visually, within the code, KM elements from the rest of the code, making easier the code reading by the knowledge engineers. The most important function of the annotations is to provide information necessary for interpreting knowledge elements during runtime. Annotations identify several crosscutting concerns related to the model constructs. Annotations are managed and executed by the aspect libraries. This approach was validated by re-coding, using K-Annotations, a complex commercial KS on the domain of oil reservoir quality analysis. The model of this system represents a domain ontology on which problem-resolving methods for rock interpretation and classification are performed. The analysis of the results identified several advantages of using K-Aspects as: a clear distinction of the KM implementation among other requirements; native support for knowledge model constructs; and high traceability between the knowledge conceptual model and its implementation. Moreover, the use of K-Aspects reduces repetitive implementation tasks and code dispersion because of the automatic code generation. The provided aspect libraries enable the encapsulation of inferences and the execution of several tasks. The libraries manage the constructs of the model thus providing reusability among multiple KS projects.
|
164 |
An aspect-oriented model-driven engineering approach for distributed embedded real-time systems / Uma abordagem de engenharia guiada por modelos para o projeto de sistemas tempo-real embarcados e distribuídosWehrmeister, Marco Aurélio January 2009 (has links)
Atualmente, o projeto de sistemas tempo-real embarcados e distribuídos está crescendo em complexidade devido à sua natureza heterogênea e ao crescente número e diversidade de funções que um único sistema desempenha. Sistemas de automação industrial, sistemas eletrônicos em automóveis e veículos aéreos, equipamentos médicos, entre outros, são exemplos de tais sistemas. Tais sistemas são compostos por componentes distintos (blocos de hardware e software), os quais geralmente são projetados concorrentemente utilizando modelos, ferramentas e linguagens de especificação e implementação diferentes. Além disso, estes sistemas tem requisitos específicos e importantes, os quais não representam (por si só) as funcionalidades esperadas do sistema, mas podem afetar a forma como o sistema executa suas funcionalidades e são muito importantes para a realização do projeto com sucesso. Os chamados requisitos não-funcionais são difíceis de tratar durante todo o ciclo de projeto porque normalmente um único requisito não-funcional afeta vários componentes diferentes. A presente tese de doutorado propõe a integração automatizada das fases de projeto de sistemas tempo-real embarcados e distribuídos focando em aplicações na área da automação. A abordagem proposta usa técnicas de engenharia guiada por modelos (do inglês Model Driven Engineering ou MDE) e projeto orientado a aspectos (do inglês Aspect-Oriented Design ou AOD) juntamente com o uso de plataformas previamente desenvolvidas (ou desenvolvida por terceiros) para projetar os componentes de sistemas tempo-real embarcados e distribuídos. Adicionalmente, os conceitos de AOD permitem a separação no tratamento dos requisitos de naturezas diferentes (i.e. requisitos funcionais e não-funcionais), melhorando a modularização dos artefatos produzidos (e.g. modelos de especificação, código fonte, etc.). Além disso, esta tese propõe uma ferramenta de geração de código, que suporta a transição automática das fases iniciais de especificação para as fases seguintes de implementação. Esta ferramenta usa um conjunto de regras de mapeamento, que descrevem como elementos nos níveis mais altos de abstração são mapeados (ou transformados) em elementos dos níveis mais baixos de abstração. Em outras palavras, tais regras de mapeamento permitem a transformação automática da especificação inicial, as quais estão mais próximo do domínio da aplicação, em código fonte para os componentes de hardware e software, os quais podem ser compilados e sintetizados por outras ferramentas para se obter a realização/implementação do sistema tempo-real embarcado e distribuído. / Currently, the design of distributed embedded real-time systems is growing in complexity due to the increasing amount of distinct functionalities that a single system must perform, and also to concerns related to designing different kinds of components. Industrial automation systems, embedded electronics systems in automobiles or aerial vehicles, medical equipments and others are examples of such systems, which includes distinct components (e.g. hardware and software ones) that are usually designed concurrently using distinct models, tools, specification, and implementation languages. Moreover, these systems have domain specific and important requirements, which do not represent by themselves the expected functionalities, but can affect both the way that the system performs its functionalities as well as the overall design success. The so-called nonfunctional requirements are difficult to deal with during the whole design because usually a single non-functional requirement affects several distinct components. This thesis proposes an automated integration of distributed embedded real-time systems design phases focusing on automation systems. The proposed approach uses Model- Driven Engineering (MDE) techniques together with Aspect-Oriented Design (AOD) and previously developed (or third party) hardware and software platforms to design the components of distributed embedded real-time systems. Additionally, AOD concepts allow a separate handling of requirement with distinct natures (i.e. functional and non-functional requirements), improving the produced artifacts modularization (e.g. specification model, source code, etc.). In addition, this thesis proposes a code generation tool, which supports an automatic transition from the initial specification phases to the following implementation phases. This tool uses a set of mapping rules, describing how elements at higher abstraction levels are mapped (or transformed) into lower abstraction level elements. In other words, suchmapping rules allow an automatic transformation of the initial specification, which is closer to the application domain, in source code for software and hardware components that can be compiled or synthesized by other tools, obtaining the realization/ implementation of the distributed embedded real-time system.
|
165 |
Reúso de frameworks transversais com apoio de modelosGottardi, Thiago 04 July 2012 (has links)
Made available in DSpace on 2016-06-02T19:05:57Z (GMT). No. of bitstreams: 1
4450.pdf: 5302294 bytes, checksum: a12e396d985ac3fe2e63b38cc999decf (MD5)
Previous issue date: 2012-07-04 / Universidade Federal de Minas Gerais / Aspect-Oriented programming was created to modularize the so-called crosscutting concerns . Crosscutting concerns have some properties that cannot be fully modularized with the object-oriented paradigm. After that, aspect-oriented frameworks were created in order to make reuse of different concern codes easier. Among these frameworks, Crosscutting Frameworks are aspect-oriented frameworks specifically created for crosscutting concern code modularization, for instance, persistence, distribution, concurrency and business rules. Currently, these frameworks are usually distributed as source code and must be reused by extending classes, aspects and methods. Reusing these frameworks in code-level require application developers to worry about implementation issues, that affects understandability, productivity and quality of final software. In this thesis, the objective is to raise abstraction level by applying a new model-driven approach for crosscutting framework reuse, which also allows reusability during earlier development phases. Experiments were conducted in order to compare the productivity of the proposed process with the conventional reuse technique, which is based on source-code edition. It was identified that the proposed process has advantages during the reuse activity, however, no advantages were detected while maintaining an application coupled to a crosscutting framework. / A programação orientada a aspectos foi criada para permitir a modularização de um tipo de interesse de software denominado de interesse transversal , que não pode ser completamente modularizado com paradigmas como o orientado a objetos. Com o uso do paradigma orientado a aspectos, vários pesquisadores começaram a pesquisar como determinados interesses transversais poderiam ser modularizados de formas genéricas para aumentar suas possibilidades de reúso, fazendo surgir Frameworks Orientados a Aspectos e também o termo Frameworks Transversais. Framework Transversal é um tipo de framework orientado a aspectos que tem o objetivo de permitir o reúso de código de interesses transversais, como persistência, distribuição, concorrência ou regras de negócio. Em geral, esses frameworks são disponibilizados na forma de código-fonte e devem ser reusados por meio da edição de código. Realizar o reúso neste nível faz com que engenheiros de aplicação tenham que se preocupar com detalhes da implementação do framework, afetando o entendimento, a produtividade e a qualidade do software final. Neste trabalho, o objetivo é elevar o nível de abstração do processo de reúso de frameworks transversais, propondo um processo dirigido por modelos que permite iniciar o processo de reúso nas fases antecedentes à implementação. Experimentos foram realizados para comparar o tempo de aplicar no novo processo com o processo de edição de código-fonte. Foi identificado que o novo processo possui vantagens em diminuir o tempo para reusar os frameworks, porém, não foram encontradas vantagens durante a manutenção de aplicações acopladas a frameworks transversais.
|
166 |
Um metamodelo para facilitar a integração de ferramentas de visualização de software e mineração de interesses transversaisTanner, Oscar José Fernandes 22 November 2013 (has links)
Made available in DSpace on 2016-06-02T19:06:13Z (GMT). No. of bitstreams: 1
6078.pdf: 14032295 bytes, checksum: 116eccd4fd841045293650d9b4779ff3 (MD5)
Previous issue date: 2013-11-22 / Financiadora de Estudos e Projetos / A goal of the Object-Oriented Programming is to develop software with better modularization and separation of concerns, although tangling and scattering of some of these concerns cannot be prevented. The Aspect-Oriented Programming was proposed to solve this problem. However, the identification of the scattering and tangling concerns, also known as crosscutting concerns (CC), is not simple. To assist this identification, it is recommended the use of CC Mining tools (MT), but some MTs do not properly display these CCs in the source code. One way to improve the presentation of this CCs is displaying them through software visualization tools. Software visualization aims to abstract the structural information of the software through visual metaphors. However, it is not always simple to integrate CC and visualization tools, because each tool store their results in a specific format that is usually not recognized by the others. In order to solve this problem, this work created a metamodel that facilitates this integration. The results obtained from a MT are transformed to this metamodel format, so they can be processed by a software visualization tool. Presenting the results of a MT through software visualization tools helps the comparison of these results, facilitating the detection of false negatives and the identification of visual patterns that indicate false positives. Four MT and two software visualization tools were integrated to demonstrate the benefits of an integrated environment. Moreover, two experiments were conducted: one to evaluate the use of the proposed metamodel; and another to evaluate the use of the integrated environment. The results revealed that the use of the proposed metamodel facilitates this integration and the software engineer must be a specialist of each of the integrated tools in order to enjoy the benefits from this integration. / Um dos objetivos do desenvolvimento Orientado a Objetos é a construção de software com melhor modularização e separação de interesses, porém não há como evitar que haja entrelaçamento e espalhamento de alguns desses interesses. O desenvolvimento Orientado a Aspecto é uma proposta de solucionar esse problema. Entretanto, a identificação de interesses entrelaçados e espalhados pelo código fonte, conhecidos como interesses transversais (IT), não é simples. Para auxiliar essa identificação é recomendado o uso de ferramentas de mineração de interesses transversais (MIT). Após esses interesses serem identificados, muitas vezes, persiste a dificuldade de visualizá-los adequadamente no código fonte. Uma forma de melhorar a apresentação dos ITs é exibir os resultados das ferramentas de MIT usando as ferramentas de visualização de software. A visualização de software tem como objetivo abstrair as informações estruturais de um software por meio de metáforas visuais. Porém, nem sempre é possível integrar facilmente essas ferramentas, pois cada uma armazena seus resultados em um formato específico que normalmente não é reconhecida pelas demais. Para solucionar esse problema, neste trabalho foi criado um metamodelo que facilita essa integração. Os resultados obtidos a partir de uma ferramenta de MIT são transformados para o formato desse metamodelo, para que sejam processados por uma ferramenta de visualização de software. A exibição dos resultados das ferramentas de MIT por meio das ferramentas de visualização facilita a comparação desses resultados, sendo evidenciados os falsos negativos e facilitada a identificação de novos padrões visuais para falsos positivos. Para mostrar a utilidade de um ambiente integrado, foram utilizadas quatro ferramentas de MIT e duas de visualização de software. Além disso, dois experimentos foram conduzidos: um para avaliar a utilização do metamodelo proposto, e outro para avaliar a utilização do ambiente integrado. Os resultados apontaram que a integração é facilitada com a utilização do metamodelo proposto e que é necessário que o engenheiro de software tenha pleno domínio de cada uma das ferramentas envolvidas, a fim de beneficiar-se dessa integração.
|
167 |
Investigação de operadores essenciais de mutação para programas orientados a aspectosLacerda, Jésus Thiago Sousa 20 October 2014 (has links)
Made available in DSpace on 2016-06-02T19:06:18Z (GMT). No. of bitstreams: 1
6398.pdf: 1432485 bytes, checksum: dbb2a36cf46b2e3c828fe5dd53dc5d1a (MD5)
Previous issue date: 2014-10-20 / Financiadora de Estudos e Projetos / Context: The literature on software testing reports on the application of the Mutation Analysis criterion or mutation testing as a promising approach for revealing faults in aspect-oriented (AO) programs. However, it is widely known that this criterion is highly costly due to the large number of generated mutants and the effort required to identify equivalent mutants. We highlight that little existing research on mutation testing for AO programs focuses on cost reduction strategies. Objective: this work aims at investigating the cost reduction of mutation testing for AO programs. In particular, we intend to reduce the cost of mutation testing by identifying a reduced set of mutation operators that are capable of keeping the effectiveness in guaranteeing the quality of the designed test sets. Method: to achieve the goals, we applied an approach called Sufficient Procedure. Such approach yields sufficient (sets of) mutation operators. Test sets that are adequate with respect to mutants produced by sufficient operators are able to reveal the majority of faults simulated by a whole set of mutants. Results: by applying the Sufficient Procedure, we obtained substantial cost reductions for three groups of AO programs. The cost reduction in the experiments range from 52% to 62%. The final mutation scores yielded by the test sets that are adequate to mutants produced by the sufficient operators range from 92% to 94%. Conclusion: with the achieved results, we conclude that it is possible to reduce the cost of mutation testing applied to AO programs without significant losses with respect to the capacity of revealing prespecified fault types. The Sufficient Procedure has shown to be able to support cost reduction and to maintain the effectiveness of the criterion. / Contexto: A literatura de teste de software relata a aplicação do critério Análise de Mutantes ou teste de mutação em programas orientados a aspectos (OA) como uma forma promissora para revelar defeitos. Entretanto, esse critério é reconhecidamente de alto custo devido ao grande número de mutantes usualmente gerados e ao esforço para detectar os mutantes equivalentes. Ressalta-se que as iniciativas de aplicação de teste de mutação nesse contexto apresentam pouco enfoque em estratégias de redução de custo. Objetivo: este trabalho tem como objetivo investigar a redução de custo de teste de mutação para programas OA. Em específico, este trabalho objetiva reduzir o custo do teste de mutação por meio da identificação de um conjunto reduzido de operadores de mutação que mantenham a efetividade do critério em garantir a qualidade dos conjuntos de teste produzidos. Metodologia: para atingir o objetivo proposto, aplicou-se uma abordagem intitulada Procedimento Essencial, a qual resulta em conjuntos de operadores essenciais de mutação. Os testes adequados para os mutantes produzidos com esses operadores são capazes de revelar a maioria dos defeitos simulados em um conjunto completo de mutantes. Resultados: por meio da aplicação do Procedimento Essencial, foi possível obter reduções de custo substanciais para três conjuntos de programas OA. As reduções obtidas nos experimentos variam de 52% a 62%. Os escores de mutação finais alcançados pelos testes adequados aos mutantes produzidos com os operadores essenciais variam de 92% a 94%. Conclusão: com os resultados alcançados neste trabalho pode-se afirmar que é possível reduzir o custo do teste de mutação em programas OA sem perdas significativas na capacidade de revelar tipos de defeitos pré-definidos. O Procedimento Essencial mostrou-se eficaz na redução de custo e na manutenção da efetividade do critério.
|
168 |
Avaliação de conjuntos de testes funcionais no contexto de programas orientados a objetos e programas orientados a aspectosLevin, Thiago Gaspar 08 January 2015 (has links)
Made available in DSpace on 2016-06-02T19:06:21Z (GMT). No. of bitstreams: 1
6590.pdf: 1739821 bytes, checksum: 376967fb01c5f5d38d60ce523ffa6021 (MD5)
Previous issue date: 2015-01-08 / Universidade Federal de Sao Carlos / Context: Software testing play an important role to reveal faults and increase the quality of developed products. Structural-based testing has shown to be important in the evaluation of both the quality of the software and the quality of the test set itself. Objective: This work reports on the results of an experimental study that aimed to evaluate the quality of test sets which were originally built for a given programming paradigm, when such test sets are adapted and applied to a different paradigm. Besides this, this we also measure the effort to migrate test sets from one paradigm to another. In this work, we considered the object-oriented (OO) and aspect-oriented (AO) paradigms. Method: We evaluated the quality of test sets by analysing the code coverage yielded by test sets within both paradigms; to evaluate the effort required to adapt test sets across paradigms, we performed comparisons of code-related metrics applied to test code. In total, we analysed 12 small-sized applications and one medium-sized application. Results: The achieved coverage for distinct groups of applications did not show expressive differences across the paradigms, particularly for small-sized applications. Only for the medium-sized system tests yielded higher code coverage in the OO implementation. In respect with the test set adaptation effort, migrating OO tests to the AO paradigm required more code additions, whilst migrating AO tests to the OO implementations required more code changes and removals. Conclusion: With the achieved results, we cannot state that there is a difference in the quality of the test sets, in terms of structural coverage, when both paradigms are taken into account. Only for a single application the coverage difference was evident. In regard to the process of migrating tests from one paradigms to another, OO tests have shown to be more concise (in terms of lines of code) and more reusable than OA tests. / Contexto: O teste de software é uma atividade importante para revelar defeitos e aumentar a qualidade nos produtos desenvolvidos. Testes estruturais tem se mostrados bastante importantes para a avaliação da qualidade do software ou mesmo do conjunto de testes utilizado para testá-lo. Objetivo: Este trabalho apresenta um estudo experimental para avaliar a qualidade de conjuntos de testes criados para um paradigma em específico, quando adaptado e aplicado em outro paradigma, avaliando também o esforço para adaptar conjuntos de testes quando ocorre a migração de um paradigma para outro. Os paradigmas considerados são o paradigma orientado a objetos (OO) e o paradigma orientado a aspectos (OA). Metodo: Para a avaliação da qualidade dos conjuntos de testes adaptados foi analisada a cobertura de código atingida em ambos os paradigmas; para a avaliação do esforço na adaptação dos conjuntos de testes, métricas de código foram comparadas em relação a implementações dos testes em cada paradigma considerado. No total, 12 aplicações de pequeno porte e uma aplicação de médio porte foram avaliadas. Resultados: A cobertura de código atingida para diferentes grupos de aplicações não resultou em diferenças expressivas entre os paradigmas, em particular para as aplicações de pequeno porte. Somente no sistema de médio porte o codigo da implementação OO foi mais coberto do que na implementação OA. Em relação ao esforço na adaptação dos conjuntos de testes, os testes OO migrados para as implementações OA necessitaram de mais incrementos de código, enquanto os conjuntos de testes OA migrados para o paradigma OO necessitaram de mais decrementos e modificações. Conclusão: Com os resultados alcançados não e possível afirmar que um conjunto de testes adaptado de um determinado paradigma possui maior qualidade em relação a outro paradigma, com exceção de uma aplicação, em que o conjunto de testes OO se apresentou com qualidade superior ao conjunto de testes OA. Em relação a migração de conjuntos de testes entre paradigmas, os testes OO apresentaram-se mais enxutos (em termos de linhas de código) e mais reutilizaveis do que os testes OA.
|
169 |
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.
|
170 |
M?tricas de sistemas de middleware orientado a aspectos e Aplica??o em um sistema de monitoramento de Po?os de Petr?leoFreitas, T?ssia Aparecida Vieira de 20 February 2009 (has links)
Made available in DSpace on 2015-03-03T15:47:44Z (GMT). No. of bitstreams: 1
TassiaAVF.pdf: 1514001 bytes, checksum: a6dbf5832432db823e99d729ccf7fa2b (MD5)
Previous issue date: 2009-02-20 / Nowadays, there are many aspect-oriented middleware implementations that take advantage of the modularity provided by the aspect oriented paradigm. Although the works
always present an assessment of the middleware according to some quality attribute, there is not a specific set of metrics to assess them in a comprehensive way, following various quality attributes. This work aims to propose a suite of metrics for the assessment of aspect-oriented middleware systems at different development stages: design, refactoring, implementation and runtime. The work presents the metrics and how they are applied at each development
stage. The suite is composed of metrics associated to static properties (modularity, maintainability,
reusability, exibility, complexity, stability, and size) and dynamic properties (performance and memory consumption). Such metrics are based on existing assessment
approaches of object-oriented and aspect-oriented systems.
The proposed metrics are used in the context of OiL (Orb in Lua), a middleware based on CORBA and implemented in Lua, and AO-OiL, the refactoring of OIL that follows a
reference architecture for aspect-oriented middleware systems. The case study performed in OiL and AO-OiL is a system for monitoring of oil wells. This work also presents the CoMeTA-Lua tool to automate the collection of coupling and size metrics in Lua source code / Atualmente, ha diversas implementa??es de sistemas de middleware orientado a aspectos
que aproveitam o suporte a modulariza??o do paradigma de orienta??o a aspectos.
Apesar desses trabalhos sempre apresentarem uma avalia??o do middleware de acordo
com algum atributo de qualidade, n?o ha ainda um conjunto de metricas especificamente
de nidas para avali?-los de forma abrangente, seguindo v?rios atributos de qualidade.
Este trabalho tem como objetivo propor um conjunto de metricas para avalia??o de
sistemas de middleware orientado a aspectos em diferentes fases de desenvolvimento: design,
refatora??o, implementa??o e execu??o. O trabalho apresenta as metricas e como
elas s?o aplicadas em cada uma das fases de desenvolvimento. O conjunto e composto
por metricas associadas a propriedades estaticas (modularidade, manutenibilidade, reusabilidade, exibilidade, complexidade, estabilidade e tamanho) e din?micas (desempenho e
consumo de mem oria). Tais metricas s?o baseadas em abordagens existentes de avalia??o
de sistemas orientados a aspectos e a objetos.
As metricas propostas s?o utilizadas no contexto do OiL (Orb in Lua), um middleware
baseado em CORBA e implementado em Lua, e AO-OiL, uma refatora??o do OIL que
segue uma arquitetura de refer?ncia para sistemas de middleware orientados a aspectos.
O estudo de caso executado no OiL e no AO-OiL e um sistema de monitoramento de po?os
de petroleo. Esse trabalho apresenta ainda a ferramenta CoMeTA-Lua para automatizar
a coleta das metricas de tamanho e acoplamento em codigo-fonte Lua
|
Page generated in 0.0836 seconds