Академический Документы
Профессиональный Документы
Культура Документы
Conceitos Básicos de
Engenharia de Software
Conceitos básicos – Crise de
software
A abordagem utilizada nesse material apresentará a você uma ampla
perspectiva da Engenharia de Software. Esses aspectos são importantes
para a Engenharia de Software no século XXI, quando enfrentamos o desafio
de assegurar que nosso software cumpra as reais necessidades de seus
usuários, sem causar danos a eles ou ao meio ambiente.
Hoje em dia, praticamente todos os países dependem de complexos
sistemas com base em computadores. Cada vez mais os produtos
incorporam, de algum modo, computadores e softwares de controle. Nesses
sistemas, o software representa uma grande e crescente proporção do custo
total do sistema. Por isso, produzir software de um modo que apresente uma
boa relação custo-benefício é essencial para o funcionamento das economias
nacionais e internacionais.
Segundo Sommerville (2003), Engenharia de Software é uma
disciplina da Engenharia cuja meta é o desenvolvimento de sistemas de
software com boa relação custo-benefício. O software é abstrato e intangível,
não é restrito por materiais nem regido por leis fiscais ou por processos
industriais. De certa maneira, isso simplifica a Engenharia de Software, por
não haver limitações físicas para o potencial de software. Por outro lado,
contudo, essa ausência de limitações naturais significa que o software pode
facilmente se tornar bastante complexo e, consequentemente, muito difícil de
ser compreendido.
O conceito de Engenharia de Software surgiu pela primeira vez em
1968, em uma conferência organizada para discutir a chamada crise do
software. Essa crise resultava diretamente da introdução de novo hardware
de computador baseado em circuitos integrados. Seu poder fez das
aplicações de computador, consideradas até então não realizáveis, propostas
viáveis. O software resultante era ordens de grandeza maiores e mais
complexas que os sistemas de software anteriores (SOMMERVILLE, 2007).
Segundo Pressman (2004), os problemas que originaram essa crise
tinham relacionamento direto com a forma de trabalho das equipes. Eram
problemas que não se limitavam a "sistemas que não funcionam
corretamente", mas envolviam também dúvidas sobre como desenvolver e
manter um volume crescente de software e ainda estar preparado para as
futuras demandas. Essencialmente, eram sintomas provenientes do pouco
entendimento dos requisitos por parte dos desenvolvedores, somados às
técnicas e medidas pobres aplicadas sobre o processo e o produto, além dos
poucos critérios de qualidade estabelecidos até então.
Requisitos de software;
Projeto de software;
Construção de software;
Teste de software;
Manutenção de software;
Gerência de configuração de software;
Gerência da Engenharia de Software;
Processo de Engenharia de Software;
Ferramentas e métodos da Engenharia de Software;
Qualidade de software.
Uma diferença importante entre esses diversos tipos de software é que, nos
produtos genéricos, a organização que desenvolve o software controla sua
especificação. Para os produtos personalizados, a especificação é usualmente
desenvolvida e controlada pela organização que está comprando o software.
Os desenvolvedores de software devem trabalhar de acordo com essa
especificação.
Não há uma resposta simples para essa pergunta, uma vez que a
precisa distribuição de custos ao longo do processo de software depende do
processo utilizado e do tipo de software que será desenvolvido. Porém, em
média, podemos dizer que (SOMMERVILLE, 2003):
Cerca de 60% dos custos são de desenvolvimento;
40% são custos de teste;
Para software sob encomenda, os custos de evolução
frequentemente excedem os custos de desenvolvimento.
Fundamentos de Engenharia de
Software
R.S. PRESSMAN & ASSOCIATES, INC. Products that improve your software
engineering practices. Disponível em: <http://www.rspa.com>. Acesso em: 12
fev. 2013.