Um processo de software
pode ser visto como o conjunto de atividades, métodos, práticas e transformações que
guiam pessoas na produção de software. Um processo eficaz deve,
claramente, considerar as relações
entre as atividades, os artefatos produzidos no desenvolvimento, as
ferramentas, os procedimentos necessários, a habilidade, o
treinamento e a motivação do pessoal envolvido.
Definição de
Processos
Há vários aspectos a
serem considerados na definição de um processo de software. No
centro da arquitetura de um processo de desenvolvimento estão
algumas atividades chaves: análise e especificação de requisitos,
projeto, desenvolvimento e testes, que são a base sobre a qual o
processo de desenvolvimento deve ser construído. Entretanto, a
definição de um processo envolve a escolha de um modelo de ciclo de
vida, o detalhamento (decomposição) de suas macro-atividades, a
escolha de métodos, técnicas e roteiros (procedimentos) para a sua
realização e a definição de recursos e artefatos necessários e
produzidos.
Um processo de
software não pode ser definido de forma universal. Para ser eficaz e
conduzir à construção de produtos de boa qualidade, um processo
deve ser adequado ao domínio da aplicação e ao projeto específico.
Deste modo, processos devem ser definidos caso a caso,
considerando-se as especificidades da aplicação, a tecnologia a ser
adotada na sua construção, a organização onde o produto será
desenvolvido e o grupo de desenvolvimento.
Em suma, o objetivo de
se definir um processo de software é favorecer a produção de
sistemas de alta qualidade, atingindo as necessidades dos usuários
finais, dentro de um cronograma e um orçamento previsível.
A escolha de um modelo
de ciclo de vida (ou modelo de processo) é o ponto de partida para a
definição de um processo de desenvolvimento de software. Um modelo
de ciclo de vida organiza as macroatividades básicas, estabelecendo
precedência e dependência entre as mesmas.
Um modelo de ciclo de
vida pode ser entendido como passos ou atividades que devem ser
executados durante um projeto. Para a definição completa do
processo, a cada atividade, devem ser associados técnicas,
ferramentas e critérios de qualidade, entre outros, formando uma
base sólida para o desenvolvimento. Adicionalmente, outras
atividades tipicamente de cunho gerencial, devem ser definidas, entre
elas atividade de gerência e de controle e garantia da qualidade.
São fatores que
influenciam a definição de um processo:
• Tipo de software
(sistema de informação, sistema de tempo real, etc.);
• Paradigma
(estruturado, orientado a objetos, etc.);
• Domínio da
aplicação;
• Tamanho;
• Complexidade;
• Características da
equipe...
Embora diferentes
projetos necessitem de processos com características específicas
para atender às
suas particularidades,
é possível estabelecer um conjunto de ativos de processo
(sub-processos, atividades, sub-atividades, artefatos, recursos e
procedimentos) a ser utilizado na definição de processos de
software de uma organização. Essas coleções de ativos de processo
de software constituem o chamado processo padrão de desenvolvimento
de software. Processos para projetos específicos podem, então, ser
definidos a partir da instanciação do processo de software padrão
da organização, levando em consideração suas características
particulares. Esses processos instanciados são ditos processos de
projeto.
De fato, o modelo de
definição de processos baseado em processos padrão pode ser
estendido para comportar vários níveis. Primeiro, pode-se definir
um processo padrão da organização, contendo os ativos de processo
que devem fazer parte de todos os processos de projeto da
organização. Esse processo padrão pode ser especializado para
agregar novos ativos de processo, considerando aspectos, tais como
tecnologias de desenvolvimento, paradigmas ou domínios de aplicação.
Assim, obtêm-se processos mais completos, que consideram
características da especialização desejada. Por fim, a partir de
um processo padrão ou de um processo especializado, é possível
instanciar um processo de projeto, que será o processo a ser
utilizado em um projeto de software específico. Para definir esse
processo devem ser consideradas as particularidades de cada projeto.
Para apoiar a
definição de processos, diversas normas e modelos de qualidade de
processo de software foram propostas, dentre elas: ISO9001, ISO/IEC
12207, ISO/IEC 15504, CMM, CMMI e MPS.BR. O objetivo dessas normas e
modelos de qualidade é apontar características que um bom processo
de software tem de apresentar, deixando a organização livre para
estruturar essas características segundo sua própria cultura.
Fonte: www.fag.edu.br
Nenhum comentário:
Postar um comentário