Modularização

Para explicar modularização, vou contar uma historinha, envolve bastante a questão da Engenharia de Software, e assim como os grandes nesta área, seguindo o exemplo, vou traçar um paralelo com a Revolução Industrial, que aconteceu na Inglaterra, no século XIX, mas nossa história é bem mais recente, segunda metade do século XX.

Antes da Revolução  Industrial, todo produto era manufaturado, ou seja, construido inteiro, por uma artesão e seu aprediz. O sapateiro, construia todo o sapato, desde a sola até o acabemnto em couro, por exemplo. Para construir um conjunto de cadeiras, por exemplo, o marceneiro recebia a madeira e “esculpia” uma a uma. Muito bem. Com a Revolução Industrial, o trabalho passou a ser segregado. Uma pessoa cosntruia uma parte da cadeira, o assento, por exemplo, outra o enconto, e  outra montava. Mais para frente, FORD chamou de linha de montagem, utilizada até hoje.

O que isso nos interessa? Calma.

Desta forma, um produto que era interiço, passou a ser divido em modulos, que se interligavam e construiam o produto.

Com a informática, não foi muito diferente, quando registrou-se o primeiro computador digital, o ENIAC, este não tinha o conceito de software, era tudo hardware. Puxa, mas como ele calculava balistica? Como saiba quais eram os valores que devia levar em consideração? Isso era tudo posto no hardware, conectando fios. Mais tarde, década de 50, o grande Von Neuman, criou a arquitetura que assombra alunos iniciantes na informática até os dias de hoje:

ENTRADA –> PROCESSAMENTO –> SAIDA

Pois bem, isso a “Revolução” da informática no ponto de vista do que era desenvolvido, pois, máquinas de Von Neuman, como são conhecidas as máquinas que adotam este modelo, bem abstrado, como nossos modernissimos computadores, deveriam ter um programa fisico, ou seja, gravado no harware, que permitisse ler os programas e o carregar em uma memória, da mesma forma as entradas. Isso hoje se chama Sistema Operacional, que não fica garvado no hardware, quem fica é um programinha chamado BIOS, que acorda o Sistema Operacional, que, infelizmente não nos cabe detalhes, pena, isso os ajudaria com as disciplinas de AORG, SO1, SO2, entre outras.

Ai começam a existir os programas, e o interesse comercial por computadores. Logo, era necessaria escrever programas que atendessem as necessidades comerciais dos contratantes de computador, pois computador por si proprio não faz nada. Para isso, começou a surgir os primeiros programas e linguagens voltadas para tal, como o COBOL, que assoumbrou e ainda assombra muita gente.

Estes programas, iniciais, eram escritos todos como um produto inteiriço de antes da revolução Industrial. Mas havia partes de código que eram utilizadas  mais de uma vez. Reescrever? Inicialmente sim, ai cabe uma ressalta, muita redundancia de código, dificil manutenção, depois começaram a a utilizar desvios, os famigerados goto. Isso levou a um tipo de código conhecido como programa spaghetti.

Depois disso, teve a famosa crise do software, devido a grande complexidade do software, alto custo de manutenção, e tudo aquilo que o Levi cobra até a alma em ES1. Com isso, surgiu a chamada Programação Estruturada e a Engenharia de Software.

Um dos grandes passos conseguidos com a Programação Estruturada foi a possibilidade de dividir o cósigo em pedaços especializados e aclopá-los mais tarde produzindo assim o software que atendia as necessidades comerciais com mais facilidade. Percebam que o processo é semelhante à Revolução Industrial do século XIX, só que no final da década de 60 e década de 70.

Mais tarde, a Programação Estruturada “evoluiu” para a Programação Orientada a Objetos, que não nos cabe detalhes agora.

Vamos explorar agora a parte de divisão do código da PE, que se chamam modulos, por isso modularização.

Por Charles Santos.

Referências principais:
http://www.inf.ufpr.br/silvia/ES/SweES/SweESalunos.pdf, acesso em 28/10/2010

Roger Pressman. Software Engineering – A Practitioner’s Approach. 6ê ed. Software Engineering Series. McGraw Hill 2004.

Deixe um comentário