Sie sind auf Seite 1von 81

Programao por Objectos UML

MEEC@IST

UML 1/81

Anlise por UML (1)


Um sistema de anlise descreve os modelos da aplicao a desenvolver.
Aumenta legibilidade (menos informao que o cdigo, permitindo visualizar globalmente a aplicao). Mostra estrutura da aplicao, sem detalhes de implementao. Representao grfica incrementa clareza semntica. Devido complexidade, a abordagem OO descrita por vrios modelos, onde cada modelo aborda um aspecto particular.

MEEC@IST

UML 2/81

Anlise por UML (2)


UML (Unified Modeling Language) resulta da fuso de vrios sistemas de anlise:
Booch (G. Booch) OOSE (I. Jacobson) OMT (J. Rumbaugh)

1 proposta divulgada em 1997 (1999 - v1.1, 2000 - v1.3, 2001 v1.4, 2003 - v1.5, Abril 2004 - v2.0) Ferramentas:
Rational Rose Plug-in do eclipse (http://www.soyatec.com/euml2/) ArgoUML (http://argouml.tigris.org/)
UML 3/81

MEEC@IST

Anlise por UML (3)


UML v2 disponibiliza 13 diagramas, agrupados em:
Modelao estrutural (pacotes, classes, objectos, estrutura composicional, componentes, aplicao fsica). Modelao de comportamento (use case, actividade, mquina de estados, comunicao, sequncia de mensagens, temporizao, enquadramento das interaces).

Em POO so abordados apenas os diagramas centrais do UML, na sequncia:


conceito representao em UML implementao em Java

MEEC@IST

UML 4/81

Classes definio
Uma classe um padro de objectos, definida por:
Identificador Atributos (que definem o estado dum objecto) cujos valores podem ser:
tipos primitivos (inteiros,) referncias a outros objectos (identificando relaes entre objectos)

Mtodos (operaes que podem alterar o estado do objecto)

Os atributos e os mtodos so designados por membros da classe.


MEEC@IST UML 5/81

Classes exemplo (1)


Uma conta bancria contm sempre uma quantia e pertence a uma pessoa. A pessoa tem um nome, telefone e um nmero de BI. Na conta pode ser depositado ou levantado dinheiro. Sempre que entender, o dono pode consultar o saldo da conta.

Classes
Conta Pessoa

Atributos primitivos
Conta: quantia (float) Pessoa: nome (string), numTelf (long), numBI (long)
MEEC@IST UML 6/81

Classes exemplo (2)


Atributos referncia
Conta: dono (instncia de uma Pessoa)

Mtodos
Conta:
levantamento (parmetro: quantia a levantar) deposito (parmetro: quantia a depositar) saldo (retorna: quantia da conta)

Pessoa:
numTelf (retorna: nmero de telefone) numBI (retorna: nmero do Bilhete de Identidade)
MEEC@IST UML 7/81

Mtodos definio (1)


Um mtodo uma sequncia de aces, executada por um objecto, que pode alterar ou dar a conhecer o seu estado (valor dos atributos). Enquanto o valor dos atributos reside no objecto, o mtodo reside na classe. Assinatura dum mtodo:
identificador do mtodo; identificador e tipo dos parmetros; valor de retorno.

MEEC@IST

UML 8/81

Mtodos definio (2)


Os mtodos so catalogados em:
Construtor: executado na criao do objecto.
Tm usualmente o mesmo identificador da classe. Nunca devolvem tipos. No podem ser chamados. Normalmente usados para inicializar os atributos.

Destrutor: executado na destruio do objecto. Modificador: altera valor dos atributos. Selector: d a conhecer o valor dos atributos, sem os alterar.

MEEC@IST

UML 9/81

Classes UML
Representada por um rectngulo, dividido em 3 zonas:
Identificador da classe Atributos Mtodos
Conta # dono: Pessoa # quantia: float = 0 + deposito (valor: float) + levantamento (valor: float) + saldo (): float

As zonas dos atributos e mtodos so opcionais. Um mtodo e um atributo podem ter o mesmo identificador.
MEEC@IST UML 10/81

Objectos UML
Representado por um rectngulo, dividido em 2 zonas:
idObjecto:IdClasse (ou apenas :IdClasse) Inicializao dos atributos, um por linha, na forma Id=Init

mc: Conta dono = Rui Gustavo Crespo quantia = 1200

MEEC@IST

UML 11/81

Atributos UML
Sintaxe Visib Ident: Tipo [=Init][{Prop}]
Visib: visibilidade Ident: identificador do atributo Tipo: tipos de dados podem ser:
primitivos (boolean, int, char, float,) referncias a outros objectos

Conta # dono: Pessoa # quantia: float = 0 + deposito (valor: float) + levantamento (valor: float) + saldo (): float

Init: inicializao Prop: propriedade adicional


MEEC@IST

UML 12/81

Mtodos UML
Sintaxe Visib Ident([id:TipoParam [, id:TipoParam]*]) [:TipoRet] [{Prop}]
Visib: visibilidade Ident: identificador do mtodo id: identificador de parmetro TipoParam: tipo do parmetro TipoRet: tipo de retorno Prop: propriedade adicional

Conta # dono: Pessoa # quantia: float = 0 + deposito (valor: float) + levantamento (valor: float) + saldo (): float

MEEC@IST

UML 13/81

Visibilidade de atributos e mtodos UML


Visibilidade de atributos e mtodos representada por um caractere antes do identificador, que determina as permisses de acesso: public: acessvel fora da classe (+) private: acessvel apenas na classe (-) protected: acessvel na classe e suas subclasses (#) package: acessvel nas classes do mesmo pacote (~)

MEEC@IST

UML 14/81

Atributos e mtodos de classe definio


Atributos e mtodos podem ser de:
instncia: um para cada instncia da classe classe: um para todas as instncias da classe

MEEC@IST

UML 15/81

Atributos e mtodos de classe UML


Representados com sublinhado no diagrama de classe.
Conta - numProxConta: integer # dono: Pessoa # quantia: float = 0 # + + + incNumProxConta () deposito (valor: float) levantamento (valor: float) saldo (): float

MEEC@IST

UML 16/81

Classes genricas definio


Uma classe genrica uma classe que recebe como argumento outras classes. As classes genricas so ainda conhecidas como classes parametrizadas. As classes genricas so muito utilizadas na definio de coleces (conjuntos, listas, pilhas, rvores, etc).

MEEC@IST

UML 17/81

Classes genricas UML


Representada em UML com uma caixa a tracejado sobre o canto direito de uma representao UML de uma classe. A caixa a tracejado contm a lista com o nome dos argumentos a passar classe genrica.
Conjunto<T->Conta> Conjunto T

+ adiciona(elem: T) + remove(elem: T)

<<bind>><T->Conta> ConjuntoConta
UML 18/81

MEEC@IST

Relaes definio
Os objectos no vivem isolados e nos programas so estabelecidas relaes de cooperao. Uma relao uma conexo entre elementos. Existem diferentes tipos de relaes:
Associao: relaciona objectos entre si. Composio/Agregao: relao que denota o todo consttuido por partes. Herana: mecanismo de generalizao-especializao de classes. Realizao: uma classe implementa a funcionalidade definida numa interface.

MEEC@IST

UML 19/81

Associao UML (1)


Uma associao representa uma referncia entre objectos. Numa associao so definidos:
Identificador termo descritivo da associao. Papeis (role) representados pela associao em cada uma das classes relacionadas. Multiplicidade nmero de objectos associados em cada instncia da associao.

MEEC@IST

UML 20/81

Associao UML (2)


O identificador e os papeis so opcionais. As associaes podem ser de multiplicidade diversa:
exactamente um (1). zero ou um (0..1). zero ou mais (0..*). um ou mais (1..*).

so permitidas multiplicidades mais complexas, por exemplo, 0..1, 3..4, 6..*, para dizer qualquer nmero excepto 2 e 5.

MEEC@IST

UML 21/81

Associao UML (3)


A associao representada por uma linha entre as classes associadas. O identificador da associao aparece sobre a associao. Os papis de cada classe na associao aparecem nos respectivos extremos da associao. A multiplicidade da associao aparece igualmente nos extremos.
Pessoa 1..* empregado Emprego 1 Empresa empregador

MEEC@IST

UML 22/81

Associao UML (4)


As associaes podem ser dirigidas, e nesse caso so representadas por uma seta. A direco das associaes est relacionada com aspectos de implementao.
Pessoa reside Endereo

MEEC@IST

UML 23/81

Associao UML (5)


As associaes podem, elas prprias, transportar informao, sendo nesse caso a classe de associao ligada a tracejado associao. O identificador da associao passa a ser o nome da classe de associao.
Pessoa 1..* empregado Emprego # vencimento: float # dataEntrada: long
MEEC@IST UML 24/81

0..* empregador

Empresa

Associao UML (6)


Por omisso, a associao :
bi-direccional; de um para um; no possui informao extra.

MEEC@IST

UML 25/81

Associao UML (7)


Associaes ternrias representadas por um diamante no preenchido que liga as diferentes linhas das classes associadas.
Quantidade limitePreo 0..* Item 0..* produto 0..* vendedor Empresa

ItemCatlogoCompras # preo: float

MEEC@IST

UML 26/81

Agregao/Composio UML (1)


A agregao uma associao, que denota uma relao do todo ser formado por partes. A agregao dita como sendo uma relao de has-a. Representada como uma associao com um pequeno diamante no preenchido no extremo relativo ao todo.
todo
1 Empresa *

partes
Departamento

MEEC@IST

UML 27/81

Agregao/Composio UML (2)


Na composio, o desaparecimento do todo conduz ao desaparecimento das partes. Representada como uma associao com um pequeno diamante preenchido no extremo relativo ao todo.

todo
1 Empresa *

partes
Departamento

MEEC@IST

UML 28/81

Agregao/Composio UML (3)


De uma maneira geral tanto a agregao como a composio no tm identificador, pois o significado destas relaes est representada pelo prprio par todo-partes. A multiplicidade deve aparecer em ambos os extremos. Quando a multiplicidade omitida, considera-se que exactamente 1.

MEEC@IST

UML 29/81

Reflexividade nas relaes UML


As relaes de associao, agregao e composio podem ser reflexivas, com um elemento composto por vrios sub-elementos iguais.

1 Empresa

Departamento * 0..1

MEEC@IST

UML 30/81

Herana definio (1)


Princpio Aberto-Fechado
Fecho: ao desenhar uma classe, todos os atributos e mtodos devem estar desenvolvidos para que o programa possa ser usado sem alteraes. Abertura: classes devem estar abertas para extenso, por forma a incorporar alteraes com o mnimo impacto no sistema.

MEEC@IST

UML 31/81

Herana definio (2)


A herana um mecanismo em que a subclasse constitui uma especializao da superclasse. A superclasse pode ser vista como generalizao das subclasses. A herana dita como uma relao is-a. As subclasses herdam os atributos e mtodos das superclasses. Os mtodos herdados podem ser modificados. Novos atributos e mtodos podem ser adicionados s subclasses.

MEEC@IST

UML 32/81

Herana definio (3)


O polimorfismo ocorre quando h redefinio de mtodos da superclasse nas subclasses, com a mesma assinatura. Em OO o polimorfismo normalmente implementado atravs de ligao dinmica, i.e., o mtodo a ser executado determinado apenas em tempo de execuo (e no em tempo de compilao).

MEEC@IST

UML 33/81

Herana definio (4)


Na herana simples cada subclasse tem apenas uma superclasse (directa). Na herana mltipla uma subclasse pode ter mais do que uma superclasse (directa).
Problema do diamante
Animal

Mamfero

Ovparo

Monotrmato
MEEC@IST UML 34/81

Herana definio (5)


Vantagens da herana:
Maior legibilidade, pois as superclasses descrevem os aspectos comuns. Facilita alteraes, porque normalmente estas incidem apenas nos aspectos particulares. Promovem reutilizao do cdigo das superclasses.

Inconvenientes da herana:
Obriga deteco dos aspectos comuns.

MEEC@IST

UML 35/81

Herana exemplo (1)


Uma conta ordem no recebe juros. A conta a prazo recebe os juros ao fim do prazo, salvo seja movimentada antes do final do perodo de imobilizao reiniciando-se nessa data o perodo de imobilizao.

Subclasses
ContaOrdem (superclasse: Conta) ContaPrazo (superclasse: Conta)

MEEC@IST

UML 36/81

Herana exemplo (2)


Atributos adicionados
ContaOrdem: - ContaPrazo: juro (tipo float), inicio (tipo long), periodo (tipo int)

Mtodos alterados
ContaOrdem: - ContaPrazo: levantamento (parmetro: quantia a levantar)

Mtodos adicionados
ContaOrdem: - ContaPrazo: vencimentoJuro
MEEC@IST UML 37/81

Herana UML (1)


A herana simples representada por uma seta no preenchida das subclasses para a superclasse.

Animal Conta Mammefo Ovparo

ContaOrdem

ContaPrazo

MEEC@IST

UML 38/81

Herana UML (2)


A herana mltipla representada por uma seta no preenchida da subclasse para as superclasses.

Mammefo

Ovparo

Monotrmato

MEEC@IST

UML 39/81

Herana UML (3)


Classe no extensvel:
Classe sem superclasses: representada com a propriedade {root} escrita por baixo do identificador da classe. Classe sem subclasses: representada com a propriedade {leaf} escrita por baixo do identificador da classe.
Boto

BotoOK {leaf}

MEEC@IST

UML 40/81

Herana UML (4)


O UML permite ainda especificar que um determinado mtodo no pode ser redefinido em subclasses. Tais mtodos so representados com a propriedade {leaf} escrita depois da assinatura do mtodo.
Conta - numProxConta: integer # dono: Pessoa # quantia: float = 0 # + + + +
MEEC@IST

incNumProxConta () numConta () : integer {leaf} deposito (valor: float) levantamento (valor: float) saldo (): float
UML 41/81

Herana UML (5)


Visibilidade de atributos e mtodos representada por um caractere antes do identificador, que determina as permisses de acesso:
public: acessvel fora da classe (+) private: acessvel apenas na classe (-) protected: acessvel na classe e suas subclasses (#) package: acessvel nas classes do mesmo pacote (~)

MEEC@IST

UML 42/81

Mtodos e classes abstractas definio


Um mtodo abstracto um mtodo que no tem implementao ( apenas um prottipo). Uma classe abstracta uma classe que no pode ser instanciada.
Uma classe que tem pelo menos um mtodo abstracto (definido na prpria classe ou herdado de uma superclasse, directa ou indirecta, e no implementado), uma classe abstracta.

MEEC@IST

UML 43/81

Mtodos e classes abstractas UML


Os mtodos/classes abstractas so representados com a assinatura/identificador em itlico.
Conta

+ levantamento (valor: float)

ContaOrdem

ContaPrazo

+ levantamento (valor: float)


MEEC@IST

+ levantamento (valor: float)


UML 44/81

Excepes definio (1)


Frequentemente as aplicaes informticas so sujeitas a situaes anmalas:
Erros matemticos (por exemplo, divises por 0). Dados indicados em formato invlido (por exemplo, inteiro inserido com caracteres invlidos). Tentativa de acesso a uma referncia nula. Abertura para leitura de ficheiro inexistente.

MEEC@IST

UML 45/81

Excepes definio (2)


Uma excepo um sinal lanado ao ser identificada uma condio que impede a execuo normal do programa. As excepes podem ser tratadas de formas diversas:
Termina o programa com mensagem de aviso e impresso do estado (inaceitvel para sistemas crticos). Geridas em locais especficos, designados por manipuladores (handlers).

MEEC@IST

UML 46/81

Excepes UML (1)


As excepes so representadas como classes com o esteretipo <<exception>>.
<<exception>> Excepo - causa: string + atribuirCausa(causa: string) + causa(): string

<<exception>> ElemDuplicado

<<exception>> CapacidadeExcedida

<<exception>> ElemInexistente

MEEC@IST

UML 47/81

Excepes UML (2)


As classes de excepes modelam as excepes que um objecto pode lanar na execuo das suas operaes. <<exception>> As excepes lanadas so Excepo identificadas com uma seta a tracejado com o esteretipo <<send>>.
Conjunto T <<exception>> ElemDuplicado <<send>> + adiciona(elem: T) + remove(elem: T) <<send>> <<send>>
MEEC@IST UML 48/81

<<exception>> ElemInexistente

<<exception>> CapacidadeExcedida

Interfaces e Pacotes definio


As interfaces e os pacotes so mecanismos teis para desenvolvimento de sistemas de grande dimenso:
As interfaces separam a especificao da implementao. Os pacotes agrupam elementos distintos num nico grupo.

MEEC@IST

UML 49/81

Interfaces definio (1)


Uma interface um conjunto de prottipos de mtodos (sem implementaes) que especifica um servio bem definido:
As interfaces no podem conter atributos, mas podem conter constantes. A implementao duma interface realizada pela classe concreta. Na implementao ou concretizao:
Determina-se os atributos necessrios correcta implementao da interface. Descreve-se o cdigo dos mtodos das interface.

MEEC@IST

UML 50/81

Interfaces definio (2)


Uma interface pode herdar as definies de outra interface.
Interfaces podem usar polimorfismo. Se uma classe concretizar mais de uma interface, e vrias interfaces contiverem mtodos com a mesma assinatura, basta definir uma nica implementao.

Uma interface no pode ser instanciada.

MEEC@IST

UML 51/81

Interface vs classe abstracta


Semelhanas:
No podem ser instanciadas directamente.

Diferenas:
Uma classe abstracta pode ter atributos (constantes ou no), enquanto que uma interface apenas pode ter constantes. Uma classe abstracta pode conter mtodos implementados.

MEEC@IST

UML 52/81

Interfaces UML (1)


As interfaces so representadas como classes com o esteretipo <<interface>>. Uma interface, para alm das operaes oferecidas, s pode conter atributos constantes, representados com a propriedade {readonly}.
<<interface>> Verbose + + + + silent : terse : normal : verbose: integer integer integer integer = = = = 0 1 2 3 {readonly} {readonly} {readonly} {readonly}

+ setVerbosity (integer level) + getVerbosity (): integer


MEEC@IST UML 53/81

Interfaces UML (2)


As interfaces podem participar em relaes de herana (simples ou mltipla).

<<interface>> Stack

<<interface>> PriorityStack

MEEC@IST

UML 54/81

Interfaces UML (3)


A classe de concretizao est associada interface por uma relao de realizao, representada graficamente por uma seta a tracejado. Uma classe pode realizar uma ou mais interfaces.
<<interface>> Stack <<interface>> A <<interface>> B

StackList

StackTable

AB
UML 55/81

MEEC@IST

Pacotes definio (1)


Um pacote um mecanismo de agrupamento de informao:
Os pacotes podem conter outros pacotes, classes, interfaces e objectos. O pacote forma um espao de nomes (namespace), logo os seus membros tm de ter identificadores nicos (por exemplo, num pacote no pode haver duas classes com o mesmo nome). O identificador dum pacote pode consistir num nome simples ou num nome qualificado. O nome qualificado corresponde ao nome simples prefixado pelo nome do pacote onde este reside, se existir. usual usar-se :: para separar os nomes simples.
MEEC@IST UML 56/81

Pacotes definio (2)


A importao adiciona o contedo do pacote importado ao espao de nomes do pacote importador, de tal forma que passa a ser desnecessrio usar o seu nome qualificado. A importao no transitiva.
Se o pacote B importar o pacote A, e o pacote C importar o pacote B, no pacote C no so importados os elementos do pacote A. Caso o pacote C queira importar igualmente os elementos do pacote A, devem ser inseridas duas directivas de importao, uma para o pacote A e outra para o pacote B.

O conjunto de mtodos de um pacote referido por API (Application Programmer Interface).


MEEC@IST UML 57/81

Pacotes UML (1)


Os pacotes so representados por pastas, identificados com o respectivo nome.

Pacote1

Pacote1::Pacote2

MEEC@IST

UML 58/81

Pacotes UML (2)


A importao representada por uma seta tracejada com o esteretipo <<import>>.

Pacote1

<<import>> Pacote2

MEEC@IST

UML 59/81

Pacotes UML (3)


Os elementos dum pacote podem ter visibilidade diversa:
public: elementos acessveis ao pacote e aos pacotes que o importam (+) private: elementos inacessveis fora do pacote (-) protected: elementos acessveis no pacote e subpacotes (#) package: elementos acessveis apenas no pacote (~)

As partes pblicas dum pacote constituem a interface do pacote.


GUI GUI GUI + Janela + Menu # ManipuladorExcepo + Janela + Menu

# ManipuladorExcepo
UML 60/81

MEEC@IST

Pacotes UML (4)


Um pacote exporta apenas a sua parte pblica. As partes exportadas por um pacote so visveis apenas para os pacotes que explicitamente o importam.
Pacote1 + Classe1A + Classe1B - Classe1C <<import>>

Pacote2 + Classe2A - Classe2B <<import>>

Pacote3 + Classe3A + Classe3B # Classe3C


UML 61/81

MEEC@IST

Diagramas UML
UML v2 disponibiliza 13 diagramas, dos quais apenas os seguintes so abordados na cadeira de PO: Modelao estrutural:
Diagrama de classes: classes, interfaces e relaes. Diagrama de objectos: objectos e relaes. Diagrama de pacotes: pacotes. Diagrama de actividades: mostra a dinmica de sociedades de objectos, ou o controlo de fluxo de um mtodo.

Modelao de comportamento:

MEEC@IST

UML 62/81

Diagrama de classes definio


O diagrama de classes usado para modelar:
Colaborao entre classes. Esquemas de bases de dados:
Normalmente, os sistemas contm objectos persistentes. O diagrama de classes um superconjunto do diagrama ER (entity-relationship). Os diagramas ER focam apenas os dados, enquanto que os diagramas de classes permitem, para alm dos dados, modelar comportamento.

Tipicamente, o diagrama de classes contm classes, interfaces e relaes. Pode ainda conter pacotes e objectos. o diagrama mais comum na modelao de sistemas orientados a objectos.
MEEC@IST UML 63/81

Diagrama de classes UML (1)

Pessoa

1..* empregado Emprego # vencimento: float # dataEntrada: long

0..* empregador

Empresa 1 * Departamento 0..1

MEEC@IST

UML 64/81

Diagrama de classes UML (2)

Pessoa 1..* 1..*

Conta

ContaOrdem

ContaPrazo

MEEC@IST

UML 65/81

Diagrama de objectos definio


O diagrama de objectos contm um conjunto de objectos e as suas relaes (num determinado instante no tempo). Enquanto que com o diagrama de classes possvel especificar completamemente a semntica das abstraces e correspondentes relaes num sistema, tal impossvel no diagrama de objectos.
O diagrama de objectos apenas consegue capturar subconjuntos interessantes dos objectos do sistema.

MEEC@IST

UML 66/81

Diagrama de objectos UML


c:Empresa

Empresa 1 * Departamento 0..1 d3:Departamento nome = Vendas US d1:Departamento nome = Vendas d2:Departamento nome = I&D

MEEC@IST

UML 67/81

Diagrama de pacotes UML


O diagrama de pacotes mostra a decomposio do modelo em unidades de organizao (pacotes) e correspondentes dependncias (importaes).

Pacote1 + Classe1A + Classe1B - Classe1C <<import>>

Pacote2 + Classe2A - Classe2B <<import>>

Pacote3 + Classe3A + Classe3B # Classe3C


UML 68/81

MEEC@IST

Curiosidade: no sai no exame.

Diagrama de actividades definio


O diagrama de actividades usado para modelar:
A dinmica de sociedades de objectos. O controlo de fluxo de um mtodo.
Neste contexto o diagrama de actividades pode ser visto como o equivalente OO dos fluxogramas.

MEEC@IST

UML 69/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (1)


Um diagrama de actividades contm:
Estados:
Estado inicial Estado final

Actividades:
Actividade atmica Actividade composta Actividade protegida e manipuladores de excepes associados

Fluxos entre actividades:


Fluxo simples Fluxo alternativo Fluxo paralelo

Objectos e fluxo associado


MEEC@IST UML 70/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (2)


As actividades podem ser:
Atmicas, i.e., no divisveis
avaliao de expresses atribuio dum valor/expresso a um atributo chamada dum mtodo num objecto enviar um sinal a um objecto criar ou destruir objectos
a:=x+1;

Compostas, i.e., podem ser representadas por outros diagramas de actividades.

As actividades so representadas por um rectngulo com cantos arredondados. So permitidas actividades aninhadas.
MEEC@IST UML 71/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (3)


O fluxo simples representado por setas. O estado inicial representado por um crculo preenchido e o estado final um crculo preenchido dentro de um outro crculo.

Pedir carto crdito

Receber cdigo

Levantar carto crdito

MEEC@IST

UML 72/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (4)


O fluxo alternativo representado por um diamante no preenchido de onde parte uma ramificao:
A ramificao pode resultar em 2 ou mais fluxos simples. Cada fluxo tem uma guarda (expresso Booleana). As guardas devem ser mutuamente disjuntas (prevenir ambiguidade) e devem cobrir todas as possibilidades (prevenir congelamento da transio). Pode usar-se o else para representar o fluxo a seguir caso nenhuma das outras guardas seja verdadeira.

MEEC@IST

UML 73/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (5)

Processar pedido carto crdito


[reprovado] [aprovado]

Notificar cliente

Enviar cdigo

MEEC@IST

UML 74/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (6)


O fluxo paralelo representado com uma barra de sincronizao, representada por uma barra negra, para especificar o incio (fork) e fim (join) do paralelismo. Num diagrama de actividades o nmero de fluxos iniciados numa barra de sincronizao deve igualar o nmero de fluxos que finaliza a mesma.

MEEC@IST

UML 75/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (7)

Pagar propinas

Frequentar aulas

Submeter provas

MEEC@IST

UML 76/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (8)


O lanamento de excepes representado por um raio partindo da actividade protegida em direco ao manipulador de excepo. Pode haver mais que uma excepo, cada uma processada pelo seu manipulador.
Actividade protegida

Manipulador excepo

MEEC@IST

UML 77/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (9)


Abrir URL

Abrir visualizador

ExcepoURLInvlido

Pedir novo URL

Copiar contedo do URL para visualizador Informar impossibilidade copiar contedo

Fechar URL e visualizador

ExcepoES

MEEC@IST

UML 78/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (10)


O fluxo de controlo associado a um diagrama de actividades pode envolver objectos. Os objectos so representados no diagrama de actividades, ligados por uma seta a tracejado a partir da actividade que os criou, modificou, ou destruio.
Tal representao denominada fluxo de objectos pois representa a participao dum objecto no fluxo de actividades. Para alm da representao do seu fluxo possvel mostrar como o seu estado varia no percurso do mesmo. O estado representado com o auxlio de parntesis rectos por baixo do identificador do objecto.

usual organizar um diagrama de actividades em faixas que separam as diferentes actividades pela respectiva participao nas diferentes classes do sistema.
MEEC@IST UML 79/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (11)


Cliente Vendedor Conta Armazm Devolver produto Receber produto

Enviar produto

Receber produto

:Produto [devolvido] Creditar conta

Armazenar produto

:Produto [disponvel]
MEEC@IST UML 80/81

Curiosidade: no sai no exame.

Diagrama de actividades UML (12)


A modelao de um mtodo num diagrama de actividades particularmente interessante quando o comportamento do mtodo complexo e difcil de compreender apenas com recurso ao cdigo que o implementa.

[saldo >= valor]

saldo = saldo - valor


else

levantamento(valor: float) { if (saldo >= valor) saldo = saldo - valor; }


MEEC@IST UML 81/81