ISO 12207 Processos de Ciclo de Vida do Software Agenda: 1. 2. 3. 4. 5. 6. 7. Histórico Definição Motivação Objetivos Conceitos Básicos Organização da Norma ISO 12207 Considerações Finais ISO 12207 Processos de Ciclo de Vida do Software Histórico: A Norma ISO/IEC 12207 foi lançada em agosto/1995, consistindo na primeira Norma Internacional que descreve em detalhes os processos, atividades e tarefas que envolvem a aquisição, fornecimento, desenvolvimento, operação e manutenção de produtos de software. ISO 12207 Processos de Ciclo de Vida do Software Definição: A Norma Internacional NBR ISO/IEC 12207 Tecnologia da Informação – Processos de Ciclo Vida de Software define os processos e atividades básicas que compõem o processo desenvolvimento de software – de as de ISO 12207 Processos de Ciclo de Vida do Software Motivação: Surgiu devido a uma série de problemas inerentes a produção de software como: complexidade, custos, diversidade de técnicas de desenvolvimento, demanda de qualidade pelos adquirentes de software. Objetivos: Esta norma provê um processo que pode ser utilizado para definir, controlar e melhorar os processos de ciclo de vida de software. ISO 12207 Processos de Ciclo de Vida do Software Conceitos Básicos Arquitetura do Ciclo de Vida do Software A estrutura cobre o ciclo de vida do software desde a concepção de idéias até a descontinuação do software. A arquitetura é construída com um conjunto de processos e inter-relacionamentos ISO 12207 Processos de Ciclo de Vida do Software Conceitos Básicos Natureza das Avaliações Nesta Norma a avaliação é uma função elementar e usada de várias maneiras pelos processos. As avaliações são conduzidas em várias entidades com objetivos de validar critérios definidos. ISO 12207 Processos de Ciclo de Vida do Software Conceitos Básicos Documentação O padrão necessita que determinadas atividades sejam documentadas, mas não especifica formatos, conteúdo, etc.. Métricas de Software A Norma não é um padrão de métrica de software. Ela requer as especificações de gerenciamento dos indicadores e atributos de software, mas não os define ou especifica. ISO 12207 Processos de Ciclo de Vida do Software Pré-requisitos Treinamento Conhecimento das políticas da Organização Conhecimento dos ambientes de projetos Entendimento do Padrão ISO 12207 ISO 12207 Processos de Ciclo de Vida do Software Organização da Norma ISO 12207 Introdução Escopo Referências Normativas Definições Aplicação da Norma Processos Fundamentais de Ciclo de Vida Processos de Apoio de Ciclo de Vida Processos Organizacionais de Ciclo de Vida Anexos ISO 12207 Processos de Ciclo de Vida do Software Introdução Tem havido uma proliferação de normas, procedimentos, métodos, ferramentas e ambientes de desenvolvimento e de gerência de software. A disciplina de software necessita mudar desta proliferação para uma estrutura comum, onde todos “falem a mesma língua” na criação e gerência de software. Esta Norma provê tal estrutura comum. ISO 12207 Processos de Ciclo de Vida do Software 1. Escopo 1.1 Objetivo Esta Norma estabelece uma estrutura comum para os processos de ciclo de vida do software, com terminologia bem definida, que pode ser referenciada pela indústria de software. ISO 12207 Processos de Ciclo de Vida do Software 1. Escopo 1.2 Campo de Aplicação Aplica-se à Aquisição de sistemas, produtos e serviços de software; ao fornecimento, desenvolvimento, operação e manutenção de produtos de software, quer sejam executados interna ou externamente a uma Organização. Esta norma não foi concebida para produtos de software de prateleira a menos que eles estejam incorporados dentro de um produto encomendado. ISO 12207 Processos de Ciclo de Vida do Software 1. Escopo 1.3 Adaptação da Norma Esta norma contém um conjunto de processos, atividades e tarefas projetado para ser adaptado de acordo com cada projeto de software. 1.4 Conformidade É a execução de todos os processos, atividades e tarefas selecionadas para o projeto de software. ISO 12207 Processos de Ciclo de Vida do Software 1. Escopo 1.5 Limitações Não prescreve um modelo específico de ciclo de vida ou método de desenvolvimento de software Não especifica os detalhes de como implementar ou executar as atividades e tarefas incluídas no processo. Não prescreve o nome formato ou conteúdo explícito da documentação a ser produzida. ISO 12207 Processos de Ciclo de Vida do Software 2. Referências Normativas ISO/AFNOR/1989 – Dictionary of Computer Sience ISO/IEC 2382-1/1993 – Information Technology – vocabulary – Part 1: Fundamental Terms ISO/IEC 2382-20/1990 – Information Technology – vocabulary – Part 20: System Development NBR ISO/8402/1994 – Gestão da Qualidade e Garantia da Qualidade – Terminologia NBR ISO/9001/1994 – Sistema da Qualidade – Modelo para garantia da qualidade em projeto, desenvolvimento, produção, instalação e serviços associados NBR 13596/1996 – Tecnologia de Informação – Avaliação de produto de software – Características de Qualidade e Diretrizes para o seu uso. ISO 12207 Processos de Ciclo de Vida do Software 3. Definições Para o produto desta Norma as definições contidas na NBR ISO/8402, ISO/IEC 2382-1, ISO/IEC 2382-20, aplicam-se em conjunto com algumas definições: Garantia de Qualidade – conjunto de atividades planejadas e sistemáticas, implementadas no sistema da qualidade e demonstradas como necessárias, para provê confiança adequada de que uma entidade atenderá os requisitos para a qualidade [NBR ISO 8402/1994,3.5] Processo – um conjunto de atividades inter-relacionadas, que transforma entradas em saídas [NBR ISO 8402/1994,1.2] ISO 12207 Processos de Ciclo de Vida do Software 4. Aplicação da Norma Apresenta os processos de ciclo de vida de software que podem ser empregados para adquirir, fornecer, desenvolver, operar e manter produtos de software. Objetiva fornecer um guia para os usuários se orientarem quanto a sua aplicação. ISO 12207 Processos de Ciclo de Vida do Software Organização da Norma Processos do Ciclo de Vida Estão divididos em 3 grandes classes: PROCESSOS FUNDAMENTAIS Início e execução do desenvolvimento, operação ou manutenção do software durante o seu ciclo de vida. PROCESSOS DE APOIO Auxiliam um outro processo, de acordo com funcionalidades específicas. PROCESSOS ORGANIZACIONAIS Implementam uma estrutura constituída de processos de ciclo de vida e pessoal associados, melhorando continuamente a estrutura e os processos. ISO 12207 Processos de Ciclo de Vida do Software Estrutura dos Processos PROCESSOS Atividade 1 Tarefa 1 ... Atividade 2 Tarefa n . . . Tarefas 1 Atividade n ... Tarefas n ISO 12207 Processos de Ciclo de Vida do Software Processos de Ciclo de Vida do Software Processos Fundamentais Processos de Apoio Aquisição Documentação Fornecimento Desenvolvimento Operação Manutenção Processos Organizacionais Gerência de Configuração Garantia de Qualidade Verificação Validação Revisão Conjunta Auditoria Resolução de Problema Gerência Anexos Infra-estrutura Processo de Adaptação Melhoria Orientação para adaptação Treinamento Orientações sobre processos e organizações Bibliografia ISO 12207 Processos de Ciclo de Vida do Software Processos Fundamentais 1. Processo de Aquisição 1.1 Proposta de Aquisição 1.2 Seleção do Fornecedor 1.3 Gerenciamento do Fornecedor 1.4 Aceitação do Cliente 2. Processo de Fornecimento 2.1 Iniciação 2.2 Preparação de resposta 2.3 Contrato 2.4 Planejamento 2.5 Execução e Controle 2.6 Revisão e Avaliação 2.7 Entrega e Conclusão ISO 12207 Processos de Ciclo de Vida do Software Processos Fundamentais 3. Processo de Desenvolvimento 3.1 Implementação do Processo 3.2 Análise dos Requisitos 3.3 Projeto da Arquitetura Sistema 3.4 Análise dos Requisitos Software 3.5 Projeto Arquitetura Software 3.6 Projeto Detalhado Software 3.7 Codificação e Testes do Software 3.8 Integração do Software 3.9 Teste de Qualificação do Software 3.10 Integração do Sistema 3.11 Teste de Qualificação do Sistema 3.12 Instalação do Software 3.13 Apoio à Aceitação do Software ISO 12207 Processos de Ciclo de Vida do Software Processos Fundamentais 4. Processo de Operação 4.1 4.2 4.3 4.4 Implementação do Processo Teste Operacional Operação do Sistema Suporte ao Usuário 5. Processo de Manutenção 5.1 Implementação do Processo 5.2 Análise do problema e da modificação 5.3 Implementação da modificação 5.4 Revisão/Aceitação da manutenção 5.5 Migração 5.6 Descontinuação do Software ISO 12207 Processos de Ciclo de Vida do Software Processos de Apoio 1. Processo de Documentação 1.1 Implementação do Processo 1.2 Projeto e Desenvolvimento 1.3 Produção 1.4 Manutenção 2. Processo de Gerência de Configuração 2.1 Implementação do Processo 2.2 Identificação da Configuração 2.3 Controle da Configuração 2.4 Relato da situação da Configuração 2.5 Avaliação da Configuração 2.6 Gerência de liberação e distribuição ISO 12207 Processos de Ciclo de Vida do Software Processos de Apoio 3. Processo de Garantia da Qualidade 3.1 Implementação do Processo 3.2 Garantia do Produto 3.3 Garantia do Processo 3.4 Sistema de Garantia da Qualidade 4. Processo de Verificação 4.1 Implementação do Processo 4.2 Verificação 5. Processo de Validação 4.1 Implementação do Processo 4.2 Validação ISO 12207 Processos de Ciclo de Vida do Software Processos de Apoio 6. Processo de Revisão Conjunta 6.1 Implementação do Processo 6.2 Revisões de Gerenciamento do Projeto 6.3 Revisões Técnicas 7. Processo de Auditoria 4.1 Implementação do Processo 4.2 Auditoria 8. Processo de Resolução do Problema 8.1 Implementação do Processo 8.2 Resolução do Problema ISO 12207 Processos de Ciclo de Vida do Software Processos Organizacionais 1. Processo de Gerência 1.1 Iniciação e definição do escopo 1.2 Planejamento 1.3 Execução e Controle 1.4 Revisão e Avaliação 1.5 Conclusão 2. Processo de Infra-Estrutura 2.1 Implementação do Processo 2.2 Estabelecimento da Infra-Estrutura 2.3 Manutenção da Infra-Estrutura ISO 12207 Processos de Ciclo de Vida do Software Processos Organizacionais 3. Processo de Melhoria 3.1 Estabelecimento do Processo 3.2 Avaliação do Processo 3.3 Melhoria do Processo 4. Processo de Treinamento 4.1 Implementação do Processo 4.2 Desenvolvimento do material de treinamento 4.3 Implementação do plano de treinamento ISO 12207 Processos de Ciclo de Vida do Software Anexos Anexos A (normativo) 1. Processo de Adaptação 1.1 Identificação do ambiente do projeto 1.2 Solicitação de informações 1.3 Seleção de processos,atividades e tarefas 1.4 Documentação de decisões e motivos da adaptação ISO 12207 Processos de Ciclo de Vida do Software Anexos Anexos B (informativo) 1. Orientação para adaptação 1.1 Orientação geral de adaptação 1.2 Adaptação do processo de desenvolvimento 1.3 Adaptação das atividades relacionadas ISO 12207 Processos de Ciclo de Vida do Software Anexos Anexos C (informativo) 1. Orientações sobre processos e organizações 1.1 Processos sobre pontos de vista relevantes 1.2 Processos, organizações e relacionamentos ISO 12207 Processos de Ciclo de Vida do Software Quadro Comparativo Aspéctos Abordados Objetivo Abordagem ISO 9000-3 ISO/IEC 12207-1 Sw-CMM SPICE Estabelecer uma Certificar a Organização de Determinar a capacidade Conhecer e avaliar os terminologia e um acordo com os padrões da Organização e apoiar a processos da entendimento comum estabelecidos em situações sua evolução de acordo Organização, determinar a para os processos entre decontrato de fornecimento com os níveios capacitação e promover a todos os envolvidos com de software estabelecidos melhoria software Definição dos processos para aquisição, avaliação dos processos Verificação de fornecimento de enquadramento da conformidade de processos desenvolvimento, Organização em um dos e padrões documentados operação e manutenção níveis de maturidade de software Organizações Alvo Organizações que necessitam de uma certificação Definição de processos Não estabelece processo, estabelece atividades a serem cumpridas, com visão de estrutura, ciclo de vida e suporte Organizações em geral Organizações que necessitam de comprovação formal de sua capacidade Avaliação dos processos da Organização em relação a níveis de capacitação Organizações em geral Estabelece 18 áreas de Estabelece 17 Estabelece 29 processos processos organizados processos,organizados organizados em 5 em 5 níveis crescentes de em 3 categorias categorias maturidade ISO 12207 Processos de Ciclo de Vida do Software Quadro Comparativo Aspéctos Abordados ISO 9000-3 ISO/IEC 12207-1 SW-CMM SPICE Não admite adaptação nos aspéctos abordados Classificação de processos pode ser utilizada conforme os objetivos da organização Níveis e áreas chaves do processo são a base do modelo e não podem ser alterados Permitea definição de perfis de processo e práticas de acordo com os objetivos da organização Não se aplica Questionário e entrevistas Fornece orientações para definição dos instrumentos Inspiração e influência Normas militares americanas, canadenses, Sistemas de Qualidade do Reino Unido TQM, PDCA Princípios de Shewart, Deming, Juran, Crosby TQM, PDCA, SWCMM, STD,Trillium, Malcolm, Baldrige, Bootstrap Aspéctos positivos Norma Internacional; Difusão extensa; Reconhecimento do valor da certificação Norma Internacional; Definição de uma taxonomia para processos útil para qualquer organização Estabelecimento de diretrizes para a melhoria contínua. Difusão extensa nos EUA Norma Internacional em elaboração; Expansão e flexibilização dos modelos citados Limitações Risco de se colocar a certificação como objetivo principal. Ausência de apoio à melhoria contínua. Falta abordagem de produto Apenas uma definição de taxonomia de processos Pouca consideração à diversidade das organizações. Dificuldade de aplicação em pequenas organizações. Falta abordagem de produto Devido a grande quantidade de informações, exige treinamento para sua aplicação. Falta abordagem de produto Flexibilidade nos aspéctos definidos pelo modelo Instrumento de Lista de Verificação Avaliação ISO 12207 Processos de Ciclo de Vida do Software Considerações finais Todas as Normas e modelos de qualidade para software têm por objetivo buscar organização e melhoria contínua no processo de desenvolvimento de software. Com esses processos documentados e gerenciados, o desenvolvedor pode assumir projetos de alta complexidade, aliados a técnica e criatividade. Melhor capacitado e provedor de metodologias que levam ao desenvolvimento de software com qualidade, o desenvolvedor poderá criar soluções que atendam as necessidade e os requisitos da empresa. Dessa forma, o desenvolvedor contribuirá para criação de vantagens competitivas, sustentando as bases estratégicas da Organização. ISO 12207 Processos de Ciclo de Vida do Software Referências Bibliográficas ISO/IEC 12207 – Software Life Cycle Process ROCHA, Ana Regina Cavalcanti et al. – Qualidade de Software – www. qualidadesoftware.hpg.ig.com.br Qualidade e Produtividade – disponível em: www.met.gov.br MANOEL, Marcus Teli – Capability Maturity Model – disponível em: www.mteli.dominodeveloper.net Qualidade de Software: Visões de Produto e Processo de Software – disponível em: www.psphome.hpg.ig.com.br X SIMPEP Simpósio de Engenharia de Produção – Importância da Norma ISO 12207 nas Empresas de Desenvolvimento de Software – disponível em: www.simpep.feb.unesp.br ISO/IEC 12119: 1994, Information Technology - Software packages – Quality requirements and Testing