1 Programa do Curso de ESW Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) Diagramas de Interação: Sequência, Comunicação Processo Unificado (RUP)
Métodos Orientados a Objetos UML Diagramas UML 2 Analisar através de Casos de Uso, ð Casos de Uso ï, Cenários: Comunicação e Sequência
Métodos Orientados a Objetos UML Diagramas UML 3 Os Objetos Precisam Colaborar w w w Objetos não têm u.lidade se eles não puderam colaborar para resolver um problema. Cada objeto é responsável por seu próprio comportamento e status. Nenhum objeto pode responder unicamente por todas as responsabilidades do sistema. Como os objetos interagem? Através de Mensagens. Uma mensagem apresenta como um objeto solicita a outro objeto, que este execute alguma a@vidade ð As mensagens são o mecanismo que permitem que os objetos se comuniquem. Uma mensagem normalmente é implementada por uma ação simples ð Quando a ação é executada o controle retorna a que enviou a mensagem com um valor de retorno (caso exista). Mensagem getcourseofferings(forsemester) :RegistrationController : Car buyer :CourseCatalogSystem
Métodos Orientados a Objetos UML Diagramas UML 4 Diagramas de Interação Um Cenário é uma instância de um Caso de Uso: ele é um caminho através dos fluxos de eventos de um Caso de Uso particular ð Um Caso de Uso é um classificador, uma unidade de reagrupamento de Cenários. w Cenários são u.lizados para descrever como os casos de uso são realizados em termos de interações entre conjuntos de objetos w Cenários são desenvolvidos para auxiliar a iden.ficação de objetos e classes e também das interações entre objetos necessárias a execução de uma parte da funcionalidade de um sistema capturada em um caso de uso. w Através dos cenários pode- se explicitar como as responsabilidades de um sistema, especificadas através dos casos de uso, são distribuídas entre os objetos e as classes do sistema. w O fluxo dos eventos de um sistema é capturado de maneira textual, enquanto cenários são capturados em Diagramas de Interação que são uma representação gráfica de cenários podendo ser de quatro.pos: Diagramas de Sequência Diagrama de Comunicação Diagramas de Temporização Diagramas de Visão Geral da Interação
Métodos Orientados a Objetos UML Diagramas UML 5 Diagramas de Interação I w Diagrama de Sequência Visão orientada a temporização da interação entre os objetos para implementar um dos comportamentos esperados do sistema. w Diagrama de Comunicação Visão estrutural da troca de mensagens entre os objetos ð Originário do diagrama de colaboração do UML 1. Sequência Comunicação
Métodos Orientados a Objetos UML Diagramas UML 6 Diagramas de Interação II w Diagrama de Temporização Visão com as restrições temporais entre as mensagens enviadas e recebidas em uma interação. Diagrama opcional que talvez tenha maior interesse em aplicações de Tempo Real, onde a temporização representa um fator crí.co. w Diagrama de Visão Geral da Interação Visão de alto nível dos conjuntos de interações combinadas em uma sequência lógica e incluindo lógica do fluxo de controle para navegação entre as interações. Integração de Diagramas de Sequência para os conjuntos de interações com Diagramas de A.vidades para a sequência lógica. Temporização Visão Geral da Interação
Métodos Orientados a Objetos UML Diagramas de Interação Diagrama de Sequência I 7 Diagrama de Interação que enfatiza a ordenação temporal das mensagens. Modelagem do Fluxo de Controle em relação a temporização. w w w w Conjunto dos objetos e atores (com suas linhas de vida) que colaboram na realização de um Caso de Uso. Descrevem as interações entre objetos de um ponto de vista temporal: Conjunto de mensagens trocadas entre os objetos; Sequenciamento cronológico com a notação da vida do objeto ; Passagem do tempo na ver@cal/troca de mensagens na horizontal com a representação de paralelismo de existência, de alterna@vas, etc. U.lização mais comum na documentação de Casos de Uso Realização para apresentar como os objetos interagem para implementar a totalidade ou uma parte da funcionalidade representada pelo caso de uso. Normalmente se tem um Diagrama de Sequência para o fluxo principal e diferentes diagramas para cada um dos sub- fluxos. Diagramas de Sequência são importanyssimos para os proje.stas, pois clarificam os papéis dos objetos em um fluxo e fornecem informações básicas para a determinação das responsabilidades das classes e de suas interfaces. e JP mp
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência 8 Diagrama de Sequência II w w w w Os objetos se comunicam através do envio de Mensagens que partem de um objeto cliente (emissor) em direção a um objeto provedor (receptor) ð A ordem do envio das mensagens é dada pela posição destas em um eixo ver.cal (abaixo do objeto). Mensagens síncronas, assíncronas, atraso na transmissão, restrições temporais... Os diagramas de sequência mostram os objetos e classes envolvidos em um cenário assim como o sequenciamento de mensagens trocadas entre os objetos para que estes implementem a funcionalidade representada pelo cenário. Pode- se ter um diagrama de sequência para cada sub- fluxo de um caso de uso. Classes de Fronteira são adicionadas a um diagrama de sequência para mostrar a interação com um usuário ou outro sistema.
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência 9 Diagrama de Sequência: Exemplo Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule : Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog 1: create schedule( ) 2: get course offerings( ) 5: display course offerings( ) 6: display blank schedule( ) 3: get course offerings(forsemester) 4: get course offerings( )
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência 10 Diagrama de Sequência: Exemplo Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule : Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog 1: create schedule( ) 2: get course offerings( ) 5: display course offerings( ) 6: display blank schedule( ) 3: get course offerings(forsemester) 4: get course offerings( ) RegisterForCoursesForm (classe de fronteira) conhece os dados que ele precisa apresentar mas não sabe como obtêlos. Esta é uma das responsabilidades de RegistrationControler.
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência 11 Diagrama de Sequência: Exemplo Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule : Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog 1: create schedule( ) 2: get course offerings( ) 5: display course offerings( ) 6: display blank schedule( ) 3: get course offerings(forsemester) 4: get course offerings( ) Somente RegisterForCoursesForm interage com o ator Student (o que era de se esperar de uma classe de fronteira...).
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência 12 Diagrama de Sequência: Exemplo Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule : Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog 1: create schedule( ) 2: get course offerings( ) 5: display course offerings( ) 6: display blank schedule( ) 3: get course offerings(forsemester) 4: get course offerings( ) O RegistrationControler compreende como os estudantes e o schedules estão relacionados. Ele devolve as informações necessárias a construção do schedule. Como?
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência 13 Diagrama de Sequência: Exemplo Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule : Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog 1: create schedule( ) 2: get course offerings( ) 5: display course offerings( ) 6: display blank schedule( ) 3: get course offerings(forsemester) 4: get course offerings( ) Somente CourseCatalogSystem interage com o ator externo Course Catalog.
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência Diagrama de Sequência: Objetos 14 :RegisterForCoursesForm :RegistrationController SWTSU Catalog : CourseCatalogSystem Objetos Anônimos Objetos com Nome Linhas da Vida w Objetos são apresentados como uma linha tracejada denominada Linha da vida do objeto ð Esta linha representa a existência do objeto durante um certo tempo. w Um retângulo representando o objeto é desenhado no topo da linha da vida, u@lizando a notação nome do objeto : nome da classe. w Pode- se representar objetos sem classe (normalmente no início da modelagem), classes sem objetos (todos os objetos da classe) ou um objeto específico da classe ð O três @pos de representações podem estar presentes no mesmo diagrama.
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência Diagrama de Sequência: Atores 15 SWTSU Catalog : :RegisterForCoursesForm :RegistrationController CourseCatalogSystem : Student : Course Catalog Instâncias dos Atores w Normalmente os atores são representados como o primeiro elemento a esquerda nos diagramas de sequência, como o elemento que está invocando a ação. w Se um diagrama @ver mais que um ator deve- se procurar colocá- los nas laterais do diagrama. w Interações entre atores não existem e não são representadas pois atores são por definição externos ao modelo.
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência Diagrama de Sequência: Mensagens 16 SWTSU Catalog : :RegisterForCoursesForm :RegistrationController CourseCatalogSystem : Student : Course Catalog 1: create schedule( ) Mensagens Reflexivas 2: get course offerings( ) 5: display course offerings( ) 6: display blank schedule( ) 3: get course offerings(for Semester) Mensagem 4: get course offerings( ) w A mensagem é o meio de comunicação entre dois objetos e transporta informação para que a ação possa ocorrer. w É representada por uma seta entre duas linhas de vida de objetos ou par@ndo e chegando na mesma linha de vida para o caso de Mensagens Reflexivas ð A mensagem é representada por um nome e pelos parâmetros que representam as informações transportadas. w Um mensagem não precisa obrigatoriamente ser o nome de uma operação específica do objeto que a recebe, embora com o progresso da modelagem isto venha a ocorrer.
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência Diagrama de Sequência: Ativação 17 SWTSU Catalog : :RegisterForCoursesForm :RegistrationController CourseCatalogSystem : Student : Course Catalog 1: create schedule( ) 2: get course offerings( ) 5: display course offerings( ) 6: display blank schedule( ) 3: get course offerings(for Semester) Ativação 4: get course offerings( ) w A a@vação mostra o período de tempo durante o qual o objeto está realizando uma ação, seja diretamente ou através de uma solicitação de serviço a outro objeto, sendo representada por um retângulo colocado sobre a linha da vida do objeto. w O início do retângulo fica alinhado com o início da ação e o final com seu término.
Métodos Orientados a Objetos - UML - Diagramas de Interação Sequência Diagrama de Sequência: Eventos 18 SWTSU Catalog : :RegisterForCoursesForm :RegistrationController CourseCatalogSystem : Student : Course Catalog 1: create schedule( ) 2: get course offerings( ) 5: display course offerings( ) 6: display blank schedule( ) 3: get course offerings(for Semester) Eventos 4: get course offerings( ) w Um evento caracteriza o envio ou o recebimento de uma mensagem por um objeto e não é apresentado explicitamente como um conceito do diagrama de sequência. w Ele pode ser visto como a interseção das mensagens com as linhas de vida dos objetos, já que uma mensagem conecta a ocorrência de dois eventos em duas linhas de vida.
Métodos Orientados a Objetos - UML - Diagramas de Interação Diagramas de Comunicação 19 Modelar o Fluxo de Controle, enfatizando a organização dos objetos que participam da interação. w Maneira alterna.va de se apresentar um cenário ð Diagramas organizados em torno de objetos, representando as interações de um objeto e as ligações (instâncias das associações das classes) deste objeto com outros objetos. w Diagramas de Comunicação apresentam: Objetos que par@cipam da interação (desenhados como retângulos). Ligações entre objetos representadas por linhas entre eles. Mensagens representadas como texto associado a um flecha que aponta do objeto cliente para o objeto fornecedor. w U.lizado pelos proje.stas para definir e clarificar os papéis dos objetos que implementam um fluxo de eventos par.cular de um caso de uso ð Cons.tuem a fonte de informação primária para determinar as responsabilidades das classes e suas interfaces. w Devido a suas caracterís.cas este diagrama apresenta maior interesse em a.vidades de análise, na definição das interações entre um pequeno número de classes. w Com um grande número de classes o diagrama torna- se de di]cil leitura e neste caso os diagramas de sequência apresentam melhores resultados. e JP mp
Métodos Orientados a Objetos - UML - Diagramas de Interação Comunicação 20 Diagrama de Comunicação: Exemplo 5: display course offerings( ) 6: display blank schedule( ) : Student 1: create schedule( ) : RegisterForCoursesForm 2: get course offerings( ) 3: get course offerings(forsemester) : Course Catalog 4: get course offerings( ) : RegistrationController : CourseCatalogSystem w Como no diagrama de sequência, tem- se neste diagrama instâncias de classes e atores, com suas ligações e mensagens descrevendo como os objetos estão relacionados e como interagem. w O diagrama indica a comunicação entre os objetos par@cipantes através da troca de mensagens. w Pode- se ter um diagrama de comunicação para cada sub- fluxo de um caso de uso.
Métodos Orientados a Objetos - UML - Diagramas de Interação Comunicação Diagrama de Comunicação: Objetos 21 w O objeto é representado como um retângulo com a notação nome do objeto : nome da classe. w Do mesmo modo que no diagrama de sequência, pode- se representar objetos sem classe (normalmente no início da modelagem), classes sem objetos (todos os objetos da classe) ou um objeto específico da classe ð O três @pos de representações podem estar presentes no mesmo diagrama. : RegisterForCoursesForm : RegistrationController Objetos SWTSU Catalog : CourseCatalogSystem
Métodos Orientados a Objetos - UML - Diagramas de Interação Comunicação 22 Diagrama de Comunicação: Atores w Normalmente os atores estão presentes neste diagrama como os invocadores das interações. w Deve- se deixar os atores nas bordas dos diagramas. w Como no diagrama de sequência a interação entre os atores não existe e não deve ser apresentada. : Student : RegisterForCoursesForm Atores : RegistrationController : Course Catalog SWTSU Catalog : CourseCatalogSystem
Métodos Orientados a Objetos - UML - Diagramas de Interação Comunicação 23 Diagrama de Comunicação: Ligações e Mensagens Nome da Mensagem: Verbo Mensagens 5: display course offerings( ) 6: display blank schedule( ) Cada mensagem cria um ligação entre os objetos ð Uma Associação entre suas classes. : Student 1: create schedule( ) : RegisterForCoursesForm 2: get course offerings( ) : RegistrationController Ligações 3: get course offerings(forsemester) : Course Catalog 4: get course offerings( ) SWTSU Catalog : CourseCatalogSystem w A flecha deve apontar o objeto fornecedor e deve- se usar uma numeração para ordenamento.
Métodos Orientados a Objetos - UML - Diagramas de Interação Comunicação Exemplo: Que Associações pode-se Deduzir? 24 1: submit schedule( ) 2: submit schedule( ) : Student : Student : RegisterForCoursesForm 6: has pre-requisites(courseoffering) 8: any conflicts?( ) : Schedule 5: is selected?( ) 10: mark as enrolled in( ) 3: save( ) 4: submit( ) 7: still open?( ) 9: add student(schedule) : RegistrationController : CourseOffering : PrimaryScheduleOfferingInfo
Métodos Orientados a Objetos - UML - Diagramas de Interação 25 Relação entre os Diagramas de Interação w Diagramas de Sequência e Comunicação são seman.camente equivalentes ð se facilmente converter, sem perda de informação, um diagrama no outro. Pode- w Ambos modelam aspectos dinâmicos de um sistema através da modelagem de um cenário de um caso de uso. w Os Diagramas de Sequência fornecem uma maneira para observar- se um cenário de uma maneira temporal: o que acontece primeiro e o que vem depois ð Este.po de diagrama é muito ú.l nas fases iniciais de uma modelagem. w Os Diagramas de Comunicação fornecem um grande quadro para um cenário, pois as colaborações são organizadas em torno das ligações que um objeto tem com outros objetos ð Estes diagramas tendem a ser mais u.lizados nas fases de desenvolvimento quando se deve planejar a implementação das associações. &
Métodos Orientados a Objetos - UML - Diagramas de Interação 26 Diferenças entre os Diagramas Diagramas de Sequência Diagramas de Comunicação Apresentam uma sequência explicita de mensagens. Apresentam as a@vações Melhores para a visualização geral do fluxo. Melhores para especificações de sistemas de tempo real e cenários complexos. Apresentam relações em adição às interações. Melhores para visualizar padrões de comunicação. Melhores para a visualização de todos os efeitos de um objeto específico. Mais facilmente u@lizados para sessões de brainstorming.
Métodos Orientados a Objetos - UML - Diagramas de Interação 27 Revisão w Qual o obje.vo dos Diagramas de Interação? w O que é um Diagrama de Sequência? E um Diagrama de Comunicação? w Quais são as semelhanças entre os Diagramas de Sequência e Comunicação? w Quais são as diferenças entre os Diagramas de Sequência e Comunicação?
Métodos Orientados a Objetos - UML Diagramas de Casos de Uso Exercício 2: Sistema de Controle de Pedidos 28 Uma empresa pretende desenvolver um Sistema de Informação para a gerência dos pedidos recebidos pela empresa. Este sistema de informação deve ser capaz de controlar o cadastro dos clientes, dos pedidos e dos produtos com todas as funcionalidades caracterís@cas (inclusão, alteração, supressão). Para realizar qualquer operação com o sistema o funcionário deve ter realizado o login no sistema. No sistema um login é caracterizado por um username e uma password. Os Clientes que serão gerenciados pelo SI podem ser do @po Cliente CorporaEvo ou Cliente Pessoal. Cada Cliente pode estar associado a diversos Pedidos, mas um Pedido está associado unicamente a um Cliente. Um Pedido é composto por diversas Linhas de Pedido e cada Linha de Pedido logicamente só pode fazer parte de um único Pedido. As linhas de Pedido nascem e morrem com os Pedidos. Cada Linha de Pedido está associada a unicamente um Produto, mas um Produto pode estar associado a diversas Linhas de Pedido. Clientes Corpora@vos são definidos por um código, um nome, um endereço, um nome de contato, uma classe de crédito e um limite de crédito. Clientes Pessoais são definidos por um código, um nome, um endereço, e um número de cartão de crédito. Um Pedido é definido por uma data, um preço e um número. Cada Linha do Pedido é definida por uma quan@dade e um preço e cada Produto é definido por um código, uma descrição e um preço.
Exercício 2: Sistema de Controle de Pedidos Diagrama de Sequência para o Fluxo de Eventos Cadastrar Cliente Corporativo Possibilidade 1 29 Indica se o Cliente está cadastrado ou não. Herança???
Exercício 2: Sistema de Controle de Pedidos Diagrama de Sequência para o Fluxo de Eventos Cadastrar Cliente Corporativo Possibilidade 2 Descoberta de uma Classe de Interface 30
Exercício 2: Sistema de Controle de Pedidos Diagrama de Sequência para o Fluxo de Eventos Cadastrar Cliente Corporativo Possibilidade 2 Sistema Externo 31
Exercício 2: Sistema de Controle de Pedidos Diagrama de Sequência para o Fluxo de Eventos Cadastrar Cliente - Herança 32
Métodos Orientados a Objetos - UML - Diagramas de Interação 33 Bibliografia w [FOO04] Mar.n Fowler, UML Essencial 3 ª Edição, Bookman, 2004. w [IBM04] IBM Corpora.on, EssenCals of Visual Modeling with UML 2.0, Material disponibilizado através do programa University da IBM.