Modelagem Temporal com UML

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

2 Diagrama de Caso de Uso

Engenharia de Software III

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

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

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

Diagrama de Estados. Prof. Cesar Augusto Tacla

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 Dinâmica com UML

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

Engenharia de Software

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

Técnicas de Caixa Preta de Teste de Software

Uma visão mais clara da UML Sumário

Diagrama de transição de Estados (DTE)

UML: modelagem dinâmica

Princípios de modelagem de Domínio e Projeto(design) de Software Parte 2

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Modelagem de Casos de Uso (Parte 1)

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

Orientação a Objetos

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

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

Pós-Graduação em Gerenciamento de Projetos práticas do PMI

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

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

Análise e Projeto Orientados por Objetos

A Linguagem de Modelagem Unificada (UML)

UML. Diagrama de Seqüência

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

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

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

Resolução da lista de exercícios de casos de uso

Orientação a Objetos com Java

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

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Engenharia de Requisitos Estudo de Caso

Material de Apoio. SEB - Contas a Pagar. Versão Data Responsável Contato 1 05/12/2011 Paula Fidalgo paulaf@systemsadvisers.com

Módulo Vendas Balcão. Roteiro passo a passo. Sistema Gestor New

Algoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br

Modelagemde Software Orientadaa Objetos com UML

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

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

Uma visão mais clara da UML Sumário

UML - Unified Modeling Language

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

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

A lógica de programação ajuda a facilitar o desenvolvimento dos futuros programas que você desenvolverá.

ViajarFácil Sistema de Reserva de Viagens

UML. Máquina de Estados

Engenharia de Software I

CASO DE USO. Isac Aguiar isacaguiar.com.br

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

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

II Torneio de Programação em LabVIEW

Gestão de Ativos. Manual do Usuário. Treinamento Fase 1 (TRN 01)

Mensagens De Erro. Versão: 1.0

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

QUESTÃO 2: A respeito do diagrama de caso de uso apresentado, assinale a alternativa correta.

Modelos de Sistemas Leitura: Sommerville; Pressman

Manual de Integração. ERP x Aplicação Têxtil

Análise e Projeto Orientado a Objetos

Universidade Federal de Minas Gerais Instituto de Ciências Agrárias

Feature-Driven Development

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

Eduardo Bezerra. Editora Campus/Elsevier

Manual do sistema SMARsa Web

QUESTÃO 01 - DIAGRAMA DE SEQUENCIA (CONCEITOS)

4 O Workflow e a Máquina de Regras

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

1.6. Tratamento de Exceções

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

Concepção e Elaboração

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

Ajuda On-line - Sistema de Portaria. Versão 4.8.J

Tipos de Servidores. Servidores com estado

MODELAGEM DE SISTEMAS

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

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

Tópicos Especiais em Sistemas de Telecomunicações IV

Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. Modelagem de Dados com UML. ! Generalização/Especialização

Análise e Projeto Orientados a Objetos Aula IX Modelo Conceitual do Sistema (Modelo de Domínio) Prof.: Bruno E. G. Gomes IFRN

Faculdade Lourenço Filho - ENADE

Exercícios Diagrama de Casos de Uso. Disciplina: Engenharia de Requisitos

PORTAL DE COMPRAS SÃO JOSÉ DO RIO PRETO

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

GereComSaber. Desenvolvimento de Sistemas de Software. Universidade do Minho Conselho de Cursos de Engenharia Licenciatura em Engenharia Informática

Recursos. Um recurso é ou um dispositivo físico (dedicado) do hardware, ou Solicitar o recurso: esperar pelo recurso, até obtê-lo.

2013 GVDASA Sistemas Cheques 1

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

Módulo 4: Gerenciamento de Dados

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

Transcrição:

Modelagem Temporal com UML Modelagem Temporal com UML! Vários diagramas da UML podem ser usados para expressar os aspectos temporais " Diagrama de Atividades " Diagrama de Transição de Estados " Diagramas de Interação! Diagrama de Seqüência! Diagrama de Colaboração Modelagem Temporal com UML! Aspectos principais tratados pelos Diagramas: Funções e Eventos Eventos Dados Funções Modelagem Temporal com UML! Objetivos da Modelagem Temporal " Descrever detalhadamente as funções a serem desempenhadas em um sistema OO! Fluxo de mensagens entre objetos! Métodos necessários para cada classe! Métodos de classe! Métodos de objetos " O que o sistema deve realizar? " Quando cada função será realizada? Sistema

Modelagem Temporal com UML! Modelagem Funcional e Temporal " Definição de Métodos Serviços fornecidos pela classe para outros objetos Pedido Data recebimento é_prépago Número Preço? Modelagem Temporal com UML! Modelagem Funcional e Temporal " Tipos de métodos! Serviços algoritmicamente simples (90%) " Criar " Conectar " Acessar " Liberar! Serviços algoritmicamente complexos " Calcular # Calcula um resultado a partir dos valores de atributos do objeto " Monitorar # Monitora um sistema ou dispositivo externo # Lida com E/S externas ao sistema Modelagem Temporal com UML Diagrama de Transição de Estados! Histórico " Notação proposta por David Harel-1987 " Máquina com número finito de estados "A máquina pode receber eventos, e cada evento pode gerar uma transição de estado

! Estado "Situação na vida de um objeto " Estado é determinado pelo conjunto de valores armazenados em um objeto " Estados Especiais! Inicial: somente um em um! Final Conta criada disponível! Transições "Um estado é associado a outro (ou a si mesmo) pelas transições "Formato:! evento(lista-parâmetros) [guarda] / ação disponível Realizar depósito(quantia) / depositar(quantia)! Eventos "Uma transição é associada a um evento " Evento: algo que acontece em algum ponto no tempo e que pode modificar o estado de um objeto [Bezerra, 2002] Eventos em Software Mouse pressionado Impressora sem papel Eventos do Domínio do Problema Pedido realizado Fatura paga Cheque devolvido! Exemplo Urna Esperando Habilita voto Votando em prefeito Voto prefeito Votando em vereador Voto vereador Fecha urna Eleitor Apresentando documentos Habilita voto Votando em prefeito Voto prefeito Votando em vereador Voto vereador Aguardando comprovante Comprovante recebido

! Eventos: tipos " Evento de chamada: recebimento de uma mensagem de outro objeto (síncrono) " Evento de sinal: recebimento de um sinal (assíncrono) " Evento temporal: passagem de intervalo de tempo pré-definido (cláusula after)! Exemplo: after(30 segundos) " Evento de alteração/tempo: condição que se torna verdadeira (cláusula when)! Exemplos: " when(saldo > 0) " when (horário = 00:00 h)! Guardas " Condição lógica que precisa ser satisfeita para habilitar a transição " Diferença entre guardas e evento de mudança Se ocorre evento e quantia = saldo a transição é disparada Quando quantia = saldo a transição é disparada a a Evento [quantia=saldo] when(quantia=saldo) b b! Ações " Ao transitar de um estado para outro, um objeto pode realizar uma ou mais ações " Representação:! /ação! Exemplo: Ponto de Junção E0 evento2 [guarda2]/ação2 evento0 [guarda0]/ação0 E2 E3 E4 E1 evento1 [guarda1]/ação1 [else]/ação5 E5

! Exemplo: Conta Bancária! Exemplo: Despertador Realizar depósito(quantia) / depositar(quantia) Conta criada disponível Conta fechada Realizar saque (quantia) [quantia > saldo] / sacar(quantia) Realizar saque(quantia) / sacar(quantia) when (saldo > 0) Realizar saque (quantia) bloqueada Realizar depósito (quantia) / depositar(quantia) Desarmado Esperando Tocando after(30 dias)/aplicarjuros() [Bezerra, 2002]! Exemplo: Despertador Desarmar alarme desarmado Armar alarme(horario) / horariodefinido := horario, n := 0 when(n > 3) Desarmar alarme when(horariodefinido = agora()) esperando entry / n := n + 1 tocando alarme entry / tocaralarme(10) Despertador n horariodefinido Ação ocorre quando a ação entry de tocandoalarme é encerrada / horariodefinido := horariodefinido + 5 minutos! Entry: " Ação executada quando da entrada naquele estado;! Exit: " Ação executada quando da saída daquele estado;! Entry e Exit permitem a simplificação de s, visto que não é necessário repetir a mesma ação para todas as transições de entrada ou saída de um estado;! Quando Entry ou Exit não são indicados, a idéia é que a ação seja executada continuamente dentro do estado;

! Estados e Sub-estados "Um estado pode ser decomposto em subestados " Cada estado composto deve possuir os estados inicial e final! Estados e Sub-estados! Histórico " Mecanismo de ativação de subestados " Se a entrada em um estado for por história simples (H), o subestado mais recentemente visitado é escolhido, em detrimento do estado default. " Se for história do tipo H * então considera-se como candidato a ser ativado o subestado mais recentemente visitado independente do nível hierárquico em que se encontra funcionabilidade H parada enchimento lavagem... tampa fechada tampa levantada pausa Nodo (H) registra o histórico do último estado Estado Aninhado Page-Jones, M. Fundamentos do Desenho Orientado a Objeto com UML. Makron Books, 2001.

! Estado de Histórico BackingUp Exercício Considerando o diagrama de estados abaixo e a seqüência de eventos listada abaixo, marque a alternativa correta: est2 Command End-of-backup pause H Collecting Copying new esta ev0 estb ev1 ev2 ev5 H estc ev3 estd ev4 Eventos: new, ev1, ev0, ev2, ev3, ev5, ev0, ev2 CleaningUp a) Após a ocorrência de eventos listada o objeto encontra-se no estado esta b) Após a ocorrência de eventos listada o objeto encontra-se no estado estc c) Após a ocorrência de eventos listada o objeto encontra-se no estado estb d) Após a ocorrência de eventos listada o objeto encontra-se no estado estd e) Após a ocorrência de eventos listada o objeto encontra-se no estado inicial Exercício Construa um para a classe professor universitário. Considere a carreira de um professor universitário de uma instituição federal de ensino (como a UFPA). Existem quatro categorias possíveis: auxiliar, assistente, adjunto e titular, onde cada categoria corresponde a qualificação do professor. Auxiliares possuem graduação e/ou especialização, Assistentes possuem mestrado e Adjuntos possuem doutorado. Professores titulares possuem doutorado e devem trabalhar na mesma instituição a mais de 8 anos mas também tem de comprovar excelência acadêmica. Esta classificação é inicialmente válida durante o processo de contratação dos professores e /ou quando estes professores continuam se qualificando. Um professor também pode mudar sua classificação de acordo com o tempo de serviço na instituição: após 8 anos como professor auxiliar, ele se torna professor assistente e da mesma forma após 8 anos como professor assistente um professor se torna professor adjunto.! Estados concorrentes Testing Commanding maintain Testing devices Waiting Idle Maintenance Self Diagnosis Command

para PacMan! Engenharia de Produção com (1) Waiting put(c) [c/= < ] / return false put(c) [c== < ] GettingToken put(c) [c/= > ] / return false Processamento de XML put(c) [c== ; ] / return true put(c) [c== > ] GettingBody put(c) [c/= ; ] / body.append(c); return false! Engenharia de Produção com (2) class MessageParser { Public boolean put(char c) { switch(state) { case Waiting: if (c == < ) { state = GettingToken; token = new StringBuffer(); body = new StringBuffer(); } break; case GettingToken: if (c == > ) state = GettingBody else token.append(c); break; case GettingBody: if (c == ; ) { state = Waiting; return true; } else body.append(c); } return false;...

Modelagem Temporal com UML Processo e Heurísticas para Construção de diagramas de transições de estados Obtido em http://www.dvo.ru/bbc/pdpta/vol5/p522.pdf! Quantidade de Estados " Em sistemas bastante simples, a definição dos estados de todos os objetos não é tão trabalhosa. "No entanto, o crescimento dos estados de um sistema cresce exponencialmente com o número de objetos " Torna impraticável a construção de um único diagrama para todo o sistema! Um por classe " Para resolver o problema da explosão exponencial de estados, os diagramas de estados são desenhados por classe.! Desvantagem: dificuldade na visualização do estado do sistema como um todo.! Essa desvantagem é parcialmente compensada pelos diagramas de interação.

! Identificação de Transições "Nem todas as classes de um sistema precisam de um.! Somente classes que exibem um comportamento dinâmico relevante.! Objetos cujo histórico precisa ser rastreado pelo sistema são típicos para se construir um diagrama de estados.! Processo de construção de s (1) " Identifique os estados relevantes para a classe. " Identifique os eventos relevantes. Para cada evento, identifique qual a transição que ele ocasiona. " Para cada estado: identifique as transições possíveis quando um evento ocorre. " Para cada estado, identifique os eventos internos e ações correspondentes.! Processo de construção de s (2) " Para cada transição, verifique se há fatores que influenciam no seu disparo. (definição de condições de guarda e ações). " Para cada condição de guarda e para cada ação, identifique os atributos e ligações que estão envolvidos. " Defina o estado inicial e os eventuais estados finais. " Desenhe o.! Informações para o modelo de classes " A construção de um freqüentemente leva à descoberta de novos atributos para uma classe! principalmente atributos para servirem de abstrações para estados. " Além disso, este processo de construção permite identificar novas operações na classe! pois os objetos precisam reagir aos eventos que eles recebem.

! Uso do no processo de desenvolvimento " Os diagramas de estados podem ser construídos com base nos diagramas de interação e nos diagramas de classes. " Durante a construção do diagrama de estados para uma classe, novos atributos e novas operações podem surgir. Essas novas propriedades devem ser adicionadas ao modelo de classes.! Uso do no processo de desenvolvimento (continuação) " O comportamento de um objeto varia em função do estado no qual ele se encontra. " Pode ser necessária a atualização de uma ou mais operações de uma classe para refletir o comportamento do objetos em cada estado. " Por exemplo, o comportamento da operação sacar() da classe ContaBancária varia em função do estado no qual esta classe se encontra! saques não podem ser realizados em uma conta que esteja no estado bloqueada.! Quais são as classes candidatas a possuírem? Ativo, Inativo, Matriculado, Não matriculado, Concluinte, Concluído, Etc. Ativo, Inativo Atual, Passada, Aberta (p/ inclusão) Fechada Etc Ativo, Inativo, Aposentado! Observação importante " Muitas vezes as regras do negócio precisam ser flexibilizadas no sistema implementado " Tipicamente necessário em decorrência de erros no preenchimento de dados ou ainda em função de decisão administrativa de alto nível " Prever as situações e criar transições com estereótipo <<exception>>