Você está na página 1de 12

Processo de Software

Uma importante contribuio da rea de pesquisa de processo de software tem sido a conscientizao de que o desenvolvimento de software um processo complexo. Pesquisadores e profissionais tm percebido que desenvolver software no est circunscrito somente criao de linguagens de programao e ferramentas efetivas. O desenvolvimento de software um processo coletivo, complexo e criativo. Sendo assim, a qualidade de um produto de software depende fortemente das pessoas, da organizao e de procedimentos utilizados para cri-lo e disponibiliz-lo (FUGGETTA, 2000). Dada a complexidade envolvida na definio de processos de software, no uma boa estratgia definir cada processo de projeto a partir do zero. Assim, apesar de cada projeto ter suas caractersticas prprias, possvel estabelecer conjuntos de elementos que devem estar presentes em todos os processos de uma organizao. Esses elementos em comum possibilitam a formao dos processos padro da organizao, que, por sua vez, podem ser especializados para determinadas classes de projetos dessa organizao. Processos padro e especializados podem, ento, ser instanciados em processos de projeto, em uma abordagem de definio de processos em nveis (ROCHA et al., 2001). Idealmente, os elementos de um processo de software devem ser definidos segundo normas e modelos de qualidade, objetivando obter processos de qualidade. Este texto visa a dar uma viso geral da rea de processos de software e est estruturado da seguinte forma: a seo 2.1 discute o que processo de software; a seo 2.2 apresenta os diferentes nveis de processo de software; e a seo 2.3 trata da qualidade de processo de software e apresenta sucintamente os principais modelos e normas de qualidade de processo de software.

2.1 O que Processo de Software


Um processo de software pode ser definido como um conjunto coerente de atividades, polticas, estruturas organizacionais, tecnologias, procedimentos e artefatos necessrios para conceber, desenvolver, dispor e manter um produto de software (FUGGETTA, 2000). Um processo eficaz deve, claramente, considerar as relaes entre as atividades, os artefatos produzidos no desenvolvimento, as ferramentas e os procedimentos necessrios e a habilidade, o treinamento e a motivao do pessoal envolvido (FALBO, 1998). A escolha de um modelo de ciclo de vida (ou modelo de processo) o ponto de partida para a definio de um processo de desenvolvimento de software. Um modelo de ciclo de vida organiza as macro-atividades bsicas, estabelecendo precedncia e dependncia entre as mesmas (FALBO, 1998). Processos de software definem o conjunto de atividades conduzidas no contexto do projeto, tais como anlise de requisitos, projeto, codificao, teste, instalao etc, os recursos (software, hardware e pessoas) necessrios e os procedimentos a serem adotados na realizao de cada uma das atividades. Sendo que essas atividades so compostas por outras atividades e podem se comunicar entre si e operam sobre artefatos de entrada para produzir artefatos de sada (FALBO, 1998) (GRUHN, 2002). Outra questo que envolve a elaborao de um processo de software a sua adequao ao domnio de aplicao e ao projeto. A cada projeto, o processo de software deve ser ajustado s especificidades da aplicao, tecnologia a ser utilizada na sua construo, grupo de desenvolvimento e usurios finais (FALBO, 1998).

2.2 Nveis de Processo de Software


Apesar de cada projeto ter suas caractersticas prprias, possvel estabelecer conjuntos de ativos de processo (sub-processos, atividades, sub-atividades, artefatos, recursos e procedimentos) comuns para toda a organizao. Esses conjuntos constituem os chamados processos padro de uma organizao. A partir deles, outros processos, ainda padro, podem ser especializados, levando-se em considerao caractersticas como tipos

de software, paradigmas ou domnios de aplicao. Finalmente, para cada projeto, pode-se instanciar um processo padro, especializado ou no, buscando atender s suas caractersticas prprias, definindo os chamados processos de projeto (ROCHA et al., 2001) (BERTOLLO et al., 2006). Esse modelo de definio de processos em nveis adotado no Laboratrio de Engenharia de Software (LabES) da UFES, como mostra a Figura 2.1. Os processos padro para o desenvolvimento e manuteno de software do LabES so definidos tomando por base modelos e normas de qualidade, principalmente as normas ISO/IEC 12207 (ISO/IEC, 1998) e IEEE 1219 (IEEE, 1998) e o modelo MPS.BR (SOFTEX, 2006).
Normas e Modelos de Qualidade, Cultura Organizacional
ISO/IEC 12207, IEEE 1219, MPS.BR

Definio

PPLabES

Tipo de Software, Domnio do Problema, Paradigma e Tecnologia de Desenvolvimento

Processo Padro

Especializao
PPELabES-OO Processo Especializado 1 PPELabES-Est Processo Especializado n

Particularidades do Projeto, Modelo de Ciclo de Vida (ou Modelo de Processo)


Processo de Projeto 1

Instanciao

Processo de Projeto m

Figura 2.1 Modelo para Definio de Processos em Nveis A partir deles so especializados outros processos padro de desenvolvimento e manuteno, tais como os Processos Especializados para o Desenvolvimento Orientado a Objetos (PPELabESOO) e para o Desenvolvimento segundo o Paradigma Estruturado (PPELabES-Est). Esses processos podem ser recursivamente especializados, criando outros nveis na hierarquia. Por exemplo, conforme discutido no captulo 4 deste trabalho, a partir dos processos especializados para desenvolvimento e manuteno orientados a objetos, foram definidos processos especializados para desenvolvimento e manuteno de Software Livre no LabES, considerando a heterogeneidade dos grupos de trabalho, caractersticas do

desenvolvimento de software com equipes geograficamente dispersas e prticas aplicadas a projetos de Software Livre bem sucedidos.

2.3 Qualidade de Processo de Software


Quando se produz um software, assim como qualquer outro produto, desejvel que o mesmo possua elevada qualidade, que seja produzido de forma otimizada e dentro dos prazos estabelecidos previamente. No desenvolvimento de software, uma das principais maneiras de se garantir tais caractersticas para o produto final atravs de um processo de software de qualidade. Ou seja, se um produto de software foi desenvolvido seguindo um processo de qualidade, as chances do mesmo ser um produto de qualidade so maiores. Alm disso, para que a organizao que produz software tenha sua qualidade reconhecida em todo o mundo, seus processos devem respeitar padres de qualidade definidos pela comunidade de software. Desde a dcada de 1980, iniciaram-se esforos para melhoria de processos de software, com o objetivo de melhorar a qualidade, aumentar a produtividade e diminuir os custos. Diferentes modelos so utilizados dependendo do mercado alvo das organizaes de software (ROCHA et al., 2001). As principais normas e modelos de qualidade difundidos atualmente so: ISO 9000 (ISO, 2000), ISO/IEC 12207 (ISO/IEC, 2008), ISO/IEC 15504 (ISO/IEC, 2003), CMMI (SEI, 2006) e MPS.BR (SOFTEX, 2007), sucintamente apresentados na seqncia.

2.3.1 ISO 9000:2000 As normas da famlia NBR ISO 9000:2000 (ISO, 2000) foram desenvolvidas para apoiar organizaes de todos os tipos e tamanhos (no s as de software), na implementao e operao de sistemas de gesto da qualidade eficazes. A norma ISO 9000 descreve os fundamentos de sistemas de gesto da qualidade, que constituem o objeto da famlia NBR ISO 9000, e define os termos a ela relacionados (ISO, 2000).

A famlia NBR ISO 9000 composta de uma srie de normas, sendo a ISO 9001 a mais completa, abrangendo todo o ciclo de vida de um produto ou servio, cobrindo os requisitos para a garantia da qualidade em projetos, desenvolvimento, produo, instalao e servios associados (MUTAFELIJA et al., 2003). A ISO 9000:2000 baseada em um conjunto de princpios de gerenciamento de qualidade, definidos a partir da experincia de vrias organizaes (ISO, 2000): Princpio 1 - Foco no cliente: Dado que as organizaes dependem de seus clientes, recomendvel que atendam s suas necessidade atuais e futuras e aos seus requisitos e procurem exceder as suas expectativas. Princpio 2 - Liderana: Lderes estabelecem a unidade de propsito e o rumo da organizao. Convm que criem e mantenham um ambiente onde as pessoas estejam totalmente envolvidas no propsito de atingir os objetivos da organizao. Princpio 3 - Envolvimento de pessoas: Pessoas de todos os nveis so a essncia de uma organizao. Seu envolvimento possibilita o aproveitamento de suas habilidades por toda a organizao. Princpio 4 - Abordagem de processo: Um resultado desejado alcanado mais eficientemente quando suas atividades e recursos so gerenciados como um processo. Princpio 5 - Abordagem sistmica para a gesto: Identificar, entender e gerenciar os processos inter-relacionados como um sistema contribui para a eficcia e eficincia da organizao no sentido desta atingir os seus objetivos. Princpio 6 - Melhoria contnua: Convm que a melhoria contnua do desempenho global da organizao seja seu objetivo permanente. Princpio 7 - Abordagem factual para tomada de deciso: Decises eficazes so baseadas na anlise de dados e informaes. Princpio 8 - Benefcios mtuos nas relaes com os fornecedores: Pelo fato de organizao e fornecedores serem interdependentes, uma relao de benefcios mtuos aumenta a capacidade de ambos em agregar valor.

Para que as organizaes funcionem de forma eficaz, elas tm que identificar e gerenciar processos inter-relacionados e interativos. Freqentemente, a sada de um processo resultar diretamente na entrada do processo seguinte. A identificao sistemtica e a gesto dos processos empregados na organizao e, particularmente, as interaes entre tais processos so conhecidos como abordagem de processos. Assim, a inteno desta norma encorajar a adoo da abordagem de processo para a gerncia da qualidade em uma organizao (ISO, 2000).

2.3.2 ISO/IEC 12207

Ver na Norma ISO/IEC 12207:2008 as seguintes sees: Seo 1 (pgs 1 e 2) Seo 5 (pgs 9 a 18)

2.3.3 ISO/IEC 15504

A norma internacional ISO/IEC 15504 (ISO/IEC, 2003) estabelece uma estrutura para a avaliao de processos. Essa estrutura pode ser usada por organizaes envolvidas com planejamento, dessa norma: ajudar organizaes a compreender o estado de seus prprios processos com vistas melhoria; ajudar organizaes a determinar a adequao de seus processos para um requisito particular ou classe de requisitos; ajudar organizaes a determinar a adequao de processos de uma outra organizao para um contrato particular ou classe de contratos. gerenciamento, monitorao, controle e melhoria de aquisio, fornecimento, desenvolvimento, operao, evoluo e suporte de software. So propsitos

A norma consiste das seguintes partes, sob o ttulo geral Tecnologia de Informao Avaliao de Processo de Software (ISO/IEC, 2003): Parte 1: Conceitos e vocabulrio (informativo): prov uma introduo geral aos conceitos de avaliao de processos e um glossrio de termos relacionados a avaliao. Parte 2: Realizando uma avaliao (normativa): define os requisitos mnimos para a realizao de uma avaliao. Um modelo de referncia para processos e capacidade de processos Parte 3: Guia para a realizao de avaliaes (informativa): prov orientaes para interpretar os requisitos para a realizao de uma avaliao. Parte 4: Guia para uso na melhoria de processo e na determinao da capacidade de processo (informativa): identifica a avaliao de processo como uma atividade que pode ser realizada tanto como parte de uma iniciativa de melhoria de processo quanto parte de uma abordagem de determinao da capacidade. Parte 5: Um Exemplo de modelo de avaliao de processo baseado na ISO/IEC 12207 e suas Emendas 1 e 2 (informativa): contm um exemplo de modelo de avaliao de processo que baseado no modelo de processo de referncia definido na ISO/IEC 12207. A parte 5 da norma ISO/IEC 15504 desperta maior interesse para os interessados na definio de processo, por oferecer um modelo de referncia disposto a guiar a definio de um processo de software de qualidade. De fato, o objetivo dessa parte da ISO/IEC 15504 definir um exemplo de um Modelo de Avaliao de Processo que satisfaz os requisitos da ISO/IEC 15504-2 e que apia a realizao de uma avaliao, provendo indicadores para guiar a interpretao dos propsitos de processo, conforme definidos na ISO/IEC 12207, e dos atributos de processo definidos ISO/IEC 15504-2. O Modelo de Avaliao de Processo nesta parte da ISO/IEC 15504 dirigido a patrocinadores de avaliaes e avaliadores competentes que desejem escolher um modelo para avaliao, seja para determinao da capacidade seja para melhoria de processo.

Adicionalmente, esse modelo pode ser til para os desenvolvedores de modelos de avaliao, provendo exemplos de boas prticas de gerncia e engenharia de software.

2.3.4 CMMI O projeto CMMI (Capability Maturity Model Integration) (SEI, 2006) foi concebido para solucionar o problema do uso de mltiplos modelos de maturidade de capacitao, tendo como foco trs modelos principais: SW-CMM (Capability Maturity Model for Software), SECM (System Engineering Capability Model) e IPD-CMM (Integrated Product Development Capability Maturity Model) (CHRISSIS et al., 2003). um projeto patrocinado pelo Departamento de Defesa Americano, em conjunto com a indstria, por meio do Comit de Engenharia de Sistemas na Associao Industrial de Defesa Nacional, e o Instituto de Engenharia de Software (Software Engineering Institute SEI). O projeto CMMI envolveu um grande nmero de pessoas de diferentes organizaes de todo o mundo, interessadas nos benefcios do desenvolvimento de uma estrutura integrada em prol da melhoria de processos. Apesar de prover um novo modelo, o CMMI procura preservar ao mximo os investimentos feitos em melhoria de processos baseadas no SW-CMM. O objetivo do CMMI fornecer direcionamentos para melhorar os processos de uma organizao e sua capacidade de gerenciar o desenvolvimento, aquisio e manuteno de produtos e servios. O CMMI prov abordagens comprovadas em uma estrutura que ajuda organizaes a avaliar sua maturidade ou capacidade em determinada rea de processo, estabelecer prioridades para melhoria e implementar essas melhorias. bom lembrar que o CMMI direcionado para a melhoria de processos de organizaes de qualquer tipo. Alm disso, como outros modelos de maturidade de capacitao, os modelos do CMMI fornecem orientaes a serem utilizadas no desenvolvimento de processos. Ou seja, esses modelos no so processos ou descries de processos. Os processos reais utilizados em uma organizao dependem de vrios fatores, incluindo domnio de aplicao e tamanho e estrutura da organizao. Assim, normalmente, as reas de processo do modelo CMMI no podem ser mapeadas uma a uma em processos utilizados em uma organizao (SEI, 2006).

O CMMI tem duas representaes: em estgio e contnua. Ambas as representaes contm reas de processo comuns. Porm, na representao em estgio, as reas de processo esto agrupadas em nveis de maturidade e na representao contnua, a mesma rea de processo est dividida em categorias. A representao contnua permite selecionar a seqncia de melhorias que melhor atende aos objetivos de negcio e reduz as reas de risco da organizao. Tambm permite comparaes entre organizaes em uma rea de processo pela comparao de resultados utilizando estgios equivalentes (SEI, 2006). A representao em estgios oferece uma seqncia comprovada de melhorias, comeando com prticas bsicas de gerncia e progredindo por um caminho pr-definido e comprovado de nveis sucessivos, cada um servindo de base para o prximo. Alm disso, permite comparaes entre organizaes pelo uso de nveis de maturidade (SEI, 2006). Mesmo no sendo objetivo principal da representao contnua a classificao em um determinado nvel de maturidade, e sim o desenvolvimento de determinadas reas de processos, um determinado nvel de maturidade pode ser atingido por quem usa a representao contnua, se todas as reas de processo relevantes para tal nvel tiverem atingido a capacidade mnima para o nvel de maturidade. Os componentes do Modelo CMMI incluem nveis de maturidade (Maturity Levels), reas de processo (Process Areas - PAs), metas genricas (Generic Goals - GG), metas especficas (Specific Goals - SG), prticas genricas (Generic Practices - GP) e prticas especficas (Specific Practices - SP), como ilustra a Figura 2.4. Uma rea de processo um grupo de prticas relacionadas em uma rea que, quando executadas de forma coletiva, satisfazem um conjunto de metas consideradas importantes para trazer uma melhoria significativa naquela rea. As reas de processos do CMMI so as mesmas para ambas as representaes (contnua e em estgios). Na representao em estgios, as reas de processo esto organizadas por nveis de maturidade. As metas especficas se aplicam a uma rea de processo e contemplam caractersticas nicas que descrevem o que deve ser implementado para satisfazer tal rea. Metas especficas so componentes exigidos do modelo e so utilizadas nas avaliaes para auxiliar a determinar se a rea de processo est sendo satisfeita.

Prticas especficas so atividades consideradas importantes na satisfao de suas metas especficas associadas. Descrevem atividades focadas no atendimento de metas especficas de uma rea de processo. As prticas especficas so componentes esperados do modelo. As metas genricas so chamadas de genricas, pois a mesma declarao de meta encontrada em diversas reas de processos. Na representao em estgios, cada rea de processo tem somente uma meta genrica. A satisfao de uma meta genrica em uma rea de processo significa um controle melhorado do planejamento e implementao dos processos associados com aquela rea de processo, indicando, portanto, se esses processos parecem ser eficientes, repetveis e durveis. As metas genricas so componentes exigidos do modelo e so utilizadas em avaliaes para determinar a satisfao de uma rea de processo. As prticas genricas oferecem uma institucionalizao que garante que os processos associados com a rea de processo em questo sero eficientes, repetveis e durveis. As prticas genricas so categorizadas pelas metas genricas e caractersticas comuns e so componentes esperados em modelos CMMI.
Nveis deLevels Maturidade Maturity

Process rea de Processo Area 1 1

Process rea de Processo Area 2 2

Process rea de Processo Area n n

Specific Metas Especficas Goals

Generic Metas Genricas Goals

Caractersticas Comuns Commitment Compromisso to Perform Specific Prticas Practices Especficas Ability Habilitao to Perform Directing Implementao Implementation Implementation Verifying da Verificao Implementao Implementation

Generic Practices Prticas Genricas

Figura 2.4 Componentes do Modelo CMMI.

O nvel de maturidade de uma organizao uma maneira de prever o futuro desempenho da mesma dentro de dada disciplina ou conjunto delas. A experincia mostra que as organizaes funcionam melhor quando concentram seus esforos de melhoria de processos em um nmero controlado de reas de processos que exigem esforo cada vez mais sofisticado medida que a organizao melhora. Cada nvel de maturidade, alm de representar uma etapa evolucionria definida da melhoria de processos, estabiliza uma parte importante dos processos da organizao. Nos modelos CMMI com representao em estgios, existem cinco nveis de maturidade, cada um representando uma camada da base da melhoria de processos, definidos pelos nmeros de 1 a 5. A Tabela 2.1 apresenta as reas de processo do CMMI para Desenvolvimento, organizados em nveis de maturidade. Tabela 2.1 Nveis de Maturidade e reas de Processos do CMMI-Dev. Nvel 5 (mais alto) 4 rea de Processo Inovao Organizacional Anlise de Causas e Resoluo de Problemas Desempenho do Processo Organizacional Gerncia Quantitativa de Projeto Anlise de Deciso Gerncia de Riscos Gerncia Integrada de Projeto Treinamento Organizacional Definio do Processo Organizacional Foco no Processo Organizacional Validao Verificao Integrao de Produto Soluo Tcnica Desenvolvimento de Requisitos Medio e Anlise Gerncia de Configurao Garantia da Qualidade de Processo e Produto Gerncia de Acordo com Fornecedores Monitoramento e Controle de Projeto Planejamento de Projeto Gerncia de Requisitos

2.3.5 MPS.BR Ver no Guia Geral do MPS.BR as seguintes sees: Seo 2 (pgs 5 e 6) Seo 3 (pg 7) Seo 6 (pgs 12 e 13) Seo 7 (pgs 14 e 15) Seo 8 (pgs 15, 16 (apenas dois primeiros pargrafos) e 21).

Você também pode gostar