45
Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Embed Size (px)

Citation preview

Page 1: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Unified Modeling Language (UML)- Modelação da Dinâmica -

Alberto Silva / José Borbinha

Análise e Concepção de Sistemas de Informação

Page 2: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Modelação da Dinâmica

• Use Cases e Diagramas de Use Case• Interacções• Diagramas de Interacção• Diagramas de Estado• Diagramas de Actividade

Page 3: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Modelação da Dinâmica (ou Comportamento)

• Dinâmica geral do sistema– Diagrama de Casos de Utilização– Diagrama de Actividade

• Diagramas de Interacção– Dinâmica entre objectos

• Diagrama de Sequência• Diagrama de Comunicação• Diagrama Temporal

– Diagrama da Visão Geral da Interacção

• Comportamento dos objectos...– Diagrama de Máquina de Estados

Page 4: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação
Page 5: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Modelação da Dinâmica

• Use Cases e Diagramas de Use Case• Interacções• Diagramas de Interacção• Diagramas de Estado• Diagramas de Actividade

Page 6: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Use Cases (Casos de Utilização)

• Um use-case descreve o que faz um sistema (ou parte deste), não como é que tal é realizado (foco na visão externa do sistema)

• O modelo do comportamento (ou da dinâmica) de um sistema começa com a análise de use-cases.

• Os use-cases capturam os requisitos de um sistema, através do detalhe de todos os cenários que os actores podem realizar.

• Um use case é uma colecção de cenários. Um cenário é uma determinada sequência de acções que ilustra um comportamento do sistema.

• É normal um use-case ser descrito por vários cenários possíveis.

Page 7: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Reutilização na Modelação de Casos de Utilização (inclusão versus extensão)

• Inclusão– Uma relação de inclusão entre dois casos representa uma situação em que

um caso, em determinado momento da sua execução, incorpora sempre a execução de outro.

– É relevante considerar o uso de inclusão quando há comportamentos que são executados da mesma forma em vários casos. Identificando-os em casos específicos permite reutilizá-los.

• Extensão– Uma relação de extensão entre dois casos significa que, sob certas

condições, o caso base pode incorporar a execução do outro.

– Uma relação de extensão permite representar uma parte de um caso que é opcional, ou que existe em várias alternativas.

– Um use case de base pode ser estendido num ou mais pontos, designados por “pontos de extensão”.

Alerta para uma confusão frequente...

Page 8: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Reutilização na Modelação de Casos de Utilização (inclusão versus extensão)

A Máquina de Bebidas

Cliente

Agente do Fornecedor

Comprar Bebida

Repôr bebidas

Retirar dinheiro

Colector

Dono

Abrir a Máquina

Fechar a Máquina

«include»

«include»

«include»

«include»

Os casos de “Abrir a Máquina” e “Fechar a Máquina” são executados em vários outros casos, logo, se forem relevantes (por exemplo, para se abrir a máquina tem de se ter acesso a uma chave) faz sentido identificá-los explicitamente e reutilizá-los quando necessário. Esta reutilização faz-se por inclusão (como no caso dos ficheiros “include”em C e noutras linguagens ou ambientes de programação)

Page 9: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Reutilização na Modelação de Casos de Utilização

(inclusão versus extensão)O caso “Obter Extracto de Conta” pode ter um comportamento por omissão que nos dá, por exemplos, o extracto dos últimos 30 dias. No entanto, ainda dentro do mesmo caso, podemos desejar a opção de alterar esses número de dias. Temos assim uma condição variável! A forma de declarar isso é definindo um Ponto de Extensão para o Número de Dias, e definir casos de utilização que podem estender o caso principal segundo essa variável.

Page 10: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Reutilização na Modelação de Casos de Utilização

(inclusão versus extensão)

O caso “Perform Security Check” é executado apenas se o actor for um “International Student”

Page 11: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Modelação da Dinâmica

• Use Cases e Diagramas de Use Case

• Interacções• Diagramas de Interacção• Diagramas de Estado• Diagramas de Actividade

Page 12: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacções

• Uma interacção é a especificação do comportamento de um conjunto de objectos, representado pela sua troca de mensagens, num determinado contexto, e com vista à concretização de um dado objectivo.

• Uma mensagem é a especificação de comunicação entre objectos.• Sempre que existe uma ligação (link) entre objectos, pode ocorrer

uma ou mais interacções.

Exemplos de Mensagens cancela(), envio de uma operação sem valores em argumentos e sem retorno. cancelaProposta( data=31/12/2006, - ):void, envio de uma operação com o primeiro argumento

com valor “31/12/2006”, o segundo argumento sem valor; e com retorno do tipo “void”.

[attribute =] signal-or-operation-name [ (arguments)] [: return-value] | ´*´arguments ::= argument [, arguments]argument ::= [parameter-name= ] argument-value | - attribute::= out-parameter-name [:argument-value] | -

Sintaxe de uma mensagem

Page 13: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacções - Relação entre Diagramas

classe

PessoaEmpresa

associação

1..* *Diagrama de

Classes

:Pessoa :Empresa

objecto

Diagrama de Objectos

:Pessoa :Empresa

afecta(desenvolvimento)

objecto

link

mensagem

Diagrama de Interacção

Page 14: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacções - Objectos e Links

• Os diagramas de interacções devem ser considerados como uma extensão (dinâmica) aos diagramas de objectos (que são estáticos).

• Um link traduz uma relação semântica/estrutural entre objectos. Sempre que existe uma associação entre duas classes também deve existir um link entre instâncias dessas classes.

• Uma mensagem é o estabelecimento de uma comunicação por um link entre objectos que veicula informação com a expectativa de determinada actividade ser realizada.

:Pessoa :Empresa

objecto

Diagrama de Objectos

:Pessoa :Empresa

afecta(desenvolvimento)

objecto

link

mensagem

Diagrama de Interacção

Page 15: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacções - Mensagens

Em UML estão já predefinidos alguns tipos de mensagens:• Call: invoca uma operação de um objecto (é o tipo de msg mais usual)• Return: devolve um valor para o “chamador”• Send: envia um sinal para o objecto• Create: cria um objecto• Destroy: destroi um objecto (um objecto pode auto-destruir-se)

Tipos de Mensagens ( de notar no entanto que diferentes ferramentas CASE podem suportar diferentes representações gráficas):

Page 16: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacções - Sequência de Mensagens

• Quando um objecto envia uma mensagem a outro objecto, este por sua vez pode enviar outra mensagem a outro objecto, e assim sucessivamente.

• Criam-se, deste modo, sequências de mensagens, em geral executadas sobre o mesmo processo ou actividade de execução.

• É importante descrever claramente essas sequências!!!

:X

:Z

:Y

1: add()

2: modify()3: update()

número da mensagem

mensagem

Page 17: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacções - Sugestões

• Simples: deve incluir apenas os objectos necessários que entre si realizam um determinado comportamento.

• De contexto bem definido: pode-se representar uma interacção de objectos no contexto de uma operação, de uma classe, ou o do sistema como um todo.

• Eficiente: deve executar o seu comportamento com um compromisso óptimo entre tempo e recursos.

• Comprensível: não deve ter efeitos co-laterais escondidos, ou semântica obscura.

Uma Interacção bem estruturada é:

Page 18: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Modelação do Comportamento

• Use Cases e Diagramas de Use Case• Interacções

• Diagramas de Interacção• Diagramas de Estado• Diagramas de Actividade

Page 19: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Interacção• Um diagrama de interacção ilustra as mensagens trocadas entre

objectos na realização de um caso de utilização.

• Devem-se utilizar diagramas de interacção sempre que se pretende representar o comportamento de vários objectos num único caso de utilização.

• Tipos de Diagramas de Interacção– Diagrama de sequência: é um diagrama de interacção com ênfase na

ilustração temporal das mensagens trocadas entre os objectos – Diagrama de comunicação: é um diagrama de interacção com ênfase na

ilustração da organização estrutural dos objectos que trocam mensagens entre si.

– Diagrama da visão geral da interacção (interaction overview diagram): é um diagrama de interacção com ênfase na ilustração de alto nível do fluxo de controlo lógico das interacções relevantes. Pode ser encarado como um diagrama de actividade, em que os seus nós são interacções definidas com detalhe através dos diagramas de sequência e ou de comunicação.

– Diagrama temporal (timming diagram): é um diagrama opcional que permite especificar restrições de tempo associadas a mensagens trocadas no decurso de uma interacção.

Page 20: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacção: Diagramas de Sequências

• Os diagramas de sequência descrevem um padrão de interacção entre objectos, apresentado de uma forma cronológica.

• Conceitos• objectos e sua linha de vida• mensagens• âmbito de execução• numeração de mensagens hierárquica• scripts

Page 21: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacção: Diagramas de Sequências (exemplo)

Criação de “Conta” – diagrama de sequência ao nível de desenho em ASP.NET...

Page 22: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interacção: Diagramas de ComunicaçãoDiagramas de comunicação• Mostram relações entre os objectos, adicionalmente às interacções• Adequados para visualizar padrões de colaboração entre objectos• Adequados para visualizar todos os efeitos num dado objecto

Page 23: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diag. Sequência versus Diag. Comunicação

Diagramas de sequência mostram a sequência explicita das

mensagens melhores para visualizar o fluxo

global de aplicação melhores para especificações de

tempo real e para cenários complexos

Diagramas de comunicação• mostram relações, adicionalmente

às interacções• melhores para visualizar padrões

de colaboração entre objectos• melhores para visualizar todos os

efeitos num dado objecto• mais fáceis de utilizar em reuniões

Estes diagramas são semanticamente equivalentes, mas não apresentem explicitamente a mesma informação (ex: a linha de tempo não existe no diagrama de sequências...)

Page 24: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Interação - Utilizações Comuns

• Para modelar o fluxo de controlo numa perspectiva temporal– Usar diagramas de sequências

• particularmente útil para detalhar um cenário de um use case

• melhores para especificar situações complexas, bem como fluxos de controlo múltiplos e concorrentes (sistemas de tempo real), ...

• Para modelar o fluxo de controlo numa perspectiva organizacional– Usar diagramas de comunicação

• ênfase nas relações estruturais entre as instâncias de uma interacção

• mais adequados para especificar situações simples

• desenho “procedimental”

Page 25: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diag. de Interação – Diag. Temporal• Um diagrama temporal

(timing diagram) é um diagrama de interacção com objectivos específicos de ilustrar para o exterior as mudanças de estado que ocorrem num determinado objecto ao longo de um período de tempo.

• Pode ser considerado como uma combinação entre um diagrama de interacção e um diagrama de estados, com a capacidade de explicitação de restrições de tempo e de duração.

Page 26: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Modelação do Comportamento

• Use Cases e Diagramas de Use Case• Interacções• Diagramas de Interacção

• Diagramas de Estado• Diagramas de Actividade

Page 27: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Estado

• Modo de representar as alterações de estado dos objectos do sistema (objectos mudam de estado como resposta a eventos e à passagem de tempo).

• Exemplos:

– Quando se liga/desliga um interruptor

– Depois da passagem de um determinado período de tempo,

a máquina de lavar termina o seu programa de lavagem, e

inicia o de secagem

Um diagrama de estado também é designado por “máquina de estados”

Page 28: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Estado - Representação

X

Estado inicial Estado finalEstado X

Nome

Operações

Visão de um Estado com detalhes

transição

Exemplo: “lâmpada”

Acesa

Danificada

Apagada

Desligar (off) Ligar (on)

Page 29: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Estado - Acções e Actividades

Acção: atómica; não se pode interromper

Actividade: complexa (eventualmente descrita por um outro diagrama de estado aninhado); pode-se interromper.

Cláusulas:– entry/actions - acção(ões) executada quando se entra no estado– exit/actions - acção (ões) executada quando se sai do estado– do/activities - actividade(s) executada no estado (são permitidos parâmetros)– Internal event/actions - evento que não provoca mudança de estado– Event /defer - evento é diferido para ser tratado fora do estado

Page 30: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Estado - Acções e Actividades

• Auto-transições

– Situações em que um objecto recebe um evento que não provoca a sua

mudança de estado, mas que corresponde a uma interrupção de facto do

seu estado.

– Este tipo de evento é suficientemente significativo pois força o objecto a

interromper a sua actividade corrente, forçando-o a sair do seu estado

corrente e a retornar ao mesmo estado, provocando de facto uma re-

entrado no estado corrente.

Page 31: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Estado

Eventos e Acções

Condições com

Guarda

Uma transição de estado realiza-se se o evento ocorre e a guarda é verdadeira.

Sintaxe completa de uma transição: evento [condição com guarda] / acção

Page 32: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de EstadoSub-Estados (potencia o mecanismo de abstracção/decomposição)

Um estado pode ser melhor descrito por um conjunto (sequencial e/ou concorrente) de outros estados, designados por “sub-estados”. Ou seja, um conjunto de estados podem ser agregados num único estado...

Page 33: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Estado

Sub-EstadosSub-Estados Concorrentes

Page 34: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Modelação do Comportamento

• Use Cases e Diagramas de Use Case• Interacções• Diagramas de Interacção• Diagramas de Estado

• Diagramas de Actividade

Page 35: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de ActividadeUm diagrama de actividades descreve os processos de negócio de um sistema (modelação da lógica do sistema e fluxos de dados)

– Modelação dos aspectos de comportamento funcional (e.g., o algoritmo) de um sistema como um todo, de um subsistema, de uma operação ou de uma classe.

– Modelação de um cenário de um caso de utilização ou do comportamento de um conjunto de objectos genéricos numa colaboração.

– Modelação de processos (workflows) com diferentes participantes– ...

Notas:– Um diagrama de actividades ilustra o fluxo de controlo (e de objectos)

entre actividades dos processos.– Um diagrama de estados ilustra o fluxo de controlo entre estados

dos objectos. – Um diagrama de interacção ilustra o fluxo de controlo entre

objectos.

Page 36: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade

• Diagramas que fornecem uma visão simplificada do fluxo de controlo de um caso de utilização, operação ou de um processo

• Mostram o fluxo entre actividades (e adicionalmente também o fluxo de informação)

• Equivalente a fluxogramas, na sua forma de aplicação simples ...

Actividade 1

Actividade 2

estado inicial

estado final

transição

Page 37: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade

• Acções: execuções atómicas, não interrompíveis, com tempo de execução irrelevante.

• Actividades: execuções não atómicas (decompostas), interrompíveis, em que o tempo de execução é normalmente relevante.

• Transições.• Objectos.• Nós (ou pontos) de decisão e de junção.• Nós de difusão (fork) e de junção ou

sincronização (join).

Calcular Factura

Emitir Factura

index:= a+b+f(c);

Reunião com o Cliente

entry / apresentar credenciais

Page 38: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade

• A actividade “Submeter Opinião” , WebGTTI

Page 39: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade

Decisões (“… ou …”)

Duas formas equivalentes de se representar uma decisão

Page 40: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade

Todas as actividades são realizadas concorrentemente

Conjunto de actividades realizadas concorrentemente, independentemente da sua ordem de execução

Caminhos Concorrentes...

Page 41: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade – Ex. para um algoritmo

Exemplo: Série de Fibonacci

Page 42: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade – Exemplo para um processo de negócio / workflow

Preparar Proposta

(Empresa de Serviços)

Partições - permitem separar o diagrama em segmentos paralelos, em que cada um apresenta as actividades de cada interveniente no processo global

Page 43: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade – Exemplo para um processo de negócio / workflow

A partição de actividades pode representar uma ou mais dimensões do problema

Mas esta solução não é escalável…

Page 44: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade – Exemplo para um processo de negócio / workflow

Alternativa escalável…

Page 45: Unified Modeling Language (UML) - Modelação da Dinâmica - Alberto Silva / José Borbinha Análise e Concepção de Sistemas de Informação

Diagramas de Actividade – Exemplo para um processo de negócio / workflow

Actividades e Objectos