440 likes | 545 Views
Processo Unificado. Marcio de Carvalho Victorino mcvictorino@uol.com.br. Unidade V: Projeto OO. (Aspectos Dinâmicos). Modelo de Interação. Esse modelo representa as mensagens trocadas entre os objetos para a execução de cenários dos casos de uso do sistema.
E N D
Processo Unificado Marcio de Carvalho Victorino mcvictorino@uol.com.br
Unidade V: Projeto OO (Aspectos Dinâmicos)
Modelo de Interação • Esse modelo representa as mensagens trocadas entre os objetos para a execução de cenários dos casos de uso do sistema. • Os objetivos da construção do modelo de interação são: • obter informações adicionais para completar e aprimorar outros modelos; • fornecer aos programadores uma visão detalhada dos objetos e mensagens envolvidos na realização dos casos de uso.
Interação através de Mensagens • O princípio básico da interação entre objetos é o conceito de mensagem. • Um sistema de OO pode ser visto como uma rede de objetos. • funcionalidades são realizadas pelos objetos, que só podem interagir através de mensagens.
Diagramas de Interação Diagramas de interação representam como o sistema age internamente para que um ator atinja seu objetivo na realização de um caso de uso. A modelagem de um sistema de OO normalmente contém diversos diagramas de interação. O conjunto de todos os diagramas de interação de um sistema constitui o seu modelo de interações.
Tipos de Diagrama de Interação • Há dois tipos de diagrama de interação: • Diagrama de seqüência • Diagrama de colaboração • O diagrama de seqüência e o diagrama de colaboração são equivalentes entre si. Diagrama de seqüência: mensagens enviadas no decorrer do tempo. Diagrama de colaboração: mensagens enviadas entre objetos que estão relacionados.
Diagrama de Seqüência • A posição vertical das mensagens permite deduzir a ordem na qual elas são enviadas. • Ordem de envio de mensagens em um diagrama de colaboração pode ser deduzida a partir das expressões de seqüência. • Elementos básicos: • Atores • Objetos • Classes • Linhas de Vida • Mensagens • Focos de controle • Criação de objetos • Destruição de objetos
Diagrama de Colaboração • Mostra os objetos relevantes para a realização de um caso de uso (ou cenário deste). • Estruturalmente, é bastante semelhante a um diagrama de objetos. • A diferença é que são adicionados setas e rótulos de mensagens nas ligações entre esses objetos. • Objetos (nomeados e anônimos) e classes podem aparecer. • As ligações (linhas) entre objetos correspondem a relacionamentos existentes entre os objetos.
Seqüência x Colaboração • Diagrama de seqüência: • Exibe as mensagens ordenadas no tempo. • A visualização fica dificultada conforme o número de objetos cresce (disposição em uma dimensão). • Diagrama de colaboração: • Exibe mensagens enfatizando relacionamentos. • Melhor utilização do espaço (disposição em duas dimensões). • O diagrama de seqüência é equivalente ao diagrama de colaboração • Ferramentas CASE: transformação automaticamente.
Mensagens para cumprir Responsabilidades • O fato de um objeto “precisar de ajuda” indica a necessidade de este enviar mensagens. • Na construção de diagramas de interação, mensagens de um objeto a outro implicam em operações que classes devem ter. Uma mensagem implica na existência de uma operação no objeto receptor. A resposta ao recebimento de uma mensagem é a execução dessa operação.
Utilização • São utilizados na fase de construção de um ciclo de vida incremental e iterativo. • São construídos para os casos de uso alocados para uma iteração desta fase. • Controvérsia sobre utilização na análise ou no projeto. • Inicialmente (+análise), pode exibir apenas os objetos participantes e mensagens exibindo somente o nome da operação. • Posteriormente (+projeto), pode ser refinado. • criação e destruição de objetos, tipo e assinatura completa de cada mensagem, etc.
Utilização • Em um processo incremental e iterativo, os modelos evoluem em conjunto. • Embora estes modelos representem visões distintas do sistema, eles são interdependentes. • Modelo de classes modelo de interações. • Modelo de interações refinamento do modelo de casos de uso. • Modelo de interações operações para o modelo de classes. • Modelo de interações novos atributos para o modelo de classes.
Diagrama de Transição de Estados. • Objetos do mundo real se encontram em estados particulares a cada momento. • Um DVD pode estar reservado. • Uma conta bancária pode estar inativa. • Da mesma forma, cada objeto participante de um sistema de software orientado a objetos se encontra em um estado particular. • Um objeto muda de estado quando acontece algum evento interno ou externo ao sistema.
Diagrama de Transição de Estados. • Através da análise das transições entre estados dos objetos de um sistema de software, podem-se prever todas as possíveis operações realizadas, em função de eventos que possam ocorrer. • O diagrama da UML que é utilizado para realizar esta análise é o diagrama de transição de estado (DTE).
Diagrama de Transição de Estados. • A UML tem um conjunto rico de notações para desenhar um DTE. • Estados. • Transições. • Evento. • Ação. • Atividade. • Transições internas. • Estados aninhados. • Estados concorrentes.
Estado • Situação na vida de um objeto em que ele satisfaz a alguma condição ou realiza alguma atividade. • Cada estado de um objeto é determinado pelos valores dos seus atributos e (ou) pelas suas ligações com outros objetos. • Por exemplo: “o atributo reservado deste objeto livro tem valor verdadeiro”. • Outro exemplo: “uma conta bancária passa para o vermelho quando o seu saldo fica negativo”.
Estados • O estado inicial indica o estado de um objeto quando ele é criado. Só pode haver um estado inicial em um DTE. • Essa restrição serve para definir a partir de que ponto um DTE deve começar a ser lido. • O estado final é representado como um círculo “eclipsado” e indica o fim do ciclo de vida de um objeto. • Este estado é opcional e pode haver mais de um estado final em um DTE.
Estados • Notação para representar estados na UML. Estado Ordinário Estado Final Estado Inicial Estado
Transições • Os estados estão associados a outros pelas transições. • Uma transição é mostrada como uma linha conectando estados, com uma seta apontando para um dos estados. • Quando uma transição entre estados ocorre, diz-se que a transição foi disparada. • Uma transição pode ser rotulada com uma expressão da seguinte forma: evento (lista-parâmetros) [guarda] / ação
Eventos • Uma transição possui um evento associado. • Um evento é algo que acontece em algum ponto no tempo e que pode modificar o estado de um objeto: • Pedido realizado • Fatura paga • Cheque devolvido
Realizar deposito(quantia) /depositar(quantia) Conta Criada Conta Fechada disponível Realizar saque(quantia) [quantia = saldo] /sacar(quantia) when(saldo>0) Realizar deposito(quantia) /depositar(quantia) bloqueada Realizar saque(quantia) Após(30 dias)/aplicarJuros() Exemplo
Ações • Ao transitar de um estado para outro, um objeto pode realizar uma ou mais ações. • Uma ação é uma expressão definida em termo dos atributos, operações, associações da classe ou dos parâmetros do evento também podem ser utilizados. • A ação associada a uma transição é executada se e somente se a transição for disparada.
Atividades • Semelhantes a ações, atividades são algo que deve ser executado. • No entanto, uma atividade pode ser interrompida (uma ação não pode). • Por exemplo, enquanto a atividade estiver em execução, pode acontecer um evento que a interrompa. • Outra diferença: uma atividade sempre está associada a um estado (ao contrário, uma ação está associada a uma transição).
Diagrama de Atividades • É um tipo especial de diagrama de estados, onde são representados os estados de uma atividade, ao invés dos estados de um objeto: • Um diagrama de atividade exibe os passos de uma computação. • Cada estado é um passo da computação, onde o sistema está realizando algo. • É orientado a fluxos de controle (ao contrário dos DTEs que são orientados a eventos). • Fluxogramas estendidos... • Além de possuir toda a semântica existente em um fluxograma, permite representar ações concorrentes e sua sincronização.
Diagrama de Atividades: Elementos • Elementos utilizados em fluxos seqüenciais: • Estado ação. • Estado atividade. • Estados inicial e final, e condição de guarda. • Transição de término. • Pontos de ramificação e de união. • Elementos utilizados em fluxos paralelos: • Barras de sincronização. • Barra de bifurcação (fork). • Barra de junção (join).
Fluxos de controle seqüenciais • Um estado em um diagrama de atividade pode ser: • um estado atividade: leva um certo tempo para ser finalizado. • um estado ação: realizado instantaneamente. • Deve haver um estado inicial e pode haver vários estados finais e guardas associadas a transições. • pode não ter estado final, o que significa que o processo ou procedimento é cíclico. • Uma transição de término significa o término de um passo e o conseqüente início do outro. • ao invés de ser disparada pela ocorrência de um evento, é disparada pelo término de um passo.
Fluxos de controle seqüenciais • Um ponto de ramificação possui uma única transição de entrada e várias transições de saída. • Para cada transição de saída, há uma condição de guarda associada. • Quando o fluxo de controle chega a um ponto de ramificação, uma e somente uma das condições de guarda deve ser verdadeira. • Pode haver uma transição com [else]. • Um ponto de união reúne diversas transições que, direta ou indiretamente, têm um ponto de ramificação em comum.
Fluxos de controle paralelos • Fluxos de controle paralelos: dois ou mais fluxos sendo executados simultaneamente. • Uma barra de bifurcação recebe uma transição de entrada, e cria dois ou mais fluxos de controle paralelos. • cada fluxo é executado independentemente e em paralelo com os demais. • Uma barra de junção recebe duas ou mais transições de entrada e une os fluxos de controle em um único fluxo. • Objetivo: sincronizar fluxos paralelos. • A transição de saída da barra de junção somente é disparada quando todas as transições de entrada tiverem sido disparadas.
Fluxos de controle paralelos • Algumas vezes, as atividades de um processo podem ser distribuídas por vários agentes que o executarão. • processos de negócio de uma organização. • Isso pode ser representado através de raias de natação (swim lanes). • As raias de natação dividem o diagrama de atividade em compartimentos. • Cada compartimento contém atividades que são realizadas por uma entidade.
Usos de Diagramas de Atividades • Modelagem dos fluxos de trabalho de um processo do negócio: • Modelagem também é um processo de entendimento. • o desenvolvedor constrói modelos para entender melhor um problema. • Modelagem da lógica de um caso de uso: • Em determinadas situações, é interessante complementar a descrição do caso de uso com um diagrama de atividade.