1 |
Construction and Analysis of Vector Space Models for Use in Aspect MiningTribbey, William 01 January 2011 (has links)
A legacy software system can be taken to consist of N methods which contain within their implementations the intended activities and functions of the system. These activities and functions are referred to as concerns. Some of these concerns are typically implemented and used in multiple methods throughout the system and these are deemed to be crosscutting concerns. Through the use of an aspect-oriented programming paradigm, the implementation and use of these crosscutting concerns can be abstracted into aspects. In order to refactor the system, the process of aspect mining is carried out to identify the crosscutting concerns in the software system. Once identified, the crosscutting concerns can then be refactored into aspects.
Clustering-based aspect mining techniques make use of a vector space model to represent the source code to be mined. In this investigation, the individual methods of the software system were represented by a d-dimensional vector by mapping a method M to the vector V where the components of the vector V were values derived from applying a source code metric to each method M. These vector space models were then processed through the k-means++ clustering algorithm and the resulting cluster configurations were then evaluated to assess the quality of the results with respect to the identification of crosscutting concerns.
This research studied the effect that the number of dimensions of a vector space model has
on the results of a clustering-based aspect mining algorithm. Several vector space models
were defined and principal component analysis was used to reduce the dimensionality of the models. Each of the models was processed multiple times through the aspect mining algorithm and the distributions of the collected measures were tested for statistically significant differences using the Wilcoxon rank sum test. The results indicate that changes in the number of dimensions of a vector space model can produce significant effects in the collected measures. In addition, the measures used to assess the performance of an aspect mining process need to be analyzed for underlying relationships.
|
2 |
Identifying Crosscutting Concerns from Requirement Specifications - A Case StudyLi, GANG 13 April 2010 (has links)
Aspect-Oriented Requirement Engineering (AORE) is an emerging software engineering paradigm with increasing attention from academic as well as industrial communities. AORE aims at the systematic identification, modularization, composition and analysis of crosscutting concerns that manifest in requirements. It is believed that systematically managing crosscutting concerns early on at the requirement engineering stage can provide valuable insight at the architecture design and implementation stages and can help identify and thus manage crosscutting concerns at these stages. Moreover, identifying crosscutting concerns in requirements can help to reveal the scope of each concern in a software system, to detect potential conflicts between concerns and to facilitate trade-off negotiation early on. Hundreds of papers regarding AORE have been published in AORE communities. However, few of them address crosscutting concerns in real world requirements. Whether the proposed AORE approaches are productive when applied to real world requirements is unknown. In this thesis, we conduct an AORE case study consisting of an experiment using a real world software requirement specification in order to examine how crosscutting concerns present in real world requirement documents, explore the difference between crosscutting concerns in requirements and crosscutting concerns in code, and reason whether identifying and thus managing crosscutting concerns from real world requirements is a productive practice. / Thesis (Master, Computing) -- Queen's University, 2009-09-21 15:09:27.262
|
3 |
Aspect Mining Using Self-Organizing Maps With Method Level Dynamic Software Metrics as Input VectorsMaisikeli, Sayyed Garba 01 January 2009 (has links)
As the size and sophistication of modern software system increases, so is the need for high quality software that is easy to scale and maintain. Software systems evolve and undergo change over time. Unstructured software updates and refinements can lead to code scattering and tangling which are the main symptoms of crosscutting concerns. Presence of crosscutting concerns in a software system can lead to bloated and inefficient software system that is difficult to evolve, hard to analyze, difficult to reuse and costly to maintain.
A crosscutting concern in a software system represents implementation of a unique idea or a functionality that could not be properly encapsulated. The presence of crosscutting concerns in software systems is attributed to the limitations of programming languages and structural degradation associated with repeated change. No matter how well large-scale software applications are decomposed, some ideas are difficult to modularize and encapsulate resulting in crosscutting concerns scattered across the entire software system where code implementing one concept is tangled and mixed with code implementing unrelated concept.
Aspect Mining is a reverse software engineering exploration technique that is concerned with the development of concepts, principles, methods and tools supporting the identification and extraction of re-factorable aspect candidates in legacy software systems. The main goal of Aspect Mining is to help software engineers and developers to locate and identify crosscutting concerns and portions of the software that may need refactoring, with the aim of improving the quality, scalability and maintainability and evolution of software system.
The aspect mining approach presented in this dissertation involved three-phases. In the first phase, selected large-scale legacy benchmark test programs were dynamically traced and investigated. Metrics representing interaction between code fragments were derived from the collected data. In the second phase, the formulated dynamic metrics were then submitted as input to Self Organizing Maps (SOMs) for clustering. In the third phase, clusters produced by the SOM were then mapped against the benchmark test program in order to identify code scattering and tangling symptoms. Crosscutting concerns were identified and candidate aspect seeds mined.
Overall, the methodology used in this dissertation is found to perform as well as and no worse than other existing Aspect Mining methodologies. In other cases, the methodology used in this dissertation was found to have outperformed some of the existing Aspect mining methods that use the same set of benchmark test programs. With regards to Aspect Mining precision as it relates to LDA, 100% precision was attained, and with respect to JHD 51% precision was attained by this dissertation methodology, which is the same as attained by existing Aspect mining methods. Lessons learned from the results of experiments carried out in this dissertation have shown that even highly structured software systems that are based on best practice software design principles are laden with code repetitions and presence of crosscutting concerns.
One of the major contributions of this dissertation is the presentation of a new unsupervised Aspect Mining approach that minimizes human interaction, where hidden software features can be identified and inferences about the general structure of software system can be made, thereby addressing one of the drawbacks in currently existing dynamic Aspect Mining methodologies. The strength of the Aspect Mining approach presented in this dissertation is that the input metrics required to represent software code fragments can easily be derived from other viable software metric formulations without complex formalisms.
Other contributions made by this dissertation include the presentation of a good and viable software visualization technique that can be used for software visualization, exploration, and study and understanding of internal structure and behavioral nature of large-scale software systems. Areas that may need further study include the need for determining the optimal number of vector components that may be required to effectively represent extractible software components. Other issues worth considering include the establishment of a set of datasets derived from popularly known test benchmarks that can be used as a common standard for comparison, evaluation and validation of newly introduced Aspect Mining techniques.
|
4 |
Views for aspectualizing component modelsHannousse, Abdelhakim, Ardourel, Gilles, Douence, Rémi January 2010 (has links)
Component based software development (CBSD) and aspectoriented software development (AOSD) are two complementary approaches. However, existing proposals for integrating aspects into component models are direct transposition of object-oriented AOSD techniques to components. In this article, we propose a new approach based on views. Our proposal introduces crosscutting components quite naturally and can be integrated into different component models.
|
5 |
Democratic Governance and Conflict Resistance in Conflict-prone Societies : A Consociational Analysis of the Experiences of Ghana in West Africa (1992-2016) / Gouvernance démocratique et résistance aux conflits dans les sociétés enclines aux conflits : Une analyse consociationnelle des expériences du Ghana en Afrique de l'Ouest (1992-2016)Musah, Halidu 13 December 2018 (has links)
Résumé Les conflits font partie intégrante de toutes les activités de la société. Ces conflits, cependant, deviennent indésirables lorsqu'ils parcourent la ligne de destruction élargie des biens et des personnes. La démocratie est un mécanisme visant à réglementer les opinions dissidentes et à harmoniser les intérêts multigrades pour une coexistence réussie et un développement national. La littérature suggère que la démocratisation est très difficile, sinon impossible, dans les sociétés pluralistes ou à clivage multiple. Pour surmonter cette difficulté, le consociationalisme a été suggéré comme une panacée qui permet un partage équitable formel du pouvoir et des ressources publiques parmi les facettes reconnues de la société plurielle. Sans cela, on suppose que toute tentative de démocratie est susceptible de s'effondrer et d'échouer. Le Ghana est un pays multiethnique avec au moins 92 groupes ethniques différents qui défie apparemment le raisonnement fondamental de la démocratisation consociative, parce qu'il a pratiqué la démocratie avec succès depuis plus de 25 ans sans nécessairement adopter des modèles consociatifs formels. Cette thèse situe le Ghana dans ce contexte théorique et examine les raisons de son succès malgré l'écart théorique par rapport au consociationalisme. L'approche de la méthode mixte a été adoptée dans l'étude, et 542 répondants ont été choisis à dessein pour l'observation. Les données recueillies par l'administration des questionnaires des entrevues ont révélé que le Ghana n'a pas connu de conflits violents à l'échelle nationale malgré les conflits ponctués à travers le pays en raison de la nature même de ses conflits internes; donc circonscrits par les circonstances géographiques, les causes des conflits, et les l'acteurs impliqués. Deuxièmement, l'étude révèle que, malgré l'existence de multiples clivages sociaux au Ghana, l'interaction sociale entre les personnes met plus d’accent sur les liens transversaux qui existent parmi les individus que sur les clivages qui les divisent, même s’il existe une prise de conscience du clivage élevée dans la société ghanéenne. En outre, la disposition constitutionnelle pour la démocratisation au Ghana englobe préalablement l'intérêt national au-dessus des intérêts de clivage. Elle interdit aussi les organisations politiques basées sur les clivages sociales. L'étude recommande qu'une plus grande attention soit accordée à l'éducation à la paix dans tout le pays, en impliquant formellement dans ce processus les pertinentes institutions traditionnelles et modernes, toutes formelles qu’informelles, au niveau de base de la société. Il est également impératif d'aborder d'urgence les causes profondes de la myriade de conflits qui couvrent la longueur et l'étendue du pays pour leur résolution durable afin d'améliorer la démocratisation pacifique. Les politiciens devraient éviter de s'immiscer dans les conflits locaux et permettre aux dispositions institutionnelles établies par le système démocratique ghanéen de traiter de manière décisive avec les questions de conflit. / Abstract Conflicts are part and parcel of every societal endeavour. These conflicts however, become undesirable when they travel along the widening line of destruction of property and persons. Democracy is one mechanism aimed at regulating dissenting views and harmonising multi-group interests for successful, peaceful coexistence and national development. There is growing establishment in the literature that democratisation is very difficult, if not impossible, in pluralistic or multi-cleavage societies. To surmount this difficulty, consociationalism has been suggested as a panacea which allows formal equitable sharing of power and public resources among recognised facets of the plural society. Without this, it is assumed any attempt at democracy is most likely to crumble and fail. Ghana is a multi-ethnic country with at least 92 different ethnic groups which is seemingly defying the basic reasoning of consociational democratisation because it has successfully practised democracy for over 25 years without necessarily adopting formal consociational models. This thesis situated Ghana within this theoretical context and examined the reasons behind Ghana’s democratic success despite the theoretical deviation from consociationalism. Mixed-method approach was adopted in the study, and 542 respondents were purposefully selected for observation. Data gathered through interview and questionnaire administration revealed that Ghana has not experienced nation-wide violent conflicts in spite of the dotted conflicts across the country due to the very nature of its internal conflicts; thus circumscribed by the geographical, issue, and actor-based circumstances. Second, the study found that despite the existence of multiple social cleavages in Ghana, social interaction among the people places emphasis on crosscutting ties that exist among them, than on the cleavages that divide them even if cleavage awareness is high in Ghanaian society. In addition, constitutional framework for democratisation in Ghana formerly enshrines national interest above cleavage interests and prohibits political organisations based on cleavages. The study recommends that more attention be paid to peace education across the country by formally involving both relevant formal and informal traditional and modern institutions at the basic level of society in this peace education process. It is also imperative to address as a matter of urgency the root causes of the myriad of conflicts that span the length and breadth of the country for their sustainable resolution to enhance peaceful democratisation. Politicians should avoid meddling in local conflicts and allow the institutional frameworks established by the Ghanaian democratic system to deal decisively with conflict issues
|
6 |
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.
|
7 |
Aspect Mining Using Model-Based ClusteringRand McFadden, Renata 01 January 2011 (has links)
Legacy systems contain critical and complex business code that has been in use for a long time. This code is difficult to understand, maintain, and evolve, in large part due to crosscutting concerns: software system features, such as persistence, logging, and error handling, whose implementation is spread across multiple modules. Aspect-oriented
techniques separate crosscutting concerns from the base code, using separate modules called aspects and, thus, simplifying the legacy code. Aspect mining techniques identify aspect candidates so that the legacy code can be refactored into aspects.
This study investigated an automated aspect mining method in which a vector-space model clustering approach was used with model-based clustering. The vector-space model clustering approach has been researched for aspect mining using a number of different heuristic clustering methods and producing mixed results. Prior to this study,
this model had not been researched with model-based algorithms, even though they have grown in popularity because they lend themselves to statistical analysis and show results that are as good as or better than heuristic clustering methods.
This study investigated the effectiveness of model-based clustering for identifying aspects when compared against heuristic methods, such as k-means clustering and agglomerative hierarchical clustering, using six different vector-space models. The study's results indicated that model-based clustering can, in fact, be more effective than heuristic methods and showed good promise for aspect mining. In general, model-based algorithms performed better in not spreading the methods of the concerns across the multiple clusters but did not perform as well in not mixing multiple concerns in the same cluster. Model-based algorithms were also significantly better at partitioning the data such that, given an ordered list of clusters, fewer clusters and methods would need to be analyzed to find all the concerns. In addition, model-based algorithms automatically determined the optimal number of clusters, which was a great advantage over heuristic-based algorithms. Lastly, the study found that the new vector-space models performed better, relative to aspect mining, than previously defined vector-space models.
|
8 |
"Um método para o desenvolvimento de software baseado em componentes e aspectos" / "A method for aspect and component based software development"Eler, Marcelo Medeiros 31 March 2006 (has links)
Uma investigação sobre como a programação orientada a aspectos combinada com a tecnologia de componentes pode encapsular os interesses transversais de um sistema é apresentada. Como resultado desta investigação, um método para o desenvolvimento de software baseado em componentes e aspectos é proposto, cujas etapas, atividades e artefatos são mostrados por meio do exemplo de um Sistema de Reservas de Hotéis, juntamente com sua implementação nas linguagens JAsCO e AspectJ. O método é uma extensão do método UML Components e utiliza a UML com algumas adaptações. Além disso, uma estratégia de generalização e documentação de componentes transversais para que possam ser reusados em outras aplicações é proposta. Adicionalmente, o método proposto foi usado para o projeto de um Sistema de Locação de Carros e o resultado foi comparado com uma outra solução para o mesmo problema, baseada em UML Components e uma arquitetura geral para sistemas na Web. O resultado dessa comparação é apresentado e discutido. / An investigation about how aspect oriented programming combined with the components technology can encapsulate the crosscuting concerns of a system is presented. As result of this research, a method for the aspect and component based software development is proposed, whose phases, activities and designs elements are shown by means of an example of a Hotel Reservation System, with its implementation in the JAsCO and AspectJ languages. The method is an extension of the UML Components method and uses UML with some adaptations. Moreover, a strategy to the generalization and documentation of crosscutting (or aspectual) components to be reused in other applications is proposed. Additionally, the proposed method was used to design a Car Rental System and the result was compared with another solution for the same problem, based on UML Components and a general architecture for Web systems. The results of the comparation are presented and discussed.
|
9 |
An Evaluation Of Aspect-oriented Programming For Embedded Real-time SystemsKartal, Yusuf Bora 01 May 2007 (has links) (PDF)
Crosscutting concerns are the issues in software that cannot be modularized within a software module. In this thesis work, a detailed evaluation of the use of Aspect Oriented Programming for the implementation of crosscutting concerns in embedded real-time systems is presented. The pilot Audio Switch project implementations are first evaluated in terms of software quality attributes. Then a detailed analysis of the two implementations, according to embedded real-time performance metrics has been carried out. Evaluation results show the benefits of Aspect Oriented Programming in embedded real-time systems.
|
10 |
Um método de refatoração para modularização de interesses transversais / A refactoring method for crosscutting concerns modularisationSilva, Bruno Carreiro da January 2009 (has links)
Sistemas de software bem modularizados podem trazer diversos benefícios como reu- sabilidade, compreensão, adaptabilidade, manutenibilidade, entre outros. O conceito de separação de interesses está diretamente ligado à ideia de modularização e consiste na capacidade de manter cada interesse em sua própria unidade modular. Um interesse pode estar relacionado tanto a requisitos funcionais como não-funcionais e em diferentes níveis de abstração. Algumas das técnicas que têm sido utilizadas para modularização de interes- ses são a Programação Orientada a Aspectos (POA) e Refatoração. Entretanto, a maioria das propostas de refatoração que envolvem a POA possui limitações para a modularização de interesses transversais: muitas delas são de granularidade fina; algumas são definidas imprecisamente e possuem sobreposição de intenções. A seleção e composição de tais refatorações para a modularização de interesses é uma tarefa difícil e não-trivial, além de variar em cada contexto específico, o que dificulta o reuso. Algumas das propostas de refatorações são voltadas especialmente para interesses transversais, no entanto possuem um nível de abstração pouco elevado e encontram-se acopladas a mecanismos específicos de linguagens de programação OO e OA. Adicionalmente, a aplicação de refatorações deve ser planejada e acompanhada sistematicamente durante o desenvolvimento e manu- tenção de um software, pois envolve alocação de recursos e avaliação de custo/benefício. O objetivo deste trabalho é apresentar um método de refatoração para modularização de interesses transversais, através de refatorações de granularidade alta, baseado em padrões recorrentes de estruturas transversais (chamados de sintomas). Além disso, como parte do método, propõem-se algoritmos para análise de impacto a fim de apoiar desenvolve- dores no processo decisório de aplicação de refatorações candidatas. Inicialmente, dois estudos bibliográficos foram conduzidos: o primeiro sobre propostas de refatorações que envolvem aspectos e o segundo sobre trabalhos de medição de interesses. Dois estudos de caso foram realizados totalizando 22 interesses de dois sistemas alvos. Este trabalho de avaliação possibilitou uma análise quantitativa e qualitativa dos resultados onde foi possível verificar a aplicabilidade do proposta. / Well-modularized software systems can bring several benefits such as reuse, com- prehension, adaptability, maintainability, among others. The concept of separation of concerns refers to the idea of modularisation, which consists on the ability to keep every concern in its own modular unit. A concern can refer to functional and non-functional requirements and can also be in different abstraction levels. Some of the techniques which have been applied for crosscutting concerns modularization are Aspect-Oriented Programming (AOP) and Refactoring. However, most of the aspect-oriented refactor- ings have limitations regarding the modularisation of crosscutting concerns. A number of them presents fine-grained transformations. While some of them are well-documented catalogues, a number of them are defined imprecisely, addressing the same situation and having overlapping intentions. They do not allow the designer to holistically reason about the elements involved in a crosscutting concern. It becomes difficult and non-trivial to choose a set of fine-grained refactorings and organize them in a feasible order to achieve the concern modularisation in a specific context. Some of the refactoring techniques are particularly focused on crosscutting concerns, however they are not placed in a suf- ficient abstraction level. Moreover they are coupled to specific OO and AO language mechanisms. Additionally, the application of refactorings should be planned and realized systematically during software development and maintenance since it involves resource allocation and tradeoff analysis. The goal of this work is to present a refactoring method for crosscutting concerns modularisation, through coarse-grained refactorings based on recurring patterns of crosscutting shapes (called symptoms). Also, as part of the method, algorithms for change-impact analysis are proposed in order to support developers during the decision process of the application of refactoring candidates. Initially, two biblio- graphic studies were made: the first one about refactoring approaches which involve as- pects, and the second one about concern measurement techniques. Two case studies were carried out totalizing 22 concerns of two target systems. This evaluation work allowed a quantitative and qualitative analysis of the results. Thus it was possible to verify the applicability of our approach.
|
Page generated in 0.0792 seconds