Início Qualidade de Software Álvaro Rocha amrocha@ufp.pt http://www.ufp.pt/~amrocha
Início>Tópicos Tópicos 1. Fundamentos 2. Qualidade e Maturidade do Processo de SW ISO 9000, ISO 12207, SW-CMM, TRILLIUM; BOOTSTRAP, P-CMM, PSP, SE-CMM, SPICE (ISO 15504),CMMI do SEI [2000] 3. Qualidade de Produtos de SW ISO/IEC 9126 4. Avaliação da Maturidade do Processo 5. Avaliação da Qualidade do Software
Início>Fundamentos Qualidade (1) Termo subjectivo com significados diferentes para pessoas e contextos diferentes. [Infopédia, Porto Editora, 2005]: 1. Propriedade ou condição natural de uma pessoa ou coisa que a distingue das outras; atributo; característica; predicado; 2. aptidão; capacidade; 3. dom; virtude; 4. modo de ser; carácter; índole; 5. importância; valor; distinção.
Início>Fundamentos Qualidade (2) Conjunto de propriedades de um produto ou serviço, que lhe conferem aptidões para satisfazer as necessidades explícitas ou implícitas [ISO/IEC 8402, 1994] O grau com que um conjunto de propriedades inerentes ao produto satisfaz os requisitos [ISO/IEC 2000]
Início>Fundamentos Evolução Histórica (1) Inspecção e Detecção de Erros (até aos anos 40): Inicialmente trabalho artesanal (controlo individual de cada tarefa). 1918: Ford Motor Company. (Primeira cadeia de montajem). 1930: Laboratórios Bel.
Início>Fundamentos Evolução Histórica (2) Controlo Estatístico da Qualidade (até aos anos 80): Mercado pouco competitivo. Preço de venda fixado pelo fabricante em função dos custos. Impedir que o produto defeituoso chegue ao cliente. Conseguir uniformidade do serviço. Controlo de qualidade = problema a resolver. Controlar a qualidade do departamento de produção utilizando técnicas estatísticas. 1940-70: Japão e Qualidade Total. Deming, Ishikawa, Juran, Crosby,
Início>Fundamentos Evolução Histórica (3) Garantia da Qualidade (a partir dos anos 80): Mercado competitivo Preço de venda fixado pelo mercado Planeamento e medida da qualidade. Modelos de qualidade. Afecta todos os departamentos. 1980. Interesse pela qualidade no EUA: TQM 1987. Prémio Malcom Baldrige Quality Award 1987. ISO 9000. A partir de normas britânicas 1988. European Foundation for Quality Management (EFQM) 1992. Prémio Europeu de Qualidade da EFQM.
Início>Fundamentos Evolução Histórica (4) Gestão da Qualidade (actualmente): Impacto estratégico; Proporciona vantagens competitivas. Planificação, fixação de objectivos, coordenação, formacão, adaptação de toda a organização. Afecta a sociedade em geral: administradores, trabalhadores, clientes. Uma filosofia, uma cultura, uma estratégia, um estilo de gestão da empresa. ISO 9001:2000
Início>Fundamentos elhoria da ualidade Evolução Histórica (5) Qualidade total Melhoria contínua Garantia da qualidade Prevenir defeitos Controlo da qualidade Detectar defeitos Tempo
Início>Fundamentos Terminologia ISO 8402 (1) Qualidade: Conjunto de propiedades e características de um produto ou serviço que lhe conferem aptidões para satisfazer necessidades explícitas ou implícitas Controlo de Qualidade: Conjunto de técnicas e actividades de carácter operativo, utilizadas para verificar os requisitos relativos à qualidade do produto ou serviço. Garantia da Qualidade: Conjunto de acções planificadas e sistemáticas necessárias para proporcionar a confiança adequada de que um produto ou serviço satisfará determinados requisitos de qualidade.
Início>Fundamentos Terminologia ISO 8402 (2) Gestão da Qualidade: Aspecto da função de gestão que determina e aplica a política de qualidade, os objectivos e as responsabilidades e que o realiza com meios tais como planificação da qualidade, o controlo da qualidade, a garantia da qualidade e a melhoria da qualidade. A gestão da qualidade é da responsabilidade de todos os níveis executivos, mas deve ser dirigida pela gestão de topo. A sua realização envolve todos os membros da organização. Na gestão da qualidade também se têm em consideração os critérios de rentabilidade.
Início>Fundamentos Terminologia ISO 8402 (3) Sistema de Gestão da Qualidade (SGQ): Conjunto da estrutura da organização, de responsabilidades, procedimentos, processos e recursos que se estabelecem para levar a cabo a gestão da qualidade. O SGQ deve possuir volume e alcance suficiente para conseguir os objectivos de qualidade. O SGQ está fundamentalmente previsto para satisfazer as necessidades internas da organização. É mais do que os requisitos de um cliente concreto que apenas valoriza a parte do SGQ que lhe interessa directamente. Para finalidades contratuais ou vinculantes na valorização de qualidade, o cliente pode exigir condições de realização de certos elementos do SGQ.
Início>Fundamentos Qualidade de Software O grau com que um sistema, componente ou processo cumpre os requisitos especificados e as necessidades ou expectativas do cliente [IEEE, Std. 610-1990] Conformidade com os requisitos de desempenho, os requisitos funcionais explicitamente declarados, as normas de desenvolvimento explicitamente documentadas e finalmente as características implícitas esperadas em todo o software desenvolvido de uma forma profissional [Pressman, 1998].
Início>Fundamentos Dimensões da Qualidade de Software Gestão da organização e dos processos Qualidade técnica do produto Satisfação dos clientes (utilizadores) Impacto na organização (benefícios)
Início>Fundamentos Qualidade do Processo versus Qualidade do Produto Qualidade de Software [e.g., Jiang et al. 2001] Qualidade do Processo Qualidade do Produto
Início>Normas e Modelos para o Processo de SW Normas e Modelos para o Processo de SW ISO 9000 9001 (2000) ISO 12207 SW-CMM de Humphrey/Software Engineering Institute (SEI) TRILLIUM da Bell Canada BOOTSTRAP do Bootstrap Institute P-CMM do SEI PSP de Humphrey/SEI SE-CMM do SEI SPICE (ISO 15504) CMMI do SEI
Série ISO 9000 ISO 8402 9000 9001 9002 9003 9004 TÍTULO Vocabulário - Terminologia. Normas para a gestão e garantia da qualidade. Directrizes de selecção e uso (ISO 9000-1 1.994). Directrizes gerais para aplicar as normas 9001, 9002, 9003 (ISO 9000-2 1.993). Guia para aplicar as normas 9001 a empresas de software (ISO 9000-3 1.996). Guia para a gestão de um programa de segurança (ISO 9000-4). Modelo para a garantia da qualidade em projecto, desenvolvimento e assistência técnica. (1.994) ISO 9001-2000 Modelo para garantir a qualidade em produção e serviços. (1.994) Modelo da Qualidade Total Modelo para garantir a qualidade em inspecção final e provas. (1.993) Elementos e gestão do sistema de qualidade. Regras gerais. Directrizes para os serviços (ISO 9004-2). Directrizes para materiais processados (ISO 9004-3). Directrizes para a melhoria da qualidade (ISO 9004-4).
Início>Normas e Modelos para o Processo de SW ISO 12207 Processo do Ciclo de Vida do Software Formaliza a arquitectura do Ciclo de Vida do Software. Detalha os diversos processos envolvidos no ciclo de vida do Software e divide-os em três categorias: Fundamentais - Aquisição, Fornecimento, Desenvolvimento, Operação e Manutenção Apoio - Documentação, Gestão de Configuração, Garantia de Qualidade, Verificação, Validação, Revisão Conjunta, Auditoria e Resolução de Problemas Organizacionais - Gestão, Infra-estrutura, Melhoria e Treino Descreve com detalhes os processos, actividades e tarefas que envolvem o fornecimento, desenvolvimento, operação e manutenção de produtos de Software
Início>Normas e Modelos para o Processo de SW Estrutura da ISO 12207 Processos Fundamentais Desenvolvi mento Aquisição Fornecimento Operação Manutenção Processos Organizacionais Gestão Melhoria Processos de Apoio Documentação Ges. de Configuração Garantia de Qualidade Verificação Validação Revisão Conjunta Auditoria Resolução de Problemas Infra-estrutura Treino P R O C E S S O D E A D A P T A Ç Ã O
Início>Normas e Modelos para o Processo de SW Modelo SW-CMM do SEI: Software Capability Maturity Model O Departamento de Defesa dos USA delegou no SEI da Carnegie Mellon University a tarefa de formalizar e obter um mecanismo expedito para seleccionar fornecedores no âmbito do desenvolvimento de software [1ª versão em 1987]; Esforço baseado na melhoria contínua do processo de desenvolvimento de software; Última versão final: 1.1 [SEI 1993]; Última versão rascunho: 2.0c [SEI 1997]; Questionário de resposta booleana; 5 estádios.
Início>Normas e Modelos para o Processo de SW Estrutura do SW-CMM indica capacidade do do processo objectivos Estádios de Maturidade contém realiza Áreas-chave de processo organizado por endereça Características comuns implementação ou institucionalização infra-estrutura ou actividades descreve contém Práticas-chave
Início>Normas e Modelos para o Processo de SW Estádios, Foco e Áreas-chave do Processo do SW-CMM Estádio Foco Áreas Chave do Processo Resultado 5 Optimizado 4 Gerido 3 Definido 2 Repetível 1 Inicial (Realimentado) processo a ser constantemente melhorado (Quantitativo) processo e produto medido (Qualitativo) processo definido e institucionalizado (Intuitivo) processo dependente de indivíduos (Ad hoc) processo caótico Prevenção de defeitos Gestão de alterações tecnológicas Gestão de alterações do processo Gestão quantitativa do processo Gestão da qualidade do software Organização do processo Definição do processo Formação Gestão integrada de software Engenharia de software Coordenação inter-grupos Revisões (testes) Gestão de requisitos Planeamento de projectos Acompanhamento e inspecção do projecto Gestão da subcontratação Gestão de configurações Verificação da qualidade de software Produtividade e Qualidade Risco
Início>Normas e Modelos para o Processo de SW Modelo BOOTSTRAP do Bootstrap Institute Projecto apoiado pelo programa ESPRIT (European Strategic Program for Research in Information Technology) Baseado no SW-CMM e nas normas ISO 9001 e ESA PSS-05. Última versão final: v2.0 (1994); A versão 3.0 em desenvolvimento tem a finalidade de harmonizar o BOOTSTRAP com a ISO 15504/SPICE Dois questionários tipo escala de Likert de 4 valores (não, parcialmente, largamente e totalmente): Um para a organização do processo de desenvolvimento; Outro para os projectos de desenvolvimento. Refinamento do algoritmo do SW-CMM, utilizando quartis na determinação dos estádios 6 estádios (0-Incompleto; 1-Realizado; 2-Gerido; 3-Provado; 4- Predicável; e 5-Optimizado)
Início>Normas e Modelos para o Processo de SW Arquitectura do BOOTSTRAP Unidade/Projecto Software Organização Metodologia Tecnologia Gestão de Responsabilidades Sistema de Qualidade Gestão de Recursos Inovações de Tecnologia Tecnologia para Funções independentes do Ciclo de Vida Tecnologia para Funções dependentes do Ciclo de Vida Ferramenta de Integração Funções do Processo Descrição do Processo Medição do Processo Controlo do Processo Funções Independentes CV Gestão de Projecto Gestão da Configuração Gestão da Qualidade Gestão de Riscos Gestão de Subcontratados Funções Dependentes CV Modelo de Desenvolvimento Definição e Análise de Requisitos Concepção da Arquitectura Concepção e Implementação Detalhada Testes Integração Aceitação de Testes e Migração Operação e Manutenção Sistemas de Propósitos Específicos
Início>Normas e Modelos para o Processo de SW Modelo PSP de Humphrey/SEI Personal Software Process Motivado pelas dificuldades encontradas na aplicação dos princípios do SW-CMM a pequenas equipas de desenvolvimento de software Modelo para o nível individual. Habilita os engenheiros de software a entenderem as suas fraquezas e potencialidades bem como a melhorar a sua capacidade e desempenho. Última versão (1995) 4 estádios Cada estádio inclui todos os elementos dos estádios anteriores mais os adicionados
Início>Normas e Modelos para o Processo de SW Estádios do PSP Processo Cíclico PSP3 PSP3 Desenvolvimento Desenvolvimento cíclico cíclico Qualidade Pessoal PSP2 PSP2 Revisões Revisões de de código código Revisões Revisões de de concepção concepção PSP2.1 PSP2.1 Concepção Concepção de de templates templates Planeamento Pessoal PSP1 PSP1 Estimação Estimação do do tamanho tamanho Relatório Relatório de de teste teste PSP1.1 PSP1.1 Planeamento Planeamento de de tarefas tarefas Planeamento Planeamento de de calendarização calendarização Medida Pessoal PSP0 PSP0 Processo Processo corrente corrente Medidas Medidas básicas básicas PSP0.1 PSP0.1 Codificação Codificação standard standard Medida Medida de de tamanho tamanho Proposta Proposta de de melhoria melhoria do do processo processo
Início>Normas e Modelos para o Processo de SW Modelo SPICE/ISO 15504 da ISO Software Process Improvement and Capability determination Esforço inspirado pelo sucesso do SW-CMM e ISO 9001 Pretende harmonizar o SW-CMM, Bootstrap, Trillium e as normas ISO 12207 e 9001 Versões rascunho: v1.0 (1996) v2.0 (1998) v3.0 (em curso) Atributos do processo verificados numa escala de Likert tipo a do Bootstrap 6 estádios (0-Não realizado; 1-Realizado informalmente; 2-Planeado e acompanhado; 3-Bem definido; 4- Controlado quantitativamente, 5-Optimizado)
Início>Normas e Modelos para o Processo de SW Estrutura do SPICE/15504 SPICE ou ISO 15504 Categorias de Processos 5 Estádios de Capacidade 6 Processos Configurações Comuns Práticas Base Práticas Genéricas
Início>Normas e Modelos para o Processo de SW Categorias de Processos do SPICE Categoria Processos englobados Cliente- Fornecedor Engenharia Projecto Suporte Organização Aquisição de software Identificação das necessidades do utilizador Aquisição de pacotes e instalação de software Fornecer serviços a cliente Desenvolver requisitos e concepção do sistema Desenvolver concepção do software Integrar e testar software Manter sistemas e software Planear ciclo de vida do projecto Construir equipas de projecto Gerir qualidade Gerir recursos e calendários Desenvolver documentação Garantir qualidade da segurança Realizar revisões paralelas Engenharia de negócio Melhorar processo Proporcionar reutilização Proporcionar ambiente de engenharia de software Estabelecimento de contratos Realização de auditorias e revisões conjuntas Suporte de operação de software Avaliar a satisfação do cliente Desenvolver requisitos de software Implementar concepção de software Integrar e testar sistemas Estabelecer plano de projecto Gerir requisitos Gerir riscos Gerir sub-contratados Levar a cabo gestão de configuração Executar resolução de problemas Definir processo Realizar formação Proporcionar facilidades de trabalho
Início>Normas e Modelos para o Processo de SW ISO 15504: Documentação Guia de Introdução e Conceitos - 1 Vocabulário 9 Guia de Melhoria de Processos - 7 Guia de Determinação da Capacidade Processos - 8 Guia de Qualificação de Avaliadores - 6 Realizando Uma Avaliação - 3 Guia de Realização de Avaliação - 4 Modelo de Referência p/ Capacitação - 2 Modelo de Avaliação e Indicadores - 5
Início>Normas e Modelos para o Processo de SW Modelo CMMI do SEI Capability Maturity Model Integration Objectivos: integrar e substituir todos os modelos do SEI até 2003; eliminar inconsistências e reduzir duplicações; aumentar a clareza e o entendimento pelo uso de terminologia comum, estilo consistente e componentes comuns; assegurar conformidade com a norma emergente 15504/SPICE da ISO. Actualmente integra os modelos (1) SW-CMM v2.0 draft C (2) SE- CMM v1.1 e (3) IPD-CMM v0.98 draft Integrated Product Development Capability Maturity Model Versões finais: v1.0 (2000) e v1.1 (2002) Duas abordagens diferentes com nº de estádios diferente: em estádios (5); e contínua (6)
Início>Normas e Modelos para o Processo de SW CMMI: Abordagem em Estádios Estádios Estádios de de Maturidade Maturidade Área de Processo 1 Área de Processo 2 Área de Processo 3 Objectivos Genéricos Objectivos Específicos Configurações Comuns Obrigação de Realizar Capacidade de Realização Dirigir a Implementação Verificar a Implementação Práticas Específicas Práticas Genéricas
Início>Normas e Modelos para o Processo de SW CMMI: Abordagem Contínua nua Área de Processo 1 Área de Processo 2 Área de Processo 3 Objectivos Genéricos Objectivos Específicos Práticas Genéricas Estádios Estádiosde de Capacidade Capacidade Práticas Específicas
Início>Normas e Modelos para o Processo de SW Comparação das Abordagens: Estádios versus Contínua nua Estádios EM 5 EM 4 EM 3 EM 2 EM 1 Organização Capacidade 0 1 2 3 4 5 Contínua AP AP Processo AP Segue uma sequência de melhorias provada, iniciando com práticas de gestão básicas Potencia comparações baseadas em estádios de maturidade Facilita a migração a partir do SW-CMM Permite escolher a ordem da melhoria baseado nos objectivos do negócio e áreas de risco Potencia comparações baseadas em áreas do processo ou estádios de maturidade Potencia comparações com a ISO 15504/SPICE
Início>Normas para o Produto SW Qualidade do Produto Software ISO/IEC 9126 (1991) ISO/IEC 9126 (2001) Organizada em 4 partes, especifica um modelo de qualidade do produto software ISO 14598 (2001) Organizada em 6 partes, especifica o processo de avaliação, encontrando-se dividida segundo as perspectivas da avaliação (profissionais do desenvolvimento, comprador e avaliador independente)
Início>Normas para o Produto SW Modelo de Qualidade da ISO 9126
Início>Normas para o Produto SW Qualidade do Software (ISO 9126) Qualidade do Software Usabilidade É fácil de usar? Funcionalidade Satisfaz as necessidades? Confiabilidade É imune as falhas? Eficiência É rápido e enxuto? Manutenibilidade É fácil de modificar? Portabilidade É fácil de usar noutro ambiente? Esforço requerido para aprender, operar e entender um software e os seus interfaces e a facilidade de uso pelos utilizadores Cabimento, interoperabilidade, exactidão, segurança e conformidade das funcionalidades que satisfazem os requisitos e implicações expressados pelos utilizadores Nível de serviço versus recursos associados consumidos, num conjunto de condições (Maturidade, Tolerância a falhas, Recuperação) Nível de serviço versus quantidade de recursos consumidos para sustentar o tempo de resposta declarado Esforço e actividades associados com a identificação das causas de falhas e a facilidade de identificação de componentes que podem ser modificados Adaptabilidade e facilidade de instalação numa plataforma, sistema operativo ou compilador diferente
Início>Avaliação da Maturidade do Processo de SW Avaliação e Planeamento da Maturidade Método de Avaliação Instrumentos de medida Alguns resultados
Início>Avaliação da Maturidade do Processo de SW Método de Avaliação da Maturidade Uma escala de medida - normalmente uma série de estádios de maturidade; Critérios para avaliação em conformidade com a escala (usualmente, um modelo de maturidade); Um conjunto de características, normas e/ou boas práticas; Um mecanismo claro para representação dos resultados.
Início>Avaliação da Maturidade do Processo de SW Esquema de Avaliação do SPICE Processo Identifica alterações para É analisado através de Processo de Avaliação Identifica a maturidade e os riscos de Leva a Leva a Melhoria do Processo Motiva Determinação da Maturidade
Início>Avaliação da Maturidade do Processo de SW Processo de Avaliação Selecção da equipa de avaliação Aplicação de questionário de maturidade Análise das respostas Entrevistas e revisões dos documentos Avaliação baseada no modelo de maturidade Perfil das Áreas- Chave
Início>Avaliação da Maturidade do Processo de SW Instrumento de Medida do Modelo SW-CMM [Zubrow et al.. 1994) Área Chave GESTÃO de REQUISITOS Sim Não Não Aplicável 1. Os requisitos alocados ao software são usados para estabelecer uma base de referência para as práticas da engenharia de software e da gestão? 1 1 1 1 2. À medida que os requisitos do sistema alocados ao software mudam, são feitos os necessários ajustamentos aos planos de software, produtos, e actividades levadas a cabo? 1 1 1 1 3. O projecto segue uma política organizacional escrita para a gestão dos requisitos do sistema alocados ao software? 1 1 1 1 4. Os indivíduos do projecto encarregues da gestão dos requisitos são treinados ou formados nos procedimentos para gestão dos requisitos alocados? 1 1 1 1 5. As medições são usadas para determinar o estado das actividades levadas a cabo para gerir os requisitos alocados (e.g., nº total de propostas de alterações de requisitos, nº total de aprovações,...)? 1 1 1 1 6. As actividades para a gestão dos requisitos alocados ao projecto são sujeitas à verificação de qualidade de software? 1 1 1 1 Não Sei
Início>Avaliação da Maturidade do Processo de SW Exemplo de resultados usando o questionário de Zubrow et al.. (1994) Empresa A Nº P1 P2 P3 P4 P5 P6 P7 P8 Sim %Sim Gestão de Requisitos 1 1 1 0 1 0 0 3 50% Planeamento de Projectos de Software 2 1 0 0 0 1 0 0 2 28,6% Vigilância e Acompanhamento Projectos de Sofware 3 0 1 0 0 1 0 0 2 28,6% Gestão da Sub-contratação de Software 4 0 1 0 1 0 0 0 1 3 37,5% Verificação da Qualidade de Software 5 1 1 1 1 0 0 0 0 4 50% Gestão de Configurações 6 0 0 0 0 0 0 0 0 0 0% 32,4% Concentração no Processo Organizacional 7 0 1 0 1 1 0 1 4 57,1% Definição do Processo Organizacional 8 0 0 0 0 0 0 0 0% Programas de Treino 9 1 1 1 1 1 1 1 7 100% Gestão da Integração de Software 10 0 0 0 0 0 0 0 0% Engenharia do Produto de Software 11 0 0 0 1 1 1 3 50% Coordenação Inter-Grupos 12 0 0 0 0 0 0 0 0 0% Revisões por Pares 13 0 0 0 0 0 0 0 0% 29,6% Gestão Quantitativa do Processo 14 0 0 0 0 0 0 0 0 0% Gestão da Qualidade de Software 15 0 0 0 0 0 0 0 0 0% 0% Prevenção de Defeitos 16 0 0 0 0 0 0 0 0 0% Gestão da Mudança da Tecnologia 17 0 1 0 1 0 0 1 3 42,9% Gestão da Mudança do Processo 18 0 0 1 0 0 0 0 1 14,3% 19%
Início>Avaliação da Maturidade do Processo de SW Maturidade do Processo de Desenvolvimento de Software de 5 Organizações Portuguesas [Rocha 2000] Maturidade do PDS Estádios 5 4 3 2 1 0 5 3 2 1 1 Emp. A Emp. B Emp. C Emp. D Emp. E Empresas Tolerância Emp. A Emp. B Emp. C Emp. D Emp. E 0% 1 1 1 1 1 25% 1 1 1 1 1 50% 1 5 1 1 1 75% 3 5 1 1 2
Início>Avaliação da Maturidade do Processo de SW Maturidade do Processo de Desenvolvimento de Software de 1158 Organizações (714 USA, 444 Outros) [SEI 2002] 1997-2002 (Março) % de organizações 45% 40% 35% 30% 25% 20% 15% 10% 5% 0% 39,9% 24,8% 23,8% 6,0% 5,5% Inicial Repetível Definido Gerido Optimizado
Início>Avaliação do Produto SW Módulos do Processo de Avaliação do Software Fonte: [Olsina 2000]
Início>Questões Questões Álvaro Rocha: amrocha@ufp.pt http://www.ufp.pt/~amrocha