Você está na página 1de 5

Engenharia de Software

INTRODUÇÃO

A engenharia de software desempenha um papel fundamental no desenvolvimento e na


manutenção de sistemas de software confiáveis, eficientes e de alta qualidade. Desde a sua
criação, ela tem sido uma disciplina crucial para lidar com os desafios enfrentados no
projeto, desenvolvimento e entrega de software. Este trabalho abordará diversos aspectos
relacionados à engenharia de software, desde a sua história e conceito até os processos,
ferramentas e tecnologias utilizadas na sua prática. Além disso, exploraremos os benefícios
da engenharia de software, suas áreas de atuação e os princípios e práticas que orientam o
desenvolvimento de software de qualidade.

HISTÓRIA

O termo “ENGENHARIA DE SOFTWARE” foi introduzido no final da década de 60 como


uma resposta à chamada crise de software que surgiu com as experiências associadas ao
projeto, desenvolvimento e manutenção de sistemas de software confiáveis de larga escala.
Os sistemas de software eram construídos como torres de Babel: sem planejamento, sem
comunicação, sem documentação etc. Muitos projetos foram abortados e a história tem
inúmeros casos de prejuízos causados.

CONCEITO

Segundo Sommerville (2007), a engenharia de software é uma disciplina de engenharia


relacionada com todos os aspectos da produção de software, desde os estágios iniciais de
especificação do sistema até sua manutenção, depois que o sistema entrou em operação. É
importante destacar que a engenharia de software além de considerar os processos
técnicos de desenvolvimento de software, também está relacionada com o gerenciamento
de projeto de software e o desenvolvimento de ferramentas, e métodos que apóiam a
produção de software (SOMMERVILLE, 2007).

BENEFÍCIOS

1. Acompanhar os avanços tecnológicos: Sempre em busca de novos métodos para


desenvolver e gerenciar sistemas e aplicativos da melhor forma, visando o bem da
sociedade.

2. Produzir sistemas de software eficientes: praticidade e a otimização de tempo com


aplicativos.

3. Facilitar a vida dos usuários: criar, inovar e trazer facilidades para a rotina das pessoas
por meio de sistemas e aplicativos

ÁREAS DE ATUAÇÃO

1. Desenvolvimento de softwares: Esse é o caminho mais comum, em que o profissional


tem a chance de assumir o front-end, back-end ou fullstack .
2. Banco de dados: Basicamente, tudo que uma pessoa faz gera dados para as empresas.
O engenheiro de software pode gerenciar tudo isso, analisando padrões para fornecer boas
ideias aos gestores.

3. Pesquisa e docência: Outro caminho é ser docente em faculdades, ajudando a formar


novos profissionais de software

4. Gestão de projetos: acompanha os projetos de elaboração e desenvolvimento dos


programas

5. Arquitetura de produtos: A arquitetura de produtos é a divisão de componentes que


podem ser identificados nos sistemas elaborados para o funcionamento de um produto

6. Operação de testes 

PROCESSOS

Os processos de engenharia de software são abordagens sistemáticas que orientam o


desenvolvimento de software. Eles fornecem uma estrutura para organizar e executar as
atividades envolvidas na criação de um sistema de software. Existem vários modelos de
processo, cada um com suas características específicas. Aqui estão alguns exemplos:

Modelo em Cascata:
● O modelo em cascata é um dos modelos de processo mais antigos e tradicionais.
● Ele segue uma abordagem sequencial linear, onde cada fase é concluída antes de
avançar para a próxima.
● As fases incluem: levantamento de requisitos, análise, projeto, implementação, teste
e manutenção.
● É adequado para projetos com requisitos bem definidos e estáveis, onde as
mudanças são mínimas.

Modelo Incremental:
● O modelo incremental envolve a entrega do software em incrementos funcionais.
● O desenvolvimento é dividido em várias iterações, cada uma adicionando
funcionalidades ao sistema.
● Cada iteração passa pelas fases de levantamento de requisitos, análise, projeto,
implementação, teste e manutenção.
● É útil quando os requisitos são complexos ou estão sujeitos a mudanças frequentes.

Modelo em Espiral:
● O modelo em espiral combina elementos do modelo em cascata com a abordagem
iterativa.
● Ele enfatiza a avaliação de riscos e a mitigação de problemas ao longo do ciclo de
desenvolvimento.
● É adequado para projetos de grande escala, onde a gestão de riscos é crítica.
● Cada volta da espiral é dividida em quatro setores

Desenvolvimento Ágil:
● O desenvolvimento ágil é um conjunto de abordagens colaborativas e interativas.
● Ele valoriza a entrega contínua de software funcional, respondendo a mudanças de
forma flexível.
● Os métodos ágeis mais conhecidos são Scrum, Kanban e XP (Extreme
Programming).
● O desenvolvimento é realizado em iterações curtas chamadas de "sprints", com foco
na colaboração e interação entre os membros da equipe.

Cada modelo de processo possui vantagens e desvantagens, e a escolha depende das


características do projeto, dos requisitos e das restrições envolvidas. É importante adaptar e
personalizar o processo para atender às necessidades específicas de cada projeto. Além
disso, práticas ágeis estão se tornando cada vez mais populares, devido à sua flexibilidade
e capacidade de resposta às mudanças.

FERRAMENTAS E TECNOLOGIAS

Existem várias ferramentas e tecnologias disponíveis para auxiliar no desenvolvimento de


software.
● As IDEs (Integrated Development Environments) fornecem ambientes de
programação completos, incluindo recursos de edição, depuração e compilação.
● Os sistemas de controle de versão, como o Git, permitem o gerenciamento de
alterações no código-fonte.
● As ferramentas de gerenciamento de projetos, como o Jira, auxiliam no
planejamento, rastreamento e colaboração em equipe.
● Além disso, tecnologias emergentes, como inteligência artificial, aprendizado de
máquina e computação em nuvem, estão impactando significativamente a
engenharia de software.
PRINCÍPIOS E PRÁTICAS

Diretrizes fundamentais que orientam a tomada de decisões durante o processo de


desenvolvimento de software.
Princípios importantes:
● Modularidade,
● Coesão
● Baixo acoplamento
● Reutilização de código
● Separação de preocupações.
Práticas comuns:
● Uso de padrões de projeto
● Testes automatizados
● Integração contínua
● Revisões de código
● Documentação adequada.

QUALIDADE

A qualidade de software é um aspecto crítico da engenharia de software. Ela abrange a


conformidade com requisitos, confiabilidade, desempenho, segurança e usabilidade do
software. Para garantir a qualidade, são utilizadas diversas técnicas, como testes de
unidade, testes de integração, testes de sistema e revisões de código.

CONCLUSÃO

A engenharia de software é uma área essencial para o desenvolvimento de software


confiável e de alta qualidade. Compreender os conceitos, processos e aplicações dessa
disciplina é fundamental para garantir o sucesso de projetos de software. À medida que a
tecnologia continua a avançar, a engenharia de software terá um papel cada vez mais
crucial na criação de soluções inovadoras e na transformação digital de diversos setores.

FONTES BIBLIOGRÁFICAS

https://inatel.br/blog/guia-de-carreiras/300-o-que-faz-um-engenheiro-de-software#Gest%C3
%A3o%20de%20projetos
https://www.unicesumar.edu.br/blog/o-que-e-engenharia-de-software/#:~:text=A%20Engenh
aria%20de%20Software%20capacita,criam%20solu%C3%A7%C3%B5es%20de%20alta%2
0performance
https://www.sbc.org.br/images/flippingbook/computacaobrasil/computa_28/cb2015-03.pdf
https://jkolb.com.br/modelo-espiral/
https://www.facom.ufu.br/~william/Disciplinas%202018-2/BSI-GSI030-EngenhariaSoftware/Li
vro/engenhariaSoftwareSommerville.pdf

Você também pode gostar