1.4 Atributos essenciais de um software
Para Sommerville (2011), os atributos essenciais de um bom software são:
- Manutenibilidade: atributo crítico, porque a mudança de software é um requisito inevitável de um ambiente de negócio em constante mudança. O software deve ser fácil para corrigir, evoluir, adaptar;
- Confiança e proteção: um software confiável não deve causar prejuízos físicos ou econômicos no caso de falha de sistema, assim como usuários maliciosos não devem ser capazes de acessar ou prejudicar o sistema. O sistema deve funcionar corretamente, evitar falhas, proteger dados;
- Eficiência: inclui a capacidade de resposta, tempo de processamento, uso de memória, CPU, rede, etc;
- Aceitabilidade / Usabilidade: o software deve ser aceitável para o tipo de usuário para o qual foi projetado. O sistema precisa incluir UX, acessibilidade, experiência do usuário;
Esses atributos garantem que o sistema seja confiável, adaptável, tenha bom desempenho e atenda às necessidades do usuário. Na minha visão, o atributo mais importante é a manutenibilidade, porque software está em constante evolução. Mudanças de negócio, correções de bugs, atualizações de segurança e melhorias de experiência do usuário exigem adaptações contínuas. Um sistema difícil de manter tende a se tornar caro, lento para evoluir e mais propenso a erros, impactando diretamente os demais atributos como confiabilidade, eficiência e usabilidade.
Ainda de acordo com Sommerville (2011), há 3 aspectos gerais que afetam vários tipos diferentes de software:
- Heterogeneidade: o software precisa funcionar em diversos ambientes (diferentes sistemas operacionais, diferentes dispositivos, integração com outros sistemas). Quanto mais ambientes, maior a complexidade;
- Mudanças de negócio e social: o mundo muda rápido, então o software também precisa mudar (novas regras de negócio, novas tecnologias, novas demandas de usuários). Um software precisa estar em constante evolução;
- Segurança e confiança: um software precisa ser seguro, confiável, protegido contra ataques. Falhas podem causar grandes prejuízos;
Bibliografia:
Marco Tulio Valente. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, Editora: Independente, 2020.
SOMMERVILLE, Ian. Engenharia de software. 9. ed. São Paulo: Pearson Prentice Hall, 2011.