Escolar Documentos
Profissional Documentos
Cultura Documentos
Aula 07
12-12-2013
A.C.S.I. Inf. 2
Diagramas de Sequncia
Neles so representados, de uma forma sequencial:
Objetos (instncias das classes do Diagrama de Classes) e as prprias Classes, quando se justifique; Troca de mensagens (essencialmente chamadas a mtodos dos objetos); Estruturas simples de controlo (if e repeat).
Pressupe-se existncia de um Diagrama de Classes. usual associar um Diagrama de Sequncia a um Caso de Utilizao (ou a um cenrio, i.e., um caminho alternativo de um Caso de Utilizao).
Aula 07
12-12-2013
A.C.S.I. Inf. 2
Objeto
Um Objeto representa uma instncia de uma Classe, logo na sua representao dever constar a indicao da Classe respetiva.
p: Publicao
O mesmo objecto
p: Publicao
Se num diagrama pretendemos referir duas vezes o mesmo objeto, ter que ser utilizado o mesmo identificador.
q: Publicao : Publicao
Um qualquer objeto da classe Publicao (apenas se utiliza o identificador nas situaes em que pretendemos referir dois ou mais objetos da mesma classe).
Aula 07
12-12-2013
A.C.S.I. Inf. 2
Objeto
Cada objeto participante representado por uma caixa em cima
duma linha vertical a trao interrompido ( linha de vida ) Podem aparecer atores (objetos externos ao sistema), normalmente a iniciar interaes O tempo decorre de cima para baixo
objecto1:Classe1
Cliente mensagem()
objecto2: Classe2
:Classe3
Aula 07
12-12-2013
A.C.S.I. Inf. 2
Tipos de Mensagem
Uma Mensagem representa um ato de comunicao entre dois objetos (emissor e recetor). Quando uma mensagem ativada ocorre uma interao. Existem vrios tipos de interao pr-definidas:
Call o objecto emissor invoca um mtodo sobre um objeto recetor e fica a aguardar resposta (sncrona) para poder prosseguir; Return o objeto recetor do estmulo (mensagem sncrona) retorna um valor a quem lhe enviou a mensagem (emissor); Send o objeto emissor invoca um mtodo sobre um objeto recetor e prossegue a sua actividade sem necessidade de obter uma resposta (mensagem assncrona) Create (esteretipo) cria um objeto; Destroy (esteretipo) destri um objeto (um objeto pode-se destruir a ele prprio).
Aula 07
12-12-2013
A.C.S.I. Inf. 2
t: Tabela Sanes
Return
t: Tabela Sanes
Sano
Create / Destroy
Send
On error
<< create>>
<< destroy>>
r: Requisio
fr: frmRequisio
Simples
Aula 07
12-12-2013
A.C.S.I. Inf. 2
Uma mensagem iterada indicada com asterisco *, seguido ou no de uma frmula de iterao
Exemplo: *[i:=1..n] update(i)
O valor de retorno de uma mensagem sncrona pode ser indicado na chamada, com atribuio :=, ou na mensagem de retorno
Exemplo: ret := msg(args) Nome ret ser usado em mensagens e condies a seguir Tambm se pode escrever ret na mensagem de retorno
Aula 07
12-12-2013
A.C.S.I. Inf. 2
Barra de ativao
Uma barra de ativao mostra o perodo de tempo durante o qual um objeto est a executar uma ao, quer diretamente, quer indiretamente, atravs de um mtodo invocado
inclui situao em que est espera de retorno de uma chamada sncrona
Em termos de processos, significa que o objeto tem um processo ou thread ativo associado A sua indicao opcional Retorno de chamada implcito no fim da barra de ativao Chamadas recursivas provocam barras empilhadas
Aula 07
no inclui situao em que um processo est adormecido espera de receber uma mensagem assncrona que o acorde
12-12-2013
A.C.S.I. Inf. 2
Calculo Sano()
Objeto em Atividade
<< destroy>>
Tempo
Aula 07
Condio (Guarda)
10
12-12-2013
A.C.S.I. Inf. 2
[x <> 0 ]
n: NClass
Aula 07
11
12-12-2013
Iterao
A.C.S.I. Inf. 2
Exemplo de um Diagrama
r: Requisio
OK_Click Bibliotecrio
c: Cliente
t: Tabela Sanes
p:Publicao
12-12-2013
Valida Cliente() Prazo Entrega [Dt Devoluo > Prazo Entrega] Sano Actualiza Stock()
<< destroy>>
Aula 07
Calculo Sano()
12
A.C.S.I. Inf. 2
c: Cliente
t: Tabela Sanes
p:Publicao
12-12-2013
Valida Cliente()
Prazo Entrega [Dt Devoluo > Prazo Entrega] Calculo Sano() Sano Actualiza Stock()
Aula 07
13
A.C.S.I. Inf. 2
Valida Cliente() Prazo Entrega [Dt Devoluo > Prazo Entrega] Sano Actualiza Stock()
Calculo Sano()
Sano
<< destroy>>
Aula 07
14
12-12-2013
fr: frmRequisio
r: Requisio
c: Cliente
t: Tabela Sanes
p:Publicao
A.C.S.I. Inf. 2
create
connect
create
Recolhe Requisio()
Actualiza Stock()
destroy
Extingue-se a ligao
Aula 07
15
12-12-2013
fr: frmRequisio
r: Requisio
:DbConnection
:tabelaPublicao
A.C.S.I. Inf. 2
fr: frmRequisio
connect
Confirma Dados
{transient}
r: Requisio
Bibliotecrio Actualiza Stock() Recolhe Requisio()
A ligao permanente
Aula 07
16
12-12-2013
:DbConnection
:tabelaPublicao
A.C.S.I. Inf. 2
de Casos de Utilizao
A um Caso de Utilizao podem corresponder vrios Diagramas de Sequncia, para descrever sequncias normais e sequncias excecionais de funcionamento Inicialmente, o sistema pode ser representado por um nico objeto; depois de conhecida a sua estrutura interna, podem-se representar objetos internos ao sistema
de Estados
Enquanto que um Diagrama de Comunicao mostra um comportamento possvel de um conjunto de objetos, com passagem de controlo entre objetos, um Diagrama de Estados mostra todos os comportamentos possveis de um nico objeto, com passagem de controlo entre estados Envio e receo de mensagens so aes e eventos nos diagramas de estados Intervalo de tempo entre duas mensagens um estado no diagrama de estados
de Atividades
Adequados para mostrar aes realizadas por um objeto que no envolvem comunicao com outros objetos Com "swimlanes", permitem mostrar sequncias alternativas e ciclos envolvendo vrios objetos
Aula 07
17
12-12-2013
A.C.S.I. Inf. 2
Exemplo a representar
Represente o Diagrama de Sequncia com base no que conhece do caso de utilizao validao
Descrio Caso: Login Pr-condio: Utilizador no tem sesso ativa Ator: Utilizador Annimo Cenrio Principal: 1. Utilizador acabou de aceder ao sistema; 2. Sistema mostrou o ecr de Log-in (EC_LG); 3. Utilizador insere credenciais e acciona ok; 4. Sistema valida a existncia de um utilizador com tais credenciais e: 4.1 caso no encontre, rejeita e mostra erro; 4.2 caso encontre, cria uma sesso, e mostra o ecr adequado ao tipo de utilizador: Administrador (EC_Adm), ou Normal (EC_Nrm). Observaes: o utilizador dispe de 3 tentativas at ser bloqueado.
Aula 07
18
12-12-2013
A.C.S.I. Inf. 2