Automactically Extracting Class Diagrams from Spreadsheets Universidade Federal de Minas Gerais hankelucas@gmail.com 3 de novembro de 2014
Sumário 1 Sobre os Autores 2 Introdução 3 Abordagem 4 Implementação 5 Avaliação 6 Discussão e Conclusão
Seção 1 Sobre os Autores
Felienne Hermans é professora assistente na Delft University of Technology e pesquisa sobre a aplicação de métodos de engenharia de software em planilhas. Martin Pinzger é professor de Engenharia de Software e chefe do Grupo de Pesquisa em Engenharia de Software na University of Klagenfurt, Austria. Arie van Deursen é professor de Engenharia de Software e chefe do Grupo de Pesquisa em Engenharia de Software na Delft University of Technology, Holanda.
Seção 2 Introdução
Introdução Desenvolvimento de software requer alto grau de familiaridade com o domínio do sistema Presunção de que o conhecimento sobre o domínio já se encontra em formulários eletrônicos
Planilhas (Spreadsheets) Introduzidas no início da década de 80 Fortemente utilizadas na indústria 30% da força de trabalho norte-americana utiliza (2005) Ricas fontes de informação (impĺıcita) sobre a estrutura de um domínio
Objetivo Tornar as estruturas presentes nas planilhas expĺıcitas Representação via diagrama de classes Sujeitos a refinamentos Grupos de dados => Classes Fórmulas => Métodos Dependência de dados => Associações
Exemplo Exemplo de planilha
Exemplo Diagrama de classes extraído
Proposta Automação na extração de diagrama de classes a partir de planilhas Análise de planilhas Excel Utilização de abordagem via padrões (patterns)
Seção 3 Abordagem
Tipos de Células: Label - Texto e informações sobre outras céluas Data - Célula com dados Formula - Cálculo a partir de outras células Empty - Vazia Linguagens de Padrões para Linguagens Bidimensionais Gramáticas de Padrões
Processo Padrões típicos de planilhas são: 1 Especificados 2 Automaticamente reconhecidos 3 Transformados em diagrama de classes
Visão Geral Processo é feito basicamente em dois passos
Reconhecimento de Padrões Passos na execução de reconhecimento de padrões
Usando Anotações Reconhecido o padrão, o resultado é uma parse tree Interesse na estrutura da planilha e não nos dados Adição de anotações aos nós que auxiliam nessa descoberta da estrutura
Usando Anotações Exemplo com planilha simples de clientes
Usando Anotações Visão Geral da transformação de uma parse tree para o diagrama de classes
Transformação da Parse Tree
Transformação da Parse Tree Transformação da Parse Tree da planilha de clientes
Enriquecimentos Associação - entre duas classes Merge - mesclagem de duas classes Referência - não presente no diagrama de classes
Padrões de Planilhas Classes simples Classes simples com nome Classes simples com métodos Agregação Dados Associados
Seção 4 Implementação
C#.net usando Visual Studio 2010, beta 1. Microsoft SQL Server Modeling platform Linguagem MGrammar para especificar a gramática das definições de padrões
Seção 5 Avaliação
Euses Spreadsheet Corpus: 4498 arquivos de planilhas únicos em 11 categorias Qualidade dos padrões escolhidos Qualidade dos mapeamentos
Qualidade dos Padrões Número e percentagem das planilhas que foram possíveis processar com a biblioteca de padrões do Gyro
Qualidade dos Mapeamentos Histrograma de classes(a), atributos(b) e métodos(c) corretamente mapeados
Qualidade dos Mapeamentos Visão geral da qualidade dos diagramas de classes extraídos
Seção 6 Discussão e Conclusão
Discussão Limitações de planilhas Limitações de diagramas de classes Além dos diagramas de classes Erros em planilhas Identificadores com sentido semântico Ameaças à validação
Conclusão Notação para a expressão de padrões de planilhas, bem como o algoritmo para análise bidimensional capaz de reconhecer esses padrões Abordagem sistemática para transformar padrões reconhecidos em diagramas de classe Biblioteca de padrões de frequente ocorrência Implementação dos métodos e biblioteca propostas no sistema Gyro Avaliação da abordagem proposta em um corpus de mais de 4000 planilhas
Muito obrigado