Modelagem e Análise de Software



INTRODUÇÃO
A descrição ou modelagem de processos de software é uma atividade fundamental para empresas de desenvolvimento de software que almejam qualidade no processo e produto. A importância em descrever o processo de software tem sido discutida na literatura de engenharia de software como uma das formas de suporte à qualidade do produto de software, sistematizar as práticas empregadas durante o desenvolvimento, aumentar a maturidade do processo de software, estabelecer uma linha de base (baseline) para avaliação e melhoria etc. Dada a importância em formalizar o processo de software, diversas organizações adotam-na como uma estratégia que tem resultado em inúmeros benefícios.
A descrição de processo de software permite detalhar o processo de software real executado em organizações de desenvolvimento e, conseqüentemente, possibilitar que falhas no processo sejam detectadas e corrigidas. Além disso, a formalização de processo de software é considerada o primeiro passo para implantação de programas de melhoria como CMM, SPICE (futura norma ISO 15504), BOOTSTRAP entre outros, pelo fato de capturar como o processo de software é executado (em um guia de processo de software, por exemplo) e adquirir experiências e lições que poderão ser incorporadas e utilizadas em projetos futuros.
A falta de descrição freqüentemente conduz a diversas conseqüências negativas às empresas de desenvolvimento de software, dentre as quais: atraso na entrega do produto, aumento no custo do projeto, baixa qualidade do produto, comprometimento do planejamento do projeto, impossibilidade de estabelecer uma prática sistemática de desenvolvimento (processo repetível), os processos não são visíveis, há dificuldades na implantação de programas de mensuração, baixa produtividade.
Entre organizações de desenvolvimento ou entre projetos de uma mesma organização, a modelagem dos processos de software pode variar em largura e profundidade. A largura determina o alcance do processo podendo abranger todo ciclo de vida do software ou uma simples fase. A profundidade determina o nível de refinamento, ou seja, até que ponto um processo deve ser detalhado.
As inúmeras variáveis envolvidas na elaboração de um produto de software determinam a sua complexidade. Dentre essas variáveis pode-se destacar: o produto que será desenvolvido, tecnologia aplicada, o número de pessoas envolvidas, métodos utilizados e etc. Conseqüentemente, o nível de complexidade do projeto de software determina o nível de complexidade dos processos necessários para desenvolvê-lo. Assim, quanto maior a complexidade do projeto de software maior será a complexidade dos processos exigindo um controle mais rigoroso sobre esses processos. A descrição de processos de software contribui com a resolução de diversos problemas presentes em organizações de desenvolvimento. A descrição de processos contribui sob vários aspectos no processo de desenvolvimento:


A padronização do processo é necessária para permitir o treinamento, elaboração de guias, gerenciamento, revisão e automação;
• Com a padronização de métodos, cada experiência de projeto pode contribuir para uma melhoria global em uma organização;
• Processos padronizados provêem uma infra-estrutura básica para melhoria, avaliação e mensuração;
• Porque a definição de processos exige tempo e esforço para ser produzido, é impraticável produzir novos processos para cada novo projeto;
• Porque tarefas básicas são comuns em muitos projetos de software, apenas algumas customizações seriam necessárias para um processo padrão atender à maioria das necessidades de projetos.



Share:

0 comentários

POPULAR POSTS