Baixe o app para aproveitar ainda mais
Prévia do material em texto
Dentre os modelos de qualidade, a família de normas ISO 25000, também chamada de SQuaRE (de Software Product Quality Requirements and Evaluation), define alguns dos modelos mais importantes. Essa norma é uma revisão da norma ISO 9126 (de 2001), a qual ainda é citada por alguns livros, mas foi cancelada após a publicação da 25000. A norma é organizada em cinco divisões, sendo que cada uma possui uma ou mais normas: Gerenciamento de qualidade (normas com número 2500x): trata dos modelos comuns e termos básicos; Modelos de qualidade (normas com número 2501x): apresenta os modelos de qualidade; Medição de qualidade (normas com número 2502x): trata da medição da qualidade e de métricas; Requisitos de qualidade (normas com número 2503x): são normas que ajudam a especificar requisitos de qualidade, usando os modelos de qualidade e as medições; Avaliação de qualidade (normas com número 2504x): trata de requisitos, recomendações e guias para auxiliar a avaliação de qualidade. Modelos de qualidade A ISO 25010 define três modelos de qualidade: o de qualidade em uso, o de qualidade do produto e o de qualidade de dados. Os modelos possuem a mesma organização hierárquica, em que são definidas características de qualidade que podem ser subdivididas em sub características. Todas as características e sub características são definidas em graus, ou seja, não é algo booleano; é sempre o grau em que o sistema, o produto ou um componente atende a algo. Dependendo das características e sub características, pode ser possível medi-las diretamente, mas o mais usual é considerar um conjunto de propriedades - essas sim mensuráveis - que são combinadas para se chegar a uma medição. Como exemplo de propriedades tem-se o número de linhas de código, a precisão de um cálculo, o tempo de garantia do software e o preço. Não é prático medir todas as características e sub características de um software. Além do alto custo que isso implicaria ao desenvolvimento de software, nem todas as características são críticas para um sistema. Dessa forma, é importante definir metas de qualidade, baseadas nos requisitos. Nesse sentido, as características e sub características podem ser usadas como checklists para ajudar a definir os requisitos. Neste texto e nesta disciplina, trataremos apenas dos modelos de qualidade em uso e o de qualidade do produto. A diferença entre esses modelos é apresentada esquematicamente na Figura 1. Figura 1: Relação entre os modelos de qualidade da ISO 25000 (ISO, 2011). Os stakeholders têm necessidades individuais que consideram seus contextos de uso específicos, ou seja, as tarefas, os equipamentos e o ambiente real em que o produto é usado (ISO, 2011). O modelo de qualidade em uso considera a visão do usuário, tratando de características que são resultado da interação dele com o sistema, considerando os contextos de uso e, portanto, outros fatores além do software. TEXTO-BASE A norma ISO 25010 | Fábio Levy Siqueira O modelo de qualidade do produto abstrai os contextos de uso, tratando de características do produto de software em si. Essas características consideram propriedades internas e externas do software. As propriedades internas são propriedades estáticas do software, que podem ser avaliadas através de uma análise, mas sem a execução do software. Por exemplo, o número de linhas de código e o número de classes são propriedades internas. As propriedades externas, por outro lado, são relacionadas à execução do software em um determinado hardware e plataforma específica (mas, note que não é necessariamente o equipamento real e tampouco as tarefas e o ambiente real). Por exemplo, o tempo que o software demora para executar um cálculo é uma propriedade externa. Como mostrado na figura, as propriedades internas influenciam as propriedades externas, e as propriedades externas influenciam a qualidade em uso. Por exemplo, o número de linhas de código influencia o tempo de execução de um cálculo e isso influencia o tempo em que o usuário realiza uma atividade. Modelo de qualidade em uso Esse modelo define cinco características, como apresentado na Figura 2. A seguir, são brevemente definidas as características e suas sub características: Eficácia: “acurácia ou completude com a qual o usuário atinge objetivos específicos” (ISO, 2011, p. 8). Eficiência: “recursos despendidos em relação à acurácia e completude com os quais o usuário atinge os objetivos” (ISO, 2011, p. 8). Satisfação: o grau em que as necessidades do usuário estão satisfeitas ao usar o produto ou sistema. Utilidade: o grau em que o usuário está satisfeito com o atendimento dos seus objetivos. Confiança: “o grau em que o usuário ou outro stakeholder tem confiança que o produto ou sistema irá se comportar conforme esperado” (ISO, 2011, p. 9). Prazer: “o grau em que o usuário obtém prazer por atingir suas necessidades pessoais” (ISO, 2011, p. 9). Conforto: “o grau em que o usuário está satisfeito com o conforto físico” (ISO, 2011, p. 9). Ausência de riscos: “o grau em que o produto ou sistema mitiga os potenciais riscos para o status econômico, vida humana, saúde ou o ambiente” (ISO, 2011, p. 9). Mitigação de riscos econômicos: trata de riscos econômicos. Mitigação de riscos de saúde e segurança (safety): trata de risco às pessoas. Mitigação de riscos ambientais: trata de riscos à propriedade ou ao ambiente. Cobertura do contexto: o grau em que o produto pode ser usado com eficiência, eficácia, ausência de risco e satisfação nos contextos definidos ou em outros contextos. Figura 2: Modelo de qualidade em uso. Modelo de qualidade do produto O modelo de qualidade do produto é apresentado esquematicamente na Figura 3. Algumas pessoas usam esse modelo como taxonomia para requisitos não funcionais, em geral omitindo a característica adequação funcional. Figura 3: Modelo de qualidade do produto. A seguir são apresentadas as características e sub características desse modelo: Adequação funcional: o quanto o produto provê funções que cumpram as necessidades especificadas. Completeza funcional: o grau em que as tarefas e os objetivos são cobertos. Por mais que isso pareça estranho quando se especifica um software personalizado, considere o caso de softwares de prateleira: é possível que um software não atenda a todos os requisitos funcionais definidos. Correção funcional: o grau em que o produto provê resultados corretos e com a precisão esperada. Apropriabilidade funcional: o grau em que as funções facilitam executar as tarefas e atender aos objetivos. Eficiência de desempenho: “o desempenho relativo à quantidade de recursos usados sobre as condições definidas” (ISO, 2011, p. 11). Comportamento no tempo: o grau em que o tempo de resposta e de processamento atendem aos requisitos. Utilização de recursos: o grau em que a quantidade e o tipo de recursos usados atendem aos requisitos. Um recurso típico é a memória do computador, mas pode-se ter outros recursos, como a conexão de rede ou o espaço em disco. Capacidade: o grau em que os limites máximos atendem aos requisitos. Compatibilidade: “o grau em que um produto, sistema, ou componente pode compartilhar informação com outros produtos, sistemas ou componentes e/ou realizar as funções requeridas, enquanto compartilha o mesmo hardware ou ambiente de software” (ISO, 2011, p. 11). Coexistência: o grau em que produto consegue realizar as suas funções enquanto compartilha o ambiente ou recursos com outro produto sem o impactar negativamente. Um exemplo típico de softwares que tem problemas de coexistência são os antivírus, normalmente não é possível instalar mais de um em um computador. Interoperabilidade: o grau em que o produto ou sistema consegue compartilhar informações ou usar informações compartilhadas. Usabilidade: o grau em que o produto ou sistema pode ser usado para atingir os objetivos em um contexto de uso especificado. Adequação da reconhecibilidade: o grau em que usuários podem reconhecer que o produto ou sistema é adequado para o seu objetivo. Apreensibilidade:o grau em que é fácil aprender a usar o produto ou sistema. Operacionalidade: o grau em que o produto ou sistema é fácil de operar. Note que é possível, por exemplo, ter um sistema que é difícil de operar, mas fácil de aprender. Proteção ao erro do usuário: “o grau em que um sistema protege usuários contra o cometimento de erros” (ISO, 2011, p. 11). Estética da interface do usuário: “o grau em que a interface com o usuário permite uma interação prazerosa e satisfatória para o usuário” (ISO, 2011, p. 11). Acessibilidade: o grau em que o produto ou sistema pode ser usado por pessoas com diferentes características para atingir seus objetivos. Confiabilidade: o grau em que o produto executa suas funções nas condições especificadas e no período de tempo especificado. Maturidade: “o grau em que um sistema atende às necessidades de confiabilidade sob operação normal” (ISO, 2011, p. 11). Disponibilidade: o grau em que o sistema está disponível quando se deseja usá-lo. Tolerância a falhas: o grau em que o sistema funciona conforme o esperado apesar de falhas de hardware e software. Recuperabilidade: o grau em que o sistema consegue recuperar o seu estado após a ocorrência de uma falha. Segurança da informação (security): o grau em que o sistema protege informações e dados para que uma pessoa ou sistema tenha o acesso adequado para o nível de autorização dele. Note que em português a palavra “segurança” pode significar tanto safety (que é uma sub característica de qualidade em uso e trata da segurança física) e security (que é esta característica). Confidencialidade: o grau em que o sistema garante que apenas as pessoas que têm acesso ao dado podem efetivamente acessá-lo. Integridade: o grau em que o sistema impede o acesso a dados ou mudança de dados por pessoas ou sistemas não autorizados. Não repúdio: o grau em que se pode provar que eventos ou ações realmente aconteceram. Responsabilidade: o grau em que ações podem ser responsabilizadas a uma pessoa ou sistema. Autenticidade: o grau em que se pode provar que a identidade de uma pessoa ou sistema é a que se diz. Manutenibilidade: o grau em que o sistema pode ser modificado pelos mantenedores. Modularidade: o grau em que o sistema é composto por componentes independentes. Reusabilidade: o grau em que um ativo pode ser reusado em um outro sistema. Analisabilidade: o grau em que é possível avaliar o impacto de uma mudança ou diagnosticar problemas ou identificar partes a serem modificadas. Modificabilidade: o grau em que o sistema pode ser modificado sem afetar a sua qualidade. Testabilidade: o grau em que testes podem ser definidos e executados. Portabilidade: o grau em que um sistema, produto ou componente pode ser transferido para outro ambiente ou plataforma. Adaptabilidade: o grau em que um sistema pode ser adaptado para um outro ambiente. Capacidade de instalação: o grau em que um sistema pode ser instalado ou desinstalado. Capacidade de substituição: o grau em que um sistema pode ser substituído por um outro com o mesmo uso no mesmo ambiente. Referências ISO/IEC. Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models. ISO 25010. 2011. WAZLAWICK, R. S. Engenharia de software: conceitos e práticas. Rio de Janeiro: Elsevier/Campus, 2013.
Compartilhar