Buscar

UML - Diagrama de Classes - SourceInnovation

Prévia do material em texto

18/09/13 UML - Diagrama de Classes - SourceInnovation
www.sourceinnovation.com.br/index.php/UML_-_Diagrama_de_Classes 1/8
UML - Diagrama de Classes
De SourceInnovation
Índice
1 Introdução
2 Conceito de Classes
3 Herança
4 Polimorfismo
5 Relacionamentos entre classes
5.1 Associações
5.2 Dependência
5.3 Agregação
5.4 Composição
6 Diagrama de Classes
6.1 Exemplos
7 Referências
Introdução
João
A UML(Unified Modeling Language ou Linguagem de Modelagem Unificada) é uma linguagem visual utilizada para modelar sistemas
computacionais por meio do paradigma da Orientação a Objetos. Essa linguagem tornou-se, nos ultimos anos a linguagem-padrão de
modelagem de software adotada internacionalmente pela industria da Engenharia de software.
Ressalto aqui que a UML não é uma linguagem de programação, e sim uma linguagem de modelagem.
A diferença da linguagem de modelagem para a linguagem de programação está no fato de que a linguagem de modelagem é um meio de
guiar engenheiros e técnicos sobre os requisitos, o comportamento, estrutura lógica e até necessidades fisicas de um determinado software.
A UML surgiu da união de três métodos de modelagem, o método de Booch, o método OMT de Jacobson e o método OOSE. Que foram
os métodos mais populares entre os profissionais da área até meados da década de 90.
Conceito de Classes
Michelly
Em POO , os problemas de programação são pensados em termos de objetos, nada de funções, rotinas, nada disto, o assunto são os
objetos, propriedades e métodos.
Um exemplo de sistema de vendas de carros , é pensar que tudo que tenha nesta loja seja tratados como objetos.
Cliente é um objeto , Carro é um objeto , Vendedor é um objeto .
Definição de um objeto : " Um objeto é um termo que usamos para representar uma entidade do mundo real . Tendo como características e
comportamentos nesse mundo.
Exemplo de um objeto:
Uma Ferrari é um objeto. Ele tem como características a cor, peso, quantidade de portas, modelo, ano, etc. Também tem ações como frear,
buzinar, acelerar, abrir os vidros, trocar de marchas, etc. Portanto programar Orientado a Objetos é você fazer essa abstração do mundo real e
transforma-la em código.
Em termos de POO para poder tratar os objetos precisamos criar as classes.
18/09/13 UML - Diagrama de Classes - SourceInnovation
www.sourceinnovation.com.br/index.php/UML_-_Diagrama_de_Classes 2/8
Definição de Classe : É uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e
semântica.
Uma classe é representada por um retângulo que pode possuir até três divisões:
 - Nome da classe;
 - Atributos da classe;
 - Métodos da classe.
Visibilidade de atributos e operações :
Para poder representar a visibilidade dos atributos e operações em uma classe utiliza-se as seguintes marcas e significados:
- (+) público - visível em qualquer classe
- (#) protegido - qualquer descendente pode usar
- (-) privado - visível somente dentro da classe
Herança
Michelly
Herança é um mecanismo que permite que características comuns a diversas classes com comportamentos comuns ou parecidos, sejam
abstraídas e centralizadas em uma classe base, ou superclasse. Este permite poupar tempo quando se trata de criar classes que são
similares a outras.
Usando a analogia de pai e filho , o filho herda características do pai , e assim em POO o PAI será a SUPERCLASSE e o FILHO será
SUBCLASSE.
Exemplo :
Uma Ferrari é um carro. Logo ele foi herdado da classe carro, pois contém as características comuns de um carro. Assim a classe Carro será a
SUPERCLASSE. E a classe Ferrari será a SUBCLASSE.
A partir dessa superclasse outras classes podem ser especificadas. Portanto uma subclasse que é uma classe herdada da superclasse recebe sem
codificação extra as características da superclasse. Ainda podemos adicionar elementos particulares a está subclasse.
Em Java :
public class Ferrari extends Carro
18/09/13 UML - Diagrama de Classes - SourceInnovation
www.sourceinnovation.com.br/index.php/UML_-_Diagrama_de_Classes 3/8
Polimorfismo
Michelly
Analisando a palavra Polimorfismo, ela significa "muitas formas". Essas formas, em nosso contexto de programação, são as subclasses/objetos
criados a partir de uma classe maior, mais geral, ou abstrata. Polimorfismo é a capacidade de controlar todas as formas de uma maneira mais
simples e geral, sem ter que se preocupar com cada objeto especificamente.
Com o polimorfismo vamos ter um controle maior sobre as subclasses sem ter que nos preocupar especificamente com cada uma delas, pois cada
uma terá autonomia para agir de uma maneira diferente.
Formas de polimorfismo:
Sobrescrita de métodos
Esta utilidade nos permite escrever numa subclasse um ou mais métodos presentes numa das superclasses podendo alterar o comportamento da
superclasse.
Exemplo : Aumento no preço dos carros .
Em uma loja de carros , todo ano os carros tem um aumento.
A Ferrari teve um aumento de 5%. O Jaguar teve um aumento de 4%.
Note que todos sejam "Carro", mas cada objeto terá que calcular seu aumento de forma diferente, pois terão diferentes valores de aumento. E
para que isso seja feito em OO, será necessário criar um método aumento() em cada subclasse.
Isso é um exemplo de polimorfismo de sobrescrita de métodos : embora todos os objetos sejam "Carro", eles terão uma forma diferente de agir,
pois em cada subclasse implementamos os métodos de maneira diferente.
18/09/13 UML - Diagrama de Classes - SourceInnovation
www.sourceinnovation.com.br/index.php/UML_-_Diagrama_de_Classes 4/8
Lembrando que a sobrescrita de métodos só é valida quando o método reescrito na subclasse tem exatamente a mesma identificação (nome, tipos,
etc.) do método da superclasse.
Sobrecarga de método ou construtor
O Polimorfismo ainda permite que numa mesma classe tenhamos métodos com o mesmo nome, desde que o número ou tipos de parâmetros
passados sejam diferentes.
A sobrecarga de métodos é uma ferramenta poderosa, pois nos permite criar vários métodos com o mesmo nome, isso facilita o entendimento de
problemas mais complexos, pois não é necessária a criação de nomes de funcionalidades sem sentido aparente.
Relacionamentos entre classes
18/09/13 UML - Diagrama de Classes - SourceInnovation
www.sourceinnovation.com.br/index.php/UML_-_Diagrama_de_Classes 5/8
Othávio
• Os relacionamentos possuem:
Nome: descrição dada ao relacionamento (faz, tem, possui,...).
Sentido de leitura.
Navegabilidade: indicada por uma seta no fim do relacionamento.
Multiplicidade:
Tipo: associação (agregação, composição), generalização e dependência.
Papéis: desempenhados por classes em um relacionamento.
Associações
Othávio
Relacionamentos: Associação 
• Agregação
É um tipo especial de associação.
Utilizada para indicar “todo-parte”.
Ex.:
um objeto “parte” pode fazer parte de vários objetos “todo”.
• Composição
É uma variante semanticamente mais “forte” da agregação.
Os objetos “parte” só podem pertencer a um único objeto “todo” e têm o seu tempo de vida coincidente com o dele.
Ex.:
18/09/13 UML - Diagrama de Classes - SourceInnovation
www.sourceinnovation.com.br/index.php/UML_-_Diagrama_de_Classes 6/8
Quando o “todo” morre todas as suas “partes” também morrem.
Dependência
Othávio
• Relacionamento: Dependência
Representa que a alteração de um objeto (o objeto indepedendente) pode afetar outro objeto (o objeto dependente).
Ex:
 
-Obs.:
A classe cliente depende de algum serviço da classe fornecedor.
A mudança de estado do fornecedor afeta o objeto cliente.
A classe cliente não declara nos seus atributos um objeto do tipo fornecedor.
Fornecedor é recebido por parâmetro de método.
Agregação
Maykell
Tipo especial de associação que tenta demonstrarque as informações de um objeto-todo precisam ser complementadas pelas informações
contidas em um (ou mais) objetos-parte.
A existência do objeto-parte faz sentido mesmo não existindo o objeto-todo.
Um objeto “parte” pode fazer parte de vários objetos “todo”.
A associação de agregação pode, em muitos casos, ser substituída por uma associação binária simples, dependendo da visão de quem faz a
modelagem.
As palavras chaves usadas para identificar uma agregação são: "consiste em", "contém", "é parte de".
Exemplo
Arquivo:Agregação.pdf
Composição
Maykell
Uma forma mais forte de agregação.
Há uma coincidência da vida das partes.
Uma vez criada a parte ela irá viver e morrer com ele.
O “Todo” é responsável pelo gerenciamento da criação e destruição das partes.
Exemplo
18/09/13 UML - Diagrama de Classes - SourceInnovation
www.sourceinnovation.com.br/index.php/UML_-_Diagrama_de_Classes 7/8
Arquivo:Composição.pdf
Diagrama de Classes
Porque modelar um software?
Uma casa precisa ser projetada? Um pedreiro experiente consegue construir uma casa sem precisar 
de um projeto. Agora pensemos se essa casa um dia precisar de um reparo no encanamento ou na fiação 
em um determinado ponto, devemos quebrar toda a parede para reparar um pequeno ponto? essa parede 
não é uma parede de sustentação principal da casa?
Exemplos
João 
Exemplo 1 Hotel:
Arquivo:Hotel.pdf
Exemplo 2 Matrícula:
18/09/13 UML - Diagrama de Classes - SourceInnovation
www.sourceinnovation.com.br/index.php/UML_-_Diagrama_de_Classes 8/8
Arquivo:Matricula.pdf
Maykell
Exemplo 3 Locadora:
Arquivo:Locadora.pdf
Referências
GUEDES, Gilleanes. UML Uma Abordagem Prática. Editora Novatec. São Paulo, 2007. -
(http://www.ebah.com.br/content/ABAAAfQA8AI/uml-abordagem-pratica, acessado em 20/07/2013)
(http://iscte.pt/~ipxa/FBD/fich/DiagClasses.pdf, acessado em 19/07/2013)
(http://docente.ifrn.edu.br/givanaldorocha/disciplinas/engenharia-de-software-licenciatura-em-informatica/diagrama-de-class, acessado em
20/07/2013)
Disponível em "http://www.sourceinnovation.com.br/index.php?title=UML_-_Diagrama_de_Classes&oldid=16578"
Esta página foi modificada pela última vez à(s) 23h17min de 23 de julho de 2013.
Esta página foi acessada 266 vezes.

Continue navegando