Programação modular: recursos, exemplos, benefícios, aplicativos - Ciência - 2023


science
Programação modular: recursos, exemplos, benefícios, aplicativos - Ciência
Programação modular: recursos, exemplos, benefícios, aplicativos - Ciência

Contente

o programação modular é uma técnica utilizada para o desenvolvimento de software, onde o programa é dividido em muitos 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 por outros componentes de software para acessar as 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.


Módulos principais e auxiliares

Um módulo principal e vários módulos secundários são o que compõe a programação modular. A partir do módulo principal, são feitas chamadas às funções dos módulos auxiliares.

Esses plug-ins existem como arquivos executáveis ​​separados, que são carregados quando o módulo principal é executado. Cada módulo possui 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.

Recursos de programação modular

Modularidade

Um computador não precisa de uma versão explodida do código para executá-lo. São as limitações cognitivas humanas que o forçam a escrever códigos em partes menores.


Um programa pode conter outras funções e também pode referir-se a funções que estão em outros arquivos. Essas funções ou módulos são conjuntos de instruções usadas para executar 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.

Definição de função

Uma função consiste em uma declaração de sua definição seguida de 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 sentenças.

- Todas as funções devem incluir uma instrução de retorno.

Escopo de variáveis

As 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 externamente para o 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 que esteja dentro do programa.

É processual

A programação modular é bastante procedimental, já que é totalmente orientada a escrever código para funções, sem levar em consideração os dados.

Exemplos de programação modular

Modularidade na vida real

Suponha uma casa que tem eletricidade, com várias tomadas 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 executar 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 uma aplicação.

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.

Funções em Java

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 fizeram.

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 do 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, após soma-las, teria somado o valor de 10,5 e então seria dividido por 3, pois são três notas. A função retornaria o valor 3,5.

Vantagem

Agendamento de projeto independente

Vários programadores podem trabalhar no mesmo projeto se ele for dividido em módulos. Diferentes programadores podem projetar independentemente módulos de programa diferentes, que são necessários para um programa grande e complexo.

Desenvolvimento de programa eficiente

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.

Uso múltiplo de módulos

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.

Facilidade de depuração e modificação

Um módulo é menor que um programa completo, por isso é mais fácil de testar. 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 alterar o restante do programa.

Desvantagens

Estrutura excessivamente orientada a objetos

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 aquele nome.

Módulos muito pequenos

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 compilação, aumentando o tamanho do pacote.

Decompor sem motivo

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.

Formulários

A programação modular é apenas um conceito. Sua prática pode ser aplicada em qualquer linguagem de programação, especialmente aquelas de natureza procedural, 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.

Linguagem C

A programação modular pode ser aplicada na linguagem C porque permite remediar uma grande dificuldade 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 definindo primeiro 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:

Referências

  1. CIO Wiki (2019). Programação modular. Retirado de: cio-wiki.org.
  2. Definições de TI (2020). Programação modular. Retirado de: defit.org.
  3. New Mexico Tech (2020). Programação modular com funções. Retirado de: ee.nmt.edu.
  4. Christian Maioli (2020). 3 técnicas criativas para escrever código modular. Tech Beacon. Retirado de: techbeacon.com.
  5. Geeks for Geeks (2020). Abordagem modular na programação. Retirado de: geeksforgeeks.org.
  6. Estudo (2020). Programação modular: definição e aplicação em Java. Retirado de: study.com.