Programação modular: características, exemplos, vantagens, aplicações

Programação modular: características, exemplos, vantagens, aplicações

A programação modular é uma técnica usada no desenvolvimento de software, onde o programa é dividido em muitos pequenos blocos ou componentes 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 todo o necessário para cumprir sua própria funcionalidade e pode ser editado ou modificado sem afetar o restante do projeto.

Essa maneira de programar é conseguida mantendo uma interface permanente do módulo usada pelos 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 por meio de interfaces, projetadas de forma a minimizar a dependência entre os diferentes módulos.

Módulos principal e auxiliar

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

Esses módulos auxiliares existem como arquivos executáveis ​​separados, 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 precisar conhecer todos os módulos do sistema. Cada um dos aplicativos modulares possui um número de versão associado a ele 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 detalhada do código para executá-lo. São as limitações cognitivas humanas que forçam você 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 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 ficará mais fácil de entender, cumprindo assim as 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 por comandos e instruções. A forma geral de uma função é:

Nome_da_Função (declaração de parâmetro) {

frases;

comandos;

retornar expressão;

}

– A declaração dos parâmetros representa as informações que estão sendo passadas para a função.

– As variáveis ​​adicionais usadas especificamente pela função são definidas nas instruções.

Relacionado:  Variável (programação): características, tipos, exemplos

– Todas as funções devem incluir uma declaração de retorno.

Escopo das variáveis

Variáveis ​​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 ​​declaradas externamente ao programa principal ou a 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.

É processual

A programação modular é bastante processual, pois é totalmente voltada para a escrita de código para funções, independentemente dos dados.

Exemplos de programação modular

Modularidade na vida real

Vamos assumir uma casa que tenha eletricidade, com várias tomadas nas paredes. Este sistema permite conectar vários dispositivos elétricos, por exemplo, microondas, lavadora, secadora, etc.

Esses dispositivos foram projetados para executar suas tarefas específicas, conectando e ligando, independentemente da casa em que estão.

Os módulos de um aplicativo devem seguir essa mesma filosofia. Isso significa que eles devem executar apenas suas tarefas específicas, independentemente da parte do aplicativo em que estão, ou mesmo a qual aplicativo estão 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 de outros dispositivos conectados, a remoção de módulos de um aplicativo não deve afetar a funcionalidade de outros módulos desse aplicativo.

Funções em Java

Em Java, os módulos são gravados como funções independentes. Por exemplo, você pode ter uma função ou bloco de código para calcular a média de notas de um aluno com base em suas notas em todos os cursos realizados.

A função precisa obter a lista de notas como entrada e, em seguida, retornar a média calculada do ponto da nota:

Essa função é chamada CalculateAverageNote. Ele recebe uma lista de notas como entrada, usando uma matriz de tipo de dados dupla e retorna a média calculada.

Na função, a variável local soma é inicializada como zero e, em seguida, por um loop for, todas as qualificações são adicionadas à soma. Finalmente, 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 adicioná-las, somaria o valor de 10,5 e depois seria dividido por 3, porque existem três notas. A função retornaria o valor 3.5.

Relacionado:  Topologia em estrela: características, vantagens, desvantagens

Vantagem

Programação de projeto independente

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

Desenvolvimento eficiente do programa

Os programas podem ser desenvolvidos mais rapidamente, já que módulos pequenos e independentes 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 em 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, facilitando o teste. Cada módulo pode ser gravado e testado separadamente do restante do programa. Após um módulo ter sido testado, ele pode ser usado em um novo programa sem precisar tentar 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 restante do programa seja alterado.

Desvantagens

Estrutura excessivamente orientada a objetos

Essa programação usa interfaces, o que é uma ideia bastante eficaz. Para tirar proveito disso, algumas estruturas trazem consigo um conjunto completo de classes intercambiáveis. Por exemplo, para lidar com persistência, pode haver várias classes que implementam uma interface de persistência.

No entanto, os Ambientes de Desenvolvimento Integrado (IDEs) são confundidos com isso. Por exemplo, você pode estar tentando encontrar a fonte de um método, e o IDE não saberá qual método você deseja ver, mostrando uma longa lista de arquivos onde existe um método com esse nome.

Módulos muito pequenos

Há um grande número de 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 de código.

Portanto, o uso de muitos módulos pequenos adicionará uma sobrecarga ao sistema de construção, aumentando o tamanho do pacote.

Decompor sem motivo

Alguns códigos quase nunca mudam. Nesses casos, pode não fazer muito sentido tentar torná-la mais limpa ou com lógica abstrata, se apenas usá-la já funcionar bem.

Relacionado:  O que é um Anemoscope ou Windsock?

Existem códigos que não parecem muito bonitos e ainda não mudaram muito nos últimos anos. Não há razão para decompor o código que nunca foi alterado e que já funciona 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 processual, que possuem um programa compilado separadamente.

As bibliotecas de componentes criadas a partir de módulos compilados separadamente podem ser combinadas em um conjunto usando uma ferramenta de programação chamada vinculador.

Os nomes das funções nos diferentes módulos devem ser exclusivos para facilitar o acesso, caso as funções utilizadas pelo módulo principal sejam 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 (pacotes são considerados módulos), Perl, etc.

Linguagem C

A programação modular pode ser aplicada na linguagem C, pois permite solucionar uma grande dificuldade, separando-a em vários módulos.

Cada um desses módulos resolve um problema específico, enquanto o programa principal, que é o conjunto desses procedimentos, resolve o problema como um todo.

Cada função definida em C é globalmente acessível por padrão . Isso pode ser feito incluindo um arquivo de cabeçalho, onde a implementação da função é definida.

Como exemplo, procuramos declarar uma pilha de tipos de dados 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:

pilha externa_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 da pilha:

Referências

  1. Wiki do CIO (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. Farol de tecnologia. Retirado de: techbeacon.com.
  5. Geeks para Geeks (2020). Abordagem Modular em Programação. Retirado de: geeksforgeeks.org.
  6. Estudo (2020). Programação Modular: Definição e Aplicação em Java. Retirado de: study.com.

Deixe um comentário

Este site usa cookies para lhe proporcionar a melhor experiência de usuário. política de cookies, clique no link para obter mais informações.

ACEPTAR
Aviso de cookies