Aspectos Gerais da Modularidade
Modularidade específica a inter-relação e intercomunicação estão entre as partes que compõe um sistema de software.
Programação modular define um conceito chamado de módulo. Módulos são componentes de softwares que contêm dados e funções. Integrando com outros módulos, que juntos formam um sistema unitário.
Programação modular fornece uma técnica para decompor um sistema em módulos de softwares independentes.
Utilizar modularidade é crucial para a arquitetura moderna de software. Divide-se um software grande em entidades separadas e isto ajuda a reduzir a complexidade do software enquanto simultaneamente diminui o esforço do desenvolvimento.
O objetivo da modularidade é definir novas entidades que são fáceis de entender u usar. Programação modular é um estilo de desenvolvimento de software que separa funcionalidades em diferentes módulos.
Unidades de software que contêm regras de negócio tem uma implementação específica para cada funcionalidade.
Modularidade deixa clara a separação de conceitos e especializações. Oculta também os detalhes de implementação do módulo.
Modularidade é uma parte importante do desenvolvimento ágil de software, porque permite mudanças ou refatorações sem prejudicar os outros módulos.
Dois dos mais importantes aspectos da modularidade são a manutenibilidade e a reutilização, ambas trazem grandes benefícios.
Manutenibilidade
Manutenibilidade refere-se ao nível que o software é atualizado ou modificado depois da entrega. Um grande, software monolítico é de difícil manutenção, especialmente se houver muitas dependências dentro do código.
A arquitetura do sistema e os padrões de projeto ajudam na criação de um código fácil de dar manutenção.
Manutenibilidade muitas vezes asseguram simplicidade. Por exemplo, um jeito simples de fornecer manutenibilidade é ter apenas uma interface implementada que substitui a própria classe.
A consequência da baixa manutenibilidade são problemas no futuro. Duplicação de código algumas vezes prejudica a manutenibilidade. Por exemplo, se uma parte de código é alterado, então outras partes de código similares também precisarão de modificação.
Como o código está em muitas locações, é fácil esquecer de modificar o código em algum lugar e com isto introduzir novos problemas no software.
O nível de manutenibilidade é associado com a qualidade do software: um alto nível de manutenibilidade traz um software de alta qualidade.
Manutenibilidade é a melhoria da divisão de uma aplicação monolítica dentro de módulos que estão bem definidos.
Em uma aplicação modular, modificar um módulo é mais fácil quando há menos dependências ligadas a ele.
Reutilização
Programação orientada a objetos pode ser utilizada para conseguir a reutilização, especialmente via herança. Para a reutilização a funcionalidade encapsula um objeto e depois o segundo objeto precisa herdar do primeiro.
Como os módulos são reutilizáveis? Deve ser possível o reuso do módulo mesmo que esteja na mesma aplicação ou em outra. Reutilização é medido pelo nível de reuso ou substituição do módulo.
Reutilização evita a duplicação de código e reduz o número de linhas de código, o qual tem um impacto positivo no número de defeitos no software.
Isto não só promove a qualidade do software, isto também ajuda na rapidez do desenvolvimento e permite atualizações mais fáceis. Aplicar a reutilização deve ser feita de modo coerente em todo sistema.
Fazer a reutilização torna mais fácil o trabalho do desenvolvedor porque aumenta a produtividade no desenvolvimento dos componentes.
Módulos podem ser reutilizados porque eles implementam interfaces que se comunicam com outros módulos.
A interface, a qual é especificada como um contrato, permite que módulos sejam trocados.
O módulo interface é feito de modo padrão e isto pode ser entendido e reconhecidos por outros módulos.
Uma boa propriedade do design é a redução das dependências entre módulos com a utilização da reutilização.
Reutilização é importante na migração de aplicações e bibliotecas. Migração torna-se simples quando você reutiliza componentes ou módulos do software.
Reutilização não é algo fácil, porque deve-se modelar um software que se encaixe em outro software caso precise.
Deixe um comentário