Parece haver desorientação em relação a
como planejar e conduzir o processo de
desenvolvimento de software. Muitos
desenvolvedores concordam que não
utilizam um processo adequado e que
deveriam investir em algum, mas ao
mesmo tempo dizem que não tem tempo
ou recursos financeiros para fazê-lo -
Repete isso há decadas
O termo “crise do software” foi usado
pela primeira vez com impacto por
Dijkstra (1971).
considerando o rápido progresso do
hardware e das demandas por
sistemas cada vez mais complexos,
os desenvolvedores simplesmente
estavam se perdendo, porque a
Engenharia de Software
PROBLEMAS: Projetos que estouram o
cronograma. -Projetos que estouram o
orçamento. -Produto final de baixa
qualidade ou não atendendo aos requisitos.
-Produtos não gerenciáveis e difíceis de
manter e evoluir.
crise do software continuará
enquanto os desenvolvedores de
software continuarem a utilizar
processos artesanais e a não
capitalizarem erros e acertos.
CONCEITOS
Engenharia de Software é uma profissão
dedicada a projetar, implementar e modificar
software, de forma que ele seja de alta
qualidade, a um custo razoável, manutenível
e rápido de construir
Engenharia de Software é a aplicação de
abordagens sistemáticas, disciplinadas e
quantificáveis ao desenvolvimento, operação
e manutenção de software, além do estudo
destas abordagens
os processos de
engenharia de software
são diferentes
dependendo do tipo de
software que se vai
desenvolver.
DIFERENÇAS: O desenvolvedor, seja ele analista,
projetista, programador ou gerente de projeto, é um
executor do processo de construção de software. O
engenheiro de software não coloca a mão na massa,
assim como o engenheiro civil não vai à obra
assentar tijolos ou concretar uma laje, ele defini
como será o processo
O engenheiro de software, assim, não
desenvolve nem especifica software. Ele
viabiliza e acompanha o processo de
produção fornecendo e avaliando as
ferramentas e técnicas que julgar mais
adequadas a cada projeto ou empresa
PAPEIS
O engenheiro de software escolhe e, muitas vezes,
especifica os processos de gerência e produção a
serem utilizados.
O gerente de projeto cuida de um projeto específico,
garantindo que os prazos e orçamento sejam cumpridos
O analista é um desenvolvedor responsável pela
compreensão do problema relacionado ao sistema que se
deve desenvolver, ou seja, pelo levantamento dos requisitos
e sua efetiva modelagem
O projetista deve tomar as especificações do
analista e propor a melhor tecnologia para
produzir um sistema executável para elas
O programador vai construir a solução física a
partir das especificações do projetista