Universidade Paulista Ciência da Computação Sistemas de Informação Gestão da Qualidade Principais pontos da NBR ISO/IEC 12207 - Tecnologia da Informação Processos de ciclo de vida de software Sergio Petersen 15/10/2012
Sumário 1. Processo de Ciclo de Vida de Software NBR ISO/IEC 12207 3 2. Processos Fundamentais de Ciclo de Vida 5 2.1 Processo de aquisição. 5 2.2 Processo de fornecimento. 5 2.3 Processo de desenvolvimento. 5 2.4 Processo de operação. 6 2.5 Processo de manutenção. 6 3. Processos de Apoio de Ciclo de Vida. 7 3.1 Processo de documentação. 7 3.2 Processo de gerência de configuração. 7 3.3 Processo de garantia da qualidade. 7 3.4 Processo de verificação. 8 3.5 Processo de validação. 8 3.6 Processo de revisão conjunta. 9 3.7 Processo de auditoria. 9 3.8 Processo de Aplicabilidade. 9 3.9 Processo de resolução de problema. 9 4. Processos organizacionais de ciclo de vida. 10 4.1 Processo de gerência. 10 4.2 Processo de melhoria. 10 4.3 Processo de infra-estrutura. 10 4.4 Processo de treinamento. 11 4.5 Processo de Recursos Humanos. 11 4.6 Processo de Gerência de Ativos. 11 4.7 Processo de Gerência de Programa de Reutilização. 11 4.8 Processo de Engenharia de Domínio. 12 Bibliografia 13 2
1. Processo de Ciclo de Vida de Software NBR ISO/IEC 12207 A norma foi publicada em agosto de 1995 e provê um conjunto de processos, atividades e tarefas de ciclo de vida para software que é parte de um sistema maior, para produto de software independente e para serviços de software. Fornece, ainda, uma arquitetura comum de processo de software para aquisição, fornecimento, desenvolvimento, operação e manutenção de software. Provê, também, os necessários processos, atividades e tarefas de apoio e, processo, atividades e tarefas organizacionais para o gerenciamento e melhoria dos processos. As atividades que podem ser executadas durante o ciclo de vida de software estão agrupadas em cinco processos fundamentais, oito processos de apoio e quatro processos organizacionais, conforme figura 1. 3
Processos fundamentais de ciclo de vida Aquisição Processos de apoio de ciclo de vida Documentação Fornecimento Gerência de configuração Garantia de qualidade Operação Verificação Desenvolvimento Validação Revisão conjunta Manutenção Auditoria Aplicabilidade Resolução de problema Processos organizacionais de ciclo de vida Gerência Recursos Humanos Melhoria Gerência de ativos Infra-estrutura Programa de Reutilização Engenharia de Domínio Figura 1 Estrutura da norma NBR ISO/IEC 12207, (ISO98, ISO02). 4
2. Processos Fundamentais de Ciclo de Vida Os processos fundamentais constituem um conjunto de cinco processos que atendem as partes fundamentais durante o ciclo de vida de software. Parte fundamental é aquela que inicia ou executa o desenvolvimento, operação ou manutenção dos produtos de software. 2.1 Processo de aquisição. Define as atividades do adquirente do sistema, produto de software ou serviço de software. Inicia-se com a definição da necessidade de adquirir um sistema, um produto de software ou um serviço de software; e continua com a preparação e emissão de pedido de proposta, seleção de fornecimento e gerência do processo de aquisição através da aceitação do sistema, produto de software ou serviço de software. Iniciação Preparação de pedido de proposta Preparação a atualização do contrato Monitoração do fornecedor Aceitação e conclusão 2.2 Processo de fornecimento. Define as atividades do fornecedor do sistema, produto de software ou serviço de software. O processo inicia-se tanto por uma decisão de preparar uma proposta para responder a um pedido de proposta de um adquirente quanto pela assinatura e celebração de um contrato com o adquirente para o fornecer o sistema, produto software ou serviço de software, e continua com a determinação dos procedimentos e recursos necessários para gerenciar e garantir o projeto, incluindo o desenvolvimento e a execução dos planos de projeto até a entrega do sistema, produto de software ou serviço para o adquirente. Iniciação Preparação de resposta Contrato Planejamento Execução e controle Revisão e avaliação Entrega e conclusão. 2.3 Processo de desenvolvimento. Define as atividades do desenvolvedor do produto de software. O processo contém as atividades para análise de requisitos, projeto, codificação, integração, testes, instalação e aceitação relacionada aos produtos de 5
software. Análise dos requisitos do sistema Projeto da arquitetura do sistema Análise dos requisitos do software Projeto da arquitetura do software Projeto detalhado do software Codificação e testes do software Integração do software Teste de qualificação do software Integração do sistema Teste de qualificação do sistema Instalação do software Apoio à aceitação do software 2.4 Processo de operação. Define as atividades do operador de um sistema computacional, no seu ambiente de funcionamento. O processo abrange a operação do produto de software e o suporte operacional aos usuários. Como a operação está integrada à operação do sistema, as atividades e tarefas deste processo se referem ao sistema. Teste operacional Operação do sistema Suporte ao usuário 2.5 Processo de manutenção. Define as atividades do mantenedor do produto de software, responsável pelo gerenciamento das modificações no produto de software para mantê-lo atualizado e em perfeita operação. Inclui a migração e a descontinuação do produto de software. A manutenção tem início quando o produto de software é submetido a modificações no código e na respectiva documentação devido a um problema, ou à necessidade de melhoria ou adaptação. O objetivo é modificar um produto de software existente, preservando a sua integridade. Análise do problema e da modificação Implementação da modificação Revisão/aceitação da manutenção Migração 6
Descontinuação do software 3. Processos de Apoio de Ciclo de Vida. Os processos de apoio de ciclo de vida constituem um conjunto de oito processos. O processo de apoio auxilia um outro processo como uma parte integrante, com um propósito distinto, e contribui para o sucesso e qualidade do projeto de software. 3.1 Processo de documentação. Define as atividades para registro da informação produzida por um processo de ciclo de vida. Contém o conjunto de atividades que planeja, projeta, desenvolve, produz, edita, distribui e mantém aqueles documentos necessários a todos os interessados. Projeto e desenvolvimento Produção Manutenção 3.2 Processo de gerência de configuração. Define as atividades de gerência de configuração. É composto dos procedimentos administrativos e técnicos, por todo o ciclo de vida de software, destinado a identificar e definir os itens de software em um sistema, e estabelecer suas linhas básicas; controlar as modificações e liberações dos itens; registrar e apresentar a situação dos itens e dos pedidos de modificação; garantir a completeza, a consistência e a correção dos itens; e controlar o armazenamento, a manipulação e a distribuição dos itens.. Identificação da configuração Controle da configuração Relato da situação da configuração Avaliação da configuração Gerência de liberação e distribuição 3.3 Processo de garantia da qualidade. Define as atividades para garantir objetivamente que os produtos e processos de software estão em conformidade com seus requisitos especificados e aderem aos seus planos estabelecidos. A garantia da qualidade pode ser interna ou externa e pode utilizar os resultados de outros processos de apoio tais como: verificação, validação, revisões conjuntas, auditorias e resolução de problema. 7
Para ser imparcial, a garantia da qualidade necessita ter autoridade e autonomia organizacional, independente das pessoas diretamente responsáveis pelo desenvolvimento do produto de software ou pela execução do processo no projeto. Garantia do produto Garantia do processo Sistema de garantia de qualidade 3.4 Processo de verificação. Visa determinar se os produtos de software de uma atividade atendem completamente os requisitos ou condições impostas a eles nas atividades anteriores. Para a eficácia de custo e desempenho, a verificação deveria ser integrada, o quanto antes, com o processo que a utiliza, tais como fornecimento, desenvolvimento, operação ou manutenção. Caso o processo seja executado por uma organização independente do fornecedor, desenvolvedor, operador ou mantenedor, é chamado de processo de verificação independente. Verificação do contrato Verificação do processo Verificação dos requisitos Verificação de projeto Verificação do código Verificação da integração Verificação da documentação 3.5 Processo de validação. Define as atividades para validação dos produtos de software do projeto de software. Tem por objetivo determinar se os requisitos e o produto final, sistema ou produto de software construído, atendem ao uso específico pretendido. A exemplo do que ocorre com o processo de verificação, a validação pode ser um processo independente. Validação 8
3.6 Processo de revisão conjunta. É um processo para avaliar a situação e produtos de uma atividade de um projeto, se apropriado. As revisões conjuntas são feitas tanto nos níveis de gerenciamento do projeto como nos níveis técnicos e são executadas durante a vigência do contrato. Revisões de gerenciamento do projeto Revisões técnicas 3.7 Processo de auditoria. Auditoria é um processo para determinar adequação aos requisitos, planos e contrato, quando apropriado. Pode ser empregado por qualquer das duas partes, onde uma parte faz a auditoria nos produtos de software ou nas atividades da outra parte. Auditoria 3.8 Processo de Aplicabilidade. Contém as atividades que levam em conta os interesses e necessidades de indivíduos e/ou grupos que deverão trabalhar com, ou usar, o produto de um sistema durante todo o desenvolvimento e operação do software ou sistema. Assegura a qualidade no uso do software. Projeto centrado no homem Aspectos humanos de estratégia, introdução e suporte. 3.9 Processo de resolução de problema. Define um processo para análise e remoção dos problemas, independente da sua natureza ou origem, que forem descobertos durante a execução dos processos de desenvolvimento, de operação, de manutenção ou de outros processos. O objetivo é prover os meios em tempo adequado e de forma responsável e documentada para garantir que todos os problemas encontrados sejam analisados e resolvidos e tendências sejam identificadas. 9
Resolução de problemas 4. Processos organizacionais de ciclo de vida. Os processos organizacionais de ciclo de vida constituem um conjunto de quatro processos. Eles são empregados por uma organização para estabelecer e implementar uma estrutura subjacente, constituída de processos de ciclo de vida e pessoal associado, e melhorar continuamente a estrutura e os processos. Eles são tipicamente empregados fora do domínio de projetos e contratos específicos; entretanto, ensinamentos destes projetos e contratos contribuem para a melhoria da organização. 4.1 Processo de gerência. Contém as atividades e tarefas genéricas que podem ser empregadas por quaisquer das partes que têm que gerenciar seus respectivos processos. O gerente é responsável pelo gerenciamento de produto, gerenciamento de projeto e gerenciamento de tarefa dos processos aplicáveis, tais como: aquisição, fornecimento, desenvolvimento, operação, manutenção ou processo de apoio. Iniciação e definição do escopo Planejamento Execução e controle Revisão e avaliação Conclusão 4.2 Processo de melhoria. Define as atividades básicas que uma organização executa para estabelecer, avaliar, medir, controlar e melhorar seu processo de ciclo de vida. Estabelecimento do processo Avaliação do processo Melhoria do processo 4.3 Processo de infra-estrutura. É um processo para estabelecer e manter a infra-estrutura necessária para qualquer outro processo. A infra-estrutura pode incluir hardware, software, ferramentas, técnicas, padrões e recursos para o desenvolvimento, operação ou manutenção. Estabelecimento da infra-estrutura 10
Manutenção da infra-estrutura 4.4 Processo de treinamento. Define as atividades para prover pessoal adequadamente treinado. A aquisição, o fornecimento, o desenvolvimento, a operação ou a manutenção de produtos de software é extremamente dependente de pessoal com conhecimento e qualificação. Portanto o treinamento de pessoal deve ser planejado e implementado com antecedência de forma que os recursos estejam disponíveis quando o produto de software for adquirido, fornecido, desenvolvido, operado ou mantido. Desenvolvimento de material de treinamento Implementação do plano de treinamento 4.5 Processo de Recursos Humanos. Supre a organização e projetos com indivíduos que possuem qualificações e conhecimento para executar suas funções eficazmente e para trabalhar em conjunto como um grupo coeso. Definir requisitos de treinamento Recrutar pessoal qualificado Avaliar desempenho do pessoal Estabelecer requisitos para equipe de projeto Gerenciamento do conhecimento. 4.6 Processo de Gerência de Ativos. É o processo de aplicar procedimentos administrativos e técnicos por toda a vida de um ativo, para identificar, definir, certificar, classificar e definir a linha básica do ativo; rastrear modificações, migrações e versões do ativo; registrar e relatar a situação do ativo; e estabelecer e controlar o armazenamento e manuseio do ativo, distribuição do ativo aos seus usuários e a descontinuação do ativo. Definição de armazenamento e recuperação do ativo Gerenciamento e controle do ativo. 4.7 Processo de Gerência de Programa de Reutilização. É utilizado para planejar, estabelecer, gerenciar, controlar e monitorar um 11
programa de reutilização de uma organização. Iniciação Identificação do domínio Avaliação de reutilização Planejamento Execução e controle Revisão e avaliação. 4.8 Processo de Engenharia de Domínio. Cobre o desenvolvimento e manutenção dos modelos de domínio, arquitetura de domínio e outros ativos para esse domínio. Análise de domínio Projeto de domínio Provisão de ativos Manutenção de ativos. 12
Bibliografia NBR ISO/IEC 12207. Tecnologia de informação Processo de ciclo de vida de software, 1995. NBR ISO/IEC 12207. Tecnologia de informação Processo de ciclo de vida de software, Emenda 1, 2002. 13