Buscar

Engenharia_Software_Módulo_01

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 11 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Engenharia de 
Software I
INTRODUÇÃO AO SOFTWARE INTRODUÇÃO AO SOFTWARE
APRESENTAÇÃO
Caro(a) aluno(a), seja muito bem-vindo(a)!Neste módulo, vamos mostrar uma visão geral dos conceitos relacionados aos 
softwares, os principais problemas do cenário do software e uma introdução sobre 
como a Engenharia de Software vem tentando melhorar alguns aspectos neste cenário. 
Abordaremos também alguns dos mitos existentes sobre os softwares.
Conte comigo para orientá-lo(a) ao longo do curso. Desde já, parabenizo você por decidir 
aprofundar seus conhecimentos sobre os softwares e seus processos de criação.
OBJETIVOS DE APRENDIZAGEM
Ao final deste módulo, você deverá ser capaz de:
• conhecer os conceitos básicos sobre software;
• entender sobre o processo de evolução do software;
• compreender os motivos que levaram ao cenário conhecido como “Crise do 
Software”;
• refletir sobre o cenário atual dos softwares e sobre os problemas envolvidos no 
processo de software;
• entender o papel da Engenharia de Software;
• discutir sobre diversos mitos relacionados ao software.
BELO HORIZONTE - 2016
FI
CH
A
 T
ÉC
N
IC
A FUMEC VIRTUAL - SETOR DE 
EDUCAÇÃO A DISTÂNCIA
Coordenação Pedagógica
Assessoria ao Professor, 
Assessoria do Aluno e Tutoria
Coordenação
Gabrielle Nunes Paixão
Transposição Pedagógica
Riane Gervásio
Produção de 
Design Multimídia
Coordenação
Rodrigo Tito M. Valadares
Design Multimídia
Nathan Ackerman Chagas de Souza
Infra-Estrututura e Suporte
Coordenação
Anderson Peixoto da Silva
AUTORIA
Prof. Ugo Caputo
INTRODUÇÃO AO SOFTWARE
Introdução ao Software
O software é um sistema lógico composto de instruções que, quando executadas, forne-
cem a função e o desempenho desejados. Porém, apenas esta definição não traduz toda a 
variedade e complexidade de elementos envolvidos por trás de um software. Atualmente, 
a maioria dos profissionais bem como a maior parte do público consideram que entendem 
o que é software. Será que entendem?
O software é um elemento de sistema lógico, e não físico. Apesar disto, o software é 
implantado em um ambiente físico que, em muitos casos, pode ser altamente complexo e 
interferir, inclusive, nas características do próprio software.
Para você começar a entender o que é um software, deve conhecer suas principais 
características:
• O software é desenvolvido e projetado por engenharia, e não manufaturado no senti-
do clássico. Seus custos estão associados à engenharia.
• O software não se desgasta, não é sensível aos efeitos do tempo, que causam 
desgaste do hardware.
• Apesar de não se desgastar, o software se deteriora.
• Podem ser produtos genéricos ou podem ser desenvolvidos sob encomenda, para 
uma finalidade específica.
EVOLUÇÃO DO SOFTWARE
Inicialmente, nas três primeiras décadas da era do computador, o desafio maior estava concen-
trado no desenvolvimento do hardware. Elementos de hardware menores, mais rápidos e com 
o custo mais baixo eram o principal ponto a ser evoluído. A partir da década de sessenta, o 
mundo presenciou o surgimento de novos computadores, mais modernos e com maior poder 
computacional. A demanda por novos softwares cresceu a uma velocidade que a capacidade 
de desenvolvimento de software não conseguia acompanhar. Uma série de problemas rela-
cionados ao “amadorismo” utilizado na construção dos softwares ficou evidente, culminan-
do na Crise do Software, momento caracterizado pelas dificuldades do desenvolvimento de 
software frente ao rápido crescimento da demanda existente, da complexidade dos problemas 
a serem resolvidos e da inexistência de técnicas estabelecidas para o desenvolvimento de 
sistemas que funcionassem adequadamente ou pudessem ser validados.
Em decorrência deste cenário, uma série de problemas relacionados a projetos de software 
começaram a ocorrer, gerando prejuízos em diversos setores. A natureza destes problemas 
variava desde estouro de orçamento e prazo à qualidade do produto e à dificuldade em sua 
manutenção. Dados da pesquisa realizada pelo Standish Group, denominada Chaos Report, do 
ano de 2014, indicam que apenas 16% dos projetos foram entregues com sucesso (respeitando 
os prazos, os custos e o escopo). Indicam ainda que aproximadamente 31% dos projetos foram 
cancelados antes de estarem completos e que 53% foram entregues com prazos maiores, 
custos maiores e/ou com menos funcionalidades do que asespecificadas no início do projeto.
CHAOS REPORT, 2014
Fonte: Standish Group - Chaos Report, 2014. 7
PROBLEMAS ASSOCIADOS AO SOFTWARE
O termo Crise do Software é utilizado pelos autores para se referir a uma série de 
problemas associados ao software e ao período em que estes problemas “explo-
diram”. Este conjunto de problemas não se limita apenas à qualidade do software 
tampouco aos programadores que o desenvolvem.
Dentre os problemas relacionados ao software, podemos destacar:
• estimativas de prazos e de custos, que são frequentemente imprecisos;
• produtividade dos profissionais da área, que não têm acompanhado a deman-
da por novos serviços;
• a qualidade do software desenvolvido, que é insuficiente;
• processo de software inadequado (falaremos sobre processos de software mais 
adiante na apostila).
Algumas causas destes problemas podem também ser destacadas:
• Não dedicamos tempo suficiente na coleta de dados sobre o software a ser desen-
volvido e na realização das estimativas - estimativas realizadas “a olho”.
• Fraca comunicação entre o cliente e o desenvolvedor.
• Falta ou inadequação de testes sistemáticos e completos.
• Gerentes de projetos sem background em desenvolvimento de software.
• Falta de investimento em Engenharia de Software.
EVOLUÇÃO DO CENÁRIO DO SOFTWARE
O contexto no qual os softwares estão inseridos é dinâmico e vem passando por grandes 
evoluções ao longo de cinco décadas. Com o aumento da capacidade de produção de 
hardware e o surgimento de computadores mais potentes e velozes, capazes de processar 
um grande volume de informações em um curto espaço de tempo, assim como o “boom” 
da Internet, as empresas e o mercado passaram a ter acesso a todo tipo de informação 
e ferramentas quase que instantaneamente, o que impactou diretamente na forma como 
as relações comerciais acontecem. 
Sociedade industrial, da automação Sociedade da informação
O mundo mudou. A sociedade mudou.
A informação passou a ser o diferencial em todas as relações de negócio. A grande 
disponibilidade de informações tornou cada vez mais necessária a existência de softwa-
res capazes de processá-las e dar o feedback desejado, de forma rápida e objetiva. 
O mundo dos negócios, comércio, indústrias, prestação de serviços, educação, enfim, 
todos os setores passaram a demandar software em um ritmo cada vez mais acelerado. 
Atualmente, até mesmo as relações sociais estão sendo altamente influenciadas pelos 
softwares e pelos dispositivos portáteis. A evolução do hardware continua, assim como a 
demanda por novos softwares capazes de operar estes hardwares.
Introdução ao Software8
TIPOS DE SOFTWARE
Existem diferentes situações nas quais os softwares podem ser aplicados. Podemos divi-
dir estas aplicações em algumas categorias que nos permitem classificar estes softwares 
quanto a suas características:
• Software Básico – é um conjunto de programas para dar apoio a outros programas. 
Tem como característica uma forte interação com o hardware, operações concorren-
tes, compartilhamento de recursos, uso por múltiplos usuários e múltiplas interfaces.
• Software de Tempo Real – são programas que monitoram, analisam e controlam 
eventos do mundo real, devendo responder aos estímulos do mundo externo com 
restrições de tempo predeterminadas.
• Software Comercial – é a maior área de aplicação de softwares, são aplicações que 
gerenciam as operações comerciais de modo a facilitar o gerenciamento comercial 
do negócio da empresa, permitindo também a tomada de decisões.
• Software Científico – são caracterizados por algoritmos de processamento numérico, 
dependentesda coleta e processamento de dados para as mais variadas áreas do 
conhecimento.
• Software Embutido – são desenvolvidos para executar atividades muito específicas 
e inseridos em produtos inteligentes tanto para atividades comerciais como para 
atividades domésticas.
• Software de Computador Pessoal – são produtos desenvolvidos para o uso pessoal 
do computador, tais como planilhas eletrônicas, processadores de textos, jogos, etc.
• Software de Inteligência Artificial – fazem uso de algoritmos não numéricos para 
resolver problemas complexos que não apresentam facilidades computacionais 
numéricas ou de análise direta.
CENÁRIO ATUAL DO SOFTWARE
E a crise, acabou? Será que estamos livres dos problemas relacionados à alta demanda x 
capacidade produtiva, enfrentados no passado?
Vamos analisar a figura abaixo:
Esta é uma figura conhecida e altamente difundida no mundo do software e envolve 
diversas tarefas de diversos papéis envolvidos na criação de um software. Analisando-se 
a figura, fica clara a existência de algum problema. Muitas das empresas atuais enfrentam 
situações semelhantes às ilustradas pelos diversos quadros da figura. O problema ou o 
erro em questão não é apenas de uma pessoa, e simplesmente substituir um dos profis-
sionais envolvidos por outro que não cometa o erro dificilmente irá solucionar o cenário 
ilustrado. A solução deste cenário passa pela utilização de Engenharia de Software, por 
meio de processos que contemplem etapas e tarefas que possibilitem que os erros ocor-
ridos durante as fases não cheguem ao produto final.
Engenharia de Software
O QUE É ENGENHARIA DE SOFTWARE?
Com o tempo, percebeu-se que é mais barato planejar do que corrigir um software. O 
desenvolvimento de software passou a ser baseado em princípios da engenharia para o 
desenvolvimento do produto, ou seja, levantar os requisitos associados, construir mode-
los para representar a solução a ser desenvolvida, implementar as diversas unidades que 
irão compor o produto, verificando se tais unidades atendem aos requisitos identifica-
dos, realizar a integração entre as unidades, também verificando seu funcionamento, até 
que tenhamos o produto por completo, que deve passar por uma série de verificações 
(testes funcionais, desempenho e estresse, usabilidade, etc.), para que possamos concluir 
o desenvolvimento construído a partir de um conjunto de etapas planejadas e bem defi-
nidas. Em outras palavras, a engenharia de software é a aplicação de uma abordagem 
sistemática, disciplinada e quantificável para o desenvolvimento de um software.
Uma primeira definição formal de engenharia de software foi proposta por Fritz Bauer, em 
1969: “O estabelecimento e uso de sólidos princípios de engenharia para que se possa 
obter economicamente um software que funcione eficientemente com máquinas reais”.
Em 1987, Arndt Von Staa apresentou a seguinte definição: “O desenvolvimento e a apli-
cação de ciência, matemática, técnicas, métodos e ferramentas para o desenvolvimento 
e a manutenção econômica de software de qualidade preditível e controlável, operando 
de modo econômico em máquinas e ambientes reais”.
A engenharia de software abrange um conjunto de três elementos fundamentais: méto-
dos, ferramentas e procedimentos. Por meio destes elementos, a engenharia de software 
visa possibilitar aos gerentes o controle do processo produtivo dos softwares, os subsí-
dios técnicos e as informações necessárias aos profissionais, para que estes tenham a 
base necessária para o desenvolvimento de um software com alta qualidade.
Os métodos de engenharia de software proporcionam os detalhes de “como fazer” para 
construir o software. Envolvem um amplo conjunto de tarefas que inclui: planejamento e 
estimativa de projeto, análise de requisitos de software e de sistemas, projeto da estrutura 
de dados, arquitetura de programa e algoritmo de processamento, codificação, testes, 
manutenção, documentação, implantação, etc. Os métodos da engenharia de software 
muitas vezes introduzem uma notação gráfica ou orientada em linguagem especial e intro-
duzem um conjunto de critérios para a qualidade do software.
As ferramentas de engenharia de software proporcionam apoio automatizado ou semiau-
tomatizado aos métodos. Atualmente, existem ferramentas para sustentar cada um 
dos métodos anotados anteriormente. Quando as ferramentas são integradas de forma 
que a informação criada por uma ferramenta possa ser usada por outra, é estabeleci-
do um sistema de suporte ao desenvolvimento de software, chamado engenharia de 
software auxiliada por computador (CASE - Computer-Aided Software Engineering). 
Introdução ao Software10
O CASE combina software, hardware e um banco de dados de engenharia de software (uma 
estrutura de dados contendo importantes informações sobre análise, projeto, codificação 
e teste) para criar um ambiente de engenharia de software. Algumas ferramentas, denomi-
nadas ferramentas de quarta geração ou 4GL permitem que, a partir de uma especificação 
de software em uma linguagem de alto nível, o código fonte seja gerado automaticamente.
Os procedimentos da engenharia de software constituem o elo que liga os métodos às 
ferramentas, possibilitando o desenvolvimento racional e oportuno do software de compu-
tador. Os procedimentos definem a sequência em que os métodos serão aplicados, os 
produtos que se exige que sejam entregues (documentos, relatórios, formulários etc.), os 
controles que ajudam a assegurar a qualidade e a coordenar as mudanças, e os marcos 
de referência, que possibilitam aos gerentes de software avaliar o progresso.
O emprego dos diferentes conjuntos de etapas envolvendo os métodos, as ferramentas 
e os procedimentos muitas vezes são referenciados como paradigmas da engenharia de 
software. Um paradigma de engenharia de software é escolhido, tendo-se como base 
a natureza do projeto e da aplicação, os métodos e as ferramentas a serem usados, os 
controles e os produtos que precisam ser entregues e a disponibilidade de recursos físicos 
e humanos a serem empregados.
Métodos, Ferramentas e Procedimentos definidos na Engenharia de Software
• Permitem que o gerente controle todo o processo de desenvolvimento do software.
• Oferecem ao profissional desenvolvedor uma base para a construção de software 
de alta qualidade.
• Levam à produção de um software que atenda aos requisitos e expectativas do cliente.
Resumidamente falando, a engenharia de software visa, por meio da utilização de méto-
dos, ferramentas e procedimentos, em uma abordagem sistemática e controlável, condu-
zir o processo de produção de softwares de qualidade, que atendam ao planejamento no 
que diz respeito a escopo, custos e prazos do projeto.
PROBLEMAS ENVOLVIDOS NO 
PROCESSO DE SOFTWARE
Voltando a falar do cenário atual do software, vamos repetir a mesma pergunta. E a crise, 
acabou?
A resposta desta pergunta não é exata (sim ou não). Enquanto algumas empresas já 
implementam processos e métodos bem definidos e conseguem caminhar no sentido 
dos objetivos da engenharia de software com bastante eficiência, outras ainda estão 
“apanhando” na tentativa de se livrar dos diversos problemas envolvidos na produção 
de um software. A maior ou menor taxa de sucesso nos processos de engenharia de 
software pode variar de uma empresa para outra, de uma região geográfica para outra ou 
até mesmo de um projeto para outro dentro de uma mesma empresa. Para entender isto, 
vamos conhecer os três principais elementos do processo de software.
Processos PessoasTecnologia
Introdução ao Software 11
Cada um destes três elementos, processos, pessoas e tecnologia se completam. A falha 
em um destes três irá, possivelmente, culminar em problemas com o software a ser 
produzido. Não adianta ter um processo maduro e bem definido, com tecnologia avança-
da, porém pessoas inadequadas. Da mesma forma, não adianta ter pessoas competentes, 
tecnologia avançada e processos antiquados e ineficientes ou, por fim, pessoas compe-
tentes, um processomaduro e bem definido, mas tecnologia inadequada.
Outra questão importante a ser colocada é a diferença entre um software desenvolvido 
por uma pessoa para uso próprio de um software desenvolvido para um cliente e que será 
vendido como um produto. Muitos alunos fazem a associação de software com aquele 
pequeno projeto que ele mesmo desenvolve para si ou para um pequeno cliente que 
solicitou um software pequeno e simples. Nestes casos, dificilmente se emprega algum 
tipo de processo, a tecnologia utilizada é a primeira disponível (normalmente aquela que 
o desenvolvedor do software já conhece), e há pouca ou nenhuma documentação, assim 
como o planejamento de custo, prazo e escopo a ser entregue é feito de forma intuitiva. 
Quando se trata de um “produto software” a ser produzido por uma empresa, envolvendo 
várias pessoas e um cliente que está patrocinando o desenvolvimento deste software, o 
cenário é bem diferente. Neste caso, o emprego da engenharia de software passa a ser 
fundamental. O software em questão será utilizado por diversas pessoas diferentes de 
áreas diferentes e com necessidades diferentes, sendo necessário entender a necessidade 
destas pessoas e a realidade do processo de negócios no qual estas pessoas estão inseri-
das. Desde um bom levantamento de requisitos até a realização de uma bateria de testes 
e a entrega do software, uma série de etapas deve ser percorrida, devendo a equipe de 
desenvolvimento estar apta a lidar com as dificuldades e os diferentes pontos de erro que 
existem em cada uma destas etapas, que iremos conhecer mais adiante.
OS DESAFIOS DA ENGENHARIA DE SOFTWARE
Atualmente, os principais desafios da engenharia de software são:
• O software legado
Fazer a manutenção e a atualização dos softwares atuais, sem apresentar grandes 
custos, e ao mesmo tempo prosseguir com a prestação dos serviços corporativos 
essenciais é um grande desafio. Em alguns casos, não existe documentação dos 
softwares legados, e as pessoas que o desenvolveram não estão mais disponíveis 
para serem consultadas, sendo necessário um grande trabalho de levantamento e 
análise, para que as manutenções possam ocorrer. Em outros casos, os problemas 
com o software legado envolvem a estrutura sob a qual ele foi desenvolvido, que 
não suporta mais seu crescimento ou é incompatível com as novas necessidades do 
negócio, tornando a manutenção extremamente cara ou até mesmo inviável.
• A heterogeneidade do software
As técnicas utilizadas na construção de softwares devem ser confiáveis e flexíveis, 
para que os softwares desenvolvidos sejam capazes de funcionar em diferentes 
ambientes, equipamentos e sistemas. Não se pode mais pensar apenas em compu-
tadores quando se fala de software. A variedade de hardware faz com que seja 
necessário o desenvolvimento de softwares capazes de funcionar ao mesmo tempo 
em computadores, celulares, tablets, na web (nuvem) e muitas outras configurações.
• O fornecimento do software
O fornecimento do software é atualmente um desafio, uma vez que é cada vez 
maior a demanda por novos softwares ou novas funcionalidades, em um tempo 
cada vez menor. É preciso entregar mais em menos tempo, sem que a qualidade 
seja comprometida. Mais adiante falaremos sobre a demanda reprimida por software 
nas empresas e na relação existente entre produtividade, confiabilidade e manute-
nibilidade, que pode levar as empresas de software a enfrentar sérios problemas a 
médio e longo prazo.
Introdução ao Software12
MITOS DO SOFTWARE
Existem muitos mitos acerca do desenvolvimento de software, que podem causar proble-
mas ao longo do processo. Muitos destes mitos são decorrentes de desinformação e 
podem causar grande confusão e desentendimentos, uma vez que são tomados como 
verdade e estão enraizados nas crenças dos envolvidos no processo de um software.
Mitos administrativos
São os mitos relacionados às pessoas ligadas à gestão/administração da empresa ligada 
ao software.
• “Um bom manual oferece toda a informação necessária para que a equipe seja 
capaz de desenvolver o software.”
Na prática, muitos problemas podem surgir ao longo do desenvolvimento. A equipe 
deve ter acesso à prática do negócio ao qual o software será destinado e ter condi-
ções de refletir sobre os problemas e as mudanças que podem aparecer ao longo 
do processo.
• “O acesso a computadores de última geração dá à equipe o que ela necessita para 
desenvolver softwares de última geração.”
• Ter um computador moderno não garante à equipe aquilo que ela necessita para obter 
a qualidade do software. Ferramentas e processos de desenvolvimento adequados 
são mais importantes que um hardware de última geração.
• “Caso o desenvolvimento do software esteja atrasado, basta aumentar a equipe de 
desenvolvimento para reduzir o tempo e o atraso será compensado.”
Este mito é um clássico no qual os gerentes acreditam e ao qual se apegam forte-
mente. Na prática, os componentes de um software não são como os tijolos de uma 
parede onde, aumentando-se o número de pessoas, aumenta-se a taxa de tijolos 
colocados em um intervalo de tempo. Aumentar a equipe de desenvolvimento em 
um projeto que já está atrasado provavelmente irá atrasá-lo ainda mais, uma vez 
que os novos membros precisarão ser treinados e este treinamento irá envolver os 
profissionais da equipe já atrasada.
Mitos do cliente
São os mitos relacionados ao software nos quais os clientes acreditam fortemente.
• “Uma descrição breve e geral dos requisitos do software é o suficiente para iniciar o 
seu projeto. Maiores detalhes podem ser definidos posteriormente.”
A falha na fase de levantamento dos requisitos pode levar o projeto ao fracasso. É 
importante que a definição dos requisitos seja o mais precisa e detalhada possível. 
Deixar para depois pode levar a não acontecer e os requisitos podem ficar incom-
pletos ou serem insuficientes.
• “As contínuas mudanças nos requisitos não representam um problema, uma vez que 
o software é flexível e poderá suportar facilmente as alterações”.
Por mais flexível que um software possa ser, existe um limite até onde esta flexibili-
dade pode ir. Em alguns casos o custo de uma alteração em um software após certo 
estágio de seu desenvolvimento pode ser muito alto, chegando a ser significativo 
em relação ao próprio custo do software.
Introdução ao Software 13
Mitos do profissional
São os mitos relacionados ao software os quais os próprios profissionais de software 
acreditam ser verdade.
• “Após a finalização do desenvolvimento e implantação de um programa, o trabalho 
está terminado”.
Na realidade, grande parte do trabalho ocorre após a implantação do software. 
Segundo Pressman (2002), de 50 a 70% do trabalho empregado em um software 
ocorre após sua entrega, na fase de manutenção do software, seja ela corretiva ou 
evolutiva.
• “Quanto mais cedo o código começar a ser escrito, mais rápido o programa ficará 
pronto”.
Existe um momento certo para que o desenvolvimento do software seja iniciado. 
Este momento pode variar de, acordo com o processo de software usado, com as 
características do software, dentre outras coisas. Iniciar o desenvolvimento antes 
da hora apropriada pode levar à necessidade de retrabalho para corrigir parte do 
desenvolvimento feito de forma errada.
• “Só é possível avaliar a qualidade de um programa após a entrada desse programa 
em funcionamento”.
A qualidade do software é testada e avaliada em vários momentos durante o seu 
desenvolvimento, mesmo antes de este estar pronto. Baterias de testes podem 
ocorrer em diferentes momentos do processo de software, por exemplo.
• “O produto final a ser entregue é o programa funcionado”.
O software funcionando é um dos entregáveis de um projeto do software. O treina-
mento dos usuários, a documentação e uma série de outros elementos devem fazer 
parte da entrega de um projeto destes.
Introdução ao Software14
15
Síntese 
Neste módulo, você viu os conceitos básicos da Engenharia de Software, o contexto no 
qual os softwares sãocriados e as principais características que envolvem o software 
como produto. Entendeu a evolução do software desde seu momento inicial até o momen-
to da Crise do Software, que culminou com a necessidade da adoção de processos de 
criação de software mais bem definidos. Estas questões levaram o software a ser produ-
zido de forma semelhante aos produtos criados por processos de engenharia, e não mais 
por processos manufaturados. Por fim, conheceu diversos problemas relacionados ao 
processo de software e os mecanismos encontrados pela Engenharia de Software para 
tentar minimizar estes problemas, indo ao encontro dos objetivos de produção de softwa-
re com qualidade.
Referências
PARREIRA JÚNIOR, Walteno Martins; Engenharia de Software, UFMG, 2013. Apostila.
PAULA FILHO, W. P. Engenharia De Software: Fundamentos, Métodos E Padrões. São Paulo: LTC, 2009.
PRESSMAN, Roger S. Engenharia de Software. 6 ed. São Paulo: McGraw-Hill, 2006.

Continue navegando