Contratos
description
Transcript of Contratos
Contratos
Modelagem Funcional
Modelagem Funcional
Especificação das funções externas isto é, a cargo dos atores do sistema Operações
Diagrama de Sequência de Operações Consultas / Relatórios
Contrato
Dentro da modelagem funcional, Contratos especificam somente as operações
Consultas / Relatórios são próprios de especificação de interface
Artefatos Necessários aos Contratos
Modelo conceitual Diagramas de seqüência
É Tempo de Recordar as Dependências entre Artefatos de Análise ...
Docum ento deRequisitos
O rganização d osRequisitos
Caso s deUso
Consultas /Relatórios
M anutenção deEntidades
M odeloConceitualPrelim inar
Casos d eUso Expandidos
Diagram as deSequência
M odeloConceitual
C ontratosDic ionário deDados
Elementos de um Contrato de Operação
Identificação Referências Cruzadas
Casos de uso onde a operação aparece Pré-condições Pós-condições
Pré-condições Definem o que deve ser verdadeiro na
estrutura da informação armazenada para que uma operação possa ser executada Certos objetos devem existir (ou não existir!) Certas associações entre objetos devem existir
(ou não existir!) As pré-condições não serão testadas durante
a execução da operação Algum mecanismo externo deverá garantir as
pré-condições antes de executar a operação
Pós-condições
Estabelecem como o estado do sistema deve mudar, em função da execução da operação Criação / destruição de objetos Criação / destruição de associações entre
objetos Mudança de estado de objetos
Template de um ContratoOperação: Nome e parâmetros[Referências cruzadas]: Use cases em que a operação pode ocorrerPré-condições: Hipóteses acerca do estado do sistema ou dos objetos do modelo do domínio, antes da execução da operaçãoPós-condições: O estado dos objetos do modelo do domínio, depois que a operação foi realizada
Exemplos de Contrato
Estudo de Caso Um sistema de terminal de vendas em um
supermercado Sistema TV Detalhado no livro de Larman
Modelo Conceitual do Sistema TV
Diagrama de Sequência para o Caso de Uso Processar Vendas
Contrato para a Operação IniciarVenda()Contrato C1: IniciarVenda()Referências cruzadas: Caso de Uso Processar VendasPré-condições - Um objeto TV e um objeto Caixa existem - A associação TV É operado por Caixa existePós-condições - Uma instância v de Venda foi cria - v foi associada segundo Venda Registrada em
TV - v.data := data - v.tempo := tempo
Contrato para a Operação EntrarItem()
Contrato C2: EntrarItem(IDItem, quantidade)Referências cruzadas: Caso de Uso Processar VendasPré-condições - Um objeto Venda criadoPós-condições - Uma instância lv de Linha de Venda foi criada - lv foi associada segundo Contida em, Registra venda de, Descrita por - lv.idItem := IDItem - lv.quantidade := quantidade
Contrato para a Operação TerminarVenda()
Contrato C3: TerminarVenda()
Referências cruzadas: Caso de Uso
Processar Vendas
Pré-condições - Um objeto v de Venda criadoPós-condições - v.completa := verdade
Contrato para a Operação FazerPagto()Contrato C4: FazerPagto()
Referências cruzadas: Caso de Uso Processar
VendasPré-condições - Um objeto v Venda, e objetos lv
Linha de Venda criadosPós-condições - uma instância p de Pagto foi criada - p foi associada a v segundo Paga - p.valor := valor - v foi associada segundo É arquivada
por
Contratos São Também um Meio de Validar / Refinar Modelos
Conceituais Estudo de Caso
O atributo completa da entidade Venda só foi descoberto durante a especificação do contrato C3
VendaCompletaDataTempo
Preparando-se para a Mini-prova #6
Estudo de caso: o seu projeto! Casos de Uso expandidos Modelo do domínio detalhado Diagramas de Sequência para cada caso de uso
Especificar os contratos de cada uma das operações dos diagramas de sequência
Refinar / validar o modelo do domínio