ATPS DE OO
1.1 CONCEITOS GERAIS DE ENGENHARIA DE SOFTWARE
Engenharia de software é uma abordagem sistemática e disciplinada para o desenvolvimento de software (PRESSMAN, 2006).
Uma das grandes dificuldades da engenharia do software é resolver o problema e deixar o cliente satisfeito com o software (JALOTE, 2005). Com essas duas definições podemos enxergar de forma supercial a engenharia de software. Elaborar sistemas nunca foi uma tarefa fácil, todo sistema computacional exige algo simples, porém complexo, que é o que chamamos de funcionalidades. Essa funcionalidade se torna um tema complexo principalmente no processo de extração. Produzir um software vai além de saber programar, produzir um software de qualidade requer uma abordagem ampla nos aspectos sociais, econômicos, visual e objetivos como no caso de viabilidades. Como PRESSMAN referenciou em seu livros, essa abordagem sistemática e disciplinada, compõe um papel de extrema importância no desenvolvimento de qualquer programa computacional. Enquanto o programador se preocupa em programar o sistema, o engenheiro de software se preocupar em atender seu cliente com tudo o que foi requisitado por ele, ou seja deixá-lo satisfeito! No desenvolvimento de um projeto de software quanto mais complexo é o software, maior é o empenho que o engenheiro de software deve fazer para desenvolver e tem que ter maior gerenciamento (JALOTE, 2005). Essa declaração de JALOTE pode parecer óbvia, porém necessária. Imagine o processo de desenvolvimento de software como uma loja de departamento. Todos os departamentos são sistematicamente organizados e nessa organização as funções ou tarefas são distribuídas de forma que, cada departamento trabalhe em prol de apenas um objetivo, produzir lucros para a empresa. Todavia, todo esse processo não é nada simples, exige liderança e gerenciamento nas distribuições das funções. O mesmo acontece no processo de desenvolvimento de software. Em um projeto de software, as funções são