formalizaÇÃo de uma metodologia para projeto … · programa de mestrado em ciência da...
TRANSCRIPT
FORMALIZAÇÃO DE UMA METODOLOGIA PARA
PROJETO DE INTERFACES BASEADA EM LÓGICA MODAL
Daniele Carvalho Oliveira
Orientador:
Prof. Dr. João Nunes de Souza
Co-orientador:
Prof. Dr. Renan Gonçalves Cattelan
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.