Metodologia
Introdução
A metodologia pode ser definida como a sistematização de métodos e técnicas com o intuito de se alcançar um objetivo. Este documento aborda as metodologias, processos e práticas efetivamente utilizadas no desenvolvimento do projeto Simblissima, um sistema de gerenciamento de pedidos e entregas para a Ilha Primeira, construído como uma API REST com interface Single Page Application (SPA).
Metodologia
A equipe adotou uma abordagem híbrida que combina elementos de metodologias ágeis com práticas de desenvolvimento iterativo. O desenvolvimento foi estruturado em interações bem definidas, com foco na entrega contínua de valor e na adaptação às necessidades do projeto. As práticas utilizadas foram escolhidas com base na experiência da equipe e nos requisitos específicos do sistema Simblissima.
Metodologias e Práticas Adotadas
RUP (Rational Unified Process)
O RUP foi utilizado como base estrutural para organizar as fases do projeto, proporcionando uma abordagem disciplinada e iterativa. O projeto seguiu as fases de Iniciação, Elaboração, Construção e Transição, com documentação técnica detalhada e artefatos bem definidos.
Desenvolvimento Iterativo
O projeto foi desenvolvido através de iterações sucessivas, permitindo refinamento contínuo dos requisitos e entrega incremental de funcionalidades. Cada iteração incluiu análise, design, implementação e testes das funcionalidades propostas.
Kanban
Foi utilizado um sistema de gerenciamento visual das tarefas, organizando o trabalho em diferentes estágios do desenvolvimento, desde o backlog até a conclusão, facilitando o acompanhamento do progresso e a identificação de gargalos.
Práticas de Desenvolvimento
Versão 1.0
Arquitetura e Design
Padrão Cliente-Servidor
O sistema foi desenvolvido seguindo o padrão Cliente-Servidor, onde o frontend (SPA) atua como cliente enviando requisições HTTP para o backend (API Django REST Framework) que processa e retorna as respostas apropriadas.
Padrão MVT (Model-View-Template)
Utilizando o framework Django, o backend segue o padrão MVT onde os Models representam a estrutura de dados, as Views (ViewSets) contêm a lógica de negócio e os Templates são substituídos por serializers para comunicação com o frontend.
Programação Orientada a Objetos (POO)
O desenvolvimento utilizou amplamente os princípios da POO, com criação de classes modelando entidades do domínio (Cliente, Pedido, ItemPedido, StatusPedido), herança de classes base do Django e Django REST Framework, e encapsulamento da lógica de negócio em métodos específicos.
Tecnologias e Ferramentas
Backend
- Python: Linguagem principal do desenvolvimento backend
- Django: Framework web para desenvolvimento rápido e eficiente
- Django REST Framework: Toolkit para construção da API RESTful
- SQLite: Banco de dados utilizado para desenvolvimento e testes
Frontend
- JavaScript: Linguagem para interatividade da SPA
- HTML5 e CSS3: Estrutura e estilização da interface
- Bootstrap: Framework CSS para design responsivo
Ferramentas de Desenvolvimento
- Git/GitHub: Controle de versão e colaboração
- Visual Studio Code: Ambiente de desenvolvimento integrado
- Live Share: Colaboração em tempo real no código
- Discord/WhatsApp: Comunicação da equipe
Práticas de Qualidade
Validação e Segurança
Implementação de validações rigorosas nos serializers (CPF com 11 dígitos, preços positivos, emails únicos), sistema de autenticação por sessão, controle de permissões baseado em roles (IsOwnerOrStaff), e proteção CSRF para prevenir ataques cross-site request forgery.
Tratamento de Erros
Implementação de respostas de erro padronizadas com códigos HTTP apropriados, logs detalhados para debug e desenvolvimento, e mensagens informativas para melhor experiência do usuário.
Transações Atômicas
Utilização de transaction.atomic() para garantir consistência de dados em operações complexas, como criação de pedidos com status inicial e atualização de valores totais.
Organização do Trabalho
Quadro Kanban
O gerenciamento de tarefas foi organizado através de um quadro Kanban com as seguintes colunas:
- Lista de Tarefas: Contém todas as tarefas identificadas para o projeto
- Incremento: Contém as tarefas selecionadas para a iteração atual
- Em andamento: Contém as tarefas sendo desenvolvidas
- Revisão: Contém as tarefas que precisam ser revisadas antes da conclusão
- Concluído: Contém as tarefas finalizadas e validadas
Técnicas de Elicitação de Requisitos
Foram utilizadas diversas técnicas para levantamento de requisitos:
- Brainstorming: Sessões colaborativas para geração de ideias e funcionalidades
- 5W2H: Estruturação clara dos objetivos e escopo do projeto
- Entrevistas: Coleta de informações detalhadas sobre necessidades dos usuários
- Prototipação: Desenvolvimento de protótipos de alta fidelidade usando Figma
Processo de Desenvolvimento
Fases do Projeto
O desenvolvimento seguiu as fases do RUP adaptadas para o contexto acadêmico:
Iniciação: Definição do problema, escopo e objetivos através de técnicas como brainstorming, 5W2H e documento de visão. Criação dos mapas mentais e prototipação inicial.
Elaboração: Modelagem detalhada do sistema com diagramas de casos de uso, diagramas de classes e documento de arquitetura de software (DAS). Refinamento dos requisitos e definição da arquitetura.
Construção: Implementação efetiva do sistema com desenvolvimento da API REST, interface SPA, sistema de autenticação, CRUD de pedidos e dashboard administrativo.
Transição: Preparação para implantação, documentação de instalação e procedimentos de deploy.
Retrospectivas e Melhoria Contínua
A equipe realizou reuniões de retrospectiva ao final de cada iteração, identificando pontos positivos, negativos e oportunidades de melhoria. Isso incluiu:
- Avaliação da comunicação e colaboração da equipe
- Identificação de dificuldades técnicas e soluções encontradas
- Ajustes no processo de desenvolvimento baseados no feedback
- Definição de ações para melhorar a eficiência nas próximas iterações
Documentação
Padrões de Documentação
Foi estabelecido um template padrão para todos os documentos do projeto, garantindo consistência e facilidade de manutenção. A documentação incluiu:
- Documentos de iniciação (visão, metodologia, requisitos)
- Modelagem técnica (casos de uso, classes, arquitetura)
- Documentação de construção e implementação
- Guias de transição e implantação
Controle de Versão da Documentação
Todos os documentos mantiveram histórico de versões detalhado, incluindo data, versão, descrição das alterações e autores responsáveis, garantindo rastreabilidade das mudanças ao longo do projeto.
Conclusão
O projeto Simblissima utilizou uma abordagem metodológica híbrida que combinou elementos do RUP com práticas ágeis, resultando em um processo de desenvolvimento eficiente e bem estruturado. A adoção de técnicas de elicitação de requisitos, desenvolvimento iterativo, padrões arquiteturais bem definidos e práticas de qualidade contribuiu para o sucesso do projeto. A utilização de tecnologias modernas como Django REST Framework para o backend e SPA para o frontend, combinada com práticas de segurança e validação rigorosas, resultou em um sistema robusto e funcional. O processo de documentação padronizado e o controle de versão garantiram a rastreabilidade e manutenibilidade do projeto. As retrospectivas regulares e a comunicação efetiva da equipe através de ferramentas colaborativas foram fundamentais para o aprendizado contínuo e a adaptação do processo às necessidades específicas do projeto acadêmico.
Referências
[1] RATIONAL UNIFIED PROCESS (RUP). Disponível em: https://www.ibm.com/docs/en/rational-unified-process. Acesso em: 02 jun. 2025.
[2] KANBAN. Disponível em: https://kanbanize.com/kanban-resources/getting-started/what-is-kanban. Acesso em: 02 jun. 2025.
[3] DJANGO DOCUMENTATION. Disponível em: https://docs.djangoproject.com/. Acesso em: 02 jun. 2025.
[4] DJANGO REST FRAMEWORK. Disponível em: https://www.django-rest-framework.org/. Acesso em: 02 jun. 2025.
[5] SOMMERVILLE, I. Engenharia de Software. 9ª ed. São Paulo: Pearson Prentice Hall, 2011.
[6] PRESSMAN, R. S. Engenharia de Software: Uma Abordagem Profissional. 7ª ed. Porto Alegre: AMGH, 2011.
Autor(es)
| Data | Versão | Descrição | Autor(es) |
|---|---|---|---|
| 24/03/2025 | 1.0 | Criação do documento | Bernardo Lobo, Bernardo Moreira, Guilherme Dias, Julia Curto e Michel de Melo |
| 02/06/2025 | 2.0 | Atualização completa para refletir as metodologias e práticas efetivamente utilizadas no projeto Simblissima | Bernardo Lobo, Bernardo Moreira, Guilherme Dias, Julia Curto e Michel de Melo |