GRASP(s)
1. Versionamento
Versão | Data | Descrição | Autor(es) |
---|---|---|---|
1.0 | 17/03/2022 | Abertura do documento | Carlos e Paulo |
1.1 | 18/03/2022 | Adição do tópico 4.4 e 5 | Carlos e Paulo |
1.2 | 19/03/2022 | Adição do tópico 4.1 | Carlos e Paulo |
1.2.1 | 20/03/2022 | Revisão por pares | Rafael Ramos e Vitor Lamego |
2. Introdução
Após estudo dos padrões GRASP(s), iremos demonstrar sua aplicação na modelagem do projeto.
3. Metodologia
Como forma de manter maior coesão e consequentemente a realização de um melhor trabalho, os participantes se reuniram em chamada de voz e realizaram a aplicação dos padrões GRASP(s) em alguns artefatos específicos da modelagem.
4. GRASP(s)
4.1 Coesão
No padrão de projeto Coesão, identificado no estudo de grasps, inserido dentro do paradigma orientado a objetos, temos que cada classe tem responsabilidades e propósitos claros e definidos.
Em nosso projeto tentamos manter uma alta coesão, mantendo atributos e métodos relacionados apenas ao escopo da classe, é possível notar sua aplicação no diagrama de classes. Logo abaixo um exemplo de uma classe retirada do diagrama.
Figura 1: Aplicação Coesão
Fonte: Autores.
4.2 Controlador
Através dos nossos estudos indentificamos que o Controlador é responsável por receber e lidar com um evento do sistema, ou seja, tem como responsabilidade coordenar todos os procedimentos solicitados pelo usuário e identificar os responsáveis por tais tarefas. A partir disso, analisando o nosso diagrama de pacotes podemos identificar a utilização desse princípio.
No nosso projeto os controllers são responsáveis por acessar as "services" e estabelecer a lógica referente a cada página, informando esses dados para as "pages". A seguir está apresentado a imagem referente à modelagem de pacotes, onde podemos ver a controller.
Figura 2: Aplicação Controller
Fonte: Autores.
4.3 Criador
A partir do diagrama de classes é notado o uso do padrão GRASP criador, onde a classe "Produtor" é a responsável pela criação de instâncias do objeto "Propriedade". Aplicando o questionamento usado no estudo, temos que:
- Produtor "possui" Propriedade.
- Produtor registra Propriedade.
- Produtor possui dados iniciais de Propriedade, que são passados assim que Propriedade é criada.
Na figura abaixo é visível que o método
adiciona_propriedade()
seria o responsável pela criação.
Figura 3: Aplicação Criador
Fonte: Autores
4.4 Especialista
Usando-se do conhecimento do padrão Especialista, especificado no estudo, temos que é possível notar sua aplicação no diagrama de classes, onde temos que a classe "Talhao" é a especialista na informação de talhões ativos ou não. Esta informação será requisitada pela classe "Propriedade" com o objetivo de conhecer os talhões ativos desta.
Na figura abaixo temos o método:
esta_ativo()
da classe "Talhao" que evidencia a explicação dada anteriormente.
Figura 4: Aplicação Especialista
Fonte: Autores
5. Referências
Estudo dos padrões GRASP(s). Estudo dos padrões GRASP(s)