Baixe o app para aproveitar ainda mais
Prévia do material em texto
Requisitos e Qualidade de Software O que é Qualidade? • Segundo o dicionário Aurélio: – “Numa escala de valores, qualidade que permite avaliar e consequentemente, aprovar, aceitar ou recusar, qualquer coisa”. O que é Qualidade? • Algumas reflexões sobre qualidade: – A escala de valores depende da percepção de quem avalia (não é absoluta!). – Qualidade é multidimensional. – Critérios de avaliação não são independentes. – Qualidade é influenciada pelas restrições. – Qualidade é difícil de definir mas é muito fácil de reconhecer. • “A qualidade é geralmente transparente quando presente, mas facilmente reconhecível na sua ausência” [Gilles1992] Qualidade de Software: Definição • Existem diversas definições, mas que comungam do mesmo princípio básico: atender requisitos! – Exemplos de definições: •• ““A totalidade das caracterA totalidade das caracteríísticas de uma sticas de uma entidadeentidade que lhe que lhe confere a capacidade de satisfazer confere a capacidade de satisfazer ààs necessidades s necessidades explexplíícitascitas e e implimplíícitascitas”” (NBR ISO 8402)(NBR ISO 8402) •• ““Grau em que um conjunto de caracterGrau em que um conjunto de caracteríísticas inerentes satisfaz sticas inerentes satisfaz os requisitosos requisitos”” (ISO9001(ISO9001--00)00) • “Conformidade aos requisitos funcionais e de desempenho explicitamente declarados, aos padrões de desenvolvimento claramente documentados e às características implícitas que são esperadas de todo software profissionalmente desenvolvido” (Pressman). Qualidade de Software: Motivação • O principal objetivo da Engenharia de Software (ES) é ajudar a produzir software de qualidade; – Empresas que desenvolvem software de qualidade são mais competitivas; – Empresas que utilizam software de alta qualidade podem, em geral, oferecer um melhor serviço a um preço mais competitivo. Qualidade de Software: Percepção • Como a qualidade do software é percebida pelos clientes? – Atendimento aos requisitos especificados – Ausência de defeitos – Desempenho satisfatório – Baixo custo – Desenvolvimento rápido – Facilidade de uso – Eficiência nos serviços associados – Inovação Qualidade de Software: Desafios • Características dos projetos de software – Complexidade – Custo focado no conhecimento e no desenvolvimento – Produção específica e não em série – Imaturidade da área de Engenharia de Software Qualidade de Software: Evolução • Inicialmente focava na revisão do produto final • Foco evoluiu gradativamente da Qualidade do Produto para a Qualidade do Processo • Gestão da Qualidade: Processo de Garantia da Qualidade • Modernamente, o conceito de qualidade envolve cada vez mais a participação do cliente • Conceito de qualidade está se encaminhando para um sentido holístico, incluindo, também a preocupação com o trabalhador Qualidade do Software: Dimensões Qualidade do Produto Tecnologia de Desenvolvimento Qualidade do Processo Qualidade das Pessoas Características e Restrições do Projeto • Atendimento às características de qualidade pretendidas para o produto • Perspectivas: – Qualidade do serviço: é a qualidade do produto tal como observada pelo usuário final. – Qualidade da engenharia e valor agregado: é a qualidade da implementação do produto tal como observada pelos desenvolvedores Qualidade do produto • Modelo de qualidade de produto – Foram propostos vários modelos com taxonomias diversas para as características de qualidade de um produto de software – Taxonomias mais referenciadas são aquelas definidas pela normas ISO9126 e ISO12119 complementadas pela norma ISO14598 que orienta as avaliações de qualidade de produto de software Qualidade do produto • Características de Qualidade – O modelo mais referenciado para especificação de requisitos da qualidade de software e sua avaliação é o modelo SQuaRE (Software product Quality Requirements and Evaluation) definidos pela série de padrões internacionais ISO25000. • representa a evolução das normas ISO9126 e ISO14598 que orienta as avaliações de qualidade de produto de software. – Segundo a ISO9126 os atributos de qualidade são classificados em atributos de qualidade interna, atributos de qualidade externa e atributos de qualidade em uso. Qualidade do produto • Qualidade externa – Capacidade de um produto de software de permitir que o comportamento de um sistema satisfaça as necessidades declaradas e implícitas quando o sistema é usado sob certas condições especificadas – Atributos do comportamento podem ser verificados e/ou validados pela execução do produto de software durante os seus testes e durante sua operação Qualidade do produto de software • Qualidade interna – Capacidade de um conjunto de atributos estáticos de um produto de software de satisfazer necessidades declaradas e implícitas quando o produto de software é usado sob certas condições especificadas – Atributos estáticos incluem aqueles relacionados com a arquitetura de software, estrutura e seus componentes e podem ser verificados por revisões, inspeção e;ou ferramentas automatizadas Qualidade do produto de software • Qualidade interna – Exemplo: o número de linhas de código, medidas de complexidade e o número de defeitos encontrados em uma técnica de walkthrough são considerados medidas de atributos de qualidade interna do próprio produto. Qualidade do produto de software Qualidade do Produto: Qualidade Interna e Externa Qualidade Externa e Interna EficiênciaUsabilidadeConfiabilidadeFuncionalidade Manutenibilidade Portabilidade Qualidade Interna: qualidade dos produtos internos em relação as características esperadas Qualidade Externa: qualidade percebida quando o software é executado em ambiente simulado • Subcaracterísticas – Funcionalidade: adequação, acurácia, segurança de acesso – Confiabilidade: maturidade, tolerância a falhas, recuperabilidade – Usabilidade: inteligibilidade, apreensibilidade, operacionalidade, atratividade – Eficiência: comportamento em relação ao tempo, utilização de recursos – Manutenibilidade: analisabilidade, modificabilidade, estabilidade, testabilidade – Portabilidade: adaptabilidade, capacidade para ser instalado, coexistência, capacidade para substituir Qualidade do Produto: Qualidade Interna e Externa Qualidade do Produto: Qualidade Interna e Externa • Qualidade em uso – capacidade de um produto de software permitir a usuários específicos alcançarem objetivos específicos com eficácia, produtividade, segurança e satisfação em contextos específicos de uso – Antes que um produto seja liberado, a qualidade em uso pode ser especificada e medida em um ambiente de teste para os usuários, objetivos e contextos de uso pretendidos. – Uma vez que o produto esteja em uso, pode ser medida para usuários, objetivos e contextos de uso reais. Qualidade do produto de software • Qualidade em uso – Observação importante: As necessidades reais dos usuários pode não ser as mesmas daquelas antecipadas nos requisitos, dessa forma a qualidade em uso real pode ser diferente da qualidade em uso medida anteriormente em um ambiente de teste. Qualidade do produto de software Qualidade do Produto: Qualidade em Uso Qualidade Em Uso SatisfaçãoSegurançaProdutividadeEficácia Avaliam a capacidade que o produto de software tem de permitir a determinados usuários atingir metas especificadas com efetividade, produtividade, segurança e satisfação Qualidade do Processo • Processo – uma sequência de passos realizados para um determinado propósito. (IEEE) – conjunto de recursos e atividadesinter- relacionados que transformam insumos em produtos. (ISO 8402) • Processo de software – um conjunto de atividades, métodos, práticas e transformações que as pessoas utilizam para desenvolver e manter software e produtos relacionados. (CMM) Qualidade do Processo PROCESSOPROCESSO Ferramentas Métodos, Procedimentos, Padrões, Técnicas Pessoas habilitadas, treinadas, motivadas FATORES DE QUALIDADE • o procedimento que descreve o método escolhido • as ferramentas para darem apoio e facilitarem o trabalho • pessoas treinadas, que compreendam e usem o processo Qualidade do Processo • Pontos Relevantes – Definição de um ciclo de vida – Conformidade com requisitos especificados – Integridade dos produtos do desenvolvimento com os requisitos – Controle de versões – Padronização – Verificação e Validação – Planejamento e gerenciamento efetivo – . . . Qualidade de Software: Normas Internacionais • ISO 25000 (SQuaRE) – Série de Normas para especificação de requisitos de qualidade de produtos de software e sua avaliação. – ISO/IEC 2500n - Quality Management Division, – ISO/IEC 2501n - Quality Model Division, – ISO/IEC 2502n - Quality Measurement Division, – ISO/IEC 2503n - Quality Requirements Division – ISO/IEC 2504n - Quality Evaluation Division. • ISO 12119 - Norma para qualidade de pacotes de software • ISO 12207 - Processos de ciclo de vida do software. • ISO 15504 - Projeto da ISO/IEC para avaliação dos processos de desenvolvimento de software. • NBR ISO 9000-3 -Diretrizes para aplicação da norma ISO 9001 ao desenvolvimento, fornecimento e manutenção de software Qualidade de Software: Modelos de maturidade • CMM- Capability Maturity Model. Modelo do Software Engineering Intitute (SEI) para avaliação da maturidade de uma organização que desenvolve software. • CMMI- Capability Maturity Model Integrated. Modelo do SEI que estende o CMM para avaliação de processos de software. • MPS-BR – Modelo de Maturidade de Processos de Software proposto pela SOFTEX. • PSP - Personal Software Process - Modelo do SEI que define disciplinas para qualidade pessoal do engenheiro de software. Melhoria de Processo de Software • Princípios – Grandes mudanças devem ser iniciadas de cima pra baixo. – Todos devem ser envolvidos. – Mudanças efetivas devem ser construídas com base em conhecimento. – Mudanças são contínuas. – Mudanças no processo são incorporadas através de motivação e esforço. – Melhoria de processo de software requer investimento.
Compartilhar