ENGENHARIA DE SOFTWARE
Autor: Marcos Morais de Sousa | Publicado: 2012-04-15T12:52:00-07:00



Somente na década
de 1968 na&nbsp; NATO Conference on Software Engineering&nbsp;(Conferência sobre
Engenharia de Software da OTAN) a Engenharia de Software ganhou destaque e
passou a ser um termo oficialmente usado. Historicamente os primeiros passos do
que é entendido como Engenharia de Software na atualidade foi na década de
1960. 


Nesse sentido, Mazzola (2010, p. 06) afirma que “engenharia de software é um conjunto de métodos, técnicas e ferramentas necessárias à produção de software de qualidade para todas as etapas do ciclo de vida do produto”. Já para Pressman (2006) a engenharia de software ocorre como resultado da engenharia de sistemas. A esse respeito ele diz:





Antes que o
software possa ser submetido à engenharia, o “sistema” no qual ele reside deve
ser entendido. Para conseguir isso, o objetivo geral do sistema deve ser
determinado: o papel do hardware, software, pessoal, base de dados,
procedimentos e outros elementos do sistema devem ser identificados; e
requisitos operacionais devem ser conseguidos, analisados, especificados,
modelados, validados e gerenciados. Essas atividades são à base da engenharia
de sistemas. (PRESSMAN, 2006, p. 99).





Todavia, para a
elaboração e implementação de um software ou programa de computador é
necessário uma seqüência de práticas. Essa seqüência é conhecida como Processo
de&nbsp;Software, ou Processo de Engenharia de Software e englobam as
atividades de especificação, projeto, implementação, testes e caracterizam-se
pela interação de ferramentas, pessoas e métodos.

Dentre várias
possibilidades para o desenvolvimento de software, o desenvolvimento
tradicional e o desenvolvimento ágil merecem atenção especial. Teles (2006,
p.30) define “desenvolvimento tradicional” ou “clássico” quando os projetos de
software são “baseados no modelo cascata” ou quando estão muitos próximos desse
modelo como o RUP (Rational Unified Process). Esse modelo clássico foi o
primeiro processo de desenvolvimento de software publicado (PRESSMAN, 2006). 

Segundo Teles
(2006) o modelo tradicional, sugere que a construção do programa de computador
ou software deve seguir uma linha seqüencial ou fases: Análise onde o
desenvolvedor procura buscar e entender as necessidades; Design é a projeção da
arquitetura tendo como base a análise; Implementação que é quando a equipe
define a arquitetura e as diversas partes do programa de computador; Teste que
ajuda a identificar e verificar se o sistema atende aos requisitos específicos
definidos pelo usuário; Implantação que é quando o sistema é colocado em
operação; Manutenção que ocorre até o final da vida ou seja, até quando o
software estiver em operação poderá sofrer alterações.



Para Sommerville
(2003), como ilustrado na Figura 08 o ciclo de vida clássico do software tem
cinco fases: definição de requisitos, projeto do software, implementação e
teste unitário, integração e teste do sistema, operação e manutenção.








Fases do modelo de Desenvolvimento Clássico



Fonte: Adaptado de
Sommerville (2003)





O Modelo em Cascata, também chamado de Ciclo de Vida Clássico, é um processo recomendado quando os requisitos de um problema são razoavelmente bem compreendidos, ou seja, quando o trabalho flui da comunicação até a implantação de um modo linear.O Modelo em Cascata, conforme ilustrado na figura 1, sugere uma abordagem sistemática e seqüencial para o desenvolvimento de softwares.Fonte:&nbsp;http://julianakolb.com/2012/02/01/o-modelo-em-cascata/






Modelo em Cascata.

Fonte: PRESSMAN (2010).



Para o modelo de
Desenvolvimento Ágil, Teles (2006, p. 31) refere-se ao desenvolvimento
interativo ou espiral, de forma que todas as fases descritas no modelo cascata
“sejam executadas diversas vezes ao longo do projeto, produzindo círculos”.