Os projetos de software utilizam recursos inseridos na engenharia de software para que alcancem melhores resultados. Estes recursos são utilizados nas mais diversas etapas da construção de um software, desde a especificação de requisitos, passando pela análise e desenvolvimento até chegar a implantação do sistema. Estes projetos, na sua grande maioria, possuem etapas repetitivas e em série no seu processo de construção, podendo se caracterizar como uma fábrica de software. O CMM Capability Maturity Model for Software, visa resolver problemas - tais como alocação de recursos não previstos, extrapolação de prazos, etc - gerados pela falta de um processo de desenvolvimento de software claramente definido e efetivo. A capacitação do processo de software, segundo o CMM, é dividido em cinco níveis: inicial, repetitivo, definido, gerenciado e em otimização. Um dos momentos de maior importância da utilização dos Padrões de Projeto (Design Patterns) no contexto do CMM reside na transição do segundo nível (repetitivo) para o terceiro (definido) onde existe uma mudança de centro de importância referente a recursos na construção do software. Os Padrões de Projetos, neste caso, auxiliam como uma normalização a ser seguida para desenvolver o produto e então tornar o processo serial e padronizado. No segundo nível do CMM, o fator decisivo é o recurso pessoal enquanto que, no terceiro nível, o processo em si é mais importante (por isso a importância de uma normalização). Este processo se torna mais forte e melhor definido, dependendo em menor grau do recurso pessoal e tornando o processo mais eficaz e gradativamente mais forte.O trabalho visa mostrar como os Padrões de Projetos (Design Patterns) podem ajudar neste processo de nivelamento na estrutura do CMM. Através das especificações dos Padrões de Projetos pode-se auxiliar na construção e estruturação de programas e mostrar como o nivelamento no CMM afeta a produtividade na fábrica de software. |