NORMA ISO/IEC 15504
Felipe FerrazLuan Ferreira Cardoso
Rafael ChavesRaffael Russo
Ricardo Solon Zalla
Trabalho para a cadeira de Engenharia de Software do 9º período do CFG de Engenharia da Computação do IME.
Introdução
- Contextualização- Processos- ISO 9001 x ISO/IEC 15504- ISO/IEC 12207 x ISO/IEC 15504- CMMI x ISO/IEC 15504
Contextualização
A ISO/IEC 15504 é a norma que define uma série de atividades para avaliar e melhorar processos de software, e tem como objetivo determinar o nível de capacidade dos processos de uma organização.
Originou-se do projeto SPICE (Software Process Improvement and Capability Determination) com base nos modelos já existentes como ISO 9000 e CMM.
Contextualização
O SPICE foi niciado em 1993 a partir da necessidade de uma norma para avaliação de processos de software. Em 2003 o projeto SPICE se tornou a ISO/IEC 15504 com as alterações:
• Virou uma norma internacional• Foi dividida estruturalmente em 5 partes• Tornou-se mais genérica.
Contextualização
ISO - International Organization for StandardizationSEI - Software Engineering InstituteIEC - International Electrotechnical Commission
Contextualização
O contexto da ISO/IEC 15504 é o de padronização para avaliação de processos.
Logo esta norma insere-se no escopo de avaliação da qualidade do processo de software assim como a ISO 12207.
Portanto para entendermos a ISO/IEC 15504 precisamos entender a definição de processos, bem como a relação entre esta norma e as outras citadas anteriormente.
Processos
“O processo de desenvolvimento de software é um conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software. É um dos principais mecanismos para se obter software de qualidade e cumprir corretamente os contratos de desenvolvimento.”
Dentre os passos e atividades de um processo podemos citar:• Análise Econômica• Análise de requisitos de software• Especificação• Arquitetura de Software• Implementação (ou codificação)• Teste• Documentação• Suporte e Treinamento de Software• Manutenção
Processos
Processos
Como abordagens a um processo de software podemos citar os ciclos de vida:Esqueletos ou estruturas pré-definidas nas quais encaixamos as atividades do processo.
• Modelo em cascata• Prototipagem• Desenvolvimento incremental• Modelo em espiral• Desenvolvimento Rápido de Aplicação
Processos
Os padrões normativos para avaliação de processos foram criados para que as empresas que os seguem tivessem uma garantia de um certo grau de confiança aos seus clientes.
Logo o processo de desenvolvimento de software deve estar documentado para que possa ser avaliado, compreendido e seguido.
Processos
Como padrões que focam no processo de desenvolvimento de software podemos citar:
• CMMI• ISO 9001• ISO/IEC 12207• ISO/IEC 15504 (SPICE)
ISO 9001 x IEC 15504
A ISO 9001 é uma evolução da ISO 9000 e tem como objetivo melhorar a gestão de uma empresa. Através do ISO 9001, uma empresa aplica nos seus processos padrões para o seu sistema de gestão e qualidade. Esta norma também é usada para medir o nível de satisfação dos clientes, melhorando a eficácia da gestão da empresa.
ISO 9001 x IEC 15504
Com isso a ISO 9001 relaciona-se com a ISO 15504 no sentido de que a norma 15504 define os requisitos para avaliação e orientações na aplicação, enquanto a 9001 dá apenas um modelo abstrato. Sendo assim a norma ISO/IEC 15504 é um complemento à norma ISO 9001
ISO/IEC 12207 x ISO/IEC 15504
A ISO/IEC 12207 estabelece uma estrutura comum para os processos de ciclo de vida de software. Ela é uma base que serve de fundamentação para várias outras normas e modelos.
A norma ISO/IEC 15504, como será visto adiante, contém um modelo exemplo de avaliação de processo que é baseado no modelo de referência de processo definido na ISO/IEC 12207. Esse modelo exemplo pode ser utilizado para conduzir uma avaliação do processo de engenharia de software.
ISO/IEC 12207 x ISO/IEC 15504
Por esse fato, muitas vezes, diz-se que a ISO/IEC 15504 é uma evolução da ISO/IEC 12207, pois além de basear-se na 12207 para avaliar software, a norma 15504 possui uma dimensão de determinação do nível de capacidade dos processos.
CMMI x ISO/IEC 15504O CMMI (Capability Maturity Model Integration), definido pelo SEI, é um modelo para melhoria contínua de processos. É uma evoulção do CMM.
Surgiu com o objetivo de reduzir duplicações, eliminar inconsistências e fornecer uma terminologia comum entre vários outros modelos também criados pelo SEI.
O CMMI relaciona-se com a norma ISO/IEC 15504 no que se refere à avaliação de processos em níveis de capacidade.
ISO/IEC 15504
- Estrutura do Modelo- A dimensão do processo- A dimensão de capacidade- Mecanismos de pontuação - Perfil de capacidade
Estrutura do Modelo
A ISO 15504 foi dividida em 5 partes:
• Parte 1: conceitos e vocabulário
• Parte 2: requisitos mínimos para a realização de uma avaliação visando consistência e repetibilidade
• Parte 3: guia (não normativo) para a interpretação dos requisitos para a realização de uma avaliação
• Parte 4: guia (não normativo) para: – determinação da capacidade (perfil de capacidade) – melhoria de processo (perfil + plano de ação)
• Parte 5: modelo de referência de processos (não normativo) aderente aos requisitos da Parte 2; podem ser usados outros modelos como, por exemplo, a ISO 12207 ou o CMMI
Dimensão de Processo
A dimensão do processo se limita a verificação da execução dos processos. São relacionadas a “o que fazer” organizadas em processos específicos.
São 48 processos que estão organizados em 3 categorias de processo e 9 grupos de processo.
Dimensão de Processo
Cada processo é descrito com os seguintes seis elementos:
• Identificação (process identifier)
• Nome (process name)
• Propósito (process purpose)
• Resultados (Outcomes)
• Práticas base (base practice)
• Produtos de trabalho (work-products)
Processos Fundamentais
Processos de aquisição: aplicáveis a organizações na aquisição de serviços de desenvolvimento de SW, de componentes ou módulos
Envolve as etapas de preparação, seleção, contratação, monitoração e aceitação.
Processos Fundamentais
Processo de fornecimento: aplicáeis a organizações na fase de apresentação de proposta de serviços de desenvolvimento de SW, de componentes ou módulos.
Envolve as etapas de preparação de propostas, release de produto e apoio à aceitação.
Processos Fundamentais
Processo de Engenharia de Software: processos do ciclo de desenvolvimento de software e de sistemas
Envolve as etapas de elicitação de requisitos, arquiteturas do sistema, análise de requisitos, design, construção, integração e teste de SW, teste de SW e de sistema, instalação de SW e manuntenção de SW e de sistema.
Processos Fundamentais
Processo de operação: processos relacionados à operação do software.
Envolve as etapas de uso operacional e suporte à operação.
Processos Organizacionais
Processo de gestão: processos relacionados à gestão do software.
Envolve as etapas de alinhamento aos objetivos estratégicos da organização, estabelecimento de práticas de gestão em geral, gestão da qualidade, gestão de riscos e medição.
Processos Organizacionais
Processo de gestão: processos associados à definição e melhoria de processos
Envolve as etapas de definição de processos, avaliação de processos e melhoria de processos.
Processos Organizacionais
Processo de Recursos e Infra-estrutura: processos relacionados à gestão de RH e Infraestrutura.
Envolve as etapas de gestão de RH, treinamento, gestão do conhecimento e infraestrutura.
Processos Organizacionais
Processo de Reuso: processos relacionados à gestão de ativos susceptíveis de reuso.
Envolve as etapas de gestão de ativos, gestão de programa de reuso e engenharia de domínio..
Processos de Apoio
Processo de Apoio: processos de apoio ao desenvolvimento de software e de sistemas.
Envolve as etapas de garantia da qualidade, verificação e validação, revisão conjunta, auditoria, avaliação de produto, documentação, gestão de configuração e de mudança e solução de problemas.
Dimensão de Capacidade
Permite uma avaliac ão detalhada dos processos executados por uma organizac ão
Trabalha com:
● N veis de capacidade● Atributos de processo
Niveis de Capacidade
0 - Incompleto Processo não existe ou falha em atingir seus objetivos
1 - Executado Processo geralmente atinge os objetivos, porem sem padrao de qualidade e sem controle de prazos e custos
2 - Gerenciado Processo planejado, acompanhado, e satisfaz os requisitos definidos de qualidade, prazo e custos
Niveis de Capacidade
3 - Estabelecido Processo executado e gerenciado com uma adaptação de um processo padrão definido; eficaz e eficiente
4 - PrevisívelProcesso executado dentro dos limites de controle definidos e com medições detalhadas e analisadas
5 - OtimizadoProcesso melhorado continuamente de forma disciplinada
Atributos de Processo
● 1.1 Execuc ãoO processo atinge os objetivos esperados.
● 2.1 Administrac ão do ProcessoObjetivos do processo são identificados e sua execuc ão é planejada. Responsabilidades são atribu das, a infra-estrutura é fornecida e a comunicac ão entre os envolvidos é gerenciada.
● 2.2 Administrac ão do ProdutoProdutos do processo são identificados e documentados, requisitos para eles são definidos e revisões e ajustes são efetuados conforme necessário.
Atributos de Processo
● 3.1 Definic ãoUm processo padrão é definido para a organizac ão.
● 3.2 Implementac ãoOs elementos identificados em 3.1 são postos em prática.
● 4.1 Medic ãoEstabelecem-se objetivos quantitativos, bem como as medic ões a serem realizadas e a frequ e ncia de sua aplicac ão. Os resultados são coletados, analisados e publicados na organizac ão.
● 4.2 ControleEstabelecem-se limites de variac ão para as medidas e ac ões corretivas para tratar as causas de desvios em relac ão a esses limites.
Atributos de Processo
● 5.1 Inovac ãoObjetivos de melhoria são estabelecidos. Oportunidades de melhoria são identificadas
● 5.2 Otimizac ãoO desempenho do processo é medido e o impacto das melhorias propostas é comparado com os objetivos esperados. A implementac ão de mudanc as é gerenciada.í
Mecanismos de Pontuação
• Verificac ão do grau de satisfac ão (avaliação) dos atributos de processo
• Escala ordenada de quatro valores, escolhidos de acordo com um percentual de atendimento aos requisitos do atributo de processo.
Mecanismos de Pontuação
NNão atingido
0 - 15% Há pouca ou nenhuma evide ncia de que o atributo foi satisfeito
PParcialmente atingido
16 - 50% Há evide ncias de uma prática sistemática no sentido da satisfac ão do atributo. Entretanto alguns aspectos do atendimento podem ser imprevis veis.
LLargamente atingido
51 - 85% Há evide ncias de uma prática sistemática no sentido da satisfac ão do atributo. Alguns pontos fracos relacionados ao atributo podem ser encontrados.
TTotalmente atingido
86 - 100% Não há nenhuma falta ou falha significativa relacionada ao atributo
Níveis exigidos de capacidade de processo0 1 2 3 4 5
1.1 L ou T T T T T
2.1 L ou T T T T
2.2 L ou T T T T
3.1 L ou T T T
3.2 L ou T T T
4.1 L ou T T
4.2 L ou T T
5.1 L ou T
5.2 L ou T
Perfil de Capacidade
Uma das vantagens da ISO 15504 é a grande quantidade de formatos de apresentac ão dos resultados
CMMI por estágios fornece um único número para representar o n vel de maturidade dos processos da organizac ão
Exemplos de formatos de apresentac ão poss veis:
● Perfil de capacidade t pico para dois processos● Perfil de capacidade por projeto
ConclusãoThe awesome points you must know
about ISO/IEC 15504 after today
Don’t miss any of that for the test!
Conclusão
A ISO/IEC 15504 definiu os requisitos para o Método de Avaliação de Processos de forma detalhada, bem como uma maneira de avaliar os níveis de capacidade de processos.
Portanto ela é de extrema importância para organizações e para os clientes, que ganham confiança na qualidade das atividades desempenhadas na organização.
Questões
1- Dado que sabemos o ciclo de vida de um processo, queremos verificar a execução deste. Para tal, qual norma é necessário se aplicar? Neste caso simples, a 12207 resolve o problema?
2- Tendo em vista a separação em categorias da ISO 15504-5 classifique os seguintes processos segundo sua categoria, justificando brevemente:
Análise de requisitos de Sistema, Garantia da Qualidade, Avaliação do Produto e Treinamento de Funcionário.
Questões
3- No contexto dos níveis de capacidade, proponha uma maneira de comparar a maturidade entre dois grupos de processos de uma organização.
4- No contexto de treinamento em engenharia de software, considere o processo como a cadeira ministrada no IME. Classifique-a cada atributo de processo em níveis de capacidade e diga seu nível.
5- Imaginando o IME como uma organização dotada de processos, existem algum processo do Tipo 5? Exemplifique e justifique.Faça o mesmo para um processo do tipo 1.
Referências
1-<http://www.devmedia.com.br/ciclos-de-vida-do-software-artigo-revista-engenharia-de-software-magazine-36/21099> Acessado em <01/05/2016>
2- <http://blog.newtonpaiva.br/pos/wp-content/uploads/2013/04/PDF-E5-I19.pdf> Acessado em <01/05/2016>
3- <https://en.wikipedia.org/wiki/ISO/IEC_15504> Acessado em <01/05/2016>
4- <http://www.ic.unicamp.br/~cortes/inf326/transp/cap7.pdf> Acessado em <01/05/2016>