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 |
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.
O que é Software
- 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) |
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
Postar um comentário