Introdução à Engenharia de Software

Este é o primeiro de uma série de artigos sobre Engenharia de Software. Ao final desta série, você terá conhecimentos a respeito da definição, objetivo, práticas e ferramentas, importância, desafios e também tendências da Engenharia de Software.


Introdução à Engenharia de Software
Introdução à Engenharia de Software

Índice
  1. Definição
  2. O que é Software
  3. Importância da Engenharia de Software
    1. Contribuições Notáveis
  4. Revisão

Definição

Segundo Sommerville (2011), a Engenharia de Software "é uma disciplina de engenharia que se preocupa com todos os aspectos de produção de software". Em um sentido mais específico, o Instituto de Engenheiros Eletricistas e Eletrônicos (IEEE) [IEE17] elaborou a seguinte definição:
A aplicação de uma abordagem sistemática, disciplinada e quantificável no desenvolvimento, na operação e na manutenção de software; isto é, a aplicação de engenharia ao software.

Pela definição, podemos entender que há três grandes grupos de atividades relacionadas: desenvolvimento, operação e manutenção de software. Mas o que é o software?

O que é Software

Pressman (2021) menciona que "software de computador é um produto que profissionais de software desenvolvem e ao qual dão suporte no longo prazo". E Sommerville (2011) reforça que "um sistema de software desenvolvido profissionalmente é, com frequência, mais do que apenas um programa; ele normalmente consiste em uma série de programas separados e arquivos de configuração que são usados para configurar esses programas".
 
Software


 
Você pode ler mais sobre a diferença entre software e programa, aqui. E para ficar mais concreta a definição, podemos citar os seguintes exemplos de softwares:
  • Bloco de Notas (software de sistema)
  • Stellarium (software de engenharia/científico)
  • Android (software embarcado)
  • Mercado Libre (software de aplicação web/aplicativo)
  • ChatGPT (software de inteligência artificial)

 

Estes exemplos supracitados representam apenas algumas das muitas categorias de softwares existentes. Também é importante ponderar que a natureza do software possui duplo papel: ele pode ser tanto o produto, quanto um meio para se distribuir um produto. 

 

Importância da Engenharia de Software

Inúmeras pessoas escrevem programas. Há pessoas de negócio que escrevem programas utilizando planilhas, para simplificar seu trabalho; cientistas e engenheiros também escrevem programas para dados experimentais; alguns escrevem programas por hobby, e até mesmo a inteligência artificial é capaz de escrever programas. No entanto, conforme destaca Sommerville (2011) "a maior parte do desenvolvimento de software é uma atividade profissional, em que o software é desenvolvido para um propósito específico de negócio". Este software profissional normalmente será criado e (muitas vezes) mantido por uma equipe profissional, e não por um indivíduo, pois será usado por alguém além do seu desenvolvedor.

 

A Engenharia de Software tem por objetivo apoiar o desenvolvimento profissional de software, e não apenas a programação individual. As técnicas da engenharia de software apoiam a especificação, projeto, desenvolvimento, teste, evolução... que normalmente não são relevantes para o desenvolvimento de software pessoal.


Contribuições Notáveis

Em 1969 o Instituto de Tecnologia de Massachusetts (em inglês: Massachusetts Institute of Technology - MIT) desempenhou um papel crucial no desenvolvimento de um software para o programa espacial Apollo, da NASA. Este software permitiu o voo do homem à Lua. E um dos principais contribuintes para este esforço foi a cientista da computação Margaret Hamilton, que liderou a Divisão de Engenharia de Software do Laboratório de Instrumentação do MIT (NASA, 2023).

 

Margaret Hamilton ao lado do Software desenvolvido para a missão Apollo 11
(Foto: domínio público / Wikimedia)

Esta foi uma das maiores contribuições da Engenharia de Software para século XX, pois note, pela imagem acima, que o software era programado via cartão perfurado. Sem técnicas adequadas para projetar um software profissional e complexo, a missão certamente teria falhado, o ser humano não teria pisado na Lua e até vidas teriam sido perdidas.


O mundo moderno não poderia existir sem o software. Infraestruturas, serviços nacionais controlados por sistemas computadorizados, e até a maioria dos produtos elétricos inclui um computador e um software que o controla.

Rastreamento de aeronaves em tempo real de voo via software
(Fonte: Flightradar.live)

Além de tudo o que vimos a respeito da importância do Software e da Engenharia de Software, é notável que no século XXI o software também desempenha um papel chave na manipulação e distribuição de um dos nossos ativos mais importantes da atualidade: a informação. Por isso dedicaremos também alguns artigos a respeito de temas éticos, segurança e privacidade neste contexto.


Revisão

Você aprendeu que a Engenharia de Software é uma abordagem sistemática para o desenvolvimento, operação e manutenção de software. E o Software pode ser tanto um produto quanto meio para se divulgar um produto, do qual profissionais desenvolvem e dão suporte. A importância da Engenharia de Software se deve ao fato de que o mundo moderno só é possível devido a existência de inúmeros softwares trabalhando para as indústrias financeira, de entretenimento, transportes, comércio e uma série de outros (sub)segmentos em que se pode controlar desde um pequeno relógio de pulso digital até toda a circulação aérea de um país.

 

Vale ressaltar que não há bala de prata na engenharia de software, e que uma técnica utilizada para o desenvolvimento de um software espacial não é a mais adequada para desenvolver um aplicativo de agenda de contatos para um dispositivo móvel. Entender as técnicas e ferramentas da Engenharia de Software, assim como saber usá-las, requer uma certa prática e também empirismo. No próximo artigo você será exposto aos Processos de Software.


Referências

PRESSMAN, R. S. Engenharia de Software: Uma Abordagem Profissional. 9. ed. Porto Alegre: AMGH, 2021.


SOMMERVILLE, I. Engenharia de Software. 9. ed. São Paulo: Pearson Addison-Wesley, 2011. 

 

FLIGHTRADAR24. Flightradar24 - Radar de voo para seguimento de voos em tempo real. Disponível em: https://flightradar.live/pt-pt/. Acesso em: 13 jun. 2023.


NASA. Apollo 11 Mission Overview. Disponível em: https://www.nasa.gov/mission_pages/apollo/missions/apollo11.html. Acesso em: 13 jun. 2023.


NASA. Margaret Hamilton. Disponível em: https://solarsystem.nasa.gov/people/320/margaret-hamilton/. Acesso em: 13 jun. 2023. 

 

[IEE17] ISO/IEC/IEEE 24765:2017(E), ISO/IEC/IEEE International Standard: Systems and software Engineering – Vocabulary. Disponível em https://www.iso.org/standard/71952.html. Acesso em: 13 jun. 2023.



Para citar esse artigo:

Comentários