Escolar Documentos
Profissional Documentos
Cultura Documentos
{heitorsilvatemp@gmail.com, lucianosturza@yahoo.com.br}
Resumo
Este artigo aborda alguns tipos de processos de software utilizados na
atualidade, na qual a comunidade acadêmica e as empresas têm aplicado diversos
esforços. Tendo como objetivo apresentar os principais conceitos sobre os processos
para se construir um software, sobre os ciclos de vida utilizados e uma definição para
CMMI(Capability Maturity Model Integration - Modelo de melhoria de processo de
software), entendendo-se o quanto é importante a maturidade dos processos de software
para a análise, desenvolvimento e manutenção de um software. A qualidade de software
está diretamente dependente do processo de desenvolvimento deste.
Abstract
This article discusses some types of software processes currently used, in which
the academic community and companies have implemented various efforts. Aiming to
present the main concepts of the processes for building software on the cycles of life
and used a definition for CMMI, understanding how important the maturity of software
processes for analyzing, developing and maintaining a software. The quality of software
is directly dependent on the process of developing this.
1 Introdução
O processo de desenvolvimento de software, ou processo de software,
corresponde ao conjunto de atividades relacionadas que são desempenhadas pelos
desenvolvedores desde a concepção até a liberação do produto. Uma forma de analisar e
amadurecer tal processo é através de sua descrição, a qual consiste de um modelo de
processo de software. A descrição formal de um processo de software é a atividade que
permite que o mesmo seja analisado, compreendido e automatizado (executado).
Hoje, todos (no Governo, Academia e Indústria) devem reconhecer a
importância que a melhoria dos processos de software auxiliam para a competitividade,
qualidade e produtividade sistêmica do setor de software; mas, poucos têm idéia da
importância, magnitude, complexidade e duração do esforço quando se trata de superar
este desafio. Com análise neste cenário em que estamos, vimos o quanto é importante a
abordagem dos tipos de processos de software à nossa realidade em nível acadêmico e a
nível de indústrias de software. Pois muitas empresas hoje que estão no setor de
produção de software tem grandes prejuízos por não terem um controle dos processos
aplicados, e também não tem uma preocupação em utilizar metodologias de maturidade
a seus processos.
Este artigo tem como objetivo apresentar os principais conceitos sobre os
modelos de ciclo de vida, pois o ponto de partida para a arquitetura de um processo é a
escolha de um modelo de ciclo de vida[1], também abordaremos os processos para a
construção de um software, e uma definição para CMMI(Capability Maturity Model
Integration - Modelo de melhoria de processo de software) e também definiremos o
MPS.BR(Melhoria de Processo do Software Brasileiro), entendendo-se o quanto é
importante a maturidade dos processos de software para a análise, desenvolvimento e
manutenção de um software.
2.1 Codifica-remenda
2.2 Cascata
2.4 Espiral
3 Processos de software
Processos de software são as diversas fases necessárias para produzir e manter
um produto de software. Requerem a organização lógica de diversas atividades técnicas
e gerenciais envolvendo agentes, métodos, ferramentas, artefatos e restrições que
possibilitam disciplinar, sistematizar e organizar o desenvolvimento e manutenção de
produtos de software.
Segundo o IEEE(Instituto de Engenheiros Eletricistas e Eletrônicos), é uma
seqüência de passos executados com um determinado objetivo; Segundo o CMMI
(Capability Maturity Model Integration - Modelo de melhoria de processo de software),
é um conjunto de ações e atividades inter-relacionadas realizadas para obter um
conjunto especificado de produtos, resultados ou serviços. Na UML(Unified Modeling
Language), processo é, unidade pesada de execução concorrente, em oposição a uma
linha de execução(thread), que representa a implementação de um processo leve.
Um processo é uma receita que é seguida por um projeto; o projeto concretiza
uma abstração, que é o processo. Não se deve confundir um processo com o respectivo
produto ou com a execução do processo através de um projeto. Um processo é
representado na forma de um grafo, etapas, papéis, insumos e resultados estão entre os
elementos de um processo, Tabela 3.1, segundo o autor[1].
Termo Definição
Insumo (Praxis) Coisa que é consumida num processo.
Papel (SPEM)Conjunto correlato de proficiências, competências e
responsabilidades, desempenhado por uma ou mais pessoas.
Etapa (Praxis) Termo genérico para uma divisão temporal de um processo.
Processo de (UML)Conjunto de passos e diretrizes para o desenvolvimento de
desenvolvimento um produto.
Produto 1. (PMBOK)Um objeto produzido, quantificavel, e que pode
ser um item final ou um item componente.
2. (CMMI)Resultado que se pretende entregar a um cliente ou
usuário.
Produto de 1. (SPEM)Qualquer coisa consumida, produzida ou modificada
trabalho por tarefas.
2. (CMMI)Coisa útil que resulta de um processo.
Projeto 1. (CMMI)Conjunto gerido de recursos inter-relacionados, que
entrega um ou mais produtos a um cliente ou usuário, com
inicio definido e que, tipicamente, opera conforme um plano.
Conforme produto.
2. (PMBOK)Um empreendimento temporário realizado para
criar um produto, serviço ou resultado distinto.
Resultado (PMBOK)Uma saída dos processos e atividades de um projeto.
Tabela 3.1 Definições referentes a processos.
4 Os processos de Humphrey
O PSP não é realmente um único processo, mas uma série de processos pessoais
que é uma seqüência de pequenos projetos, estes devem ser realizados seguindo
rigorosamente os processos, que incluem um conjunto de formulários, scripts e
relatórios predefinidos.
5.2 - O RUP
6 - Processos Ágeis
São caracterizados por princípios comuns, mais baseados no trabalho cooperativo do
que no formalismo e na documentação escrita. Esses princípios foram reunidos por um
grupo de metodologistas conhecidos em um documento chamado Manifesto Ágil. Neste
documento proclamam os seguintes valores:
• Indivíduos e iterações, em relação a processos e ferramentas.
• Software funcional, em relação à documentação abrangente.
• Colaboração com o cliente, em relação a negociações contratuais.
• Resposta à mudança, em relação a seguir planos.
7 - O processo Praxis
1
Material disponível em http://www.agilemodeling.com/.
2
Material disponível em http://www.ambysoft.com/unifiedprocess/agileUP.html.
equipes com duração de seis meses a um ano. Com isso, pretende-se que ele seja
utilizável para projetos de fim de curso de graduação ou similares, segundo o autor [1].
Os principais elementos que compõe o processo são: disciplinas, tarefas,
atividades, artefatos, papéis e orientações.
O Praxis tem semelhanças com o RUP, é um processo concreto, é definido por
meio da aplicação do SPEM (Software Process Engineering Metamodel), através do uso
do EPF (Eclipse Process Framework).
Nomenclatura utilizada pelo PRAXIS:
– Passo:
• divisão formal de um processo
– Fase:
• corresponde aos pontos principais de aceitação, por parte do cliente.
– Iteração:
• passo constituinte de uma fase,atinge um conjunto bem definido,de metas
parciais de um projeto.
– Script:
• conjunto de instruções;
• define como uma iteração deve ser executada.
– Fluxo:
• subprocesso caracterizado por um tema;
• técnico ou gerencial.
– Subfluxo:
• conjunto de atividades mais estreitamente correlatas;
• faz parte de um fluxo maior.
8.2.2 – ISO/IEC-12207
Este modelo conhecido no brasil como NBR-ISO/IEC-12207, descreve os
principais processos componentes do ciclo de vida do software e os relacionamentos
entre eles.
8.2.3 – ISO-15504
A ISO, desenvolveu o arcabouço (framework) ISO-15504, que não apresenta
diretamente requisitos para a maturidade de processos, mas sim um guia para a
avaliação dessa maturidade. Este pode ser considerado um meta-modelo, a partir do
qual podem ser derivados modelos específicos de capacitação.
8.3 – MPS.BR
O MPS.BR(Melhoria de Processo de Software Brasileiro) é o resultado de um
programa coordenado pela SOFTEX(Associação para Promoção da Excelência do
Software Brasileiro), com o patrocínio do Ministério da Ciência e tecnologia e de outras
instituições. Segundo o seu documento[], o modelo foi desenvolvido em conformidade
com as referências ISO/IEC-12207, ISO/IEC-15504 e CMMI para desenvolvimento.
Ele classifica as instituições em sete níveis de maturidade, denominados A a G, do mais
alto para o mais baixo, ver figura 8.3.
8.4 - PMBOK
O PMBOK(Project Management Body of Knowledge) reúne um guia publicado
pelo PMI(Project Management Institute) um conjunto de práticas geralmente aceitas de
gestão de projetos. Contempla as seguintes áreas de conhecimento em gestão de
projetos: integração, escopo, tempo, custos, qualidade, recursos humanos,
comunicações, riscos e aquisições.
8.5 - COBIT
O COBIT(Control Objectives for Information and Related Technology) é um
conjunto de boas práticas para gestão de tecnologia da informação criado pela
ISACA(Information Systems Audit And Control Association), que também concede
certificação profissional, e pelo ITGI(IT Governance Institute). O COBIT define níveis
de maturidade semelhantes aos do CMMI e um conjunto de processos, agrupados em
quatro domínios: Planejamento e organização, Aquisição e Implementação, Entrega e
Suporte, Monitoração e Avaliação.
9 Considerações Finais