Escolar Documentos
Profissional Documentos
Cultura Documentos
JCFJ
sexta-feira, 7 de outubro de 11
JCFJ
sexta-feira, 7 de outubro de 11
JCFJ
sexta-feira, 7 de outubro de 11
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
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
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
sexta-feira, 7 de outubro de 11
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
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
: Student
:RegisterForCoursesForm
:RegistrationController
:CourseCatalogSystem
: Course Catalog
1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )
JCFJ
sexta-feira, 7 de outubro de 11
10
: Student
:RegisterForCoursesForm
:RegistrationController
:CourseCatalogSystem
: Course Catalog
1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )
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.
11
: Student
:RegisterForCoursesForm
:RegistrationController
:CourseCatalogSystem
: Course Catalog
1: create schedule( ) 2: get course offerings( ) 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
JCFJ
sexta-feira, 7 de outubro de 11
fronteira...).
12
: Student
:RegisterForCoursesForm
:RegistrationController
:CourseCatalogSystem
: Course Catalog
1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )
O RegistrationControler compreende como os estudantes e o schedules esto relacionados. Ele devolve as informaes
JCFJ
sexta-feira, 7 de outubro de 11
13
: Student
:RegisterForCoursesForm
:RegistrationController
:CourseCatalogSystem
: Course Catalog
1: create schedule( ) 2: get course offerings( ) 3: get course offerings(forSemester) 4: get course offerings( )
JCFJ
sexta-feira, 7 de outubro de 11
14
Objetos Annimos
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
15
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
16
Mensagens Reflexivas
5: display course offerings( ) 6: display blank schedule( )
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
17
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
18
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
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
20
: 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
21
: RegisterForCoursesForm
Objetos
: RegistrationController
JCFJ
sexta-feira, 7 de outubro de 11
22
: Student
Atores
: RegistrationController
JCFJ
sexta-feira, 7 de outubro de 11
23
Mensagens
SEL3113 Engenharia de Software
Cada mensagem cria um ligao entre os objetos Uma Associao entre suas classes.
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
24
: RegisterForCoursesForm
: Student
: RegistrationController
8: any conflicts?( )
3: save( ) 4: submit( )
: Schedule
6: has pre-requisites(CourseOffering)
: CourseOffering : Student
5: is selected?( ) 10: mark as enrolled in( )
: PrimaryScheduleOfferingInfo
JCFJ
sexta-feira, 7 de outubro de 11
25
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
26
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
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
28
29
Herana???
JCFJ
sexta-feira, 7 de outubro de 11
30
JCFJ
sexta-feira, 7 de outubro de 11
31
JCFJ
sexta-feira, 7 de outubro de 11
32
JCFJ
sexta-feira, 7 de outubro de 11
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
JCFJ
sexta-feira, 7 de outubro de 11