A UML é uma linguagem padrão para modelagem de sistemas orientados a objetos. Ela unificou os principais métodos de análise e projeto da época como OMT, Booch e Jacobson. A UML permite visualizar, especificar, construir e documentar sistemas através de diagramas como o diagrama de classes que mostra as classes, atributos, operações e relacionamentos entre classes.
2. O que é a UML?
IInnttrroodduuççããoo aa UUMMLL
A Unified Modeling Language (UML) é a sucessora de uma onda de métodos para análise e projeto orientados a
objetos que surgiram no fim da década de 80. Ela unificou os métodos proposto por Booch, Rumbaugh (OMT) e
Jacobson. Atualmente a UML é um padrão mantido pela OMG, o que dá a ela uma um status de ser considerada a
linguagem padrão para modelagem de sistemas. A UML é a linguagem padrão para visualizar, especificar, construir
e documentar artefatos de um sistema de software e combina diversos aspectos como:
• Modelagem de Dados
• Modelagem de Negócios
• Modelagem de Objetos
• Modelagem de Componentes
É importante enfatizar que UML é uma linguagem de modelagem, ou seja, é uma forma de especificar um sistema de
maneira visual. Ela é a linguagem padrão de modelagem adotada pelo Rational Unified Process (RUP) e seu grande
sucesso se deu em conjunto com a popularização do RUP. Por isso, é muito comum que as pessoas associem UML
ao RUP. É importante distinguir muito bem, visto que as duas representam conceitos complementamente
diferentes. O RUP é um processo, ou seja, um conjunto de atividades, com seus respectivos artefatos e pápeis,
para se desenvolver produtos de software. Já a UML é uma linguagem para se modelar o comportamento e
estrutura de um sistema.
14/12/14 http://www.alvarofpinheiro.eti.br 2
3. Como surgiu a UML?
IInnttrroodduuççããoo aa UUMMLL
Durante os anos 80, várias linguagens de programação se popularizaram, entre elas uma que se destacou foi a Smalltalk, mas outras
linguagens também participaram deste movimento, tais como, Objective C, C++ e Eiffel. Seguindo esta onda, os métodos orientados a
objetos começaram a ser publicados. Em 1988 Shlaer et al [Shlaer-88] ; em 1990, Wirfs-Brock [Wirfs-Brock-90]; em 1991, Coad e
Yourdon [Coad-91]; ainda em 1991, Booch [Booch-91] ; e Rumbaugh [Rumbaugh-91].
A primeira tentativa de sucesso de se criar uma linguagem unificada aconteceu quando Rumbaugh se juntou a Booch na Rational Software
Corporation em 1994. Eles começaram a combinar conceitos de OMT com os métodos de Booch, produzindo um método unificadi.
Neste mesmo momento Jacobson também se juntou a Rational e começou a trabalhar com Booch e Rumbaugh. O trabalho conjunto
resultou no que foi chamado de Unified Modeling Language (UML). Este foi um momento único, quando os autores dos três principais
métodos trabalharam juntos para unificar suas propostas. Em 1996, a Object Management Group (OMG) fez uma chamada por
propostas par um padrão para modelagem orientada a objetos. Ao autores da UML começaram a trabalhar com metodologistas e
desenvolvedores de outras empresas para produzir uma proposta atrativa para os membros da OMG, assim como para as empresas de
ferramentas, metodologistas e desenvolvedores em geral. No final de 1997, se tornou um padrão da OMG e até hoje vem sendo
mantida e evoluída, sendo hoje bem aceita por toda a comunidade de desenvolvimento de software.
[Shlaer-88] Sally Shlaer, Stephen J. Mellor. Object-Oriented Systems Analysis: Modeling the World in
Data. Yourdon Press, Englewood Cliffs, N.J., 1988
[Wirfs-Brock-90] Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener. Designing Object-
Oriented Software. Prentice Hall, Englewood Cliffs, N.J., 1990.
[Coad-91] Peter Coad, Edward Yourdon. Object-Oriented Analysis, 2nd ed. Yourdon Press,
Englewood Cliffs, N.J., 1991.
[Booch-91] Grady Booch. Object-Oriented Analysis and Design with Applications, 1st ed. Benjamin/
Cummings, Redwood City, Calif., 1991.
[Rumbaugh-91] James Rumbaugh, Michael Blaha, William Premerlani, Frederick Eddy, William
Lorensen. Object-Oriented Modeling and Design. Prentice Hall, Englewood Cliffs, N.J., 1991.
14/12/14 http://www.alvarofpinheiro.eti.br 3
4. IInnttrroodduuççããoo aa UUMMLL
Como foi a evolução da UML?
Nov ‘97 UML aprovada pelo OMG
14/12/14 http://www.alvarofpinheiro.eti.br 4
5. IInnttrroodduuççããoo aa UUMMLL
Quais os objetivos da UML?
UML tem como propósito ser uma linguagem para:
Visualizar sistemas orientados a objetos
Especificar sistemas orientados a objetos
Construir sistemas orientados a objetos
Documentar sistemas orientados a objetos
14/12/14 http://www.alvarofpinheiro.eti.br 5
6. O que é OO?
IInnttrroodduuççããoo aa UUMMLL
O paradigma OO utiliza uma perspectiva mais humana de observação da realidade, incluindo
objetos, classificação e compreensão hierárquica. Entre os principais benefícios podemos
citar:
• Único paradigma (Tudo é baseado em classes)
• Facilita o reuso de código e arquitetura
• Reflete o mundo real
• Estabilidade
• “Pequenas mudanças nos requisitos exigem poucas mudanças no código”
“Orientação à objetos é uma estratégia para organizar
sistemas como coleções de objetos que interagem entre
si e combinam dados e comportamento”
14/12/14 http://www.alvarofpinheiro.eti.br 6
7. IInnttrroodduuççããoo aa UUMMLL
Quais os princípios básicos da OO?
Orientação à Objetos
Abstração Modularidade Encapsulamento Hierarquia
14/12/14 http://www.alvarofpinheiro.eti.br 7
8. O que é um Objeto?
IInnttrroodduuççããoo aa UUMMLL
“Um objeto é um conceito, abstração ou coisa com
limites e significado para uma aplicação”
Um objeto deve ter:
Estado
Comportamento
Identidade única
14/12/14 http://www.alvarofpinheiro.eti.br 8
9. IInnttrroodduuççããoo aa UUMMLL
O que é um Sistema OO?
Um sistema orientado a objetos pode ser visto
como um conjunto de objetos correlacionados,
com interfaces e comportamento bem definidos,
que colaboram-se entre si pra atender ao objetivo
do sistema.
14/12/14 http://www.alvarofpinheiro.eti.br 9
10. IInnttrroodduuççããoo aa UUMMLL
Quais os conceitos básicos da OO?
Objeto
Classe
Atributo
Operação
Interface (Polimorfismo)
Herança
Pacote
Relacionamentos
14/12/14 http://www.alvarofpinheiro.eti.br 10
12. IInnttrroodduuççããoo aa UUMMLL
O que é diagrama de classe?
Um diagrama de classes mostra um conjunto de classes, interfaces e relacionamentos entre
estes. Este é o diagrama mais comum encontrado na modelagem de sistemas orientados
a objetos e dá uma visão estática da estrutura do sistema.
14/12/14 http://www.alvarofpinheiro.eti.br 12
13. O que são classes?
IInnttrroodduuççããoo aa UUMMLL
Classes especificam a estrutura e o comportamento
dos objetos
Classes são como "moldes" para a criação de objetos
Classes são compostas por:
Nome
Atributos (Estrutura)
Métodos (Comportamento)
14/12/14 http://www.alvarofpinheiro.eti.br 13
14. Um exemplo de classe
Classe
IInnttrroodduuççããoo aa UUMMLL
Propriedades Curso
Nome
Localização
Duração
Créditos
Comportamento
Adicionar um aluno
Remover um aluno
Atribuir professor
Atribuir sala
14/12/14 http://www.alvarofpinheiro.eti.br 14
15. IInnttrroodduuççããoo aa UUMMLL
Como se representa uma classe?
Como se pode perceber a representação em UML
abstrai elementos sintáticos específicos de uma
linguagem de programação. Um classe em UML
pode ser mapeada para classes em qualquer
linguagem de programação orientada a objetos.
Professor
14/12/14 http://www.alvarofpinheiro.eti.br 15
16. O que são atributos?
IInnttrroodduuççããoo aa UUMMLL
Um atributo é uma propriedade de uma classe, identificada por um nome, que descreve as
informações ou propriedades (valor, tipo, visibilidade, etc.) que as instancias desta classe
(objetos) devem ter. Uma classe pode ter um número qualquer de atributos (inclusive
zero).
•Nome = Análise I
•Localização =
MAC
•Duração = 30h
•Créditos = 2
•Nome = Análise II
•Localização =
MAC
•Duração = 15h
•Créditos = 4
•Nome = SI
•Localização =
MAC
•Duração = 30h
•Créditos = 2
Curso
•Nome
•Localização
•Duração
•Créditos
•Adicionar um aluno
•Remover um aluno
•Atribuir professor
•Atribuir sala
14/12/14 http://www.alvarofpinheiro.eti.br 16
17. Atributos na UML são?
Professor
titulo
nome
IInnttrroodduuççããoo aa UUMMLL
Classe
Pessoa
idade: int
nome: String
Classe
Nome do Atributo
Tipo do Atributo
Nome do Atributo
14/12/14 http://www.alvarofpinheiro.eti.br 17
19. O que são operações?
IInnttrroodduuççããoo aa UUMMLL
Uma operação é a implementação de um serviço que pode ser solicitado a qualquer objeto
da classe para afetar o seu comportamento. Em outras palavras, operações são ações
que podem ser executadas sobre instâncias das classes. Uma classe pode ter qualquer
número de operações (inclusive zero).
• temperatura = 23
SensorDeTemperatura • alarme = 50
•temperatura
•alarme
•reiniciar
•definirAlarme
•lerTemperatura
• temperatura = 50
• alarme = 100
• temperatura = 20
• alarme = 5
14/12/14 http://www.alvarofpinheiro.eti.br 19
20. IInnttrroodduuççããoo aa UUMMLL
Exemplo de operação em UML
SensorTemperatura
reiniciar()
definirAlarme()
lerTemperatura()
Especificação
das operações
SensorTemperatura
reiniciar()
definirAlarme(temper: int)
lerTemperatura(): int
14/12/14 http://www.alvarofpinheiro.eti.br 20
22. IInnttrroodduuççããoo aa UUMMLL
Resumindo, um classe é formada por?
Nome da Classe DVD
Atributos
Operações
Hora
Status estrutura
comportamento
Voltar()
Pausar()
Adiantar()
Parar()
Tocar()
14/12/14 http://www.alvarofpinheiro.eti.br 22
23. O que é polimorfismo?
IInnttrroodduuççããoo aa UUMMLL
O polimorfismo é a habilidade de esconder diferentes implementações através de uma única
interface. Interfaces formalizam polimorfismo, aumentam o nível de reusabilidade,
viabilizam o uso de componentes e reduzem o esforço de evolução da aplicação.
Uma interface pode ser vista como uma coleção de operações que são usadas para
especificar os serviços de uma classe.
Fabricante A Fabricante B Fabricante C
14/12/14 http://www.alvarofpinheiro.eti.br 23
24. IInnttrroodduuççããoo aa UUMMLL
Segue um exemplo de Interface
ppaauussaarr(())
ppaarraarr(())
vvoollttaarr(())
aavvaannccaarr(())
ttooccaarr(())
aalltteerraarrHHoorraa(())
ccaarrrreeggaarrDDiissccoo(())
14/12/14 http://www.alvarofpinheiro.eti.br 24
25. Mais sobre Interface
IInnttrroodduuççããoo aa UUMMLL
Interfaces definem um tipo especificando apenas a
assinatura de seus métodos
Interfaces não possuem atributos e seus métodos
não têm corpo
Classes implementam interfaces
provêem implementação para os métodos especificados
em uma interface
14/12/14 http://www.alvarofpinheiro.eti.br 25
26. IInnttrroodduuççããoo aa UUMMLL
Segue a forma icônica da Interface na UML
Forma
Relacionamentos
de realização
Tubo
Piramide
Cubo
14/12/14 http://www.alvarofpinheiro.eti.br 26
27. IInnttrroodduuççããoo aa UUMMLL
Segue forma canônica de Interface na UML
Cubo
Tubo
Piramide
<<interface>>
Forma
Desenhar
Mover
Rotacionar
Relacionamentos de realização
14/12/14 http://www.alvarofpinheiro.eti.br 27
30. IInnttrroodduuççããoo aa UUMMLL
O que são classes abstratas?
Classes abstratas são úteis para representar a parte da semântica que é comum a mais de
uma classe. Evitando assim a duplicação de informações e facilitando o reuso e
extensibilidade do sitema. Classe abstrata é aquela que não possui instância e, em geral,
possui pelo menos um método abstrato (Métodos abstratos não têm corpo, isso obriga
as subclasses a fornecer uma implementação para eles).
Poligono
Quadrilatero
São tipos de polígono
Triangulo
•Mover(x,y)
•Area()
•numeroLados()
Pentagono
14/12/14 http://www.alvarofpinheiro.eti.br 30
32. IInnttrroodduuççããoo aa UUMMLL
Que tipos de classes existem?
Interfaces
• Assinaturas dos métodos
Classes
• Atributos
• Métodos Classes Abstratas
• Atributos
• Métodos
• Assinatura de Métodos
14/12/14 http://www.alvarofpinheiro.eti.br 32
33. IInnttrroodduuççããoo aa UUMMLL
Porquê então, classes abstratas e Interfaces?
Interfaces permitem a herança de tipo
Classes comuns e abstratas permitem a herança de
código (comportamento e estrutura) e tipo
Classes descrevem propriedades fundamentais de
um objeto
Interfaces descrevem papéis desempenhados por
um objeto em determinadas situações
Interfaces são úteis para implementar herança
múltipla
14/12/14 http://www.alvarofpinheiro.eti.br 33
34. IInnttrroodduuççããoo aa UUMMLL
Para que serve um Pacote em UML?
Um pacote é um mecanismo de propósito geral para organizar elementos em
grupos. Eles são conceitos úteis, pois:
• Facilitam entendimento do sistema
• Favorecem modularidade e reuso em larga escala
• São essenciais para estruturar sistemas complexos
Os pacotes podem ser usados para organizar outros tipos de elementos de UML,
tais como Casos de Uso, Componentes, etc.
nome do
pacote
14/12/14 http://www.alvarofpinheiro.eti.br 34
35. IInnttrroodduuççããoo aa UUMMLL
Qual o conceito de Coesão e Acoplamento?
Dois conceitos importantes de se entender na hora de se
decidir que critério será usado para organizar as classes em
pacotes são: Coesão e Acoplamento. Acoplamento é a
medida de quão conectadas dois elementos são, ou seja,
diz-se que um elemento está acoplada a um segundo se
este tiver algum tipo de relacionamento ou dependência
com o segunda. Coesão é a medida de quão auto contido
um elemento é, ou seja, o quão independente de outros
elementos ele é.
Para que um sistema seja bem projetado e,
consequentemente, tenha uma boa manutenabilidade ele
deve ter baixo acoplamento e alta coesão.
14/12/14 http://www.alvarofpinheiro.eti.br 35
36. IInnttrroodduuççããoo aa UUMMLL
Quais são os tipos de relacionamentos no Diagrama de Classe?
Associação
Agregação
Composição
Dependência
Generalização
Realização
14/12/14 http://www.alvarofpinheiro.eti.br 36
37. O que é Associação?
IInnttrroodduuççããoo aa UUMMLL
Uma associação é um relacionamento estrutural que especifica que objetos de tipo são conectados a outro
tipo. Em geral, as associações conectam duas classes e são chamadas associações binárias. Embora não seja
muito comum é possível ter associações que conectam mais de duas classes. Estas são chamadas de
associações n-nárias. Uma associação possui os seguintes elementos:
•Nome – Deve descrever a natureza da associação.
•Pápeis – Quando uma classe participa de uma associação, ela tem um papel específico neste
relacionamento.
•Multiplicidade – Uma associação representa um relacionamento estrutural entre duas entidades. Na
modelagem de sistemas é importante definir-se quantos objetos estarão conectados a uma instância
de uma associação.
•Navegabilidade – Define em que direção é possível navegar para recuperar a instância do outro
objeto associado.
Nome da associação
Professor Universidade
Trabalha para
Associação
Professor
Universidade
Classe
Papéis
Empregado Empregador
14/12/14 http://www.alvarofpinheiro.eti.br 37
38. O que é Multiplicidade?
IInnttrroodduuççããoo aa UUMMLL
Multiplicidade define quantos objetos participam do relacionamento
O número de instâncias de uma classe relacionada a uma instância de outra classe
Especificado em cada uma das pontas da associação
Não especificada Nada (Somente a ligação entre as classes)
Exatamente um 1
Zero ou mais 0..*
Um ou mais 1..*
Zero ou um 0..1
Intervalo determinado 0..4
Valores múltiplos 2,4..6
Multiplicidade
Estudante Disciplina
1 1..*
14/12/14 http://www.alvarofpinheiro.eti.br 38
39. O que é Navegação?
IInnttrroodduuççããoo aa UUMMLL
Especifica a direção da associação
Associações são bidirecionais por default
Estudante Disciplina
1 1..*
Navegação
14/12/14 http://www.alvarofpinheiro.eti.br 39
40. O que é Agregação?
IInnttrroodduuççããoo aa UUMMLL
Uma associação normal entre duas classes representa um relacionamento estrutural entre
pares, que significa que ambas classes estão conceitualmente no mesmo nível, nehuma
delas é mais importante que a outra. Algumas vezes, é necessário modelar
relacionamentos do tipo “todo-parte”, em que uma classe representa um grande
conceito, que consiste de pequenas partes. Este tipo de relacionamento é chamado de
agregação, que representa “tem-um”, que significa que um objeto “todo” tem objetos
“parte”. Agregação é um tipo especial de associação, que possui a característica de
“todo-parte”.
Todo Agregação Parte
Estudante Disciplina
14/12/14 http://www.alvarofpinheiro.eti.br 40
41. IInnttrroodduuççããoo aa UUMMLL
O que é uma Composição?
Composição é uma variação de uma agregação, que adiciona uma semântica a mais. Na
composição o relacionamento “todo parte” possui uma maior força de posse e há uma
coincidência entre o ciclo de vida do todo e da parte. As partes devem ser criadas após o
todo, e uma vez criadas, elas vivem e morrem com o todo. As partes podem ser
explicitamente removidas antes da morte do todo, mas elas não podem sobreviver após
a morte do todo. Além disto, um objeto parte não pode ser compartilhado entre mais
de um todo. Em uma composição o todo é responsável pela disposição das partes, o que
significa dizer que ele deve gerenciar a criação e destruição das partes.
Todo Composição Parte
Window Painel
14/12/14 http://www.alvarofpinheiro.eti.br 41
42. IInnttrroodduuççããoo aa UUMMLL
O que é uma classe de associação?
Em uma associação entre duas classes é possível ter propriedades. No exemplo do
relacionamento empregado/empregador entre as classes Empresa e Pessoa tem
propriedades que se aplicam exatamente ao relacionamento, como descrição
do emprego, salário, data de admissão, estas propriedades representam o
conceito de Emprego.
14/12/14 http://www.alvarofpinheiro.eti.br 42
43. IInnttrroodduuççããoo aa UUMMLL
O que são Associações Qualificadas?
Uma associação qualificada em UML é equivalente à conceitos de programação tais como
arrays associativos, Maps e Dicionários. A figura acima
Mostra uma forma de representar a associação entre Pedido e Linha de Pedido através do
uso de qualificador. No exemplo acima, o qualificador diz que em uma conexão com um
pedido, pode haver uma linha de pedido para cada instância de produto. A multiplicidade
0..1, indica que há no máximo uma linha de pedido associada a um pedido, dado um
produto como argumento.
ccllaassss OOrrddeerr {{
pprriivvaattee MMaapp __lliinneeIItteemmss;;
ppuubblliicc OOrrddeerrLLiinnee ggeettLLiinneeIItteemm ((PPrroodduucctt aaPPrroodduucctt)){{}}
ppuubblliicc vvooiidd aaddddLLiinneeIItteemm ((NNuummbbeerr aammoouunntt,, PPrroodduucctt ffoorrPPrroodduucctt)){{}}
}}
14/12/14 http://www.alvarofpinheiro.eti.br 43
44. IInnttrroodduuççããoo aa UUMMLL
O que é uma Dependência?
Uma dependência é um relacionamento de “uso” que tenta apontar que mudanças em uma
classes pode afetar outra classe que a usa, mas não necessariamente o inverso. Uma
dependência entre classes pode ser geradas pelos seguintes tipos de uso:
• Parâmetros de entrada de métodos
• Tipos de retorno de métodos
• Utilização dentro do código de métodos
• Exceções lançadas
14/12/14 http://www.alvarofpinheiro.eti.br 44
45. IInnttrroodduuççããoo aa UUMMLL
Exemplo de Dependência em CSharp e Java
ccllaassss LLoogg {{
......
vvooiidd ggrraavvaarr(()){{
AArrqquuiivvoo aa ==......;;
aa..eessccrreevveerr((......));;
}}
}}
ccllaassss AArrqquuiivvoo {{
......
vvooiidd ssaallvvaarr((SSttrreeaamm ddaaddooss)){{
......
}}
}}
OBS: Pode existir relacionamento de
dependência entre vários elementos de
UML
Classe
Pacote
Cliente Fornecedor
PacoteFornecedor
PacoteCliente
14/12/14 http://www.alvarofpinheiro.eti.br 45
46. IInnttrroodduuççããoo aa UUMMLL
O que é Generalização e Especialização?
É um relacionamento entre um elemento genérico (chamado superclasse ou pai) e um mais
específico (chamado subclasse ou filho).
Generalização também é chamado de Herança ou relacionamento “é-um-tipo-de”. Um filho
pode ser usado em qualquer lugar onde seja requerido o pai. Além disso, o filho herda os
atributos, operações e relacionamentos do pai. O filho pode ter atributos ou operações a
mais, ou pode até sobrescrever uma operação do pai.
O objeto da classe filha
“herda” todas as
características da classe pai
14/12/14 http://www.alvarofpinheiro.eti.br 46
47. Então, o que Herança?
Animal
IInnttrroodduuççããoo aa UUMMLL
Mamífero Ave
Homem Leão
Class Animal{
...
}
Class Mamifero extends Animal{
...
}
Class Ave extends Animal{
...
}
Class Homem extends Mamifero{
...
}
14/12/14 http://www.alvarofpinheiro.eti.br 47
48. IInnttrroodduuççããoo aa UUMMLL
A Herança pode ser de que tipo?
Simples quando: uma classe herda de uma outra
cor
largura da linha
desenhar()
selecionar()
Círculo
raio
centro
desenhar()
Retângulo
vertices
desenhar()
diagonal()
Figura
Superclasse
(pai)
Subclasses
Relacionamento
de Generalização
14/12/14 http://www.alvarofpinheiro.eti.br 48
49. IInnttrroodduuççããoo aa UUMMLL
A Herança pode ser de que tipo?
Múltipla quando: classes herdando de mais de uma classe
Mamífero AnimalVoador
Herança
múltipla
Cachorro Gato Morcego Passarinho Gaviao
Apesar de ser um mecanismos interessante, poucas linguagens de programação dão suporte
a isso. Além disso, existem algumas dificuldades semânticas relacionadas ao assunto. As
perguntas abaixo demonstram essa questão.
•O que acontece quando as superclasses possuem o mesmo método (métodos com o mesmo
nome)?
•O que acontece quando se tenta executar um método que não está definido na subclasse?
Em que hierarquia de superclasses deve-se procurar o método?
14/12/14 http://www.alvarofpinheiro.eti.br 49
50. IInnttrroodduuççããoo aa UUMMLL
O que é uma Realização?
Uma realização é um relacionamento semântico entre uma interface e uma classe (veremos mais adiante
que pode ser entre interfaces e outros elementos). Este relacionamento especifica um tipo de
contrato que a entidade que realiza tem que seguir. Como visto anteriormente uma interface define
um conjunto de operações que são usados para especificar os serviços implementados por uma ou
mais classes. Neste caso é dito que estas classes realizam a interface, ou sejam, seguem o contrato
estabelecido por ela.
Indica que um elemento serve como
contrato que o outro deve seguir
Relacionamento semântico entre
uma interface e uma classe
Este relacionamento especifica um
tipo de contrato que a entidade que
realiza tem que seguir.
Similar à Generalização
Viabiliza a herança de tipo, ou seja,
o relacionamento “é um tipo de”
14/12/14 http://www.alvarofpinheiro.eti.br 50
51. IInnttrroodduuççããoo aa UUMMLL
Como representar uma Realização?
Classe Subsistema
Realização
Caso de uso
Componente
Realização de Caso de uso
Pode ser usado em diferentes tipos de elementos
14/12/14 http://www.alvarofpinheiro.eti.br 51
52. O que é Visibilidade?
IInnttrroodduuççããoo aa UUMMLL
Existem quatro tipos básicos de modificadores de acesso
Public – São visíveis para quaisquer classes invocar/acessar
Private – São visíveis apenas na própria classe
Protected – São visíveis apenas para subclasses ou classes do mesmo pacote
Friendly – São visíveis apenas para classes do mesmo pacote
São aplicáveis à (classe, método, atributo e relacionamentos)
Dependendo escopo podem ter significado diferente
Mecanismo que facilita o encapsulamento
14/12/14 http://www.alvarofpinheiro.eti.br 52
53. O que é uma restrição?
IInnttrroodduuççããoo aa UUMMLL
Restrições podem ser usadas em diferentes
elementos de UML.
Usadas para criação de novas regras sobre
elementos do modelo ou modificação de regras
existentes
Funcionário
Professor Departamento
1..* 1
{subset}
Coordenador
3 1
14/12/14 http://www.alvarofpinheiro.eti.br 53
55. IInnttrroodduuççããoo aa UUMMLL
Algumas dicas úteis sobre Classe
É focado na comunicação de um aspecto da visão
estática do projeto do sistema
Contém somente elementos que são essenciais para o
entendimento do aspecto que se deseja mostrar.
Provê detalhes consistentes com o nível de detalhes
apropriado para o bom entendimento do mesmo.
Também não é tão minimalista ao ponto de não prover
informações suficientes para o leitor compreender a
semântica do mesmo.
14/12/14 http://www.alvarofpinheiro.eti.br 55
56. IInnttrroodduuççããoo aa UUMMLL
Mais dicas sobre Classes
Quando estiver modelando lembre-se que um diagrama de classes é somente um representação gráfica
da visão estática do projeto do sistema. Um único diagrama de classes não será capaz de capturar tudo
sobre o projeto do sistema. Cada diagrama de classes representará somente um aspecto do visão
estática do sistema, o conjunto de diagramas é que será capaz de representar a visão estática completa.
Um diagrama de classes bem estruturado possui as seguintes características:
• É focado na comunicação de um aspecto da visão estática do projeto do sistema.
• Contém somente elementos que são essenciais para o entendimento do aspecto que se deseja
mostrar.
• Provê detalhes consistentes com o nível de detalhes apropriado para o bom entendimento do
mesmo.
• Também não é tão minimalista ao ponto de não prover informações suficientes para o leitor
compreender a semântica do mesmo.
Quando estiver modelando um diagrama:
• Dê-lhe um nome que comunica o seu propósito
• Organize os elementos de forma a evitar o sobreposição de linhas.
• Mantenha os elementos semanticamente relacionados juntos;
• Use Anotações (Notes) e cores para chamar a atenção sobre importante elementos do diagrama.
• Não tente mostrar todos os tipos de relacionamentos entre as classes (Exemplo, se já há um
relacionamento do tipo Agregação, não é necessário colocar uma dependência).
14/12/14 http://www.alvarofpinheiro.eti.br 56
57. IInnttrroodduuççããoo aa UUMMLL
O que são Diagramas de Objetos?
O diagrama de objetos é bastante similar ao de classes, no
entanto os elementos que o compõe são objetos ao invés
de classes. Na verdade o diagrama de objetos representa
um snapshot (fotografia) do sistema em um determinado
instante. O diagrama de objetos é como se fosse o perfil do
sistema em um certo momento de sua execução.
Eles são úteis para mostrar o estado do sistema em um
dado instante que seja importante e demonstrar o estado
de ambientes complexos, tais como sistemas de tempo real
ou sistemas de controle. Em geral não é muito usado para a
modelagem de sistemas convencionais.
14/12/14 http://www.alvarofpinheiro.eti.br 57
58. IInnttrroodduuççããoo aa UUMMLL
Qual a relação entre Classe e Objeto?
Classe é uma definição abstrata de um objeto
Ela define a estrutura e o comportamento dos objetos
Serve como template para criação de objetos
Objetos são agrupados em classes
Curso
•Nome
•Localização
•Duração
•Créditos
•Adicionar um aluno
•Remover um aluno
•Atribuir professor
•Atribuir sala
•Nome = Análise I
•Localização =
MAC
•Duração = 30h
•Créditos = 2
•Nome = Análise II
•Localização =
MAC
•Duração = 15h
•Créditos = 4
•Nome = SI
•Localização =
MAC
•Duração = 30h
•Créditos = 2
14/12/14 http://www.alvarofpinheiro.eti.br 58
59. IInnttrroodduuççããoo aa UUMMLL
Como representar um objeto em UML?
: Professor p :
Professor
Apenas o nome p
da classe
Apenas o nome do
objeto
Nome da classe
e do objeto
: Professor
: Professor
Múltiplos objetos
p: Processo
[esperando]
objeto com o
estado explícito
: Professor
titulo = “Mestre”
Nome = “Pascoal”
Objeto com valores
de atributos
14/12/14 http://www.alvarofpinheiro.eti.br 59
60. IInnttrroodduuççããoo aa UUMMLL
Exemplo de criação de objetos em CSharp e Java
ccllaassss PPeessssooaa {{
......
}}
......
PPeessssooaa pp11 == nneeww PPeessssooaa(());;
PPeessssooaa pp22 == nneeww PPeessssooaa(());;
pp11..nnoommee == ““PPaassccooaall””;;
pp22..nnoommee == ““MMaarriiaa””;;
14/12/14 http://www.alvarofpinheiro.eti.br 60
62. IInnttrroodduuççããoo aa UUMMLL
O que é um Diagrama de Estrutura Composta?
Permite desdobrar um classe em partes menores
Visualizar a estrutura interna de classes mais complexas
Útil para mostrar agrupamentos em tempo de execução
Mostra em mais detalhes as dependências de uma classe
TV Viewer
controls[0..* ]
generators
display
Parte
TV Cont rol API
Conector
Delegação Porta
Interface
requerida
Interface
Ofericida
14/12/14 http://www.alvarofpinheiro.eti.br 62
63. IInnttrroodduuççããoo aa UUMMLL
O que é Diagrama de Componente?
O diagrama de componente descreve os componentes de software e suas dependências, representando a estrutura dos elementos físicos do
sistema. Assim como os elementos lógicos de um sistema (como classes, por exemplo) existem no mundo conceitual, elementos físicos
existem no mundo real dos bits (arquivos binários, executáveis e de textos, por exemplo). Em UML, todos estes elementos são modelados
como componentes.
As interfaces de UML são a ligação entre os elementos físicos e os lógicos, pois os componentes (mundo físico) realizam um conjunto de
interfaces (mundo conceitual) .
Componentes são partes não trivial, quase independente, substituível de um sistema, que provê a realização de (uma/um conjunto de)
interface(s)
Exemplos:
• um código fonte
• Uma biblioteca
• um componente executável
• Tabela, arquivo ou documentos
Em UML 1.4
Em UML 2.0
14/12/14 http://www.alvarofpinheiro.eti.br 63
64. IInnttrroodduuççããoo aa UUMMLL
O que é Diagrama de Implantação?
• Relacionado à visão lógica da arquitetura você pode usar diagramas como de classes, colaboração, pacotes, sequência, etc. Mas em
relação à visão física existem o seguintes diagramas: componentes, que mostram os elementos físicos, como arquivos, executáveis,
tabelas e artefatos; Implantação, que mostra os nós físicos em termos de equipamentos.
• Mostra a relação física entre os componentes de software e hardware
• Podem envolver somente as relações entre componentes de hardware ou entre hardware e software
• Útil para demonstrar a Visão Física da arquitetura
Nós – Algum tipo de unidade computacional, em geral elementos de hardware
Nós contém artefatos (arquivos, executáveis, etc.)
Generalizando, o Nó pode ser considerado qualquer
elemento que seja capaz de hospedar
software (ex. Sistema Operacional)
Conexões – Conexões entre os nós que representa um modo
de comunicação qualquer
(ou em termos físicos ou em termos de protocolo)
14/12/14 http://www.alvarofpinheiro.eti.br 64
65. IInnttrroodduuççããoo aa UUMMLL
O que é Diagrama de Interação?
Os diagramas de interação modelam interações entre os elementos do sistema e são usados para
modelar aspectos sobre a dinâmica do sistema. Em geral a interação é iniciada por um ator e envolve
instâncias (objetos) das classes. Os diagramas de interação capturam a semântica do fluxo de
eventos do caso de uso e, por isso, auxiliam a identificar classes, responsabilidades e
relacionamentos.
A modelagem no diagrama de interação envolve modelar instâncias de classes e as mensagens que são
disparadas entre eles, de forma a ilustrar o comportamento em um determinado cenário. Diagramas
de interação podem especificar a dinâmica de um conjunto de objetos relacionados ou representar
um fluxo particular do caso de uso.
Em UML 2.0 existem os seguintes tipos:
Diagrama de Seqüência
Diagrama de Comunicação (Antigo diagrama de colaboração)
Diagrama de Tempo (Timing Diagram)
Diagrama Geral de Interações (Interaction Overview Diagram)
14/12/14 http://www.alvarofpinheiro.eti.br 65
66. IInnttrroodduuççããoo aa UUMMLL
O que é um Diagrama de Seqüência?
Enfatiza na ordem temporal das mensagens, de forma que as interações iniciam-se à esquerda e vão
acontecendo em direção à direita. Este diagrama contém basicamente três tipos de elementos
• Objetos
• Ligações
• Mensagens
A figura acima mostra o diagrama
de seqüência, colocando os objetos que
participam da interação no topo do
diagrama, ao longo do enixo X.
Os objetos que iniciam a interação
ficam do lado esquerdo e
gradativamente enviam mensagens
para os elementos à direita.
14/12/14 http://www.alvarofpinheiro.eti.br 66
67. IInnttrroodduuççããoo aa UUMMLL
Qual a representação de um Diagrama de Seqüência?
Objeto cliente Objeto fornecedor
:Cliente :Fornecedor
1: Realize responsabilidade
Mensagem
Foco de controle
Mensagem reflexiva
1.1: Realize outra responsabilidade
Numeração hierárquica para
as mensagens
14/12/14 http://www.alvarofpinheiro.eti.br 67
69. IInnttrroodduuççããoo aa UUMMLL
Quais os aspectos de um Diagrama de Seqüência?
Além dos elementos básicos que podem ser usados no diagramas de
seqüência, existem outras características mais avançadas que podem ser
usadas nos diagramas de seqüência, são elas:
•Criação e Deleção (Controle do ciclo de vida) de objetos
•Laços e condições
•Mensagens assíncronas
Criação
Auto-destruição
Destruição
Forçada
14/12/14 http://www.alvarofpinheiro.eti.br 69
70. IInnttrroodduuççããoo aa UUMMLL
Outros aspectos do Diagrama de Seqüência
Um problema recorrente do Diagramas de seqüência é que ele não é muito bom para demonstrar situações onde seja
requerido laços ou processamento condicional. Semanticamente o diagrama de seqüência mostra o fluxo de
interação entre os objetos em um determinado cenário. Situações que requeriam a escolha de mais de uma
alternativa de caminho de execução deveriam ser modeladas como diferentes seqüências de execução (em geral,
requerendo a criação de diferentes diagramas de seqüência). Uma outra alternativa era incrementar a semântica
de tais diagramas através da inclusão de Notas de texto, indicando a necessidade de laços ou de uma escolha.
Devido a essa deficiência algumas ferramentas de modelagem incluíam formas proprietárias de representar estes
elementos.
UML 2.0 incluiu o conceito de
Frames de Interação, que
permitem a representação de
repetições e caminhos
alternativos.
14/12/14 http://www.alvarofpinheiro.eti.br 70
71. IInnttrroodduuççããoo aa UUMMLL
Quais os operadores do Diagrama de Seqüência?
14/12/14 http://www.alvarofpinheiro.eti.br 71
72. Um exemplo
IInnttrroodduuççããoo aa UUMMLL
Este exemplo possui um frame de repetição (loop), que indica que vai repetir o bloco interno para cada line
item. O frame de escolha (alt), interno a ele, possui uma escolha, caso o value > $10000 ele executa o
dispatch do objeto careful, se não, ele executa o dispatch no objeto regular. Por fim, tem um fragmento
opcional, que só executa caso a condição de guarda seja satisfeita.
Segue abaixo um trecho de código equivalente`ao comportamento especificado no diagrama de seqüência.
procedure dispatch
foreach (lineitem)
if (product .value > $10K)
careful .dispatch
else
regular .dispatch
end if
end for
if (needsConfirmation)
messenger .confirm
end procedure
14/12/14 http://www.alvarofpinheiro.eti.br 72
73. IInnttrroodduuççããoo aa UUMMLL
Quais são os tipos de Mensagens?
No diagrama de seqüência é possível representar mensagens síncronas ou assíncronas.
• Mensagens Síncronas - A linha de execução do objeto que originou a mensagem depende da
execução do objeto chamado
• Mensagens assíncronas - A linha de execução do objeto que originou a mensagem é
independente da execução do objeto chamado
14/12/14 http://www.alvarofpinheiro.eti.br 73
74. IInnttrroodduuççããoo aa UUMMLL
O que é um Diagrama de Comunicação?
É um tipo de diagrama de interação que dá ênfase às ligações entre os vários participantes da interação.
Ao contrário do diagrama de seqüência, onde cada participante é disposto em uma linha de tempo
e mostra a seqüência de mensagens na direção vertical, o diagrama de colaboração permite o
posicionamento livre dos participantes, permite desenhar ligações para mostrar como os
participantes se conectam, e usa numeração para mostrar a seqüência de mensagens. Com o
diagrama de comunicação pode-se mostrar quão ligados são os participantes.
14/12/14 http://www.alvarofpinheiro.eti.br 74
75. IInnttrroodduuççããoo aa UUMMLL
Qual a diferença entre Colaboração e Seqüência?
Os diagramas de colaboração e seqüência são semanticamente
equivalentes e podem ser automaticamente gerados, um a partir
do outro. Cada um deles tem vantagens e desvantagens,
dependendo de como se queira usá-los.
Colaboração
• Melhores para visualizar os relacionamentos e responsabilidades de
um dado objeto
• Mais fáceis de desenhar - úteis em sessões de brainstorm
Seqüência
• Melhores para visualizar a seqüência do fluxo no tempo
• Melhores para visualizar o fluxo completo
• Mais adequados para cenários complexos
14/12/14 http://www.alvarofpinheiro.eti.br 75
76. IInnttrroodduuççããoo aa UUMMLL
O que é um Diagrama Geral de Interação?
Este é um novo diagrama de UML 2.0 que combina elementos de diagrama de atividades com outros
diagramas de interação. Ele embute nos fluxos de atividades, as interações entre objetos (diagramas
de interação). Desta forma, ele permite reusar e combinar interações pré-definidas. Neste diagrama
é possível, compor e reusar diferentes diagramas de interação e dar uma visão única para uma lógica
de processamento mais complexa.
Apesar de interessante, a sua
aplicabilidade ainda não é
muito clara, poucos livros a
citam e quando citam, são
muito superficiais.
14/12/14 http://www.alvarofpinheiro.eti.br 76
77. IInnttrroodduuççããoo aa UUMMLL
Para que serve o Diagrama de Tempo?
É focado em restrições tempo para um ou mais objetos
Relaciona os objetos, seus estados e o tempo
São bem aplicáveis para
sistemas embarcados
(e comumente usado por
engenheiros de hardware)
14/12/14 http://www.alvarofpinheiro.eti.br 77
80. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para localizar?
Descrever Como
Atores e Casos
de Uso
Interagem
Avaliar os
resultados
Apresentar o
Modelo de Casos
de Uso em
Diagramas de
Casos de Uso
Empacotar
Casos de Uso e
Atores
Identificar Casos
de Uso
Localizar
Atores
14/12/14 http://www.alvarofpinheiro.eti.br 80
81. IInnttrroodduuççããoo aa UUMMLL
Localizar
atores
Stakeholders
definidos no doc
de visão
14/12/14 http://www.alvarofpinheiro.eti.br 81
82. Qualquer desses é um ator candidato
Uma instância de ator é alguém ou algo
externo ao sistema que interage com ele
Uma classe de ator define um conjunto de
instâncias de ator, no qual cada uma
desempenha o mesmo papel em relação ao
sistema
Exemplo: gerentes de vendas acessando
um mesmo relatório gerencial
14/12/14 http://www.alvarofpinheiro.eti.br 82
83. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para localizar?
Descrever Como
Atores e Casos
de Uso
Interagem
Avaliar os
resultados
Apresentar o
Modelo de Casos
de Uso em
Diagramas de
Casos de Uso
Empacotar
Casos de Uso e
Atores
Identificar
Casos de Uso
Localizar Atores
14/12/14 http://www.alvarofpinheiro.eti.br 83
84. IInnttrroodduuççããoo aa UUMMLL
Um caso de uso é uma seqüência de ações
realizada por um sistema que produz um
resultado de valor observável para
determinado ator
Todos os casos de uso juntos devem
descrever a funcionalidade completa do
sistema (requisitos)
Atores são fundamentais para a descoberta
dos casos de uso
14/12/14 http://www.alvarofpinheiro.eti.br 84
85. IInnttrroodduuççããoo aa UUMMLL
Para cada
ator....
Identificar
Casos de Uso
14/12/14 http://www.alvarofpinheiro.eti.br 85
86. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para localizar?
Descrever
Como Atores e
Casos de Uso
Interagem
Avaliar os
resultados
Apresentar o
Modelo de Casos
de Uso em
Diagramas de
Casos de Uso
Empacotar
Casos de Uso e
Atores
Identificar Casos
de Uso
Localizar Atores
14/12/14 http://www.alvarofpinheiro.eti.br 86
87. IInnttrroodduuççããoo aa UUMMLL
É o primeiro passo de modelagem dos caso de uso
Diagrama de casos de uso
Uma associação de comunicação é uma associação
entre uma classe de ator e uma classe de caso de
uso, que indica haver interação entre suas
instâncias
Um ator se comunica com os casos de uso por
vários motivos, por exemplo:
Para iniciar um caso de uso
Para solicitar dados do sistema
Para alterar os dados armazenados no sistema
14/12/14 http://www.alvarofpinheiro.eti.br 87
89. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para localizar?
Descrever Como
Atores e Casos
de Uso
Interagem
Avaliar os
resultados
Apresentar o
Modelo de Casos
de Uso em
Diagramas de
Casos de Uso
Empacotar
Casos de Uso e
Atores
Identificar Casos
de Uso
Localizar Atores
14/12/14 http://www.alvarofpinheiro.eti.br 89
90. IInnttrroodduuççããoo aa UUMMLL
Organizar casos de uso e atores em pacotes
Um pacote de casos de uso é um conjunto
de casos de uso, atores e relacionamentos.
É usado para organizar o modelo de casos
de uso dividindo-o em partes menores.
Facilita o entendimento
14/12/14 http://www.alvarofpinheiro.eti.br 90
91. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para localizar?
Descrever Como
Atores e Casos
de Uso
Interagem
Avaliar os
resultados
Apresentar o
Modelo de
Casos de Uso
em Diagramas
de Casos de Uso
Empacotar
Casos de Uso e
Atores
Identificar Casos
de Uso
Localizar Atores
14/12/14 http://www.alvarofpinheiro.eti.br 91
92. IInnttrroodduuççããoo aa UUMMLL
Apresentar o
Modelo de Casos
de Uso em
Diagramas de
Casos de Uso
14/12/14 http://www.alvarofpinheiro.eti.br 92
94. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para localizar?
Descrever Como
Atores e Casos
de Uso
Interagem
Avaliar os
resultados
Apresentar o
Modelo de Casos
de Uso em
Diagramas de
Casos de Uso
Empacotar
Casos de Uso e
Atores
Identificar Casos
de Uso
Localizar Atores
14/12/14 http://www.alvarofpinheiro.eti.br 94
96. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para estruturar?
Avaliar os
resultados
Estabelecer
Relacionamentos
de Inclusão
Estabelecer
Relacionamentos
de Extensão
Estabelecer
Relacionamentos
de Generalização
entre Casos de
Uso
Estabelecer
Relacionamentos
de Generalização
entre Atores
14/12/14 http://www.alvarofpinheiro.eti.br 96
97. IInnttrroodduuççããoo aa UUMMLL
Um relacionamento de inclusão é aquele que
Se estabelece entre um caso de uso base e um
caso de uso de inclusão
Especifica como o comportamento definido para o
caso de uso de inclusão é inserido de forma
explícita no comportamento definido para o caso
de uso base
Além do reuso, relacionamentos de inclusão são criados
para fatorar (separar comportamento complexo do
caso de uso ou comportamento que não faz parte do
propósito principal do caso de uso a fim de diminuir a
complexidade do fluxo de eventos)
14/12/14 http://www.alvarofpinheiro.eti.br 97
99. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para estruturar?
Avaliar os
resultados
Estabelecer
Relacionamentos
de Inclusão
Estabelecer
Relacionamentos
de Extensão
Estabelecer
Relacionamentos
de Generalização
entre Casos de
Uso
Estabelecer
Relacionamentos
de Generalização
entre Atores
14/12/14 http://www.alvarofpinheiro.eti.br 99
100. IInnttrroodduuççããoo aa UUMMLL
Um relacionamento de extensão
Se estabelece entre um caso de uso de
extensão e um caso de uso base
Especifica como o comportamento definido
para o caso de uso de extensão pode ser
inserido no comportamento definido para o
caso de uso de base
Criados para modelar comportamentos
opcionais ou excepcionais
São executados somente face a certas condições
Casos de uso de inclusão são sempre executados
14/12/14 http://www.alvarofpinheiro.eti.br 100
102. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para estruturar?
Avaliar os
resultados
Estabelecer
Relacionamentos
de Inclusão
Estabelecer
Relacionamentos
de Extensão
Estabelecer
Relacionamentos
de Generalização
entre Casos de
Uso
Estabelecer
Relacionamentos
de Generalização
entre Atores
14/12/14 http://www.alvarofpinheiro.eti.br 102
103. IInnttrroodduuççããoo aa UUMMLL
Uma generalização de casos de uso
É um relacionamento de um caso de uso filho com
um caso de uso pai
Especifica como um filho pode adotar todo o
comportamento e as características descritas para
o pai
Usado para relacionar um caso de uso mais
especializado com um mais geral
Este relacionamento complica mais do que
facilita e deve ser evitado
14/12/14 http://www.alvarofpinheiro.eti.br 103
105. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para estruturar?
Avaliar os
resultados
Estabelecer
Relacionamentos
de Inclusão
Estabelecer
Relacionamentos
de Extensão
Estabelecer
Relacionamentos
de Generalização
entre Casos de
Uso
Estabelecer
Relacionamentos
de Generalização
entre Atores
14/12/14 http://www.alvarofpinheiro.eti.br 105
106. IInnttrroodduuççããoo aa UUMMLL
Na generalização de ator o filho herda o papel
que o pai pode desempenhar em um caso de uso.
Facilita a leitura do modelo de caso de uso
14/12/14 http://www.alvarofpinheiro.eti.br 106
107. IInnttrroodduuççããoo aa UUMMLL
Quais as atividades para estruturar?
Avaliar os
resultados
Estabelecer
Relacionamentos
de Inclusão
Estabelecer
Relacionamentos
de Extensão
Estabelecer
Relacionamentos
de Generalização
entre Casos de
Uso
Estabelecer
Relacionamentos
de Generalização
entre Atores
14/12/14 http://www.alvarofpinheiro.eti.br 107
109. IInnttrroodduuççããoo aa UUMMLL
Mecanismos Auxiliares da UML
UML é uma linguagem muito extensível e desta
forma ela pode ser usada para modelar basicamente
tudo que se deseja. Os principais elementos que a
permitem ser flexível são:
• Estereótipos
• Notas
• Propriedades (Tagged values)
• Restrições
Estes elementos serão descritos com mais detalhes
mais adiante.
14/12/14 http://www.alvarofpinheiro.eti.br 109
110. O que é um Estereótipo
IInnttrroodduuççããoo aa UUMMLL
Estereótipo é um mecanismo utilizado para estender o vocabulário de UML e pode ser aplicado a
qualquer elemento, sejam classes, relacionamentos, mensagens, atributo, etc. O estereotipo
permite mudar a semântica do elemento ao qual ele é aplicado. Ele é representado
colocando-se uma marcação no formato <<marcação>>, em cima do elemento. Em UML, já
existem um conjunto de estereótipos pré-definidos que são aplicáveis a determinados
elementos de UML, inclusive alguns deles já possuem ícones associados a eles, de forma que
visualmente eles são diferentes do elemento sem o estereótipo, como é o caso de
<<interface>> e <<actor>>, que são aplicáveis ao elemento Classe e mudam visualmente e
semanticamente o seu significado.
14/121/144/12/14 por Álvaro F Phintthpe:i/r/owww.alvarofpinheiro.eti.br 110 110
111. IInnttrroodduuççããoo aa UUMMLL
Para que server uma nota?
Mecanismo que permite a adição de comentários e
associação do mesmo a qualquer elemento de
UML.
LeitoraCartao
Esta classe é uma abstração
do dispositivo de hardware
que será usado para ler
efetivamente as informações
do cartão magnético.
14/12/14 http://www.alvarofpinheiro.eti.br 111
112. IInnttrroodduuççããoo aa UUMMLL
O que é uma Propriedades (Tagged Values)?
Um tagged value é uma extensão de propriedades dos elementos de UML,
permitindo que sejam criadas novas informações na especificação do elemento.
Cada elemento em UML possui o conjunto de propriedades possíveis dele. Por
exemplo, as classes possuem visibilidade, atributos e métodos. Para possibilitar
a inclusão de uma nova propriedade á um elemento é possível fazer uso dos
taggeds values que permitem definir propriedades que serão atribuídas àqueles
elementos onde ela se aplica.
Cliente
{persistence}
LeitoraCartao
{location=server}
14/12/14 http://www.alvarofpinheiro.eti.br 112
Notas del editor
Descrever como atores e casos de uso interagem
De certa forma, neste passo já começaremos a modelar o diagrama de caso de uso.
Como os casos de uso são obtidos através das ações dos atores (ativas ou passivas), torna-se relevante mostrar como se dá esse relacionamento, esta interação entre os atores e os caso de uso.
A forma correta de se fazer isso é definindo-se uma associação de comunicação.
Uma associação de comunicação é uma associação entre uma classe de ator e uma classe de caso de uso, que indica haver interação entre suas instâncias
É comum indicarmos a propriedade de navegabilidade de uma associação de comunicação, que é representada por uma seta. A origem da seta inicia quem vai iniciar a comunicação, e não o sentido do fluxo de dados. Quando a interação pode iniciar tanto pelo caso de uso quanto pelo ator não devem ser usadas setas, mas apenas uma linha, que significa o mesmo que uma seta de cada lado.
Um ator se comunica com os casos de uso por vários motivos, por exemplo:
Para iniciar um caso de uso
Para solicitar dados do sistema
Para alterar os dados armazenados no sistema