Escolar Documentos
Profissional Documentos
Cultura Documentos
Engenharia de Software I
2
Software
"O termo "software" foi criado na década de 1940, e é um trocadilho com o termo
hardware. "Hardware", em inglês, significa "ferramenta física". Software seria tudo o que
faz o computador funcionar, através de instruções, excetuando-se a parte física dele."
3
4
Software vs Hardware
O software pode ser mudado mesmo depois de já ter sido entregue, já o hardware exige a
troca do produto.
O custo para alterar o software é menor ( pelos menos deveria ser) do que para alterar o
hardware.
5
Software
Algoritmo descrito de uma forma que pode ser compilado para a máquina ou interpretado
por ela.
Compilado
Interpretado
https://pt.wikipedia.org/wiki/Algoritmo 7
https://www.youtube.com/watch?v=Ct-lOOUqmyY 8
Sistemas
"Todo sistema possui um objetivo geral a ser atingido. O sistema é um conjunto de órgãos
funcionais que têm sua determinada função, componentes, entidades, partes ou
elementos e as relações entre eles, a integração entre esses componentes pode se dar
por fluxo de informações, fluxo de matéria, fluxo de sangue, fluxo de energia, enfim,
ocorre comunicação entre os órgãos componentes de um sistema."
https://pt.wikipedia.org/wiki/Sistema 9
"Kay lançou o postulado de que o computador ideal deveria funcionar como um
organismo vivo, isto é, cada "célula" comportar-se-ia relacionando-se com outras a fim de
alcançar um objetivo, contudo, funcionando de forma autônoma. As células poderiam
também reagrupar-se para resolver um outro problema ou desempenhar outras funções."
https://pt.wikipedia.org/wiki/Alan_Kay 10
Alan Kay
Orientação a Objetos
SmallTalk
Laptop/notebook
11
Sistemas de Informação
ERP
https://rockcontent.com/br/blog/sistema-de-informacao/ 12
Outros
CAD
Computer-Aided Design
GIS
13
Sistemas Operacionais
"Sistema operativo (português europeu) ou operacional (português brasileiro) é um
programa ou um conjunto de programas cuja função é gerenciar os recursos do sistema
(definir qual programa recebe atenção do processador, gerenciar memória, criar um
sistema de arquivos, etc.), fornecendo uma interface entre o computador e o usuário ou
utilizador."
https://pt.wikipedia.org/wiki/Sistema_operativo 14
Firmware
"Em eletrônica e computação, firmware é uma classe específica de software de
computador que fornece controle de baixo nível para o hardware específico do dispositivo.
O firmware pode fornecer um ambiente operacional padronizado para o software mais
complexo do dispositivo (permitindo maior independência de hardware) ou, para
dispositivos menos complexos, atuar como o sistema operacional completo do dispositivo,
executando todas as funções de controle, monitoramento e manipulação de dados.
Exemplos típicos de dispositivos que contêm firmware são sistemas embarcados."
https://pt.wikipedia.org/wiki/Firmware 15
Engenharia de Software
"Engenharia de Software é uma disciplina de Engenharia cujo foco está em todos os
aspectos da produção de software, desde os estágios iniciais da especificação do sistema
até a sua manutenção, quando o sistema já está sendo usado."
https://pt.wikipedia.org/wiki/Engenharia_de_software 16
Arquitetura de Software
"A arquitetura de software de um sistema consiste na definição dos componentes de
software, suas propriedades externas, e seus relacionamentos com outros softwares."
https://pt.wikipedia.org/wiki/Arquitetura_de_software 17
O que um Engenheiro de Software faz?
https://www.youtube.com/watch?v=wdU9L3DqU2w 18
4 Anos de ENGENHARIA DE SOFTWARE em 13 Minutos
https://www.youtube.com/watch?v=FLX9_QqzDAs 19
Funções de um Engenheiro de Software
Requisitos, Projeto e Design
Planejamento e gerenciamento de equipe
Qualidade
Desenvolvimento & Manutenção
Operações
20
https://www.mirago.com.br/aula/profissional-t-shaped/ 21
Síndrome do Pato
22
Requisitos
23
Analista de Requisitos
Engenheiro de Requisitos
24
25
26
Exemplos de Requisitos
Sistema de ensino
27
Sistema de ensino
Como aluno quero ter acesso ao conteúdo das matérias que estou matriculado
28
Sistema de ensino
29
Sistema de ensino
30
Sistema de ensino
31
Projeto
32
Arquitetura
Abstrações
Tecnologias
Infraestrutura
Servidores, provedores
33
Design
https://mindconsulting.com.br/2021/11/o-que-exatamente-e-wireframe-um-guia-completo-para-2022/ 35
36
37
Planejamento
38
Geralmente ficando a cargo do gerente, que nem sempre tem formação ou conhecimento
o suficiente sobre desenvolvimento de software
Equipe
Cronograma
Entregas
39
Requisitos
Requisitos - 3 meses
Implementação
Design - 3 meses
Implementação - 3 meses
Te s t e
Teste e Implantação - 3 meses
Manutenção
40
Requisitos
Projeto/Design
Metodologias Ágeis/Cíclicas
Kanban, Scrum, XP... Implementação
https://manifesto.softwarecraftsmanship.org/
Implantação
Sim
Mais requisitos?
Não
41
O gerente defende o cronograma
O Codificador Limpo 42
Qualidade
43
Engenheiro de Qualidade
QA - Quality Assurance
QE - Quality Engineer
44
Geralmente a qualidade é associada com os testes
45
https://blog.octo.com/the-test-pyramid-in-practice-3-5/ 46
Devs watching QA test the product
https://www.youtube.com/watch?v=baY3SaIhfl0 47
O custo dos testes
manuais
mão de obra
tempo de execução
manutenção
48
Infelizmente nem sempre é possível
automatizar tudo
49
Desenvolvimento/Implementação
50
Engenheiro de Software
Especialista de Software
Desenvolvedor
Programador
Analista
Designer*
* Algumas controvérsias 51
Compartilhamento de código
Qualidade do código
Escrever o código
52
Os dois valores do Software
Comportamento
Requisitos, funcionalidades, mercado
Estrutura
Arquitetura, organização, manutenção, expansibilidade
53
Operações
54
Deploy
DevOps
Automatização do deploy
Monitoramento
55
Atividade
56
Atividade
57
Atividade
* https://scholar.google.com.br/?hl=pt 58
Atividade
Palavras chave
Requisitos, Projeto e Design
ADR, Design Thinking, MVP, DDD, MDD, UML, Arquitetura Limpa, Arquitetura
Hexagonal
Planejamento e gerenciamento de equipe
* para descontrair 59
Atividade
61
Auto Avaliação
Critério 1
1. Não fiz a pesquisa
2. Só pesquisei durante o debate
3. Pesquisei antes do debate
62
Auto Avaliação
Critério 2
1. Não encontrei nenhuma ferramenta/tecnologia/metodologia
2. Encontrei pelo menos uma ferramenta/tecnologia/metodologia
3. Utilizei ou me sinto para preparado para começar utilizar umas das
ferramentas/tecnologias/metodologias
63
Auto Avaliação
Critério 3
1. Não encontrei nenhuma curso/especialização
2. Encontrei pelo menos um curso/especialização
3. Encontrei relação entre a grade curricular e minha pesquisa
64
Auto Avaliação
Critério 4
1. Não encontrei nenhum artigo
2. Encontrei pelo menos um artigo
3. Encontrei artigos que abordam soluções diferentes para o mesmo problema
65
Auto Avaliação
Critério 5
1. Não participei do debate
2. Participei somente como ouvinte
3. Expus algumas informações
66
Auto Avaliação
Critério 6
1. Não participei do debate
2. Fiz perguntas
3. Ajudei colegas com duvidas
67
Auto Avaliação
Critério 7
1. Não participei da apresentação
2. Ajudei no preparo
3. Ajudei na apresentação
68
Auto Avaliação
1 2 3
Critério 1 0 5 10
Critério 2 0 5 10
Critério 3 0 5 10
Critério 3 0 5 10
Critério 4 0 5 10
Critério 5 0 5 10
Critério 6 0 7 10
Critério 7 0 7 10
69
2023-02-13T19:18:42-03:00 - main#cbf1965a84b8faca88358abf7bc1059a73cf9d0e
FIM
Ettore Leandro Tognoli
ettore.leandro.tognoli@gmail.com
Obrigado!