Diagrama de Seqüência



Documentos relacionados
Computação II Orientação a Objetos

Casos de uso Objetivo:

Tarciane Andrade.

Gestão de projectos na Web

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

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

4 Desenvolvimento da ferramenta

UML: Diagrama de Seqüência

MODELAGEM DE SISTEMAS

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

Padrões de Interação com o Usuário

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

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

BPMN Business Process Modeling Notation

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Micro Mídia Informática Fevereiro/2009

Unidade 8: Padrão MVC e DAO Prof. Daniel Caetano

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Java Beans e Servlets

Modelagem com UML. Fabio Perez Marzullo. IEEE Body of Knowledge on Services Computing Committee on Services Computing, IEEE Computer Society

Linguagem de Programação I. Orientação a Objetos em Java

Aula 03 - Projeto Java Web

JSF e PrimeFaces. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

UNIDADE III JAVA SERVER PAGES

Exemplo de Modelagem Orientada a Objetos

Argo Navis J931 - Padrões de Design J2EE. Introdução. Objetivos de aprender padrões J2EE. Conhecer padrões para uso na plataforma J2EE

Capítulo 8. Introdução UML

Tópicos em Engenharia de Computação

CURSO DESENVOLVEDOR JAVA Edição 2010

Mapa Mental de Engenharia de Software - Diagramas UML

Utilizando os Diagramas da UML (Linguagem Unificada de Modelagem) para desenvolver aplicação em JSF

Pontifícia Universidade Católica de São Paulo Departamento de Ciência da Computação

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

3 Um Framework Orientado a Aspectos para Monitoramento e Análise de Processos de Negócio

Roteiro do Programa e Entrada/Saída

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Exemplos práticos do uso de RMI em sistemas distribuídos

Java TM e o Modelo de Objetos

MANUAL DO USUÁRIO PORTAL DO PROFESSOR

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

Capítulo 22. Associações entre Classes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

2 a Lista de Exercícios

Especificação de Caso de Uso

paradigma WBC Public - compra direta Guia do Fornecedor paradigma WBC Public v6.0 g1.0

Programação Orientada a Objetos: Lista de exercícios #1. Bruno Góis Mateus

Diretrizes de Qualidade de Projetos

Agenda Semântica. Grupo: Francisco Rodrigues Júnior Guilherme Daher Ferreira Luana Vieira Morellato Renan Rigo

Manual de Comunidades RIPALC

ALESSANDRO RODRIGO FRANCO FERNANDO MARTINS RAFAEL ALMEIDA DE OLIVEIRA

Uma visão mais clara da UML Sumário

UML Itens Estruturais - Interface

2 Diagrama de Caso de Uso

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Unified Modeling Language. Diagramas de Implementação

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

JavaServer Faces. Parte 2

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

Desenvolvendo Aplicações Web com NetBeans

Aula 1 - Programação III Programação Visual (Visual Basic)

CURSO DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Pontifícia Universidade Católica

Franklin Ramalho Universidade Federal de Campina Grande - UFCG

Gerador de código JSP baseado em projeto de banco de dados MySQL

Estrutura em Camadas. Estrutura em Camadas. Alcides Pamplona Alcides Pamplona Linguagem de Programação CESBD 2010

Modelos de Arquiteturas. Prof. Andrêza Leite

2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}

Especificação de Caso de Uso

Casos de Uso - definições

Figura 1 Tela de escolha das atividades do curso

Documento de Análise e Projeto VideoSystem

Diagrama de contexto

UML Diagramas Estruturais Classes

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

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Orientação a Objetos com Java

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

3 Classes e instanciação de objectos (em Java)

Nome: Login: CA: Cidade: UF CARTÃO RESPOSTA QUESTÃO RESPOSTA QUESTÃO RESPOSTA

UML: Diagrama de Casos de Uso, Diagrama de Classes

Desenvolvimento de uma Etapa

Programação Orientada a Objetos (DPADF 0063)

ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE

CURSO DESENVOLVEDOR JAVA WEB E FLEX Setembro de 2010 à Janeiro de 2011

1. Modelagem de Sistemas 1.1. Os Desenvolvedores de Sistemas podem Escolher entre Quatro Caminhos

UML. Gilleanes T. A. Guedes. uma abordagem prática. Novatec

Desenvolvimento OO com Java Orientação a objetos básica

4 O Workflow e a Máquina de Regras

Guia de Fatores de Qualidade de OO e Java

Transcrição:

Diagrama de Seqüência

Características Básicas É um diagrama de interação e considera aspectos dinâmicos; Define como os objetos colaboram; Ênfase na ordenação temporal; Captura o comportamento de um cenário único; Mostra objetos e as mensagens trocadas entre eles, em um caso de uso; São usados durante a análise do problema (alto nível, com mensagens de negócio) e/ou durante o desenho da solução (foco na implementação, com mensagens descritas na forma de métodos que são implementados pelas classes. 2

Categorias de Objetos Objetos participantes (atores); Objetos de interface com os atores (telas, etc); Objetos de controle e eventos (controladores); Objetos de entidades e de domínio (negócio e integração). 3

Objetos Participantes (Atores) Pessoa ou outro sistema que interage com o sistema enviando e recebendo dados e controles; Demostram os contratos com o sistema; As interações são capturadas nos Casos de Uso; 4

Objetos de Interface Objetos que fazem a comunicação entre o sistema e os objetos participantes (atores), para exibição ou coleta de dados; Em um sistema típico, é a interface gráfica com o usuário GUI; Para aplicações Web baseadas em JEE, podem ser páginas JSP (usando ou não um framework) ; Para aplicações desktop em Java, podem ser instâncias de classes que usam Swing; São classes com estereotipo <<boundary>>. 5

Objetos de Controle Coordenam as solicitações dos usuários, vindas da camada de apresentação, e as operações de responsabilidade dos objetos de entidade e de domínio; São classes com estereótipo <<control>>. 6

Objetos de Entidades e de Domínio 7 Armazenam e manipulam dados dos objetos do negócio e simulam o seu comportamento; São as classes de negócio da aplicação, levantadas de acordo com o domínio e vocabulário do problema; Definem os valores que um atributo pode assumir e as operações válidas para estes valores; Classes da arquitetura de persistência em banco de dados; Integram as bibliotecas das linguagens ou frameworks de persistência; Podem ser tipos de atributos ou classes de comunicação com o mecanismo de persistência (em uma aplicação Java típica, podem ser os Data Access Object DAO). Classes com estereótipo <<entity>>

Visão das categorias Objetos participantes Objetos de Interface Objetos de Controle Objetos de Entidade Objetos de Domínio BD 8

Grau de reutilização Objetos de Interface Baixa reutilização Objetos de Eventos (Controle) Objetos de Entidade Objetos de Domínio Alta reutilização 9

Representação dos Objetos Usuario frmx X numero : String executax 10

Realização de Casos de Uso Os Casos de Uso capturam o que deve ser feito, as realizações agrupam o como será feito; São instâncias do caso de uso que podem ser representadas por diagramas que mostram a realização; Os diagramas usados para representar a realização de um caso de uso são os diagramas de interação. 11

Diagrama de Seqüência Descreve o que ocorre nos objetos participantes, em termos de chamadas, e como os objetos se comunicam através de mensagens; As mensagens representam as interações entre as instâncias de objetos e entre estas e os atores; Normalmente utilizado para modelar a realização dos casos de uso; Contém atores, objetos e mensagens; As notas oferecem uma extensão semântica. 12

Diagrama de Seqüência - Semântica atrícula do Objetos dio do as vagas urso; os gas nscrição do se o aluno que são S e q u ê n c i a m atérias do : Funcionario da S ecretaria : frm Inscricao : ctrlinscric aoa luno 1: inform a m atrícula e código 2: getcurs o(s tring) 3: curso : Curso 4: rec uperap orid(int) o aluno no im inuindo nc errado 13 6: Dados do curso Foco de Controle Mensagens

Diagrama de Seqüência e Realização de Casos de Uso Organização: Um diagrama para o fluxo básico; Um diagrama para cada fluxo alternativo. Para os analistas e usuários, provê uma visão de alto nível sobre como se dará a interação dentro de um cenário de caso de uso; Para os projetista, provê as entradas básicas que auxiliarão na determinação das classes (e nestas quais os métodos), responsabilidade e interfaces. 14

Diagrama de Seqüência - Tipos de Diagrama O diagrama de seqüência poderá ser feito em vários momentos do sistema, onde o formalismo dos objetos e mensagens poderá variar. Momentos: Análise; Projeto. 15

Diagrama de Seqüência - Análise Captura a visão do analista sobre como o caso de uso vai ser realizado; Direciona a solução do projetista. Contém: boundary, controler, entity; Mensagens informais. 16

Diagrama de Seqüência - Análise : F u n c io n a rio d a S e c re ta ria : frm In s c ric a o : c tr li ns c ric a o Alu n o : C u rs o : Alu n o 1 : in f orm a m a trícu la e c ó d ig o 2 : o b te m d a d o s d o c u rs o 3 : c ria e re c u pe ra la d o 4 : D a d o s d o c u rs o o c u rs o ; g a s 5 : ve rific a va g a s (c o d ig o ) 6 : o b te m a s va g a s d is p o n ive is ; 7 : c o n firm a in s c riç ã o 17 8 : In s c re ve a lu n o (M a tric u la, C o d ig o ) 9 : C ria e re c u p e ra

Diagrama de Seqüência - Projeto É a visão final da realização do caso de uso; Incorpora elementos da linguagem e da arquitetura; É o roteiro para a escrita do programa. Contém: Atores, estereótipos de camadas (interface, servlet), objetos de domínio (além dos demais); Nomes e mensagens formais (métodos existentes nas classes). 18

Diagrama de Seqüência - Projeto a a m atrícula do a o códio do rifica as vagas ); os tra: o do curso; s com os de vagas a a inscriçã o do rifica se o aluno térias que são ra as m atérias do screve o aluno no do, dim inuindo nível; o é encerrado : Fu ncion ario d a Secretaria 1: inform a m atrícula e código 5: Dados do curso 6: c onfirma ins crição : frm Inscricao : ctrlinscricaoaluno 2: getc urso (Strin g) 7: inscrevealuno(string, String) 3: Curso( ) 4: recuperap orid(int) 8: Curso( ) 9: rec uperap orid(int) curso : Curso aluno : Aluno 10: Aluno( ) 11: rec uperap orid(int) com para os pre-requisitos com o histórico 19 12: inscreveraluno(curso.aluno)

Tipos de mensagem Chamada: Um objeto invoca uma operação em outro objeto. Auto-chamada: Um objeto invoca uma operação nele mesmo. Envio: Um objeto envia um sinal a outro. Retorno: Retorna um valor para o objeto solicitante. Criação: Cria um objeto. Destruição: Destrói um objeto. 20

Tipos de mensagem atrícula do dio do as vagas urso; os gas Envio : Funcionario da S ecretaria : frm Inscricao : ctrlinscric aoa luno 1: inform a m atrícula e código 2: getcurs o(s tring) 3: Criação curso : Curso nscrição do Chamada se o aluno que são m atérias do 4: rec uperap orid(int) o aluno no im inuindo nc errado Retorno 6: Dados do curso Destruição 21

Representando os objetos Nos diagramas de seqüência, geralmente os objetos representados são instâncias reais da classe; Os nomes serão os mesmos a serem escritos nos programas. cu rso : C urs o 22

Mensagens de Chamada Mensagens normais que invocam métodos em outros objetos; Os parâmetros devem ser representados pelos nomes e os tipos reais. r inform a a m atrícula do r inform a o códio do em a verifica as vagas is (A -1); em a m ostra: escriç ão do c urso; m atérias com os res; úm ero de vagas is; r c onfirm a a ins crição do : Funcionario da S ecretaria : frm Inscricao : ctrlinscricaoa luno 1: inform a m atríc ula e código 2: getcurs o(s tring) 3: curso : Curso 4: rec uperap orid(int) 23 em a verifica se o aluno as m atérias que são

Mensagens de Retorno 24 Mensagens de retorno devem ser representadas aluno; apenas quando curso; não forem óbvias para não poluir o dis poníveis (A -1); diagrama. 4. O s istem a m os tra: 1. O ator inform a a m atrícula do 2. O ator inform a o códio do 3. O s istem a verifica as vagas 4.1 a descrição do curso; 4.2.as m atérias com os professores; 4.3.O núm ero de vagas dis poníveis; 5. O ator confirm a a inscrição do aluno; 6. O s istem a verifica se o aluno já cursou as m atérias que são pré-requis ito para as m atérias do curso (A -2); 7. O s istem a inscreve o aluno no curso selecionado, dim inuindo um a vaga disponível; 8. O c aso de uso é encerrado : Funcionario da S ecretaria : frm Inscricao : ctrlin 1: inform a m atrícula e código 6: Dados do curso

Mensagem self Mensagens de que o objeto aluno envia : Aluno para ele próprio. 11: recuperaporid(int) retorna True se cum prir os pré-requisitos 12: i nsc rev eral uno (cu rso.al uno ) 13: getpr er equisitos( ) 14: avaliaprer equisitos(m ateria[]) 16: geth istorico( ) 17: inserem at eria(m ateria) Fazer para cada m atéria do curso 25

Mensagens de Criação Representam o momento em que o objeto será criado; Se o construtor default for utilizado, não é preciso representá-lo. atrícula do dio do as vagas : Funcionario da S ecretaria : frm Inscricao : ctrlinscric aoa luno urso; 1: inform a m atrícula e código os 2: getcurs o(s tring) 3: curso : Curso gas nscrição do 4: rec uperap orid(int) se o aluno 26 que são

Mensagens de Destruição atrícula do dio do Indica a mensagem de destruição do objeto. Não é necessária a representação para a maioria das linguagens de programação. as vagas : Funcionario da S ecretaria : frm Inscricao : ctrlinscric aoa luno urso; os gas 1: inform a m atrícula e código 2: getcurs o(s tring) 3: curso : Curso nscrição do 4: rec uperap orid(int) se o aluno que são m atérias do o aluno no im inuindo 6: Dados do curso 27 nc errado

28 Exemplos

Exemplos 29 public class Pedido { } private ItemDoPedido[] itensdopedido; private Cliente cliente; public double calculaprecofinalitem() { int qtd = ItemDoPedido[0].retornaQuantidade(); Produto produto = ItemDoPedido[0].retornaProduto(); double precoproduto = produto.retornaprecounitario(); double precobaseitem = this.calculapreco(precoproduto, qtd); double taxadesconto = Cliente.recuperaTaxaDesconto(); double precofinalitem = this.calculaprecofinal(precobaseitem, taxadesconto); return precofinalitem; } public double calculapreco(double precoproduto, int qtd) { return precoproduto * qtd; } public double calculaprecofinal(double precobaseitem, double taxadesconto) { return precobaseitem * (1 - taxadesconto); }

30 Exemplos

Exemplos public class Pedido { } private ItemDoPedido[] itensdopedido; private Cliente cliente; public double calculaprecofinalitem() { } double precobaseitem = ItemDoPedido[0].obtemPreco(); double precofinalitem = Cliente.obtemValorComDesconto(precoBaseItem); return precofinalitem; 31