Qualidade de código em softwares na engenharia, é importante ?

1fec03bf24f501a

Para discutirmos se é necessário que haja qualidade de código de código em softwares, vamos primeiro entender o que é qualidade de código e depois vamos discutir alguns métodos de criação de software.

1- O que é qualidade de código?

Cada empresa pode possuir um manual do que é considerado qualidade de código para eles, porém, em seus aspectos mais gerais, pode ser definido como um código que seja capaz de criar um software de qualidade, sendo que esse possui as seguintes atribuições:

Qualidade de software
https://pt.wikipedia.org/wiki/ISO/IEC_9126

Assim, ainda estamos com uma pergunta em aberto, a qualidade de código é importante? Vamos para o segundo tópico que esse vai nos esclarecer um pouco melhor a cerca dos métodos de criação de software.

2- Modelos de processos de criação de software:

Antes de discutir os modelos, devo deixar claro que nem todas as empresas usam os modelos puros. O mais comum é usar os modelos como base  e adaptá-los para as necessidades da empresa ou do software a ser criado, ou usar um modelo que seja misto. Sabendo disso, vamos olhar os modelos principais:

a) Modelo em cascata: consiste basicamente de um modelo linear em que cada etapa deve ser finalizada antes que a outra comece.

b) Modelo em espiral: modelo de desenvolvimento iterativo e incremental. Possui ciclos que podem durar meses ou anos (em geral 6 meses ou 2 anos) e cada ciclo inicia com uma nova solicitação do cliente. Cada ciclo pode usar uma metodologia de desenvolvimento diferente da anterior.

c) Modelo de prototipagem evolucionária: modelo em que o software é desenvolvido através da criação versões iniciais (protótipos) de um sistema futuro com o qual é possível fazer experimentos.

d) Métodos ágeis de desenvolvimento:

d1) Codificação Cowboy: em poucas palavras, poderíamos dizer que é o tipo de codificação em que os membros da equipe fazem o que acham que deve ser feito, o que sentem que é correto. Ou seja, é uma forma de ausência de metodologia.

d2) X.P. (eXtreme Programming): metodologia que tem como 5 pontos principais: comunicação, simplicidade, feedback, coragem e respeito. Utilizada por pequenas e médias equipes para a construção de softwares com requisitos vagos.

d3) Scrum: método usado para projetos difíceis de planejar como deverá ser o produto final e/ou projetos com poder de decisão ao nível das propriedades da operação.

d4) Feature Driven Development: uma metodologia que presa pela entrega de resultados frequentes, tangíveis e funcionais (uma das 6 primeiras metodologias ágeis originais).

Observe que, mesmo que esses modelos sejam tanto para a criação de softwares que irão ou não receber manutenção, há modelos que fazem com que a criação do software seja mais ou menos veloz. A velocidade vai depender, principalmente, do tipo de software a ser construído e se a metodologia aplicada é adequada para ele. Há outras formas de aumentar a velocidade da criação do software, mas vão depender das normas da empresa.

Ok, e agora? O que podemos tirar de conclusão sobre isso?

simples

3 – O que entendemos disso tudo?

Se você estiver codando um software, e tem um prazo muito curto de entrega, não necessariamente um código com qualidade pode ser a resposta. Tudo tem que ser analisado, como por exemplo: o software vai receber manutenção? O software vai passar por melhorias?

Se a resposta for não para os dois primeiros, então um software criado de tal forma que ele atenda aos requisitos propostos pelo cliente é o suficiente. Assim, pode-se encurtar o prazo para a entrega do software, ao diminuir a qualidade do código. A nível exemplo, imagine: um jogo que seja criado apenas a fim de testar as habilidades da empresa e você não queira mais fazer a manutenção dele; a criação de um portfólio sobre o que a empresa é capaz de fazer, mas não fez a nível de venda para clientes; um protótipo de software personalizado que você quer vender para uma empresa e você não sabe ela vai aceitar; um software que seja feito para seu uso pessoal.

Dessa forma, nem sempre a qualidade de código é necessária. Porém, se a resposta foi sim para pelo menos uma das perguntas acima, um código mal feito pode levar o programador a gastar mais tempo para realizar modificações, sendo elas por causa de correção de erros ou updates. Assim, a empresa possivelmente terá um manual de boas práticas de codagem para que qualquer outro programador da empresa seja capaz de ler e modificar o código a fim de atender aos novos requisitos que surgirem.

Se a empresa não tiver, ou se você for um programador autônomo, existem sites que propõem boas condutas de codagem (segue abaixo alguns exemplos):

https://msdn.microsoft.com/pt-BR/library/4dtdybt8(v=vs.90).aspx -> Manual da microsoft. Além de ser muito bem detalhado, as explicações são divididas por assunto.

http://luissoares.com/codigo-de-ma-qualidade/ -> Postagem do blog do Luis Soares que é full-stack web developer. Contém várias práticas de boa conduta para códigos com qualidade. A postagem faz comparações com erros comuns cometidos pelos programadores e sugere melhorias para os mesmos.

http://www.linhadecodigo.com.br/artigo/3460/qualidade-de-software-dicas-para-escrever-um-codigo-de-qualidade.aspx -> Postagem do Stephany Henrique, que é formado em ciências da computação e possui mestrado em banco de dados. A postagem foi criada com base em “CODE COMPLETE de Steve McConnell e CÓDIGO LIMPO de Robert C. Martin” (essa informação está na própria postagem).

Para os iniciantes na arte de codar com qualidade pode ser que haja uma grande dificuldade em encontrar o que não condiz com práticas de qualidade. Pensando nisso, já existem disponíveis algumas ferramentas que ajudam a identificar erros ou melhorar partes do código:

http://www.sonarqube.org/ -> É capaz de avaliar: C#, C/C++, PL/SQL, Cobol, ABAP…

https://codeclimate.com/ -> É capaz de avaliar: PHP, JavaScript, Ruby, Python.

http://jslint.com/ -> É capaz de avaliar: JavaScript

4- Qualidade de código em softwares na engenharia, é importante ?

Como produtos e processos de engenharia geralmente são criados para solucionar problemas por um longo prazo, ter qualidade de código deixa essa decisão ainda mais crucial pois qualquer manutenção que se mostrar necessária, fica mais fácil de ser realizada.

Assim, de falar tanto sobre a qualidade de código em software, posso afirmar que, sendo uma situação cabível, é sempre preferível ter um software com código de qualidade, mesmo que se demore mais para produzi-lo, do que o contrário (independente de ser para engenharia ou não).

 

Assim, fica a dica da tia Ju: code com qualidade SEMPRE, mesmo nos trabalhos da faculdade (e,acredite, isso vai te ajudar a entender o que você escreveu no dia anterior).

.

.

.

Essa postagem é uma sugestão de um amigo. Espero que eu tenha conseguido abordar o assunto de forma satisfatória. ^^

E ai? Gostou? Não gostou? Quer fazer algum elogio, crítica ou sugestão? Comente abaixo a sua opinião.

Obrigada para quem leu até aqui.

\o/

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s