UML: modelagem dinâmica



Documentos relacionados
Princípios de Análise e Projeto de Sistemas com UML

UML Diagramas. UML Diagramas. UML Diagrama Diagrama de Classes. UML Diagrama Diagrama de Classes

Uma visão mais clara da UML Sumário

Questões de Concursos Públicos sobre Orientação a Objetos e UML

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

2 Diagrama de Caso de Uso

UML: Casos de Uso. Projeto de Sistemas de Software

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)

CASO DE USO. Isac Aguiar isacaguiar.com.br

Diagrama de Estados. Prof. Cesar Augusto Tacla

Planejamento da disciplina: Modelagem de processos de negócio

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

O que é a UML? Introdução a UML. Objetivos da Modelagem. Modelos. A UML não é. Princípios da Modelagem. O que é um modelo?

Sumário. Capítulo 1 Introdução à UML Capítulo 2 Orientação a Objetos Agradecimentos... 6 Sobre o Autor... 6 Prefácio...

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

Modelagem de Sistemas Orientado a Objetos com UML. Capítulo 8. Diagrama de Estados. Ana Paula Gonçalves Serra, Dr.

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

Casos de Uso O que é. Casos de Uso. Objetivos de um Caso de Uso. Atores. Atores e Casos de Uso. Diagramas de Caso de Uso

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Engenharia de Software III

Guia de utilização da notação BPMN

Sumário. Uma visão mais clara da UML

Aula 5 UML: Casos de Uso

Modelagem Temporal com UML

Modelagem Dinâmica com UML

BPMN. Business Process Modeling Notation. Leandro C. López Agosto

Diagrama de transição de Estados (DTE)

Diagramasde Interação. Prof. Anderson Cavalcanti UFRN-CT-DCA

UML Aula III Diagramas de Estado, Atividades, Componentes e Instalação

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

Engenharia Informática

UML. Máquina de Estados

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

BPMN. Business Process Modeling Notation

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

O que representam? Diagrama de Estados. Como construir. Estado: Identificação dos Estados. Notação para estados

Notas de Aula 04: Casos de uso de um sistema

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Guia de Especificação de Caso de Uso Metodologia CELEPAR

Orientação a Objetos com Java

UML: Diagrama de Casos de Uso, Diagrama de Classes

1.6. Tratamento de Exceções

Engenharia de Requisitos Estudo de Caso

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

DISSEMINAÇÃO DE CONHECIMENTO FERRAMENTA BIZAGI

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

1 UML (UNIFIED MODELING LANGUAGE)

Orientação a Objetos

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

UML: Unified Modeling Language. Graduação em Informática 2008 Profa. Itana Gimenes

Modelagem de Casos de Uso (Parte 1)

Engenharia de Software

RUP. Evolução. Principais Características do RUP. Principais Características do RUP RUP

Engenharia de Software I

UML Itens Estruturais - Interface

Análise e Projeto de Sistemas

FMR Faculdade Marechal Rondon Gestão de Sistemas de Informação Prof. Ms. Elvio Gilberto da Silva

4 O Workflow e a Máquina de Regras

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas

Tópicos em Engenharia de Computação

Programa do Curso de ESW

Estudo de Caso. Caixa Eletrônico. Deitel & Deitel. Java como Programar 6a edição

REPRESENTAÇÃO DE REQUISITOS VARIÁVEIS COM UML, SEGUINDO O MÉTODO ICONIX

Engenharia de Software: Introdução. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Seja uma rede de Petri definida pela tripla (L, T, A), e por sua marcação inicial M 0.

Levantamento, Análise e Gestão Requisitos. Aula 04

Modelos de Sistemas Leitura: Sommerville; Pressman

MC302A Modelagem de Sistemas com UML. Prof. Fernando Vanini

REQUISITOS DE SISTEMAS

BPMN (Business Process. George Valença

UML Aula I Diagramas de Caso de Uso, Sequência e Colaboração

UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.

Orientação à Objetos. Aécio Costa

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 16 PROFª BRUNO CALEGARO

Programa do Módulo 2. Fundações do Modelo Objeto

Adm. Vinicius Braga Prof. Msc. Wilane Carlos da Silva Massarani

Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Componentes do Diagrama

UML Aspectos de projetos em Diagramas de classes

Casos de Uso. Viviane Torres da Silva

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

A Linguagem de Modelagem Unificada (UML)

Unified Modeling Language UML - Notações

BPMN - Business Process Modeling and Notation

Capítulo 6. Criando um Diagrama de Caso de Uso Inicial

MODELAGEM DE DADOS. Unidade II Arquiteturas do SGBD

Modelo de Entidade e Relacionamento (MER) - Parte 07

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce

É uma forma do engenheiro de requisitos especificar os limites e as funcionalidades do sistema.

Engenharia de Software

build UNIP Sistemas de Informação Análise Essencial de Sistemas 3 Prof.Marcelo Nogueira A produção de Software é uma atividade build and fix.

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 20 PROFª BRUNO CALEGARO

Sistemas Distribuídos. Professora: Ana Paula Couto DCC 064

UNIVERSIDADE DO ESTADO DE SANTA CATARINA - UDESC DCC Departamento de Ciência da Computação Joinville-SC

Lógica e Programação Java

Transcrição:

UML: modelagem dinâmica Prof.: Clarindo Isaías Pereira da Silva e Pádua Synergia / Gestus Departamento de Ciência da Computação - UFMG UML: modelagem dinâmica 2 Bibliografia Rumbaugh, J.; Jacobson, I.; Booch, G., The Unified Modeling Language Reference Manual, Addison Wesley, 2nd edition, 2004. Booch, G.; Rumbaugh, J.; Jacobson, I., "Unified Modeling Language User Guide", 2nd Edition, Addison Wesley, 2005. Eriksson, H-E, Penker, M. Lyons, B., Fado, D. UML 2 Toolkit, Wiley, 2004 UML: modelagem dinâmica Atividade Evento Máquina de estado Interação 3 4 1

UML: modelagem dinâmica UML: modelagem dinâmica O comportamento dinâmico de um objeto tem duas dimensões: mudanças de estado interna. Descrevem como o objeto altera seu estado, por exemplo, mostrando o valor de seus atributos. interações. Descrevem o comportamento externo e sua interação com outros objetos. Atividade Atividade é um grafo de nodos e fluxos que mostra o fluxo de controle (e, opcionalmente, dados) através dos passos de uma computação. Atividades são mostradas em diagramas de atividade. 5 6 UML: modelagem dinâmica > Atividade atividades Diagrama de atividade Transição Indica fluxo de controle de atividade em atividade. Diagramas de interação mostram fluxo de controle de objeto a objeto diagramas de atividade enfatizam o fluxo de controle de atividade para atividade. Pode ser considerado um caso especial de diagramas de estado onde os estados são estados de atividade e as transições são disparadas pelo término de uma atividade. Quando uma atividade termina, o fluxo de controle passa imediatamente para a atividade seguinte. A execução começa no estado de partida e termina quando o controle atinge o estado final. Avalia estoque Faz pedido 7 8 2

atividades atividades Desvio Indica caminhos alternativos de controle baseados em condições de guarda. Uma condição de guarda é denotada por: [expressão booleana]. Exemplo: Avalia estoque Separação/junção de fluxo de controle Indica execução concorrente de atividades. Barras de sincronização são utilizadas para indicar a separação e a junção de fluxos de controle. Um fluxo de controle pode se subdividir em dois ou [ Neces sita reposição? ] Faz pedido mais fluxos. 9 10 atividades > Separação/junção de fluxo de controle atividades Recebe pedidos Raias Com uni ca recebimento Localiza produtos Analisa pedidos Providencia produtos faltantes Raias podem ser usadas para indicar entidades responsáveis pela execução de atividades. Raias correspondem a entidades do mundo real, em geral estruturas organizacionais. Providencia transação 11 12 3

atividades > Raias atividades Fluxo de objetos Pesquisa Desenvolv imento de produtos Marketing Vendas Manufatura É um tipo de fluxo de controle que representa o relacionamento entre <<Process>> Concepção o objeto e a atividade ou transição que o criou. Usa-se o relacionamento de dependência para indicar o fluxo de controle. <<Process>> Desenvolvimento do produto Pode-se indicar o estado do objeto entre [ ]s abaixo de seu nome. <<Process>> Lançamento do produto <<Physical>> : Chapa de Aço [Nova] Furação <<Physical>> Placa : Chapa de Aço [Furada] 13 14 atividades atividades > Diretrizes Diretrizes Um diagrama de atividades bem estruturado: foca na comunicação de aspectos dinâmicos do sistema; contêm somente os elementos essenciais para o entendimento desses aspectos; provê detalhes consistentes com o nível de abstração (usa somente os adornos necessários); não é minimalista a ponto de omitir detalhes importantes. Quando usar um diagrama de atividades: dê-lhe um nome que comunique seu propósito; comece modelando o fluxo primário. Enderece concorrência, desvios e fluxo de objetos como consideração secundária, talvez até em diagramas separados; busque minimizar cruzamento de linhas; use notas e cores para chamar atenção para características importantes do diagrama. 15 16 4

UML: modelagem dinâmica UML: modelagem dinâmica > Eventos Eventos Em um sistema estático nada acontece. Em um sistema dinâmico as coisas acontecem e influenciam o comportamento de outras coisas. Coisas acontecem disparadas por eventos internos ou externos. ou seja, eventos são usados para modelar essas coisas que acontecem. Um evento é a especificação de uma ocorrência significante que tem uma localização no tempo e no espaço. Eventos podem ser internos ou externos. Eventos externos são aqueles que passam entre atores e o sistema. Por exemplo, quando o usuário aciona um comando ou quando um sensor sinaliza um situação importante (colisão de um carro). Eventos internos são aqueles passados entre objetos que vivem dentro de um sistema. por exemplo, uma exceção de overflow. 17 18 UML: modelagem dinâmica > Eventos Disparadores Disparador (trigger) é a especificação de um evento cuja ocorrência causa a execução de um comportamento, como por exemplo, tornar uma transição habilidade a disparar (fire). A palavra pode ser usada como um nome (como o evento) ou um verbo (para a ocorrência do evento). Há quatro tipos de eventos: sinal; chamada; tempo; mudança. UML: modelagem dinâmica > Eventos 19 20 5

UML: modelagem dinâmica > Eventos UML: modelagem dinâmica > Eventos > Sinal Sinal Um sinal é um tipo de evento que representa a especificação de um estímulo assíncrono comunicado entre objetos. É um meio explicito através do qual objetos podem comunicar entre si assincronamente. Uma ação assíncrona é uma requisição na qual o objeto remetente não pára para esperar pelos resultados (ao contrário da ação síncrona) Um sinal é um classificador explicitamente nomeado como Sinal, usado para comunicação explícita entre objetos. Um sinal tem uma lista de parâmetros, expressos como atributos. Um sinal é explicitamente enviado por um objeto a outro objeto ou a um conjunto de objetos. O envio de uma sinal a um conjunto de objetos pode ser considerado como broadcasting (radio ou tele-difusão). 21 22 UML: modelagem dinâmica > Eventos > Sinal UML: modelagem dinâmica > Eventos > Sinal O remetente especifica os argumentos de um sinal quando este é enviado. Enviar um sinal significa instanciar um objeto sinal e transmití-lo ao conjunto de objetos alvo. O recebimento de um sinal é um evento que visa disparar transições na máquina de estados receptora. Um sinal enviado a um conjunto de objetos pode disparar uma ou Um sinal pode ser generalizado. Um sinal filho herda os parâmetros do sinal pai e pode criar parâmetros adicionais. Um sinal filho satisfaz um disparador que requeira um de seus ancestrais (polimorfismo de eventos). nenhuma transição em cada objeto receptor independentemente. 23 24 6

UML: modelagem dinâmica > Eventos > Sinal UML: modelagem dinâmica > Eventos > Sinal Hierarquia de eventos Um sinal pode ser representado num diagrama de classes como uma classe estereotipada e pode-se indicar a classe ou operação que o gera. 25 26 UML: modelagem dinâmica > Eventos > Sinal UML: modelagem dinâmica > Eventos > Sinal Exemplo: Para usar um sinal como um disparador de uma transição, usa-se a sintax: nome-do-sinal (lista de parâmetros), cd diagrama-classe Onde a lista de parâmetros tem a sintax: nome-do-parâmetro: expressão de tipo «signal» Colisão - Força: float «send» Agente de mov imento - posição: int - velocidade: int + move Para() : void Exemplo: diagrama de estado mostrando um evento disparando uma transição e executando uma ação sm diagrama-estado Ativ o Disponív el telefone no gancho /cai Conexão 27 28 7

UML: modelagem dinâmica > Eventos UML: modelagem dinâmica > Eventos Chamada Uma chamada representa o despacho de uma operação de um objeto. Em geral, se um objeto invoca uma operação de um outro objeto que tem uma máquina de estado, o controle passa do remetente para o receptor, a operação é executada, uma transição (se houver) é disparada pela chamada, o receptor muda de estado e o controle volta para o remetente. Evento tempo e mudança Um evento de tempo é um evento que representa a passagem de tempo, ou seja, é utilizado para modelar o tempo disparando uma transição. É representado por uma expressão de tempo. Um evento de mudança representa a satisfação de uma condição. É representado por when seguido de uma expressão booleana entre parênteses. 29 30 UML: modelagem dinâmica > Eventos > Evento tempo e mudança UML: modelagem dinâmica Exemplo: diagrama de estados mostrando transição disparada por evento de tempo e de mudança. Máquina de estados A UML define dois tipos de máquinas de estados: Máquina de estados comportamental. sm diagrama-estado Evento de mudança When (11:30PM) /auto Teste Disponív el evento de tempo after (2 seconds) /cai Conexão Ativ o Capturam o ciclo de vida de objetos, sistemas e subsistemas. Máquina de estados de protocolo. São usadas para expressar transições válidas que podem ocorrer em um classificador abstrato como uma interface ou porto. Aqui consideramos apenas as máquinas de estado comportamental. 31 32 8

UML: modelagem dinâmica > Máquinas de estados UML: modelagem dinâmica > Máquinas de estados > Estados e transições Estados e transição Um objeto passa por uma série de estados em seu tempo de vida. Um estado pode ser considerado uma condição durante a vida de um objeto durante a qual ele satisfaz alguma condição, executa uma do activity ou espera por algum evento. Todos os objetos têm um estado. o estado é o resultado de atividades prévias executadas pelo objeto. tipicamente é determinado pelos valores de seus atributos e links a outros objetos. Um objeto muda de um estado para outro quando alguma coisa, um evento, acontece. Exemplos de evento: uma conta é paga, uma ação aumenta de valor, um raio cai em um tranformador, etc. 33 34 UML: modelagem dinâmica > Máquinas de estados > Estados e transições UML: modelagem dinâmica > Máquinas de estados > Estados e transições Um estado é uma condição ou situação durante a vida de um objeto durante a qual ele satisfaz algumas condições, executa algumas atividades ou espera por eventos. Estados iniciais e finais. Como mostrado no exemplo, são dois estados especiais que indicam, respectivamente: o ponto de partida de uma máquina de estado ou subestado. que a execução da máquina de estado ou estado envolvente terminou. sm Estados iniciais e finais Estado A Estado B Initial Avalia Final 35 36 9

UML: modelagem dinâmica > Máquinas de estados > Estados e transições UML: modelagem dinâmica > Máquinas de estados > Estados e transições > Transições Transições Uma transição é um relacionamento entre dois estados indicando que o objeto no primeiro estado vai executar certas ações e entrar no segundo estado quando um evento especificado ocorrer e uma condição de guarda for satisfeita. Ocorrendo a mudança de estados diz-se que a transição disparou. Um evento disparador pode ser um dos quatro tipos de eventos mostrados anteriormente. No caso de sinais ou chamadas, podem conter parâmetros. Sintaxe de uma transição de estados: Assinatura de evento [ condição de guarda ] / expressão de ação ^ cláusula de envio Onde a assinatura de evento indica o nome do evento e eventuais parâmetros e a cláusula de envio indica o destinatário de possíveis eventos gerados com ação. 37 38 UML: modelagem dinâmica > Máquinas de estados > Estados e transições > Transições UML: modelagem dinâmica > Máquinas de estados > Estados e transições > Transições A condição de guarda é denotada por uma expressão booleana entre [...]. Ela é avaliada somente depois de ocorrer o evento disparador. Ela é avaliada somente uma vez depois do evento ocorrer, mas pode ser avaliada novamente se o evento voltar a ser disparado. Uma ação é uma computação executável atômica (indivisível). Podem ser chamadas de operações (do objeto que possui a máquina ou de outro objeto), a criação ou destruição de outros objetos ou o envio de um sinal. No caso de envio de sinal, a palavra send deve preceder o nome do sinal. 39 40 10

UML: modelagem dinâmica > Máquinas de estados UML: modelagem dinâmica > Máquinas de estados Uma máquina de estados mostra como um objeto reage a eventos e como ele muda seu estado interno. Exemplo: controle de um elevador. sm Statecharts Initial Primeiro andar Chegou Descendo Sobe Chegou Desce Subindo Chegou Aguardando Sobe Uma máquina de estados é a especificação da seqüencia de estados que um objeto atravessa em resposta a eventos durante sua vida, junto com suas ações como respostas. Uma máquina de estados é associada a classes, colaborações ou métodos fontes e especifica o comportamento das instâncias do elemento fonte. Retornando ao primeiro andar Tempo esgotado 41 42 UML: modelagem dinâmica > Máquinas de estados UML: modelagem dinâmica > Máquinas de estados Diagramas de estados mostram máquina de estados. Objetos têm um tempo de vida nascem quando são criados e deixam de existir quando são destruídos. Durante seu tempo de vida, objetos que somente recebem ou enviam mensagem de maneira síncrona e cujo comportamento não depende de seu passado, não necessitam de uma máquina de estados para descrever seu comportamento. Por outro lado, se o objeto precisa responder a sinais (assíncronos), por exemplo, um telefone celular responde a chamadas de outros telefones e a eventos de seu teclado. ou se o comportamento presente do objeto depende de seu passado, por exemplo, o comportamento de um míssil ar-ar depende se o avião está em terra ( o míssil não pode ser disparado) ou não ou se o míssil está calculando seu alvo (só depois ele poderia ser disparado). seu comportamento deve ser especificado por uma máquina de estados. 43 44 11

UML: modelagem dinâmica > Máquinas de estados UML: modelagem dinâmica > Máquinas de estados Pedido recebido do cliente Pedido criado Pedido cancelado / colocar como cancelado Pedido cancelado Exemplo Colocado no mercado Pedido casado/ marcar como concluído Pedido colocado no mercado Pedido sucedido Fim de dia útil Colocado de volta no mercado para próximo dia Aceito como fracasso / marcar como cancelado Pedido fracassado / Criar propriedade de título Estado e transições avançados Um estado tem várias partes. Nome: distingue um estado de outros; Ações de entrada e de saída: ações executadas na entrada ou na saída de estados. Transições internas: transições que são trabalhadas sem mudança de estados. Subestados: estrutura aninhada de um estado envolvendo submáquinas de estado. Atividades: uma atividade pode ser uma nova máquina de estados ou uma seqüencia de ações. Estados adiados: uma lista de eventos que não são trabalhados naquele estado são adiados e colocados em fila para serem trabalhadas em outro estado do objeto. 45 46 UML: modelagem dinâmica > Máquinas de estados > Estados e transições avançados UML: modelagem dinâmica > Máquinas de estados > Estados e transições avançados Ações de entrada e de saída: são usadas para se disparar as mesmas ações independente de onde se veio ou para onde se vai. Notação (dentro do estado): entry / ação ou exit / ação Transições internas: são usadas para se responder a eventos sem sair do estado. Diferente de uma auto transição, a transição interna não causa a execução das ações de entrada ou de saída do estado. Notação: evento / ação Subestados: estrutura aninhada de um estado envolvendo sub-máquinas de estado. Notação: máquina de estados aninhada. Um estado que contém sub-estados é chamado de estado composto. 47 48 12

UML: modelagem dinâmica > Máquinas de estados > Estados e transições avançados Diagrama de Interação Atividades: usado para indicar uma atividade a ser realizada quando o objeto está naquele estado. Notação: do / máquina de estados ou do / ação 1; ação 2; ação 3 Estados adiados: usado quando um estado não prevê transição para um evento e deseja-se manter este evento (adiado) até que se atinja um estado onde aquele evento não seja adiado. Notação: evento / defer Mostram a interação entre objetos. 49 50 13