Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

28/04/2025 1
Unidade 2
PROCESSOS DE SOFTWARE
28/04/2025 2
PROCESSO DE SOFTWARE
Processo de Software
• Conjunto de passos envolvendo atividades e recursos que produz um resultado1
• Seqüência de passos previsíveis que ajuda a criar a tempo um sistema de alta 
qualidade2
• Envolve um conjunto de técnicas e ferramentas da engenharia de software
• Importante para:
• Garantir a qualidade do software
• Aumentar a produtividade da equipe
• Manter prazos e orçamentos estimados
• Melhorar o controle e evolução contínua do sistema
28/04/2025 3
PROCESSO DE SOFTWARE
• O desenvolvimento de software não consiste apenas em escrever código. Ele passa por 
várias fases, que formam o ciclo de vida do software
• Ciclo de Vida do Software representa todas as fases pelas quais um software passa, 
desde a concepção até sua aposentadoria (descontinuação)desde a concepção até sua aposentadoria (descontinuação)
• Por que é importante entender o ciclo de vida do software?
• Ajuda a planejar melhor o projeto
• Permite a gerência de riscos
• Facilita a comunicação entre equipe e cliente
• Ajuda a escolher o modelo de desenvolvimento mais adequado
28/04/2025 4
CICLO DE VIDA DE SOFTWARE
Etapas básicas do Ciclo de Vida de Software
• Análise (requisitos)
• Projeto (Design)
• Codificação (Implementação)
Análise
Projeto• Codificação (Implementação)
• Testes (Validação)
• Implantação
28/04/2025 5
Projeto
Codificação
Testes
Implantação
CICLO DE VIDA DE SOFTWARE
Análise de Requisitos (levantamento e especificação)
• O que o software deve fazer
• Levantamento com o cliente
• Análise de necessidades
• Definição de funcionalidades
• Ex: “O sistema deve permitir o cadastro de novos usuários com CPF e email únicos”• Ex: “O sistema deve permitir o cadastro de novos usuários com CPF e email únicos”
Projeto (Design)
• Como o software será construído
• Arquitetura do sistema
• Interface com o usuário
• Estrutura dos dados
• Ex: Diagramas UML, wireframes da interface
28/04/2025 6
CICLO DE VIDA DE SOFTWARE
Codificação (Implementação)
• Desenvolvimento real do sistema
• Programação dos módulos
• Integração das partes
• Uso de boas práticas (clean code, versionamento)
Testes e Validação
• Verifica se o sistema está fazendo o que deveria fazer
• Testes unitários, de integração, de sistema e de aceitação
• Correção de falhas
28/04/2025 7
CICLO DE VIDA DE SOFTWARE
Implantação
• O sistema é colocado em produção
• Treinamento dos usuários
• Suporte inicial
• Publicação no ambiente real
*Manutenção
• A vida após a entrega
• Correção de bugs
• Adição de novas funcionalidades
• Adaptação a mudanças
28/04/2025 8
MODELOS DE PROCESSO
• Modelos de Processo são formas alternativas de organizar o desenvolvimento, mais 
adaptáveis a contextos diferentes
• Existem diferentes tipos de modelos de processo, cada um apropriado para um 
determinado contexto
• Prazo• Prazo
• Qualidade
• Gerenciamento
• Evolução do software
• Ajuda a equipe:
• Planejar, gerenciar e controlar o desenvolvimento
• Atender os requisitos
• Cumprir prazos e orçamento
28/04/2025 9
MODELOS DE PROCESSO
As atividades fundamentais dos processos (maioria dos modelos)
Atividade Função principal
Comunicação Levantamento e negociação dos requisitos com stakeholders
28/04/2025 10
Planejamento Estimativa de esforço, cronograma, recursos
Modelagem Representação do software (requisitos, arquitetura, design)
Construção Codificação + Testes
Entrega Deploy do sistema para o cliente
Gerência de mudanças Controle de versões, correção de erros, melhorias
MODELOS DE PROCESSO
Tipos de Processos
• Cascata (Modelo Clássico) 
• Prototipação
• Incremental• Incremental
• Espiral
• Desenvolvimento Ágil
• XP (eXtreme Programming)
• Scrum
28/04/2025 11
MODELO CASCATA
Modelo Cascata (Clássico)
• Modelo tradicional de processo de software
• Desenvolvimento linear e sequencial
• Cada fase deve ser concluída para iniciar a próxima
• Resultado de uma fase  Entrada da fase seguinte• Resultado de uma fase  Entrada da fase seguinte
28/04/2025 12
MODELO CASCATA
Levantamento com o cliente
Análise de necessidades
Definição de funcionalidades
28/04/2025 13
MODELO CASCATA
Design/projeto
28/04/2025 14
Design/projeto
Interface com o usuário
Modelagem do software
Representações gráficas dos requisitos
Arquitetura do sistema
MODELO CASCATA
28/04/2025 15
Desenvolvimento do código-fonte
Implementação do Banco de Dados
Construção das Interfaces
MODELO CASCATA
28/04/2025 16
Testar o comportamento do software
Testar as funcionalidades 
Identificar erros e inconsistências
Verificar os resultados das diferentes entradas
MODELO CASCATA
28/04/2025 17
Começa após a entrega para o cliente
Adaptação ao ambiente de trabalho
Alterações, mudanças e correção de erros
Novas funcionalidades/serviços (Evolução do software)
MODELO CASCATA
• Vantagens:
• Clareza nas etapas
• Fácil gerenciamento
• Desvantagens:
• Projetos reais raramente seguem o fluxo seqüencial• Projetos reais raramente seguem o fluxo seqüencial
• Dificuldade de adaptação a mudanças
• Difícil estabelecer todos os requisitos corretamente no começo do projeto
• Feedback tardio do cliente
• A versão executável só fica disponível no fim do processo
28/04/2025 18
MODELO DE PROTOTIPAÇÃO
• Focado na construção rápida da versão inicial (protótipo)
• Busca entender os requisitos do usuário para obter a melhor definição dos 
requisitos do sistema
• Apropriado quando o cliente ainda não definiu detalhadamente os requisitos
• Fases:
1. Levantamento inicial de requisitos.
2. Construção do protótipo.
3. Avaliação pelo cliente.
4. Refinamento do protótipo até chegar ao sistema final.
28/04/2025 19
Modelo de PrototipaçãoObter Requisitos 
Elaborar Projeto Rápido
MODELO DE PROTOTIPAÇÃO
20
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
Modelo de PrototipaçãoObter Requisitos
Elaborar Projeto Rápido
11-- OBTENÇÃO DOS REQUISITOSOBTENÇÃO DOS REQUISITOS:: desenvolvedor e 
cliente definem os objetivos gerais do software, 
MODELO DE PROTOTIPAÇÃO
21
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
cliente definem os objetivos gerais do software, 
identificam quais requisitos são conhecidos e as áreas 
que necessitam de definições adicionais.
Modelo de PrototipaçãoObter Requisitos 
Elaborar Projeto Rápido
MODELO DE PROTOTIPAÇÃO
22
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
22-- PROJETO RÁPIDO:PROJETO RÁPIDO: representação dos aspectos 
do software que são visíveis ao usuário (abordagens 
de entrada e formatos de saída)
Modelo de PrototipaçãoObter Requisitos 
Elaborar Projeto Rápido
MODELO DE PROTOTIPAÇÃO
23
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
33-- CONSTRUÇÃO PROTÓTIPO:CONSTRUÇÃO PROTÓTIPO: implementação 
rápida do projeto
Modelo de PrototipaçãoObter Requisitos 
Elaborar Projeto Rápido
MODELO DE PROTOTIPAÇÃO
24
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo44-- AVALIAÇÃO DO PROTÓTIPOAVALIAÇÃO DO PROTÓTIPO:: cliente e 
desenvolvedor avaliam o protótipo
Modelo de PrototipaçãoObter Requisitos 
Elaborar Projeto Rápido
55-- REFINAMENTO DO PROTÓTIPO:REFINAMENTO DO PROTÓTIPO: cliente e 
desenvolvedor refinam os requisitos do 
software a ser desenvolvido.
MODELO DE PROTOTIPAÇÃO
25
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
Modelo de PrototipaçãoObter Requisitos 
Elaborar Projeto Rápido
MODELO DE PROTOTIPAÇÃO
66-- CONSTRUÇÃO PRODUTO:CONSTRUÇÃO PRODUTO: identificados os 
requisitos, o protótipo deve ser descartado e a 
versão de produção deve ser construída 
26
Elaborar Projeto Rápido
Construir Protótipo
Avaliar Protótipo
Refinamento do Protótipo
versão de produção deve ser construída 
considerando os critérios de qualidade.
MODELO DE PROTOTIPAÇÃO
Vantagens:
•Facilita a compreensão dos requisitos.
• Reduz o risco da má comunicação entre desenvolvedores e clientes.
Desvantagens:Desvantagens:
• Protótipos podem ser confundidos com o sistema final.
• Se não gerenciado corretamente, pode resultar em um processo mais demorado.
28/04/2025 27
MODELO INCREMENTAL
• Combina elementos do modelo Cascata com prototipação
• O desenvolvimento é dividido em pequenas partes (Incrementos)
• Cada parte é projetada, desenvolvida e testada de maneira independente
• Objetivo: 
• Entregar o sistema em partes, onde cada parte agrega valor ao sistema final.
• Fases:
• Análise/Requisitos
• Projeto/Design
• Codificação
• Teste
28/04/2025 28
MODELO INCREMENTAL
28/04/2025 29
MODELO INCREMENTAL
• O primeiro incremento entregue é o produto principal (requisitos básicos) 
• Após validação (cliente), novos incrementos vão sendo integrados no produto principal
• O processo se repete até a conclusão do software
Vantagens:
• Entregas parciais permitem testes e validações contínuas.
• Requisitos podem ser ajustados entre incrementos.
Desvantagens:
• Integração contínua pode ser complexa.
• Demora para o cliente receber o software completo
• Requisitos não tão bem definidos inicialmente podem causar atrasos.
28/04/2025 30
MODELO ESPIRAL
• Incorpora características dos modelos incremental, cascata e prototipação
• Incluindo uma nova abordagem: Análise de riscos
• O desenvolvimento ocorre em vários ciclos
• Cada ciclo representa uma etapa de desenvolvimento• Cada ciclo representa uma etapa de desenvolvimento
• Os riscos vão sendo minimizados a cada nova iteração
• Usa a Prototipação em qualquer etapa da evolução do produto
28/04/2025 31
MODELO ESPIRAL
28/04/2025 32
MANIFESTO ÁGIL
• Métodos tradicionais de desenvolvimento de software
• Rígidos e burocráticos
• Documentação extensa
• Planejamento minucioso e detalhado (desde o início do projeto) 
• Resultava em atrasos e softwares abaixo das expectativas dos clientes
• Manifesto Ágil surgiu como alternativa aos métodos tradicionais• Manifesto Ágil surgiu como alternativa aos métodos tradicionais
• Documento assinado por um grupo de programadores experientes, em 2001
• Manifesto contra os modelos de processo tradicionais
• Conjunto de valores e princípios para o processo de desenvolvimento de software
Valores 
• Indivíduos e interações mais que processos e ferramentas
• Software em funcionamento mais que documentação abrangente
• Colaboração com o cliente mais que negociação de contratos
• Responder a mudanças mais que seguir um plano
28/04/2025 33
MANIFESTO ÁGIL
Princípios do Manifesto Ágil
• Entregar software funcional com frequência, priorizando ciclos curtos
• Adaptar-se a mudanças para garantir vantagem competitiva
• Manter a colaboração constante entre desenvolvedores e clientes
• Construir projetos em torno de indivíduos motivados, oferecendo autonomia• Construir projetos em torno de indivíduos motivados, oferecendo autonomia
• Preferir comunicação face a face para maior eficiência
• Medir o progresso pelo funcionamento do software
• Manter um ritmo sustentável de desenvolvimento
• Buscar excelência técnica e design simples
• Incentivar equipes autogerenciáveis
• Refletir continuamente para melhorar processos.
28/04/2025 34
MÉTODOS ÁGEIS
• O manifesto deu origem a vários métodos Ágeis
• Kanban
• FDD (Feature Driven Development)
• Scrum
• XP (eXtreme Programming) 
Métodos Ágeis
• Foco na entrega rápida e incremental de um produto funcional
• Incorpora características dos modelos iterativo e incremental (prototipação)
• Trabalho cooperativo
• Interações constantes
28/04/2025 35
MÉTODOS ÁGEIS
Características dos Métodos Ágeis
• Iterações curtas: Desenvolvimento em ciclos curtos "sprints" (1 a 4 semanas)
• Entrega contínua de valor: Entrega de uma versão funcional (fim de cada sprint)
• Flexível à mudanças: Facilidade de adaptado às mudanças de requisitos (qualquer fase)• Flexível à mudanças: Facilidade de adaptado às mudanças de requisitos (qualquer fase)
• Colaboração com o cliente: Cliente participa de todo o processo de desenvolvimento
• Equipes multidisciplinares: Equipes auto-gerenciáveis e multidisciplinares
• Feedback contínuo: Reuniões constantes entre os envolvidos (cliente, equipe, stakeholders)
28/04/2025 36
XP (Extreme Programming)
Programação XP
• Voltada para equipes de até 20 pessoas / 40 horas de trabalho
• Adequada para projetos cujo os requisitos são vagos e/ou mudam constantemente
• Programação em pares• Programação em pares
• Desenvolvimento Dirigido por Testes (TDD)
• Envolvimento do cliente durante todo o processo
• Uso de Histórias do usuário e Metáforas (em vez de documentação detalhada)
• Histórias do usuário: Descrições curtas e simples das funcionalidades que o usuário deseja
• Metáfora: Descrição simplificada de como o sistema funciona (comparações com situações familiares)
28/04/2025 37
XP (Extreme Programming)
Etapas: 
• Planejamento
• Projeto
• Codificação
• Teste
28/04/2025 38
Scrum
Programação Scrum
• Um dos métodos ágeis mais populares 
• Usada para o gerenciamento de projetos / desenvolvimento de software
• Abordagem iterativa e incremental: Sprint curto (1/4 sem.), entrega contínua (Inc./sprint)
Papéis
• Product Owner (Dono do Produto): Define as funcionalidades/prioriza tarefas (Product Backlog)
• Scrum Master: Gerencia todas as etapas garantindo que a equipe siga os princípios ágeis
• Time de Desenvolvimento: Equipe multifuncional responsável por entregar incrementos
Artefatos Scrum
• Product Backlog: Lista priorizada de tudo que é necessário para o produto 
• Sprint Backlog: Lista de tarefas selecionadas do Product Backlog (executadas no Sprint)
• Incremento: Itens do Product Backlog concluídos na Sprint (pronto para uso)
Scrum
Eventos Scrum
• Planejamento da Sprint (Sprint Planning): Reunião de planejamento (início de cada sprint)
• Scrum Diário (Daily Scrum): Reunião diária (15 min.) para sincronizar e ajustar as atividades
• Revisão da Sprint (Sprint Review): Reunião no final do Sprint (discutir resultados)
• Retrospectiva da Sprint (Sprint Retrospective): Reunião para refletir os erros e acertos

Mais conteúdos dessa disciplina