




Estude fácil! Tem muito documento disponível na Docsity
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
Prepare-se para as provas
Estude fácil! Tem muito documento disponível na Docsity
Prepare-se para as provas com trabalhos de outros alunos como você, aqui na Docsity
Encontra documentos específicos para os exames da tua universidade
Prepare-se com as videoaulas e exercícios resolvidos criados a partir da grade da sua Universidade
Responda perguntas de provas passadas e avalie sua preparação.
Ganhe pontos para baixar
Ganhe pontos ajudando outros esrudantes ou compre um plano Premium
A intensa evolução dos microcomputadores fez com que o desenvolvimento de softwares seja cada vez mais complexo e que utilizam mais recursos dos computadores. Porém o desenvolvimento de um software de alto nível requer da organização que o desenvolve, técnicas avançadas para que o produto final seja de qualidade aceitável no mercado. O modelo de maturidade de capacitação de software fornece às organizações um guia de como obter controle em seus processos para desenvolver e manter o software, ass
Tipologia: Notas de estudo
1 / 8
Esta página não é visível na pré-visualização
Não perca as partes importantes!





Renner Augusto Alves Lima; Roberto Guimarães Dutra de Oliveira; Cássio Borges Silva Matsumoto (UEMG – Campus de Ituiutaba)
Resumo : A intensa evolução dos microcomputadores fez com que o desenvolvimento de softwares seja cada vez mais complexo e que utilizam mais recursos dos computadores. Porém o desenvolvimento de um software de alto nível requer da organização que o desenvolve, técnicas avançadas para que o produto final seja de qualidade aceitável no mercado. O modelo de maturidade de capacitação de software fornece às organizações um guia de como obter controle em seus processos para desenvolver e manter o software , assim como evoluir em direção a uma cultura de engenharia de software e excelência de gestão.
Palavras-chave : Modelo de maturidade de capacitação; Qualidade de software ; Engenharia de software.
Abstract: The intense development of computers has made the software development is increasingly complex and use more computer resources. But the development of a high- level software requires the organization that develops, advanced to the final product is of acceptable quality in the market. The capability maturity model software provides organizations with a guide on how to control their processes for developing and maintaining software, and evolve toward a culture of software engineering and management excellence.
Key-words: Capability maturity model; Software quality, Software engineering.
Atualmente, existem cada vez mais sistemas controlados por software , fazendo com que a economia de vários países seja muito dependente da qualidade dos softwares por eles usados, justificando um investimento significativo nesse setor. Há alguns anos, o software era desenvolvido de maneira artesanal, ou seja, sem muita preocupação de como ficaria o resultado final. A partir de uma definição dos requisitos do software , iniciava-se o desenvolvimento do mesmo. Mas hoje em dia, mesmo que ainda haja empresas que desenvolvem seus softwares dessa maneira, a grande maioria buscam soluções profissionais para o desenvolvimento de software. Se considerarmos o desenvolvimento de um programa de pequeno porte, que não exige
muito esforço e nem técnicas muito avançadas, a forma artesanal não trará grandes problemas para o desenvolvimento. Mas considerando um software de maior porte, podem acontecer problemas graves na implementação, levando a erros que podem comprometer todo o projeto. A evolução dos computadores, e a facilidade de se obter um computador potente e de última geração, tem feito com que a demanda por softwares mais complexos e que exijam mais processamento aumente. Esse aumento na demanda por programas mais complexos reflete diretamente na quantidade de problemas que possam vir a aparecer no produto final. Para tentar solucionar o problema de softwares de baixa qualidade, foi proposto que seu desenvolvimento deixasse de ser uma arte artesanal e passasse a basear-se em princípios da Engenharia de Software , seguindo uma estrutura bem definida e métodos específicos. Um dos conceitos da Engenharia de Software que mais reflete na qualidade do mesmo é o controle de qualidade do software que segundo Sommerville (2003, p. 466), “envolve supervisionar o processo de desenvolvimento de software , a fim de assegurar que os procedimentos e os padrões de garantia de qualidade sejam seguidos”. O termo qualidade no contexto organizacional é, em geral, relacionado a uma série de aspectos, tais como normalização e melhoria de processo, medições, padrões e verificações. Uma definição mais abrangente e completa para qualidade de software seria a proposta por Bartié (2002): “Qualidade de software é um processo sistemático que focaliza todas as etapas e artefatos produzidos com o objetivo de garantir a conformidade de processos e produtos, prevenindo e eliminando defeitos”. Outra possível definição sobre qualidade é sugerida por Hernaski (2010), que escreve que a qualidade do produto “é a rigorosa definição das características relevantes do produto, estabelecendo os atributos e as variáveis que deve conter cuja dimensão deve ser assegurada. A especificação é o documento que formalizará essas definições”. A qualidade pode ser medida através do grau de satisfação em que os usuários avaliam determinado produto ou serviço. No entanto, esse produto ou serviço pode ter qualidade para algumas pessoas e para outras nem tanto, ou seja, a qualidade é algo subjetivo. Para que exista uma padronização e uma maneira de avaliar se um software é de boa qualidade ou não, foram criadas normas de avaliação do desenvolvimento do software. O CMM ( Capability Maturity Model ) em português, modelo de maturidade de capacitação, é um dos modelos de avaliação de software mais importante e popular do
organização fornece um meio de se prever os resultados mais prováveis a serem esperados no próximo projeto a ser empreendido pela organização (GONÇALVES e VILLAS-BOAS, 2001, p. 15).
A melhoria contínua do processo se baseia mais em pequenos passos evolutivos do que em inovações revolucionárias que formam bases sucessivas para a melhoria contínua do processo, elevando o a qualidade do processo. Hernaski (2010) escreve que a qualidade de processo “é a rigorosa especificação dos processos que serão realizados na produção de um bem ou serviço, incluindo as faixas de tolerância desejada dos resultados”. Dentro dos passos evolutivos de melhoria de processo, o CMM possui cinco níveis de maturidade, sendo identificados como: inicial, repetível, definido, gerenciado e otimizado. De acordo com GONÇALVES e VILLAS-BOAS (2001, p. 15), “a maturidade do processo de software é a extensão para a qual um processo específico é explicitamente definido, gerenciado, medido, controlado e efetivado”. Esses níveis de maturidade definem uma escala para medir a maturidade do processo de software de uma organização e para avaliar a capacidade de seu processo. Definir um nível de maturidade significa estabelecer diferentes componentes do processo, que resultam num crescimento da capacidade do processo de uma organização.
Figura 1 – Níveis de maturidade. Fonte: Côrtes (1998, p. 11)
A Figura 1 apresenta os cinco níveis de maturidade e a característica principal que permite a progressão para o nível imediatamente acima. No primeiro nível, o nível inicial, uma organização não tem procedimentos eficazes de gerenciamento ou planos de projeto, ou seja, não dispõe de um ambiente
estável. O sucesso nessas organizações depende da competência e esforço individual dos seus funcionários e não no uso de processos estruturados. Se existirem procedimentos formais para o controle de projeto, não existirão os mecanismos organizacionais para garantir que eles são utilizados de modo consistente, fazendo com que as características do software e o processo sejam imprevisíveis. No nível dois, nível repetível, a organização tem procedimentos de gerenciamento formal, garantia de qualidade e controle de configuração já implantado. Recebe o nome de nível repetível porque a organização pode repetir projetos do mesmo tipo com sucesso. Contudo, não existe um modelo de processo formal, sendo que o sucesso do projeto depende de os gerentes individuais motivarem uma equipe e de cultura organizacional atuar como uma descrição intuitiva do processo. No nível três, nível definido, uma organização determinou seu processo e, assim, tem uma base para sua melhoria qualitativa de processo, sendo usado para estabelecer uma consistência dentro da organização. Os procedimentos formais estão implantados, a fim de assegurar que o processo definido seja seguido em todos os projetos de software. No penúltimo nível, nível gerenciado, a organização tem um processo definido e um programa formal de coleta de dados quantitativos. As métricas de processo e de produto são coletadas e fornecidas nas atividades de melhoria de processo. A principal diferença entre os níveis de maturidade três e quatro é a previsibilidade do desempenho do processo, sendo que no nível quatro, o desempenho do processo é controlado usando técnicas estatísticas e quantitativas e é previsível quantitativamente. Já no nível três, os processos são somente previsíveis qualitativamente. Já no último nível, o nível de otimização, a organização já adquiriu todas as metas específicas das áreas de processo dos níveis anteriores e as metas genéricas dos níveis dois e três. Processos são continuamente melhorados com base no entendimento quantitativo das causas comuns de variação inerente aos processos. Nesse nível o foco é o contínuo progresso do desempenho dos processos, através da introdução de melhorias de inovação tecnológica e incremental e os efeitos da melhoria da revisão dos processos são medidos e acompanhados, utilizando-se processos de melhoria de qualidade.
ação, o CMM e as práticas-chave podem ser utilizados pelas equipes de processo para desenvolver partes do plano de ação operacional e definir o processo de software. O modelo tem como principal objetivo a melhora dos processos internos para o desenvolvimento de software por parte da organização. Dentro desse conceito, os principais defensores do modelo argumentam que com sua implementação e conforme o nível de maturidade atingido, cada vez mais o CMM trará muitos benefícios para as organizações tais como a melhoria na execução dos trabalhos (aumentando a produtividade dos recursos), melhoria no controle das atividades desempenhadas (possuindo métricas e projetos bem delineados), melhora na qualidade do produto final (a melhoria proporciona uma melhora significativa na determinação da real necessidade do cliente), melhoria nos relacionamentos internos (quanto mais organizado, menos conflitos ocorrerão) e melhoria nos relacionamentos externos da organização (maior facilidade de relacionamento com o cliente).
Para que as organizações de desenvolvimento de software alcancem altos níveis de maturidade, é necessário que haja um comprometimento de longo prazo e que as atividades direcionadas para este fim sejam incrementais e contínuas. O CMM não abrange todos os pontos importantes para o sucesso do projeto, como por exemplo, quais as tecnologias e ferramentas utilizadas, porém fornece às organizações orientação sobre como ganhar controle do processo de desenvolvimento de software e como evoluir para uma cultura de excelência na gestão de software. Com o uso desse modelo, haverá uma melhora no gerenciamento e desenvolvimento de produtos de software , levando a uma melhora significativa na qualidade final do produto. Porém não é tão simples desfazer dos valores intelectuais de uma organização, principalmente as já acostumadas com as turbulências. Para que uma organização esteja inserida no jogo do mercado e conquiste território é preciso seguir um modelo, ou seja, um caminho a ser trilhado, para que exista um mínimo de ordem no desenvolvimento de software.
Fica claro, portanto, que, em vez de burocracia sem sentido, padrões e processos bem definidos e usados, pode fazer muito pela qualidade dos processos de desenvolvimento em uma empresa, aumentando a qualidade dos produtos e reduzindo prazos e custos, compensados por menos trabalho e informações devidamente centralizadas e distribuídas. Conclui-se que julgando todos os fatores que envolvem o modelo de maturidade de capacitação, chega-se a um resultado positivo. Com a certeza de que a qualidade do produto final está diretamente ligada à maneira como as etapas do processo são desenvolvidas, com a utilização do CMM, a qualidade do produto final torna-se acima da média, atingindo padrões elevados de qualidade e capacitando organizações a terem softwares fortemente conceituados no mercado e atendendo as necessidades dos clientes.
CÔRTES, Mario L. Modelos de Qualidade de SW. 1998. Disponível em <http://www.ic.unicamp.br/~cortes/mc726/cap5a.pdf >, Acesso em: 6 Out. 2011.
HERNASKI, M. Qualidade do produto VS Qualidade do processo. 11 Out 2010, disponível em: <http://mauricio.hernaski.com.br/blog/qualidade-do-produto-vs- qualidade-do-processo-2/>, Acesso em: 6 Out 2011.
GONÇALVES, J. M. e VILLAS-BOAS, A. Modelo de Maturidade de Capabilidade de Software , 11 de Out de 2001 Campinas, São Paulo: CPqD.
SOMMERVILLE, Ian. Engenharia de Software. São Paulo: Pearson Education do Brasil, 2003.