domingo, 3 de maio de 2020

Modelagem de Classes

Objetos e Classes

Antes de iniciar a prática da modelagem orientada a objetos, é importante conhecer alguns conceitos que são aplicados nos diagramas UML.
Para Blaha e Rumbaugh (2006), objeto é um conceito, uma abstração ou algo com identidade que possui significado para uma aplicação. Portanto, objetos são coisas do mundo real, como pessoas, animais, carros etc.
Todos os objetos possuem identidade, conforme vimos. Um cliente é diferente de outro cliente, pois cada um possui as suas características próprias (atributos), por exemplo, o poder aquisitivo, o sexo, a altura etc. Dessa forma, a modelagem OO modela objetos do mundo real. Modelar objetos significa estudá-los e observá-los com o objetivo de representá-los dentro de um contexto.
Quando você observa o que é e o que faz um objeto em uma aplicação, você está usando a abstração. Os objetos podem ser agrupados pelos seus atributos e pelas suas operações. Por meio desses agrupamentos, podemos classificá-los. Esse procedimento é chamado classificação, no qual os objetos com a mesma estrutura de dados (atributos e operações) são agrupados em uma classe.

“Uma classe descreve um grupo de objetos com as mesmas propriedades (atributos), comportamentos (operações), tipos de relacionamentos e semântica” (BLAHA; RUMBAUGH, 2006).
Uma classe, na notação UML, é representada por um retângulo subdividido em três partes: nome da classe, atributos e operações.

Um objeto é uma instância de uma classe.

Atributos e operações

Um atributo é uma propriedade de uma classe. Os atributos são compostos por nome, tipo de dado, visibilidade e valor inicial ou padrão, cujas especificações são:
  • O nome do atributo geralmente indica o seu conteúdo.
  • O tipo de dado indica a organização dos conteúdos dos atributos. Por exemplo: o número da conta corrente é formado por números. Assim, o atributo número da conta corrente é do tipo “número”. Os tipos de dados genéricos podem ser texto, número, lógico, data etc. Esses tipos genéricos deverão ser substituídos pelos nomes dos tipos de dados da respectiva linguagem de programação utilizada para o desenvolvimento da aplicação.
  • A visibilidade de um atributo é definida como:
    • Pública (public): representada por um sinal de adição (+). Indica que o atributo é acessível por outras classes.
    • Privada (private): representada por um sinal de subtração (-). Indica que o atributo é acessível somente pela própria classe.
    • Protegida (protected): representada por um sinal de sustenido (#). Indica que o atributo é acessível somente pela própria classe e pelas subclasses.
    • Pacote (package): representada por um til (~). Indica que o atributo é acessível pelas classes do pacote que o contém.
  • O valor inicial ou padrão é um valor indicado para identificar o conteúdo inicial do atributo.
 As operações são funções (ações) ou comportamentos que podem ser aplicados a objetos ou por objetos em uma classe.

Todos os objetos de uma classe compartilham as mesmas operações, e a mesma operação pode se aplicar a muitas classes diferentes. Vale aqui lembrar o conceito de polimorfismo, que significa que a mesma operação pode se comportar de forma diferente para diferentes classes.

Um método ou função é a implementação de uma operação para uma classe. Isso significa que, quando o programador codifica uma operação em arquivos de códigos numa linguagem de programação, ele transformou uma operação em um método. Assim, a operação é definida pelo analista, e o método ou função, pelo programador.
As características de uma operação são: nome, lista de argumentos (parâmetros), visibilidade e tipo de retorno, conforme as especificações:
  • Nome e visibilidade correspondem às mesmas definições dos atributos.
  • Lista de argumentos (parâmetros) e valor de retorno dependem da linguagem de programação utilizada.

Generalização e herança

O conceito de generalização é definido por Blaha e Rumbaugh (2006) como sendo o relacionamento entre uma classe (superclasse) e uma ou mais variações dela (subclasses). A generalização organiza as classes por suas semelhanças e diferenças.

Os relacionamentos entre a superclasse e as subclasses devem ser indicados por setas com uma ponta “aberta”.

Herança é a capacidade de uma ou mais subclasses herdarem os atributos e as operações da superclasse por meio do relacionamento de generalização.

Nenhum comentário:

Postar um comentário