Carregar apresentação
A apresentação está carregando. Por favor, espere
PublicouGabriela Morgado Alterado mais de 10 anos atrás
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()
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?
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.
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.