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

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

Prof. Dr. Daniel D. Abdala Baseada nas transparências de professor Leandro Becker.

Apresentações semelhantes


Apresentação em tema: "Prof. Dr. Daniel D. Abdala Baseada nas transparências de professor Leandro Becker."— Transcrição da apresentação:

1 Prof. Dr. Daniel D. Abdala Baseada nas transparências de professor Leandro Becker

2 Contratos são a forma de detalhar como as operações e consultas do sistema devem ocorrer; Podem ser descritos de maneira informal (textual) ou de maneira não ambígua (pseudo-código) Utilizam os casos de uso expandidos ou diagramas de seqüência e a modelagem conceitual;

3 Um contrato de operação do sistema nada mais é que um texto estruturado composto pelas seguintes partes: Pré-condições; Pós-condições; Exceções. Especifica em que estado o sistema deve estar para que a operação possa ocorrer; Especifica em que estado o sistema deve ser deixado uma vez que a operação chega ao seu termino; Especifica como o sistema deve se comportar em situações excepcionais.

4 Um contrato de consulta do sistema nada mais é que um texto estruturado composto pelas seguintes partes: Pré-condições; Resultados. Especifica em que estado o sistema deve se encontrar para que a consulta possa ocorrer; Especifica quais serão os resultados produzidos/retornados pela consulta.

5 Garantia de parâmetros: pré-condições que garantem que os parâmetros da operação ou consulta correspondem a elementos válidos do sistema de informação Restrição complementar: pré- condições que garantem que a informação se encontra em uma determinada situação desejada

6 é possível simplificar a escrita da pré- condição self.cadastro exists(nome=nomeCliente)

7 exemplo: se o modelo conceitual especifica que uma associação tem multiplicidade de papel 0..1, uma pré-condição complementar poderá especificar que, para uma instância específica, a associação efetivamente existe (ou não existe) ; uma pré-condição nunca poderá contradizer as especificações do modelo conceitual, apenas complementá-las.

8 Alias: cliente = self.cadastro select(nome=nomeCliente) Pré: cliente size() == 1 cliente.debito == 0

9 Operação: identificaCliente(nome:String) Alias: cliente = self.cadastro select(nome=nomeCliente) Pré: - Exceções: Nome invalido se cliente size == 0 Cliente com debito se cliente.debito != 0

10 Instância: criação e destruição Associação: criação e destruição Atributo: modificação de valor

11 Pós: foi criado um Cliente e associado à Videolocadora Pós: cliente = Cliente.new() self.addToCadastro(cliente).

12 Pós: O cliente cujo nome é nomeCliente foi associado à VideoLocadora como clienteCorrente Alias: cliente = self.cadastro select(nome=nomeCliente) Pós: self.clienteCorrente = cliente

13 Pós: se não havia nenhum emprestimoAberto associado ao clienteCorrente, então um novo Emprestimo foi criado e associado ao clienteCorrente como emprestimoAberto. Pós: self.clienteCorrente.emprestimoAberto@pre size==0 IMPLIES self.clienteCorrente.emprestimoAberto= Emprestimo.new()

14

15

16 Freqüentemente haverá uma cadeia de execução ao longo de um dos fluxos, explicitada no diagrama de seqüência. Verificar: Qual é o objetivo de cada operação? O que cada uma delas espera que tenha sido produzido pelas anteriores? O que cada uma delas produz? Que exceções poderiam ocorrer durante a execução?

17

18

19

20 1. Expandir cada caso de uso e fazer o diagrama de seqüência. 2. Fazer o modelo conceitual. 3. Escrever os contratos das operações e consultas do caso de uso.

21


Carregar ppt "Prof. Dr. Daniel D. Abdala Baseada nas transparências de professor Leandro Becker."

Apresentações semelhantes


Anúncios Google