Informática, perguntado por Priscillap529, 7 meses atrás

Pode explicar o que significa programação modular?

Soluções para a tarefa

Respondido por miguelconceicaodonat
0

Estou estudando alguns conceitos aqui e quero ver se estou com as ideias certas e também lançar uma(s) pergunta(s).

Em programação modular (seja estruturada ou OOP) em vez da minha aplicação ser monolítica ela é dividida em módulos, com interfaces bem definidas entre cada um. Em OOP por exemplo, um módulo seria um determinado grupo de classes.

Uma aplicação modular apresenta vantagens, que no momento não sei dizer exatamente quais são (esta seria uma pergunta, mas não a mais importante das que quero fazer). Se não me falha a memória esses benefícios incluem poder dividir a tarefa de implementar os módulos entre diferentes equipes ou membros de uma equipe e a possibilidade de causar menos impacto quando é feita uma mudança no código (este impacto fica restrito ao módulo).

Muito bem, mas mesmo um módulo individual pode ser quebrado em subpartes, que também podem ser chamadas (ou não?) de módulos. Se não estou enganado, uma classe ou mesmo um procedimento ou método podem ser chamados de módulo.

Bem, o caso é que nesse nível de granularidade (classe ou método) é possível programar de forma modular, com rotinas bem definidas, coesas em relação ao que se propõem a fazer e cuja implementação se mantém em um nível de abstração adequado e consistente (são esses os requisitos para se ter uma rotina modular? Esta é outra pergunta). Por sua vez, essas rotinas podem chamar sub-rotinas igualmente bem definidas.

Como atingir modularização em todos esses níveis de granularidade? No nível da aplicação, dos módulos individuais e no nível das rotinas? Em particular neste último caso, quais seriam algumas heurísticas para se determinar o que uma rotina deve fazer e em qual nível de abstração se manter? Eu apanho muito nessa parte, de subdividir as rotinas, "trafegar" pelos níveis de abstração corretos e delegar funcionalidades a qual sub-rotina.

No caso de OOP a modularização das classes é obtida com encapsulamento, então acredito que basta saber como encapsular (distribuir entre as classes os dados e operações sobre estes dados) corretamente.

Se for muita pergunta, avisem que eu quebro. Talvez indicar qual tópico específico merece uma pergunta à parte.

Perguntas interessantes