Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

Princípios da Engenharia 
de Software
 
SST Princípios da Engenharia de Software 
Ano: 2021
nº de p.: 10
Copyright © 2021. Delinea Tecnologia Educacional. Todos os direitos reservados.
Princípios da Engenharia de 
Software
3
Apresentação
Caro Aluno, esta unidade tem como objetivo geral abordar uma introdução à 
Engenharia de Software, apresentando o seu conceito, um breve histórico de como 
esta surgiu na área da computação, falando sobre a sua importância e apresentando 
os principais conceitos ligados à Engenharia de Software, fundamentais à sua 
compreensão, como seus princípios básicos.
4
1. O QUE É ENGENHARIA DE 
SOFTWARE?
A Engenharia de Software é uma área da computação voltada à especificação, 
desenvolvimento, manutenção e criação de software. Segundo Pressman (2006), a 
Engenharia de Software é a criação e a utilização de sólidos princípios de engenharia 
a fim de obter softwares econômicos que sejam confiáveis e que trabalhem 
eficientemente em máquinas reais. Em suma, podemos compreender a Engenharia 
de Software como uma área cuja preocupação é o desenvolvimento de software 
em todos os aspectos, desde o momento em que a ideia de um software surge e 
ele começa a ser planejado, passando por todo o seu processo de criação, até o 
momento em que este software é descontinuado.
A Engenharia de Software compreende a aplicação de tecnologias e práticas de 
gerência de projetos, de processos de engenharia, programação, design, entre outras 
disciplinas, sempre visando a organização, a produtividade e a qualidade na criação 
de softwares. A base da engenharia de software é um conjunto de atividades para o 
processo de desenvolvimento de software. A existência de vários tipos de processo 
de desenvolvimento de software e podemos dizer para resolver o problema do 
software usam estas atividades tais como: analise de requisito, design do software, 
código e teste (JALOTE, 2005 apud CARDILLI, 2010).
O cientista da computação alemão Friedrich Ludwig Bauer, autor da primeira 
definição para o termo “engenharia de software”, a define como “a criação e a 
utilização de sólidos princípios de engenharia a fim de obter software de maneira 
econômica, que seja confiável e que trabalhe em máquinas reais". O termo 
“engenharia de software” foi utilizado oficialmente em 1968, durante a NATO Science 
Committee, uma conferência que ocorreu em Garmisch, na Alemanha, e reuniu 
grandes nomes da área da computação.
5
2. COMO E POR QUE SURGIU A ENGENHARIA DE 
SOFTWARE?
Softwares
Fonte: Plataforma Deduca (2021)
#PraCegoVer: A figura mostra ícones de softwares saindo de 
um celular.
Nos anos 40, quando os sistemas computadorizados começaram a evoluir, 
grande parte dos esforços concentravam-se no desenvolvimento de hardware, 
principalmente em razão das limitações e dificuldades encontradas naquela época. 
À medida que a tecnologia de hardware foi sendo dominada, as preocupações 
se voltaram, no início dos anos 50, ao desenvolvimento dos primeiros sistemas 
operacionais e ao surgimento das primeiras linguagens de programação de alto 
nível, como Fortran e Cobol.
Segundo Mazzola (2010), a tendência era poupar cada vez mais o usuário de ter que 
conhecer profundamente as questões relacionadas ao funcionamento interno da 
máquina, permitindo que este pudesse concentrar seus esforços na resolução dos 
seus problemas utilizando a máquina em vez de preocupar-se com os problemas 
relacionados ao funcionamento dela.
Já no início dos anos 60, com o surgimento dos sistemas operacionais com 
características de multiprogramação, a eficiência e utilidade dos sistemas 
computacionais teve um considerável crescimento, que contribuiu também, 
de forma significativa, com as constantes quedas de preço do hardware. Uma 
consequência deste crescimento foi a necessidade cada vez maior de desenvolver 
6
grandes sistemas de software em substituição aos pequenos programas aplicativos 
utilizados até então. Desta necessidade, surgiu um problema nada trivial, devido à 
falta de experiência e à não adequação a métodos de desenvolvimento existentes 
para os pequenos programas, o que foi caracterizado, ainda na década de 60 como a 
Crise do Software.
A crise do software foi um termo utilizado no final dos anos 60, quando a engenharia 
de software ainda não existia. Segundo Paiva (2016), o termo expressava as 
dificuldades do desenvolvimento de software frente ao rápido crescimento da 
demanda por software, 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.
A noção da crise do software emergiu no final dos anos 60. Uma das primeiras 
e mais conhecidas referências ao termo foi feita pelo cientista da computação 
holandês Edsger Dijkstra, na apresentação feita em 1972 na Association for 
Computing Machinery — ou, em português, Associação para Maquinaria da 
Computação, a primeira sociedade científica e educacional dedicada à computação, 
fundada em 1947 —, intitulada The Humble Programmer ou, em português, O Humilde 
Programador, publicada em forma de artigo científico no periódico Communications 
of the ACM.
No final dos anos 60, quando se vivia o período da terceira era da computação, a 
crise do software evidenciou muitos problemas no desenvolvimento de softwares 
daquela época, devido à baixa produtividade, dificuldades com prazos e custos, baixa 
qualidade e difícil manutenção. Os principais problemas eram:
• Estimativas de prazo e de custo imprecisas;
• Profissionais sem capacitação;
• Manutenção não era enfatizada como um critério importante;
• Não atendimento aos requisitos do usuário;
• Projetos eram cancelados ou extrapolavam o orçamento previsto.
A solução para a crise do software foi a utilização de técnicas, ferramentas e 
processos sistematizados para produzir software. Treinamento e educação em 
conjunto com a mudança de cultura sobre o que é desenvolver software e como 
deve ser feito. Com isso, surgiu a área da Engenharia de Software, numa tentativa 
de contornar a crise do software, tendo como finalidade dar um tratamento de 
engenharia (mais sistemático e controlado) ao desenvolvimento de sistemas 
complexos.
7
O termo Engenharia de Software tornou-se conhecido após a NATO Conference 
on Software Engineering (Conferência sobre Engenharia de Software da OTAN), 
em 1968, quando as dificuldades e armadilhas de projetar sistemas complexos 
foram discutidas francamente entre estudiosos da área. A busca por soluções 
havia começado. Concentrou-se em melhores metodologias e ferramentas. As 
mais importantes foram as linguagens de programação que refletem os estilos 
procedimental, modular e, em seguida, orientado a objeto. Também foram 
importantes os esforços de sistematização, automatização da documentação do 
programa e dos testes. Só após a conferência, as dificuldades foram discutidas 
abertamente e confessadas com franqueza.
O objetivo da Engenharia de Software e o motivo pela qual ela foi pensada foi para 
apresentar propostas de soluções às questões relacionadas ao desenvolvimento de 
software através do uso de técnicas, metodologias e ferramentas de modelagem e 
desenvolvimento de software.
3. PRINCÍPIOS DA ENGENHARIA DE 
SOFTWARE
Quando os primeiros programas de computador surgiram, ninguém imaginava que 
software se tornaria um elemento tão importante e teria a capacidade de manipular a 
informação. Com o passar do tempo, a evolução dos computadores e uma mudança 
de cultura na tecnologia — motivada pela Crise do Software, no final dos anos 60 — 
possibilitou encontrar maneiras de se criar sistemas complexos. No entanto, para 
quem desenvolve software, até hoje ainda há muitas preocupações, principalmente 
no que se refere a entregar o software no tempo previsto, garantir o mínimo de falhas 
no sistema, conhecer e priorizar as reais necessidades do usuário, entre outras.
Com o crescimento do segmento de desenvolvimento de software,muitas empresas 
possuem mais especialistas em TI (Tecnologia da Informação) — e também em 
outras áreas — e cada um tem suas responsabilidades no desenvolvimento de 
um software, diferente de antigamente, em que era comum um único profissional 
trabalhar sozinho em uma sala, desenvolvendo um software.
O sucesso de um projeto de software está ligado diretamente à sua capacidade de 
atendimento às necessidades do usuário. O sucesso de uma empresa de software 
é dependente da sua capacidade de produção deste produto de software em um 
prazo e custo eficazes. Neste sentido, segundo Medeiros (2013), a Engenharia de 
8
Software é composta de diversos conceitos de fundamental importância e abrange 
um processo, um conjunto de métodos ou práticas e diversas ferramentas que 
possibilitam aos profissionais desenvolverem software de alta qualidade.
Para Medeiros (2013), a primeira definição importante na Engenharia de Software 
é o próprio conceito de software. Muitos não sabem dizer realmente o que é um 
software. O engenheiro de software norte-americano, escritor, consultor e uma das 
maiores autoridades reconhecidas internacionalmente na área de tecnologias em 
melhoria de processos de software e engenharia de software, Roger Pressman 
(2006), define software como: (1) instruções que quando executados proveem 
pretendidas função e performance, (2) estrutura de dados que permitem aos 
programas manipular adequadamente as informações e (3) informação descritiva 
em meio virtual ou físico que explanam a operação e o uso dos programas.
Assim, podemos entender que um software abrange diversos elementos, tais como:
• Os programas executáveis em computadores de diversos portes ou arquite-
turas;
• Os conteúdos que são apresentados quando os programas são executados;
• E as informações descritivas em forma impressa ou virtual relacionadas ao 
software.
• Por essa definição, podemos observar que um software não se restringe so-
mente ao programa de computador ou seus dados, vai além disso e abrange 
também a sua documentação.
Confira outros conceitos importantes na Engenharia de Software:
Artefato
conjunto de elementos (executável, código-fonte, interface, banco de dados, 
documentação, entre outros) que constituem o software ou que estão 
relacionadas a ele.
Software Legado
refere-se a softwares que se tornam ultrapassados ao longo dos anos. 
Geralmente, desempenham funções essenciais ao negócio de uma 
organização e, por atender as necessidades desta, acabam não deixando 
de ser utilizados, mesmo que a sua tecnologia vá ficando cada vez mais 
ultrapassada com o passar dos anos. Por ter uma longa vida útil na 
9
organização, podem existir importantes regras de negócio associadas ao 
software e até mesmo interligações com outros softwares da organização, 
dificultando a sua substituição, pois dificilmente um novo software poderá 
incorporar as suas funções e agregar novas sem que haja algum transtorno 
para a organização.
Reengenharia de Software
trata-se da reconstrução de um software novo, com base em um software que 
já exista, com o propósito de buscar por melhorias que permitam produzir algo 
de qualidade melhor ou, pelo menos, comparável à do produto que se usou 
como base.
Engenharia Reversa
segundo Mourão (2014), Engenharia Reversa é uma atividade que trabalha 
com um produto existente (que pode ser um software, uma peça mecânica 
ou um banco de dados) e tenta entender como este funciona, o que ele faz, 
quais são suas propriedades etc. A Engenharia Reversa também é vista como 
um processo de análise de um sistema para criar uma representação deste 
mesmo sistema em um nível mais alto de abstração. No caso de um software, 
trata-se de entender como um software que já existe funciona nos mínimos 
detalhes, a fim de criar o seu projeto.
Fechamento
Nessa unidade, apresentamos principais definições relacionadas à Engenharia 
de Software. Esperamos que você possa assimilar principalmente os princípios 
norteadores, aos quais são importantes para definirmos com clareza suas 
características preponderantes. Até a próxima!
10
Referências
CARDILLI, Danilo. Conceitos de Software e Engenharia de Software. In: DevMedia. 
2010. Disponível em: <http://www.devmedia.com.br/conceitos-de-software-e-
engenharia-de-software/15730> Acesso em: 23 nov. 2018.
MAZZOLA, Vitorio Bruno. Engenharia de Software: conceitos básicos. In: Engenharia 
de Software. Florianópolis: INE 6603, 2000. Disponível em: <http://professores.dcc.
ufla.br/~monserrat/icc/Introducao_ES.pdf>. Acesso em: 30 nov. 2018.
MEDEIROS, Higor. Princípios da Engenharia de Software. In: DevMedia. 2013. 
Disponível em: <http://www.devmedia.com.br/principios-da-engenharia-de-
software/29630> Acesso em: 23 nov. 2018.
MOURÃO, Rodrigo Carreiro. Engenharia Reversa de Banco de Dados. In: DevMedia, 
2014. Disponível em: <https://www.devmedia.com.br/engenharia-reversa-de-banco-
de-dados/30573>. Acesso em: 30 nov. 2018.
PAIVA, Thiago Gabriel Gomes da S. O Que Foi a Crise do Software e o Início da 
Engenharia de Software? In: Ciência da Computação. 15 mai. 2016. Disponível em: 
<http://cienciacomputacao.com.br/tecnologia/o-que-foi-a-crise-do-software-e-o-
inicio-da-engenharia-de-software>. Acesso em: 30 nov. 2018.
PRESSMAN, Roger. S. Engenharia de Software. 6. ed. Rio de Janeiro: McGraw-Hill, 
2006, 720p.

Mais conteúdos dessa disciplina