22 de julho de 2016

Segundo estudos de vários autores que serão citados ao longo das postagens desse novo assunto que estou abordando (programação modular e boas práticas), um bom módulo possui as seguintes características:
1. possui alta coesão de seus componentes internos;
2. possui baixo grau de acoplamento com outros módulos;
3. possui função ou propósito único e bem definido;
4. detém alto grau de information hiding e encapsulação;
5. possui interface estreita e bem definida;
6. usa composição e herança apropriadamente;
7. respeita o contrato de sua interface, caso seja um módulo cliente;
8. faz uso certo do reúso;
9. utiliza convenção de nomes e escrita para organizar o código, comentá-lo e nomear seus atributos e métodos.

Características de um bom módulo são obtidas com o uso de boas práticas de programação. Essas boas práticas estão detalhadas uma a uma nos próximos posts, mas, para exemplificar inicialmente, podemos citar algumas como: uso dos princípios fundamentais e o uso de bons estilos de programação.

Bons módulos também são construídos evitando o uso de algumas ocorrências como: métodos muito extensos que deveriam ser divididos em vários métodos, existência de uma classe que usa somente atributos de outra classe, classes que possuem muitas atividades quando deveriam ter sido criadas para um único objetivo, etc. Essas ocorrências são chamadas de bad smells.


Em um bom módulo Java os atributos devem ser encapsulados evitando fácil acesso externo aos dados, pois, a não restrição ao acesso caracteriza uma falha de segurança e pode elevar o grau de acoplamento entre módulos. Um bom módulo também deve ser extensível, para adaptar-se a novas situações de reúso. Em POO (Programação Orientada por Objetos), o polimorfismo e a herança são constantemente utilizados para estender funcionalidade de módulos. Extensibilidade facilita a reutilização de módulos. Uma vez implementado um módulo para o cumprimento de um objetivo ele pode ser utilizado também em outras partes do aplicativo ou em outros aplicativos para cumprir aquele mesmo objetivo ou então adaptado a objetivos semelhantes.

Caso um módulo não possua os atributos de qualidade mínimos ou desejados, é necessário refatorar esse módulo para ele atenda os padrões necessários para uma boa organização visando a manutenibilidade do código.

0 comentários:

Postar um comentário

Comentários:

Perfil

Formada em Sistemas de Informação e pós-graduada em Engenharia de Software.

Facebook

Views