Você está na página 1de 12

ISO/IEC 15504 (SPICE)

A ISO/IEC 15504, tambm conhecida como SPICE, a norma ISO/IEC que define processo de desenvolvimento de software. Ela uma evoluo da ISO/IEC 12207 mas possui nveis de capacidade para cada processo assim como o CMMI. Em outubro de 2003, a Norma ISO/IEC 15504 para a avaliao de processos de software foi oficialmente publicada pela ISO. A Norma ISO/IEC 15504 define um modelo bi-dimensional que tem por objetivo a realizao de avaliaes de processos de software com o foco da melhoria dos processos (gerando um perfil dos processos, identificando os pontos fracos e fortes, que sero utilizados para a elaborao de um plano de melhorias) e a determinao da capacidade dos processos viabilizando a avaliao de um fornecedor em potencial. Esta norma est sendo desenvolvida desde 1993 pela ISO em conjunto com a comunidade internacional atravs do projeto SPICE (Software Process Improvement and Capability Determination) com base nos modelos j existentes como ISO 9000 e CMM. Segundo a norma, uma avaliao de processo de software uma investigao e anlise disciplinada de processos selecionados de uma unidade organizacional em relao a um modelo de avaliao de processo. A ISO/IEC 15504 define um modelo de referncia de processo que identifica e descreve um conjunto de processos considerados universais e fundamentais para a boa prtica da engenharia de software, e define seis nveis de capacidade, seqenciais e cumulativos que podem ser utilizados como uma mtrica para avaliar como uma organizao est realizando um determinado processo e tambm podem ser utilizados como um guia para a melhoria. A ISO/IEC 15504 define tambm um guia para a orientao da melhoria de processo, tendo como referncia um modelo de processo e como uma das etapas a realizao de uma avaliao de processo. Este guia sugere 8 etapas seqenciais, que inicia com a identificao de estmulos para a melhoria e o exame das necessidades da organizao. Em seguida existem ciclos de melhoria, nos quais um conjunto de melhoria so identificadas, uma avaliao das prticas correntes em relao melhoria realizada, um planejamento da melhoria feito, seguido pela implementao, confirmao,manuteno e acompanhamento da melhoria. Modelo de referncia SPICE O SPICE inclui um modelo de referncia, que serve de base para o processo de avaliao.Este modelo define duas dimenses:

Dimenso de Processo:

Corresponde definio de um conjunto de processos considerados universais e fundamentais para a boa prtica da engenharia de software; Atualmente, um modelo de referncia de processo no domnio de software a ISO 12207;

Dimenso de Capacidade:

Um modelo de avaliao, baseado na ISO 12207, o definido na ISO 15504; Neste ltimo, os processos so agrupados em cinco grandes categorias de processo:

Cliente-Fornecedor; Engenharia; Suporte; Gerncia; Organizao.

Dimenso de Processo A ISO/IEC 12207 a norma desenvolvimento de software. ISO/IEC que define processo de

A norma internacional ISO/IEC 12207 [1] tem como objetivo principal estabelecer uma estrutura comum para os processos de ciclo de vida e de desenvolvimento de softwares visando ajudar as organizaes a compreenderem todos os componentes presentes na aquisio e fornecimento de software e, assim, conseguirem firmar contratos e executarem projetos de forma mais eficaz. Um processo uma seqncia de passos realizados para um determinado propsito [IEEE 610.12, 1690]; o processo de software envolve mtodos, tcnicas, ferramentas e pessoas. Um processo pode ser descrito de duas formas: por propsito ou resultado e por atividade. A descrio por propsito ou resultado utilizada quando no h necessidade de detalhar o processo, apenas indicar o objetivo e o resultado. Essa abordagem poder ser utilizada na avaliao do processo em relao aos modelos de maturidade de software como, por exemplo, o modelo CMMI e o modelo da ISO/IEC 15504. A descrio por atividade a abordagem mais conhecida e intuitiva. Nela so descritas as atividades com as inter-relaes e o algoritmo de execuo de cada atividade. As atividades devem atingir o propsito do processo. Para isso deve adotar as premissas:

Que procedimentos e mtodos sero usados para a execuo das atividades; Que ferramentas e equipamentos suportaro a realizao das atividades, de forma a simplificar e automatizar o trabalho; Qual o perfil adequado de quem ir executar as atividades e qual o treinamento requerido nos procedimentos, mtodos, ferramentas para que se possam realizar as atividades de forma adequada; Quais as mtricas de processo que podero ser empregadas para que a execuo do processo possa ter a qualidade avaliada.

A norma ISO/IEC 12207 estabelece uma arquitetura de alto nvel do ciclo de vida de software que construda a partir de um conjunto de processos e seus inter-relacionamentos. Os processos so descritos tanto em nvel de propsito/sadas como em termos de atividades. A ISO/IEC 12207 no possui nenhuma ligao com mtodos, ferramentas, treinamentos, mtricas ou tecnologias empregadas. Esta determinao til para permitir que a norma seja utilizada mundialmente e possa acompanhar a evoluo da engenharia de software nas diversas culturas organizacionais. Ela pode ser utilizada com qualquer modelo de ciclo de vida, mtodo ou tcnica de engenharia de software e linguagem de programao. Sua flexibilidade uma caracterstica importante, as atividades e tarefas do processo de ciclo de vida do software especificam "o que fazer" e no "como fazer". Os processos da ISO/IEC 12207 so modulares, ou seja, so fortemente coesos e fracamente acoplados. Isto significa que todas as partes de um processo so fortemente relacionadas, mas a quantidade de interfaces entre os processos mnima. As regras listadas a seguir so importantes para identificao, escopo e estruturao dos processos e devem ser seguidas.

Um processo deve ser modular, isto , convm que um processo execute uma e somente uma funo dentro do ciclo de vida e conveniente que as interfaces entre dois processos quaisquer sejam mnimas; Cada processo invocado na arquitetura; Se um processo A invocado por um processo B e somente por ele, ento A pertence a B; Se uma funo invocada por mais de um processo, ento esta funo torna-se um processo; Deve ser possvel verificar qualquer funo dentro do modelo de ciclo de vida; Convm que cada processo tenha uma estrutura interna suficientemente definida para que possa ser executvel.

Estrutura

Os processos na ISO/IEC 12207 so de responsabilidade de uma organizao, mas no so exclusivos desta, ou seja, uma organizao pode executar um ou mais processos e um processo pode ser executado por uma ou mais organizaes. Neste caso, uma das organizaes ser a responsvel pelo processo total, mesmo que tarefas individuais sejam realizadas por pessoas diferentes. Os processos so agrupados, por uma questo de organizao, de acordo com a sua natureza, ou seja, o seu objetivo principal no ciclo de vida de software. Esse agrupamento resultou em 4 diferentes classes de processos, que so:

Processos fundamentais; Processo de apoio; Processos organizacionais; Processos de adaptao.

Processos fundamentais Os processos fundamentais so necessrios para que um software seja executado. Eles iniciam o ciclo de vida e comandam outros processos. So eles:

Aquisio: possui o propsito de obter o produto e/ou servio que satisfaa suas necessidades; Fornecimento: possui o propsito de prover um produto e/ou servio; Desenvolvimento: possui o propsito de transformar um conjunto de requisitos em um produto ou sistema de software; Operao: possui o propsito de operar o produto no seu ambiente e prover suporte aos usurios; Manuteno: possui o propsito de modificar o produto de software e depois dar liberao para o uso.

Processos de apoio Os processos de apoio auxiliam outro processo. Eles so usados para garantir a qualidade, mas no so fundamentais. So eles:

Documentao: possui o propsito de prover, manter um registro de informaes de software; Gerncia de configurao: possui o propsito de estabelecer e manter a integridade de todos os produtos de trabalho (artefato) de um processo do projeto; Garantia da qualidade: possui o propsito de prover garantia de que os produtos e processos esto em conformidade com o requisitos (padres/normas) pr-definidos; Verificao: possui o propsito de confirmar que os produtos e/ou servios refletem os requisitos especificados; Validao: possui o propsito de confirmar que os requisitos para o uso especfico de um produto e/ou servio so atendidos;

Reviso conjunta: possui o propsito de manter o entendimento (gerencial comum com os stakeholders); Auditoria: possui o propsito de determinar independentemente a conformidade dos produtos e processos contra os requisitos definidos; Resoluo de problema: possui o propsito de assegurar que todos os problemas levantados sejam analisados e resolvidos; Usabilidade; Contrato.

Processos organizacionais Os processos organizacionais auxiliam a organizao e gerncia geral dos processos e podem ser empregados fora do domnio de projetos e contratos especficos, servindo para toda a organizao. So eles:

Gerncia: possui o propsito de organizar, monitorar e controlar a iniciao e o desempenho dos processos; Infra-estrutura: possui o propsito de manter uma infra-estrutura estvel e confivel; Melhoria: possui o propsito de estabelecer, avaliar, controlar e melhorar um processo de ciclo de vida de software; Recursos humanos: possui o propsito de prover e manter recursos humanos adequados mantendo as suas capacitaes consistentes com o negcio; Gesto de ativos: possui o propsito de gerenciar a vida dos ativos (reusveis) desde a concepo at a desativao; Gesto de programa de reuso: possui o propsito de planejar, estabelecer, controlar, monitorar os programas de reuso; Engenharia de domnio: possui o propsito de desenvolver e manter modelos de domnio, arquiteturas e ativos deste domnio.

Processos de adaptao Os processos so adaptveis a:


Projeto; Organizao; Cultura; Modelo de ciclo de vida, mtodos e tcnicas, e linguagens.

Atividades do desenvolvimento Algumas atividades importantes para o desenvolvimento de software sero descritas a seguir. So elas:

Implementao; Levantamento de requisitos; Anlise dos requisitos do software; Projeto da arquitetura do software;

Projeto detalhado do software; Codificao e testes do software; Integrao do software; Teste de qualificao do software; Instalao do software; Testagem e aprovao do software

Elas foram descritas com base na norma ISO/IEC 12207. Implementao A implementao consiste na definio ou seleo de um modelo de ciclo de vida de software apropriado ao escopo, magnitude e complexidade do projeto e na execuo de documentao dos resultados, de acordo com o processo de documentao; colocao dos resultados sob o processo de gerncia de configurao; execuo do controle de alteraes, de acordo com ele; documentao e resoluo de no-conformidades e problemas encontrados nos produtos de software e tarefas, de acordo com o processo de resoluo de problema; execuo dos processos de apoio, conforme especificado no contrato; seleo, adaptao e utilizao de padres, mtodos, ferramentas e linguagens de programao de computador; desenvolvimento dos planos para conduzir as atividades do processo de desenvolvimento. Levantamento dos requisitos O levantamento dos requisitos consiste em entender os requisitos e solicitaes do sistema; obter e definir os requisitos e solicitaes do cliente atravs de sua solicitao direta ou atravs de outras entradas como reviso da proposta de negcio, objetivos operacionais, ambiente de hardware e outros documentos. imprescindvel entender as expectativas do cliente e assegurar que tanto o cliente quanto o fornecedor entendam os requisitos da mesma forma. Isso pode ser feito atravs do processo de apoio "Reviso Conjunta" descrito na norma ISO/IEC 12207. necessrio acordar os requisitos e obter um acordo entre as equipes que iro desenvolver o trabalho em relao aos requisitos do cliente. importante gerenciar todas as mudanas feitas nos requisitos do cliente em relao linha-bsica definida assegurando que o resultado de mudanas tecnolgicas e de necessidades do cliente so identificados e os impactos de introduo dessas mudanas so avaliados. Anlise dos requisitos do sistema Aps o levantamento, segue para a especificao dos requisitos do sistema. Esta especificao deve descrever:

Funes e capacidades do sistema; Requisitos de negcio, organizacionais e de usurios; Requisitos de proteo, de segurana, de engenharia de fatores humanos (ergonomia), de interface, de operaes e de manuteno; Restries de projeto e requisitos de qualificao.

Os requisitos precisam ser avaliados. Por isso, para formalizar e facilitar a avaliao, os critrios listados a seguir devem ser seguidos:

Rastreabilidade com os requisitos do cliente e necessidades de aquisio; Consistncia com as necessidades de aquisio e com o levantamento dos requisitos; Testabilidade; Viabilidade do projeto da arquitetura do sistema; Viabilidade da operao e manuteno.

Aps a avaliao importante estabelecer mecanismos de comunicao para disseminar os requisitos do sistema e suas atualizaes para todas as partes interessadas. Projeto da arquitetura do sistema Com os requisitos elaborados e validados, pode-se estabelecer uma arquitetura de alto nvel para o sistema. A arquitetura deve identificar itens de hardware, software e operaes manuais. Aps a arquitetura ser estabelecida, necessrio avali-la, considerando os critrios listados a seguir:

Rastreabilidade para os requisitos do sistema; Consistncia com os requisitos do sistema; Adequao dos mtodos e padres de projeto utilizados; Viabilidade dos itens de software atenderem seus requisitos alocados; Viabilidade da operao e da manuteno.

Anlise dos requisitos do software Para garantir a qualidade do produto entregue, as caractersticas de qualidade descritas a seguir devem ser observadas nos requisitos de software:

Especificaes funcionais e de capacidade, incluindo desempenho, caractersticas fsicas e condies do ambiente sob o qual o item de software ser executado; Interfaces externas ao item de software; Requisitos de qualificao; Especificaes de proteo, incluindo aquelas relacionadas aos mtodos de operao e manuteno, influncias do ambiente e danos pessoais;

Especificaes de segurana, incluindo aquelas relacionadas com o comprometimento de informaes sigilosas; Especificaes de engenharia de fatores humanos (ergonomia), incluindo aquelas relacionadas com operaes manuais, interaes entre homem-mquina, restries a pessoal e reas que necessitam de maior ateno humana, que so sensveis a erros humanos e treinamento; Definio de dados e requisitos de bases de dados; Requisitos de instalao e aceitao do produto de software entregue nos locais de operao e manuteno; Documentao do usurio; Requisitos do usurio para execuo e operao; Requisitos do usurio para manuteno.

Aps a anlise de requisitos de software necessrio fazer a avaliao desses requisitos considerando os critrios listados a seguir:

Rastreabilidade para os requisitos do sistema e projeto do sistema; Consistncia externa com os requisitos do sistema; Consistncia interna; Testabilidade; Viabilidade do projeto do software; Viabilidade da operao e manuteno.

Pode-se conduzir uma ou mais revises conjuntas e estabelecer as baselines. Projeto da arquitetura do software O projeto de arquitetura de software busca transformar os requisitos em uma arquitetura que descreve sua estrutura de alto nvel e identifica os componentes de software. As verses preliminares da documentao do usurio, dos requisitos preliminares e de testes devem ser garantidas e documentadas. O cronograma para a Integrao do Software deve ser criado. A avaliao da arquitetura do item de software e os projetos de interface e base de dados, considerando os critrios listados a seguir:

Rastreabilidade para os requisitos do item de software; Consistncia externa com os requisitos do item de software; Consistncia interna entre os componentes de software; Adequao dos mtodos e padres de projeto utilizados; Viabilidade do projeto detalhado; Viabilidade da operao e manuteno.

Pode-se conduzir uma ou mais revises conjuntas e estabelecer as baselines.

Projeto detalhado do software Aps o projeto de arquitetura, desenvolve-se um projeto detalhado de software para cada componente do software. Os componentes de software devem ser refinados em nveis mais baixos, contendo unidades de software que possam ser codificadas, compiladas e testadas. O projeto detalhado das interfaces deve permitir a codificao sem a necessidade de informao adicional. Durante o detalhamento de software, se for necessrio, deve ser feita a atualizao da documentao do usurio. importante definir e documentar os requisitos de teste e o cronograma para testar unidades de software. Aps detalhamento do projeto de software necessrio fazer a avaliao deste detalhamento, considerando os critrios listados a seguir:

Rastreabilidade para os requisitos do item de software; Consistncia externa com o projeto da arquitetura; Consistncia interna entre os componentes e unidades de software; Adequao dos mtodos e padres de projeto utilizados; Viabilidade dos testes; Viabilidade da operao e manuteno.

Pode-se conduzir uma ou mais revises conjuntas e estabelecer as baselines. Codificao e testes do software Para, finalmente, executar a codificao e os testes necessrio desenvolver e documentar cada unidade de software com base em procedimentos a serem definidos. Os testes devem garantir que os requisitos documentados sejam atendidos. Os resultados dos testes devem ser documentados. Durante esta fase, a atualizao e documentao do usurio pode ser feita, se necessrio. Aps a codificao e testes importante fazer a avaliao do cdigo do software e dos resultados dos testes, considerando os critrios listados a seguir:

Rastreabilidade para os requisitos e projeto do item de software; Consistncia externa com os requisitos e projeto do item de software; Consistncia interna entre os requisitos da unidade; Cobertura de teste das unidades; Adequao dos mtodos e padres de codificao utilizados; Viabilidade da integrao e testes do software; Viabilidade da operao e manuteno.

Os resultados das avaliaes devem ser documentados.

Integrao do software Para poder homologar o sistema necessrio desenvolver um plano de integrao para integrar as unidades e componentes de software. O plano deve incluir requisitos de teste, procedimentos, dados, responsabilidades e cronograma. Deve-se testar essas agregaes medida que forem sendo integradas, de acordo com o plano de integrao. Durante esta fase, a atualizao e documentao do usurio pode ser feita, se necessrio. Aps a codificao e testes importante fazer a avaliao do plano de integrao, projeto, cdigo, testes, resultados dos testes e a documentao do usurio, considerando os critrios listados:

Rastreabilidade para os requisitos do sistema; Consistncia externa com os requisitos do sistema; Consistncia interna; Cobertura de teste dos requisitos do item de software; Adequao dos mtodos e padres de teste utilizados; Conformidade com os resultados esperados; Viabilidade do teste de qualificao do software; Viabilidade da operao e manuteno.

Pode-se conduzir uma ou mais revises conjuntas e estabelecer as baselines. Teste de Qualificao do software Deve-se desenvolver e documentar os requisitos de qualificao de software e elaborar casos de teste( entradas, sadas e critrios de teste) e procedimentos de teste para conduzir o Teste de Qualificao do Software de acordo com os requisitos de qualificao para o item de software. Aps a codificao e testes importante fazer a avaliao do projeto, cdigos, testes, resultados dos testes e a documentao dos usurios, considerando os critrios listados a seguir: Cobertura de teste dos requisitos do item de software; Conformidade com os resultados esperados; Viabilidade da integrao e testes do sistema, se conduzidos; Viabilidade da operao e manuteno. importante estar preparado para dar apoio s auditorias. (tenso...) Integrao do sistema A integrao do sistema faz-se a partir da integrao dos itens de configurao de software ao sistema. Aps a integrao deve-se conduzir ao teste de qualificao do sistema. Aps a codificao e testes importante fazer a avaliao do sistema, considerando os critrios listados a seguir:

Cobertura de teste dos requisitos do sistema; Adequao dos mtodos e padres de teste utilizados; Conformidade com os resultados esperados; Viabilidade do teste de qualificao do sistema; Viabilidade da operao e manuteno.

Teste de qualificao do sistema Para garantir a qualidade do produto entregue importante conduzir o teste de qualificao do sistema e fazer a avaliao do sistema, considerando os critrios listados a seguir:

Cobertura de teste dos requisitos do sistema; Conformidade com os resultados esperados; Viabilidade da operao e manuteno.

importante estar preparado para dar apoio s auditorias. Instalao do software Na instalao do software deve-se executar um plano para instalar o produto de software no ambiente alvo, conforme designado no contrato. Deve ser assegurado que o cdigo do software e as bases de dados sejam iniciados, executados e finalizados, conforme especificado no contrato. Os eventos e resultados da instalao devem ser documentados. Apoio aceitao do software No apoio aceitao do software preciso garantir o apoio reviso de aceitao do adquirente e testes do produto de software. A reviso de aceitao e testes deve considerar os resultados de Revises Conjuntas, Auditorias, Teste de Qualificao do Software e Teste de Qualificao do Sistema (se executado). Concluso e entrega do produto de software deve ser feita, conforme especificado no contrato e o desenvolvedor deve prover treinamento inicial e contnuo e suporte ao adquirente, conforme especificado no contrato. Dimenso de Capacidade Estabelece uma escala de capabilidade de processo para processos em geral Escala de seis nveis crescentes desde o nvel inferior, o nvel 0, incompleto, at o nvel superior, o nvel 5, em otimizao No CMM: cada nvel tm implcito um conjunto de reas de processos chave

No SPICE: qualquer processo pode estar em qualquer nvel de capabilidade escala de 6 nveis crescentes define um roteiro claro para orientar a melhoria de um dado processo baseada em um conjunto de atributos de processo (Process Attributes PA) que so usados para se determinar se um processo alcanou um determinado nvel Cada atributo mede um aspecto particular da capabilidade de um processo Cada nvel tem associado um conjunto de atributos de processo que devem ser atendidos O atendimento aos atributos pode ser medido em uma escala percentual fornece uma viso mais detalhada de aspectos especficos da capabilidade de um processo