INTERFACE nscrvor.Óarca - z›.¡ - ar - 2004
A MELHORIA DA QUALIDADE DE SOFTWARE:UM ENFOQUE AO MODELO SEI-SW-CMM NIVEL 2
Angelita Moutln Segoria GASPAROTTO' Gilberto Alexandre ROCHA"
RESUMO
O presente artigo apresenta a estrutura do Modelo SEI-SW-CMM NÍVEL 2, cujo objetivo é avaliar a maturidade das empresas desenvolvedoras de software e propor melhorias para este processo.
PALAVRAS-CHAVE: Melhoria de software. Qualidade. Processos. CMM.
INTRODUÇÃO
O movimento pela qualidade - dos artesãos ao Desdobramento da Função Qualidade - deve ser entendido como um conjunto de fatos e ações, acumulado ao longo do tempo, o qual levou à preocupação pela qualidade nos dias atuais. A transfomiação dos mercados desencadeou um processo em que as empresas concennam esforços pela excelência em qualidade. Nesse contexto, as empresas buscam modelos, fenamentas e métodos, com o objetivo de aumentarem suas vantagens competitivas, podendo compartilhar assim os mercados globais.
Com mudanças tecnológicas cada vez mais velozes, crescimento na complexidade dos produtos, competição global, disseminação do uso da tecnologia e evolução nos conceitos da qualidade, toma-se necessário investigar os processos de desenvolvimento de soflware, com o objetivo de alcançar produtos com qualidade superior. Essa investigação é justificada uma vez que a qualidade do produto de sofiware está diretamente relacionada à qualidade do seu processo de desenvolvimento.
No âmbito de software, até a década de 70, a noção da qualidade estava ligada à parte intema deste, sendo avaliada em termos de linhas de código e tempo de execução. Nos anos 80, havia uma maior qualificação dos usuários. Nos anos 90, a discussão assumiu um caráter mais formal com a apresentação de Normas como a ISO 9000-3 e a lSO 9126. Atualmente, a discussão pela busca da qualidade leva as organizações a se preocuparem com a melhoria de seus produtos desde a sua concepção. Portanto, o enfoque principal dado às atividades de garantia da qualidade de software tem se concentrado na melhoria de seu processo de desenvolvimento.
Em se tratando de avaliação e melhoria do processo de desenvolvimento de software, o CMM (Capability Maturity Model), desenvolvido pelo SE] (Soflware Engineering Institute) da Universidade Carnegie Mellon (Pittsburgh - EUA), é um modelo utilizado para qualificar e definir os pontos de atuação, além das ações para a melhoria evolutiva desse processo. De acordo com Belloquim (1999), o CMM foi criado para todo tipo de empresa desenvolvedora de software, independentemente do seu tamanho. O sucesso de sua implementação é relativo à capacidade que a empresa tem de absorver os conceitos e adaptados à sua realidade.
'Faculdade de Tecnologia de Taquaritinga. Av. Dr. Flávio Henrique Lemos, 585 - Portal ltamaracà. [email protected] "Faculdade de Tecnologia de Taquaritinga. Av. Dr. Flávio Henrique Lemos, 585 - Portal Itamaracá [email protected]
NTERFACE TECNOLÓGICA - v.I ~ n.I - 2004 I
QUALIDADE DE SOFTWARE Conceitos
A respeito da qualidade de software, há muitos conceitos para defini-la, sob diferentes pontos de vista apresentados na literatura. Abaixo são apresentas algumas definições dos principais autores:
0 Um produto de software apresenta qualidade dependendo do grau de satisfação das necessidades dos clientes sob todos os aspectos do produto (SANDERS & CURRAN, 1994);
0 Qualidade de software é o grau em que o software possui uma combinação desejada de atributos (IEEE-STD729, 1983);
0 Qualidade de software é o grau em que os atributos do software são capazes de desempenhar sua finalidade especificada (DOD-STD 2168);
I Apercepção da qualidade de software é vista principalmente em termos de tempo em que um sistema opera corretamente (SMITH & WOOD, 1989);
0 Qualidade é a conformidade aos requisitos estabelecidos explicitamente e aos padrões de desenvolvimento documentados (PRESSMAN, 1994).
Qualidade do Processo de Desenvolvimento de Software
De acordo com Paulk et al. (1993), o processo de desenvolvimento de software é representado por um conjunto seqüencial de atividades, objetivos, transfonnações e eventos que encapsulam estratégias para o cumprimento da evolução do sofiware.
Xerox (1983) considera processo como sendo uma série de atividades de trabalho correlacionada caracterizada por uma série especifica de entradas e tarefas que agregam valor ao produto.
De acordo com Juran (1 989) um processo é definido como uma série sistemática de ações direcionadas para a consecução de uma meta. Para estar de acordo com os termos dessa definição, um processo deve ser: 0 Direcionado em função de uma meta: não se pode planejar abstratamente, sem saber qual é a meta. Isso significa que, para planejar para a qualidade, deve-se antes estabelecer as metas e padrões da qualidade que se deseja alcançar;
0 Sistemático: as ações que constituem um processo estão todas interligadas e são independentes. Elas também são progressivas e seguem uma seqüência estipulada;
0 Capaz: o resultado final adequado do planejamento é um processo capaz de atender' às metas sob condições de operações normais;
0 Legítimo: o processo se desenvolve através de canais autorizados. Ele deve ser aprovado pelos que receberam responsabilidades relacionadas a ele.
Para Fiorini (1998) conhecer os processos significa conhecer como os produtos e serviços são planejados, produzidos e entregues ao cliente. Para que um processo de software seja efetivo para o cumprimento dos seus objetivos, torna-se necessário um planejamento detalhado que revele a realidade do ambiente de desenvolvimento do software. Deve-se considerar aspectos específicos do projeto, como metas e politicas, equipe de desenvolvimento, cronograma, disponibilidade de recursos humanos, técnicos e financeiros.
J g _ WM INTERFACE TECNOLÓGICA - v.l - n.I - 2004 O Modelo SEI-SW-CMM
Histórico e Conceituação
O SW-CMM foi desenvolvido pelo SEI (Sofiware Engineering Institute) sediado na CMU (Carnegie Mellon University) em Pittsburg, Pennsylvania, Estados Unidos. O SEI é um centro de pesquisa criado em 1984 pelo Departamento de Defesa dos Estados Unidos (DoD - Department ofDefense) e é patrocinado pelo OUSD (A&T) (Office ofthe Under Secretary ofDefense for Acquisition and Technology). O SEI tem por missão aprimorar a prática de Engenharia de Software. As áreas de atuação do SEI são: capacitação de gerência de software, tecnologia para a engenharia e aptidão para a transição. O SEI focaliza a transição tecnológica: o desenvolvimento e adoção das melhores práticas de engenharia de software.
O CMM classifica as organizações produtoras de software em cinco grupos (ou cinco níveis) de maturidade. Os cinco níveis de maturidade propostos pelo SW-CMM são: inicial, repetivcl, definido, gerenciado e em otimização. AFigura 1 a seguir, ilustra os Níveis de Maturidade do CMM:
Processo em f"e'h°flfl- . fiz; l continua 1 -vw. °w~*a"›f1"5:
°"°"'S“'°'
l.‹E=E=z=zY==.= ;:..=-1 ...=. f .',;-:,.-'.,..,.‹_.;¿.,.;..'1.¡:':5:5:5:;:': Prosso consistente ~ Í Di' ‹f"-.-..i: _‹:-:z:z:z:z:-:-az-:z:z:z:z:›~wi-:z:z:zaz=à=à:z.z:z:-::=â:5â:za "PFOCBSSO «-' . 'ía ---zêzaziâãzgàzigizázzzíâieiêgazzzffsúgtzagêzêâzäzsâiazagazaiéziíããi
Ci ÍSCÍPÍÍ I'|ãC|0 ` W z¬ sã! , «íifL-Q‹_ se ...z _ . ...z.z.z...z.z. ¬“~az::¿‹§“:r~;,'F' -zé-fazzç. -'i --¡'¡-1"v`EãElE=¡¡¡I:3,? , -‹¿<¡¢¡,¡,¡,¡;;›;›#5f¢,¿
Figura 1 - Níveis de Maturidade do CMM Fonte: (Paulk et al., 1993 p. 16)
Como apresentado pela Figura 1 , o CMM classifica as organizações em cinco niveis evolutivos de maturidade, cada um com suas características próprias. Estas caracteristicas estão apresentadas no Quadro l :
j Nivel do CMM Características E E
INTERFACE TECNOLÓGICA-»1 ›».1 -2004
Quadro 1 - Visão Geral dos Níveis de Maturidade do CMM
l t O processo de desenvolvimento é desorganizado e até caótico. Poucos processos Inicial são definidos e padronizados e o sucesso depende de esforços individuais e heróicos
dos desenvolvedores. 1
2 Os processos básicos de gerenciamento de projeto estão estabelecidos e pcnnitem Repetivel acompanhar custo, cronograma e funcionalidade e é possível repetir o sucesso de
j um processojá utilizado anteriormente.
3 Tanto as atividades de gerenciamento quanto as de engenharia do processo de . Definido *S desenvolvimento de software estão documentadas, padronizadas, e integradas i I em urn padrão de desenvolvimento da organização. Todos os projetos utilizam i uma versão aprovada e adaptada do processo padrão de desenvolvimento de
software da organização.
4 C mS_ão coletadasnrnedidas detalhadas da qualidade do produto e do processo de Gerenciado desenvolvimento de software. Tanto o produto quanto 0 processo de
desenvolvimento são entendidos e controlados quantitativamente.
5 O melhoramento contínuo do processo é conseguido através de um feedback Em otimização quantitativo dos processos e pelo uso pioneiro de idéias e tecnologias inovadoras. Fonte: (Paulk et al., 1993)
Apresentando o Nível 2 do Modelo SEI›SW-CMM
No Nível 2, o processo passa a terum nivel básico de controle. Em vez de processo de desenvolvimento ser uma única “caixa preta”, ele passa a ser uma seqüência de “caixas pretas” (tarefas) que asseguram a visibilidade em determinados pontos, tipicamente nos chamados marcos de acompanhamento do progresso do projeto. São estabelecidas políticas para gerenciar projetos de desenvolvimento de software, bem como procedimentos para implementa-las. O planejamento e a gerência de novos projetos são baseados em experiências adquiridas com projetos similares anteriores.
A capacitação do processo é melhorada projeto a projeto, através do estabelecimento de disciplinas básicas de gerência. Para cada projeto são estabelecidos processos que são definidos, documentados, praticados, executados, treinados, medidos, obedecidos e passíveis de melhoria.
Todos os níveis de maturidade do CMM com exceção do Nível 1, são compostos de um certo número de áreas-chave de processo (Key-Process Areas - KPAS). Essas áreas descrevem os objetivos que devem ser atingidos, assim como as questões a serem tratadas para se alcançarem estes objetivos e atingir o nível proposto. As áreas-chave de processos estabelecidas no Nível 2 são: Gerenciamento de Requisitos, Planejamento do Projeto de Software, Acompanhamento e Supervisão do Projeto de Software, Gerenciamento de Sub-Contratos de Software, Garantia da Qualidade de Software, Gerenciamento da Configuração de Software.
INTERFACE TECNOLÓGICA - ul - HJ - 2004
.it-‹-|..«t«
0 KPA 1 - Gerenciamento de requisitos: de acordo com Paulk et al. (l993), a proposta desta KPA é estabelecer um entendimento comum entre o cliente e a equipe do projeto sobre os requisitos alocados ao software. Envolve o estabelecimento e a manutenção dos requisitos do soflware de acordo com as necessidades do cliente;
0 KPA 2 - Planejamento do projeto do software: a finalidade desta KPA é estabelecer planos para o desempenho e manutenção do projeto. Este planejamento envolve o desenvolvimento de estimativas para o trabalho, o estabelecimento de compromissos e de planos para desempenhar o trabalho;
0 KPA 3 - Acompanhamento e supervisão de projeto de software: A finalidade desta KPA é promover uma visão adequada do progresso real do projeto, de modo que o gerenciamento possa tomar medidas efetivas quando o desempenho se desvia do plano proposto;
0 KPA 4 - Gerenciamento de sub-contratos de software: a finalidade desta KPA é selecionar fomecedores qualificados e gerenciá-los eficazmente. Esse processo envolve selecionar o fomecedor, estabelecer compromissos, acompanhar e revisar o desempenho e os resultados obtidos;
0 KPA 5 - Garantia de Qualidade de Software: a finalidade desta KPA é promover o gerenciamento com visibilidade do processo que está sendo utilizado e dos produtos que estão sendo desenvolvidos. Isso envolve revisões e auditorias nos produtos de software e nas atividades para assegurar que estão em conformidade com os padrões e procedimentos aplicados;
0 KPA 6 - Gerenciamento da configuração de software: a proposta desta KPA é estabelecer e manter a integridade dos produtos do projeto de software ao longo do ciclo de vida deste. Esse processo envolve identificar os itens de configuração, controlar sistematicamente as alterações e manter a integridade da configuração ao longo do ciclo de vida do software.
coNcLUsõEs
Este artigo procurou apresentar a importância da qualidade de desenvolvimento de software nos dias atuais, tomando como enfoque, o Modelo SEI-SW-CMM Nível 2. Através da implementação deste Modelo, poder-se-á verificar efeitos significativos tais como: alta produtividade, baixo custo de desenvolvimento, envolvimento e comprometimento do fator humano, comprometimento com a qualidade e planejamento das atividades. Todos os efeitos citados poderão trazer inúmeras vantagens estratégicas e competitivas de mercado. ABSTRACT
This article shows the SEI-SW-CMM Level 2 framework, whose objective is to evaluate the maturity of software houses and propose improvement for this process.
KEYWORDS: Sofiware improvement. Quality. Processes. CMM.
REFERÊNCLÀS
BELLOQUIM, Átila. CMM em Pequenas Organizações: Seria Mesmo Possível? Developers Magazine. Fev. 1999.
FIORINI, S.T. Engenharia de Software com CMM. Rio de Janeiro, Ed. Brasport. 1998
IEEE (1983). IEEE Standard Glossary ofSoftware Engineering Terminology. New York: IEEE, ANSI! IEEE Std 729. 1983.
JURAN, J. M. Planejando para a Qualidade. 2. ed. São Paulo: Ed. Pioneira. 1989, p. l95-255
INTERFACE TECNOLÓGICA ~ v.I - n.I - 2004
Carnegie Mellon University, CMU/SEI-91-TR-24. ESC-TR-93-177. 1993.
PRESSMAN, R. S. Software Engineering - A Practtioner 's Approach, Edição Européia, Editora McGraw-Hill. 1994.
SANDERS, J. & CURRAN, E. Software Quality- A Framework for Success in Software Development and Suport, Addison-Wesley. 1994.
SMITH, D. J. & WOOD, K. B. (l989). Engineering Qualizjy Sofiware - ARevicw of Current Practices Standards and Guidelines lncluding New Methods and Developement Tool, Elsevier Science Publishers Ltd.
1989.