https://www.facebook.com/alvarofpinheiroaulas/ 
br.linkedin.com/in/alvarofpinheiro/ 
IInnttrroodduuççããoo aa MMooddeellaag...
O que é a UML? 
IInnttrroodduuççããoo aa UUMMLL 
A Unified Modeling Language (UML) é a sucessora de uma onda de métodos par...
Como surgiu a UML? 
IInnttrroodduuççããoo aa UUMMLL 
Durante os anos 80, várias linguagens de programação se popularizaram,...
IInnttrroodduuççããoo aa UUMMLL 
Como foi a evolução da UML? 
Nov ‘97 UML aprovada pelo OMG 
14/12/14 http://www.alvarofpin...
IInnttrroodduuççããoo aa UUMMLL 
Quais os objetivos da UML? 
UML tem como propósito ser uma linguagem para: 
Visualizar sis...
O que é OO? 
IInnttrroodduuççããoo aa UUMMLL 
O paradigma OO utiliza uma perspectiva mais humana de observação da realidade...
IInnttrroodduuççããoo aa UUMMLL 
Quais os princípios básicos da OO? 
Orientação à Objetos 
Abstração Modularidade Encapsula...
O que é um Objeto? 
IInnttrroodduuççããoo aa UUMMLL 
“Um objeto é um conceito, abstração ou coisa com 
limites e significad...
IInnttrroodduuççããoo aa UUMMLL 
O que é um Sistema OO? 
Um sistema orientado a objetos pode ser visto 
como um conjunto de...
IInnttrroodduuççããoo aa UUMMLL 
Quais os conceitos básicos da OO? 
Objeto 
Classe 
Atributo 
Operação 
Interface (Polimorf...
IInnttrroodduuççããoo aa UUMMLL 
Quais são os diagramas da UML? 
DDiiaaggrraammaa ddee ccllaasssseess 
DDiiaaggrraammaa d...
IInnttrroodduuççããoo aa UUMMLL 
O que é diagrama de classe? 
Um diagrama de classes mostra um conjunto de classes, interfa...
O que são classes? 
IInnttrroodduuççããoo aa UUMMLL 
Classes especificam a estrutura e o comportamento 
dos objetos 
Classe...
Um exemplo de classe 
Classe 
IInnttrroodduuççããoo aa UUMMLL 
Propriedades Curso 
Nome 
Localização 
Duração 
Créditos 
Co...
IInnttrroodduuççããoo aa UUMMLL 
Como se representa uma classe? 
Como se pode perceber a representação em UML 
abstrai elem...
O que são atributos? 
IInnttrroodduuççããoo aa UUMMLL 
Um atributo é uma propriedade de uma classe, identificada por um nom...
Atributos na UML são? 
Professor 
titulo 
nome 
IInnttrroodduuççããoo aa UUMMLL 
Classe 
Pessoa 
idade: int 
nome: String 
...
IInnttrroodduuççããoo aa UUMMLL 
Exemplo em CSharp ou Java 
ccllaassss PPeessssooaa {{ 
iinntt iiddaaddee;; 
ssttrriinngg n...
O que são operações? 
IInnttrroodduuççããoo aa UUMMLL 
Uma operação é a implementação de um serviço que pode ser solicitado...
IInnttrroodduuççããoo aa UUMMLL 
Exemplo de operação em UML 
SensorTemperatura 
reiniciar() 
definirAlarme() 
lerTemperatur...
IInnttrroodduuççããoo aa UUMMLL 
Exemplo de operações em CSharp ou Java 
ppuubblliicc ccllaassss sseennssoorrDDeeTTeemmppee...
IInnttrroodduuççããoo aa UUMMLL 
Resumindo, um classe é formada por? 
Nome da Classe DVD 
Atributos 
Operações 
Hora 
Statu...
O que é polimorfismo? 
IInnttrroodduuççããoo aa UUMMLL 
O polimorfismo é a habilidade de esconder diferentes implementações...
IInnttrroodduuççããoo aa UUMMLL 
Segue um exemplo de Interface 
ppaauussaarr(()) 
ppaarraarr(()) 
vvoollttaarr(()) 
aavvaan...
Mais sobre Interface 
IInnttrroodduuççããoo aa UUMMLL 
Interfaces definem um tipo especificando apenas a 
assinatura de seu...
IInnttrroodduuççããoo aa UUMMLL 
Segue a forma icônica da Interface na UML 
Forma 
Relacionamentos 
de realização 
Tubo 
Pi...
IInnttrroodduuççããoo aa UUMMLL 
Segue forma canônica de Interface na UML 
Cubo 
Tubo 
Piramide 
<<interface>> 
Forma 
Dese...
IInnttrroodduuççããoo aa UUMMLL 
Exemplo de Interface em CSharp 
iinntteerrffaaccee DDVVDD {{ 
vvooiidd vvoollttaarr(());; ...
IInnttrroodduuççããoo aa UUMMLL 
Exemplo de Interface em Java 
iinntteerrffaaccee DDVVDD {{ 
vvooiidd vvoollttaarr(());; 
v...
IInnttrroodduuççããoo aa UUMMLL 
O que são classes abstratas? 
Classes abstratas são úteis para representar a parte da semâ...
IInnttrroodduuççããoo aa UUMMLL 
Exemplo de classe abstrata em CSharp e Java 
aabbssttrraacctt ccllaassss PPoolliiggoonnoo ...
IInnttrroodduuççããoo aa UUMMLL 
Que tipos de classes existem? 
Interfaces 
• Assinaturas dos métodos 
Classes 
• Atributos...
IInnttrroodduuççããoo aa UUMMLL 
Porquê então, classes abstratas e Interfaces? 
Interfaces permitem a herança de tipo 
Clas...
IInnttrroodduuççããoo aa UUMMLL 
Para que serve um Pacote em UML? 
Um pacote é um mecanismo de propósito geral para organiz...
IInnttrroodduuççããoo aa UUMMLL 
Qual o conceito de Coesão e Acoplamento? 
Dois conceitos importantes de se entender na ho...
IInnttrroodduuççããoo aa UUMMLL 
Quais são os tipos de relacionamentos no Diagrama de Classe? 
Associação 
Agregação 
Compo...
O que é Associação? 
IInnttrroodduuççããoo aa UUMMLL 
Uma associação é um relacionamento estrutural que especifica que obje...
O que é Multiplicidade? 
IInnttrroodduuççããoo aa UUMMLL 
Multiplicidade define quantos objetos participam do relacionament...
O que é Navegação? 
IInnttrroodduuççããoo aa UUMMLL 
Especifica a direção da associação 
Associações são bidirecionais por ...
O que é Agregação? 
IInnttrroodduuççããoo aa UUMMLL 
Uma associação normal entre duas classes representa um relacionamento ...
IInnttrroodduuççããoo aa UUMMLL 
O que é uma Composição? 
Composição é uma variação de uma agregação, que adiciona uma semâ...
IInnttrroodduuççããoo aa UUMMLL 
O que é uma classe de associação? 
Em uma associação entre duas classes é possível ter pro...
IInnttrroodduuççããoo aa UUMMLL 
O que são Associações Qualificadas? 
Uma associação qualificada em UML é equivalente à con...
IInnttrroodduuççããoo aa UUMMLL 
O que é uma Dependência? 
Uma dependência é um relacionamento de “uso” que tenta apontar q...
IInnttrroodduuççããoo aa UUMMLL 
Exemplo de Dependência em CSharp e Java 
ccllaassss LLoogg {{ 
...... 
vvooiidd ggrraavvaa...
IInnttrroodduuççããoo aa UUMMLL 
O que é Generalização e Especialização? 
É um relacionamento entre um elemento genérico (c...
Então, o que Herança? 
Animal 
IInnttrroodduuççããoo aa UUMMLL 
Mamífero Ave 
Homem Leão 
Class Animal{ 
... 
} 
Class Mami...
IInnttrroodduuççããoo aa UUMMLL 
A Herança pode ser de que tipo? 
Simples quando: uma classe herda de uma outra 
cor 
largu...
IInnttrroodduuççããoo aa UUMMLL 
A Herança pode ser de que tipo? 
Múltipla quando: classes herdando de mais de uma classe 
...
IInnttrroodduuççããoo aa UUMMLL 
O que é uma Realização? 
Uma realização é um relacionamento semântico entre uma interface ...
IInnttrroodduuççããoo aa UUMMLL 
Como representar uma Realização? 
Classe Subsistema 
Realização 
Caso de uso 
Componente 
...
O que é Visibilidade? 
IInnttrroodduuççããoo aa UUMMLL 
Existem quatro tipos básicos de modificadores de acesso 
Public – S...
O que é uma restrição? 
IInnttrroodduuççããoo aa UUMMLL 
Restrições podem ser usadas em diferentes 
elementos de UML. 
Usad...
IInnttrroodduuççããoo aa UUMMLL 
Resumo de Diagrama de Classe 
14/12/14 http://www.alvarofpinheiro.eti.br 54
IInnttrroodduuççããoo aa UUMMLL 
Algumas dicas úteis sobre Classe 
É focado na comunicação de um aspecto da visão 
estátic...
IInnttrroodduuççããoo aa UUMMLL 
Mais dicas sobre Classes 
 Quando estiver modelando lembre-se que um diagrama de classes ...
IInnttrroodduuççããoo aa UUMMLL 
O que são Diagramas de Objetos? 
O diagrama de objetos é bastante similar ao de classes, ...
IInnttrroodduuççããoo aa UUMMLL 
Qual a relação entre Classe e Objeto? 
Classe é uma definição abstrata de um objeto 
Ela d...
IInnttrroodduuççããoo aa UUMMLL 
Como representar um objeto em UML? 
: Professor p : 
Professor 
Apenas o nome p 
da classe...
IInnttrroodduuççããoo aa UUMMLL 
Exemplo de criação de objetos em CSharp e Java 
ccllaassss PPeessssooaa {{ 
...... 
}} 
.....
IInnttrroodduuççããoo aa UUMMLL 
Diagrama de Classe vrs Diagrama de Objeto 
14/12/14 http://www.alvarofpinheiro.eti.br 61
IInnttrroodduuççããoo aa UUMMLL 
O que é um Diagrama de Estrutura Composta? 
Permite desdobrar um classe em partes menores...
IInnttrroodduuççããoo aa UUMMLL 
O que é Diagrama de Componente? 
O diagrama de componente descreve os componentes de softw...
IInnttrroodduuççããoo aa UUMMLL 
O que é Diagrama de Implantação? 
• Relacionado à visão lógica da arquitetura você pode us...
IInnttrroodduuççããoo aa UUMMLL 
O que é Diagrama de Interação? 
Os diagramas de interação modelam interações entre os elem...
IInnttrroodduuççããoo aa UUMMLL 
O que é um Diagrama de Seqüência? 
Enfatiza na ordem temporal das mensagens, de forma que ...
IInnttrroodduuççããoo aa UUMMLL 
Qual a representação de um Diagrama de Seqüência? 
Objeto cliente Objeto fornecedor 
:Clie...
IInnttrroodduuççããoo aa UUMMLL 
Um exemplo de Diagrama de Seqüência 
14/12/14 http://www.alvarofpinheiro.eti.br 68
IInnttrroodduuççããoo aa UUMMLL 
Quais os aspectos de um Diagrama de Seqüência? 
Além dos elementos básicos que podem ser u...
IInnttrroodduuççããoo aa UUMMLL 
Outros aspectos do Diagrama de Seqüência 
Um problema recorrente do Diagramas de seqüência...
IInnttrroodduuççããoo aa UUMMLL 
Quais os operadores do Diagrama de Seqüência? 
14/12/14 http://www.alvarofpinheiro.eti.br ...
Um exemplo 
IInnttrroodduuççããoo aa UUMMLL 
 Este exemplo possui um frame de repetição (loop), que indica que vai repetir...
IInnttrroodduuççããoo aa UUMMLL 
Quais são os tipos de Mensagens? 
No diagrama de seqüência é possível representar mensagen...
IInnttrroodduuççããoo aa UUMMLL 
O que é um Diagrama de Comunicação? 
É um tipo de diagrama de interação que dá ênfase às l...
IInnttrroodduuççããoo aa UUMMLL 
Qual a diferença entre Colaboração e Seqüência? 
Os diagramas de colaboração e seqüência ...
IInnttrroodduuççããoo aa UUMMLL 
O que é um Diagrama Geral de Interação? 
Este é um novo diagrama de UML 2.0 que combina el...
IInnttrroodduuççããoo aa UUMMLL 
Para que serve o Diagrama de Tempo? 
É focado em restrições tempo para um ou mais objetos ...
Outros Diagramas 
IInnttrroodduuççããoo aa UUMMLL 
Diagrama de Atividades 
Diagrama de Estados 
14/12/14 http://www.alvarof...
IInnttrroodduuççããoo aa UUMMLL 
Para que Atores e Casos de Uso? 
14/12/14 http://www.alvarofpinheiro.eti.br 79
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para localizar? 
Descrever Como 
Atores e Casos 
de Uso 
Interagem 
Av...
IInnttrroodduuççããoo aa UUMMLL 
Localizar 
atores 
Stakeholders 
definidos no doc 
de visão 
14/12/14 http://www.alvarofpi...
 Qualquer desses é um ator candidato 
 Uma instância de ator é alguém ou algo 
externo ao sistema que interage com ele 
...
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para localizar? 
Descrever Como 
Atores e Casos 
de Uso 
Interagem 
Av...
IInnttrroodduuççããoo aa UUMMLL 
 Um caso de uso é uma seqüência de ações 
realizada por um sistema que produz um 
resulta...
IInnttrroodduuççããoo aa UUMMLL 
Para cada 
ator.... 
Identificar 
Casos de Uso 
14/12/14 http://www.alvarofpinheiro.eti.br...
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para localizar? 
Descrever 
Como Atores e 
Casos de Uso 
Interagem 
Av...
IInnttrroodduuççããoo aa UUMMLL 
 É o primeiro passo de modelagem dos caso de uso 
 Diagrama de casos de uso 
 Uma assoc...
IInnttrroodduuççããoo aa UUMMLL 
Coordenador 
14/12/14 http://www.alvarofpinheiro.eti.br 88
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para localizar? 
Descrever Como 
Atores e Casos 
de Uso 
Interagem 
Av...
IInnttrroodduuççããoo aa UUMMLL 
 Organizar casos de uso e atores em pacotes 
 Um pacote de casos de uso é um conjunto 
d...
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para localizar? 
Descrever Como 
Atores e Casos 
de Uso 
Interagem 
Av...
IInnttrroodduuççããoo aa UUMMLL 
Apresentar o 
Modelo de Casos 
de Uso em 
Diagramas de 
Casos de Uso 
14/12/14 http://www....
IInnttrroodduuççããoo aa UUMMLL 
14/12/14 http://www.alvarofpinheiro.eti.br 93
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para localizar? 
Descrever Como 
Atores e Casos 
de Uso 
Interagem 
Av...
IInnttrroodduuççããoo aa UUMMLL 
Avaliar 
resultados 
14/12/14 http://www.alvarofpinheiro.eti.br 95
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para estruturar? 
Avaliar os 
resultados 
Estabelecer 
Relacionamentos...
IInnttrroodduuççããoo aa UUMMLL 
 Um relacionamento de inclusão é aquele que 
 Se estabelece entre um caso de uso base e ...
IInnttrroodduuççããoo aa UUMMLL 
14/12/14 http://www.alvarofpinheiro.eti.br 98
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para estruturar? 
Avaliar os 
resultados 
Estabelecer 
Relacionamentos...
IInnttrroodduuççããoo aa UUMMLL 
 Um relacionamento de extensão 
 Se estabelece entre um caso de uso de 
extensão e um ca...
IInnttrroodduuççããoo aa UUMMLL 
14/12/14 http://www.alvarofpinheiro.eti.br 101
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para estruturar? 
Avaliar os 
resultados 
Estabelecer 
Relacionamentos...
IInnttrroodduuççããoo aa UUMMLL 
 Uma generalização de casos de uso 
 É um relacionamento de um caso de uso filho com 
um...
IInnttrroodduuççããoo aa UUMMLL 
14/12/14 http://www.alvarofpinheiro.eti.br 104
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para estruturar? 
Avaliar os 
resultados 
Estabelecer 
Relacionamentos...
IInnttrroodduuççããoo aa UUMMLL 
 Na generalização de ator o filho herda o papel 
que o pai pode desempenhar em um caso de...
IInnttrroodduuççããoo aa UUMMLL 
Quais as atividades para estruturar? 
Avaliar os 
resultados 
Estabelecer 
Relacionamentos...
IInnttrroodduuççããoo aa UUMMLL 
Avaliar 
resultados 
14/12/14 http://www.alvarofpinheiro.eti.br 108
IInnttrroodduuççããoo aa UUMMLL 
Mecanismos Auxiliares da UML 
UML é uma linguagem muito extensível e desta 
forma ela pod...
O que é um Estereótipo 
IInnttrroodduuççããoo aa UUMMLL 
Estereótipo é um mecanismo utilizado para estender o vocabulário d...
IInnttrroodduuççããoo aa UUMMLL 
Para que server uma nota? 
Mecanismo que permite a adição de comentários e 
associação do ...
IInnttrroodduuççããoo aa UUMMLL 
O que é uma Propriedades (Tagged Values)? 
Um tagged value é uma extensão de propriedades ...
Próximos SlideShares
Carregando em…5
×

Análise e Modelagem com UML

2.127 visualizações

Publicada em

Análise e Modelagem com a Linguagem de Modelagem Unificada - Unified Modeling Language (UML)

Publicada em: Tecnologia
0 comentários
2 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.127
No SlideShare
0
A partir de incorporações
0
Número de incorporações
539
Ações
Compartilhamentos
0
Downloads
113
Comentários
0
Gostaram
2
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide
  • 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
  • Análise e Modelagem com UML

    1. 1. https://www.facebook.com/alvarofpinheiroaulas/ br.linkedin.com/in/alvarofpinheiro/ IInnttrroodduuççããoo aa MMooddeellaaggeemm ccoomm UUMMLL http://www.alvarofpinheiro.eti.br
    2. 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. 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. 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. 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. 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. 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. 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. 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. 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
    11. 11. IInnttrroodduuççããoo aa UUMMLL Quais são os diagramas da UML? DDiiaaggrraammaa ddee ccllaasssseess DDiiaaggrraammaa ddee oobbjjeettooss DDiiaaggrraammaa ddee ppaaccootteess DDiiaaggrraammaa ddee eessttrruuttuurraa ccoommppoossttaa DDiiaaggrraammaa ddee ccaassooss ddee uussoo DDiiaaggrraammaa ddee ccoommppoonneenntteess DDiiaaggrraammaa ddee ddiissttrriibbuuiiççããoo DDiiaaggrraammaa ddee mmááqquuiinnaa ddee eessttaaddooss DDiiaaggrraammaa ddee aattiivviiddaaddeess DDiiaaggrraammaa ddee iinntteerraaççããoo DDiiaaggrraammaa ddee sseeqqüüêênncciiaa DDiiaaggrraammaa ddee ccoollaabboorraaççããoo DDiiaaggrraammaa ddee TTeemmppoo DDiiaaggrraammaa GGeerraall ddee IInntteerraaççããoo 14/12/14 http://www.alvarofpinheiro.eti.br 11
    12. 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. 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. 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. 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. 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. 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
    18. 18. IInnttrroodduuççããoo aa UUMMLL Exemplo em CSharp ou Java ccllaassss PPeessssooaa {{ iinntt iiddaaddee;; ssttrriinngg nnoommee;; }} ...... PPeessssooaa pp11 == nneeww PPeessssooaa(());; PPeessssooaa pp22 == nneeww PPeessssooaa(());; pp11..nnoommee == ““MMaarríílliiaa””;; PP22..nnoommee == ““GGaabbrriieell””;; 14/12/14 http://www.alvarofpinheiro.eti.br 18
    19. 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. 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
    21. 21. IInnttrroodduuççããoo aa UUMMLL Exemplo de operações em CSharp ou Java ppuubblliicc ccllaassss sseennssoorrDDeeTTeemmppeerraattuurraa {{ iinntt tteemmppeerraattuurraa;; iinntt aallaarrmmee;; ppuubblliicc vvooiidd rreeiinniicciiaarr(()){{ tteemmppeerraattuurraa == 00;; }} ppuubblliicc iinntt lleerrTTeemmppeerraattuurraa(()){{ rreettuurrnn tteemmppeerraattuurraa;; }} ppuubblliicc vvooiidd ddeeffiinniirrAAllaarrmmee(( iinntt tteemmppeerr)){{ aallaarrmmee == tteemmppeerr;; }} }} SensorTemperatura reiniciar() definirAlarme(temper: int) lerTemperatura(): int 14/12/14 http://www.alvarofpinheiro.eti.br 21
    22. 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. 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. 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. 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. 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. 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
    28. 28. IInnttrroodduuççããoo aa UUMMLL Exemplo de Interface em CSharp iinntteerrffaaccee DDVVDD {{ vvooiidd vvoollttaarr(());; vvooiidd aavvaannccaarr(());; vvooiidd ppaarraarr(());; vvooiidd ttooccaarr(());; }} ccllaassss DDVVDDSSoonnyy:: DDVVDD{{ vvooiidd vvoollttaarr(()){{}} vvooiidd aavvaannccaarr(()){{}} vvooiidd ppaarraarr(()){{}} vvooiidd ttooccaarr(()){{}} }} ccllaassss DDVVDDGGrraaddiieennttee:: DDVVDD{{ vvooiidd vvoollttaarr(()){{}} vvooiidd aavvaannccaarr(()){{}} vvooiidd ppaarraarr(()){{}} vvooiidd ttooccaarr(()){{}} }} 14/12/14 http://www.alvarofpinheiro.eti.br 28
    29. 29. IInnttrroodduuççããoo aa UUMMLL Exemplo de Interface em Java iinntteerrffaaccee DDVVDD {{ vvooiidd vvoollttaarr(());; vvooiidd aavvaannccaarr(());; vvooiidd ppaarraarr(());; vvooiidd ttooccaarr(());; }} ccllaassss DDVVDDSSoonnyy iimmpplleemmeennttss DDVVDD{{ vvooiidd vvoollttaarr(()){{}} vvooiidd aavvaannccaarr(()){{}} vvooiidd ppaarraarr(()){{}} vvooiidd ttooccaarr(()){{}} }} ccllaassss DDVVDDGGrraaddiieennttee iimmpplleemmeennttss DDVVDD{{ vvooiidd vvoollttaarr(()){{}} vvooiidd aavvaannccaarr(()){{}} vvooiidd ppaarraarr(()){{}} vvooiidd ttooccaarr(()){{}} }} 14/12/14 http://www.alvarofpinheiro.eti.br 29
    30. 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
    31. 31. IInnttrroodduuççããoo aa UUMMLL Exemplo de classe abstrata em CSharp e Java aabbssttrraacctt ccllaassss PPoolliiggoonnoo {{ vvooiidd mmoovveerr((iinntt xx,,iinntt yy)) {{......}} ddoouubbllee aarreeaa(()){{......}} iinntt nnuummeerrooLLaaddooss(());; }} ccllaassss QQuuaaddrriillaatteerroo:: PPoolliiggoonnoo{{ iinntt nnuummeerrooLLaaddooss(()){{rreettuurrnn 44;;}} }} aabbssttrraacctt ccllaassss PPoolliiggoonnoo {{ vvooiidd mmoovveerr((iinntt xx,,iinntt yy)) {{......}} ddoouubbllee aarreeaa(()){{......}} iinntt nnuummeerrooLLaaddooss(());; }} ccllaassss QQuuaaddrriillaatteerroo eexxtteennddss PPoolliiggoonnoo{{ iinntt nnuummeerrooLLaaddooss(()){{rreettuurrnn 44;;}} }} 14/12/14 http://www.alvarofpinheiro.eti.br 31
    32. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
    54. 54. IInnttrroodduuççããoo aa UUMMLL Resumo de Diagrama de Classe 14/12/14 http://www.alvarofpinheiro.eti.br 54
    55. 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. 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. 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. 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. 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. 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
    61. 61. IInnttrroodduuççããoo aa UUMMLL Diagrama de Classe vrs Diagrama de Objeto 14/12/14 http://www.alvarofpinheiro.eti.br 61
    62. 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. 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. 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. 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. 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. 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
    68. 68. IInnttrroodduuççããoo aa UUMMLL Um exemplo de Diagrama de Seqüência 14/12/14 http://www.alvarofpinheiro.eti.br 68
    69. 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. 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. 71. IInnttrroodduuççããoo aa UUMMLL Quais os operadores do Diagrama de Seqüência? 14/12/14 http://www.alvarofpinheiro.eti.br 71
    72. 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. 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. 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. 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. 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. 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
    78. 78. Outros Diagramas IInnttrroodduuççããoo aa UUMMLL Diagrama de Atividades Diagrama de Estados 14/12/14 http://www.alvarofpinheiro.eti.br 78
    79. 79. IInnttrroodduuççããoo aa UUMMLL Para que Atores e Casos de Uso? 14/12/14 http://www.alvarofpinheiro.eti.br 79
    80. 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. 81. IInnttrroodduuççããoo aa UUMMLL Localizar atores Stakeholders definidos no doc de visão 14/12/14 http://www.alvarofpinheiro.eti.br 81
    82. 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. 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. 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. 85. IInnttrroodduuççããoo aa UUMMLL Para cada ator.... Identificar Casos de Uso 14/12/14 http://www.alvarofpinheiro.eti.br 85
    86. 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. 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
    88. 88. IInnttrroodduuççããoo aa UUMMLL Coordenador 14/12/14 http://www.alvarofpinheiro.eti.br 88
    89. 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. 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. 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. 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
    93. 93. IInnttrroodduuççããoo aa UUMMLL 14/12/14 http://www.alvarofpinheiro.eti.br 93
    94. 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
    95. 95. IInnttrroodduuççããoo aa UUMMLL Avaliar resultados 14/12/14 http://www.alvarofpinheiro.eti.br 95
    96. 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. 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
    98. 98. IInnttrroodduuççããoo aa UUMMLL 14/12/14 http://www.alvarofpinheiro.eti.br 98
    99. 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. 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
    101. 101. IInnttrroodduuççããoo aa UUMMLL 14/12/14 http://www.alvarofpinheiro.eti.br 101
    102. 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. 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
    104. 104. IInnttrroodduuççããoo aa UUMMLL 14/12/14 http://www.alvarofpinheiro.eti.br 104
    105. 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. 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. 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
    108. 108. IInnttrroodduuççããoo aa UUMMLL Avaliar resultados 14/12/14 http://www.alvarofpinheiro.eti.br 108
    109. 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. 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. 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. 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

    ×