• Nenhum resultado encontrado

Um exemplo do SME em ação

5.3 SourceMiner Evolution SME

5.3.2 Um exemplo do SME em ação

A Figura5.4mostra um exemplo do SME no IDE Eclipse. Nesta figura, é possível ver as cinco visões e três filtros do SME, além do editor do Eclipse. Como qualquer plug-in do Eclipse, o usuário pode organizar as visões de acordo com o seu interesse. Depois disso, ele pode salvar a configuração para uso futuro. Desta forma, pode-se criar e salvar diferentes configurações de exibição para diferentes tarefas de software. Essas configurações não precisam incluir todas as visões do SME, e podem ser utilizados em combinação com outras visões e plug-ins do Eclipse. As visões do SME estão integradas entre si e com o Editor de Eclipse. Conforme descrito antes, o usuário pode navegar facilmente entre elas através dos mecanismos de interação fornecidos pela ferramenta.

Para facilitar a explicação, a Figura 5.4 é dividida em nove regiões rotuladas de A a I. Considere a Figura5.4-A no canto superior esquerdo, por exemplo. Ela tem duas visões. Em cima, ela mostra a visão de Filtro de evolução do SME (Filtro EvolutionFilter View), e escondido debaixo dela, a visão Project Explorer do Eclipse . Os filtros de evolução do SME permitem selecionar as estratégias, as versões que estão sendo comparadas, e as métricas usadas em cada uma das visões globais (Treemap, Polymetric e Dependency).

5.3. SOURCEMINER EVOLUTION - SME

Na Figura5.4-A, a estratégia escolhida é a Diferencial Relativa (DR). A opção “Metrics evolution” está selecionada no componente Evolution Strategy, a qual permite visualizar a evolução Diferencial Relativa das métricas disponíveis nas visões globais. As duas versões selecionadas (veja a barra) são as versões 2 e 3. Assim, como explicado anteriormente, todas as três visões globais retratam os elementos da terceira versão comparando-os com a segunda versão de software. Qualquer mudança nessa barra deslizante será imediatamente refletida nas visões globais do SME.

A Figura5.4-B apresenta os filtros gerais do SME, oriundos do SM. Esses filtros permitem trabalhar com propriedades sintáticas e estruturais do software, tais como, substrings de nomes de módulos de software ou seus tamanhos em linhas de código. Como mencionado antes, qualquer operação no filtro será imediatamente refletida em todas as visões globais da SME. Desta forma, pode-se facilmente selecionar para mostrar todos os módulos que atendam a determinados critérios de inclusão. Por exemplo, mostrar apenas as classes que começam com a substring"Dados"e têm tamanho maior do que 10 linhas de código.

A Figura5.4-C possui duas visões do SME. A que está oculta é a visão de filtro FeatureFilter View. Esse filtro é usado para mapear cores para as features nas visões globais (Carneiro et al., 2010). A outra é a visão de filtro TimelineFilter View. Este filtro tem componentes especificamente projetados para interagir com a visão Timeline Matrix. Com isso, é possível, por exemplo, mapear as métricas e atributos visuais para cada uma dos três Timelines mostrados na Figura5.4-D. Aqui, é importante notar que uma visão de filtro separada é fornecida para os Timelines, pois esta visão usa uma estratégia diferente, e, consequentemente, precisa de uma estratégia de interação diferente das visões globais.

A Figura 5.4-D apresenta a visão Timeline Matrix. No exemplo, o primeiro Timeline apresenta a evolução de um método específico. Como a métrica mapeada - linhas de código - aumenta através das versões apresentadas (2, 3 e 4), a intensidade da cor verde aumenta no Timeline. O segundo Timeline retrata a evolução de um determinado pacote. Neste caso, a métrica acoplamento aferente é mapeada para a altura do retângulo no filtro TimelineFilter View. A métrica aumenta da versão 1 para 2 e permanece constante da versão 2 para a 3. O terceiro Timelineapresenta a evolução de uma classe. A métrica número de métodos é mapeada para a largura do retângulo, novamente no filtro TimelineFilter View. A métrica aumenta através das versões 2, 3, e 4. Embora não explicitamente mostrado na5.4-D, o usuário pode facilmente verificar os valores de métricas reais através de tooltips. No exemplo, são: (1) 154, 218 e 246 linhas de códigos para o módulo do primeiro Timeline, (2) acoplamento aferente igual a dois, três e três para o segundo, e (3) 9, 12 e 15 métodos para o módulo do terceiro Timeline.

acessar o código fonte de qualquer módulo de interesse. Para isso, o usuário precisa apenas utilizar a opção “ctrl+clique” do mouse em um elemento visual que representa esse módulo em uma das visões do SME.

A Figura 5.4-F apresenta a visão Parallel Coordinates. Ela está mostrando a evolução completa de um método específico em relação a duas métricas escolhidas: linhas de código e complexidade. Observe que, neste exemplo, a complexidade é baixa e constante a partir da versão de 2 até 4, enquanto que o tamanho em linhas de código está sempre aumentando.

A Figura5.4-G apresenta a visão Treemap. Como selecionado na barra de versões da Figura

5.4-A, os elementos da versão três são representados nessa visão global e as cores representam a comparação com os elementos da versão dois. Neste exemplo, as cores são mapeadas para linhas de código (ver a Figura5.4-A, opção Treemap Options). A visão Treemap indica que há vários elementos (métodos) que não têm qualquer alteração (branco), que aumentaram de intensidade (vermelho) e novos elementos (azul) a partir da versão dois para a versão três do software.

Na Figura 5.4-H é apresentada a visão Polymetric. Como no Treemap, os elementos da versão três estão representados nesta visão, e comparados com os elementos da versão dois. Neste exemplo, as cores dos elementos na visão Polymetric são mapeadas para o número de métodos (ver a Figura5.4-A, opção Polymetric Options). A visão Polymetric indica que existem vários elementos (classes) que não têm nenhuma mudança (branco) em número de métodos, três elementos que aumentaram (intensidade de vermelho), um elemento que diminuiu (verde) e dois novos elementos (azul) da versão dois para a versão três do software analisado.

Finalmente, a Figura 5.4-I apresenta a visão Dependency. Como nas outras duas visões globais, os elementos da versão três são apresentados e comparados com os elementos da versão dois. Neste exemplo, as cores dos elementos da visão Dependency são mapeados para a métrica acoplamento eferente (ver a Figura5.4-A, opção Coupling Options). A visão indica que existem vários elementos que não têm nenhuma mudança (branco), um elemento que tem aumentado (vermelho) nesta métrica selecionada, e dois novos elementos (azuis) da versão dois para a versão três do software.