Software Quality: Definitions and Strategic Issues , o pesquisador Ronan Fitzpatrick (1996) - qualidade do produto de softwareQualidade de software é a metodologia em que um conjunto definido pela indústria de características desejáveis é incorporado em um produto, de modo a aprimorar seu desempenho durante sua existência.
Slide 2
1° modelo de qualidade de software
James A. McCall (2002)Conhecido como Fatores daQualidade, estes fatores avaliam o software em três pontosdistintos: Operação do Produto, Transição do Produto eRevisão do Produto.
• Operação: se refere às característicasrelativas ao uso do produto. Envolve os critériosde qualidade: Correção, Confiabilidade, Eficiência,Integridade e Usabilidade.• Revisão: refere-se à capacidade do produtoser modificado e evoluído. Envolve os critériosde qualidade: Manutenibilidade, Flexibilidade eTestabilidade.• Transição: refere-se à adaptabilidade anovos e diferentes ambientes. Envolve os critérios:Portabilidade, Reusabilidade e Interoperabilidade.
Parte 1: Modelo de qualidade - visão geral do modelo de qualidade,Parte 2: Métricas externas - Produto final como percebido pelo usuárioParte 3: Métricas internas - à estrutura e às características do produto em seu projeto e construção. Parte 4: Métricas de qualidade em uso -
Slide 5
ISO/IEC 25000- (ISO/IEC9126 +14598)
Mais recentemente, desde 2005, as normas ISO/IEC 9126 e a série ISO/IEC 14598, de avaliação de produto de software, têm sido integradas na nova série de normas ISO/IEC 25000 Software Engineering – conhecida como SQuaRE- Software product Quality Requirements and Evaluation, que tem seu núcleo principal composto por cinco divisões: ISO/IEC 2500n – Divisão Gestão da Qualidade ISO/IEC 2501n – Divisão Modelo de Qualidade ISO/IEC 2502n – Divisão Medição da Qualidade ISO/IEC 2503n – Divisão Requisitos de Qualidade ISO/IEC 2504n – Divisão Avaliação da Qualidade Além deste núcleo principal, o SQuaRE contempla extensões, que tratam de temas específicos, como ISO/IEC 25051, SQuaRE COTS - Commercial Off-The-Shelf ou Requisitos para qualidade de produtos comerciais de prateleira, e ISO/IEC 2506n, SQuaRE CIF- CommonIndustry Format para usabilidade.Obs:Qualidade do software se entende por qualidade do produto de software em si, o que é distinto de qualidade do processo de software, que diz respeito à qualidade das atividades e forma pelas quais se produz software.
Slide 6
Qualidade de software, como ?
é necessário um planejamento adequado para que a qualidade de software seja atingida, conforme a definição de qualidade que deverá ser alcançada. Para isso são necessários modelos, padrões, procedimentos e técnicas para atingir essas metas de qualidade propostas. Assim, todas as etapas do ciclo de vida de engenharia de software devem ser contempladas com atividades que visam garantir a qualidade tanto do processo quanto do produto.https://www.youtube.com/watch?v=CIuDv6Qna-M&feature=youtu.be
Slide 7
Qualidade segundo o PMBOK
PMBoK - Project Management Body of Knowledge do PMI - Project Management Institute, na versão 2004, os processos de gerenciamento da qualidade do projeto detêm todas as atividades da organização executora que determinam as responsabilidades, os objetivos e as políticas de qualidade, de modo que o projeto atenda às necessidades que motivaram sua realização. Estes processos de gerenciamento desenvolvem o sistema de gerenciamento da qualidade através da política, dos procedimentos e dos processos de planejamento da qualidade, garantia da qualidade e controle da qualidade, com atividades de melhoria contínua dos processosconduzidas do início ao fim. Com isso os três principais processos são:[1] Planejamento da Qualidade: Identificação dos padrões de qualidade relevantes para o projeto e determinação de como satisfazê-los.[2] Garantia da Qualidade: Aplicação das atividades de qualidade planejadas e sistemáticas para garantir que o projeto emprega todos os processos necessários para atender aos requisitos.[3] Controle da Qualidade: Monitoramento de resultados específicos do projeto a fim de determinar se eles estão de acordo com os padrões relevantes de qualidade e identificação de maneiras de eliminar as causas de um desempenho insatisfatório.
Slide 8
Qualidade segundo o PMBOK x ISO
Há diversas semelhanças entre os conceitos usados no PMBoK e os conceitos da própria ISO. Com isso, é possível ainda relacionar estes três processos do PMBoK com as definições de qualidade de processo, qualidade de projeto, controle da qualidade, garantia da qualidade e arquiteturade software.
Slide 9
Avaliação de Produtos de Software
é definida como uma operação técnica que consiste em elaborar um julgamento de uma ou mais características de um produto de software de acordo com um procedimento definido.Cumprir prazos,atender aos requisitos do software, estimar custos e recursos. -tarefas difíceisUm desafio ainda maior é conseguir identificar, ao final do processo de desenvolvimento, se osoftware atende aos requisitos funcionais e não funcionais pré-estabelecidos.
Slide 10
Weber et al (2001)
o processo de avaliação deve possuir quatro características principais:Repetível, Reprodutível, Imparcial e Objetivo. Além do objetivo principal de alcançar a qualidade, estas avaliações podem almejar a obtenção de certificações de qualidade que são adquiridas por meio da utilização de normas estabelecidas. Exemplo: ISO - Certificações de qualidade - que promove o desenvolvimento de normas, testes e certificação, com o intuito de encorajar o comércio de bens e serviçoshttp://youtu.be/6yD5ExXTSsg -vídeo sobre o papel da ISO, da família 9001 e as vantagens das certificaçõesABNT - Associação Brasileira de Normas Técnicas. A ABNT é uma organização de normas que apoia o desenvolvimento de normas consensuais e providencia estrutura e mecanismos a fim de que grupos industriais ou de produtos se juntem para estabelecer um consenso e desenvolver diretivas de qualidade.INPI - Instituto Nacional da Propriedade Industrial - criado em 11 Dezembro de 1970, Lei n° 5648órgão responsável pela concessão dos registros de marcas, patentes, modelos de utilidade e desenho industrial no Brasil.
Slide 11
ISO 14598 -
macroprocessos de avaliação de qualidade de produtos de software. Estes macroprocessos podem ser instanciados para avaliação do produto por desenvolvedores, adquirentes ou agentes externos dependendo dos objetivos e infraestrutura da organização
As principais etapas são: -Estabelecimento dos requisitos da avaliação, ondeos requisitos do software são recebidos e os requisitos da avaliação são definidos; -Especificação da Avaliação, onde se utiliza a descrição do produto e os requisitos da avaliação paradefinir o que será contemplado na avaliação; -Projeto da Avaliação, onde se agregam os dados utilizados na etapa anterior ao conhecimento de métodos de avaliação e projeta-se o Plano de Avaliação; -Execução da Avaliação, onde se usam as ferramentas específicas para colocar o Plano de Avaliação em prática; -Conclusão da Avaliação, onde o Relatório de Avaliação é emitido e todos os resultados obtidos são sintetizados e emite-se um parecer ao requisitante da avaliação.
Caption: : ISO 14598-5 - Avaliação por agentes externos
Slide 13
ISO 14598-5 - Avaliação Agentes Externos
As etapas “Estabelecimento dos requisitos da avaliação” e “Especificação da avaliação” são etapas cruciais da avaliação, pois é neste momento que precisamos definir o que será medido no software e quais são os níveis aceitáveis dessas medidas.
Essa definição não é uma tarefa fácil e além dessa dificuldade ainda enfrentamos o problema da imaturidade da indústria de software que veio se consolidar como indústria propriamente dita há menos de 50 anos. Bastante diferente da Engenharia, por exemplo, que já possui maturidade e padrões muito bem definidos e quantificáveis.
Slide 14
Modelo de Qualidade ISO 9126
Para que a avaliação seja mais efetiva é importante que se utilize um modelo de qualidade que permita estabelecer e avaliar requisitos de qualidade e também que o processo de avaliação seja bem definido e estruturado. Na norma ISO 14598 recomenda-se a utilização do modelo de qualidade proposto na ISO 9126, que é o mais difundido na indústria. Este modelo propõe a divisão da qualidade do produto de software em qualidade interna, externa e em uso. A norma 9126 foca na qualidade do produto de software, propondo atributos de qualidade, distribuídos em seis características principais, com cada uma delas divididas em sub-características: Conformidade(presente em todas) é utilizada para avaliar o quanto o software obedece aos requisitos de legislação e todo o tipo de padronização ou normalização aplicável ao contexto
FuncionalidadeA capacidade de um software prover funcionalidades que satisfaçam o usuário em suas necessidades declaradas e implícitas, dentro de um determinado contexto de uso. Suas sub-características são: Adequação, que mede o quanto o conjunto de funcionalidades é adequado às necessidades do usuário; Acurácia (ou precisão) representa a capacidade do software de fornecer resultados precisos ou com a precisão dentro do que foi acordado/solicitado; Interoperabilidade que trata da maneira como o software interage com outro(s) sistema(s) especificado(s); Segurança mede a capacidade do sistema de proteger as informações do usuário e fornecê-las apenas (e sempre) às pessoas autorizadas;
Slide 17
ISO 9126 - Características
Confiabilidade: O produto se mantém no nível de desempenho nas condições estabelecidas. Suas sub-características são:Maturidade, entendida como sendo a capacidadedo software em evitar falhas decorrentes de defeitos no software;Tolerância a Falhas representando a capacidade do software em manter o funcionamento adequado mesmo quando ocorrem defeitos nele ou nas suas interfaces externas; Recuperabilidade que foca na capacidade de um software se recuperar após uma falha, restabelecendo seus níveis de desempenho e recuperando os seus dados;
Slide 18
ISO 9126 - Características
Usabilidade : A capacidade do produto de software ser compreendido, seu funcionamento aprendido, ser operado e ser atraente ao usuário. Note que este conceito é bastante abrangente e se aplica mesmo a programas que não possuem uma interface para o usuário final. Além disto, a operação de um sistema é uma interface Humano-Computador sujeita às avaliações de usabilidade. Suas sub-características são:Inteligibilidade que representa a facilidade com que o usuário pode compreender as suas funcionalidades e avaliar se o mesmo pode ser usado para satisfazer as suas necessidades específicasApreensibilidade identifica a facilidade de aprendizado do sistema para os seus potenciais usuários; Operacionalidade é como o produto facilita a sua operação por parte do usuário, incluindo a maneira como ele tolera erros de operação; Atratividade envolve características que possam atrair um potencial usuário para o sistema, o que pode incluir desde a adequação das informações prestadas para o usuário até os requintes visuais utilizados na sua interface gráfica;
Slide 19
ISO 9126 - Características
Eficiência: O tempo de execução e os recursos envolvidos são compatíveis com o nível de desempenho do software. Suas sub-características são:Comportamento em Relação ao Tempo que avalia se os tempos de resposta (ou de processamento) estão dentro das especificações;Utilização de Recursos que mede tanto os recursos consumidos quanto a capacidade do sistema em utilizar os recursos disponíveis;
Slide 20
ISO 9126 - Características
ManutenibilidadeA capacidade (ou facilidade) do produto de software ser modificado, incluindo tanto as melhorias ou extensões de funcionalidade quanto às correções de defeitos, falhas ou erros. Suas sub-características são:Analisabilidade identifica a facilidade em se diagnosticar eventuais problemas e identificar as causas das deficiências ou falhas;Modificabilidade caracteriza a facilidade com que o comportamento do software pode ser modificadoEstabilidade avalia a capacidade do software de evitar efeitos colaterais decorrentes de modificações introduzidas;
Testabilidade representa a capacidade de se testar o sistema modificado, tanto quanto as novas funcionalidades quanto as não afetadas diretamente pela modificação;
Slide 21
ISO 9126 - Características
Portabilidade A capacidade de o sistema ser transferido de um ambiente para outro. Além destes, fatores como idioma ou a facilidade para se criar ambientes de testes devem ser considerados como características de portabilidade . Suas sub-características são:Adaptabilidade, representando a capacidade de o software ser a adaptar a diferentes ambientes sem a necessidade de ações adicionais (configurações); Capacidade para ser Instalado identifica a facilidade com que pode se instalar o sistema em um novo ambiente;Coexistência mede o quão facilmente um software convive com outros instalados no mesmo ambiente; Capacidade para Substituir representa a capacidade que o sistema tem de substituir outro sistema especificado, em um contexto de uso e ambiente específicos. Este atributo interage tanto com adaptabilidade quanto com a capacidade para ser instalado