Artigo

Engenharia de Software em Destaque: Padrões GRASP.

Vamos retomar os temas de Engenharia de Software, uma das áreas mais clássicas de Tecnologia da Informação. Atendendo ao pedido de um querido amigo concurseiro, o artigo de hoje vai falar sobre padrões GRASP.

O assunto é um tópico mais avançado de padrões de projeto, digamos assim. Além disso, não é um tema tão explorado nas revisões dos professores, pois não faz parte do top 10 das maiores cobranças.

Ou seja, temos motivos suficientes para você ficar conosco e sair na frente da concorrência. Recomendamos que leia este artigo caso esteja estudando para provas específicas de TI, especialmente carreiras de Desenvolvimento de Sistemas.

Por outro lado, se o seu foco é área Fiscal ou pretende realizar provas concorridas que contemplem Tecnologia de Informação, permaneça conosco até o final também. Veja o que vamos aprender hoje:

  • Padrões de Projeto
  • Padrões GRASP
  • Mnemônicos GRASP

Como sempre, faremos uma breve explicação para você não ficar perdido. Porém, o ideal é que você já tenha noções prévias de padrões de projeto e orientação a objetos. Como o assunto de hoje é bem técnico, não dá para fugir dessas noções.

O assunto é bem extenso, mas fizemos um esforço para compactar tudo em um artigo curtinho, de forma que você não gaste muito tempo na leitura. Chega de papo e vamos começar!

Tempo de leitura aproximada: 5 a 10 minutos

Primeiramente, os padrões de projeto são um conjunto de soluções conhecidas para problemas comuns no desenvolvimento de software. Em outras palavras, você uniformiza uma maneira para resolver determinado problema (sempre que surgir o problema X, vou fazer Y).

Observe que padrões de projeto estão intimamente ligados ao conceito de reaproveitamento, cada vez mais necessário em grandes projetos de sistemas. Por conseguinte, a manutenção da solução tende a ser mais simples, reduzindo os custos da demanda.

Existem alguns conjuntos de padrões, tais como Gang of Four (GoF) e General Responsibility Assignment Software Patterns (GRASP). No mundo dos concursos, o conjunto mais cobrado é o GoF (inclusive já fizemos um artigo no passado sobre ele).

Por causa disso, os alunos tendem a negligenciar os padrões GRASP nos estudos. Talvez você já saiba o restante da história (ou pode imaginar). Quando o tópico cai e o aluno erra a questão, ele perde posições na lista e corre o risco de ficar fora das vagas.

Como a própria tradução indica, os padrões GRASP são soluções reutilizáveis para atribuir responsabilidades a classes e objetos na Programação Orientada a Objetos (POO).

Os padrões GRASP são 9, em ordem alfabética: alta coesão, baixo acoplamento, controlador, criador, especialista na informação, fabricação pura/pura fabricação, indireção, polimorfismo e proteção contra variações. Segue a descrição de cada um deles:

Alta Coesão (High Cohesion): Em um projeto, as responsabilidades devem ser divididas entre as classes. Cada classe deve focar apenas em sua responsabilidade.

Baixo Acoplamento (Low Coupling): As classes devem possuir pouca dependência umas das outras. Assim, caso uma classe sofra alterações, a outra classe será impactada o mínimo possível.

Controlador (Controller): Uma classe é responsável por tratar os eventos do sistema. Na prática, essa classe representa o sistema ou um cenário do caso de uso em que o evento ocorre.

Criador (Creator): Uma classe é responsável por criar instâncias / objetos de outra classe.

Especialista na Informação (Information Expert): Uma classe ou um objeto pode delegar uma responsabilidade a outro(a), que é especialista no domínio em questão. Ou seja, quem recebe a delegação possui as informações necessárias para o cumprimento da responsabilidade.

Fabricação Pura/Pura Fabricação (Pure Fabrication): Classe fictícia, com comportamento artificial, que não possui vínculos, nem representa o domínio em questão. Está lá apenas para prestar um serviço, por conveniência.

Indireção (Indirection): Um objeto ou uma classe realiza a mediação entre dois elementos, de maneira intermediária. É uma espécie de delegação de responsabilidades, mantendo o baixo acoplamento entre os elementos envolvidos.

Polimorfismo (Polymorphism): Uma classe pode apresentar métodos similares, mas com comportamentos diferentes, cada qual com sua responsabilidade. Isso faz com que haja variação, de acordo com a necessidade.

Proteção contra Variações (Protected Variations): Identifica pontos de variação ou instabilidade no sistema. Por meio da atribuição de responsabilidades, é criada uma interface estável, evitando que os componentes do sistema tenham variantes.

Concurseiro, padrões GRASP não são conjunções em prova de Língua Portuguesa. Em outras palavras, não é um assunto frequentemente cobrado, como já explicamos.

Se você souber o nome dos padrões e as descrições que mencionamos, sairá na frente de 99% dos outros candidatos. Não adianta trazermos exemplos e aprofundarmos muito mais, porque as possibilidades de cobrança são enxutas mesmo.  

Hoje trouxemos uma novidade. Já o conhecemos de “outros carnavais” e sabemos que você adora uma surpresinha. Aproveitando que o artigo é curtinho, preparamos mnemônicos exclusivos para ajudar a decorar o assunto.

Na pior das hipóteses, se estiver com muita dificuldade, tente ao menos decorar os 9 padrões com o esquema abaixo. Acredite: a ordem alfabética ajuda o cérebro a memorizar.

Figura 1 - Mnemônico para Padrões GRASP.
Figura 1 – Mnemônico para Padrões GRASP.

Se você é do tipo que gosta de frases, preparamos uma para ajudar também. Esqueça a semântica e a ironia apresentada no contexto. Decore a frase toda, focando apenas no início de cada palavra para lembrar dos termos.

Atualmente, continuo bem animado(a), completamente na correria e esperando informações de pessoas falsas, invejosas, preguiçosas, pessimistas e vigaristas.”

Em suma, o artigo de hoje apresentou padrões GRASP, um tópico avançado de Engenharia de Software. Se você conseguiu compreender bem os conceitos apresentados nesta publicação, sugerimos que pule direto para as questões para treinar.

Tenha em mente que é fundamental treinar o seu aprendizado por meio de questões. Alunos aprovados realizam milhares de exercícios até conseguir atingir seu objetivo. O acesso ao Sistema de Questões do Estratégia Concursos é feito pelo link: https://concursos.estrategia.com/.

Por fim, se quiser aprofundar o conteúdo ou tirar dúvidas específicas, sugerimos que busque o material do Estratégia Concursos. Nós oferecemos diversos cursos em pdf, videoaulas e áudios para você estudar. Saiba mais por meio do link http://www.estrategiaconcursos.com.br/cursos/.

Bons estudos e até a próxima!

Cristiane Selem Ferreira Neves é Bacharel em Ciência da Computação e Mestre em Sistemas de Informação pela Universidade Federal do Rio de Janeiro (UFRJ), além de possuir a certificação Project Management Professional pelo Project Management Institute (PMI). Já foi aprovada nos seguintes concursos: ITERJ (2012), DATAPREV (2012), VALEC (2012), Rioprevidência (2012/2013), TJ-RJ (2022), TCE-RJ (2022) e CGE-SC (2022/2023). Atualmente exerce o cargo efetivo de Auditora de Controle Externo – Tecnologia da Informação no Tribunal de Contas do Estado do Rio de Janeiro (TCE-RJ), além de ser produtora de conteúdo dos Blogs do Estratégia Concursos, OAB e Carreiras Jurídicas.

Concursos Abertos

Quer Saber Tudo de Concursos Previstos?

Confira Nossos Artigos

Concursos 2023

Concursos 2024

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Nenhum comentário enviado.