Professional Documents
Culture Documents
• Diagramas de Interacção
– Diagrama de SEQUÊNCIA: interacção e comunicação entre objectos,
preocupação central é o tempo
• Diagrama de Sequência
– Representam a forma como os objectos interagem uns com os outros
– Focalizam-se nas sequências de mensagens
– Dois eixos: vertical = TEMPO ; horizontal = CLASSES intervenientes
– Classes representadas por rectângulos com nome sublinhado
– A comunicação entre os objectos é representada por linhas de mensagem,
horizontais entre as linhas do ciclo de vida dos objectos intervenientes
• Diagrama de Colaboração
– Focam as interacções assim como as ligações entre um conjunto de classes
cooperantes
– Refere-se ao espaço, enquanto o diagrama de sequência se refere ao tempo
– As classes são representadas por rectângulos; as ligações por linhas
– A uma ligação pode ser associada uma mensagem
Diagrama de Actividades
– Modelam processos de negócio e workflow
São uma variante dos diagramas de estado
• As transições entre estados de acção são automáticas assim que todas as
actividades no estado acção são concluídas (representadas por uma seta)
• Condições, cláusulas e expressões nas transições
• Pontos de decisão (representadps por um losango)
• Evento (eventual) único entre o ponto inicial e a primeira acção
• Acções concorrentes; “Divisórias” (swimlanes)
1.evento
2.operação 3.Operação
(lista de
parametros)
4.Operação 5.Operação
(lista de (lista de
parametros) parametros)
T
E
M
P
O
Condição
Comentário
Etiqueta
Retorno Linha do
Engenharia de Software - ISEP Ciclo de Vida 12
Diagrama de Sequência - exemplo
:Janela de
Selecção de :Linha de :Item de
Pedidos :Pedido Pedido Stock
Quantidade
pedida
tratar()
* tratar()
e:=existe?(q)
[b=“sim”] criar()
e2:Encomenda
[e=“nao”] criar()
e1:Encomenda
e executar
criar t: Transacção
criar s1: Subtransacção
criar s2: Subtransacção
Adormecida à
espera de sinal
de sub-transacção sucesso
restam
subtransacções?
sucesso
restam
subtransacções?
auto-destruição
Identifica sócio
Confirma dados
Imprime requisição
Empresta publicação
• Instanciação de objectos
– {new} quando são criados durante a colaboração
– {destroyed} quando são destruídos durante a colaboração
– {transient} quando são criados e destruídos durante a colaboração
({new}{destroyed})
NewCustomer() [free memory] 1: Create()
:MainWindow :Customer{new}
3: Show(Customer) 2: Create()
:CustomerWindow
{transient}
3.1: Update(data)
[Impressora Ocupada]
Imprimir (arquivo)
1: Imprimir (arq)
[Impressora Livre]
: Servidor de 1.1: Imprimir (arq) : Impressora
Impressão
Codificar dados
do for m ulár io
Enviar dados
codificados Pr oce s s ar dados
Exe cutar
Enviar dados
proce s s ados
Cadastr ar pe dido
Cadas tr o OK
Ge r ar página
de confir m ação
Enviar página
Enviar página
Exibir página
submeter(dadosForm) 2: enviarDadosCodificados(dados)
Browser Servidor Web
9: enviarPagina(pagina)
Estudante 8: enviarPagina(pag)
5: enviarDadosProc(dados)
4: executar()
7: gerarPagResposta()
Chegar ao R/C
andaro térreo Chegar ao andar subir (andar)
Ir para o
R/C
Descendo Chegar ao andar Parado
aandarandarandar
descer (andar)
paralisado
Vez das Vitória das brancas
pretas xeque-mate
Estado inicial
(criação do objecto e início Estado final
da máquina de estados)
(fim da máquina de estados
e destruição do objecto)
Engenharia de Software - ISEP 32
Diagrama de Estados – Conceitos
• Uma actividade é uma computação não atómica que pode ser
interrompida por outros eventos.
• São elementos base dos Diagramas de actividades. Na
especificação de Estados são prefixadas pela palavra do.
Estado 1
do / actividade evento(parâmetros) [condição] / acção
entry / acção Estado 2
exit / acção
evento / acção transição
Tipos de eventos :
• Evento de chamada: recebimento de uma mensagem (sincrona) de
outro objecto.
• Evento de sinal: recebimento de um sinal (assincrono)
• Evento temporal: passagem de um intervalo de tempo predefinido.
É especificado com a cláusula after seguida de um parâmetro que especifica
um intervalo de tempo. Ex. after(30 segundos)
• Evento de mudança: uma condição que se torna verdadeira.
É especificado utilizando-se a cláusula when. Ex. when(saldo > 0)
Notação básica
Estado 1
do / actividade evento(parâmetros) [condição] / acção
entry / acção Estado 2
exit / acção
evento / acção transição
Emissão (Multibanco)
[troco=0] [troco>0]
dígito(n) escolhe(item)
do/ inicializa item do/ acrescenta dígito
limpa aceita
do/ move o braço do/ move o braço para do/ tira item da
para a fila correcta braço a coluna correcta braço prateleira tirado
pronto pronto
O E O E
after( 30 seg )[ tem carros
Norte/Sul pode na pista esquerda N/S ] Norte/Sul pode
S S
seguir em frente virar à esquerda
S S
Fechado Aberto
acciona
A fechar
Desligado
Exemplo: Estado civil
subestados sequenciais
Nascime nto
estado composto
(ou super-estado
Falecimento ou contorno)
Casamento do cônjuge Divórcio
Equivale a várias
transições, com origem
Casado Separação judicial Separado
em cada um dos
judicialmente
subestados!
Evita explosão
combinatória de
Falecimen to
transições!
aquisiç ão Disponível
mediante
devolução empréstimo requisição
Emprestada
ins crição
Activo Inactivo
renovação desistência
esgotado prazo
devolução / avisa
levantamento requ isi tante
desistência
Espera
esgotado prazo devolução
levantamento /
avisa requisitante devolução
Requisição Requisição
Anulada Prevê já vários exemplares por publicação e Encerrada
possibilidade de requisição ficar em lista de
espera!
H
Solicitar pr oduto
Enviar pe dido
Pagar conta
Ence r rar pe dido
[x < 0] Estado
[x = 0]
ação
Bifurcação
EstadoAção3 EstadoAção4
Ponto de
EstadoAção6 EstadoAção7 união
EstadoAção5
Estado final
Junção
Engenharia de Software - ISEP 60
Diagrama de Actividades
ImprimirFicheiro()
Mensagem
[Espaço em disco] “A imprimir ...”
Criar ficheiro
postscript
Enviar ficheiro
Apaga mensagem
para impressora
e: Encomenda
Faz encomenda Regista encomenda [pendente]
Despacha encomenda
e: Encomenda
Emite factura [despachada]
f: Factura
[paga]
[ indisponível ] [ disponível ]
Aguarda
disponibilidade
disponível
Avisa o : requisição
Vem levantar requisitante [espera levantamento]
Empresta a
publicação
Recebe a
publicação : requisição
[espera devolução]
Consulta a
publicação
Devolve a
publicação
Recolhe a : requisição
public ação
[finalizada]
• Diagrama de Componentes
Modelar a arquitectura do sistema de software na perspectiva dos
seus componentes lógicos ( ficheiros de código fonte, executáveis,
bases de dados , documentos de gestão do projecto). Desenvolvido
por arquitectos de software e implementadores.
• Diagrama de Instalação
Modelar a a arquitectura do sistema informático na perspectiva dos
componentes físicos (computadores, impressoras, routers, etc).
Desenvolvido por arquitectos, engenheiros de redes, e engenheiros
de sistemas
ClienteA :
Pentium 200 <<TCP/IP>>
MMX
Servidor de Servidor de
Aplicação : SQL <<TCP/IP>> Banco de
HP/UX Dados :
ClienteB : ORACLE
Pentium 200 <<TCP/IP>>
MMX