Diagramas UML de Seqüência Interações Ator - Sistema Utilizações dos Casos de Uso Expandidos • Como fonte de informação para encontrar conceitos para o modelo conceitual detalhado • Como fonte de informação para encontrar as operações e leituras de sistema, que darão origem aos métodos que fazem a interface do sistema com o mundo externo – Diagramas de Seqüência Elementos de um Diagrama UML de Seqüência • A cada caso de uso corresponderá um diagrama de seqüência • Descreve as interações ator – sistema, conforme o caso de uso, da seguinte forma – – – – Coluna(s) Ator(es) Coluna Um Objeto da Entidade Sistema Eixo do Tempo: de cima para baixo Interação (arcos orientados) • Mensagem Operação ou Leitura de um ator para o sistema • Respostas do sistema (“OK” não vale!) Elementos de um Diagrama de Seqüência • Iterações – Estereótipo <<Iteração>> – Escopo da iteração • Um retângulo • Mensagens – Notação funcional (mais compacta) • Só Fluxo Principal • Com Fluxos Alternativos Diagrama de Seqüência do Caso de Uso Emprestar Fitas (Fluxo Principal) :Sistema Funcionário identificaCliente(nome) <<iteração>> Enquanto houver fitas emprestaFita(codigo) valor:= consultaValor() prazos:= consultaPrazos() valor, prazos:= finalizaEmprestimo() Comentários Sobre o Exemplo • Mensagem do Tipo Operação – Muda o estado do sistema • emprestaFita(código) • Mensagens do Tipo Leitura – Sem mudança de estado • Leitura simples (“get”) – identificaCliente(nome) – consultaPrazos() • Leitura com transformação da informação – consultaValor() » Retorna um valor derivado dos valores unitários das fitas • finalizaEmprestimo() – Operação ou leitura? Diagrama de Seqüência (Fluxo Alternativo) :Biblioteca Funcionário identificaCliente(nome) [nomeNaoExiste] sinalizaExcecao(...) [existeDebito] sinalizaExcecao(...) prazo := emprestaMaterial(titulo) [estourouLimite} sinalizaExcecao(...) * Enquanto houver material prazos := finalizaEmprestimo() Comenários Sobre o Exemplo • Note o modo alternativo de expressar uma iteração • Mensagem do Sistema comunicando uma exceção – Linha pontilhada partindo da mensagem que originou a exceção – Sintaxe: [exceção]sinalizaExcecao() Comentários Gerais • O importante na análise é identificar corretamente que operações e leituras de sistema são necessárias • Diagramas completos, isto é, incluindo os fluxos alternativos, são importantes para o projeto da interface • Na atividade de Projeto (“Design”) – Operações e Leitura se tornam métodos da classe de software Fachada (“Facade”) Comentários Gerais • O próximo passo da atividade de análise são os contratos de operação de sistema – Entradas: diagramas de sequência e modelo conceitual – O contrato descreve conceitualmente a operação • Em termos do modelo conceitual Projeto da Disciplina: Parte II • Para cada caso de uso em alto nível – Expandir o caso de uso • Diagrama UML do caso de uso, detalhado – Relacionamentos is_a, include e extend, onde aplicável – Texto expandido conforme o “template” dado em aula – Desenhar o correspondente diagrama de seqüência • Fluxo Principal • Fluxos Alternativos • Data-limite: 23/04