quarta-feira, novembro 17

Análise e Projeto Orientado a Objetos - Parte 1

Conceitos
  • Objeto: Uma instância de uma classe
  • Classe: Um conjunto de características e funcionalidades que definem objetos
  • Atributos: Características de uma classe, os dados do objeto
  • Métodos: Uma ação executada, algo que o objeto faz
  • Mensagem: Uma chamada de método
Diagrama de classes

Notação: Um retângulo dividido em 3 partes, na primeira fica o nome, na segunda os atributos, na terceira os métodos e caso seja necessário é possível criar mais dicisões.


Visibilidade: Para os atributos e métodos da classe pode ser usada as seguintes notações de visibilidade:
  • + (público): O atributo/método pode ser acessado por qualquer outra classe
  • - (privado): O atributo/método apenas poderá ser acessado pela própria classe
  • # (protegido): O atributo/método poderá ser acessado apenas pela própria classe e suas descendentes na herança
  • ~ (pacote/default): O atributo/método pode ser acessado pelas classes que estão no mesmo pacote
Abstrata, Concreta e Interface: Uma classe abstrata não pode ser instanciada, declara os atributos e métodos mas não implementa. Uma classe concreta não possui métodos abstratos e implementam todos os seus métodos (uma classe simples). Uma inteface é um “contrato” que informa o que a classe deve fazer mas não tem nenhuma implementação.

Relacionamento entre classes

Associação:  Representa uma relação “tem um” ou “existe um”. É quando uma classe faz referência a outra classe num determinado período de tempo. Um objeto pode existir sem que o outro exista. É representado por uma linha entre as duas classes. É subdividido em:

    Agregação: Uma relação forte “tem um” que define uma propriedade, quando a classe que se relaciona deixa de existir, a classe relacionada continua existindo mas perde parte do sentido de existência. É representado por uma linha, no lado da classe que se relaciona coloca-se um diamante sem preenchimento e no lado da classe relacionada coloca-se uma seta.


    Composição:  Uma relação muito forte “todo-parte” que diz que uma classe “é parte de” outra classe. Quando a classe que se relaciona é destruída, a relacionada também será. É representado por uma linha, no lado da classe que se relaciona coloca-se um diamante  preenchido e no lado da classe relacionada coloca-se uma seta.


Generalização: Representa uma “herança”. De uma classe mais geral para uma classe mais específica. É representada por um linha, na ponta da classe generalizada coloca-se um triângulo.


Dependência: É a relação mais fraca, acontece quando uma classe usa outra classe através da chamada de um método estático ou quando é usado como parâmetro de um método. É representado por uma linha tracejada apontando para a classe que é usada.


Reconhecimento de classe

Para reconhecer as classes você pode interpretar um caso de uso destacando as seguintes características:
  • Substantivos: se transformam nas classes. Ex.: Pessoa, Carro, Escola.
  • Adjetivos: se transformam nos atributos de uma classe. Ex.: cor, peso, altura, endereço.
  • Verbos: se transformam nos métodos de uma classe. Ex.: estudar, andar, acelerar.
É preciso saber interpretar o texto do caso de uso para saber relacionar os atributos e verbos a classe certa.

Segue abaixo uma imagem que exemplifica as principais notações do diagrama de classes:
Exemplo de diagrama de classes

Um comentário:

Lleticia disse...

Bacana! :)