ISO/IEC 12207 Alexsandra Santana Ana Priscila Jhoseph Kelvin NATAL / RN 2013 Agenda • • • • • • • • • • • ISO ISO e Tecnologia da Informação Aplicação de Padrões Certificação Principais Normas ISO Relacionadas à Qualidade de Processos de Software Norma ISO/IEC 12207 – Contexto Histórico Conceito ISO/IEC 12207 Conteúdo da norma Formas de Processo de Software Atividades de Desenvolvimento de Software Considerações Finais ISO • Organização internacional não governamental dedicada à padronização. • É atualmente a maior desenvolvedora e editora de padrões internacionais do mundo e embora a ISO seja conhecida como International Organization for Standardization, “ISO” não é uma sigla. A palavra provém do grego “isos” e significa igual. (Fonte: http://www.iso.org). ISO • Na verdade, ISO é uma rede de institutos nacionais de padronização de 157 países, com um secretariado central sediado em Genebra, Suíça (a ABNT é o instituto brasileiro integrante dessa rede). • Conta atualmente com mais de 17.000 documentos internacionais de padronização e mais de 50.000 especialistas que contribuem no mundo inteiro para a criação e verificação dos documentos (Fonte: http://www.iso.org). ISO e Tecnologia da Informação • A ISO criou com a IEC (International Eletrotechnical Commission) a primeira comissão conjunta para elaboração de normas, o JTC1 (Joint Technical Committee 1). • O JTC1 é responsável pela criação de normas relacionadas a TI e é dividido em subcomissões (SC), que, por sua vez, são divididas em grupos de trabalho (Working Groups – WG) (Koscianski e Soares, 2006 • A subcomissão SC-7 (Engenharia de Software e de Sistemas) trata das normas relacionadas à qualidade de software. Aplicação de Padrões • Adequação x Certificação. • Adequação: deve preceder a certificação e consiste em colocar em prática, total ou parcialmente, aquilo que é nela proposto. • Certificação: Envolve a participação de um organismo ou empresa externa que possa atestar que a empresa candidata segue efetivamente o padrão. • Alguns padrões são passíveis de certificação, outros não (Koscianski e Soares, 2006). Certificação • Pré-análise -> Relatório de não-conformidades. • Ajustes • Avaliação -> Relatório de não-conformidades + Recomendação, que podem ser: • Certificar a empresa, sugerindo apenas pequenas correções a serem realizadas. • Certificar a empresa, porém sob a condição de que certas correções sejam efetuadas. • Não certificar a empresa, recomendando uma nova etapa de adequação à norma antes de uma nova tentativa de certificação. Principais Normas ISO Relacionadas à Qualidade de Processos de Software • A Série ISO 9000 – Sistemas de Gerência da Qualidade • ISO/IEC 12207 – Engenharia de Software e de Sistemas – Processos de Ciclo de Vida de Software • ISO/IEC 15504 – Tecnologia da Informação – Avaliação de Processos IECC 12207 – Contexto Histórico • 1a Versão (1995): Tecnologia da Informação – Processos de Ciclo de Vida de Software: descreve processos e suas atividades e tarefas, de modo a facilitar o desenvolvimento de software em situações envolvendo duas partes. • Paralelamente, a Indústria de Software constata que, igualmente importante, é a necessidade de avaliar a capacidade de processo (ISO/IEC 15504), o que requer a declaração do propósito do processo e descrição de resultados esperados. • Emendas 1 (2002) e 2 (2004): introdução de novos processos e definição de propósitos e resultados esperados para cada processo. IECC 12207 – Contexto Histórico • Apesar da ISO 12207 tratar processos de ciclo de vida de software dentro de um contexto de sistemas, era necessário um padrão no domínio de sistemas: ISO/IEC 15288 (2002). • O desenvolvimento confuso das emendas e a falta de harmonia com a 15288, dificultavam a aplicação da ISO 12207. • Começa, então um projeto de harmonização que culmina com a 2a edição da ISO 12207(2008): Engenharia de Software e de Sistemas – Processos de Ciclo de Vida de Software. Conceito ISO/IEC 12207 • Norma internacional responsável por definir os processos de desenvolvimento de software. Objetivos da Norma ISO/IEC 12207 Esta Norma estabelece uma estrutura comum para processos de ciclo de vida de software, com terminologia bem definida, que pode ser referenciada pela indústria de software. A estrutura contém processos, atividades e tarefas que serão aplicadas durante a aquisição de um produto de software ou serviço, e durante o fornecimento, desenvolvimento, operação, manutenção e descontinuidade dos produtos de software. O software inclui a parte de software de firmware.(ABNT, 2009) Provê, também, um processo que pode ser empregado na definição, controle e melhoria de processos de ciclo de vida (ISO/IEC, 2008). Formas do Processo de Software Propósito ou resultado • Não detalha o Processo • Indica objetivos e resultados apenas Formas do Processo de software Atividade • Descrição das atividades e interrelações Classes de processos Fundamentais Apoio Organizacionais Processos fundamentais Aquisição Fornecimento Desenvolvimento Operação Manutenção Processos Fundamentais Aquisição • Obter um produto ou serviço que satisfaça a necessidade do cliente Fornecimento • Fornecer um produto ou serviço que atenda aos requisitos acordados com o cliente. Processos Fundamentais Desenvolvimento • Transformar um conjunto de requisitos em um produto de software ou um sistema baseado em software que atenda às necessidades expressas pelo cliente. Operação • Operar o produto de software no seu ambiente e • Fornecer suporte aos clientes desse produto Processos fundamentais Manutenção • Modificar o produto de software após sua entrega para corrigir falhas, melhorar o desempenho ou outras características, ou adaptá-los a mudanças no ambiente Processos de apoio Documentação Auditoria Gerência de configuração Resolução de problema Garantia da qualidade Verificação Validação Processos de apoio Usabilidade Contrato Processos de apoio • Documentação – desenvolver e manter registradas as informações do software produzidas por um processo. • Gerência de Configuração – estabelecer e manter a integridade de todos os produtos de trabalho de um processo ou projeto e disponibilizá-los a todos os envolvidos. • Garantia de Qualidade – fornecer garantia de que os produtos de trabalho e processos estejam em conformidade com os planos e condições pré-definidos. Processos de apoio • Verificação – confirmar que cada produto de trabalho de software ou serviço de um processo ou projeto reflete apropriadamente os requisitos especificados. • Validação – confirmar que são atendidos os requisitos de um uso específico pretendido para o produto de trabalho de software. • Revisão Conjunta – manter um entendimento comum com os stakeholders a respeito do progresso obtido em relação aos objetivos acordados. Processos de apoio • Auditoria – determinar, de forma independente, a conformidade dos produtos e processos selecionados com os requisitos, planos e contratos, quando apropriado • Resolução de Problema – assegurar que todos os problemas identificados são analisados e resolvidos Processos de apoio • Usabilidade – introduzido em 2002 – garantir que sejam considerados os interesses e necessidades dos envolvidos, visando a redução das chances de rejeição do sistema pelo usuário • Avaliação de Produto – introduzido em 2002 – executar exame e medições sistemáticas para garantir que o produto atende às necessidades especificadas e implícitas dos seus usuários Processos organizacionais Gerência Gestão de ativos Infra-estrutura Gestão de programa de reuso Melhoria Recursos humanos Processos organizacionais Engenharia de domínio Processos organizacionais • Gerência – organizar, monitorar e controlar a iniciação e a execução de qualquer processo de forma a atingir as suas metas de acordo com as metas da organização • Infraestrutura – manter um ambiente estável e confiável, necessário para apoiar a execução de qualquer outro processo (hardware, software, métodos, ferramentas, técnicas, padrões e instalações) • Melhoria – estabelecer, avaliar, medir, controlar e melhorar um processo de ciclo de vida de software • Recursos Humanos – introduzido em 2002 – fornecer à organização os recursos humanos adequados e manter as suas competências consistentes com as necessidades do negócio Processos organizacionais • Gestão de Ativos – introduzido em 2002 gerenciar a vida dos ativos reutilizáveis desde a sua concepção até a descontinuação • Gestão do Programa de Reuso – introduzido em 2002 – planejar, estabelecer, gerenciar, controlar e monitorar esse programa e sistematicamente explorar as oportunidades de reuso • Engenharia de Domínio – introduzido em 2002 – desenvolver e manter modelos, arquiteturas e ativos de domínio. Atividades do Desenvolvimento de Software • Implementação; • Levantamento de requisitos; • Integração do software; • Análise dos requisitos do sistema; • Teste de qualificação do software; • Projeto da arquitetura do • Integração do sistema; sistema; • Análise dos requisitos do software; • Teste de qualificação do sistema; • Projeto da arquitetura do software; • Teste e aprovação do software • Projeto detalhado do software; • Codificação e testes do software; • Instalação do software; Considerações finais • • • • • A Norma ISO/IEC 12207, por ser internacional, tem sido muito importante para organizações definirem seus padrões e processos do ciclo de vida de software, pois possuem alta granularidade. A arquitetura é robusta e bem definida, facilitando o desenvolvimento dos processos primários do desenvolvimento de software, É referência para o modelo de maturidade mps.Br. A competitividade entre as organizações é muito grande, portanto, certificar os processos e produtos da empresa é de suma importância para que a empresa possa se destacar entre as demais; Ou seja, devemos padronizar para impor confiança, credibilidade e qualidade nos processos e produtos de software;