Aprenda neste artigo noções de Engenharia de Software, seu histórico e os principais conceitos associados a sua prática.
Fala, pessoal! Com o destaque cada vez maior das disciplinas de Tecnologia da Informação (TI) nas provas de concurso, é comum que os alunos se deparem com diversos termos totalmente desconhecidos para aqueles que não são da área.
Um deles é a Engenharia de Software. Afinal, do que se trata e quais são os conceitos relacionados mais importantes para quem não sabe nada sobre o assunto? É isso que veremos neste artigo! Vamos lá?
De maneira bem básica e resumida, o termo software refere-se a toda informação processada por sistemas computacionais, incluindo os navegadores web, programas de computador, aplicações móveis e programas de mídia digital.
Atualmente, este é um mercado bilionário (segundo a ABES, apenas no Brasil, esse mercado movimentou US$19,2 bilhões em 2021). Os programas controlam uma grande variedade de dispositivos, desde celulares e eletrodomésticos inteligentes, até computadores pessoais e supercomputadores que operam em agências governamentais estratégicas.
De fato, é difícil imaginar uma área do conhecimento humano que não seja ao menos parcialmente impactada pelos softwares, incluindo as atividades profissionais, domésticas e de entretenimento.
A Engenharia de Software surgiu no final da década de 1950, como uma solução para contornar a então emergente crise do software. Nessa época, muitos projetos de software estavam fracassando, seja por ultrapassar de forma descontrolada o orçamento previsto inicialmente, seja por resultar em programas não confiáveis e com manutenção muito cara.
Ademais, notava-se, à época, que os softwares entregues não conseguiam acompanhar os crescentes requerimentos de adaptação ou evolução que surgiam quando da interação dos usuários com os produtos.
O cenário de crise era formado ainda pelo aumento de complexidade dos softwares a cada evolução de hardware; ou seja, à medida que os equipamentos físicos avançavam com as novas tecnologias, o desenvolvimento e a manutenção dos softwares tornavam-se ainda mais custosos.
Por fim, destaca-se a dificuldade em fazer face à crescente demanda por novos softwares, já que a capacidade de gerar novos produtos não era compatível com as necessidades que emergiram no momento.
A solução encontrada para contornar o problema foi transformar o então desorganizado esforço empreendido na geração dos códigos computacionais em uma disciplina da engenharia dedicada ao processo de produção, manutenção e evolução de softwares, que preza pela aplicação de princípios científicos para projetá-los e desenvolvê-los.
Assim, nascia a Engenharia de Software, que enfatiza a adoção de uma abordagem sistemática e disciplinada para coletar os requerimentos de negócios, bem como para planejar, construir e testar aplicações de software que possam atendê-los.
O design de software é o processo de transformar os requisitos em uma estrutura que pode ser implementada pelos desenvolvedores, usando uma linguagem para escrever o código. Assim, ele transforma os requisitos em uma solução de software.
Além desse foco no atendimento das necessidades do negócio – ou do usuário –, almeja-se que o software seja confiável, eficiente e efetivo em termos de custo.
Tipicamente, os conceitos, princípios, teorias, técnicas e ferramentas da Engenharia de Software são utilizados para desenvolver softwares profissionais, complexos, relacionados a projetos que envolvem grandes equipes de engenheiros e desenvolvedores.
O atual cenário de transformação digital da sociedade, em que os requerimentos de usuário e o próprio ambiente mudam com grande velocidade, o ferramental associado à Engenharia de Software vem se tornando cada vez mais necessário.
Por exemplo, quanto maior e mais complexo for o software, mais importante é a utilização de uma abordagem científica, capaz de viabilizar a criação de pequenos trechos de código mais simples e compreensíveis, que, juntos, formam o todo complexo. Dessa forma, ganha-se eficiência tanto na construção quanto na manutenção do produto.
Essa abordagem disciplinada é crítica também para a escalabilidade do projeto. Com a priorização desse aspecto desde o início do projeto, sua evolução torna-se algo natural, previsto e até desejado.
Por outro lado, se essa visão não for adotada, é muitas vezes mais fácil reescrever um software inteiro do que aproveitar um já existente.
Em termos mais gerais, a melhoria do processo de desenvolvimento de software proporciona a entrega de produtos de melhor qualidade.
Os atributos mais relevantes de um software de qualidade não estão relacionados diretamente a suas funcionalidades, mas sim ao comportamento dinâmico do produto quando está em uso. Vejamos alguns deles:
E assim finalizamos mais um artigo, pessoal! Ótimos estudos e até a próxima!
Lara Dourado
Prepare-se com o melhor material e com quem mais aprova em Concursos Públicos em todo o país!
Foi publicado o edital do concurso Câmara de Itapevi, município localizado no estado de São…
Olá, tudo bem? Hoje responderemos ao questionamento acerca da possibilidade de lei nova após o…
A Secretaria Estadual de Educação do Rio Grande do Norte (SEEC RN) oferta 598 vagas…
O concurso SEEC RN (Secretaria Estadual de Educação do Rio Grande do Norte) com oferta…
O edital do concurso SEEC RN (Secretaria Estadual de Educação do Rio Grande do Norte)…
Entenda neste artigo como funciona o Concurso EBSERH e prepare-se de forma adequada para essa…