Visão Geral #

O modelo de classes descreve a estrutura dos objetos em um sistema – sua identidade, seus relacionamentos com outros objetos, seus atributos e suas operações.Os diagramas de classes expressam o modelo de classe. A generalização permite que as classes compartilhem estrutura e comportamento, e as associações relacionam as classes. As classes definem os atributos de cada objeto e as operações que cada objeto realiza ou experimenta.O objetivo na construção de um modelo de classes é capturar aqueles conceitos do “mundo real” que são importantes para uma aplicação.

Uso Comum #

Um modelo de classes captura a estrutura estática de um sistema ao caracterizar os objetos no sistema, os relacionamentos entre eles, os atributos e as operações para cada classe de objetos. Deve-se enfatizar a construção de um sistema em torno de objetos, em vez de em torno de funcionalidades, pois um sistema orientado a objetos deve corresponder de modo mais próximo ao mundo real, conseqüentemente, mais tolerante a mudanças.

Termos e Conceitos #

A finalidade da modelagem de classes é descrever objetos. Um objeto é um conceito, abstração ou coisa com identidade que possui significado para a aplicação. Os objetos normalmente aparecem como nomes próprios ou referências específicas nas descrições de problemas e discussões com os usuários. Alguns objetos possuem correspondentes no “mundo real”, enquanto outros são entidades conceituais. Outros ainda são introduzidos por razões de implementação e não possuem correspondência com a realidade física. A escolha de objetos depende do julgamento e da natureza de um problema: pode haver muitas representações corretas.Um objeto é uma instância – ou ocorrência – de uma classe. Uma classe descreve um grupo de objetos com as mesmas propriedades (atributos), comportamentos (operações), tipos de relacionamentos e semântica.

Especificação de Atributos #

Em essência, são os atributos que definem o objeto – que esclarecem o que o objeto significa no contexto do espaço do problema. Para desenvolver um conjunto de atributos significativos para um objeto, o analista pode novamente estudar a narrativa de processamento (ou enunciado do escopo) do problema e selecionar aquelas “coisas” que realmente “pertencem” ao objeto. Além disso, as seguintes questões devem ser respondidas para cada objeto://“Que itens de dados (compostos e/ou elementares) descrevem plenamente esse objeto no contexto do problema”?Ou ainda://“Quais são as características que qualificam o objeto avaliado”?

Definição das Operações #

As operações definem o comportamento de um objeto e podem modificar de algum modo os valores dos atributos do objeto. As operações podem ser divididas em três categorias:

  • Operações que de algum modo manipulam dados (excluir, selecionar, atualizar, etc.).
  • Operações que realizam um cálculo.
  • Operações que monitoram um objeto quanto à ocorrência de eventos de controle.

Uma operação é uma função ou um procedimento que pode ser aplicado a ou por objetos em uma classe – é um serviço que pode ser executado por um objeto. Um método é a implementação de uma operação para uma classe e indica a maneira (a forma) como um determinado serviço será executado. Uma operação é polimórfica se a mesma operação assume diferentes formas em diferentes classes (considerando uma hierarquia de herança).

Análise Orientada a Objetos #

Apesar da terminologia e dos passos do processo diferirem para cada um dos métodos de OOA (análise orientada a objetos), os processos gerais de OOA são realmente muito semelhantes. Para conduzir a analise orientada a objetos, um Engenheiro de Software deve realizar os seguintes passos genéricos:

  1. Deduzir os requisitos do cliente para o sistema.
  2. Identificar cenários ou casos de uso.
  3. Selecionar classes e objetos usando os requisitos básicos como diretriz.
  4. Identificar atributos e operações para cada objeto do sistema.
  5. Definir estruturas e hierarquia que organizem as classes.
  6. Construir um modelo objeto-relacionamento.
  7. Construir um modelo de comportamento de objeto.
  8. Revisar o modelo de Análise OO com base nos casos de uso ou cenários.