Introduo Engenharia de Software Apostila01
Introduo Engenharia de Software Apostila01
Introduo Engenharia de Software Apostila01
Software?
https://www.youtube.com/watch?v=tunXdBtF8G0&feature=youtu.be
O que um engenheiro de
software pode fazer?
Além disso, quem optar por fazer essa Engenharia pode procurar por cursos a
distância, disponibilizados em algumas universidades. Então, se você gosta mais
de teoria, é indicado escolher a Ciência da Computação. Mas, se prefere
desenvolver, criar e gerenciar softwares, cursar Engenharia de Software é uma
boa opção.
Agora que você já sabe o que é Engenharia de Software, vamos mostrar como a
área pode ser útil. Desenvolvendo e gerenciando softwares, um engenheiro
oferece alguns benefícios importantes para o mercado e as relações
interpessoais. Veja só!
1. Acompanhar os avanços
tecnológicos
Que a tecnologia só avança, todos nós sabemos, não é mesmo? Acompanhar isso
não é nada fácil, embora, sem dúvidas, é um trabalho muito recompensador.
Imagine estar sempre atento às novidades da tecnologia e, quem sabe, até criar
e inovar você mesmo? Então, essa é a vida de um engenheiro de software.
Sempre em busca de novos métodos para desenvolver e gerenciar sistemas e
aplicativos da melhor forma, visando o bem da sociedade.
Uber, iFood, Easy Táxi, Grubster, BoaLista, entre outros. Todos esses apps
passaram pelas mãos de um engenheiro de software. O que queremos dizer com
isso é que essa Engenharia realmente traz benefícios, como a praticidade e a
otimização de tempo com esses aplicativos.
Então, se você tem como objetivo criar, inovar e trazer facilidades para a rotina
das pessoas por meio de sistemas e aplicativos, saiba que a melhor escolha é a
Engenharia de Software.
Quais são as áreas de
atuação do engenheiro de
software?
Desenvolvimento de softwares
Esse é o caminho mais comum, em que o profissional tem a chance de assumir
tanto o front-end quanto o back-end. A escolha depende das linguagens de
programação com as quais ele tem mais afinidade. De toda forma, ambos os
cargos são fundamentais ao desenvolvimento de softwares.
Banco de dados
Os bancos de dados são conjuntos de informações adquiridas por diversos
meios na internet. Basicamente, tudo que uma pessoa faz gera dados para as
empresas, desde preferências a formas de consumo. O engenheiro de software
pode gerenciar tudo isso, analisando padrões para fornecer boas ideias aos
gestores.
Com a Lei Geral de Proteção de Dados (LGPD), ele ainda precisa de uma
atuação que não interfira nos direitos dos usuários de preservar seus dados
pessoais. Por isso, o mercado está em um grande processo de adequação e
precisará de profissionais qualificados para garantir a conformidade com a
legislação –– sob riscos de cair em multas altíssimas.
Pesquisa e docência
Se você gostar de realizar pesquisas durante a graduação, saiba que também há
espaço para essa atuação no mercado. Afinal, é preciso que profissionais se
dediquem aos estudos das tendências e possibilidades para auxiliar no
crescimento da área.
De acordo com o Tech Report 2020, 306,4 mil empresas trabalham no setor de
tecnologia no Brasil. O número de profissionais passou de 310 mil para 365 mil
de 2014 a 2018, um aumento de 17%. E tem mais: as empresas brasileiras de
tecnologia tiveram um faturamento correspondente a 3,3% do PIB de 2018, no
montante de R$ 240 bilhões.
Ciclo Scrum
Imagem que ilustra a importância do documento de requisitos para um projeto bem definid o
Estimativas e métricas
É importante saber, antes de tudo, que as estimativas não são exatas e são
afetadas por variáveis humanas, técnicas, ambientais e políticas. No entanto,
algumas táticas podem ser usadas para aumentar a precisão no cálculo, como
dividir um problema grande em vários menores, utilizar um modelo empírico
(COCOMO, por exemplo), usar várias técnicas ou baseá-las em dados
históricos. Esses dados são construídos ao longo do tempo, por meio de
medidas de tamanho, custo, esforço, qualidade, entre outras, obtidas através
de métricas.
Testes
O objetivo dos testes é garantir que o processo e o produto atinjam os níveis
de qualidade especificados, assegurando que os requisitos dos usuários estão
sendo atendidos e que todas as fases e entre fases do desenvolvimento sejam
consistentes, completas e corretas. Contudo, o grande número de
combinações de entradas e saídas, problemas com os requisitos e a falta de
tempo ou de treinamento são muitos dos obstáculos encontrados durante
essa etapa e, por conta deles, os testes são deixados de lado.
Isso é um grande problema, porque erros que passam despercebidos se
tornam falhas reveladas durante a utilização, gerando necessidade de
manutenção e um alto custo. Para evitar isso, o processo deve ser feito com
cuidado e dividido em etapas: planejamento, projeto e execução de
casos de teste e análise de resultados. Esses casos consistem em uma
entrada e em uma saída prevista e devem considerar partes ainda não
testadas, aumentando a probabilidade de revelar um novo erro. A confecção
deles pode ser tão difícil quanto o projeto do produto, mas é um dos
melhores mecanismos para a prevenção de defeitos.
Manutenção
A manutenção é a parte mais problemática do ciclo de vida do software,
podendo chegar a mais de 70% do esforço de desenvolvimento, por conta de
migrações para novas plataformas, arquiteturas mal projetadas, melhorias
para atender novas necessidades, entre muitas outras dificuldades e
situações. Além disso, essa etapa também tem um alto custo financeiro
(passando de 50% do orçamento em alguns casos), pode gerar insatisfação do
cliente e reduzir a qualidade global do software. Apesar de todos esses
problemas, a manutenção é uma fase inevitável no processo e, por isso, é
essencial que o software tenha manutenibilidade.
Para isso, algumas práticas podem ser adotadas: cuidado com a codificação,
documentação e teste, adoção de boas arquiteturas, disponibilidade de um
time qualificado e uso de linguagens de programação e sistemas operacionais
padronizados. A fim de diminuir os custos e garantir a adesão dessas
práticas, a manutenção do software deve ser considerada durante o
desenvolvimento de todas as etapas anteriores, sempre lembrando da sua
importância e garantindo a manutenibilidade.