O documento discute qualidade de código e como alcançá-la através de boas práticas de programação como uso de padrões, frameworks e código limpo, além de testes de unidade e integração. A qualidade também depende de aspectos técnicos como escolha da tecnologia adequada e custos associados a débitos técnicos. Embora a qualidade do software não esteja diretamente ligada à qualidade do código, boas práticas de programação auxiliam no desenvolvimento de software de qualidade.
4. Nem todo software bom tem código
bom
QUALIDADE DE
SOFTWARE(diferente)
QUALIDADE DE
CÓDIGO
Nem todo código bom tem um
propósito real
As métricas de qualidade são
especificas para código
As métricas de qualidade são
voltadas para usabilidade
Software
código
B. dados infra
5. O QUE É
QUALIDADE
?
NBR ISO 9000:2005
"Qualidade é o grau no qual um conjunto de características
inerentes satisfaz aos requisitos”.
NBR ISO 8402
"A totalidade das características de uma entidade que lhe
confere a capacidade de satisfazer às necessidades explícitas e
implícitas”.
6. O QUE É
QUALIDADE
?
Aspecto / Forma / Apresentação
Material / Constituição / Técnica
Custo / Distribuição / Processo
7. Técnica
Custo
QUALIDADE
Aspecto / Forma / Apresentação
Material / Constituição / Técnica
Custo / Distribuição / Processo
CÓDIGO
Linguagem de Programação
Símbolos representativos
Instruções
< Código >
Aspecto
8. CUSTO
Débitos técnicos Técnica
Custo
< Código >
Aspecto
Poucos sistemas permanecem sem débitos técnicos, devido a N fatores, a
questão é “Quando será pago?"
Um débito técnico é como uma conta a ser paga, quanto antes pagar menor será
o prejuízo com erros inesperados, tempo de correção e manutenção.
9. TÉCNICA
Patterns, frameworks, etc.
Uma fonte comum de baixa qualidade é a escolha errônea da tecnologia,
metodologia ou ferramenta, para escolher é fundamental considerar fatores como
potencial sobrevivência, interoperabilidade, segurança e padrões.
Técnica
Custo
< Código >
Aspecto
Um framework é uma promessa de qualidade, atualização e manutenção a um custo menor.
Exemplos:
Design patterns são soluções de design comprovadas e design são as bases de projeto de
software OO.
O uso de OO ajuda evitar a intuitividade e legibilidade do código, resultando em menor dificuldade
de manutenção da aplicação.
10. ASPECTO
Código limpo
O nível de retardo para manter um código "sujo" pode ser significativo ao
longo de um ou dois anos e piorar gradativamente a cada alteração.
- “Um código limpo é simples e direto. Ele é tão bem legível quanto uma prosa
bem escrita”.
- - Grady Booch
Técnica
Custo
< Código >
Aspecto
12. TESTES
Teste de Unidade: Testa um componente isolado ou classe do sistema.
Teste de Integração: Testa se um ou mais componentes combinados funcionam
de maneira satisfatória.
Teste de Regressão: Reteste de um sistema ou componente para verificar se alguma
modificação recente causou algum efeito indesejado.
Teste Funcional: Testa os requisitos funcionais, as funções e os casos de uso.