Padrões GRASP
GRASP: General Responsibility Assignment Software
Patterns.
Padrões de análise catalogados por Craig Larman.
Indicam como atribuir responsabilidades a classes da
melhor forma possível.
Úteis na construção de
diagramas de interações
diagramas de classes
Exemplo de Alguns padrões GRASP: Expert, Creator, High Coesion,
Low Coupling, Controller.
COESÃO ALTA.
A coesão é uma medida do quão fortemente relacionadas e focalizadas são as responsabilidades de uma classe.
Uma classe com baixa coesão:
faz muitas coisas não-relacionadas
executa trabalho demais.
Classes não coesas são:
difíceis de compreender
difíceis de reutilizar
difíceis de manter
sensíveis a mudanças.
É extremamente importante assegurar que as responsabilidades atribuídas a cada classe sejam altamente relacionadas.
Em um bom projeto OO, cada classe não deve fazer muito trabalho.
Cada classe deve capturar apenas uma abstração.
Como perceber que a coesão de uma classe está baixa?
Quando alguns atributos começam a depender de outros.
Quando há subgrupos de atributos correlacionados na classe.
ACOPLAMENTO FRACO
O acoplamento é uma medida de quão fortemente uma
classe está conectada a outras classes, tem conhecimento das mesmas ou depende delas.
Uma classe com baixo (fraco) acoplamento não depende de muitas outras.
Uma classe com acoplamento forte é:
mais difícil de compreender isoladamente
mais difícil de reutilizar (seu uso depende da reutilização das outras classes da qual ela depende)
sensível a mudanças nas classes associadas.
Sempre que possível, evite que o envio de mensagens implique na criação de associações redundantes no modelo.
ESPECIALISTA DA INFORMAÇÃO
É o padrão mais usado para atribuir responsabilidades
Problema: dado um comportamento (responsabilidade) a qual classe essa responsabilidade deve ser alocada?
Solução: atribuir essa responsabilidade ao especialista da informação – a classe que tem a informação necessária para satisfazer a responsabilidade.
segunda-feira, 25 de fevereiro de 2008
quinta-feira, 14 de fevereiro de 2008
Aulas do dia 12 e 13/02/2008 PROJETO ORIENTADO A OBJETO
UML provê dois tipos de diagramas de interação:
seqüência e colaboração.
* Diagrama de Seqüência
Ilustra objetos e atores que colaboram na execução de uma tarefa, exibindo o tempo de vida de objetos, as mensagens enviadas e sua ordem no tempo. A ordem em que os objetos são dispostos não é importante. Porém, para facilitar a leitura, coloque mais a esquerda os objetos que serão ativados primeiro. O tempo é representado de cima para baixo por uma linha tracejada abaixo de cada objeto. Cada objeto é exibido em um retângulo rotulado como nome do Objeto:
Exemplo de Diagrama de Seqüência.
* Colaboração
* Colaboração
Mostra os objetos que interagem para realizar uma tarefa e os relacionamentos entre eles. Relacionamentos são derivados das associações no diagrama de classes. É necessário incluir apenas os relevantes para a tarefa. Interações são representadas pela seqüência de passagem de mensagens.
Nas próximas aulas iremos comentar a respeito de Padrões GRASP = General Responsability Assignment Software Patterns.
Descrevem princípios fundamentais de atribuição de responsabilidade a objetos.
Alguns padrões GRASP principais:
Especialista (Expert)
Criador (Creator)
Coesão alta (High Cohesion)
Acoplamento fraco (Low Coupling)
Controlador (Controller)
Assinar:
Postagens (Atom)