Funções e Procedimentos - Modularização

Operações relacionais e lógicas Operações Aritméticas variáveis Tipos de dados Estruturas Aninhadas algoritmos

Oi pessoal! Tudo bem? Espero que sim. Este artigo tem como objetivo finalizar o tópico Funções e Procedimentos, enfatizando a importância da Modularização no desenvolvimento das nossas soluções de software. Bora lá então?

 

 

Modularização

 

Modularização pode ser entendida como um conceito computacional que é empregado para dividir o seu programa em partes funcionais, partes essas que conversam umas com as outras. Observando bem, toda a nossa solução de software é, no final das contas, sequencial, isto é, o software é executado linha por linha, uma após a outra. Porém, às vezes, uma linha manda o seu programa para outra parte dele e depois volta, isso é o que aprendemos com as Funções. Ainda assim, ao entrar na Função, a execução continua linha a linha. Mas note que a Função é uma parte do seu programa que está em uma região diferente e é acessada por meio de uma chamada a ela e, quando a sua execução termina, volta para quem a chamou.

 

Dito isto, por que devemos pensar em nossa solução de software de forma modular, como se fossem blocos a serem unidos de alguma forma, como em um quebra cabeça, ou até mesmo como peças de Lego? Lembram-se que eu disse, lá no começo, que o objetivo de uma Função é fazer algo muito específico? Pois bem, o fazer algo específico é a parte modularizada, é o bloquinho que será juntado a outras partes. Fazendo uma analogia com uma colônia de formigas: cada formiga tem uma "função" particular dentro da colônia e faz a sua parte corretamente, de forma que a "sociedade das formigas" funciona perfeitamente bem nesse regime! Se uma das formigas não cumprir com o seu papel, as consequências serão gravíssimas para a colônia. Em computação devemos manter isso em mente sempre.

 

A dificuldade da maioria das pessoas está em definir o "algo específico" para uma Função. Muitas vezes, principalmente quando estamos começando a programar, acabamos pondo muito código dentro de uma Função, código esse que provavelmente deve estar em outra parte do programa, outra Função, até mesmo uma Biblioteca. Como alcançar esse nível de abstração? Como saber o que é o realmente necessário codificar em uma Função, ou até mesmo em uma Biblioteca? Bom, não existe uma fórmula mágica, mas o segredo é praticar.

 

Quanto mais você pratica, mais você refina o seu conhecimento de programação, melhora seu poder de observação, de abstração, síntese e começa a perceber que aquela Função que tem 20 linhas pode ser dividida em três funções, ou até mesmo quatro. Aí você começa a perceber que muito desse código é repetitivo, isto é, muitas linhas você repete em várias partes do seu programa, então você começa a se perguntar: precisa sempre repetir tanto código? E se eu fizesse uma Função que tem esse código e apenas chamá-la quando precisar dela em qualquer parte do meu programa? E se eu colocar esse código repetitivo em uma biblioteca e sempre utilizá-la quando precisar, em qualquer parte de quaisquer programas que eu estiver codificando?

 

Modularizar é isto basicamente, o que acaba resultando em Reutilização de código, algo extremamente importante atualmente em nossa área. Se a roda já existe, por que reinventá-la? Se já existem inúmeras bibliotecas disponíveis por aí, para resolver diversos tipos de problemas, você deve utilizá-las, para poupar tempo de desenvolvimento de software. Para as empresas, o tempo é algo crucial e não deve nunca ser menosprezado, pois tempo é dinheiro e ninguém quer ter prejuízo.

 

Suas aplicações ficarão mais elegantes e limpas se conseguir modularizar e reutilizar código de forma adequada e isso será muito bom para o seu currículo, para a sua carreira e para a empresa que te contratar. Funções, procedimentos e bibliotecas são recursos computacionais importantes para organizar, modularizar e reutilizar código em suas aplicações, não somente em linguagem C, mas em qualquer outra linguagem de programação.

 

Minha sugestão para você que pretende usar programação em qualquer projeto seu, seja ele uma solução de Internet das Coisas, Sistemas Embarcados, Eletrônica Digital, Aplicação Desktop ou Web, é: TREINE, PRATIQUE! Antes de sair codificando, analise o problema, analise o contexto, arquitete sua solução, faça um desenho dos MÓDULOS da sua aplicação, faça um fluxograma. Cada módulo será responsável por algo que deve ser feito na sua aplicação, e deve solucionar de forma bem objetiva uma parte do problema, podendo ser implementados em forma de bibliotecas e, dentro das bibliotecas, como funções. Essa prática de analisar, avaliar e desenhar blocos e como esses blocos conversam entre si é ótima para desenvolver sua capacidade de abstração e organização. Faça isso e obterá sucesso!

 

 

Finalizando

 

Pra finalizar este assunto, você pode aprimorar seus conhecimentos estudando um pouco de Engenharia de Software. Empresas grandes, normalmente, antes de codificar, criam toda uma documentação e especificação de software, a partir de uma série de técnicas, modelos e metodologias. A partir dos diagramas criados nessa fase, os programadores codificam as partes do software, que são depois conectadas, testadas e então o software é entregue para o cliente. 

 

Não estou dizendo para você se tornar um Engenheiro de Software, mas, mesmo que suas aplicações sejam pequenas e simples, é uma boa aplicar um pouco dos conceitos de Engenharia de Software.

 

É isso pessoal, espero ter ajudado vocês com estas dicas. Tenho certeza de que todos alcançarão o sucesso tão desejado. Boa sorte e, se tiverem dúvidas, entrem em contato via comentários!

 

Até!

Outros artigos da série

<< Funções e Procedimentos - Parte 4Recursividade >>
NEWSLETTER

Receba os melhores conteúdos sobre sistemas eletrônicos embarcados, dicas, tutoriais e promoções.

Obrigado! Sua inscrição foi um sucesso.

Ops, algo deu errado. Por favor tente novamente.

Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.

Elaine Cecília Gatto
Bacharel em Engenharia de Computação. Mestre em Ciência da Computação. Doutoranda em Ciência da Computação. Co-fundarora e Líder das #GarotasCPBr. Pesquisadora Convidada no Grupo de Pesquisa: "Artes em Tecnologias Emergentes" do Programa de Pós Graduação em Design na UNESP Campus Bauru. Cantora, Docente no Magistério Superior, Geek, Nerd, Otaku e Gamer. Apaixonada por Michael Jackson, Macross, Rocky Balboa, Séries, Filmes, Cervejas e Vinhos. Mais informações sobre mim você encontra em: http://lattes.cnpq.br/8559022477811603.

6
Deixe um comentário

avatar
 
3 Comment threads
3 Thread replies
3 Followers
 
Most reacted comment
Hottest comment thread
4 Comment authors
Victor de OliveiraAtrícia SabinoElaine Cecília GattoFábio Souza Recent comment authors
  Notificações  
recentes antigos mais votados
Notificar
Victor de Oliveira
Visitante
Victor de Oliveira

Material maravilhoso! Meus parabéns!

Atrícia Sabino
Visitante
Atrícia Sabino

Uma excelente iniciativa! E parabéns a todos os envolvidos.

Fábio Souza
Membro

Parabéns Elaine pela excelente serie!