sexta-feira, 13 de setembro de 2013

Com Identificar Classes em Diagrama de classes



As classes são a estrutura de dados que darão ao programador a noção do domínio do problema.
O modelo de classes tem os dados e o comportamento destes.
Uma classe é uma abstração de um conjunto de coisas que possuem características e operações em comum. Ela surge da união de vários objetos que possuem coisas em comum.
Os atributos de uma classe correspondem à descrição dos dados armazenados pelos objetos. A cada atributo de uma classe está associado um conjunto de valores que esse atributo pode assumir. Cada instância de classe assume valores diferentes para cada atributo.
As operações correspondem à descrição das ações que os objetos de uma classe sabem realizar. Objetos de uma classe compartilham as mesmas operações.
Conceitos que ajudam na identificação e definição de classes e métodos:
  • Modelar como classes as entidades que ocorrem naturalmente no domínio do problema;
  • Projetar métodos com um único objetivo;
  • Projetar um novo método quando se defrontar com a alternativa de ampliar um já existente;
  • Evitar métodos extensos;
  • Armazenar como variáveis de instância os dados que são necessários a mais de um método ou a uma subclasse;
  • Projetar para uma biblioteca de classe, não para si próprio ou para sua aplicação.
Uma nova classe deve ser criada quando:
  • A nova classe representar uma abstração significativa para o domínio do problema;
  • Os serviços que ela proporcionar forem provavelmente usados por várias outras classes;
  • O seu comportamento for inerentemente complexo;
  • A classe ou método fizer pouco uso das representações dos seus operandos;
  • Se representada como um método de uma outra classe, poucos usuários desta classe a solicitariam.
Regras para elaborar classes abstratas:
  • Identificar mensagens e métodos comuns e migrá-los para uma super classe. Isto pode criar a necessidade de quebrar métodos e dividi-los entre superclasses e subclasses;
  • Eliminar os métodos de uma superclasse que são freqüentemente sobrescritos em vez de herdados por suas subclasses. Isto tornará a superclasse mais abstrata e conseqüentemente mais útil;
  • Acessar todas as variáveis somente pelo envio de mensagens. As classes ficarão mais abstratas quando dependerem menos das suas representações de dados;
  • Trabalhar subclasses para serem especializadas. Uma subclasse será especializada se herdar todos os métodos da superclasse e acrescentar novos a si própria. Uma subclasse deveria sempre representar um superconjunto do comportamento de seus pais.

0 comentários:

Postar um comentário