A Engenharia de Software é uma disciplina fundamental no desenvolvimento de sistemas computacionais, focada na aplicação de abordagens sistemáticas, disciplinadas e quantificáveis para a concepção, desenvolvimento, operação e manutenção de software. Surgiu como resposta à chamada "crise do software" na década de 1960, quando os projetos de software frequentemente excediam prazos, orçamentos e falhavam em atender aos requisitos.
No mundo moderno, onde o software está presente em praticamente todos os aspectos da vida cotidiana e dos negócios, a Engenharia de Software se tornou essencial para:
- 🔹 Garantir a qualidade dos produtos de software
- 🔹 Gerenciar a complexidade crescente dos sistemas
- 🔹 Reduzir custos e prazos de desenvolvimento
- 🔹 Facilitar a manutenção e evolução dos sistemas
- 🔹 Assegurar a satisfação dos usuários finais
Este projeto de sistema e-commerce foi desenvolvido como parte integrante da disciplina de Engenharia de Software ofertada no curso de engenharia da computação no CEFET-MG, com o objetivo de aplicar na prática os conceitos teóricos aprendidos em sala de aula. O trabalho engloba:
- 🔹 Aplicação de metodologias ágeis no ciclo de desenvolvimento
- 🔹 Engenharia de requisitos completa para um sistema real
- 🔹 Modelagem de dados para um domínio complexo
- 🔹 Desenvolvimento full-stack com tecnologias modernas (Spring Boot e Angular)
- 🔹 Boas práticas de arquitetura de software e padrões de projeto
Função | Impacto |
---|---|
Vitrine Virtual | Apresenta produtos/serviços de forma organizada e atraente 24/7 |
Processamento de Pedidos | Automatiza desde a seleção até o fechamento da compra |
Gestão de Clientes | Armazena dados, histórico e preferências para personalização |
Integração de Pagamentos | Oferece múltiplas formas de pagamento seguras |
Logística | Gerencia estoque, fretes e entregas |
Este projeto acadêmico busca refletir essa realidade do comércio digital, implementando um sistema que encapsula essas funcionalidades críticas enquanto aplica os princípios da Engenharia de Software para garantir qualidade, manutenibilidade e escalabilidade.
O sistema proposto contempla um conjunto abrangente de funcionalidades organizadas em módulos principais:
Gestão de Usuários █████████████████████████ (25%)Gestão de Produtos ████████████████████████████████ (30%)
Categorias ███████████████ (15%)
Carrinho/Checkout ████████████████████████████████ (30%)
CRUD de Usuários:
- Create: Cadastro de novos usuários com validação de dados
- Read: Consulta de perfil e listagem de usuários (admin)
- Update: Edição de informações pessoais e credenciais
- Delete: Inativação de contas (soft delete)
Sistema de Roles (Papéis):
Role | Permissões | Funcionalidades Restritas |
---|---|---|
Cliente | Comprar produtos, gerenciar perfil | Apenas operações de compra |
Vendedor | Gerenciar produtos próprios | CRUD apenas para produtos vinculados |
Administrador | Acesso completo ao sistema | Todas as funcionalidades |
CRUD de Usuários:
- Cadastro com informações completas (nome, descrição, preço, estoque)
- Visualização em catálogo público ou painel administrativo
- Atualização de dados e status (disponível/esgotado)
- Remoção lógica (não exclui fisicamente)
- Create Cadastro hierárquico (categorias e subcategorias)
- Read Navegação por categorias no frontend
- Update Reorganização da árvore de categorias
- Delete Remoção com validação de produtos vinculados
Funcionalidade | Descrição Técnica |
---|---|
Adição de Itens | Session storage + persistência no banco após login |
Atualização de Quantidades | Validação contra estoque disponível |
Remoção de Itens | Exclusão individual ou limpeza total |
Cálculo de Totais | Soma de subtotais + cálculo de frete |
Estas funcionalidades foram projetadas para atender aos requisitos básicos de um sistema e-commerce moderno, enquanto mantêm a simplicidade adequada para um projeto acadêmico, permitindo a aplicação prática dos conceitos de Engenharia de Software estudados.