Você está na página 1de 9

29/07/2022

• Unidade de Ensino: 01

• Competência da Unidade: Conhecer os fundamentos da


Engenharia de Software e da metodologia tradicional de
desenvolvimento de produtos de software
Engenharia de • Resumo: Aplicar fundamentos de engenharia de software,
Software metodologias ágeis e controle de versões no processo de
desenvolvimento
Fundamentos de engenharia de
• Palavras-chave: Engenharia de Software, metodologia ágil, XP,
Software
SCRUM, gerenciamento de configuração
Ma. Vanessa Matias Leite • Título da Teleaula: Fundamentos de engenharia de Software

• Teleaula nº: 01

1 2

Princípios da Engenharia de Software


• Organização hierárquica;
• Formalidade;
Introdução à
• Completeza;
• Dividir para conquistar; engenharia de
• Ocultação; software
• Localização;
• Integridade conceitual;
• Abstração

3 4

Fundamentos da Engenharia de Software Tipos de Software


“Engenharia de software é uma disciplina cujo objetivo é • Sistema;
produzir software isento de falhas, entregue dentro do • Aplicação;
prazo e orçamentos previstos, e que atenda às
• Engenharia/científico;
necessidades do cliente. Além disso, o software deve ser
• Embarcado;
fácil de ser modificado quando as necessidades dos
usuários mudarem”. • Web;
• Aplicativos móveis;
• Inteligência artificial;

5 6

1
29/07/2022

Crise do Software Eternos Mitos


• Projetos que estouram o cronograma. • A existência de um manual de procedimentos e
• Projetos que estouram o orçamento. padrões é suficiente para a equipe produzir com
qualidade;
• Produto final de baixa qualidade ou que não atenda
aos requisitos. • Se o projeto estiver atrasado, sempre é possível
• Produtos não gerenciáveis e difíceis de manter e adicionar mais programadores para cumprir o
cronograma;
evoluir.
• Os requisitos mudam com frequência, mas sempre é
possível acomodá-los, pois o software é flexível.
• O teste do software ou sua verificação formal pode
remover todos os erros;

7 8

Modelo de processo Processos de Softwares


Um modelo de processo de software é uma • Sequência de passos executados com um
representação/abstração dos objetos e atividades determinado objetivo.
envolvidas no processo de software. • Um processo é uma receita que é seguida por um
projeto.
Modo mais abrangente e fácil de representar o
gerenciamento de processo de software e o progresso do
projeto.

Fonte: Pressman (2016)

9 10

Processos de Softwares Processos de Softwares

Fonte: Neto (2021) Fonte: Neto (2021)

11 12

2
29/07/2022

Modelo Espiral Modelo V

Fonte: Pressman (2016) Fonte: Pressman (2016)

13 14

Modelo Incremental

Metodologia Ágil

Fonte: Pressman (2016)

15 16

Histórico Metodologia Ágil


• Meados de 1990, motivados por uma reação adversa • Planejamento incremental e muito iterativa;
aos chamados “métodos pesados” de desenvolvimento • Menos ênfase nas definições das atividades e mais
de software; ênfase nos fatores humanos do desenvolvimento;
• Processos ágeis se adequam a mudanças;
• 2001 surgimento e a propagação de paradigmas de • Mais envolvimento dos clientes;
desenvolvimento de software ágeis.

• Manifesto ágil;

17 18

3
29/07/2022

Metodologia Ágil- Extreme Programming (XP)


Motivações

• Menos centradas em documentação; • Rápido desenvolvimento;


• Requisitos se alteram constantemente;
• São adaptativas em vez de predeterminantes;
• Valores do XP:
• Aceitam mudanças ao longo do desenvolvimento de
• Comunicação;
maneira natural;
• Simplicidade;
• Orientados a pessoas e não a processos. • Feedback;
• Coragem;

19 20

Metodologia Ágil- Extreme Programming (XP)


Metodologia Ágil- Extreme Programming (XP)
• Equipe de Trabalho:
• Gerente de Projeto: responsável pelos assuntos
administrativos, incluindo relacionamento com o
cliente;
• Coach : responsável técnico pelo projeto;
• Analista de teste: ajuda o cliente a escrever os
testes de aceitação e fornece feedback para a equipe
interna;

Fonte: Pressman (2016)

21 22

Metodologia Ágil- Extreme Programming (XP)


Metodologia Ágil- Scrum
• Equipe de Trabalho: • Método ágil mais usado atualmente.
• Redator técnico: ajuda a equipe de desenvolvimento • Aplica-se não só ao desenvolvimento de softwares
a documentar o sistema; como a qualquer ambiente de trabalho.
• Desenvolvedor: realiza análise, projeto e codificação • Focado na gestão de projetos, tem como base o
do sistema. No XP, não há divisão entre estas
planejamento iterativo e incremental.
especialidades.
• É um framework utilizado na gestão de projetos
e desenvolvimento ágil de software.

23 24

4
29/07/2022

Metodologia Ágil- Scrum Metodologia Ágil- Scrum


• Gestão e planejamento de Software; • Equipe de trabalho:
• Reuniões Regulares (Stand-up Meeting); • Scrum Master : trata-se de um facilitador do projeto;

• Projetos são divididos em ciclos; • Product Owner : é a pessoa responsável pelo projeto
propriamente dito. Ele tem a missão de indicar os
• Entrega incremental;
requisitos mais importantes a serem tratados nos
• Envolvimento do cliente; Sprints .
• Scrum Team : é a equipe de desenvolvimento,
composta normalmente por seis a dez pessoas.

25 26

Metodologia Ágil- Scrum


• Product Backlog: trata-se da lista que contém todas
as funcionalidades desejadas para o produto.
• Sprint Backlog: lista de tarefas que a equipe deverá
executar naquele Sprint.
• Sprint: divide o processo de efetiva construção do
software em ciclos regulares, que variam de duas a
quatro semanas.

Fonte: h5ps://bit.ly/2ZnbWn5

27 28

Metodologia Ágil- Scrum


• Kanban: “quadro de trabalho”, organizar as atividades
dos itens de Backlog da Sprint;
Quadro Scrum
• Pôquer do planejamento; Fonte: h5ps://bit.ly/39RxzzY

Fonte: Sbrocco (2012)

29 30

5
29/07/2022

Quadro Scrum Quadro Scrum


• Meio pelo qual a equipe realiza a gestão visual das • As divisões do quadro (formato matricial) são bem
atividades do projeto. simples: uma coluna identifica a estória e as três
colunas seguintes representam as tarefas relacionadas
a esta estória que estão: a fazer (to do), em execução
• Não faz parte, oficialmente da metodologia, porém sua
adoção foi feita em larga escala pelas equipes e, (doing) e feita (done).
aparentemente, esse fato não altera sua importância. • Com essa disposição, cada linha do quadro representa
uma estória e suas respectivas tarefas, que são, na
verdade, extraídas do backlog do produto e que foram
selecionadas para uma determinada Sprint.

31 32

Quadro Scrum
• Os papéis coloridos colados no quadro são post-its.
• Representam uma determinada característica ou
estado daquela tarefa e contêm sua identificação
resumida.
• A cor do post-it pode representar uma certa atenção
ao estado daquela tarefa;
• A critério da equipe, uma determinada cor pode
identificar um determinado membro da equipe.

Fonte: Neto (2021)

33 34

Gestão de
Configuração

Fonte: Neto (2021)

35 36

6
29/07/2022

Gestão de Configuração Planejamento de Gerenciamento de Configuração


• Definir o que será gerenciado e o esquema que será
“Arte de identificar, organizar e controlar modificações no usado para identificar as entidades;
software que está sendo criado, maximizando a • Estabelecer o responsável;
produtividade e reduzindo os erros” [Pressman, 2011] • Estabelecer políticas de gerenciamento de
configuração;
• Especificar de ferramentas;
• Descrever a estrutura do banco de dados;

37 39

Gerenciamento de Configuração Gerenciamento de Configuração

• Repositório;

• Baselines (linhas de base);

• Branches;

Fonte: Pressman (2016)

40 41

Item de configuração Identificação de item de configuração


Elemento unitário ou um grupo de elementos para efeito • Manter a rastreabilidade;
de controle de versão. • Documentos que podem ser úteis devem ser
• Código controlados pelo gerenciamento de configuração;
• Documentação • Esquemas de nomes hierarquizados;
• Diagramas, planos, ferramentas, casos de teste e etc

42 43

7
29/07/2022

Banco de Dados de Configuração Gerenciamento de Versões e Releases


• Registrar todas as informações relevantes sobre a • Preocupa-se com a identificação e a rastreabilidade
configurações de sistemas e os itens de configuração; das versões de um sistema;
• Avaliar o impacto das mudanças no sistema; • Uma versão é uma instância de um sistema, que
• Registro e recuperação de informações de projeto; difere, de alguma maneira, de outras instâncias;
• Versões com pequenas diferenças são algumas vezes
chamadas de variantes;

44 45

Gerenciamento de Versões e Releases Identificação de Versões


• Releases: Versão distribuída aos clientes; • Numeração de versões;
• Os releases devem incorporar novas funcionalidades • Identificação baseada em atributos;
ou ser planejado para uma plataforma diferente de • Identificação orientada a mudanças;
hardware;
• Há normalmente muito mais versões de um sistema
do que liberações;

46 47

Ferramentas

Recapitulando

Fonte: h5ps://bit.ly/2W1AspJ

48 49

8
29/07/2022

Recapitulando
• Conceito da Engenharia de Software;
• Modelos de Processos;
• Metodologia ágil:
• XP
• SCRUM
• Gestão de Configuração;

50 51

Você também pode gostar