O programação modular é uma técnica utilizada para o desenvolvimento de software, onde o programa é dividido em vários componentes ou pequenos blocos autônomos chamados módulos, que são gerenciáveis, lógicos e funcionais.
O módulo é um bloco de instruções que resolve um problema específico. Cada módulo contém tudo o que é necessário para cumprir sua própria funcionalidade e pode ser editado ou modificado sem afetar o resto do projeto..
Esta forma de programação é conseguida mantendo uma interface de módulo permanente que é utilizada pelos outros componentes do software para aceder às funções de cada módulo..
Os módulos impõem limites lógicos entre os componentes, melhorando a capacidade de manutenção. Eles são incorporados através de interfaces, que são projetadas de forma que a dependência entre os diferentes módulos seja minimizada..
Índice do artigo
Um módulo principal e vários módulos secundários são o que compõe a programação modular. As chamadas para as funções dos módulos auxiliares são feitas a partir do módulo principal.
Esses plug-ins existem como arquivos executáveis separados, que são carregados quando o módulo principal é executado. Cada módulo tem um nome exclusivo atribuído na instrução PROGRAM.
As equipes de trabalho podem desenvolver diferentes módulos separadamente sem ter que conhecer todos os módulos do sistema. Cada um dos aplicativos modulares está associado a um número de versão para fornecer flexibilidade aos desenvolvedores na manutenção do módulo..
Um computador não precisa de uma versão fragmentada do código para executá-lo. São as limitações cognitivas humanas que o forçam a escrever código em partes menores.
Um programa pode conter outras funções e também pode se referir a funções que estão em outros arquivos. Essas funções ou módulos são conjuntos de instruções usadas para realizar uma operação ou calcular um valor.
Para manter a simplicidade e a legibilidade em programas grandes e complexos, uma função principal curta é usada em conjunto com outras funções, em vez de uma função principal longa.
Ao separar um programa em grupos de módulos, cada módulo será mais fácil de entender, atendendo assim às diretrizes básicas da programação estruturada..
Uma função consiste em uma declaração de sua definição seguida por comandos e instruções. A forma geral de uma função é:
Function_name (declaração de parâmetro)
frases;
comandos;
expressão de retorno;
- A declaração dos parâmetros representa a informação que está sendo passada para a função.
- Variáveis adicionais usadas especificamente pela função são definidas nas declarações.
- Todas as funções devem incluir uma instrução de retorno.
Variáveis que são declaradas na função principal ou em funções definidas pelo usuário são chamadas de variáveis locais. Eles têm um valor quando a função é executada, mas seu valor não é retido quando a função é concluída.
Variáveis que são declaradas externas ao programa principal ou funções definidas pelo usuário são chamadas de variáveis globais. Essas variáveis podem ser obtidas de qualquer função encontrada no programa.
A programação modular é bastante procedimental, pois é totalmente orientada a escrever código para funções, sem levar em consideração os dados..
Suponha uma casa que tem eletricidade, com várias tomadas elétricas nas paredes. Este sistema permite que você conecte vários dispositivos elétricos, por exemplo, microondas, máquina de lavar, secadora, etc..
Esses dispositivos são projetados para realizar suas tarefas específicas quando conectados e ligados, independentemente de onde estejam localizados..
Os módulos de um aplicativo devem seguir esta mesma filosofia. Isso significa que eles só precisam realizar suas tarefas específicas, independentemente da parte do aplicativo em que estejam ou mesmo a qual aplicativo estejam conectados..
Além disso, assim como um dispositivo elétrico pode ser facilmente desconectado da tomada, um módulo deve ser projetado de forma que possa ser facilmente removido de um aplicativo..
Assim como a remoção de um dispositivo elétrico não afeta a funcionalidade dos outros dispositivos conectados, a remoção dos módulos de um aplicativo não deve afetar a funcionalidade dos outros módulos desse aplicativo..
Em Java, os módulos são escritos como funções independentes. Por exemplo, você pode ter uma função ou bloco de código para calcular o GPA de um aluno com base em suas notas em todos os cursos que ele fez..
A função precisa obter a lista de notas como entrada e, em seguida, retornar a média de notas calculada:
Essa função é chamada CalculateA takingNote. Recebe como entrada uma lista de notas, usando um array de tipo de dados double, e retorna a média calculada.
Na função, a variável local soma é inicializada com zero e, em seguida, usando um loop for, todas as qualificações são adicionadas à soma. Por fim, a soma obtida é dividida pelo número de notas, retornando o valor resultante.
Se a matriz de entrada tivesse as notas 3,5, 3,0 e 4,0, depois de somadas, teria somado o valor de 10,5 e então seria dividida por 3, pois são três notas. A função retornaria o valor 3,5.
Vários programadores podem trabalhar no mesmo projeto se ele for dividido em módulos. Diferentes programadores podem projetar independentemente módulos diferentes do programa, que é o que é necessário para um programa grande e complexo.
Os programas podem ser desenvolvidos mais rapidamente, pois pequenos módulos autônomos são mais fáceis de entender, projetar e testar do que programas grandes.
O programador pode fornecer a entrada necessária e verificar se o módulo está correto examinando sua saída..
O código escrito para um programa geralmente é útil para outros. A programação modular permite que essas seções sejam salvas para uso futuro. Como o código é realocável, os módulos salvos podem ser vinculados a qualquer outro programa que atenda aos requisitos de entrada e saída..
Com a programação monolítica, essas seções de código são incorporadas ao programa e não estão disponíveis para uso por outros programas..
Um módulo é menor do que um programa completo, o que facilita o teste. Cada módulo pode ser escrito e testado separadamente do resto do programa. Depois que um módulo foi testado, ele pode ser usado em um novo programa sem ter que testá-lo novamente.
Quando um programa deve ser modificado, a programação modular simplifica o trabalho. Módulos novos ou depurados podem ser vinculados a um programa existente sem que o resto do programa mude.
Essa programação usa interfaces, o que é uma ideia bastante eficaz. Para tirar proveito disso, alguns frameworks vêm com um conjunto completo de classes intercambiáveis. Por exemplo, para lidar com a persistência, pode haver várias classes que implementam uma interface de persistência.
No entanto, os ambientes de desenvolvimento integrado (IDEs) ficam confusos sobre isso. Por exemplo, você pode estar tentando encontrar a origem de um método e o IDE não saberá qual método você deseja ver, exibindo, assim, uma longa lista de arquivos onde existe um método com esse nome..
Existem muitos módulos que contêm apenas uma função muito pequena. Cada módulo requer análise adicional e tempo de processamento, além de seu cabeçalho no código.
Portanto, o uso de muitos módulos pequenos adicionará uma sobrecarga ao sistema de construção, aumentando o tamanho do pacote.
Alguns códigos quase nunca mudam. Nesses casos, pode não fazer muito sentido tentar fazer com que pareça mais limpo ou com lógica abstrata, se apenas usá-lo já funciona bem.
Existem códigos que não parecem muito bonitos, mas não mudaram muito nos últimos anos. Não há razão para decompor o código que nunca mudou e já está funcionando bem..
A programação modular é apenas um conceito. Sua prática pode ser aplicada em qualquer linguagem de programação, especialmente aquelas de natureza procedimental, que possuem um programa compilado separadamente.
Bibliotecas de componentes construídas a partir de módulos compilados separadamente podem ser combinadas em um conjunto usando uma ferramenta de programação chamada linker.
Os nomes das funções nos diferentes módulos devem ser únicos para facilitar o seu acesso caso as funções utilizadas pelo módulo principal devam ser exportadas..
Entre as linguagens de programação que suportam o conceito de programação modular estão C, Ada, PL / I, Erlang, Pascal, Algol, COBOL, RPG, Haskell, Python, HyperTalk, IBM / 360 Assembler, MATLAB, Ruby, IBM RPG, SmallTalk , Morpho, Java (os pacotes são considerados módulos), Perl, etc..
A programação modular pode ser aplicada em linguagem C porque permite remediar uma dificuldade de grande magnitude ao separá-la em vários módulos.
Cada um desses módulos resolve um problema específico, enquanto o programa principal, que é o conjunto de tais procedimentos, resolve o problema como um todo..
Cada função definida em C é por padrão acessível globalmente. Isso pode ser feito incluindo um arquivo de cabeçalho, onde a implementação da função é definida.
Como exemplo, queremos declarar um tipo de dados de pilha e também que a implementação e a estrutura de dados estão ocultas dos usuários.
Isso pode ser feito primeiro definindo um arquivo público chamado stack.h, que conterá os dados genéricos com o tipo de dados da pilha e as funções suportadas pelo tipo de dados da pilha..
stack.h:
extern stack_var1;
extern int stack_do_something (vazio);
Agora você pode criar um arquivo chamado stack.c que contém a implementação do tipo de dados stack:
Ainda sem comentários