Qualidade de : Visão Geral ISO 12207: Estrutura s Fundamentais Aquisição Fornecimento s de Apoio Documentação Garantia de Qualidade Operação Desenvolvimento Manutenção Verificação Validação Revisão Conjunta Auditoria Adaptação SCE 186 - Engenharia de Profs. José Carlos Maldonado e Elisa Yumi Nakagawa 2 o semestre de 2002 Resolução de Problemas s Organizacionais Gerência Infra-estrutura Melhoria Treinamento 2 OTIMIZADO 3 Qualidade de Qualidade é um termo que pode ter diferentes interpretações Existem muitas definições de qualidade de software propostas na literatura, sob diferentes pontos de vistas 4 Qualidade de Qualidade de Definição: Um produto de software apresenta qualidade dependendo do grau de satisfação das necessidades dos clientes sob todos os aspectos do produto [Sanders, 1994]. Definição: 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 [Pressman,1994]. 5 6 1
Qualidade de Aspectos Importantes das Definições de Qualidade Definição: Qualidade é a totalidade de características e critérios de um produto ou serviço que exercem suas habilidades para satisfazer às necessidades declaradas ou envolvidas [ISO9126 1994]. As definições enfatizam três aspectos importantes: 1- Os requisitos de software são a base a partir da qual a qualidade é medida. A falta de conformidade aos requisitos significa falta de qualidade; 7 8 Aspectos Importantes das Definições de Qualidade Aspectos Importantes das Definições de Qualidade 2- Padrões especificados definem um conjunto de critérios de desenvolvimento que orientam a maneira segundo a qual o software passa pelo trabalho de engenharia. Se os critérios não forem seguidos, o resultado quase que seguramente será a falta de qualidade; e 3- Existe um conjunto de requisitos implícitos que freqüentemente não são mencionados na especificação. Por exemplo, o desejo de uma boa manutenibilidade. 9 10 Requisitos de - Base da Qualidade Incorporação da Qualidade Usuário Desenvolvedor Organização Requisitos Requisitos atendidos PROCESSO DE SOFTWARE Desenvolvimento SOFTWARE PRODUTO SOFTWARE COM QUALIDADE padrões Padrões atendidos Raramente qualidade pode ser incorporada ao produto final, após o processo de desenvolvimento ter terminado. Dos requisitos do usuário à entrega do produto final, existe um processo de desenvolvimento que é complexo e freqüentemente envolve uma série de estágios que podem comprometer a qualidade do produto final. 11 12 2
Incorporação da Qualidade: Qualidade dos s Intermediários Incorporação da Qualidade: Qualidade do Final requisitos do usuário s Intermediários Cada produto intermediário tem certos atributos de qualidade que afetam a qualidade do produto intermediário da processo de desenvolvimento próxima fase e assim, afetam a qualidade Final do produto final. entrega do produto final 13 14 Qualidade: Objetivo do Desenvolvimento Atividades de Padronizaçã ção A qualidade do produto de software é um objetivo do processo de desenvolvimento. Assim, ao desenvolver-se um produto, deve-se ter previamente estabelecidas, como perspectiva, as características de qualidade que se desejam alcançar. Qualidade do ISO 9126 Qualidade do C MM ISO 12207 SPICE 15 16 ISO/IEC 9126 ISO/IEC 9126 Representa a atual padronização mundial As características são: para a qualidade de software produto. Funcionalidade - Satisfaz as necessidades? Baseada em três níveis: Características, Confiabilidade - É imune a falhas? Sub-características e Métricas. Usabilidade - É f á cil de usar? Cada característica é refinada em um conjunto de sub-características e cada sub-característica é avaliada por um conjunto de métricas. Eficiê ncia - É r á pido e enxuto? Manutenibilidade - É f á cil de modificar? Portabilidade - É fá cil de usar em outro ambiente? 17 18 3
ISO/IEC 9126 ISO/IEC 9126 Funcionalidade: Conjunto de atributos que evidenciam a existê ncia de um conjunto de funções e suas propriedades especificadas. As funções sã o as que satisfazem as necessidades explícitas e implícitas. Confiabilidade: Conjunto de atributos que evidenciam a capacidade do software de manter seu nível de desempenho sob condições estabelecidas durante um período de tempo estabelecido. Usabilidade: Conjunto de atributos que evidenciam o esforç o necessá rio para se poder utilizar o software, bem como o julgamento individual desse uso, por um conjunto explícito ou implícito de usuá rios. Eficiência : Conjunto de atributos que evidenciam o relacionamento entre o nível de desempenho do software e a quantidade de recursos usados, sob condições estabelecidas. 19 20 ISO/IEC 9126 Manutenibilidade: Conjunto de atributos que evidenciam o esforç o necessá rio para fazer modificações especificadas no software. Portabilidade : Conjunto de atributos que evidenciam a capacidade do software de ser transferido de um ambiente para outro. Pessoas com habilidades, treinamento e motivação de Desenvolvimento Gerenciar o Ferramentas e Equipamentos Procedimentos e B métodos que definem A D o relacionamento C tarefas. de muito BEM definido 21 22 Definição Definição processo - uma sequência de passos realizados para um determinado propósito (IEEE). processo de software - conjunto de atividades, métodos, práticas e tecnologias que as pessoas utilizam para desenvolver e manter software e produtos relacionados (CMM). processo de software: Consiste em uma série de atividades, práticas, eventos, ferramentas e métodos que garantem, técnica e administrativamente que o software pode ser desenvolvido com qualidade e de maneira organizada, disciplinada e previsível. 23 24 4
Modelos de Modelos de Uma das maiores dificuldades encontradas pelas empresas de Um modelo de processo procura descrever formalmente e de maneira organizada todas as software é o gerenciamento de seus processos de software. atividades que devem ser seguidas para a obtenção segura de um produto de software. É importante escolher um modelo apropriado às metas da organização e saber o grau em que Modelos de esse modelo será implementado. Modelos CMM, SPICE e Bootstrap são padrões relacionados a processo de software. 25 26 Um Imaturo Um Imaturo Ad hoc; processo improvisado por profissionais e gerências. Não é rigorosamente seguido e o cumprimento A qualidade do produto pode ficar comprometida para que prazos sejam cumpridos. não é controlado. Altamente dependente dos profissionais atuais. Baixa visão do progresso e da qualidade. Arriscado do ponto de vista do uso de nova tecnologia. Custos de manutenção excessivos. Qualidade difícil de se prever. 27 28 Um Maturo Um Maturo Coerente com as linhas de ação, o trabalho é efetivamente concluído. Com o apoio visível da alta administração e outras gerências. Definido, documentado e melhorando constantemente: compreendido utilizado Bem controlado - fidelidade ao processo é objeto de auditoria e de controle. São utilizadas medições do produto e do processo. vivo e ativo Uso disciplinado da tecnologia. 29 30 5
Maturidade de Modelo de : Benefícios de uma melhoria baseada em um modelo: : A qualidade do processo de software pode ser Estabelece uma linguagem comum. analisada através do nível de maturidade do processo. A maturidade dos processos de software de uma organização influencia na sua capacidade de atingir metas de custo, qualidade e cronograma. Constrói um conjunto de processos e procedimentos desenvolvidos com sugestões de uma ampla participação da comunidade de software. Oferece uma estrutura para se priorizar as ações Provê uma estrutura para se realizar avaliações confiáveis e consistentes. Auxilia comparações em diversas indústrias. 31 32 Modelos de Valor da Melhoria de Riscos de uma melhoria baseada em um modelo Modelos são simplificações do mundo real. Modelos não são suficientemente abrangentes. Interpretação e adaptação à situações particulares devem estar ajustadas aos objetivos do negócio. É necessário bom senso para se utilizar modelos A melhoria do processo de software oferece um retorno no investimento que pode ser medido - quando é medido. Benefícios adicionais são intangíveis e não podem ser quantificados facilmente. corretamente e com visão. O CMM é uma ferramenta útil para orientação no processo de melhoria. 33 34 Capability Maturity Model (CMM) Capability Maturity Model (CMM) Maturidade de que auxilia as empresas a melhorar seus processos de software. 1986 - Engineering Institute (SEI) por solicitação do DoD que necessitava de um método O primeiro ponto importante a se observar no modelo CMM: É um modelo que se refere ao processo pelo qual o produto é construído. de avaliar a capacidade de seus fornecedores de software. 1991-1 a versão do CMM (Versão 1.0) 1993 - Versão 1.1 do CMM (atualmente usada) 35 36 6
Capability Maturity Model (CMM) Capability Maturity Model (CMM) Supõe-se que uma organização que possui um processo maduro tem maiores probabilidades de produzir bons produtos consistentemente do que uma outra cujo processo é imaturo e caótico. O CMM é um modelo de referência para a qualidade de processo de produção de software. Através de um processo formal de avaliação, uma organização é classificada em um nível de maturidade que varia de um a cinco. 37 38 Capability Maturity Model (CMM) O nível de maturidade indica em que medida os processos daquela organização são maduros. Quanto maior o nível de maturidade, melhores e mais maduros são os processos. 39 OTIMIZADO 40 processo de software. Cada Nível é considerado como prérequisito para o nível seguinte. Não é possível o salto de níveis. Cada nível apóia-se nas competências que a organização desenvolveu no nível imediatamente inferior. OTIMIZADO Os 5 Níveis do CMM são organizados de modo a estabelecer as prioridades na condução de programas de melhoria do 41 A organização não consegue cumprir previsões de custo, cronograma e a ISO qualidade 12207 do software é duvidosa. OTIMIZADO 42 7
A organização consegue estabelecer, com certa segurança, custos, prazos e funcionalidade. OTIMIZADO 43 Custo, cronograma e funcionalidade estão sob controle e a qualidade do software é acompanhada. OTIMIZADO 44 O Modelo CMM Os processos OTIMIZADO de software, tanto para atividades administrativas quanto para de engenharia estão documentados, padronizados e integrados em um processo de software padrão para a organização. Todos os projetos usam uma versão aprovada do processo de software padrão da organização August 02 45 para desenvolvimento e manutenção de software. Existe controle OTIMIZADO de qualidade sobre produtos e processos. 46 software. OTIMIZADO Existe prevenção de defeitos no processo de 47 Como Melhorar o? Realizando um grupo de atividades correlatas, denominadas ÁREAS- CHAVE DE PROCESSO - ( Key process areas - KPA) que, quando efetuadas coletivamente, alcançam um conjunto de metas consideradas importantes na implementação da competência do processo. 48 8
Exemplo: Áreas-chave de O Modelo CMM CMM (1) => (2) Inicial Repetível Definido Gerenciado Otimizado 6 7 2 GCS GQS GSS APS PPS atividades GR TOTAL 18 Áreas -chave de 3 49 6 - Gerenciamento da Configuração de 5- Garantia da Qualidade de 4 - Gerenciamento de Subcontrato de 3- Acompanhamento de Projeto de 2- Planejamento de Projeto de 1- Gerenciamento de Requisitos August 02 50 O Modelo CMM O Modelo CMM (1) => (2) 6 - Gerenciamento da Configuração de 5- Garantia da Qualidade de 4 - Gerenciamento de Subcontrato de Esta kpa tem o duplo objetivo de assegurar a qualidade tanto do produto sendo 3- construído Acompanhamento (o software) quanto de Projeto do processo de de sua construção. 2- Planejamento de Projeto de Em termos de produto, isso significa que o CMM exige que a organização defina 1- Gerenciamento métodos, técnicas e de padrões Requisitos para verificação da qualidade, estabelecendo, por exemplo, quais os tipos de teste que deverão ser realizados, o uso de revisões, inspeções etc. Já em relação ao processo, esta kpa procura garantir que todas as outras kpas estejam sendo respeitadas, garantindo, por exemplo, que o gerente de projetos esteja August fazendo estimativas corretamente usando o modelo definido para a 02 51 organização. (2) => (3) 7- Revisões (peer review ) 6 - Coordenação Intergrupos 5- Engenharia de de 4 - Gerenciamento de Integrado 3 - Programa de Treinamento 2- Definição do da Organização 1- Foco no da Organização August 02 52 O Modelo CMM SPICE (2) => (3) 7- Revisões (peer review ) 6 - Coordenação Intergrupos 5- Engenharia de de Objetivo: gerar normas para avaliação de 4 - Gerenciamento de Esta kpa Integrado procura garantir processos de software, visando a 3 - Programa de Treinamento que o processo de 2- Definição do da software Organização definido seja melhoria contínua do processo e a 1- Foco no da Organização executado de modo que determinação da sua capacidade. sejam produzidos produtos corretos e consistentes de forma August 02 eficaz e eficiente. 53 54 1993: SPICE ( Process Improvement and Capability determination) 9
Benefícios do SPICE Benefícios do SPICE Para avaliadores: uma estrutura que define todos os aspectos para conduzir avaliações. Para fornecedores: determinar a capacidade atual e potencial de seus processos de software. efetuar a melhoria ou uma estrutura que define um roteiro para a melhoria do processo de software. 55 56 Benefícios do SPICE Para os compradores: determinar a capacidade atual e potencial de um processo de software do fornecedor. identifica mudanças no Melhoria do leva é examinado pela AVALIAÇÃO DO PROCESSO leva motiva identifica capacidade e riscos do processo Capacitação do 57 58 Parte 8 Capacidade do do uma de Treinamento dos 59 Parte 8 Capacidade do do Treinamento dos A parte 1 fornece os conceitos de avaliação de processo Parte de software 4 e o uso desses Medidas conceitos do uma no contexto de melhoria de processo e Construção, determinação Seleção e Uso da Modelo capacidade de Gerenciamento do processo. de 60 10
A parte 2 define um modelo ideal de processo de Parte 8 software Guia para Melhoria que de Capacidade do do forma a base para a avaliação uma de Treinamento dos 61 A parte Guia 3 para define Melhoria de critérios para pontuar a capacidade de processos em relação ao Construção, processo Seleção e Uso idealizado A escala de pontuação das Parte 8 práticas Parte básicas 6 Capacidade do do possui Treinamento uma dos escala que vai desde Não uma Adequado até Totalmente Modelo de Adequado Gerenciamento de 62 A parte 4 fornece um guia de orientação para conduzir uma avaliação. Parte 8 organização. Capacidade do do A avaliação se aplica a todos os processos usados por uma uma Treinamento dos A parte 5 do modelo SPICE fornece diretrizes para Parte 8 construção um Capacidade do do instrumento de avaliação. uma Treinamento dos de 63 de 64 A parte 7 descreve como A parte 6 fornece orientação para a preparação e qualificação dos Parte 8 avaliadores para Capacidade do do que estes realizem a avaliação do processo de software. uma de Treinamento dos 65 Parte definir 1 as entradas para a avaliação do processo e como usar os resultados da Parte avaliação 8 para Parte o 6 propósito de melhoria de Capacidade do do Treinamento dos processo. uma de 66 11
Parte 8 Capacidade do do Treinamento dos uma A parte 8 descreve como finir entradas para a avaliação do processo e como usar os resultados da avaliação para o de propósito de determinar a capacidade do processo. 67 Parte 8 A parte 9 contém Capacidade um dicionário do do Treinamento dos envolvendo todos os termos utilizados nas outras partes Parte do SPICE. 3 uma de 68 ISO 12207 ISO 12207: Estrutura ISO/IEC 12207 - Information Technology Life-Cycle Processes. s Fundamentais Aquisição s de Apoio Documentação NBR ISO/IEC 12207 - Tecnologia da Informação - s de Ciclo de Vida de. Cobre todo o ciclo de vida de desenvolvimento do software desde a concepção das idéias iniciais sobre o software até ser retirado de execução. Fornecimento Garantia de Qualidade Operação Verificação Validação Desenvolvimento Revisão Conjunta Manutenção Auditoria Resolução de Problemas s Organizacionais Gerência Infra-estrutura Adaptação 69 Melhoria Treinamento 70 ISO 12207: s ISO 12207: s Os processos são agrupados em três classes de acordo com suas naturezas [ISO 12207]: s Fundamentais s de Apoio s Organizacionais s Fundamentais: englobam as atividades referentes ao contrato entre o cliente e o fornecedor, ao desenvolvimento, à operação e à manutenção do software. s de Apoio: auxiliam outros processos como parte integrante dos mesmos, com propósitos distintos contribuindo para a qualidade do projeto de software. 71 72 12
ISO 12207: s ISO 12207 s Organizacionais: estabelecem e implementam uma estrutura que forneça uma base aos processos e ao pessoal envolvido no desenvolvimento de software. Atividades Adaptação: define as atividades necessárias para adaptar a norma a uma dos s Fundamentais organização ou projeto específico. 73 74 ISO 12207 ISO 12207 Atividades dos s Fundamentais (cont.) Atividades dos s de Apoio 75 76 ISO 12207 Conclusão produto processo Atividades dos s Organiza- Maturidade do processo de Qualidade cionais 77 78 13