Ir para o conteúdo

Processo de desenvolvimento de software

Histórico de revisão

Data Versão Descrição Autor(es)
26/09/2023 0.1 Criação e estruturação do documento Felipe Direito,
Luan Mateus
24/10/2023 0.2 Atualização de Metodologia Luan Mateus
11/12/2023 0.3 Inserção de Práticas do XP Luan Mateus

GUPTA

O Gupta (2008)¹ propõe que a definição da abordagem de desenvolvimento de software ideal deve ser baseada em uma série de critérios fundamentais. Esses critérios incluem as necessidades e requisitos específicos do projeto, o ambiente e a cultura organizacional em que o projeto será executado, o tamanho e a complexidade do projeto, os riscos envolvidos, o orçamento disponível e o prazo para a conclusão do projeto.

Características dos Requisitos

Requisitos Cascata Prototipação Iterativo e Incremental Evolutivo Spiral RAD
Os requisitos são facilmente compreensíveis e definidos? (NÃO) Sim Não Não Não Não Sim
Mudamos os requisitos com bastante frequência? (SIM) Sim Não Sim Sim Não Sim
Podemos mudar os requisitos no início do ciclo? (SIM) Sim Não Sim Sim Não Sim
Os requisitos indicam um sistema complexo a ser construído? (NÃO) Sim Não Não Não Não Sim

Status da Equipe de Desenvolvimento

Requisitos Cascata Prototipação Iterativo e Incremental Evolutivo Spiral RAD
Menos experiência em projetos similares(NÃO) Não Sim Não Não Sim Não
Menos conhecimento de domínio (novidade na tecnologia) (NÃO) Não Sim Não Não Não Sim
Menos experiência nas ferramentas a serem utilizadas (NÃO) Não Sim Sim Sim Não Sim
Disponibilidade de treinamento, se necessário(SIM) Não Não Sim Sim Não Sim

Envolvimento do Usuário

Requisitos Cascata Prototipação Iterativo e Incremental Evolutivo Spiral RAD
Envolvimento do usuário em todas as fases (SIM) Sim Não Sim Sim Sim Não
Participação limitada do usuário(NÃO) Sim Não Sim Sim Sim Não
O usuário não tem experiência prévia de participação em projeto semelhante(SIM) Não Sim Sim Sim Sim Não
Os usuários são especialistas no domínio do problema (NÃO) Sim Não Não Sim Sim Não

Tipo de Projeto e Risco Associado

Requisitos Cascata Prototipação Iterativo e Incremental Evolutivo Spiral RAD
O projeto é aprimoramento do sistema existente (SIM) Sim Sim Não Não Sim Não
O financiamento é estável para o projeto(SIM) Sim Sim Não Não Não Sim
Altos requisitos de confiabilidade(SIM) Não Não Sim Sim Sim Não
Cronograma do projeto apertado(SIM) Não Sim Sim Sim Sim Sim
Uso de componentes reutilizáveis(NÃO) Sim Não Sim Sim Não Não
Os recursos (tempo, dinheiro, pessoas etc.) são escassos?(SIM) Não Sim Não Não Sim Não

Conclusão

  • Cascata: 8
  • Prototipação: 10
  • Iterativo e Incremental: 12
  • Evolutivo: 11
  • Spiral: 11
  • RAD: 9

Ao analisar cada uma das perguntas no contexto atual do projeto, obtivemos o resultado da metodologia Iterativo e Incremental. Essa é uma metodologia ágil e permite o desenvolvimento iterativo do software, com entregas incrementais ao longo do tempo. Ela se baseia na colaboração intensa entre a equipe de desenvolvimento e os stakeholders do projeto.

Engenharia de Requisitos

A abordagem que escolhemos para o nosso projeto é a abordagem ágil, com ciclo de vida iterativo incremental e utilizando o Scrum/XP para a execução do projeto. Optamos por essa configuração nos baseando no tamanho da nossa equipe, no prazo que foi estabelecido e também pela "informalidade" do projeto, uma vez que não é um projeto com altos risco e nem precisa ser tão documentado, nesse sentido, o Backlog como documentação de requisitos e a dinâmica iterativa das sprints darão um ritmo adequado para o desenvolvimento.

Ao analisarmos as facetas do processo de ER, identificamos que a faceta mais adequada seria a do processo Participativo sendo ele iterativo e exploratório que se destaca pela estreita colaboração com um cliente específico ao longo de todo o ciclo de desenvolvimento. Esse método promove a exploração contínua das necessidades e expectativas do cliente, resultando em um software altamente adaptado às suas demandas específicas, devido ao surgimento de novos requisitos ao longo do projeto e com cliente definido, não voltado ao mercado.

Todas as atividades de Engenharia de Requisitos são realizadas durante a execução do Projeto:

  • Elicitação e Descoberta: Essa atividade tem um foco logo no início do projeto para levantar os primeiros requisitos, ajudar no entendimento do problema e identificar necessidades e possíveis soluções. Entretanto, ela deve ocorrer espontâneamente ao longo de todo o ciclo de vida do produto.
  • Análise e Consenso: Essa atividade é feita posteriormente ao levantamento inicial, com o objetivo de decidir se os requisitos estão alinhados com os objetivos do projeto, e identificar conflitos entre as parte interessadas.
  • Declaração: Ela é executada juntamente com a atividade de Elicitação e Descoberta, a fim de comunicar os requisitos que estão sendo levantados.
  • Representação: Para esse projeto, o tipo de representação será na sua grande maioria informal, e será desenvolvida ao decorrer das sprints.
  • Verificação e Validação: Essa atividade também será realizada a cada ciclo (sprint), mais especificamente na planning, execução da sprint e na review.
  • Organização e Atualização: Essa atividade está presente durante todo o andamento do projeto, sendo uma atividade primordial no início(planning) da sprint, e no final(revisão) da mesma.

Como pretendemos aplicar cada uma delas:

Atividade Método Ferramenta Entrega Cerimônia Scrum
Elicitação e Descoberta Entrevista, Brainstorming e Benchmarking (comparando com produtos similares) Discord ou outra plataforma de vídeo chamadas e o Google Docs (para anotar o que está sendo declarado) Ideias dos possíveis requisitos em um arquivo texto e audiovisual caso a reunião seja gravada. Ao decorrer de todo o desenvolvimento do projeto
Análise e Consenso Negociação Discord ou outra plataforma de vídeo chamadas Proposta de solução Também está presente na elaboração/atualização do Backlog, Planning e na Review(quando necessário)
Declaração Histórias de Usuário Google Docs e Excel Lista com os os requisitos funcionais e não funcionais No desenvolvimento do Backlog e na Review (caso apareçam novos requisitos)
Representação Mapas mentais, Wireframes e talvez alguns diagramas de casos de uso Miro, Papel e draw.io Representações gráficas dos requisitos Está presente na execução da Sprint, a fim de que os resultados sejam apresentados na cerimônia de Review tanto para a equipe de desenvolvimento quanto para o cliente.
Verificação e Validação Análise da estrutura das US's, Revisão por pares utilizando Checklist Google Sheets e Google Docs Lista com o que precisa ser alterado Planning, Execução da Sprint e Review
Organização e Atualização Product Backlog Google Sheets Backlog (sempre atualizado) Está presente no desenvolvimento do Backlog e nas Plannings

Práticas Utilizadas do XP

  • Programação em Pares
  • Refatoração
  • Código Coletivo
  • Ritmo Sustentável

Documentação de Pair Programming

Duplas O que foi feito? Data
Felipe Direito e Felipe Hansen - Resolução de Erros de Integração de FrontEnd com BackEnd 05/12/2023
Felipe Hansen e Luan Mateus - Desenvolvimento FrontEnd: Inserção de Cards na Página de Receitas 06/12/2023
Felipe Direito e Felipe Hansen - Resolução de Erros de Integração de FrontEnd com BackEnd 07/12/2023
Felipe Direito e Luan Mateus - Resolução de Erros na chamada de API. 08/12/2023
Felipe Hansen e Luan Mateus - Desenvolvimento FrontEnd: Correção de Exibição de Fotos na Página de Receita 10/12/2023

Referências Bibliográficas

¹ GUPTA, S. Managing Iterative Software Development Projects. Auerbach Publications, 2008.