Buscar

Orientação à Objetos - UML

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

*
*
Modelagem de Sistemas
Prof. Valentino D´Ambrosi Jr.
Seção 2
*
*
Nossas aulas
Seção 1 - 29/01/2014
Seção 2 - 05/02/2014 	
Seção 3 - 12/02/2014 – ED1
Seção 4 - 19/02/2014 
Seção 5 - 21/02/2014 – N1
Seção 6 - 26/02/2014 –ED2
Seção 7 - 05/03/2014 
Seção 8 – 12/03/2014 – N2
Seção 9 - 14/03/2014 – ED3
Seção 10 - 26/03/2014 – U2
*
*
ESTUDO DIRIGIDO
Seção 2 - ED = ED1+ED2+ED3
*
*
Orientação a Objetos - Conceitos
*
*
UML – Classes
*
*
Classes
Classe = é a descrição de um conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos.
Representada por uma caixa com no máximo 3 divisões:
*
*
Classes - Conceitos
Cada classe deve ter um nome que seja único, não pode existir outra classe com o mesmo nome.
O nome de uma classe deve ser um substantivo.
O nome de uma classe pode ser composto por mais de uma palavra.
A primeira letra de cada palavra do nome de uma classe deve ser em letra maiúscula.
Exemplos: “Carro” ou “ContaBancária”
*
*
Classes - Atributos
Uma classe pode ter quantos atributos forem necessários ou até mesmo nenhum atributo.
Representa alguma propriedade da classe que está sendo modelada.
Atributo é uma abstração do tipo de dados ou estados que os objetos da classe podem ter.
O nome de um atributo deve ser um substantivo.
A primeira letra de cada palavra, exceto da primeira palavra, deve ser em maiúscula.
Exemplos: marca, dataNascimento.
*
*
Classes - Atributos
Pode ser indicado o tipo de cada atributo e até mesmo o valor inicial dos atributos.
Sintaxe:
[visibilidade] nomeAtributo [:tipo] [=
valor inicial]
Valores de Visibilidade:
+ public (visível por todas as classes)
# protected (visível na classe e na subclasse)
- private (visível apenas na classe).
*
*
Classes - Atributos
Exemplo:
*
*
Classes - Operações
Operação é uma abstração do comportamentode um objeto.
Uma classe pode ter qualquer número deoperações e até mesmo nenhum.
O nome de uma operação é um verbo ou uma locução verbal.
O primeiro caracter de cada palavra do nome de uma operação deve ser maiúsculo, exceto da primeira palavra.
Exemplos: mover(), estáVazio()
*
*
Classes - Operações
Podemos definir o tipo de retorno de uma operação (método).
Podemos definir o tipo e o nome de cada parâmetro de um método.
Sintaxe:
[visibilidade] nomeMetodo
[(parametro1:tipo, parametron : tipo)]
[:tipo de retorno]
Valores de Visibilidade:
+ public (visível por todas as classes)
# protected (visível na classe e na subclasse)
- private (visível apenas na classe).
*
*
Classes - Operações
Exemplo:
*
*
Classes - Organização
Quando representamos uma classe não é preciso exibir todos os atributos e todas as operações.
Não é adequado exibir tudo.
Exibimos somente o conjunto de atributos e operações que sejam relevantes para uma determinada visão.
Para deixar claro que existem mais atributos e operações do que os mostrados termine cada lista com reticências (…).
*
*
Classes - Técnicas de Modelagem
Identifique os itens que os usuários ou os implementadores usam para descrever o problema ou a solução.
Utilize a análise baseada em casos de uso para ajudar a descobrir as classes possíveis.
Forneça os atributos e métodos necessários para a execução correta da responsabilidade de cada classe.
*
*
Classes - Técnicas de Modelagem
Exemplo: conjunto de classes modeladas para um sistema de vendas de varejo.
*
*
Classes - Relacionamentos
*
*
Classes - Relacionamentos
É uma conexão entre classes.
É representado graficamente como um caminho, com um tipo diferente de linha para cada tipo de relacionamento.
Tipos:
Dependência
Generalização\Especialização
Associação
Agregação
*
*
Relacionamentos - Dependência
Relacionamento de utilização.
Determinando que uma classeA utiliza informações e serviços de outra classeB.
O inverso pode não ser verdade.
Representada graficamente com linhas tracejadas apontando a classe da qual a outra depende.
Usada quando uma classe depende de outra.
*
*
Relacionamentos - Dependência
Exemplo:
*
*
Relacionamentos
Generalização\Especialização
Relacionamento entre classes gerais (classes mães) e classes mais específicas (classes filha).
 Generalização significa que a classe filha é substituível por uma declaração da classe mãe.
A classe filha herda métodos e atributos da classe mãe.
As classes filhas normalmente tem mais atributos e métodos que a classe mãe.
*
*
Relacionamentos
Generalização\Especialização
Polimorfismo = a operação de uma classe filha, com a mesma assinatura de uma operação da classe mãe, prevalecerá.
Mesma assinatura = métodos com mesmo nome e mesmos parâmetros.
A relação de um classe filha com apenas uma classe mãe é chamada de herança.
A relação de de uma classe filha com mais de uma classe mãe é chamada de herança múltipla.
*
*
Relacionamentos
Generalização\Especialização
Generalização e especialização são dois pontos de vista do mesmo relacionamento.
Se a classe A é uma generalização da classe B, então B é uma especialização de A.
Termos utilizados:
Classe mãe pode ser chamada de superclasse, supertipo ou classe base.
Classe filha pode ser chamada de subclasse, subtipo ou classe herdeira.
*
*
Relacionamentos
Generalização\Especialização
Classes representam um conjunto de objetos que partilham um conjunto comum de propriedades (atributos e métodos).
Alguns objetos bastante semelhantes a outros podem possuir propriedades especificas.
Exemplo:Pessoa, PessoaFísica e PessoaJurídica.
*
*
Relacionamentos
Generalização\Especialização
Exemplo:
*
*
Relacionamentos - Associação
Responsável por conectar duas classes.
Com uma associação você é capaz de navegar de um objeto de uma classe até o objeto de outra classe e vice-versa.
Você pode ter uma conexão da classe A com a própria classe A.
Isso significa vínculos entre objetos da mesma classe.
*
*
Relacionamentos - Associação
Associação entre duas classes é associação binária.
Representada graficamente com uma linha sólida.
Uma associação pode ter um nome (bastante comum).
*
*
Relacionamentos - Associação
Exemplo:
*
*
Relacionamentos - Associação
As classes em uma associação possuem papéis específicos.
É possível, mas não obrigatório, nomear o papel de cada extremidade.
*
*
Associação - Multiplicidade
Associações permitem representar a informação dos limites superior e inferior da quantidade de objetos aos quais o outro pode estar associado.
Cada associação possui uma multiplicidade.
*
*
Associação - Multiplicidade
Exemplo:
*
*
Associação - Multiplicidade
Intervalo específico: o x e o y devem ser substituídos pelos valores do limite inferior e superior.
Pode também ser uma lista de intervalos: 1, 3,5…9, 11.
*
*
Relacionamentos - Agregação
Em uma associação as classes estão no mesmo nível.
Agregação é um relacionamento “todo/parte”.
Onde uma classe representa • o “todo” e a outra classe representa a “parte”.
Um objeto do “todo” tem um objeto da “parte”.
É um tipo especial de associação.
*
*
Relacionamentos - Agregação
Exemplo:
*
*
Modelagem de Dependências - Exercício
Crie uma dependência apontando, a partir da classe que executa a operação, a classe utilizada como parâmetro nessa operação.
Exemplo:
*
*
Modelagem de Herança 
Exercício
Em um conjunto de classes procure responsabilidades, atributos e métodos que sejam comuns a duas ou mais classes.
Coloque as responsabilidades, atributos e métodos comuns em uma classe mais geral 
Exemplo:
*
*
Modelagem de Associação 
Exercício
Para cada par de classes, caso seja necessário navegar entre elas, especifique
uma associação.
Para cada associação especifique uma multiplicidade.
Especifique os nomes dos papéis se ajudar a entender o modelo.
Se uma das classes de uma associação pertencer a outra utilize agregação.
*
*
Modelagem de Associação
Exemplo:
*
*
Identificação de Classes
Em 1983 Russel Abbott propôs a seguinte técnica para identificação de classes:
Reunir diversas fontes de informações do sistema a ser modelado: documento de requisitos, modelos de negócios, conhecimento sobre o domínio etc.
Nesses documentos destacar substantivos e adjetivos.
Sinônimos são removidos.
*
*
Identificação de Classes
Cada termo que sobrar é classificado em uma das 3 situações:
O termo se torna uma classe (classe candidata).
O termo se torna um atributo.
O termo não tem relevância alguma ao problema a ser modelado.
Em seguida destacamos os verbos da documentação.
Verbos com sentido de “ação” (calcular, confirmar, comprar, etc) são métodos em potencial.
*
*
Identificação de Classes
Verbos com sentido de “ter” são agregações em potencial.
Os verbos que sobrarem são associações em potencial.
Resumo:
*
*
UML – Diagrama de Classes
*
*
Diagrama de Classes
É o diagrama encontrado com maior frequência nos modelos de sistemas orientados a objetos.
Modelagem do vocabulário do sistema.
São importantes para • especificação, documentação e visualização do sistema.
*
*
Diagrama de Classes
Exemplo:
*
*
Exercícios
Desenhe um diagrama de classes com relacionamentos, nomes de papéis e multiplicidades para as seguintes situações:
Uma Pessoa pode ser casada com outra Pessoa.
Uma Peça é composta de diversas outras Peças.
*
*
Contato
valentino.junior@gmail.com	
Obrigado pela 
atenção de todos(as).
@
*

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Outros materiais