A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Folhas de Cálculo Apresentação para disciplina Programação Funcional Avançada.

Apresentações semelhantes


Apresentação em tema: "Folhas de Cálculo Apresentação para disciplina Programação Funcional Avançada."— Transcrição da apresentação:

1 Folhas de Cálculo Apresentação para disciplina Programação Funcional Avançada

2 Problemas a resolver Alta taxa de erros: –Alguns estudos concluem que 90% das folhas de cálculo contêm erros –Dificuldade em fazer debug a folhas de cálculo é complicado seguir grandes cadeias de formulas, pequenas falhas no inicio podem não ser aparentes enquanto não se propagarem no resultado final. Não aconselhado para problemas complexos –Funções aparte das já definidas no software só puderam ser definidas por programadores experientes. –Um problema complexo necessitaria de muitas folhas para a sua resolução.

3 Objectivos da palestra Minimizar a possibilidade de obtenção de erros nas folhas de calculo. –de forma automática, –com auxilio humano. Possibilitar a criação de funções de uma forma: – robusta, – sem necessidade de aprendizagem aparte dos conhecimentos mínimos de folhas de cálculo.

4 Estratégia para Validação por inferência de classes de Células A maior parte das folhas de cálculo respeitam determinada estrutura: –No cabeçalho encontra-se informação sobre os valores apresentados. –No rodapé encontram-se cálculos sobre os valores apresentados. Para este tipo de folhas poderemos utilizar uma estratégia de validação de operações por inferência das classes das células referenciadas.

5 Inferência de classes de células cada célula de dados tem uma classe associada inferida do seu cabeçalho. uma classe pode derivar de outra existente no seu cabeçalho. exemplos de atribuição de classes: Fruta[Maçã]&Mes[Janeiro]Fruta[Maçã]&Mes[Janeiro] | Fruta[Banana]& Mes[Janeiro] Mes

6 Regras a respeitar 1.Qualquer célula que não tenha cabeçalho define uma classe. 2.Uma célula com valor v (v é texto) e um cabeçalho u define um classe u[v]. 3.Quando não existe classes de topo comuns é permitido intersectar classes 4.Quando existe classes de topo comuns é permitido unir classes. Qualquer falha detectada a estas regras origina que a célula fique pintada de vermelho assim como todas as que a referenciam.

7 Estratégias para validação manual Para outros tipos de folhas de cálculo poderemos utilizar uma validação incremental –Inicialmente todas as células são candidatas a ter erro até serem validadas pelo utilizador. –Assim que algumas células vão sendo validadas a probabilidade de existência de erro nas células que a referenciam é menor. –Este método é prático para validar folhas de cálculo durante a sua construção.

8 Modo de funcionamento Para a resolução destes problemas usam-se técnicas de dynamic/static slicing e dicing. Valores verificados são marcados com um visto e contorno azul. Valores ainda não validados encontram-se com um ponto de interrogação Valores errados são marcados com uma cruz. O fundo destas varia entre o vermelho e branco dependendo da probabilidade de existência de erro.

9 Exemplo prático Quando se verifica que uma determinada célula está com um valor errado marca-se esta célula. As células de que este depende são marcadas a tonalidade vermelha. Uma célula que seja dependência de uma outra marcada como válida vai ter menos tom vermelho.

10 Exemplo prático Células parcialmente testadas têm contorno roxo. Células totalmente validadas têm contorno azul.

11 Estratégia para criação amigável de funções A ideia é criar um ambiente capaz de respeitar as Cognitive Dimensions of Notacions (CDs). Este ambiente deverá ser capaz de criar novas funções só com os conhecimentos comuns de folhas de cálculo. Deverá ser baseado nas próprias folhas de cálculo. Conseguir inferir funções a partir de células ou conjuntos de células. Trabalhar com matrizes ou vectores. Deverá ser fácil executar debug ás funções geradas.

12 Ambiente para a criação de funções A criação da função passa por criar uma instance function sheet Os inputs/outputs são definidos na instace panel no fundo da janela da função Os textos na esquerda são meras descrições Da instance function sheet pode ser inferida uma arvore para a função que por motivos de performance pode depois ser compilada. Esta função pode ser inferida/criada de uma formula ou conjunto de formulas definidas em células da folha.

13 Criação de funções sobre matrizes Para a criação deste tipo de funções é necessária o encapsulamento das matrizes numa única célula. Todos os vectores são transformados em matrizes com uma só linha. Valores isolados são transformados numa matriz unidimensional. É possível do mesmo modo inferir/criar funções sobre matrizes como mostrado no exemplo anterior. A invocação na Sheet1 seria do tipo: =MyAvg(A1:A5, {1, 2, 2, 1, 2})

14 Vantagens Evita repetições no código. Reduz erros de manutenção Capacidade de juntar muitas células numa só Distribuição de funcionalidades Protecção do código Performance

15 Bibliografia Header and Unit Inference for Spreadsheets Through Spatial Analyses, Robin Abraham and Martin Erwig A User-Centred Approach to Functions in Excel, Simon Peyton-Jones, Alan Blackwell and Margaret Burnett, Slicing Spreadsheets: An Integrated Methodology for Spreadsheet Testing and Debugging, James Reichwein, Gregg Rothermel, Margaret Burnett, 1999


Carregar ppt "Folhas de Cálculo Apresentação para disciplina Programação Funcional Avançada."

Apresentações semelhantes


Anúncios Google