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

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

Projeto de Software Joabe Jesus Engenharia de Software e Sistemas.

Apresentações semelhantes


Apresentação em tema: "Projeto de Software Joabe Jesus Engenharia de Software e Sistemas."— Transcrição da apresentação:

1 Projeto de Software Joabe Jesus Engenharia de Software e Sistemas

2 Motivação... AnáliseProjeto Implementação SoluçãoProblema

3 Projeto Identificar elementos constituintes do sistema (domínio da solução)  Módulos, classes, associações, etc. Documentar através de modelo concreto  Algoritmos e tecnologias existentes, etc.  Arquitetura do sistema antes de implementar

4 Projeto Descrever exatamente COMO faremos  UML + Z (refinamento) + Comentários Comparar com documento de análise  Verificar sistema

5 Refinamento em UML Problemas  Dados e Operações? Refinamento Funcional de Dados  Que tipos considerar? Anotar UML com Z (Given Sets, Z, |N, Produtos Cartesianos, Relações, Funções, Seq, Bag)  Como representar? Estereótipo > numa dependência

6 Refinamento em UML

7 Estudo de Caso - SymbTab Considere um sistema que armazena valores indexados por chaves, ou seja, uma tabela de símbolos. Esse “sistema” possui duas funcionalidades: adição de valores (pares chave-valor) e remoção destes através da chave associada.

8 Estudo de Caso - SymbTab

9 Operações SymbTab (A) add(s : SYM, v : VAL)  pré:s?  dom st  pós:st' = st  {s?  v?} delete(s : SYM)  pré:s?  dom st  pós:st' = {s?} st 

10 Projetando SymTab Após a análise do sistema SymTab queremos projetá-lo a fim de termos uma descrição mais próxima à implementação poderia

11 SymbTab (Concreto)

12 Operações SymbTab (C) add(s : SYM, v : VAL)  pré:s?  dom (ran st1)  pós:st1' = st1  (s?, v?)  delete(s : SYM)  pré:s?  dom (ran st1)  pós:st1' = st1  {s?} (ran st1) ( 

13 Refinamento de Dados Agora que especificamos como a tabela de símbolos funciona e como poderíamos ter uma “versão” concreta desta, queremos compará-las (Definindo um Retrieve) para verificar se suas operações continuam válidas (Refinamento Funcional de Dados)

14 Retrieve - SymTab st = ran st1

15 Obrigações de Prova Operações  Aplicabilidade: pre AOP  Retrieve  pre COP  Corretude: pre AOP  Retrieve  COP  Retrieve’  AOP Init  CInit  Retrieve’  AInit

16 Teorema Init - SymTab theorem InitTheorem InitC  Retrieve  InitA InitC InitCSymbTabC' st1' = InitA InitASymbTabA' st' = 

17 Teoremas Add - SymTab theorem addApplTheorem pre addA  Retrieve  pre addC theorem addCorrTheorem pre addA  Retrieve  addC  Retrieve'  addA

18 Teoremas Delete - SymTab theorem deleteApplTheorem pre deleteA  Retrieve  pre deleteC theorem deleteCorrTheorem pre deleteA  Retrieve  deleteC  Retrieve'  deleteA

19 exercício modelo  estado: duas seqüências  operações add e delete  refinamento (retrieve)


Carregar ppt "Projeto de Software Joabe Jesus Engenharia de Software e Sistemas."

Apresentações semelhantes


Anúncios Google