Prévia do material em texto
Qualidade de Software - Introdução SST Passos, Ubiratan Roberte Cardoso Qualidade de Software - Introdução / Ubiratan Roberte Cardoso Passos Ano: 2020 nº de p.: 8 Copyright © 2020. Delinea Tecnologia Educacional. Todos os direitos reservados. Qualidade de Software - Introdução 3 Apresentação Vamos estudar, neste momento, que o conceito de qualidade de software é subjetivo e depende do indivíduo ou grupo de indivíduos que interage com ele, além da época em que tal interação é realizada. A seguir, vamos perceber que o conceito de qualidade, para a engenharia de software, não se restringe ao período de utilização do software e engloba todo o ciclo de vida o produto, desde o desenvolvimento de funcionalidades que atendam, de fato, aos requisitos levantados até a capacidade de manutenção e suporte, quando o software está em funcionamento. Contextualização Apesar de sua importância ter sido realmente evidenciada somente a partir da década de 1990, os problemas com qualidade de software, ou, falta da qualidade, são um pouco antigos. Nos primeiros anos da década de 1980, a revista Business Week publicou em sua primeira página a seguinte manchete: “Software: A nova força propulsora”. O interesse pelo desenvolvimento de softwares estava amadurecendo, impulsionado principalmente pelo grande número de computadores “pessoais” ou para “pequenos negócios” que eram vendidos e necessitavam de softwares para que pudessem ser operados e oferecessem algum valor para seus usuários. Anos mais tarde, agora em meados da década de 1980, uma reportagem de capa Fortune destacava: “Uma crescente defasagem de software”, o software passara a ser uma grande preocupação administrativa. Já no final da década de 1980, novamente por meio de uma manchete, a Business Week publica: “Armadilha do Software – Automatizar ou não?”. Os softwares que eram desenvolvidos até então, não se mostravam confiáveis, não eram desenvolvidos dentro do prazo e nos custos inicialmente previstos, seu desempenho não era satisfatório e sua manutenção era um desafio. Além de que os preços dos hardwares vinham diminuindo, devido principalmente à sua produção em larga escala, enquanto os preços dos softwares continuavam a aumentar. 4 Mesmo nesse cenário, a importância do software continuava a crescer, chegando a ser mais importante do que o próprio hardware, sendo até mesmo por muitos considerado como a chave do sucesso para diversos sistemas baseados em computadores. Sua capacidade de ser “amigável” ao usuário, seus recursos, tudo fazia com que o software se diferenciasse de seus concorrentes que, por muitas vezes, tinham as mesmas funcionalidades, entretanto, com outros aspectos. Percebia-se naquele tempo que o desenvolvimento de grandes sistemas, quando concebido de maneira informal, sem regras ou etapas predefinidas, levava ao fracasso do projeto, não somente no sentido de que o projeto terminava sem ser concluído, mas também no sentido de que, mesmo sendo concluído, prazos e custos eram excedidos. Em uma entrevista publicada na internet, Bertrand Meyer diz: “Se produzimos um sistema de software de péssima qualidade, perdemos porque ninguém irá querer comprá-lo. Se, por outro lado, gastamos um tempo infinito, um esforço extremamente grande e grandes somas de dinheiro para construir um software absolutamente perfeito, então isso levará muito tempo para ser completado, e o custo de produção será tão alto que iremos à falência.” A situação descrita por Bertrand é conhecida como dilema da qualidade (VENNERS, 2003). Curiosidade Conceito de Qualidade de Software Vê-se, então, que caraterísticas desse novo ambiente obriga as empresas desenvolvedoras de software a investirem cada vez mais na melhoria da qualidade de seu produto. Entretanto, surge a questão: o que de fato vem a ser um software de qualidade? Aparentemente a resposta pode parecer simples, mas, dentro do contexto da engenharia de software, o conceito de qualidade pode variar de acordo com o ponto do indivíduo ou grupo de indivíduos que irá interagir com o software. Observando a literatura, facilmente podemos encontrar as seguintes definições para qualidade de software. 5 Na literatura Pressman e Maxim (2016, p. 724) afirmam que “Qualidade de Software é a conformidade a requisitos funcionais e de desempenho que foram explicitamente declarados, a padrões de desenvolvimento claramente documentados, e a características implícitas que são esperadas de todo software desenvolvido por profissionais”. Do ponto de vista de comitês internacionais De acordo com a ISO 9126 de 1994, “Qualidade é a totalidade de características e critérios de um produto ou serviço que exercem suas habilidades para satisfazer as necessidades declaradas ou envolvidas. (ABNT, 1994, p. 6). Para a NBR ISO 8402 de 1994, “Qualidade é a totalidade das características de uma entidade, que lhe confere a capacidade de satisfazer necessidades explícitas e implícitas”. Do ponto de vista dos envolvidos no processo Para um cliente/usuário, um software de qualidade é aquele que atende a todos os seus requisitos, que realize o que foi proposto de forma eficiente e eficaz, segura, e sem apresentar falhas, que lhe apresente respostas precisas para seus “questionamentos”, entregue a informação quando solicitada e que seja de fácil utilização, entre outros. Para um desenvolvedor, ou equipe de desenvolvimento, um software de qualidade é aquele desenvolvido com base nos melhores princípios da engenharia e software, de fácil manutenção, documentado, de fácil entendimento, com requisitos rastreáveis, implementação limpa, sem redundâncias ou código desnecessário. Apesar de que algumas das definições apresentadas convirjam para um mesmo sentido, é importante, para fins de estudo, que haja um consenso sobre qual a definição do termo qualidade de software. Sendo assim, tomemos como base as definições fornecidas pela literatura e pelos comitês internacionais. Dessa forma, podemos dizer então que a qualidade de software se refere ao conjunto de características esperadas em um produto de software, de forma que, sua presença garanta o atendimento das especificações realizadas pelo cliente, as necessidades do negócio e as expectativas dos desenvolvedores. 6 Atributos de qualidade Com o propósito de identificar o conjunto de atributos fundamentais de qualidade de um software, o padrão ISO 9126 faz o apontamento para seis itens de qualidade: Funcionalidade: referente ao grau com o que o software é capaz de satisfazer as necessidades declaradas por meio do seguinte grupo de subatributos: adequabilidade, exatidão, interoperabilidade, conformidade e segurança. Confiabilidade: refere-se ao tempo em que o software permanece disponível para o uso, sendo indicado pelo seguinte grupo de subatributos: maturidade, tolerância a falhas, facilidade de recuperação. Usabilidade: o quão fácil é a utilização do software, sendo sua medição realizada por meio dos seguintes subatributos: facilidade de compreensão, facilidade de aprendizagem, operabilidade. Eficiência: o quanto o software otimiza o uso dos recursos de hardware. É indicado a partir dos seguintes subatributos: comportamento em relação ao tempo, comportamento em relação aos recursos. 7 Facilidade de manutenção: indica o quão fácil é de se realizar uma correção no software, sendo indicado pelos seguintes subatributos: facilidade de análise, facilidade de realização de mudanças, estabilidade, testabilidade. Portabilidade: facilidade com a qual um software pode ser transposto de um ambiente a outro conforme indicado pelos seguintes subatributos: adaptabilidade, facilidade de instalação, conformidade, facilidade de substituição. Outras instituições de reconhecimento internacional que também trazem conceitos, definições e características para qualidade de software são: ABNT ISO 9000:2015; Software Quality Assurance; SWEBOK do IEEE; e PMBOK. Fechamento Constatamos que o conceitode qualidade de software é relativo quando depende do indivíduo ou grupo de indivíduos que interage com ele. Porém, não há que se falar em qualidade se o software não cumpriu com os requisitos que levaram à sua produção ou não foi desenvolvido a tempo de ser utilizado por quem o demandou. Destacamos que, além de atender preceitos relacionados a prazos e custos envolvidos no desenvolvimento, um software de qualidade deve implementar funcionalidades relacionadas aos requisitos com confiabilidade, usabilidade, eficiência, facilidade de manutenção e portabilidade. 8 Referências ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS (ABNT). NBR ISO 9126:1994 - Engenharia de software - Qualidade de produto. Rio de Janeiro, ABNT, 1994. ASSOCIAÇÃO BRASILEIRA DE NORMAS TÉCNICAS (ABNT). NBR ISO 8402:1994 - Gestão da qualidade e garantia da qualidade - Terminologia. Rio de Janeiro, ABNT, 1994. PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem profissional. 8. ed. Porto Alegre: AMGH, 2016. VENNERS, B. Design by Contract: A Conversation with Bertrand Meyer. Artima Developer, December 8, 2003.