formalizaÇÃo de uma metodologia para projeto … · programa de mestrado em ciência da...

12
FORMALIZAÇÃO DE UMA METODOLOGIA PARA PROJETO DE INTERFACES BASEADA EM LÓGICA MODAL Daniele Carvalho Oliveira [email protected] Orientador: Prof. Dr. João Nunes de Souza [email protected] Co-orientador: Prof. Dr. Renan Gonçalves Cattelan [email protected] Programa de Mestrado em Ciência da Computação Universidade Federal de Uberlândia Data de Inicio como Aluno Regular: Março de 2009 Previsão de Defesa: Março de 2011 Resumo. Este trabalho tem como objetivo principal propor a modelagem de Interfaces de software utilizando Lógica Modal, mais precisamente Lógica Modal Temporal. Pretendemos, também, comparar a modelagem proposta com os métodos, usuais, de Engenharia de Software. Por fim, como aplicação, este trabalho apresenta uma aplicação do modelo proposto na modelagem da Interface de um sistema educativo de apresentação de conteúdo, através de uma ferramenta de Captura & Acesso.

Upload: dangkien

Post on 03-Dec-2018

217 views

Category:

Documents


0 download

TRANSCRIPT

FORMALIZAÇÃO DE UMA METODOLOGIA PARA

PROJETO DE INTERFACES BASEADA EM LÓGICA MODAL

Daniele Carvalho Oliveira

[email protected]

Orientador:

Prof. Dr. João Nunes de Souza

[email protected]

Co-orientador:

Prof. Dr. Renan Gonçalves Cattelan

[email protected]

Programa de Mestrado em Ciência da Computação

Universidade Federal de Uberlândia

Data de Inicio como Aluno Regular:

Março de 2009

Previsão de Defesa:

Março de 2011

Resumo. Este trabalho tem como objetivo principal propor a modelagem de

Interfaces de software utilizando Lógica Modal, mais precisamente Lógica

Modal Temporal. Pretendemos, também, comparar a modelagem proposta

com os métodos, usuais, de Engenharia de Software. Por fim, como aplicação,

este trabalho apresenta uma aplicação do modelo proposto na modelagem da

Interface de um sistema educativo de apresentação de conteúdo, através de

uma ferramenta de Captura & Acesso.

1. Introdução

Projetar um sistema computacional vai além de simplesmente criar modelos que

representem funcionalidades e estados. É necessário, principalmente ser capaz de

averiguar a correção dos modelos, a fim de reduzir a ocorrência de erros de projeto que

poderiam culminar em novo redesenho, gasto de tempo e recursos. Apesar de métodos

de Engenharia de Software serem aplicados cuidadosamente, com rigorosas revisões, e

produzirem sistemas de alta qualidade, quaisquer descuidos na aplicação desses

métodos podem acarretar em diversos problemas, como, por exemplo, contradições,

ambiguidades, pontos vagos, declarações incompletas e níveis de abstrações misturados.

[Pressman, 2002].

[Pressman, 2002] explica, também, que métodos formais fornecem modelos de

análise mais completos, consistentes e não ambíguos do que aqueles produzidos usando

métodos convencionais.

[Liskov e Berzins, 1986] afirmam que:

“Especificações formais podem ser estudadas matematicamente enquanto

especificações informais não podem. Por exemplo, pode-se provar que um

programa correto satisfaz suas especificações, ou pode-se provar que dois

conjuntos alternativos de especificações são equivalentes, assim certas formas

de incompletação ou inconsistência podem ser detectadas automaticamente.”

Ou seja, a matemática fornece um alto nível de validação, permitindo

demonstrar que um projeto satisfaz uma especificação, e que um código de programa é

um reflexo correto de um projeto. [Pressman, 2002]

Segundo [Easterbrook et al., 1997] “Os métodos formais tem um potencial

tremendo para melhorar a clareza e a precisão da especificação dos requisitos e de

encontrar erros importantes e sutis.” Sendo assim, os métodos formais possuem ampla

utilização no projeto de sistemas críticos e de segurança, mas há uma crescente demanda

por métodos de modelagem e de verificação formais para aplicação em diversos

sistemas.

Uma Rede de Petri, por exemplo, é uma representação formal para sistemas

distribuídos discretos, que permite representar graficamente a estrutura de um sistema

distribuído através de um grafo direcionado. A vantagem da rede de Petri em relação a

outros modelos é que sendo uma representação formal, é possível obter informações

sobre o comportamento do sistema projetado, através da análise de suas propriedades.

[Cardoso e Valette, 1997]

Este trabalho propõe a utilização de Lógica Modal, mais precisamente a Lógica

Modal Temporal, para definir uma nova forma de modelar projetos de interface de

software. Tendo formalizado a modelagem por Lógica Modal Temporal, propomos

demonstrar seu uso, enquanto um método para projetar interfaces e ferramenta de

validação, em um sistema de Captura & Acesso (uma Whiteboard) para uma

comunidade virtual de aprendizagem para o Ensino Fundamental [Oliveira et al.,

2010(B)].

A Comunidade virtual de aprendizagem foi criada no sentido de atender crianças

do Ensino Fundamental, do sexto ao nono ano. Para entender a necessidade dos

professores e alunos do Ensino Fundamental, realizamos a elicitação dos requisitos

através de Árvores de Características [Oliveira et al., 2010(A)]. Essa comunidade possui

como princípio o desenvolvimento do conteúdo teórico com base em histórias

narrativas, aplicando o Construtivismo Social, a partir da teoria de Vygotsky

[Oliveira et al., 2010(C)] . A comunidade virtual de aprendizagem foi desenvolvida com

conceitos Web 2.0, utilizando as tecnologias PHP orientado a objetos, MySQL, jQuery e

Ajax [Oliveira et al., 2010(D)].

2. Trabalhos Relacionados

A especificação de sistemas de tempo real deve ser feita por métodos formais,

fundamentados matematicamente, a fim de ser satisfatória e confiável. Lógica Temporal

tem sido usada para este fim durante muitos anos. Lógica temporal permite

especificações do comportamento do sistema na forma de fórmulas lógicas, incluindo

restrições temporais, eventos, e as relações entre esses. [Bellini et al., 2000].

[Bellini et al., 2000] descrevem em seu trabalho diversos métodos de

especificação conhecidos utilizando Lógicas Temporais, com a finalidade de projetar

sistema reativos, e de tempo real, levando em conta a evolução destes métodos e sua

expressividade.

[Fairlough e Mendler, 1997] investigam uma lógica modal intuicionista,

chamada Lógica Lax Proposicional, que tem aplicação na verificação formal de

hardware de computador. Esta lógica surgiu de uma tentativa de manifestar a noção de

correção para restrições comportamentais, ideia central na verificação de hardware.

Além disso, lógica Modal também é utilizada para verificação de códigos e

algoritmos. [Areces et al., 1998] propuseram utilizar lógica descritiva para projetar

sistemas, não apenas para verificar a correção do modelo.

Outros métodos formais para modelagem de sistemas, também são conhecidos,

por exemplo, as Redes de Petri. [Souza et al., 2007] propõem uma forma de modelagem

de Objetos de Aprendizagem, utilizando Redes de Petri Coloridas, chamada LOCPN

(Learning Objects production whith Coloured Petri Nets).

Já [Ramos e Oliveira, 2009] apresentam o uso de Redes de Petri Coloridas para

a modelagem, especificação e verificação formal de um Sistema Tutor Inteligente.

[Oliveira, 2010] propõe a criação de duas formas de modelagem com Redes de

Petri coloridas com expressões lógicas (RdPCel – Redes de Petri Coloridas com

expressões Lógicas) e com Lógica Modal (RdPM – Redes de Petri Modais.

3. Fundamentos Teoricos

Em geral, para realizar a validação formal de sistemas, são necessários os seguintes

requisitos: [Huth e Ryan, 2004]

um framework para modelar sistemas, geralmente uma linguagem descritiva;

uma linguagem de especificação para descrever as propriedades a serem

verificadas;

um método de verificação para verificar se a descrição de um sistema satisfaz a

especificação.

E o trabalho proposto, segue tais requisitos para apresentar o sistema proposto.

3.1. A Linguagem Descritiva

Utilizamos a Lógica Modal como linguagem descritiva do modelo proposto. [Blackburn

et al., 2002] definem a linguagem modal básica como um conjunto de letras

proposicionais (símbolos proposicionais ou variáveis proposicionais) cujos elementos

são normalmente denotados por ..., e dois operadores unários („diamante‟) e

(„caixa‟). As fórmulas da linguagem modal básica são dadas pela regra:

Ou seja, uma fórmula proposicional pode ser tanto uma letra proposicional, ou a

constante de Falsidade, uma fórmula negada, uma disjunção de fórmulas, uma

conjunção de fórmulas, uma implicação de fórmulas, uma equivalência de fórmulas,

uma fórmula prefixada por um diamante, ou por uma caixa.

É possível resumir a regra da linguagem modal para

Levando em consideração as seguintes propriedades:

1. Os operadores e se comportam da mesma forma que os quantificadores

Universal e Existencial, ou seja, da mesma forma que podemos

definir também que .

2. Da mesma forma que na lógica proposicional:

a.

b.

c.

d. T

A partir desta linguagem, utilizamos frames para diagramar os modelos do

sistema. [Blackburn et al., 2002] definem frame como uma tupla cujo primeiro

componente é um conjunto não vazio chamado de universo (ou domínio) de , e

cujos componentes restantes são relações em . Ou seja, um frame é simplesmente

uma estrutura relacional com relações binárias simples.

Além disso, definimos que um modelo é um par , onde é um

frame e é uma função que atribui para cada preposição em um subconjunto

de . Onde é um conjunto de pontos no modelo onde é verdadeiro. A função

é chamada de avaliação.

Na Figura 1 é apresentado um exemplo de um frame, onde

e . Considerando o modelo do frame W, podemos

afirmar o seguinte:

(

(

(

Figura 1 – Estrutura Relacional

3.2. A Linguagem de Especificação

Para descrever as propriedades a serem verificadas, consideramos a semântica da Lógica

Modal.

Suponha que é um estado no modelo . Então, definimos que

uma fórmula é satisfeita (verdadeira) em no estado como segue:

se onde

nunca

se não

se ou

se ou

se para algum com temos que

Desta definição segue que se e somente se para todo tal que

, temos que . Finalmente, um conjunto de fórmulas é verdadeiro em um

estado de um modelo , notação: , se todos os membros de são

verdadeiros em .

A Figura 2 ilustra o uso dos operadores e .

Figura 2 – Operadores e

As Figuras 3, 4 e 5, são exemplos de frames transitivos, então:

Figura 3 – Transitividade do operador

Figura 4 – Transitividade dos operadores e

Figura 5 – Transitividade dos operadores e

A proposta apresentada neste trabalho considera a Lógica Modal Temporal.

Lógicas temporais tem um aspecto dinâmico, pois a verdade de uma fórmula não é fixa

em um modelo, como ocorre na lógica proposicional e de predicados, mas depende de

um ponto no tempo dentro do modelo. [Huth e Ryan, 2004].

Entre os vários tipos de Lógica Temporal, consideramos a Lógica Temporal de

Tempo-Linear (LTL – Linear-time Temporal Logic).

A LTL modela o tempo como uma sequencia de estados, estendendo

infinitamente para o futuro, desta forma tratamos o tempo como ele é, não

determinístico, devemos considerar diversos caminhos, representando diferentes futuros

possíveis. A LTL possui a seguinte sintaxe:

Os conectivos X, F, G, U, W e R são chamados conectivos temporais. X

significa “próximo estado” (neXt state), F significa “em algum estado Futuro” (some

Future state), G significa “todos os estados futuros” (Globally), U significa “até que”

(Until), R significa “libertação” (Release) e W significa “um até que fraco” (Weak-

until).

Sistemas verificados por LTL podem ser modelados como sistemas de transição,

ou seja, um sistema composto por estados e transições.

Um sistema de transição é um conjunto de estados S dotado de

uma relação de transição (uma relação binária em S), tal que para cada existe

um com , e uma função de rotulação .

Seja um modelo e um caminho em . Se

satisfaz uma fórmula LTL, então é definido pela relação de satisfação da seguinte

forma:

i.

ii.

iii.

iv.

v.

vi.

vii.

viii.

ix.

x.

xi.

xii.

xiii.

xiv.

xv.

xvi.

xvii.

xviii.

Nas Figuras 6 a 10 apresentamos exemplos do funcionamento dos operadores X,

G, F, U e R respectivamente. Como pode ser observado na Figura 6, o operador X

garante que a fórmula será satisfeita no caminho , ou seja, estará presente no

estado .

Figura 6 – Exemplo do operador X

Na Figura 7 observamos que o uso do operador G causa a propagação de em

todos os estados à frente. Já na Figura 8, o uso do operador F, garante que estará

presente em ao menos um estado à frente.

Figura 7 – Exemplo do operador G

Figura 8 – Exemplo do operador F

Na Figura 9, o operador U faz com que seja repetido em todos os estados, até

que ocorra, sendo que quando ocorre, não estará presente. O operador W tem

função similar, com a única diferença de que pode ocorrer em todos os estados,

mesmo que ocorra.

Figura 9 – Exemplo do operador U

Na Figura 10, o operador R faz com que seja repetido em todos os estados, até

que ocorra, estando presente inclusive no estado em que ocorreu.

Figura 10 – Exemplo do operador R

3.3. Métodos de Verificação

Os métodos de verificação são utilizados para verificar se a descrição de um sistema

satisfaz a especificação.

Na proposta apresentada, o método de verificação é aquele definido no contexto

da Lógica Modal.

Existem várias implementações de sistemas de validação de modelo, com ampla

utilização no mercado. Um desses métodos é o NuSMV1 (“New Symbolic Model

Verifier”). Tal método consiste em uma ferramenta Open Source que provê uma

linguagem para descrever modelos. Essa linguagem utiliza diagramas, nos quais é

verificada a validade de fórmulas LTL. [Huth e Ryan, 2004].

4. Resultados Esperados

Pretendemos com este trabalho propor um método para modelagem de software baseado

em conceitos de Lógica Modal. Nesse contexto, a proposta tem como objetivo projetar

interfaces com o usuário utilizando Lógica Modal. E, como aplicação do modelo

proposto, analisamos a modelagem de um sistema de Captura & Acesso para um

ambiente educativo para o ensino fundamental.

1 http://nusmv.fbk.eu/

A validação da proposta é analisada pela análise de suas vantagens e desvantagens na

modelagem do sistema de Captura & Acesso, como também de aspectos próprios da

Lógica Modal.

5. Cronograma de Execução

Atividade 1 – Estudo Bibliográfico

Atividade 2 – Estudo e Formalização da Modelagem por Lógica Temporal

Atividade 3 – Formalização da Validação por Verificação de Modelo

Atividade 4 – Modelagem da Interface com Usuário do sistema de C&A

Atividade 5 – Elaboração de Artigos para submissão

Atividade 6 – Elaboração e revisão da dissertação

Atividade 7 – Defesa da dissertação

Atividades Abr Mai Jun Jul Ago Set Out Nov Dez Jan Fev Mar

1 √ √ √ √ √ √ √

2 √ √ √ √ √ √ √ √ X X

3 √ √ √ √ √ X X

4 √ √ √ X X

5 √ √ √ √ √ √

6 √ X X X

7 X

Referencias

[Areces et al., 1998] Areces, C., Felder, M., Hirsch, D., Yankelevich, D., (1998),

“Modal Logic as a Design Notation”, in: Proceedings of IWSSD-9, IEEE Computer

Society Press, pp.150-152.

[Bellini et al., 2000] Bellini, P., Mattolini, R., Nesi, P. (2000). “Temporal logics for

real-time system specification”. ACM Comput. Surv. 32, 1 (Mar.), 12–42.

[Blackburn et al., 2002] Blackburn, P., de Rijke, M., Venema, Y. (2002). “Modal

Logic”. Cambridge, UK: Cambridge University Press.

[Easterbrook et al., 1997] Easterbrook, S., Lutz, R., Covington, R., Kelly, J., Ampo, Y.,

Hamilton, D. (1997) “Experiences Using Lightweight Formal Methods for

Requirements Modeling”, NASA IV&V Facility, Fairmont, West Virginia.

[Fairlough e Mendler, 1997] Fairtlough, M., Mendler, M., (1997) “Propositional Lax

Logic”. Information and Computation, 137(1):1–33.

[Huth e Ryan, 2004] Huth, M., Ryan, M. (2004). “Logic in Computer Science:

Modelling and Reasoning About Systems”. New York, NY: Cambridge University

Press.

[Liskov e Berzins, 1986] Liskov, B. H., and V. Berzins. (1986) “Na Appraisal of

Program Specifications”, in Software Specification Techniques, N. Gehani e A. T.

McKittrick (eds.), Addison-Wesley.

[Oliveira, 2010] Oliveira, C. C. (2010), “Árvore de Características e Metodologias

Formais para Modelagem de Software”. Dissertação de Mestrado, UFU/FACOM (a

ser publicado)

[Oliveira et al., 2010(A)] Oliveira, C. C., Oliveira, D. C., Oliveira, C. F., Cattelan,

R.G., Souza, J. N. de (2010), “Árvore de Características de Software Educativo: Uma

Proposta para Elicitação de Requisitos pelo Usuário”. In: XXI Simpósio Brasileiro de

Informática na Educação. 2010. João Pessoa, Pb.

[Oliveira et al., 2010(B)] Oliveira, C. C., Oliveira, D. C., Oliveira, C. F., Cattelan, R.G.,

Souza, J. N. de (2010), “Comunidade Virtual de Aprendizagem para Crianças”. In:

IX Workshop de Ferramentas e Aplicações – WEBMEDIA. 2010. Belo Horizonte,

MG.

[Oliveira et al., 2010(C)] Oliveira, C. C., Oliveira, D. C., Oliveira, C. F., Cattelan, R.G.,

Souza, J. N. de (2010), “Histórias que ensinam: narrando a teoria”. In: III Encontro

Mineiro de Psicologia Escolar e Educacional. 2010. Uberlândia, MG.

[Oliveira et al., 2010(D)] Oliveira, C. C., Oliveira, D. C., Oliveira, C. F., Cattelan, R.G.,

Souza, J. N. de (2010), “Desenvolvimento de Gerenciador de Conteúdo com

Tecnologia Web 2.0”. In: Tópicos em Sistemas Colaborativos, Interativos,

Multimídia, Web e Banco de Dados. Belo Horizonte: SBC, 2010. P. 237-276.

[Pressman, 2002] Pressman, R. (2002), “Engenharia de Software”, 5 ed. McGraw-Hill,

Rio de Janeiro.

[Ramos e Oliveira, 2009] Ramos, E., Oliveira, J. (2009), “Especificação e Verificação

Formal de um modelo de STI-PBL por Redes de Petri Coloridas”. In: Revista

Brasileira de Informática na Educação, Vol. 17, Nr. 3, p. 53-66.

[Souza et al., 2007] Souza, M. de F. C. de, Gomes, D. G., Barroso, G. C., Souza, C. T.

de, Filho, J. A. de. Castro, Pequeno, M. C., Andrade, R. (2007), “LOCPN: Redes de

Petri Coloridas na Produção de Objetos de Aprendizagem”. In: Revista Brasileira de

Informática na Educação, Vol. 15, Nr. 3, p. 39-52.