aula07 diagrama de sequencia

Upload: andrws-vieira

Post on 17-Oct-2015

24 views

Category:

Documents


2 download

TRANSCRIPT

  • 5/27/2018 Aula07 Diagrama de Sequencia

    1/28

    Projeto de Sistemas de Software

    Diagramas de Seqncia

  • 5/27/2018 Aula07 Diagrama de Sequencia

    2/28

    Interaes2

    Comportamento que

    Envolve conjunto de mensagens trocadas entreobjetos dentro de um determinado contexto

    Objetiva atingir resultado especfico

    Acontecem em funo da troca de mensagensentre objetos

    Usadas para a modelagem dos aspectosdinmicos de um sistema

  • 5/27/2018 Aula07 Diagrama de Sequencia

    3/28

    Comunicao entre Objetos3

    Mensagem

    Recepo de mensagem por um objeto

    Considerado instncia de evento

    Decorrncia da passagem de uma mensagem

    Repercute ao representada por um comando executvel

    Comando Executvel: abstrao de procedimento

    computacional

    Ident. OperaoIdent. Objeto ParmetrosMensagem =

    mensagem

    o:Ob1 :Ob2

  • 5/27/2018 Aula07 Diagrama de Sequencia

    4/28

    Diagramas de Interao4

    Deseja-se representar o comportamentode vrios objetos

    Dentro de um nico caso de uso

    A partir das mensagensque so passadas entre eles

    Objetivo

    Definir um contextode caso de uso

    Estabelecer os objetosque interagem e seus relacionamentos

    Termo genrico que se aplica a quatro tipos de diagramas que enfatizaminteraes entre objetos

    Diagrama de Seqncia

    Diagrama de Colaborao/Comunicao

    Vista Geral de Interao

    Temporal ou Timing

  • 5/27/2018 Aula07 Diagrama de Sequencia

    5/28

    Duas formas de representao5

    Informaes bastante similares mas demaneira diferente

    Diagrama de Seqncia Interao enfatizando o tempo de seqncia

    Mostra objetos participando em interaes de acordocom suas linhas de vida e as mensagens que trocam

    Diagrama de Comunio Interao enfatizando o relacionamentoentre os

    objetos

  • 5/27/2018 Aula07 Diagrama de Sequencia

    6/28

    Diagrama de seqncia6

    Tempo

    (top-down) ObjetoA

    ObjetoB

    [se novo]

    mensagem

    mensagem (auto delegao)

    valor de retorno

    (caixa de)ativao

    condio de guarda

    mensagem sncrona

    objeto

    smbolo de destruio

    linha de vida

  • 5/27/2018 Aula07 Diagrama de Sequencia

    7/28

    Termos e conceitos7

    Objetos

    Linhas de vida

    Mensagens

    Focos de controle

  • 5/27/2018 Aula07 Diagrama de Sequencia

    8/28

    Objetos8

    Apresentados na dimenso horizontaldo diagrama

    Ordemdos objetos no considerada

    Disp-los de forma a tornar o diagrama mais legvel

    Objetos tem nomes

    obj:Classe

    Ex.: joo:Dentista

    :Floricultor (um objeto floricultor no identificado)

    obj1: (um objeto obj1 sem classe definida)

  • 5/27/2018 Aula07 Diagrama de Sequencia

    9/28

    Objetos9

    joseFloricultor

    centralCentralFloricultur

    joao entista

    floricultorPetropolisFloricultor

    1.1: atendeCidade("Petropoli s"):boolean

    1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean

    1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean

    1.2:[se nao na cid.. .] getFloricultorNaCidade("Petropolis"):Floricultor

  • 5/27/2018 Aula07 Diagrama de Sequencia

    10/28

    Linhas de Vida10

    Dimenso verticaldo diagrama

    Apresentam o tempo de vidados objetos

    Pode apresentar a ativaoou a desativaodosobjetos Indicam que os objetos esto executando algo

    Foco de controle

    Caixas de ativao podem ser empilhadas Indica chamada de mtodo do prprio objeto

    Objeto jose no slide anterior

    Podem representar a criaoe a destruiode

    objetos

  • 5/27/2018 Aula07 Diagrama de Sequencia

    11/28

    pedidovendedor

    estoque

    2.2: reservarItem

    3.1: confirmarPedido

    2.1: verificarDisponibilidade

    4:

    3: confirmarPedido

    2:*[*] //adicionarItem

    1:

    Linhas de Vida11

    Linhas de vidanew()

    (Caixas de) Ativao

    kill()

    Criao

    Destruio

  • 5/27/2018 Aula07 Diagrama de Sequencia

    12/28

    Mensagens12

    Objetos interagem atravs da troca de mensagens Setas slidas que vo do objeto solicitante para o

    solicitado Para o prprio objeto: auto-delegao

    Rotulados com os nomes dos estmulos mais osargumentos (ou valores dos argumentos) do estmulo

    Sintaxe

    onde

    return o nome do valor de retorno message o nome da mensagem

    parameter o nome de um parmetro da mensagem

    parameterType o nome do tipo desse parmetro

    returnType o tipo do valor de retorno

    return := message(parameter:parameterType):returnType

  • 5/27/2018 Aula07 Diagrama de Sequencia

    13/28

    Mensagens - Tipos13

    Tipos de ao que uma mensagem poderepresentar call Invoca uma operao sobre um objeto

    Objeto pode mandar uma chamada para si prprio Resultando na execuo local de uma operao

    return Representa o retorno de um valor para o objeto que

    chamou a operao

    Opcional

    create Criao de um objeto

    destroy Eliminao de um objeto

    new()

    kill()

  • 5/27/2018 Aula07 Diagrama de Sequencia

    14/28

    Mensagens - Representaes14

    Smbolo Significado

    Mensagem sncrona

    Mensagem assncrona

    Mensagem de retorno (opcional)

  • 5/27/2018 Aula07 Diagrama de Sequencia

    15/28

    Mensagens15

    joseFloricultor

    centralCentralFloricultur

    joao entista

    floricultorPetropolFloricultor

    1.1: atendeCidade("Petropolis"):boolean

    1.3: aceitaEncomenda("Rosas","Rua X,9"):boolean

    1: enviarFlores("Rosas","Maria","Petropolis","Rua x, 9"):boolean

    1.2:[se nao na cid...] getFloricultorNaCidade("Petropolis"):Floricultor

    mensagens

    Auto-delegao

  • 5/27/2018 Aula07 Diagrama de Sequencia

    16/28

    MensagensCondies de

    Guarda16

    Mensagens podem apresentar condies de guarda

    condies em que a mensagem enviada

    [condio de guarda]

    :Aluno :Sistema :Impressora

    login()

    sistemaOk

    matricula()

    turmaCheia

    [sem vaga]

    matriculado

    imprimirRelatrio()

    [com vaga]

    Matrcula

  • 5/27/2018 Aula07 Diagrama de Sequencia

    17/28

    Mensagens - Iterao17

    Uma mensagem pode ser enviada repetidas

    vezes

    * mensagem(...)

  • 5/27/2018 Aula07 Diagrama de Sequencia

    18/28

    18

    pedidovendedor

    estoque

    2.2: reservarItem

    3.1: confirmarPedido

    2.1: verificarDisponibilidade

    4:

    3: confirmarPedido

    2:*[*] //adicionarItem

    1:

    * adicionarItem

    pedidovendedor

  • 5/27/2018 Aula07 Diagrama de Sequencia

    19/28

    Foco de Controle19

    Perodo de tempo que o objeto executa uma

    ao

    Relao de controle entre ativao e o

    responsvel pela sua invocao

  • 5/27/2018 Aula07 Diagrama de Sequencia

    20/28

    Diagrama de Seqncia

    Construo20

    Escolher um caso de uso

    Identificar os objetosque fazem parte dainterao

    Identificar o objeto que comeaa interao

    Identificar as mensagenstrocadas entre osobjetos

    Identificar a sequnciadestas mensagens

  • 5/27/2018 Aula07 Diagrama de Sequencia

    21/28

    Anlise OO do RUP21

    Fronteira (boundary)

    Classes de interface com o mundo externo

    (ex: GUI, sistemas externos)

    Controle (control) Coordenam o comportamento do caso de uso definindo

    uma interface entre classes fronteira e entidade

    Entidade (entity)

    Classes que armazenam informaes manipuladas pelosistema

    Objetivo

    Modelar o comportamento de cada caso de uso com o objetivo

    de detalhar os servios de negcios oferecidos pelo sistema

    Uso de apenas 3 tipos de classes

  • 5/27/2018 Aula07 Diagrama de Sequencia

    22/28

    Blog - Casos de uso22

    blogSystem

    Criar Comentari

    Ler Conteud

    Remover Conteud Remover Not

    Remover Comentari

    Criar Blog

    Ler Comentari

    Ler Nota

    Criar Nota

    Usuario

    Dono do blog

  • 5/27/2018 Aula07 Diagrama de Sequencia

    23/28

    Blog - Diagrama de Seqncia:

    Criar blog23

    : UsuarioBlog: UsuarioBlog: GUIBlog: GUIBlog : ControladorBlog: ControladorBlog : Blog: Blog

    1: criarBlog(titulo, usuario)

    2: criarBlog(titulo, usuario)

    3: new Blog(titulo, usuario, dataCriacao)

  • 5/27/2018 Aula07 Diagrama de Sequencia

    24/28

    Blog - Diagrama de Seqncia:

    Criar Nota24

    : UsuarioBlog: UsuarioBlog : GUIBlog: GUIBlog : ControladorBlog: ControladorBlog : Blog: Blog : Nota: Nota

    1: criarNota(usuario, idBlog, comentario)

    2: criarNota(usuario, idBlog, comentario)

    3: consultarBlog(idBlog)

    4: getDono()

    5: [se dono == usuario] new Nota(comentario, usuario)

  • 5/27/2018 Aula07 Diagrama de Sequencia

    25/28

  • 5/27/2018 Aula07 Diagrama de Sequencia

    26/28

    26

  • 5/27/2018 Aula07 Diagrama de Sequencia

    27/28

    2004 by Pearson Education

  • 5/27/2018 Aula07 Diagrama de Sequencia

    28/28