SlideShare uma empresa Scribd logo
ENGENHARIA DE
SOFTWARE
Prof. Thalles Santos
Desenvolvimento Profissional de Software
● Programação enquanto hobbie VS. Programação Profissional
● Como diz Sommerville:
○ “A engenharia de software tem por objetivo apoiar o desenvolvimento
profissional de software, mais do que a programação individual. Ela inclui
técnicas que apoiam especificação, projeto e evolução de programas, que
normalmente não são relevantes para o desenvolvimento de software
pessoal.”
Desenvolvimento Profissional de Software
Desenvolvimento Profissional de Software
Tipos de Softwares
● Aplicações stand-alone. São as aplicações executadas em um computador local. Contêm
toda a funcionalidade necessária e não precisam estar conectadas a uma rede. Exemplos:
aplicativos de escritório, programas CAD (Computer Aided Software), manipulação de
fotos etc.
● Aplicações interativas baseadas em transações. Aplicações que executam em um
computador remoto, acessadas pelos usuários a partir de seus computadores ou
terminais. Aplicações Web como aplicações de comércio eletrônico, sistemas
corporativos, serviços de e-mail e compartilhamento de fotos são exemplos. Aplicações
interativas frequentemente incorporam um grande armazenamento de dados, que é
acessado e atualizado em cada transação.
Desenvolvimento Profissional de Software
Tipos de Softwares
● Sistemas de controle embutidos. São sistemas de controle que controlam e gerenciam
dispositivos de hardware. Numericamente, é provável que haja mais sistemas embutidos
do que de qualquer outro tipo. Software em telefone celular, softwares que controlam
antitravamento de freios em um carro e software em um micro-ondas para controlar o
processo de cozimento são alguns exemplos.
● Sistemas de processamento de lotes. São sistemas corporativos projetados para processar
dados em grandes lotes. Eles processam grande número de entradas individuais para criar
as saídas correspondentes. Exemplos: sistemas automatizados de cobrança, como
sistemas de cobrança telefônica, e sistemas de pagamentos de salário.
Desenvolvimento Profissional de Software
Tipos de Softwares
● Sistemas de entretenimento. Sistemas cuja utilização principal é pessoal e cujo objetivo é
entreter o usuário. A maioria desses sistemas é de jogos de diferentes tipos. A qualidade
de interação com o usuário é a característica particular mais importante dos sistemas de
entretenimento.
● Sistemas para modelagem e simulação. Sistemas que incluem vários objetos separados que
interagem entre si, desenvolvidos por cientistas e engenheiros para modelar processos
ou situações físicas. Esses sistemas geralmente fazem uso intensivo de recursos
computacionais e requerem sistemas paralelos de alto desempenho para executar.
Desenvolvimento Profissional de Software
Tipos de Softwares
● Sistemas de coleta de dados. São sistemas que coletam dados de seu ambiente com um
conjunto de sensores e enviam esses dados para outros sistemas para processamento. O
software precisa interagir com sensores e frequentemente é instalado em um ambiente
hostil, por exemplo, dentro de uma máquina ou em um lugar remoto.
● Sistemas de sistemas. São sistemas compostos de uma série de outros sistemas de
software. Alguns deles podem ser produtos genéricos de software, como um programa de
planilha eletrônica. Outros sistemas do conjunto podem ser escritos especialmente para
esse ambiente.
CICLO DE VIDA DE SOFTWARE
SDLC - Software Development Life Cycle
● Define em linhas gerais quais as etapas
principais que podem ser seguidas no
desenvolvimento de uma solução de
software.
● Dentro desse ciclo, alguns papéis são
necessários, conforme veremos em seguida.
PAPÉIS NO CICLO DE DESENVOLVIMENTO
1. PLANEJAMENTO
GERENTE DE PROJETO
03
● Planejamento
● Coordena e transfere informações
● Reporta diretamente à alta gestão
ANALISTA DE NEGÓCIOS
02
● Analista documentos
● Encontra a solução mais adequada
● Equilibra expectativas
SPONSOR DO PROJETO
01
● Fornece recursos
● Inicia, garante, aprova e estabelece diretrizes
● Gerencia o orçamento
UX / UI
04
● Garantem que o projeto resolve o problema do
usuário final
● Pesquisas e testes de usuários
● Fluxos de tarefas
PRODUCT OWNER
05
● Busca qual o problema deve ser resolvido
● Define estratégia
● Define prioridades
PAPÉIS NO CICLO DE DESENVOLVIMENTO
2. PROJETO DE ARQUITETURA
HEAD DE PRODUTO
01
● CPO - Chief Product Officer
● Gerencia e supervisiona o roteiro do produto
● Alia engenharia, design, marketing, vendas e outros.
PAPÉIS NO CICLO DE DESENVOLVIMENTO
3. CODIFICAÇÃO
LÍDER TÉCNICO
03
● Lidera equipes
● Gerencia tarefas
● “Guardião da luz”
HEAD DE ENGENHARIA
02 ● Gerencia equipes de Frontend e Backend
● Direciona objetivos
CTO -
CHIEF TECHNOLOGY OFFICER
01
● Gerencia as equipes de engenharia e
desenvolvimento
● Lidera operações
● Administra recursos
● Infraestrutura
ENGENHEIRO FRONTEND
04
● Desenvolve interfaces web
● Integrações
● Desenvolver de acordo com UX/UI
● Propõe melhorias de performance
● HTML, CSS, JS
PAPÉIS NO CICLO DE DESENVOLVIMENTO
3. CODIFICAÇÃO
ENGENHEIRO FULLSTACK
06
● Front e Back
● Trabalha desde banco de dados até correções
de bugs em tela
ENGENHEIRO BACKEND
05
● Desenvolve APIs
● Desenvolve scripts no lado servidor
● Otimização de recursos de servidores
● Python, GO, C#, Java, PHP, Ruby,
ENGENHEIRO DEVOPS
07
● Implantação e operação de redes
● Scripts de migração/otimização
● Melhoria no planejamento de testes e
implantação
PAPÉIS NO CICLO DE DESENVOLVIMENTO
4. TESTE
ENGENHEIRO DE SEGURANÇA
02
● Desenvolvimento de padrões de segurança
● Correção de problemas
● Boas práticas de segurança
ENGENHEIRO DE QUALIDADE
01
● Qualidade de software
● Testes
● Relatórios e documentação
● Melhoria de software e processos
PAPÉIS NO CICLO DE DESENVOLVIMENTO
5. IMPLANTAÇÃO E MANUTENÇÃO
ANALISTA DE BANCO DE DADOS
02
● Coletar e interpretar dados
● Otimizações de bancos de dados
● Avaliação, análise e proposta de melhorias
SUPORTE TÉCNICO
01
● Auxilia o cliente final na resolução de
problemas técnicos
● Treinamento
● Monitorar e manter sistemas
● Instalação e configuração
CIENTISTA DE DADOS
03
● Interpretar dados para obter informações que
diferenciam competitivamente a empresa
● Melhoria de produtos

Mais conteúdo relacionado

Semelhante a ES - 02

Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
Edjalma Queiroz da Silva
 
aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptx
MarcondesTiburcio
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
Waldemar Roberti
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
Janynne Gomes
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
Camilo de Melo
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
Cloves da Rocha
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
Felipe Goulart
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdf
IvanFontainha
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
Roni Reis
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
Fábio Costa
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
Fábio Costa
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
Roberto Nunes
 
Prototipagem de Software para Devs
Prototipagem de Software para DevsPrototipagem de Software para Devs
Prototipagem de Software para Devs
Marcos Marcolin
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
Nécio de Lima Veras
 
DDD
DDDDDD
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
MarcosSilva941136
 
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
Pedro Alcantara
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
Kelvin Wesley
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
Gabriel Moura
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratar
Ale Uehara
 

Semelhante a ES - 02 (20)

Macro Arquitetura de Software
Macro Arquitetura de SoftwareMacro Arquitetura de Software
Macro Arquitetura de Software
 
aula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptxaula projeto e des sistemas 22 03 2021.pptx
aula projeto e des sistemas 22 03 2021.pptx
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...AULA 1 - CONCEITOS GERAIS  APLICADOS NO CICLO DE VIDA  DO SOFTWARE E MODELOS ...
AULA 1 - CONCEITOS GERAIS APLICADOS NO CICLO DE VIDA DO SOFTWARE E MODELOS ...
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Engenharia De Software
Engenharia De SoftwareEngenharia De Software
Engenharia De Software
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdf
 
Este trabalho trata
Este trabalho trataEste trabalho trata
Este trabalho trata
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Aula 06 projetos multimídia
Aula 06   projetos multimídiaAula 06   projetos multimídia
Aula 06 projetos multimídia
 
Fundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptxFundamentos Engenharia de Software.pptx
Fundamentos Engenharia de Software.pptx
 
Prototipagem de Software para Devs
Prototipagem de Software para DevsPrototipagem de Software para Devs
Prototipagem de Software para Devs
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
DDD
DDDDDD
DDD
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
2. FUNDAMENTOS DE SISTEMAS DE INFORMAÇÃO - 22.06.22.pdf
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
Analise e desenvolvimento
Analise e desenvolvimentoAnalise e desenvolvimento
Analise e desenvolvimento
 
It skills para rh aprender e contratar
It skills para rh  aprender e contratarIt skills para rh  aprender e contratar
It skills para rh aprender e contratar
 

Último

PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
anpproferick
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
anpproferick
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
Rafael Santos
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Annelise Gripp
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
tnrlucas
 
Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
EliakimArajo2
 
Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
Ian Oliveira
 

Último (7)

PRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product ownerPRATICANDO O SCRUM Scrum team, product owner
PRATICANDO O SCRUM Scrum team, product owner
 
Teoria de redes de computadores redes .doc
Teoria de redes de computadores redes .docTeoria de redes de computadores redes .doc
Teoria de redes de computadores redes .doc
 
Gestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefíciosGestão de dados: sua importância e benefícios
Gestão de dados: sua importância e benefícios
 
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
Ferramentas e Técnicas para aplicar no seu dia a dia numa Transformação Digital!
 
Como fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptxComo fui de 0 a lead na gringa em 3 anos.pptx
Como fui de 0 a lead na gringa em 3 anos.pptx
 
Orientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço BrasilOrientações para utilizar Drone no espaço Brasil
Orientações para utilizar Drone no espaço Brasil
 
Por que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdfPor que escolhi o Flutter - Campus Party Piauí.pdf
Por que escolhi o Flutter - Campus Party Piauí.pdf
 

ES - 02

  • 2. Desenvolvimento Profissional de Software ● Programação enquanto hobbie VS. Programação Profissional ● Como diz Sommerville: ○ “A engenharia de software tem por objetivo apoiar o desenvolvimento profissional de software, mais do que a programação individual. Ela inclui técnicas que apoiam especificação, projeto e evolução de programas, que normalmente não são relevantes para o desenvolvimento de software pessoal.”
  • 4. Desenvolvimento Profissional de Software Tipos de Softwares ● Aplicações stand-alone. São as aplicações executadas em um computador local. Contêm toda a funcionalidade necessária e não precisam estar conectadas a uma rede. Exemplos: aplicativos de escritório, programas CAD (Computer Aided Software), manipulação de fotos etc. ● Aplicações interativas baseadas em transações. Aplicações que executam em um computador remoto, acessadas pelos usuários a partir de seus computadores ou terminais. Aplicações Web como aplicações de comércio eletrônico, sistemas corporativos, serviços de e-mail e compartilhamento de fotos são exemplos. Aplicações interativas frequentemente incorporam um grande armazenamento de dados, que é acessado e atualizado em cada transação.
  • 5. Desenvolvimento Profissional de Software Tipos de Softwares ● Sistemas de controle embutidos. São sistemas de controle que controlam e gerenciam dispositivos de hardware. Numericamente, é provável que haja mais sistemas embutidos do que de qualquer outro tipo. Software em telefone celular, softwares que controlam antitravamento de freios em um carro e software em um micro-ondas para controlar o processo de cozimento são alguns exemplos. ● Sistemas de processamento de lotes. São sistemas corporativos projetados para processar dados em grandes lotes. Eles processam grande número de entradas individuais para criar as saídas correspondentes. Exemplos: sistemas automatizados de cobrança, como sistemas de cobrança telefônica, e sistemas de pagamentos de salário.
  • 6. Desenvolvimento Profissional de Software Tipos de Softwares ● Sistemas de entretenimento. Sistemas cuja utilização principal é pessoal e cujo objetivo é entreter o usuário. A maioria desses sistemas é de jogos de diferentes tipos. A qualidade de interação com o usuário é a característica particular mais importante dos sistemas de entretenimento. ● Sistemas para modelagem e simulação. Sistemas que incluem vários objetos separados que interagem entre si, desenvolvidos por cientistas e engenheiros para modelar processos ou situações físicas. Esses sistemas geralmente fazem uso intensivo de recursos computacionais e requerem sistemas paralelos de alto desempenho para executar.
  • 7. Desenvolvimento Profissional de Software Tipos de Softwares ● Sistemas de coleta de dados. São sistemas que coletam dados de seu ambiente com um conjunto de sensores e enviam esses dados para outros sistemas para processamento. O software precisa interagir com sensores e frequentemente é instalado em um ambiente hostil, por exemplo, dentro de uma máquina ou em um lugar remoto. ● Sistemas de sistemas. São sistemas compostos de uma série de outros sistemas de software. Alguns deles podem ser produtos genéricos de software, como um programa de planilha eletrônica. Outros sistemas do conjunto podem ser escritos especialmente para esse ambiente.
  • 8. CICLO DE VIDA DE SOFTWARE SDLC - Software Development Life Cycle ● Define em linhas gerais quais as etapas principais que podem ser seguidas no desenvolvimento de uma solução de software. ● Dentro desse ciclo, alguns papéis são necessários, conforme veremos em seguida.
  • 9. PAPÉIS NO CICLO DE DESENVOLVIMENTO 1. PLANEJAMENTO GERENTE DE PROJETO 03 ● Planejamento ● Coordena e transfere informações ● Reporta diretamente à alta gestão ANALISTA DE NEGÓCIOS 02 ● Analista documentos ● Encontra a solução mais adequada ● Equilibra expectativas SPONSOR DO PROJETO 01 ● Fornece recursos ● Inicia, garante, aprova e estabelece diretrizes ● Gerencia o orçamento UX / UI 04 ● Garantem que o projeto resolve o problema do usuário final ● Pesquisas e testes de usuários ● Fluxos de tarefas PRODUCT OWNER 05 ● Busca qual o problema deve ser resolvido ● Define estratégia ● Define prioridades
  • 10. PAPÉIS NO CICLO DE DESENVOLVIMENTO 2. PROJETO DE ARQUITETURA HEAD DE PRODUTO 01 ● CPO - Chief Product Officer ● Gerencia e supervisiona o roteiro do produto ● Alia engenharia, design, marketing, vendas e outros.
  • 11. PAPÉIS NO CICLO DE DESENVOLVIMENTO 3. CODIFICAÇÃO LÍDER TÉCNICO 03 ● Lidera equipes ● Gerencia tarefas ● “Guardião da luz” HEAD DE ENGENHARIA 02 ● Gerencia equipes de Frontend e Backend ● Direciona objetivos CTO - CHIEF TECHNOLOGY OFFICER 01 ● Gerencia as equipes de engenharia e desenvolvimento ● Lidera operações ● Administra recursos ● Infraestrutura ENGENHEIRO FRONTEND 04 ● Desenvolve interfaces web ● Integrações ● Desenvolver de acordo com UX/UI ● Propõe melhorias de performance ● HTML, CSS, JS
  • 12. PAPÉIS NO CICLO DE DESENVOLVIMENTO 3. CODIFICAÇÃO ENGENHEIRO FULLSTACK 06 ● Front e Back ● Trabalha desde banco de dados até correções de bugs em tela ENGENHEIRO BACKEND 05 ● Desenvolve APIs ● Desenvolve scripts no lado servidor ● Otimização de recursos de servidores ● Python, GO, C#, Java, PHP, Ruby, ENGENHEIRO DEVOPS 07 ● Implantação e operação de redes ● Scripts de migração/otimização ● Melhoria no planejamento de testes e implantação
  • 13. PAPÉIS NO CICLO DE DESENVOLVIMENTO 4. TESTE ENGENHEIRO DE SEGURANÇA 02 ● Desenvolvimento de padrões de segurança ● Correção de problemas ● Boas práticas de segurança ENGENHEIRO DE QUALIDADE 01 ● Qualidade de software ● Testes ● Relatórios e documentação ● Melhoria de software e processos
  • 14. PAPÉIS NO CICLO DE DESENVOLVIMENTO 5. IMPLANTAÇÃO E MANUTENÇÃO ANALISTA DE BANCO DE DADOS 02 ● Coletar e interpretar dados ● Otimizações de bancos de dados ● Avaliação, análise e proposta de melhorias SUPORTE TÉCNICO 01 ● Auxilia o cliente final na resolução de problemas técnicos ● Treinamento ● Monitorar e manter sistemas ● Instalação e configuração CIENTISTA DE DADOS 03 ● Interpretar dados para obter informações que diferenciam competitivamente a empresa ● Melhoria de produtos