Você está na página 1de 33

1

Programa do Curso de ESW


Orientao a Objetos
SEL3113 Engenharia de Software

Conceitos Bsicos Anlise Orientada a Objetos (UML)


Diagramas de Interao: Sequncia, Comunicao

Processo Unificado (RUP)

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos UML Diagramas UML

SEL3113 Engenharia de Software

Analisar atravs de Casos de Uso,


Casos de Uso , Cenrios: Comunicao e Sequncia

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos UML Diagramas UML

Os Objetos Precisam Colaborar


w Objetos no tm u.lidade se eles no puderam colaborar para resolver um problema.
Cada objeto responsvel por seu prprio comportamento e status. Nenhum objeto pode responder unicamente por todas as responsabilidades do sistema.
SEL3113 Engenharia de Software

w Como os objetos interagem? w Atravs de Mensagens.


Uma mensagem apresenta como um objeto solicita a outro objeto, que este execute alguma a@vidade As mensagens so o mecanismo que permitem que os objetos se comuniquem. Uma mensagem normalmente implementada por uma ao simples Quando a ao executada o controle retorna a que enviou a mensagem com um valor de retorno (caso exista). Mensagem

getCourseOfferings(forSemester) :RegistrationController : Car buyer :CourseCatalogSystem

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos UML Diagramas UML

Diagramas de Interao
Um Cenrio uma instncia de um Caso de Uso: ele um caminho atravs dos fluxos de eventos de um Caso de Uso particular Um Caso de Uso um classificador, uma unidade de reagrupamento de Cenrios.
SEL3113 Engenharia de Software

w Cenrios so u.lizados para descrever como os casos de uso so realizados em termos de interaes entre conjuntos de objetos w Cenrios so desenvolvidos para auxiliar a iden.cao de objetos e classes e tambm das interaes entre objetos necessrias a execuo de uma parte da funcionalidade de um sistema capturada em um caso de uso. w Atravs dos cenrios pode-se explicitar como as responsabilidades de um sistema, especicadas atravs dos casos de uso, so distribudas entre os objetos e as classes do sistema. w O uxo dos eventos de um sistema capturado de maneira textual, enquanto cenrios so capturados em Diagramas de Interao que so uma representao grca de cenrios podendo ser de quatro .pos: Diagramas de Sequncia Diagramas de Temporizao Diagramas de Viso Geral da Interao Diagrama de Comunicao
JCFJ

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos UML Diagramas UML

Diagramas de Interao I
w Diagrama de Sequncia
SEL3113 Engenharia de Software

Viso orientada a temporizao da interao entre os objetos para implementar um dos comportamentos esperados do sistema.
Sequncia

w Diagrama de Comunicao
Viso estrutural da troca de mensagens entre os objetos Originrio do diagrama de colaborao do UML 1.
Comunicao

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos UML Diagramas UML

Diagramas de Interao II
w Diagrama de Temporizao
SEL3113 Engenharia de Software

Viso com as restries temporais entre as mensagens enviadas e recebidas em uma interao. Diagrama opcional que talvez tenha maior interesse em aplicaes de Tempo Real, onde a temporizao representa um fator cr.co.

Temporizao

w Diagrama de Viso Geral da Interao


Viso de alto nvel dos conjuntos de interaes combinadas em uma sequncia lgica e incluindo lgica do uxo de controle para navegao entre as interaes. Integrao de Diagramas de Sequncia para os Viso Geral da Interao conjuntos de interaes com Diagramas de A.vidades para a sequncia lgica.
JCFJ

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos UML Diagramas de Interao

Diagrama de Sequncia I
Diagrama de Interao que enfatiza a ordenao temporal das mensagens. Modelagem do Fluxo de Controle em relao a temporizao.
SEL3113 Engenharia de Software

w Conjunto dos objetos e atores (com suas linhas de vida) que colaboram na realizao de um Caso de Uso. w Descrevem as interaes entre objetos de um ponto de vista temporal:

Conjunto de mensagens trocadas entre os objetos; Sequenciamento cronolgico com a notao da vida do objeto; Passagem do tempo na ver@cal/Troca de mensagens na horizontal com a representao de paralelismo de existncia, de alterna@vas, etc.

w U.lizao mais comum na documentao de Casos de Uso Realizao 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 Sequncia para o uxo principal e diferentes diagramas para cada um dos sub-uxos.

w Diagramas de Sequncia so importanYssimos para os proje.stas, pois claricam os papis dos objetos em um uxo e fornecem informaes bsicas para a determinao das responsabilidades das classes e de suas interfaces.
JCFJ
e
JP mP

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

Diagrama de Sequncia II
w Os objetos se comunicam atravs do envio de Mensagens que partem de um objeto cliente (emissor) em direo a um objeto provedor (receptor) A ordem do envio
SEL3113 Engenharia de Software

das mensagens dada pela posio destas em um eixo ver.cal (abaixo do objeto).
Mensagens sncronas, assncronas, atraso na transmisso, restries temporais...

w Os diagramas de sequncia mostram os objetos e classes envolvidos em um cenrio assim como o sequenciamento de mensagens trocadas entre os objetos para que estes implementem a funcionalidade representada pelo cenrio. w Pode-se ter um diagrama de sequncia para cada sub-uxo de um caso de uso. w Classes de Fronteira so adicionadas a um diagrama de sequncia para mostrar a interao com um usurio ou outro sistema.

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

Diagrama de Sequncia: Exemplo


Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule

SEL3113 Engenharia de Software

: Student

:RegisterForCoursesForm

:RegistrationController

:CourseCatalogSystem

: Course Catalog

1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )

5: display course offerings( ) 6: display blank schedule( )

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

10

Diagrama de Sequncia: Exemplo


Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule

SEL3113 Engenharia de Software

: Student

:RegisterForCoursesForm

:RegistrationController

:CourseCatalogSystem

: Course Catalog

1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )

5: display course offerings( ) 6: display blank schedule( )

JCFJ
sexta-feira, 7 de outubro de 11

RegisterForCoursesForm (classe de fronteira) conhece os dados que ele precisa apresentar mas no sabe como obtlos. Esta uma das responsabilidades de RegistrationControler.

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

11

Diagrama de Sequncia: Exemplo


Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule

SEL3113 Engenharia de Software

: Student

:RegisterForCoursesForm

:RegistrationController

:CourseCatalogSystem

: Course Catalog

1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )

5: display course offerings( ) 6: display blank schedule( )

Somente RegisterForCoursesForm interage com o ator Student (o que era de se esperar de uma classe de

JCFJ
sexta-feira, 7 de outubro de 11

fronteira...).

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

12

Diagrama de Sequncia: Exemplo


Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule

SEL3113 Engenharia de Software

: Student

:RegisterForCoursesForm

:RegistrationController

:CourseCatalogSystem

: Course Catalog

1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )

5: display course offerings( ) 6: display blank schedule( )

O RegistrationControler compreende como os estudantes e o schedules esto relacionados. Ele devolve as informaes

JCFJ
sexta-feira, 7 de outubro de 11

necessrias a construo do schedule. Como?

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

13

Diagrama de Sequncia: Exemplo


Caso de Uso: Register For Courses Sub-Fluxo Create a Schedule

SEL3113 Engenharia de Software

: Student

:RegisterForCoursesForm

:RegistrationController

:CourseCatalogSystem

: Course Catalog

1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )

5: display course offerings( ) 6: display blank schedule( )

Somente CourseCatalogSystem interage com o ator externo Course Catalog.

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

14

Diagrama de Sequncia: Objetos


:RegisterForCoursesForm SEL3113 Engenharia de Software :RegistrationController SWTSU Catalog : CourseCatalogSystem

Objetos Annimos

Objetos com Nome Linhas da Vida

w Objetos so apresentados como uma linha tracejada denominada Linha da vida do objeto Esta linha representa a existncia do objeto durante um certo tempo. w Um retngulo representando o objeto desenhado no topo da linha da vida, u@lizando a notao nome do objeto : nome da classe. w Pode-se representar objetos sem classe (normalmente no incio da modelagem), classes sem objetos (todos os objetos da classe) ou um objeto especco da classe O trs @pos de representaes podem estar presentes no mesmo diagrama. JCFJ

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

15

Diagrama de Sequncia: Atores


:RegisterForCoursesForm : Student :RegistrationController SWTSU Catalog : CourseCatalogSystem : Course Catalog

SEL3113 Engenharia de Software

Instncias dos Atores

w Normalmente os atores so representados como o primeiro elemento a esquerda nos diagramas de sequncia, como o elemento que est invocando a ao. w Se um diagrama @ver mais que um ator deve-se procurar coloc-los nas laterais do diagrama. w Interaes entre atores no existem e no so representadas pois atores so por denio externos ao modelo. JCFJ

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

16

Diagrama de Sequncia: Mensagens


:RegisterForCoursesForm : Student 1: create schedule( ) 2: get course offerings( ) :RegistrationController SWTSU Catalog : CourseCatalogSystem : Course Catalog

SEL3113 Engenharia de Software

Mensagens Reflexivas
5: display course offerings( ) 6: display blank schedule( )

3: get course offerings(for Semester) 4: get course offerings( )

Mensagem

w A mensagem o meio de comunicao entre dois objetos e transporta informao para que a ao 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 Reexivas A mensagem representada por um nome e pelos parmetros que representam as informaes transportadas. w Um mensagem no precisa obrigatoriamente ser o nome de uma operao especca do objeto que a recebe, embora com o progresso da modelagem isto venha a ocorrer. JCFJ

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

17

Diagrama de Sequncia: Ativao


:RegisterForCoursesForm : Student :RegistrationController SWTSU Catalog : CourseCatalogSystem : Course Catalog 1: create schedule( ) 2: get course offerings( ) 3: get course offerings(for Semester) 4: get course offerings( ) 5: display course offerings( )

SEL3113 Engenharia de Software

Ativao
6: display blank schedule( )

w A a@vao mostra o perodo de tempo durante o qual o objeto est realizando uma ao, seja diretamente ou atravs de uma solicitao de servio a outro objeto, sendo representada por um retngulo colocado sobre a linha da vida do objeto. w O incio do retngulo ca alinhado com o incio da ao e o nal com seu trmino. JCFJ

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Sequncia

18

Diagrama de Sequncia: Eventos


:RegisterForCoursesForm : Student :RegistrationController SWTSU Catalog : CourseCatalogSystem : Course Catalog 1: create schedule( ) 2: get course offerings( ) 3: get course offerings(for Semester) 4: get course offerings( ) 5: display course offerings( )

SEL3113 Engenharia de Software

Eventos
6: display blank schedule( )

w Um evento caracteriza o envio ou o recebimento de uma mensagem por um objeto e no apresentado explicitamente como um conceito do diagrama de sequncia. w Ele pode ser visto como a interseo das mensagens com as linhas de vida dos objetos, j que uma mensagem conecta a ocorrncia de dois eventos em duas linhas de vida. JCFJ

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao

19

Diagramas de Comunicao
Modelar o Fluxo de Controle, enfatizando a organizao dos objetos que participam da interao.
SEL3113 Engenharia de Software

w Maneira alterna.va de se apresentar um cenrio Diagramas organizados em torno de objetos, representando as interaes de um objeto e as ligaes (instncias das associaes das classes) deste objeto com outros objetos. w Diagramas de Comunicao apresentam:

w U.lizado pelos proje.stas para denir e claricar os papis dos objetos que implementam um uxo de eventos par.cular de um caso de uso Cons.tuem a fonte de informao primria para determinar as responsabilidades das classes e suas interfaces. w Devido a suas caracters.cas este diagrama apresenta maior interesse em a.vidades de anlise, na denio das interaes entre um pequeno nmero de classes. w Com um grande nmero de classes o diagrama torna-se de di]cil leitura e neste caso os diagramas de sequncia apresentam melhores resultados.
JCFJ
e
JP mP

Objetos que par@cipam da interao (desenhados como retngulos). Ligaes entre objetos representadas por linhas entre eles. Mensagens representadas como texto associado a um echa que aponta do objeto cliente para o objeto fornecedor.

sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Comunicao

20

Diagrama de Comunicao: Exemplo


5: display course offerings( ) 6: display blank schedule( )

SEL3113 Engenharia de Software

1: create schedule( ) : RegisterForCoursesForm : Student

: Course Catalog

2: get course offerings( ) 4: get course offerings( ) 3: get course offerings(forSemester) : RegistrationController : CourseCatalogSystem

w Como no diagrama de sequncia, tem-se neste diagrama instncias de classes e atores, com suas ligaes e mensagens descrevendo como os objetos esto relacionados e como interagem. w O diagrama indica a comunicao entre os objetos par@cipantes atravs da troca de mensagens. w Pode-se ter um diagrama de comunicao para cada sub-uxo de um caso de uso. JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Comunicao

21

Diagrama de Comunicao: Objetos


w O objeto representado como um retngulo com a notao nome do objeto : nome da classe. w Do mesmo modo que no diagrama de sequncia, pode-se representar objetos sem classe (normalmente no incio da modelagem), classes sem objetos (todos os objetos da classe) ou um objeto especco da classe O trs @pos de representaes podem estar presentes no mesmo diagrama.

SEL3113 Engenharia de Software

: RegisterForCoursesForm

Objetos

: RegistrationController

SWTSU Catalog : CourseCatalogSystem

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Comunicao

22

Diagrama de Comunicao: Atores


w Normalmente os atores esto presentes neste diagrama como os invocadores das interaes. w Deve-se deixar os atores nas bordas dos diagramas. w Como no diagrama de sequncia a interao entre os atores no existe e no deve ser apresentada.
: Course Catalog : RegisterForCoursesForm

SEL3113 Engenharia de Software

: Student

Atores

: RegistrationController

SWTSU Catalog : CourseCatalogSystem

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Comunicao

23

Diagrama de Comunicao: Ligaes e Mensagens


Nome da Mensagem: Verbo

Mensagens
SEL3113 Engenharia de Software

5: display course offerings( ) 6: display blank schedule( )

Cada mensagem cria um ligao entre os objetos Uma Associao entre suas classes.

1: create schedule( ) : RegisterForCoursesForm

Ligaes

: Course Catalog

: Student

2: get course offerings( ) 4: get course offerings( ) 3: get course offerings(forSemester) : RegistrationController SWTSU Catalog : CourseCatalogSystem

w A echa deve apontar o objeto fornecedor e deve-se usar uma numerao para ordenamento.

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao Comunicao

24

Exemplo: Que Associaes pode-se Deduzir?


1: submit schedule( ) 2: submit schedule( )

: RegisterForCoursesForm
: Student

: RegistrationController

SEL3113 Engenharia de Software

8: any conflicts?( )

3: save( ) 4: submit( )

: Schedule
6: has pre-requisites(CourseOffering)

7: still open?( ) 9: add student(Schedule)

: CourseOffering : Student
5: is selected?( ) 10: mark as enrolled in( )

: PrimaryScheduleOfferingInfo

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao

25

Relao entre os Diagramas de Interao


w Diagramas de Sequncia e Comunicao so seman.camente equivalentes se facilmente converter, sem perda de informao, um diagrama no outro.
SEL3113 Engenharia de Software

Pode-

w Ambos modelam aspectos dinmicos de um sistema atravs da modelagem de um cenrio de um caso de uso. w Os Diagramas de Sequncia fornecem uma maneira para observar-se um cenrio 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 Comunicao fornecem um grande quadro para um cenrio, pois as colaboraes so organizadas em torno das ligaes que um objeto tem com outros objetos Estes diagramas tendem a ser mais u.lizados nas fases de desenvolvimento quando se deve planejar a implementao das associaes.

JCFJ &
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao

26

Diferenas entre os Diagramas


Diagramas de Sequncia
SEL3113 Engenharia de Software

Diagramas de Comunicao
Apresentam relaes em adio s interaes. Melhores para visualizar padres de comunicao. Melhores para a visualizao de todos os efeitos de um objeto especco. Mais facilmente u@lizados para sesses de brainstorming.

Apresentam uma sequncia explicita de mensagens. Apresentam as a@vaes Melhores para a visualizao geral do uxo. Melhores para especicaes de sistemas de tempo real e cenrios complexos.

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao

27

Reviso
w Qual o obje.vo dos Diagramas de Interao?
SEL3113 Engenharia de Software

w O que um Diagrama de Sequncia? E um Diagrama de Comunicao? w Quais so as semelhanas entre os Diagramas de Sequncia e Comunicao? w Quais so as diferenas entre os Diagramas de Sequncia e Comunicao?

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML Diagramas de Casos de Uso

28

Exerccio 2: Sistema de Controle de Pedidos


Uma empresa pretende desenvolver um Sistema de Informao para a gerncia dos pedidos recebidos pela empresa. Este sistema de informao deve ser capaz de controlar o cadastro dos clientes, dos pedidos e dos produtos com todas as funcionalidades caracters@cas (incluso, alterao, supresso). Para realizar qualquer operao com o sistema o funcionrio deve ter realizado o login no sistema. No sistema um login caracterizado por um username e uma password. Os Clientes que sero 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 so denidos por um cdigo, um nome, um endereo, um nome de contato, uma classe de crdito e um limite de crdito. Clientes Pessoais so denidos por um cdigo, um nome, um endereo, e um nmero de carto de crdito. Um Pedido denido por uma data, um preo e um nmero. Cada Linha do Pedido denida por uma quan@dade e um preo e cada Produto denido por um cdigo, uma descrio e um preo. JCFJ
sexta-feira, 7 de outubro de 11

SEL3113 Engenharia de Software

29

Exerccio 2: Sistema de Controle de Pedidos


Diagrama de Sequncia para o Fluxo de Eventos Cadastrar Cliente Corporativo Possibilidade 1 SEL3113 Engenharia de Software

Indica se o Cliente est cadastrado ou no.

Herana???
JCFJ
sexta-feira, 7 de outubro de 11

30

Exerccio 2: Sistema de Controle de Pedidos


Diagrama de Sequncia para o Fluxo de Eventos Cadastrar Cliente Corporativo Possibilidade 2 Descoberta de uma Classe de Interface SEL3113 Engenharia de Software

JCFJ
sexta-feira, 7 de outubro de 11

31

Exerccio 2: Sistema de Controle de Pedidos


Diagrama de Sequncia para o Fluxo de Eventos Cadastrar Cliente Corporativo Possibilidade 2 Sistema Externo SEL3113 Engenharia de Software

JCFJ
sexta-feira, 7 de outubro de 11

32

Exerccio 2: Sistema de Controle de Pedidos


Diagrama de Sequncia para o Fluxo de Eventos Cadastrar Cliente - Herana

SEL3113 Engenharia de Software

JCFJ
sexta-feira, 7 de outubro de 11

Mtodos Orientados a Objetos - UML - Diagramas de Interao

33

Bibliografia
w [FOO04] Mar.n Fowler, UML Essencial 3 Edio, Bookman, 2004. w [IBM04] IBM Corpora.on, EssenCals of Visual Modeling with UML 2.0, Material
SEL3113 Engenharia de Software

disponibilizado atravs do programa University da IBM.

JCFJ
sexta-feira, 7 de outubro de 11

Você também pode gostar