S EL 31 13 – En ge n h ar ia de S oft war e 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
S EL 31 13 – En ge n h ar ia de S oft war e
Analisar através de Casos de Uso,
ð
Casos de Uso ï
,
S EL 31 13 – En ge n h ar ia de S oft war e 3
Os Objetos Precisam Colaborar
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.
w
Como os objetos interagem?
w
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).
: Car buyer
:RegistrationController :CourseCatalogSystem getCourseOfferings(forSemester)
Mensagem
S EL 31 13 – En ge n h ar ia de S oft war e
Diagramas de Interação
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
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.
– Diagramas de Temporização
S EL 31 13 – En ge n h ar ia de S oft war e 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.
Comunicação Sequência
S EL 31 13 – En ge n h ar ia de S oft war e
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.
Visão Geral da Interação Temporização
S EL 31 13 – En ge n h ar ia de S oft war e 7
Diagrama de Sequência – I
w
Conjunto dos objetos e atores (com suas linhas de vida) que colaboram na realização
de um Caso de Uso.
w
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.
w
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.
w
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.
Diagrama de Interação que enfatiza a ordenação temporal das mensagens. Modelagem do Fluxo de Controle em relação a temporização.
S EL 31 13 – En ge n h ar ia de S oft war e
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...
w
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.
w
Pode-‐se ter um diagrama de sequência para cada sub-‐fluxo de um caso de uso.
w
Classes de Fronteira
são adicionadas a um diagrama de sequência para mostrar a
interação com um usuário ou outro sistema.
S EL 31 13 – En ge n h ar ia de S oft war e 9
Diagrama de Sequência: Exemplo
: Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog
1: create schedule( )
5: display course offerings( ) 2: get course offerings( )
3: get course offerings(forSemester)
6: display blank schedule( )
4: get course offerings( )
Caso de Uso: Register For Courses – Sub-Fluxo Create a Schedule
S EL 31 13 – En ge n h ar ia de S oft war e
Diagrama de Sequência: Exemplo
: Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog
1: create schedule( )
5: display course offerings( ) 2: get course offerings( )
3: get course offerings(forSemester)
6: display blank schedule( )
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.
S EL 31 13 – En ge n h ar ia de S oft war e 11
Diagrama de Sequência: Exemplo
: Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog
1: create schedule( )
5: display course offerings( ) 2: get course offerings( )
3: get course offerings(forSemester)
6: display blank schedule( )
4: get course offerings( )
Somente RegisterForCoursesForm interage com o ator Student (o que era de se esperar de uma classe de
fronteira...).
Caso de Uso: Register For Courses – Sub-Fluxo Create a Schedule
S EL 31 13 – En ge n h ar ia de S oft war e
Diagrama de Sequência: Exemplo
: Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog
1: create schedule( )
5: display course offerings( ) 2: get course offerings( )
3: get course offerings(forSemester)
6: display blank schedule( )
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?
S EL 31 13 – En ge n h ar ia de S oft war e 13
Diagrama de Sequência: Exemplo
: Student :RegisterForCoursesForm :RegistrationController :CourseCatalogSystem : Course Catalog
1: create schedule( )
5: display course offerings( ) 2: get course offerings( )
3: get course offerings(forSemester)
6: display blank schedule( )
4: get course offerings( )
Somente CourseCatalogSystem interage com o ator externo Course Catalog.
Caso de Uso: Register For Courses – Sub-Fluxo Create a Schedule
S EL 31 13 – En ge n h ar ia de S oft war e
Diagrama de Sequência: Objetos
:RegisterForCoursesForm :RegistrationController CourseCatalogSystemSWTSU Catalog :
Objetos Anônimos
Linhas da Vida
Objetos com Nome
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.
S EL 31 13 – En ge n h ar ia de S oft war e 15
:RegisterForCoursesForm :RegistrationController CourseCatalogSystemSWTSU Catalog :
: Student : Course Catalog
Diagrama de Sequência: Atores
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.
S EL 31 13 – En ge n h ar ia de S oft war e
Diagrama de Sequência: Mensagens
Mensagens Reflexivas
1: create schedule( )
2: get course offerings( )
3: get course offerings(for Semester)
4: get course offerings( )
6: display blank schedule( ) 5: display course offerings( )
Mensagem
:RegisterForCoursesForm :RegistrationController CourseCatalogSystemSWTSU Catalog :
: Student : Course Catalog
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.
S EL 31 13 – En ge n h ar ia de S oft war e 17
Diagrama de Sequência: Ativação
Ativação
: Student : Course Catalog
2: get course offerings( )
4: get course offerings( )
6: display blank schedule( ) 1: create schedule( )
5: display course offerings( )
3: get course offerings(for Semester) :RegisterForCoursesForm :RegistrationController CourseCatalogSystemSWTSU Catalog :
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.
S EL 31 13 – En ge n h ar ia de S oft war e
Diagrama de Sequência: Eventos
: Student : Course Catalog
2: get course offerings( )
4: get course offerings( )
6: display blank schedule( ) 1: create schedule( )
5: display course offerings( )
3: get course offerings(for Semester) :RegisterForCoursesForm :RegistrationController CourseCatalogSystemSWTSU Catalog :
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.
S EL 31 13 – En ge n h ar ia de S oft war e 19
Diagramas de Comunicaçã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.
Modelar o Fluxo de Controle, enfatizando a organização dos objetos que participam da interação.
Métodos Orientados a Objetos - UML - Diagramas de Interação Métodos Orientados a Objetos - UML - Diagramas de Interação
S EL 31 13 – En ge n h ar ia de S oft war e
Diagrama de Comunicação: Exemplo
: Student
: RegisterForCoursesForm
: RegistrationController : CourseCatalogSystem 5: display course offerings( )
6: display blank schedule( )
: Course Catalog 1: create schedule( )
2: get course offerings( )
3: get course offerings(forSemester)
4: get course offerings( )
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.
S EL 31 13 – En ge n h ar ia de S oft war e 21
Diagrama de Comunicação: Objetos
Objetos
: RegisterForCoursesForm
: RegistrationController : CourseCatalogSystemSWTSU Catalog
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.
S EL 31 13 – En ge n h ar ia de S oft war e
Diagrama de Comunicação: Atores
Atores
: Student
: Course Catalog : RegisterForCoursesForm
: RegistrationController : CourseCatalogSystemSWTSU Catalog
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.
S EL 31 13 – En ge n h ar ia de S oft war e 23
Diagrama de Comunicação: Ligações e Mensagens
: RegisterForCoursesForm
: RegistrationController 5: display course offerings( )
6: display blank schedule( )
1: create schedule( )
2: get course offerings( )
3: get course offerings(forSemester)
4: get course offerings( ) : Student : Course Catalog Ligações Mensagens SWTSU Catalog : CourseCatalogSystem
w A flecha deve apontar o objeto fornecedor e deve-‐se usar uma numeração para ordenamento.
Nome da Mensagem: Verbo
Cada mensagem cria um ligação entre os objetos ð Uma Associação entre suas classes.
S EL 31 13 – En ge n h ar ia de S oft war e
Exemplo: Que Associações pode-se Deduzir?
: CourseOffering : RegistrationController : Schedule : Student : PrimaryScheduleOfferingInfo 8: any conflicts?( ) : RegisterForCoursesForm 2: submit schedule( ) 4: submit( ) 3: save( ) 7: still open?( ) 9: add student(Schedule) 5: is selected?( ) 10: mark as enrolled in( ) 6: has pre-requisites(CourseOffering)
1: submit schedule( )
S EL 31 13 – En ge n h ar ia de S oft war e 25
w
Diagramas de Sequência e Comunicação são seman.camente equivalentes ð Pode-‐
se facilmente converter, sem perda de informação, um diagrama no outro.
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
S EL 31 13 – En ge n h ar ia de S oft war e
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.
S EL 31 13 – En ge n h ar ia de S oft war e 27
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?
Revisão
S EL 31 13 – En ge n h ar ia de S oft war e
Exercício 2: Sistema de Controle de Pedidos
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.
S EL 31 13 – En ge n h ar ia de S oft war e 29
Exercício 2: Sistema de Controle de Pedidos
Diagrama de Sequência para o Fluxo de Eventos Cadastrar Cliente Corporativo Possibilidade 1
Indica se o Cliente está cadastrado ou não.
S EL 31 13 – En ge n h ar ia de S oft war e
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
S EL 31 13 – En ge n h ar ia de S oft war e 31
Exercício 2: Sistema de Controle de Pedidos
Diagrama de Sequência para o Fluxo de Eventos Cadastrar Cliente Corporativo Possibilidade 2 – Sistema Externo
S EL 31 13 – En ge n h ar ia de S oft war e
Exercício 2: Sistema de Controle de Pedidos
S EL 31 13 – En ge n h ar ia de S oft war e 33