Introdução a Modelagem com UMLIntrodução a Modelagem com UML
https://www.facebook.com/alvarofpinheiroaulas/br.linkedin.com/in/alvarofpinheiro/
http://www.alvarofpinheiro.eti.br
O que é a UML?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
Introdução a UMLIntrodução a UML
Como surgiu a UML?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
Introdução a UMLIntrodução a UML
Como foi a evolução da UML?
14/12/14 http://www.alvarofpinheiro.eti.br 4
Nov ‘97 UML aprovada pelo OMG
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
O que é OO?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”
14/12/14 http://www.alvarofpinheiro.eti.br 6
“Orientação à objetos é uma estratégia para organizar sistemas como coleções de objetos que interagem entre si e combinam dados e comportamento”
Introdução a UMLIntrodução a UML
Quais os princípios básicos da OO?
14/12/14 http://www.alvarofpinheiro.eti.br 7
Abstração EncapsulamentoModularidade Hierarquia
Orientação à Objetos
Introdução a UMLIntrodução a UML
O que é um Objeto?
“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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
Quais os conceitos básicos da OO?
Objeto
ClasseAtributo
Operação
Interface (Polimorfismo)
Herança
Pacote
Relacionamentos
14/12/14 http://www.alvarofpinheiro.eti.br 10
Introdução a UMLIntrodução a UML
Quais são os diagramas da UML?Diagrama de classesDiagrama de classesDiagrama de objetosDiagrama de objetosDiagrama de pacotesDiagrama de pacotesDiagrama de estrutura compostaDiagrama de estrutura compostaDiagrama de casos de usoDiagrama de casos de usoDiagrama de componentesDiagrama de componentesDiagrama de distribuiçãoDiagrama de distribuiçãoDiagrama de máquina de estadosDiagrama de máquina de estadosDiagrama de atividadesDiagrama de atividadesDiagrama de interaçãoDiagrama de interação
Diagrama de seqüênciaDiagrama de seqüênciaDiagrama de colaboraçãoDiagrama de colaboraçãoDiagrama de TempoDiagrama de TempoDiagrama Geral de InteraçãoDiagrama Geral de Interação
14/12/14 http://www.alvarofpinheiro.eti.br 11
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
O que são classes?
Classes especificam a estrutura e o comportamento dos objetosClasses 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
Introdução a UMLIntrodução a UML
Um exemplo de classe
14/12/14 http://www.alvarofpinheiro.eti.br 14
Classe
CursoPropriedades
NomeLocalizaçãoDuraçãoCréditos
Comportamento
Adicionar um alunoRemover um alunoAtribuir professorAtribuir sala
Introdução a UMLIntrodução a UML
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.
14/12/14 http://www.alvarofpinheiro.eti.br 15
Professor
Introdução a UMLIntrodução a UML
O que são atributos?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).
14/12/14 http://www.alvarofpinheiro.eti.br 16
•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
•Adicionar um aluno•Remover um aluno•Atribuir professor•Atribuir sala
•Nome•Localização•Duração•Créditos
Introdução a UMLIntrodução a UML
Atributos na UML são?
14/12/14 http://www.alvarofpinheiro.eti.br 17
Professor
titulonome
Classe
Pessoa
idade: intnome: String
Nome do Atributo
Classe
Tipo do Atributo
Nome do Atributo
Introdução a UMLIntrodução a UML
Exemplo em CSharp ou Java
14/12/14 http://www.alvarofpinheiro.eti.br 18
classclass Pessoa { Pessoa {intint idade; idade;string nome;string nome;
}}
......Pessoa p1 = new Pessoa();Pessoa p1 = new Pessoa();Pessoa p2 = new Pessoa();Pessoa p2 = new Pessoa();
p1.nome = “Marília”;p1.nome = “Marília”;P2.nome = “Gabriel”;P2.nome = “Gabriel”;
Introdução a UMLIntrodução a UML
O que são operações?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).
14/12/14 http://www.alvarofpinheiro.eti.br 19
• temperatura = 23 • alarme = 50SensorDeTemperatura
•reiniciar•definirAlarme•lerTemperatura
•temperatura•alarme
• temperatura = 50 • alarme = 100
• temperatura = 20 • alarme = 5
Introdução a UMLIntrodução a UML
Exemplo de operação em UML
14/12/14 http://www.alvarofpinheiro.eti.br 20
SensorTemperatura
reiniciar()definirAlarme()lerTemperatura()
Especificação das operações
SensorTemperatura
reiniciar()definirAlarme(temper: int)lerTemperatura(): int
Introdução a UMLIntrodução a UML
Exemplo de operações em CSharp ou Java
14/12/14 http://www.alvarofpinheiro.eti.br 21
public classpublic class sensorDeTemperatura { sensorDeTemperatura { int temperatura;int temperatura; int alarme;int alarme;
public void reiniciar(){public void reiniciar(){ temperatura = 0;temperatura = 0; }}
public int lerTemperatura(){public int lerTemperatura(){ return temperatura;return temperatura; }}
public void definirAlarme(public void definirAlarme( int temper){int temper){ alarme = temper;alarme = temper; }}}}
SensorTemperatura
reiniciar()definirAlarme(temper: int)lerTemperatura(): int
Introdução a UMLIntrodução a UML
Resumindo, um classe é formada por?
14/12/14 http://www.alvarofpinheiro.eti.br 22
Nome da Classe DVD
Atributos Operações
HoraStatus estrutura
comportamentoVoltar()Pausar()Adiantar()Parar()Tocar()
Introdução a UMLIntrodução a UML
O que é polimorfismo?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.
14/12/14 http://www.alvarofpinheiro.eti.br 23
Fabricante A Fabricante B Fabricante C
Introdução a UMLIntrodução a UML
Segue um exemplo de Interface
14/12/14 http://www.alvarofpinheiro.eti.br 24
parar()parar()
pausar()pausar()
avancar()avancar()
voltar()voltar()
alterarHora()alterarHora()
tocar()tocar()
carregarDisco()carregarDisco()
Introdução a UMLIntrodução a UML
Mais sobre Interface
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 interfacesprovêem implementação para os métodos especificados
em uma interface
14/12/14 http://www.alvarofpinheiro.eti.br 25
Introdução a UMLIntrodução a UML
Segue a forma icônica da Interface na UML
14/12/14 http://www.alvarofpinheiro.eti.br 26
Forma
Relacionamentos de realização
Tubo
Piramide
Cubo
Introdução a UMLIntrodução a UML
Segue forma canônica de Interface na UML
14/12/14 http://www.alvarofpinheiro.eti.br 27
Cubo
Tubo
Piramide
DesenharMoverRotacionar
<<interface>>Forma
Relacionamentos de realização
Introdução a UMLIntrodução a UML
Exemplo de Interface em CSharp
14/12/14 http://www.alvarofpinheiro.eti.br 28
interfaceinterface DVD { DVD {void voltar();void voltar();void avancar();void avancar();void parar();void parar();void tocar();void tocar();
}}
class DVDSony: DVD{class DVDSony: DVD{void voltar(){}void voltar(){}void avancar(){}void avancar(){}void parar(){}void parar(){}void tocar(){}void tocar(){}
}}
class DVDGradiente: DVD{class DVDGradiente: DVD{void voltar(){}void voltar(){}void avancar(){}void avancar(){}void parar(){}void parar(){}void tocar(){}void tocar(){}
}}
Introdução a UMLIntrodução a UML
Exemplo de Interface em Java
14/12/14 http://www.alvarofpinheiro.eti.br 29
interfaceinterface DVD { DVD {void voltar();void voltar();void avancar();void avancar();void parar();void parar();void tocar();void tocar();
}}
class DVDSony implements DVD{class DVDSony implements DVD{void voltar(){}void voltar(){}void avancar(){}void avancar(){}void parar(){}void parar(){}void tocar(){}void tocar(){}
}}
class DVDGradiente class DVDGradiente implements DVD{implements DVD{
void voltar(){}void voltar(){}void avancar(){}void avancar(){}void parar(){}void parar(){}void tocar(){}void tocar(){}
}}
Introdução a UMLIntrodução a UML
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).
14/12/14 http://www.alvarofpinheiro.eti.br 30
Poligono
Quadrilatero
Triangulo
Pentagono
•Mover(x,y)•Area()•numeroLados()
São tipos de polígono
Introdução a UMLIntrodução a UML
Exemplo de classe abstrata em CSharp e Java
14/12/14 http://www.alvarofpinheiro.eti.br 31
abstract classabstract class Poligono { Poligono {void mover(int x,int y)void mover(int x,int y)
{...}{...}double area(){...}double area(){...}int numeroLados();int numeroLados();
}}classclass Quadrilatero: Poligono{ Quadrilatero: Poligono{
int numeroLados(){return 4;}int numeroLados(){return 4;}}} abstract classabstract class Poligono { Poligono {
void mover(int x,int y)void mover(int x,int y){...}{...}
double area(){...}double area(){...}int numeroLados();int numeroLados();
}}classclass Quadrilatero extends Poligono{ Quadrilatero extends Poligono{
int numeroLados(){return 4;}int numeroLados(){return 4;}}}
Introdução a UMLIntrodução a UML
Que tipos de classes existem?
14/12/14 http://www.alvarofpinheiro.eti.br 32
Classes
• Atributos• Métodos Classes Abstratas
• Atributos• Métodos• Assinatura de Métodos
Interfaces
• Assinaturas dos métodos
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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.
14/12/14 http://www.alvarofpinheiro.eti.br 34
nome do pacote
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
Quais são os tipos de relacionamentos no Diagrama de Classe?
AssociaçãoAgregação
Composição
Dependência
Generalização
Realização
14/12/14 http://www.alvarofpinheiro.eti.br 36
Introdução a UMLIntrodução a UML
O que é Associação?
14/12/14 http://www.alvarofpinheiro.eti.br 37
Professor
Professor Universidade
Universidade
Trabalha para
Associação
Nome da associação
Classe
Empregado Empregador
Papéis
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.
Introdução a UMLIntrodução a UML
O que é Multiplicidade?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
14/12/14 http://www.alvarofpinheiro.eti.br 38
DisciplinaEstudante
Multiplicidade
1..*1
Introdução a UMLIntrodução a UML
O que é Navegação?
Especifica a direção da associação
Associações são bidirecionais por default
14/12/14 http://www.alvarofpinheiro.eti.br 39
DisciplinaEstudante
Navegação
1..*1
Introdução a UMLIntrodução a UML
O que é Agregação?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”.
14/12/14 http://www.alvarofpinheiro.eti.br 40
DisciplinaEstudante
Todo ParteAgregação
Introdução a UMLIntrodução a UML
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.
14/12/14 http://www.alvarofpinheiro.eti.br 41
PainelWindow
Todo ParteComposição
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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.
14/12/14 http://www.alvarofpinheiro.eti.br 43
class Order { class Order { private Map _lineItems; private Map _lineItems; public OrderLine getLineItem (Product aProduct){}public OrderLine getLineItem (Product aProduct){} public void addLineItem (Number amount, Product forProduct){}public void addLineItem (Number amount, Product forProduct){}}}
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
Exemplo de Dependência em CSharp e Java
14/12/14 http://www.alvarofpinheiro.eti.br 45
classclass Log { Log { ...... void gravar(){void gravar(){
Arquivo aArquivo a =...; =...; a.escrever(...);a.escrever(...); }}}}
classclass Arquivo { Arquivo { ...... void salvar(void salvar(StreamStream dados){ dados){ ...... }}}}
OBS: Pode existir relacionamento de dependência entre vários elementos de UML
Classe
Pacote
PacoteFornecedor
FornecedorCliente
PacoteCliente
Introdução a UMLIntrodução a UML
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.
14/12/14 http://www.alvarofpinheiro.eti.br 46
O objeto da classe filha “herda” todas as características da classe pai
Introdução a UMLIntrodução a UML
Então, o que Herança?
14/12/14 http://www.alvarofpinheiro.eti.br 47
Animal
LeãoHomem
Mamífero Ave
Class Animal{...
}
Class Mamifero extends Animal{...
}
Class Ave extends Animal{...
}
Class Homem extends Mamifero{...
}
Introdução a UMLIntrodução a UML
A Herança pode ser de que tipo?
Simples quando: uma classe herda de uma outra
14/12/14 http://www.alvarofpinheiro.eti.br 48
Círculoraiocentro
desenhar()
Retânguloverticesdesenhar()diagonal()
Figuracorlargura da linhadesenhar()selecionar()
Subclasses
Superclasse(pai)
Relacionamentode Generalização
Introdução a UMLIntrodução a UML
A Herança pode ser de que tipo?
Múltipla quando: classes herdando de mais de uma classe
14/12/14 http://www.alvarofpinheiro.eti.br 49
Mamífero AnimalVoadorHerançamú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?
Introdução a UMLIntrodução a UML
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.
14/12/14 http://www.alvarofpinheiro.eti.br 50
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”
Introdução a UMLIntrodução a UML
Como representar uma Realização?
14/12/14 http://www.alvarofpinheiro.eti.br 51
Realização
SubsistemaClasse
Caso de uso
Componente
Realização de Caso de uso
Pode ser usado em diferentes tipos de elementos
Introdução a UMLIntrodução a UML
O que é Visibilidade?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
Introdução a UMLIntrodução a UML
O que é uma restrição?
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
14/12/14 http://www.alvarofpinheiro.eti.br 53
Professor Departamento{subset}
Funcionário
Coordenador1..* 1
3 1
Introdução a UMLIntrodução a UML
Resumo de Diagrama de Classe
14/12/14 http://www.alvarofpinheiro.eti.br 54
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
Qual a relação entre Classe e Objeto?
Classe é uma definição abstrata de um objetoEla define a estrutura e o comportamento dos objetos
Serve como template para criação de objetos
Objetos são agrupados em classes
14/12/14 http://www.alvarofpinheiro.eti.br 58
Curso
•Adicionar um aluno•Remover um aluno•Atribuir professor•Atribuir sala
•Nome•Localização•Duração•Créditos
•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
Introdução a UMLIntrodução a UML
Como representar um objeto em UML?
14/12/14 http://www.alvarofpinheiro.eti.br 59
: Professor p :Professor
pApenas o nome da classe
Apenas o nome doobjeto
Nome da classe e do objeto
Múltiplos objetos
: Professor: Professor
p: Processo[esperando]
objeto com o estado explícito
: Professor
titulo = “Mestre”Nome = “Pascoal”
Objeto com valoresde atributos
Introdução a UMLIntrodução a UML
Exemplo de criação de objetos em CSharp e Java
14/12/14 http://www.alvarofpinheiro.eti.br 60
classclass Pessoa { Pessoa {......
}}
......Pessoa p1 = new Pessoa();Pessoa p1 = new Pessoa();Pessoa p2 = new Pessoa();Pessoa p2 = new Pessoa();
p1.nome = “Pascoal”;p1.nome = “Pascoal”;p2.nome = “Maria”;p2.nome = “Maria”;
Introdução a UMLIntrodução a UML
Diagrama de Classe vrs Diagrama de Objeto
14/12/14 http://www.alvarofpinheiro.eti.br 61
Introdução a UMLIntrodução a UML
O que é um Diagrama de Estrutura Composta?
14/12/14 http://www.alvarofpinheiro.eti.br 62
Permite desdobrar um classe em partes menoresVisualizar 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
controls[0..* ]
generators
display
TV Cont rol API
Parte
Conector
PortaDelegação
Interface requerida
Interface Ofericida
Introdução a UMLIntrodução a UML
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
14/12/14 http://www.alvarofpinheiro.eti.br 63
Em UML 1.4Em UML 2.0
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
Qual a representação de um Diagrama de Seqüência?
14/12/14 http://www.alvarofpinheiro.eti.br 67
:Cliente :Fornecedor
Objeto cliente Objeto fornecedor
Foco de controle
Numeração hierárquica para as mensagens
Mensagem reflexiva
1.1: Realize outra responsabilidade
1: Realize responsabilidade
Mensagem
Introdução a UMLIntrodução a UML
Um exemplo de Diagrama de Seqüência
14/12/14 http://www.alvarofpinheiro.eti.br 68
Introdução a UMLIntrodução a UML
Quais os aspectos de um Diagrama de Seqüência?
14/12/14 http://www.alvarofpinheiro.eti.br 69
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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
Quais os operadores do Diagrama de Seqüência?
14/12/14 http://www.alvarofpinheiro.eti.br 71
Introdução a UMLIntrodução a UML
Um exemplo 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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
Para que serve o Diagrama de Tempo?
É focado em restrições tempo para um ou mais objetosRelaciona 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
Introdução a UMLIntrodução a UML
Outros Diagramas
Diagrama de Atividades
Diagrama de Estados
14/12/14 http://www.alvarofpinheiro.eti.br 78
Introdução a UMLIntrodução a UML
Para que Atores e Casos de Uso?
14/12/14 http://www.alvarofpinheiro.eti.br 79
Introdução a UMLIntrodução a UML
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
Quais as atividades para localizar?
14/12/14 http://www.alvarofpinheiro.eti.br 80
Introdução a UMLIntrodução a UML
Localizar atores
Stakeholders definidos no doc
de visão
14/12/14 http://www.alvarofpinheiro.eti.br 81
Introdução a UMLIntrodução a UML
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
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
Quais as atividades para localizar?
14/12/14 http://www.alvarofpinheiro.eti.br 83
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
Para cada ator....
Identificar Casos de Uso
14/12/14 http://www.alvarofpinheiro.eti.br 85
Introdução a UMLIntrodução a UML
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
Quais as atividades para localizar?
14/12/14 http://www.alvarofpinheiro.eti.br 86
Introdução a UMLIntrodução a UML
É 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
Introdução a UMLIntrodução a UML
14/12/14 http://www.alvarofpinheiro.eti.br 88
Coordenador
Introdução a UMLIntrodução a UML
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
Quais as atividades para localizar?
14/12/14 http://www.alvarofpinheiro.eti.br 89
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Quais as atividades para localizar?
14/12/14 http://www.alvarofpinheiro.eti.br 91
Introdução a UMLIntrodução a UML
Apresentar o Modelo de Casos
de Uso em Diagramas de Casos de Uso
14/12/14 http://www.alvarofpinheiro.eti.br 92
Introdução a UMLIntrodução a UML
14/12/14 http://www.alvarofpinheiro.eti.br 93
Introdução a UMLIntrodução a UML
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
Quais as atividades para localizar?
14/12/14 http://www.alvarofpinheiro.eti.br 94
Introdução a UMLIntrodução a UML
Avaliar resultados
14/12/14 http://www.alvarofpinheiro.eti.br 95
Introdução a UMLIntrodução a UML
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
Quais as atividades para estruturar?
14/12/14 http://www.alvarofpinheiro.eti.br 96
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
14/12/14 http://www.alvarofpinheiro.eti.br 98
Introdução a UMLIntrodução a UML
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
Quais as atividades para estruturar?
14/12/14 http://www.alvarofpinheiro.eti.br 99
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
14/12/14 http://www.alvarofpinheiro.eti.br 101
Introdução a UMLIntrodução a UML
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
Quais as atividades para estruturar?
14/12/14 http://www.alvarofpinheiro.eti.br 102
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
14/12/14 http://www.alvarofpinheiro.eti.br 104
Introdução a UMLIntrodução a UML
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
Quais as atividades para estruturar?
14/12/14 http://www.alvarofpinheiro.eti.br 105
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
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
Quais as atividades para estruturar?
14/12/14 http://www.alvarofpinheiro.eti.br 107
Introdução a UMLIntrodução a UML
Avaliar resultados
14/12/14 http://www.alvarofpinheiro.eti.br 108
Introdução a UMLIntrodução a UML
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
Introdução a UMLIntrodução a UML
O que é um EstereótipoEstereó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/12/14 110por Álvaro F Pinheiro14/12/14 110http://www.alvarofpinheiro.eti.br
Introdução a UMLIntrodução a UML
Para que server uma nota?
Mecanismo que permite a adição de comentários e associação do mesmo a qualquer elemento de UML.
14/12/14 http://www.alvarofpinheiro.eti.br 111
LeitoraCartao
Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.
Introdução a UMLIntrodução a UML
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.
14/12/14 http://www.alvarofpinheiro.eti.br 112
Cliente{persistence}
LeitoraCartao {location=server}
Introdução a UMLIntrodução a UML
Top Related