Slide 1

Slide 1 text

Engenharia de Software 1ª Semana INFOTEC

Slide 2

Slide 2 text

samycici@gmail.com https://samantacicilia.com http://agiletesters.com.br/ Lider Técnica @Pagar.me Samanta Cicilia

Slide 3

Slide 3 text

O que é Engenharia de Software? 01

Slide 4

Slide 4 text

Engenharia de Software é a área da Computação que se preocupa em propor e aplicar princípios de engenharia na construção de software. Marco Tulio Valente. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, 2020.

Slide 5

Slide 5 text

02 Pontos importantes em desenvolvimento

Slide 6

Slide 6 text

01 04 COMPLEXIDADE Hoje em dia praticamente tudo depende de software e este tem muitas integrações. ESTIMATIVA É muito difícil prever exatamente quanto tempo vai levar para fazer cada mudança. 02 03 CONFORMIDADE Software precisa estar conforme com leis e normas. Por exemplo mercado financeiro. MUDANÇAS Software está em constante mudança. Sempre estamos lançando novidades.

Slide 7

Slide 7 text

Áreas de Conhecimento 03

Slide 8

Slide 8 text

Requisitos Projeto Desenvolvimento Teste Manutenção Configuração

Slide 9

Slide 9 text

Requisitos O que o sistema deve fazer e como deve fazer. Podem ser funcionais e não funcionais.

Slide 10

Slide 10 text

Requisitos Realizar pagamentos em boleto Realizar pagamentos em cartão de crédito Realizar pagamentos em 12 vezes sem juro O que o sistema deve fazer e como deve fazer. Podem ser funcionais e não funcionais. Um Sistema de Pagamentos: - Funcionais: 1. 2. 3.

Slide 11

Slide 11 text

Requisitos Realizar pagamentos em boleto Realizar pagamentos em cartão de crédito Realizar pagamentos em 12 vezes sem juros Desempenho: responder em menos de 2 segundos Disponibilidade: estar disponível 99% do tempo Usabilidade: implementar acessibilidade para deficientes visuais O que o sistema deve fazer e como deve fazer. Podem ser funcionais e não funcionais. Um Sistema de Pagamentos: - Funcionais: 1. 2. 3. - Não-Funcionais: 1. 2. 3.

Slide 12

Slide 12 text

Projeto Práticas e atividades de Gerência de Projetos:

Slide 13

Slide 13 text

Projeto Práticas e atividades de Gerência de Projetos: - Negociar contratos

Slide 14

Slide 14 text

Projeto Práticas e atividades de Gerência de Projetos: - Negociar contratos - Contratar equipe

Slide 15

Slide 15 text

Projeto Práticas e atividades de Gerência de Projetos: - Negociar contratos - Contratar equipe - Gerência de Riscos

Slide 16

Slide 16 text

Projeto Práticas e atividades de Gerência de Projetos: - Negociar contratos - Contratar equipe - Gerência de Riscos - Stakeholders > partes interessadas no projeto

Slide 17

Slide 17 text

Projeto Primeiro mês: pagamento em boleto Segundo mês: pagamento em cartão de crédito Práticas e atividades de Gerência de Projetos: - Negociar contratos - Contratar equipe - Gerência de Riscos - Stakeholders > partes interessadas no projeto - Planejamento das entregas: 1. 2.

Slide 18

Slide 18 text

Desenvolvimento Implementação do Sistema:

Slide 19

Slide 19 text

Desenvolvimento Implementação do Sistema: - Criar os layouts

Slide 20

Slide 20 text

Desenvolvimento Implementação do Sistema: - Criar os layouts - Definir a arquitetura

Slide 21

Slide 21 text

Desenvolvimento Implementação do Sistema: - Criar os layouts - Definir a arquitetura - Codificar

Slide 22

Slide 22 text

Desenvolvimento Implementação do Sistema: - Criar os layouts - Definir a arquitetura - Codificar - Criar documentação

Slide 23

Slide 23 text

Testes Unidade Integração Ponta-a-ponta Performance Segurança Usabilidade Acessibilidade Garantir que os requisitos (funcionais e não funcionais foram atendidos): Tipos de Teste: 1. 2. 3. 4. 5. 6. 7.

Slide 24

Slide 24 text

Testes Unidade Integração Ponta-a-ponta Performance Segurança Usabilidade Acessibilidade Garantir que os requisitos (funcionais e não funcionais foram atendidos): Tipos de Teste: 1. 2. 3. 4. 5. 6. 7.

Slide 25

Slide 25 text

Testes Unidade Integração Ponta-a-ponta Performance Segurança Usabilidade Acessibilidade Garantir que os requisitos (funcionais e não funcionais foram atendidos): Tipos de Teste: 1. 2. 3. 4. 5. 6. 7.

Slide 26

Slide 26 text

Testes Unidade Integração Ponta-a-ponta Performance Segurança Usabilidade Acessibilidade Garantir que os requisitos (funcionais e não funcionais foram atendidos): Tipos de Teste: 1. 2. 3. 4. 5. 6. 7.

Slide 27

Slide 27 text

Testes Unidade Integração Ponta-a-ponta Performance Segurança Usabilidade Acessibilidade Garantir que os requisitos (funcionais e não funcionais foram atendidos): Tipos de Teste: 1. 2. 3. 4. 5. 6. 7.

Slide 28

Slide 28 text

Testes Unidade Integração Ponta-a-ponta Performance Segurança Usabilidade Acessibilidade Garantir que os requisitos (funcionais e não funcionais foram atendidos): Tipos de Teste: 1. 2. 3. 4. 5. 6. 7.

Slide 29

Slide 29 text

Testes Unidade Integração Ponta-a-ponta Performance Segurança Usabilidade Acessibilidade Garantir que os requisitos (funcionais e não funcionais foram atendidos): Tipos de Teste: 1. 2. 3. 4. 5. 6. 7.

Slide 30

Slide 30 text

Testes Unidade Integração Ponta-a-ponta Performance Segurança Usabilidade Acessibilidade Garantir que os requisitos (funcionais e não funcionais foram atendidos): Tipos de Teste: 1. 2. 3. 4. 5. 6. 7.

Slide 31

Slide 31 text

Manutenção Garantir que o sistema continua funcionando enquanto são incluídas novas funcionalidades: - Corretiva: corrigir problemas (bugs) - Preventiva: ajustar para horário de verão - Adaptativa: migração de versão - Refatoração: modificações que preservam o comportamento e melhoram o código - Evolutiva: novas funcionalidades

Slide 32

Slide 32 text

Manutenção Garantir que o sistema continua funcionando enquanto são incluídas novas funcionalidades: - Corretiva: corrigir problemas (bugs) - Preventiva: ajustar para horário de verão - Adaptativa: migração de versão - Refatoração: modificações que preservam o comportamento e melhoram o código - Evolutiva: novas funcionalidades

Slide 33

Slide 33 text

Manutenção Garantir que o sistema continua funcionando enquanto são incluídas novas funcionalidades: - Corretiva: corrigir problemas (bugs) - Preventiva: ajustar para horário de verão - Adaptativa: migração de versão - Refatoração: modificações que preservam o comportamento e melhoram o código - Evolutiva: novas funcionalidades

Slide 34

Slide 34 text

Manutenção Garantir que o sistema continua funcionando enquanto são incluídas novas funcionalidades: - Corretiva: corrigir problemas (bugs) - Preventiva: ajustar para horário de verão - Adaptativa: migração de versão - Refatoração: modificações que preservam o comportamento e melhoram o código - Evolutiva: novas funcionalidades

Slide 35

Slide 35 text

Manutenção Garantir que o sistema continua funcionando enquanto são incluídas novas funcionalidades: - Corretiva: corrigir problemas (bugs) - Preventiva: ajustar para horário de verão - Adaptativa: migração de versão - Refatoração: modificações que preservam o comportamento e melhoram o código - Evolutiva: novas funcionalidades

Slide 36

Slide 36 text

Manutenção Garantir que o sistema continua funcionando enquanto são incluídas novas funcionalidades: - Corretiva: corrigir problemas (bugs) - Preventiva: ajustar para horário de verão - Adaptativa: migração de versão - Refatoração: modificações que preservam o comportamento e melhoram o código - Evolutiva: novas funcionalidades

Slide 37

Slide 37 text

Configuração Políticas para gerenciar as versões do sistema: - Controle de versão: git - Identificação de Release - Processo de revert

Slide 38

Slide 38 text

Configuração Políticas para gerenciar as versões do sistema: - Controle de versão: git - Identificação de Release - Processo de revert

Slide 39

Slide 39 text

Configuração Políticas para gerenciar as versões do sistema: - Controle de versão: git - Identificação de Release - Processo de revert

Slide 40

Slide 40 text

Configuração Políticas para gerenciar as versões do sistema: - Controle de versão: git - Identificação de Release - Processo de revert

Slide 41

Slide 41 text

Requisitos Projeto Desenvolvimento Teste Manutenção Configuração

Slide 42

Slide 42 text

Metodologias Ágeis 04

Slide 43

Slide 43 text

Manifesto Ágil Por meio deste trabalho, passamos a valorizar: Indivíduos e interações, > mais do que processos e ferramentas Software em funcionamento, > mais do que documentação abrangente Colaboração com o cliente, > mais do que negociação de contratos Resposta a mudanças, > mais do que seguir um plano.

Slide 44

Slide 44 text

Manifesto Ágil Por meio deste trabalho, passamos a valorizar: Indivíduos e interações, > mais do que processos e ferramentas Software em funcionamento, > mais do que documentação abrangente Colaboração com o cliente, > mais do que negociação de contratos Resposta a mudanças, > mais do que seguir um plano.

Slide 45

Slide 45 text

Manifesto Ágil Por meio deste trabalho, passamos a valorizar: Indivíduos e interações, > mais do que processos e ferramentas Software em funcionamento, > mais do que documentação abrangente Colaboração com o cliente, > mais do que negociação de contratos Resposta a mudanças, > mais do que seguir um plano.

Slide 46

Slide 46 text

Manifesto Ágil Por meio deste trabalho, passamos a valorizar: Indivíduos e interações, > mais do que processos e ferramentas Software em funcionamento, > mais do que documentação abrangente Colaboração com o cliente, > mais do que negociação de contratos Resposta a mudanças, > mais do que seguir um plano.

Slide 47

Slide 47 text

Manifesto Ágil Por meio deste trabalho, passamos a valorizar: Indivíduos e interações, > mais do que processos e ferramentas Software em funcionamento, > mais do que documentação abrangente Colaboração com o cliente, > mais do que negociação de contratos Resposta a mudanças, > mais do que seguir um plano.

Slide 48

Slide 48 text

Programação Extrema (XP)

Slide 49

Slide 49 text

Programação Extrema (XP) Valores: Comunicação Simplicidade Feedback Coragem Respeito Qualidade de vida

Slide 50

Slide 50 text

Programação Extrema (XP) Princípios: Humanidade Economicidade Benefícios mútuos Melhorias contínuas Falhas acontecem Baby steps Responsabilidade pessoal Valores: Comunicação Simplicidade Feedback Coragem Respeito Qualidade de vida

Slide 51

Slide 51 text

Dicas pra vida 05

Slide 52

Slide 52 text

Participe de Comunidades e Eventos

Slide 53

Slide 53 text

Tente, toda tentativa gera aprendizado

Slide 54

Slide 54 text

Se aproxime de mentores

Slide 55

Slide 55 text

Compartilhe o que sabe

Slide 56

Slide 56 text

Explore as possibilidades

Slide 57

Slide 57 text

Tecnologia pode (e deve) ser usada como meio para um mundo melhor

Slide 58

Slide 58 text

Perguntas :)

Slide 59

Slide 59 text

Marco Tulio Valente. Engenharia de Software Moderna: Princípios e Práticas para Desenvolvimento de Software com Produtividade, 2020. https://engsoftmoderna.info/ Referência

Slide 60

Slide 60 text

Obrigada samycici@gmail.com