Usando UML
Usando UML
Usando UML
Orientados a Objetos
quites@computer.org
http://www.inf.ufrgs.br/~quites
Usando UML para Especificação de Sistemas Orientados a Objetos
Nenhuma parte desta apostila pode ser utilizada ou reproduzida, em qualquer meio ou forma,
seja mecânico ou eletrônico, fotocópia, gravação, ou outros, sem autorização, prévia,
expressa e específica do Autor.
SUMÁRIO
1 INTRODUÇÃO ................................................................................................................. 4
1 INTRODUÇÃO
O presente texto tem como objetivo apresentar uma visão geral das técnicas de
modelagem de sistemas orientados a objetos chamada UML – Unified Modelling Language.
Atualmente, UML consiste na principal linguagem para descrição de sistemas O.O., tendo
sido definida como padrão do OMG1 em 1997.
Apesar deste não se propor a substituir qualquer um dos livros clássicos escritos
nesta área, o objetivo deste texto é o de complementar as atividades realizadas em sala de
aula, proporcionado uma visão geral dos conceitos de modelagem com UML. Além disso,
somente os modelos UML mais importantes são apresentados, deixando de lado aqueles que
possuem sua aplicação condicionada a sistemas com características específicas.
1
OMG = Object Management Group. Organismo internacional para definição de padrões da orientação a
objetos.
Caso de uso 1
Ator
como eventos externos iniciais são respondidos no caso. Um cenário é uma narrativa de uma
parte do comportamento global do sistema e uma coleção completa de cenários é usada para
especificar completamente um sistema. Um caso de uso está para um cenário assim como uma
classe está para um objeto. Ou seja, um caso de uso representa uma declaração de um aspecto
de comportamento que é caracterizado por um lote de cenários concretos.
Um ator é uma entidade externa ao sistema que de alguma forma participa de um
caso de uso. Um ator estimula o sistema com eventos externos e tipicamente recebe algo do
sistema. Um ator pode ser um ser humano, máquinas, dispositivos, ou outros sistemas. Atores
típicos incluem, por exemplo, clientes, usuários, gerentes, computadores e impressoras.
Fazer ligação
Telefone Celular
<<includes>>
Identifica
Fazer ligação
destinatário
• Extensão. É usada para descrever casos de uso que são ativados opcionalmente
em um sistema. O relacionamento de extensão é representado graficamente
através de uma seta pontilhada com o rótulo <<extends>> que tem origem no
caso de uso opcional e atinge o caso de uso obrigatório associado. A Figura 4
mostra um exemplo do uso de Extensão na modelagem de casos de uso.
Telefone Celular
Receber
<<extends>>
ligação Receber
ligação
adicional
Usuário Opcional
Sub tipos
Consulta
de saldo Abastecer
dinheiro
Solicitação
de extrato Recolher
envelopes de
depósitos
Saque
Cliente Funcionário
Fazer
Receber ligação em
ligação conferência
<<extends>>
Uso Receber
programado ligação
adicional
Usuário
Associação Unária: Relacionamento entre uma classe e ela mesma. Também conhecida
como associação recursiva, cujo relacionamento pode conectar dois diferentes objetos de uma
mesma classe. A Figura 10 mostra um exemplo de associação unária:
Funcionário 1
* supervisiona
Multiplicidade da associação
Pessoa
Livro
Nome: Str
autoria
Endereço: {
Título: Str 0..* 1..* Logradouro: Str,
ISBN: Int Bairro: Str,
Editora: Str Cidade: Str. }
Telefones: Array of Int
Rótulo da associação
Em geral, toda associação deve ser rotulada, tal como na associação de ‘autoria’ na
Figura 11. Alternativamente, pode ser expresso o papel de uma classe na associação, tal como
Prof. Rodrigo Quites Reis - Fevereiro/2003
Usando UML para Especificação de Sistemas Orientados a Objetos
Conta Bancária
Pessoa
número
Nome: Str
saldo
* 1 Endereço: {
dataAbertura
Logradouro: Str,
titular Bairro: Str,
criar()
Cidade: Str. }
bloquear()
Telefones: Array of Int
desbloquear()
creditar()
debitar()
Papel da classe na associação
João Financeiro
Funcionário Departamento
Multiplicidade Significado
0..1 Zero ou um
1 Somente 1
0..* Maior ou igual a zero
* Maior ou igual a zero
1..* Maior ou igual a 1
1..15 (m..n) De 1 a 15 (m a n), inclusive
conceito
semestre
Uma classe associativa pode ser transformada em uma classe regular conforme
mostra a Figura 19 a seguir. A parte superior da figura mostra o modelo duas classes regulares
e uma associativa, enquanto que a parte inferior apresenta um modelo análogo que é
composto por três classes regulares.
Funcionário Departamento
1 trabalha 4 0..1
salário
dataContratação
3.5 Qualificador
Qualificadores ou Associações Qualificadas são usadas com associações 1:N ou N:N.
O qualificador distingue (divide) o conjunto de objetos do outro lado da associação. A figura
a seguir ilustra um exemplo de qualificador. O modelo informa que um prédio possui vários
números de andar. Um número de andar de um prédio está associado a exatamente um andar.
Como conseqüência um andar é identificado pelo seu número e pelo prédio. Este conceito é
análogo ao conceito de entidade fraca ou relacionamento identificador em modelos entidade-
relacionamento.
Prof. Rodrigo Quites Reis - Fevereiro/2003
Usando UML para Especificação de Sistemas Orientados a Objetos
3.6 Agregação
É um caso especial de associação usado para representar a relação todo/parte entre
classes. Quando o todo é criado, as partes também o são (e quando é eliminado também). As
partes não têm existência própria, somente associadas ao todo.
Todo Parte
Agregação Regular
Todo Parte
Agregação de composição
0..* 0..*
Documento Parágrafo Sentença
Figura 26. Agregação de várias classes com notação compacta [HEU 99].
composição
3.7 Navegabilidade
Uma instância de uma classe pode navegar a instâncias de outra classe e vice-versa.
Navegabilidade é percebida freqüentemente por objetos que mantêm referências de algum
tipo entre objetos associados. Uma seta é ligada entre duas classes para indicar o caminho de
navegação entre elas. Em termos de implementação isso representaria que o objeto de uma
classe conteria um apontador para o objeto da outra classe.
A figura a seguir mostra um exemplo onde as classes Pedido e Cliente possuem uma
associação onde o sentido da navegação ocorre de Pedido para Cliente. Isto indica que um
pedido tem a responsabilidade de informar a qual cliente pertence, mas um cliente em
particular não precisa indicar quais pedidos possui.
fonte alvo
Pedido * 1 Cliente
navegabilidade
3.8 Generalização/Especialização
Generalização/Especialização é um conceito também conhecido pelo nome de
Herança. Trata-se de um relacionamento de classificação entre um elemento mais geral e
outro mais específico. O elemento mais específico é completamente consistente com o mais
geral somando-se informação adicional especializada.
PessoaFísica PessoaJurídica
CPF CGC
RG RazãoSocial
Sexo
DataNascimento
3.9 Restrições
Uma restrição é um relacionamento semântico entre elementos de modelo que
especifica condições e proposições que devem ser mantidas como verdadeiras.
Certos tipos de restrições são predefinidas em UML, mas há a possibilidade de
definição de restrições por parte do usuário. Por exemplo, a Figura 30 mostra uma associação
onde a restrição é definida para limitar a possibilidade de associação entre Pessoa e Cidadãos
idosos.
Cidadãos {pessoa.idade>60}
Idosos Pessoa
0 1 0 *
Um exemplo de restrição bastante utilizada é a restrição {ou}. Ela indica que em uma
associação, uma instância da classe só pode participar uma vez no máximo de uma das
associações possíveis (cortadas pela linha tracejada). A figura a seguir ilustra um exemplo
Prof. Rodrigo Quites Reis - Fevereiro/2003
Usando UML para Especificação de Sistemas Orientados a Objetos
Organização
0..1
4 DIAGRAMAS DE INTERAÇÃO
REFERÊNCIAS BIBLIOGRÁFICAS
[BEZ02] BEZERRA, E. Princípios de Análise e Projeto de Sistemas com UML. São Paulo:
Campus, 2002.
[BOO00] BOOCH, G.; RUMBAUGH, J.; JACOBSON, I. UML: Guia do Usuário. São
Paulo: Campus, 2000.
[ERI98] ERIKSSON, H.; PENKER, M. UML Toolkit. Wiley Computer Publishing, 1998.
[FUR98] FURLAN, J.D. Modelagem de Objetos através da UML. São Paulo: Makron
Books, 1998.
[JAC92] JACOBSON, I. et. al. Object-Oriented Software Engineering: A Use Case Driven
Approach. Addison-Wesley Publishing Co., 1992.
[JAC99] JACOBSON, I.; BOOCH, G.; RUMBAUGH, J. The Unified Process. In: IEEE
Software. p. 96-102. May/June 1999.
[RUM94] RUMBAUGH, J. et. al. Modelagem e Projetos Baseados em Objetos. São Paulo:
Campus, 1994.