Uma Ferramenta para Visualização de
Relacionamentos de Rastreamentos
Iago Luiz Teixeira de Moraes
Orientador: Gilberto A. de A. Cysneiros Filho
Plano de Trabalho Individual do Bolsista submetido para o Edital
FACEPE 02/2012
Abril 2012
1. Introdução
Para informação de rastreamento ser útil, ela deve refletir as dependências correntes entre os
artefatos, contudo o custo e esforço para identificar e manter os relacionamentos de
rastreamento e alto.
Em pesquisas anteriores, nós somente lidamos com o problema de identificar
relacionamentos de rastreamente automaticamente. Nós acreditamos que seria bastante útil
estender nossa abordagem para suportar a visualização e navegação dos relacionamentos.
Nossa experiência tem demonstrado que um grande número de relações são identificadas
automaticamente entre os vários modelos e é importante ter uma maneira melhor de
visualizar e manipular esses relacionamentos do que o tem sido feito atualmente pela nossa
abordagem. A versão atual de nossa ferramenta permite a criação de relatórios em HTML
das relações identificados pela abordagem que podem ser vistas através de um navegador,
mas reconhecemos que são necessários outras formas de visualização e de navegação dos
relacionamentos identificados pela abordagem.
Marcus et al. apresenta (Marcus, et al., 2003) um conjunto de requisitos que são necessários
para se criar uma ferramenta que suporte a visualização dos relacionamentos de
rastreamento. Exemplos desses requisitos são: i) permitir que o usuário navegue nos
relacionamentos através de várias maneiras; ii) permitir que o usuário adicione, remova e
modifique propriedades dos relacionamentos identificados e dos artefatos relacionados; iii)
integração com ferramentas usadas para desenvolver, testar e manter o sistema; iv) fornecer
gerenciamento de configuração e maneiras de rastrear mudanças; v) fornecer suporte a vários
formatos de representação de dados; vi) fornecer suporte para consultar e filtrar os
relacionamentos de rastreamento; vii) oferecer maneiras flexíveis e customizáveis para se
visualizar informações de rastreamento; Nós podemos usar esses requisitos como base para a
criação da nossa ferramenta para visualização e navegação dos relacionamentos de
rastreamentos.
As maneiras mais comuns para se mostrar relacionamentos de rastreamento segundo são
através do uso de matrizes, referências cruzadas e representação baseada em grafos.
Uma matriz de rastreamento é uma grade bi-dimensional que representa os relacionamentos
de rastreamentos que existem entre dois conjuntos de tipos de artefatos, tais como: requisitos
e elementos de projeto. As linhas e colunas da grade são associadas com os artefatos e as
marcas (normalmente um X ou uma seta) representam a existência de um relacionamento.
Essa forma de visualização é a mais tradicional na área de rastreamento de requisitos.
No início, matrizes de rastreamento somente forneciam suporte para um único tipo de marca
para representar a existência de um relacionamento entre dois artefatos, atualmente o tipo do
relacionamentos podem ser representados usando diferentes cores e símbolos. Além disso,
informações adicionais sobre os relacionamentos e artefatos podem ser obtidas, por exemplo,
através do clique do mouse.
As vantagens do uso de matrizes é que elas são fáceis de enteder. Contudo para projetos
reais onde o número de relacionamentos é muito grande, ela se torna mais díficil de ler.
Além disso, as matrizes não mostram a hierarquia inerente dos relacionamentos, como
também com o uso de matrizes é díficil de se navegar através do relacionamentos entre os
artefatos recursivamente.
Relacionamentos de rastreamento também podem ser expressos usando referências cruzadas.
Referências cruzadas são usadas, por exemplo, quando nós fazemos uma referência a figura
no texto (ex. veja Figura X) ou fazemos referência a uma sentença de um livro. Mais
recentemente, referências cruzadas tem sido representadas da forma de um hyperlink que
permite a navegação para o elemento fonte da informação através do hyperlink.
Normalmente, ferramentas mostram os relacionamentos de um artefato usando uma visão
hierárquica representados numa forma de uma árvore. O uso de referência cruzada torna
mais difícil de se ter a visão geral dos relacionamentos e portanto é mais difícil de encontrar
relacionamentos que não foram identificados ou foram identificados incorretamente.
Usando grafos, artefatos podem ser intrepretados como nós e relacionamentos de
rastreamento como vértices. Uma representação usando grafos pode precisar de menos
espaço para representar uma informação global sobre os relaciomentos. As principais
desvantagens do uso da notação de grafo é que elas são menos intuitivas do que matrizes e
referências curzadas. Além disso, a adição de relacionamentos de rastreamento aos
diagramas existente é uma tarefa complexa.
Além desses três tipos de visualização tradicionais existem vários trabalhos que usam novas
técnicas para visualização de rastreamento.
Por exemplo, Marcus et al. (Marcus et al. 2005) desenvolveu um protótipo de uma
ferramenta chamado TraceViz que se integra com o Eclipse IDE e permite navegação entre
as informações de rastreamento no TraceViz e do código fonte no Eclipse. TraceViz é
composto de três principais áreas: a área dos elementos, a área dos relacionamentos de
rastreamento e área de informação. A área dos elementos mostra os elementos fonte e
destino numa forma hierárquica de uma árvore. A área dos relacionamentos mostra todos os
relacionamentos para um específico elemento selecionado na área de elementos. Os
relacionamentos são agrupados em categorias que pode ser selecionadas. A área de
informação contém todas as propriedades e história de navegação de um determinado
relacionamento.
Outra técnica de visualização de relacionamento de rastreamento foi proposta por Voytek et
al. (Voytek et al, 2011). A técnica é baseada numa representação baseada em grafos
composto de anéis que representam o artefato de projeto e nós que representam os
relacionamentos.
Heim et al. também apresenta uma abordagem baseada em grafos que representa requisitos
como nós e relacionamentos como vértices. A abordagem trata o problema que grafos não
escalam bem para grande quantidade de dados se tornando díficil de entender, mostrando
apenas um conjunto limitado de elementos baseado no contexto.
Nossa metodologia de trabalho será investigar a literatura e as pesquisas realizadas para
exibir informações de relacionamento de rastreamento. Baseado nesse estudo e nos
requisitos propostos por (Marcus, et al., 2003) para se criar uma ferramenta que suporte a
visualização dos relacionamentos de rastreamento nós desenvolveremos uma ferramenta
para visualização de relacionamentos de rastreamento.
Em particular, nós pretendemos investigar a viabilidade do uso de grafos acíclicos (directed
acycllic graph – DAGs) para criar uma ferramenta de visualização para mostrar
relacionamentos de rastreamento. DAGs podem ser usados para modelar diferentes tipos de
estrutura na matemática e ciência da computação. Você poderia por exemplo usar XML para
codificar um DAG que representa as relações de rastreamento de artefatos de software. Tais
grafos, por exemplo, poderiam ser úteis para mostrar caminhos críticos.
Existem várias ferramentas que suportam a representação de grafos, tais como: Graphviz,
yEd, Microsoft Automatic Graph Layout, Tom Sawyer Software e Tulip. Uma possibilidade
seria investigar a possibilidade de integrar essas ferramentas com nossa abordagem de
rastreamento.
2. Cronograma de Atividades
Meses
6 7 8
1 2 3 4 5
9 10 11 12
ATIVIDADES
Revisão Bibliográfica
X X X
Desevolvimento dos Estudo de Casos
X X
Projeto da Ferramenta de Visualização
X X
Implementaçaõ da Ferramenta de Visualização
X X X
Avaliar os resultados
X X
Elaborar um artigo com os resultados
X
3. Bibliografia
Asuncion, H., François, F., & Taylor, R. (2007). An end-to-end industrial software
traceability tool. Proceedings of the the 6th Joint Meeting of the European Software
Engineering Conference and the ACM SIGSOFT Symposium on the Foundations of Software
Engineering, Dubrovnik, Croatia.
Cleland-Huang, J., Chang, C., & Christensen, M. (2003). Event-based traceability for
managing evolutionary change. IEEE Trans. Software Eng., 29(9), 796-810.
Cysneiros, G., Zisman, A., & Spanoudakis, G. (2003). A traceability approach for i* and
UML models. Proceedings of 2nd International Workshop on Software Engineering for
Large-Scale Multi-Agent Systems - ICSE 2003, Portland, USA.
Cysneiros, G. & Zisman, A. (2007). Traceability for agent-oriented design models and code.
Proceedings of the 4th ACM International Workshop on Traceability in Emerging Forms of
Software Engineering (GCT/TEFSE’07), Lexington, KY, USA.
Cysneiros, G. & Zisman, A. (2007). Tracing agent-oriented systems. Proceedings of the The
Nineteenth International Conference on Software Engineering and Knowledge Engineering
(SEKE'2007), Boston, Massachusetts, USA, 552-558.
Cysneiros, G., & Zisman, A. (2008). Traceability and completeness checking for agentoriented systems. Proceedings of the 2008 ACM Symposium on Applied Computing,
Fortaleza, Ceara, Brazil. 71-77.
De Lucia, A., Fasano, F., Oliveto, R., & Tortora, G. (2007). Recovering traceability links in
software artifact management systems using information retrieval methods. ACM
Trans.Softw.Eng.Methodol., 16(4).
De Lucia, A., Oliveto, R., & Tortora, G. (2008). Adams re-trace: Traceability link recovery
via latent semantic indexing. Proceedings of the 30th International Conference on Software
Engineering, Leipzig, Germany. 839-842.
Dick, J. (2002). Rich Traceability. Proceedings of the 1st International Workshop on
Traceability for Emerging forms of Software Engineering . Edinburgh, UK
Gotel, O. & Finkelstein, A. (1994). An analysis of the requirments traceability problem.
Proceedings of the 1st International Conference on Requirements Engineering. 94-101.
Gotel, O. & Morris, S. (2007). From Farm to Fork or a Bite of the Unknown: Learning from
the Food Industry. Proceedings of the 4th ACM International Workshop on Traceability in
Emerging Forms of Software Engineering (GCT/TEFSE’07), Lexington, KY, USA.
Gotel, O. (2008). yTraceability – Putting the ‘y’ first. Requirements Quarterly: The
Newsletter of the Requirements Engineering Specialist Group of the British Computer
Society. RQ50.
Hayes, J. H., Dekhtyar, A., Sundaram, S. K., Holbrook, E. A., Vadlamudi, S., & April, A.
(2007). REquirements TRacing on target (RETRO): Improving software maintenance
through traceability recovery. ISSE, 3(3), 193-202.
Lormans, M. & Van Deursen, A. (2006). Can LSI help reconstructing requirements
traceability in design and test? Proceedings of the Conference on Software Maintenance and
Reengineering, 47-56.
Marcus, A., Maletic, J. I., & Sergeyev, A. (2005). Recovery of traceability links between
software documentation and source code. International Journal of Software Engineering and
Knowledge Engineering, 15(4), 811-836.
Murta, L. G. P., van der Hoek, A., & Werner, C. M. L. (2006). ArchTrace: Policy-based
support for managing evolving architecture-to-implementation traceability links.
Proceedings of the 21st IEEE/ACM International Conference on Automated Software
Engineering, 135-144.
Pinheiro, F. A. C. & Goguen, J. A. (1996). An object-oriented tool for tracing requirements.
IEEE Software, 13(2), 52-64.
Pohl, K. (1996). Process-centered requirements engineering. John Wiley & Sons, Inc.
Sherba, S. (2005). Towards automating traceability: An incremental and scalable approach.
(Unpublished doctoral dissertation). University of Colorado at Boulder, Boulder, USA.
Ramesh, B. & Jarke, M. (2001). Toward reference models for requirements traceability.
IEEE Transactions on Software Engineering, 27(1), 58-93.
Sharif, B. & Maletic J. (2007). Using fine-grained differencing to evolve traceability links,
Proceedings of the 4th ACM International Workshop on Traceability in Emerging Forms of
Software Engineering (GCT/TEFSE’07).
Voytek, J. & Núñez, J. (2011), Visualizing Non-Functional Traces in Student Projects in Information
Systems and Service Design. Proceedings of the CHI 2011.
Download

Uma Ferramenta para Visualização de Relacionamentos