Design Modular conhecido como projeto na área de engenharia de softwares

 

Projeto Modular: O papel do projeto modular eficaz na engenharia de software

Qualquer software é composto por muitos sistemas que contêm vários subsistemas, e esses subsistemas contêm ainda seus subsistemas. Portanto, projetar um sistema completo de uma só vez, compreendendo todas as funcionalidades necessárias, é um trabalho árduo e o processo pode ter muitos erros devido ao seu grande tamanho.

Assim, para resolver este problema, a equipe de desenvolvimento divide todo o software em vários módulos. Um módulo é definido como os componentes exclusivos e endereçáveis do software que podem ser resolvidos e modificados independentemente, sem perturbar (ou afetar em uma quantidade muito pequena) outros módulos do software. Portanto, todo projeto de software deve seguir a modularidade.

O processo de dividir um software em vários módulos independentes, onde cada módulo é desenvolvido separadamente, é chamado de modularização.

Um projeto modular eficaz pode ser alcançado se os módulos particionados forem separadamente solucionáveis, modificáveis e compiláveis. Aqui, módulos compiláveis separadamente significa que, depois de fazer alterações em um módulo, não há necessidade de recompilar todo o sistema de software.

Para construir um software com projeto modular eficaz, existe um fator "Independência Funcional" que entra em jogo. O significado de Independência Funcional é que uma função é de natureza atômica, de modo que executa apenas uma única tarefa do software, sem ou com pouca interação com outros módulos. A Independência Funcional é considerada um sinal de crescimento na modularidade, ou seja, a presença de maior independência funcional resulta em um sistema de software de bom design, e o design afeta ainda mais a qualidade do software.

Benefícios de módulos/funções independentes em um projeto de software:

Uma vez que a funcionalidade do software foi decomposta em níveis atômicos, os desenvolvedores obtêm um requisito claro de cada função e, portanto, o projeto do software torna-se fácil e livre de erros.

Como os módulos são independentes, eles têm dependência limitada ou quase nenhuma em outros módulos. Portanto, fazer alterações em um módulo sem afetar todo o sistema é possível nesta abordagem.

A propagação de erros de um módulo para outro e ainda mais para todo o sistema pode ser negligenciada, o que economiza tempo durante o teste e a depuração.


Nenhum comentário:

Postar um comentário

Objeto de valor por Martin Fowler

  Ao programar, muitas vezes acho útil representar coisas como compostos. Uma coordenada 2D consiste em um valor x e um valor y. Uma quantia...