Return to search

Uma abordagem para detecção de padrões emergentes. / An approach for detecting emerging patterns.

Submitted by Johnny Rodrigues (johnnyrodrigues@ufcg.edu.br) on 2018-06-12T16:16:04Z
No. of bitstreams: 1
RICARDO DE SOUSA JOB - DISSERTAÇÃO PPGCC 2014..pdf: 17381707 bytes, checksum: e786d3893958cbeb0121a19fae52628c (MD5) / Made available in DSpace on 2018-06-12T16:16:04Z (GMT). No. of bitstreams: 1
RICARDO DE SOUSA JOB - DISSERTAÇÃO PPGCC 2014..pdf: 17381707 bytes, checksum: e786d3893958cbeb0121a19fae52628c (MD5)
Previous issue date: 2014-12-05 / Capes / Padrões de Projeto são soluções consolidadas para problemas de projeto de software recorrentes. São utilizados amplamente em projetos de software orientados a objetos, tornando-se um artifício de comunicação de soluções conhecidas dentro das equipes de desenvolvimento. É importante que o projetista consiga detectar e identificar os padrões de projetos numa base de código, para compreender as relações entre as classes, como fornecer sugestões úteis para a compreensão e evolução do sistema. Para detecção automática de padrões existem basicamente duas técnicas: análise estática e dinâmica. No primeiro passo, as relações e colaborações estruturais são extraídas. Já no segundo passo monitora-se a execução do programa, rastreando o conjunto de padrões selecionados no passo anterior para identificar quais padrões comportam-se como o esperado. As técnicas de detecção atuais, no entanto, limitam-se a análises estruturais restritivas, omitindo casos em que o comportamento de um padrão está presente, mesmo que não siga a organização estrutural prevista na literatura. Chamamos de padrões emergentes estes casos em que o comportamento de um determinado padrão está presente, mesmo que certa região do código apresente estruturação livre. Por exemplo, a essência do padrão de projeto Singleton está presente em uma classe qualquer quando esta possui apenas uma única instância durante as execuções de um programa, mesmo que não haja restrição sintática para que isso seja possível; ou seja, o padrão Singleton
emerge deste comportamento de um determinado elemento do programa. Ao auxiliar
o desenvolvedor na detecção de situações de projeto como esta, pode-se enriquecer o seu conhecimento sobre as consequências de suas decisões, além de propiciar a estruturação explícita do padrão como conhecida, facilitando assim a documentação e comunicação do projeto. Este trabalho explora o conceito de padrões emergentes através das seguintes contribuições: (i) uma revisão sistemática sobre abordagens automáticas de detecção de padrões de projeto, (ii) conceitos de padrões emergentes para vários padrões de projeto bem conhecidos, (iii) uma proposta de abordagem semi-automática de detecção de padrões emergentes e (iv) sua utilização para uma análise de ferramentas de detecção existente acerca de sua capacidade de identificação de padrões emergentes em alguns projetos de código aberto Java. / Design Patterns are Consolidated solutions to recurring software design problems. They
are widely used in object-oriented software design, as communication device of well known
solutions within development teams. It is important that the software designer detects and
identifies design patterns in a code base, to understand the relationships between classes,
provide useful suggestions for the understanding and evolution of the system. For automatic
detection of patterns there are basically two techniques: static and dynamic analysis. On the
first step, relations and structural collaborations are extracted. In the second step, the program
execution is monitored, tracking the selected set of patterns in the first step to identify
which patterns behave as expected. However, the current detection techniques are limited to
restrictive structural analysis, omitting cases where the behavior of a pattem is presente, even
if not follow the structural organization provided in the literature. We call emerging patterns
when the behavior of a given pattern is present, even if some code's region presents a free
structure. For example, the essence of the Singleton design pattern is present in any given
class when it has only a single instance during the execution of a program, even without
syntactic restriction for this to be possible; that is, the Singleton pattern emerged from this
program element behavior. When developers are assisted in detecting design situations like
this, they can enhance their knowledge about the consequences of their decisions, as well
as providing the explicit structure of the pattern, facilitating the documentation and communication
of the project. This paper explores the concept of emerging patterns through the
following contributions: (i) a systematic review of automatic detection approaches of design
patterns, (ii) concepts of emerging patterns for several well-known design patterns, (iii)
a proposal for semi-automatic detection approach of emerging patterns and (iv) its use for
an analysis of existing detection tools about tíieir ability to identify emerging patterns in an
open-source Java project

Identiferoai:union.ndltd.org:IBICT/oai:localhost:riufcg/944
Date12 June 2018
CreatorsJOB, Ricardo de Sousa.
ContributorsMASSONI, Tiago Lima., GHEYI, Rohit, GUERRERO, Dalton Dario Serey., SOARES, Sergio Castelo Branco.
PublisherUniversidade Federal de Campina Grande, PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO, UFCG, Brasil, Centro de Engenharia Elétrica e Informática - CEEI
Source SetsIBICT Brazilian ETDs
LanguagePortuguese
Detected LanguagePortuguese
Typeinfo:eu-repo/semantics/publishedVersion, info:eu-repo/semantics/masterThesis
Sourcereponame:Biblioteca de Teses e Dissertações da UFCG, instname:Universidade Federal de Campina Grande, instacron:UFCG
Rightsinfo:eu-repo/semantics/openAccess

Page generated in 0.0017 seconds