geração automática de planilhas eletrônicas a partir do ... · elaboração de planilhas...

6
Geração Automática de Planilhas Eletrônicas a partir do Modelo do Domínio Trabalho de Mestrado Léo C. R. Antunes (Aluno), Márcio de O. Barros (Orientador), Alexandre L. Correa (Orientador) Programa de Pós-graduação em Informática (PPGI) Departamento de Informática Aplicada – Universidade Federal do Estado do Rio de Janeiro (UNIRIO) Caixa Postal 22.290-240 – Rio de Janeiro – RJ – Brasil {leo.antunes,marcio.barros,alexandre.correa}@uniriotec.br Ano de Ingresso no Programa de Mestrado: 2011 Época esperada de conclusão: dez/2012 Etapas já concluídas: disciplinas cursadas, revisão da literatura e definição geral da proposta. Abstract. Spreadsheets are largely used in industry. However, building an error-free spreadsheet is not a simple task. This work aims at defining an approach to the automatic generation of spreadsheets from domain models based on concepts from Model Driven Development and Software Product Lines. Our main goal is to reduce construction effort and the number of defects in the resulting spreadsheets. Resumo. Planilhas eletrônicas são muito utilizadas na indústria. Entretanto, construir uma planilha sem defeitos para apoiar a resolução de um problema não é uma atividade simples. Este trabalho visa definir uma abordagem, baseada em conceitos das áreas de Desenvolvimento Baseado em Modelos e Linhas de Produtos de Software, para a geração automática de planilhas a partir de modelos de domínio. Com isso, objetivamos reduzir o esforço de construção e o número de defeitos presentes nas planilhas resultantes. Palavras-chave: planilhas, geração automática, modelo de domínio. 1. Introdução Planilhas eletrônicas foram introduzidas na década de 80, com o VisiCalc. Depois vieram o SuperCalc, Lotus 123, Quattro Pro, e atualmente o Microsoft Excel é a principal ferramenta proprietária deste segmento (Hermans et al., 2010). Além disso, existem ferramentas não proprietárias disponíveis e muito utilizadas, como o OpenOffice Calc e LibreOffice Calc. Desde sua introdução, planilhas são amplamente utilizadas na indústria. Scaffidi (2005) relata que cerca 30% da força de trabalho americana utiliza planilhas. Winston (2001) estima que 90% dos analistas na indústria envolvidos em análises em diferentes domínios, e.g. finanças, marketing, operações, 19 VIII Simpósio Brasileiro de Sistemas de Informação (SBSI 2012) V Workshop de Teses e Dissertações em Sistemas de Informação (WTDSI 2012)

Upload: duongkhanh

Post on 21-Nov-2018

216 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Geração Automática de Planilhas Eletrônicas a partir do ... · elaboração de planilhas visando evitar a introdução de erros, sendo orientados aos profissionais de apoio aos

Geração Automática de Planilhas Eletrônicas a partir do Modelo do Domínio Trabalho de Mestrado

Léo C. R. Antunes (Aluno), Márcio de O. Barros (Orientador), Alexandre L. Correa (Orientador)

Programa de Pós-graduação em Informática (PPGI)

Departamento de Informática Aplicada – Universidade Federal do Estado do Rio de Janeiro (UNIRIO)

Caixa Postal 22.290-240 – Rio de Janeiro – RJ – Brasil {leo.antunes,marcio.barros,alexandre.correa}@uniriotec.br

Ano de Ingresso no Programa de Mestrado: 2011

Época esperada de conclusão: dez/2012

Etapas já concluídas: disciplinas cursadas, revisão da literatura e definição geral da proposta.

Abstract. Spreadsheets are largely used in industry. However, building an error-free spreadsheet is not a simple task. This work aims at defining an approach to the automatic generation of spreadsheets from domain models based on concepts from Model Driven Development and Software Product Lines. Our main goal is to reduce construction effort and the number of defects in the resulting spreadsheets.

Resumo. Planilhas eletrônicas são muito utilizadas na indústria. Entretanto, construir uma planilha sem defeitos para apoiar a resolução de um problema não é uma atividade simples. Este trabalho visa definir uma abordagem, baseada em conceitos das áreas de Desenvolvimento Baseado em Modelos e Linhas de Produtos de Software, para a geração automática de planilhas a partir de modelos de domínio. Com isso, objetivamos reduzir o esforço de construção e o número de defeitos presentes nas planilhas resultantes.

Palavras-chave: planilhas, geração automática, modelo de domínio.

1. Introdução Planilhas eletrônicas foram introduzidas na década de 80, com o VisiCalc. Depois vieram o SuperCalc, Lotus 123, Quattro Pro, e atualmente o Microsoft Excel é a principal ferramenta proprietária deste segmento (Hermans et al., 2010). Além disso, existem ferramentas não proprietárias disponíveis e muito utilizadas, como o OpenOffice Calc e LibreOffice Calc. Desde sua introdução, planilhas são amplamente utilizadas na indústria. Scaffidi (2005) relata que cerca 30% da força de trabalho americana utiliza planilhas. Winston (2001) estima que 90% dos analistas na indústria envolvidos em análises em diferentes domínios, e.g. finanças, marketing, operações,

19

VIII Simpósio Brasileiro de Sistemas de Informação (SBSI 2012) V Workshop de Teses e Dissertações em Sistemas de Informação (WTDSI 2012)

Page 2: Geração Automática de Planilhas Eletrônicas a partir do ... · elaboração de planilhas visando evitar a introdução de erros, sendo orientados aos profissionais de apoio aos

realizam cálculos em planilhas. A área financeira é notadamente o domínio onde o uso das planilhas é mais acentuado. Panko (2006) estima que 95% das empresas dos EUA e 80% da Europa utilizam planilhas para relatórios financeiros.

As planilhas possuem algumas características que contribuem para a sua popularidade: o formato tabular que leva a uma representação natural para muitos problemas, o feedback imediato através da avaliação das fórmulas, a redução da complexidade através da divisão de fórmulas em diferentes células, a natureza declarativa da maioria dos aspectos da linguagem de planilhas, entre outras. Além disso, como os valores atuais das variáveis estão sempre visíveis, o usuário pode rapidamente ver os efeitos das mudanças aplicadas sobre os valores de entrada ou fórmulas, incentivando um estilo de programação exploratório (Tallis e Balzer, 2010).

Muitos problemas podem ser resolvidos com o auxílio de planilhas.. Entretanto, construir uma planilha sem defeitos para apoiar a resolução de um problema não é uma atividade simples, sendo comum encontrarmos planilhas contendo erros, conforme investigações descritas em Panko (1998) e (Rothermel et al., 2001).

Uma solução comumente utilizada por quem precisa criar uma planilha em um determinado domínio é procurar por algum modelo de planilha (template) que possa ser reutilizado. Entretanto, a reutilização de modelos de planilhas envolve o processo típico de reutilização de software: buscar possíveis modelos, selecionar o modelo mais adequado e eventualmente adaptar o modelo selecionado. Esse processo pode ser trabalhoso e difícil em função da quantidade de modelos disponíveis e do esforço necessário para entender e adaptar a sua estrutura e conteúdo, já que uma porção significativa do conhecimento do domínio está presente nas planilhas de forma implícita (Hermans et al., 2010).

2. Objetivos e Caracterização da Contribuição do Trabalho O principal objetivo deste trabalho é construir uma solução que possibilite a geração automática de planilhas a partir do modelo de domínio do problema que elas visam resolver. A ideia fundamental consiste em elaborar uma abordagem que, a partir de um modelo que defina os elementos comuns e os pontos de variação em um domínio, sejam eles conceitos ou regras, auxilie o usuário na geração de uma planilha a partir da seleção e adequação dos conceitos e regras desejados.

Como resultado, almejamos obter alguns dos benefícios tipicamente esperados pelo emprego de técnicas de reutilização, como, por exemplo, a redução do esforço necessário para a construção de planilhas e redução no número de defeitos quando comparado às formas tradicionais de construção de planilhas (i.e., elaboração a partir do zero ou a partir de templates).

3. Trabalhos Relacionados Vários estudos têm sido feitos no domínio de planilhas eletrônicas. A maior parte dos trabalhos está concentrada em abordagens para reduzir a incidência de erros em planilhas, embora trabalhos recentes tenham passado a tratar a questão do entendimento dos conceitos e regras presentes em uma planilha. Além disso, esses trabalhos podem ser classificados com relação ao seu público alvo: soluções diretamente utilizáveis pelos

20

VIII Simpósio Brasileiro de Sistemas de Informação (SBSI 2012) V Workshop de Teses e Dissertações em Sistemas de Informação (WTDSI 2012)

Page 3: Geração Automática de Planilhas Eletrônicas a partir do ... · elaboração de planilhas visando evitar a introdução de erros, sendo orientados aos profissionais de apoio aos

usuários finais das planilhas ou soluções direcionadas a profissionais que apoiam os usuários finais na criação, manutenção ou verificação de planilhas.

Alguns trabalhos recomendam a utilização de técnicas de modelagem durante a elaboração de planilhas visando evitar a introdução de erros, sendo orientados aos profissionais de apoio aos usuários finais das planilhas. Ronen et al. (1989) propõem a utilização de diagramas denominados SFD (Spreadsheet Flow Diagram) na especificação das fórmulas de uma planilha. Rajalingham et al. (2000) definem uma metodologia para a construção de planilhas baseada na elaboração de modelos utilizando decomposição hierárquica das fórmulas. Powell e Baker (2003) destacam a importância da modelagem e sugerem a utilização de gráficos de influência que representam a definição das fórmulas em função das entradas e saídas, de forma similar ao SFD mencionado anteriormente.

Outros trabalhos investigam aspectos ligados a teste e verificação de correção de planilhas. Panko e Halverson (1994) apresentam uma taxonomia dos erros tipicamente encontrados em planilhas. Rothermel et al. (2001) propõem uma abordagem para testes baseada em técnicas para definição de casos de teste a partir da representação formal das fórmulas de uma planilha por meio de grafos de relacionamento entre células. Clermont et al. (2008) propõem uma ferramenta para apoiar processos de auditoria em planilhas, visando a identificação de irregularidades ou erros através da visualização da estrutura da planilha a partir de três tipos de relações de equivalência entre as células. Por exemplo, é possível identificar que todas as células de uma coluna de uma região da planilha são logicamente equivalentes com exceção de uma, o que indica um provável erro na fórmula da célula divergente.

Na linha de apoiar o entendimento da estrutura de uma planilha, Hermans et al.(2010) propõem uma abordagem de engenharia reversa para gerar um diagrama de classe UML a partir de uma planilha. O diagrama de classes resultante pode ser utilizado por engenheiros de software para entender, refinar ou reimplementar as funcionalidades da planilha. Em outro trabalho, Hermans et al. (2011) propõem uma abordagem que apresenta a estrutura de uma planilha com diagramas de fluxo de dados (DFD) de múltiplos níveis. Ela fornece três diferentes visões no fluxo de dados que permitem ao usuário analisar o DFD de forma top-down, sendo especialmente útil no caso em que uma planilha existente será repassada para outra pessoa não familiarizada com a mesma.

A necessidade de apoiar o desenvolvimento de software pelos usuários finais, área conhecida como End User Software Engineering, já foi reconhecida há algum tempo. Algumas iniciativas, relatadas em Ko et al. (2011), procuram investigar como abordagens mais rigorosas da Engenharia de Software podem ser aplicadas nesse contexto, já que, embora esses usuários não tenham os mesmos objetivos que os desenvolvedores de software profissionais, eles enfrentam desafios similares, incluindo o entendimento dos requisitos e questões relacionadas a decisões sobre projeto, reutilização, integração, teste e correção de defeitos.

Duas linhas de pesquisa estão particularmente relacionadas com este trabalho: Desenvolvimento Guiado por Modelos e Linhas de Produto de Software. O Desenvolvimento Guiado por Modelos consiste em produzir um software a partir de transformações aplicadas a modelos mais abstratos (France e Rumpe, 2007). Existem diversos trabalhos já desenvolvidos nessa área, sendo a maior parte orientada para a

21

VIII Simpósio Brasileiro de Sistemas de Informação (SBSI 2012) V Workshop de Teses e Dissertações em Sistemas de Informação (WTDSI 2012)

Page 4: Geração Automática de Planilhas Eletrônicas a partir do ... · elaboração de planilhas visando evitar a introdução de erros, sendo orientados aos profissionais de apoio aos

geração de software em linguagens de programação orientadas a objetos. Linhas de Produto de Software, por sua vez, é uma abordagem que provê métodos para planejar, controlar e produzir uma infraestrutura de reutilização para o desenvolvimento de uma família de produtos similares. Uma questão importante nesse contexto é a análise e representação das similaridades e variabilidades dentre os produtos que compõem uma linha (Gomaa, 2004). Nossa proposta visa aplicar conceitos oriundos dessas duas linhas no contexto específico de construção de planilhas eletrônicas.

4. Estado Atual do Trabalho Após extensa revisão da literatura, especialmente na área de abordagens relacionadas à criação, entendimento e evolução de planilhas eletrônicas, a definição geral da proposta de trabalho foi realizada. No momento, aspectos específicos da proposta estão sendo detalhados.

De forma similar ao que ocorre com páginas HTML, podemos separar dois aspectos da composição de uma planilha eletrônica: o conteúdo (células e fórmulas) e a formatação (e.g., cor, espessura, tamanho das linhas). Em princípio, o escopo deste trabalho está restrito à geração do conteúdo da planilha. A Figura 1 apresenta um esquema com a definição geral da abordagem.

Figura 1 – Definição Geral da Abordagem

O principal insumo para o processo de geração de uma planilha é o modelo do domínio. Esse modelo pode ser representado de diferentes formas, mas a proposta inicial é utilizar modelos de classes UML com extensões para modelagem de similaridades e variantes já existentes na literatura (Gomaa, 2004). Em uma primeira etapa, estamos trabalhando na geração automática a partir de um modelo de classes UML convencional que defina as classes, atributos, associações e operações relevantes dos conceitos envolvidos no domínio. Em uma etapa seguinte, passaremos a abordar modelos de classes UML para linhas de produto, o que permitirá um maior grau de customização na geração da planilha.

A definição do conteúdo da planilha consiste em um modelo que define a composição da estrutura de informação da planilha a ser gerada. Esse modelo utiliza elementos básicos como abas, blocos de dados e células. Abas possuem blocos de dados que, por sua vez, podem conter outros blocos de dados ou células. Células podem corresponder a labels (rótulos), dados ou fórmulas.

Modelo do Domínio

Assistente para definição do conteúdo da planilha

Gerador de planilha

Definição do Conteúdo da Planilha

Planilha resultante

22

VIII Simpósio Brasileiro de Sistemas de Informação (SBSI 2012) V Workshop de Teses e Dissertações em Sistemas de Informação (WTDSI 2012)

Page 5: Geração Automática de Planilhas Eletrônicas a partir do ... · elaboração de planilhas visando evitar a introdução de erros, sendo orientados aos profissionais de apoio aos

O assistente para definição do conteúdo da planilha consiste em uma ferramenta que visa auxiliar o usuário na definição da estrutura de informação da planilha e o seu respectivo mapeamento com o modelo de domínio. Por exemplo, ao definir a estrutura de uma planilha no domínio de notas de uma disciplina, o usuário pode definir uma célula de dado e associá-la ao atributo nome do conceito Aluno definido no modelo de domínio. Em outro exemplo, o usuário pode criar uma célula de fórmula e associá-la à operação mediaParcial() do conceito associativo entre Aluno e Oferta de Disciplina,denominado Inscrição. Assumimos que a regra de cálculo da média parcial está definida no modelo através de uma expressão textual (e.g. OCL).

Em um primeiro momento, estamos gerando uma solução que admite apenas algumas variações básicas na customização da estrutura de informação da planilha alvo. O usuário poderá escolher o número de abas, os blocos que fazem parte de cada aba, a quantidade de linhas/colunas para os blocos que contém coleções de dados (e.g. relação de alunos inscritos), além de poder selecionar os elementos do modelo (conceitos, atributos, operações) que devem estar presentes na planilha. Por exemplo, um professor pode fazer avaliações baseadas apenas em provas, não aplicando trabalhos. Nesse caso, supondo que o modelo de domínio contivesse os conceitos Prova e Trabalho, o usuário poderia selecionar apenas o conceito Prova para a definição da planilha. Soluções para tipos mais complexos de variações no domínio serão tratadas em uma fase posterior do trabalho.

Finalmente, o gerador de planilha efetua a transformação da definição do conteúdo associado às definições presentes no modelo do domínio, em uma planilha. Essa transformação consiste em transformar elementos abstratos em elementos concretos presentes nas planilhas (e.g., transformar referências para atributos em referências para células e transformar regras expressas em OCL para fórmulas).

5. Avaliação dos Resultados Até o momento, os principais resultados deste trabalho foram a revisão da literatura e a definição da proposta geral do trabalho. A revisão da literatura aponta uma grande preocupação com a presença de erros nas planilhas, classificando-os e definindo estratégias para a identificação desses problemas. Outros trabalhos nessa área visam entender a estrutura das planilhas com objetivo similar aos encontrados em trabalhos na área de engenharia reversa de aplicações. Entretanto, a oportunidade de aplicar conceitos de Desenvolvimento Baseado em Modelos tendo como alvo planilhas ao invés de aplicações é uma lacuna que encontramos e que estamos investigando nesta pesquisa.

Referências Clermont, M., Hanin, C. and Mittermeir, R. T. (2008) “A Spreadsheet Auditing Tool

Evaluated in an Industrial Context”, In: ACM Computing Research Repository (CoRR).

France, R. and Rumpe, B. (2007). Model-driven Development of Complex Software: A Research Roadmap. In Proceedings of Future of Software Engineering (FOSE 2007),pages 37-54.

23

VIII Simpósio Brasileiro de Sistemas de Informação (SBSI 2012) V Workshop de Teses e Dissertações em Sistemas de Informação (WTDSI 2012)

Page 6: Geração Automática de Planilhas Eletrônicas a partir do ... · elaboração de planilhas visando evitar a introdução de erros, sendo orientados aos profissionais de apoio aos

Gomaa, H. (2004), Designing software product lines with UML: from use cases to pattern-based software architectures, Addison-Wesley, Boston.

Hermans, F., Pinzger, M., van Deursen, A. (2010). Automatically extracting class diagrams from spreadsheets. In Proceedings of the European Conference on Object Oriented Programming (ECOOP), pages 52-75.

Hermans, F., Pinzger, M. and van Deursen, A. (2011). Supporting Professional Spreadsheet Users by Generating Leveled Dataflow Diagrams. In Proceedings of the International Conference on Software Engineering (ICSE), pages 451-460.

Ko, A. J., Abraham, R., Beckwith, L., Blackwell, A., Burnett, M., Erwig, M., Scaffidi, C., Lawrance, J., Lieberman, H., Myers, B., Rosson, M. B., Rothermel, G., Shaw, M. and Wiedenbeck, S. (2011). The state of the art in end-user software engineering. Journal ACM Computing Surveys (CSUR), vol. 43, issue 3, article 21, 61 pages.

Nardi, B. and Miller, J. (1990). An Ethnographic Study of Distributed Problem Solving in Spreeadsheet Development. In Proceedings of the ACM Conference on Computer Supported Cooperative Work (CSCW), pages 197-208.

Panko, R. R. and Halverson Jr., R. P. (1994). Individual and group spreadsheet design: patterns of errors. In Proceedings of the Twenty-Seventh Hawaii International Conference on System Sciences, pages 4-10.

Panko, R. (1998). What we know about spreadsheet errors. Journal of End User Computing - End User Development, vol. 10, issue 2, pages 15-21.

Powell, S. and Baker, K. (2003), The Art of Modeling with Spreadsheets, John Wiley & Sons, Inc. New York, NY, USA.

Rajalingham, K., Chadwick, D., Knight, B. and Edwards, D. (2000). Quality Control in Spreadsheets. In Proceedings of the 33rd Hawaii International Conference on System Sciences, 10 pages.

Ronen, B., Palley, M. A. and Lucas Jr., H. C. (1989). Spreadsheet Analysis and Design. Communications of the ACM, vol. 32, issue 1, pages 84-93.

Rothermel, G., Burnett, M., Li, L., DuPuis, C. and Sheretov, A. (2001). A Methodology for Testing Spreadsheets. ACM Transcations on Software Engineering and Methodology, pages 110-147.

Scaffidi, C., Shaw, M., Myers. B. A. (2005). Estimating the numbers of end users and end user programmers. In Proceedings of the IEEE Symposium on Visual Languages and Human-Centric Computing (VL/HCC), pages 207-214.

Tallis, M., Balzer and R. M. (2010). A Deductive Spreadsheet System for End Users. IEEE Transactions on Knowledge and Data Engineering, vol. 22, issue 11, pages 1563-1576.

Winston, W. L. (2001). Executive education opportunities. OR/MS Today, vol. 28, issue 4.

24

VIII Simpósio Brasileiro de Sistemas de Informação (SBSI 2012) V Workshop de Teses e Dissertações em Sistemas de Informação (WTDSI 2012)