1 / 15

OO-SC (MEYER) Desenho por Contrato Construindo software confiável

OO-SC (MEYER) Desenho por Contrato Construindo software confiável. Componentes da Confiabilidade:. Correção : “habilidade de se comportar de acordo com as especificações” Robustez : “habilidade de reagir a situações não previstas nas especificações”. Mecanismos de Confiabilidade. Estrutura:

nantai
Download Presentation

OO-SC (MEYER) Desenho por Contrato Construindo software confiável

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. OO-SC (MEYER)Desenho por ContratoConstruindo software confiável OO-SC (Meyer) - Cap 11

  2. Componentes da Confiabilidade: • Correção:“habilidade de se comportar de acordo com as especificações” • Robustez:“habilidade de reagir a situações não previstas nas especificações” OO-SC (Meyer) - Cap 11

  3. Mecanismos de Confiabilidade • Estrutura: • Manter o mais simples possível • Limitar comunicação entre módulos • Elegância e legibilidade • Software não é apenas escrito; é lido e reescrito muitas vezes • Gerência de memória (coleta do lixo) • Tipagem forte e estática OO-SC (Meyer) - Cap 11

  4. Sobre “correção de software” Correção é uma noção relativa! X := Y + 1 A: X e Y possuem valores diferentes! B: X tem valor negativo! Depende da ESPECIFICAÇÃO! OO-SC (Meyer) - Cap 11

  5. Como expressar uma especificação • Fórmula de Correção: {P} A {Q} Leia-se: “Em qualquer execução de A, iniciando em um estado onde P é válido, terminará em um estado em que Q será válido” OO-SC (Meyer) - Cap 11

  6. Por exemplo: {x >= 9} x := x + 5 {x >= 13} ___________________________________ P >> Pré-condição Q >> Pós-condição OO-SC (Meyer) - Cap 11

  7. Condições fortes e fracas: Sinecura 1: {False} A {…} Sinecura 2: {…} A {True} OO-SC (Meyer) - Cap 11

  8. Asserções: N > 0; X /= Void “;” >> significa and Positive: n>0 Not_void: x /= Void OO-SC (Meyer) - Cap 11

  9. Pré-condições e pós-condições • Require • Ensure OO-SC (Meyer) - Cap 11

  10. Indexing description: “Stacks: estruturas de fornecidas numa disciplina de First IN First OUT” Class STACK [G] feature -- Access count: INTEGER -- Número de elementos do Stack item: G is -- Elemento Topo require not empty do … end OO-SC (Meyer) - Cap 11

  11. Feature -- Relatório de status empty: BOOLEAN is -- O stack está vazio? do … end full: BOOLEAN is -- O stack está cheio? do … end OO-SC (Meyer) - Cap 11

  12. Feature – Alterar elemento put (x: G) is -- Adicionar x no Topo require not full do …. ensure not empty item = x count = old count + 1 end OO-SC (Meyer) - Cap 11

  13. remove is -- Remover elemento do Topo require not empty do …. ensure not full count = old count - 1 end end OO-SC (Meyer) - Cap 11

  14. Desenho por Contrato Obrigações Benefícios Cliente (satisfazer pré-condições) Apenas chama PUT (x) em um Stack não cheio (Das pós- condições) Obtem o Stack Atualizado; não Vazio; X no topo; Contador + 1 Servidor (Satisfaz pós- condições) Atualiza o stack; não Vazio; Contador - 1 (Das pré-condições) Processamento Simples devido Stack não cheio OO-SC (Meyer) - Cap 11

  15. Invariantes: Indexing description: “Stacks: estruturas de fornecidas numa …” Class STACK [G] feature -- Access count: INTEGER -- Número de elementos do Stack item: G is require …. invariant count_non_negative: 0 <= count count_bounded: count <= capacity empty_if_no_elements: empty = (count=0) end -- class STACK OO-SC (Meyer) - Cap 11

More Related