• Nenhum resultado encontrado

A Engenharia de software é conhecida como o paradigma de utilização de princípios sólidos de engenharia para obtenção de um

software economicamente viável. Além disso, ele deve ser confiável e

deve funcionar eficientemente em máquinas reais (Falbo, 2005).

Portanto, para atingir este objetivo, faz-se necessário tratar aspectos relacionados ao estabelecimento de processos, métodos, técnicas, ferramentas e ambientes de suporte ao desenvolvimento de

software. Entretanto, definir processos no desenvolvimento de softwares

não é uma tarefa fácil, pois deve ser analisado caso a caso. Esta análise tem como base o tipo de aplicação, a tecnologia utilizada no desenvolvimento, localização, finalidade, além da equipe envolvida na construção e utilização do software (Falbo, 2005).

O desenvolvimento de softwares é contido dentro de um projeto. O projeto é constituído por um conjunto de atividades, com um responsável pelo projeto, datas de início/fim, recursos e equipe. O conjunto de atividades guarda entre si relação de paralelismo, dependências e decomposição em atividades mais elementares (Paula Filho, 2007).

Estas atividades, segundo Falbo (2005), podem ser classificadas quanto ao seu propósito:

a) Atividades de desenvolvimento; b) Atividades de gerência de projeto; c) Atividades de garantia da qualidade.

A forma de representar a abstração das atividades deste processo no desenvolvimento de softwares é chamada de ciclo de vida ou modelos de processos. De uma forma geral, ele descreve a filosofia

da organização das atividades, estruturando as atividades em fases e como estas fases estão relacionadas. Muito embora os processos tenham que ser elaborados caso a caso, o ciclo de vida de softwares envolve pelo menos as seguintes fases:

a) Planejamento;

b) Análise e especificação de requisitos; c) Projeto; d) Implementação; e) Testes; f) Entrega e Implantação; h) Operação; i) Manutenção.

Sendo assim, a escolha do modelo de processo é dependente das próprias características do projeto. Os principais modelos de ciclo de vida podem ser agrupados em três categorias básicas: modelos sequenciais, modelos incrementais e modelos evolutivos. Os modelos sequenciais organizam o processo em uma sequência de fases em forma linear. Estão entre eles os modelos clássicos e em “V”. Os modelos incrementais são utilizados quando o tamanho do sistema a ser desenvolvido é de tal forma tão grande que impede a utilização de um modelo sequencial, sobretudo quando há a necessidade de implementação rápida, geralmente, quando a solicitação é feita pelo usuário final. Portanto, no modelo incremental o sistema é desenvolvido de forma modular e tomando-se por base a sua funcionalidade. As versões ou subsistemas são implementados a cada ciclo, acrescendo novas funcionalidades. Dentre os modelos incrementais poderíamos citar a variação modelo RAD (Rapid Application

Development), no qual é estipulado um período máximo de noventa dias

Os modelos evolutivos ou evolucionários são aqueles em que o software evolui ao longo do tempo, não mantendo relação direta com a versão anterior. Este modelo é usado quando se lida com incertezas, ou seja, quando o modelo e a concepção sofrem, no decorrer do tempo, alterações importantes. Desta forma, as primeiras versões são caracterizadas como protótipos das anteriores e são úteis como base técnica para a reanálise do projeto denominada de prototipação (Falbo, 2005).

Como dito anteriormente, um dos fatores importantes na construção de um software de qualidade é o processo de seu desenvolvimento, bem como sua implantação. Neste aumento de demanda na qualidade, a utilização de normas tem sido frequente. Espinha (2007) define muito bem esta questão quando diz:

Modelos como CMMI-DEV e MPS. BR e normas como a ISO/IEC 15504 e 12207 definem um conjunto de boas práticas e características que devem estar presentes em um processo para que este possa ser gerenciado e resulte na entrega de produtos de qualidade. Entretanto, como têm o objetivo de serem aplicáveis a quase todo tipo de organização, estes modelos ou normas muitas vezes não definem como estas boas práticas e características devem ser implementadas e implantadas. Uma das maiores dificuldades que as organizações que iniciam um programa de melhoria de processos enfrentam é a dificuldade de adaptar este conjunto de boas práticas para a sua realidade, identificando quais áreas são mais relevantes e devem ser abordadas com maior urgência. Cada organização possui políticas, crenças e uma cultura específica, que deve ser levada em conta para que as melhorias sejam bem aceitas e realmente contribuam com um desenvolvimento mais eficiente. Para orientar esta necessidade é utilizado o conceito de risco. Este está associado com a não utilização de boas práticas de desenvolvimento de softwares. Como a qualidade do software está

diretamente relacionada à qualidade dos processos envolvidos em seu desenvolvimento, conclui-se que quaisquer riscos nos processos irão resultar em riscos na qualidade do produto final desenvolvido. Diante disto, ações de gerência de riscos nos processos são imprescindíveis para a garantia da qualidade final do produto (Espinha, 2007).

As principais atividades da gerência de riscos são: identificação do risco, planejamento de ações e controle dos processos (Espinha, 2007).

Processos de avaliação na gerência de riscos também constituem numa estratégia e se utilizam de ferramentas de avaliação de processos para este fim. Essa avaliação é constituída por um ou mais componentes e cada componente possui um checklist associado. Cada controle ou componente possui uma estrutura: nome do controle, justificativa, ameaças, recomendações, referências, probabilidades, severidade e agrupamento. Desta forma, define-se um critério de prioridades para o desenvolvimento de um software para uma organização (Espinha, 2007).

Documentos relacionados