1 |
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.
|
2 |
A Framework for Monitorable Services ImplementationCARDOSO, David Menezes 16 February 2012 (has links)
Submitted by Pedro Henrique Rodrigues (pedro.henriquer@ufpe.br) on 2015-03-04T17:46:47Z
No. of bitstreams: 2
dissertation_dmc4_final.pdf: 2547061 bytes, checksum: 37ab52f20fadfed5e6ba1cfb7649f971 (MD5)
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5) / Made available in DSpace on 2015-03-04T17:46:47Z (GMT). No. of bitstreams: 2
dissertation_dmc4_final.pdf: 2547061 bytes, checksum: 37ab52f20fadfed5e6ba1cfb7649f971 (MD5)
license_rdf: 1232 bytes, checksum: 66e71c371cc565284e70f40736c94386 (MD5)
Previous issue date: 2012-02-16 / Since the very first graphical user interfaces, progress indicators have been widely used to provide
feedback regarding the execution of a system long-running tasks. In fact, practical experience
and formal experiments suggest that such indicators are an important user interface
tool, as they enhance the attractiveness and effectiveness of the programs that incorporate them.
However, in order to make progress feedback possible, the system services involved must provide
on-line monitoring capabilities. As the software systems become increasingly larger and
more complex — often involving complex interactions between various different components
and abstraction layers —, the crosscutting nature of monitoring concerns can introduce several
inherent challenges to the software development: (1) code quality degradation with respect
to tangling and scattering; (2) costly software evolution and maintenance difficulties; (3) absence
of specific development patterns and regular standardized process guidance; (4) loss of
development productivity; and (5) inconsistent monitoring results.
In this context, this work provides an analysis of monitoring requirements, possible approaches
towards its implementation along with an analysis of the main benefits and weaknesses
involved. Furthermore, it is proposed and evaluated a solution to aid the software development
by overcoming the monitoring-related inherent challenges, rather by mitigating or completely
eliminating the problems. The solution consists of a framework, extended libraries, and generic
software process guidelines regarding the monitoring requirements, with focus on the Rational
Unified Process (RUP), for exemplification purpose, but not limited to it.
|
3 |
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.
|
4 |
Identificando interesses transversais em modelos de requisitos PL-AOVgraphMedeiros, Ma?ra de Faria Barros 04 February 2013 (has links)
Made available in DSpace on 2014-12-17T15:48:08Z (GMT). No. of bitstreams: 1
MairaFBM_DISSERT.pdf: 2457675 bytes, checksum: 89599b0e4d22e348438de0c61dc6f914 (MD5)
Previous issue date: 2013-02-04 / Conselho Nacional de Desenvolvimento Cient?fico e Tecnol?gico / The occurrence of problems related to the scattering and tangling phenomenon, such as the difficulty to do system maintenance, increasingly frequent. One way to solve this problem is related to the crosscutting concerns identification. To maximize its benefits, the identification must be performed from early stages of development process, but some works have reported that this has not been done in most of cases, making the system development susceptible to the errors incidence and prone to the refactoring later. This situation affects directly to the quality and cost of the system. PL-AOVgraph is a goal-oriented requirements modeling language which offers support to the relationships representation among requirements and provides separation of crosscutting concerns by crosscutting relationships representation. Therefore, this work presents a semi-automatic method to crosscutting concern identification in requirements specifications written in PL-AOVgraph. An adjacency matrix is used to identify the contributions relationships among the elements. The crosscutting concern identification is based in fan-out analysis of contribution relationships from the informations of adjacency matrix. When identified, the crosscutting relationships are created. And also, this method is implemented as a new module of ReqSys-MDD tool / A ocorr?ncia de problemas relacionados aos fen?menos de espalhamento e entrela?amento, tal como a dificuldade de manuten??o do sistema, ? cada vez mais frequente. Uma tentativa de resolver este problema est? relacionada ? identifica??o de interesses transversais. Para maximizar seus benef?cios, a identifica??o deve ser realizada desde as etapas iniciais do processo de desenvolvimento, por?m alguns trabalhos relatam que isto n?o tem sido feito na maioria dos casos, tornando o desenvolvimento do sistema suscet?vel ? ocorr?ncia de erros e propensos ? refatora??es em fases posteriores. Esta situa??o afeta diretamente ? qualidade e o custo do sistema. PL-AOVgraph ? uma linguagem de modelagem de requisitos orientada a metas que oferece suporte para representa??o dos relacionamentos entre requisitos e prov? separa??o de interesses transversais atrav?s da representa??o de relacionamentos transversais. Diante disso, esse trabalho apresenta um m?todo semi-autom?tico para identifica??o de interesses transversais em especifica??es de requisitos escritas em PL-AOVgraph. Uma matriz de adjac?ncia ? utilizada para a identifica??o dos relacionamentos de contribui??o entre os elementos. A identifica??o de interesses transversais ? baseada na an?lise fan-out dos relacionamentos de contribui??o a partir das informa??es da matriz de adjac?ncia. Quando identificados, os relacionamentos transversais s?o criados. Esse m?todo est? implementado como um novo m?dulo da ferramenta ReqSys-MDD
|
Page generated in 0.0827 seconds