1. Planejamento e Levantamento de Requisitos
1.1. Stakeholders
1.1.1. Alunos
1.1.2. Professores
1.1.3. Bibliotecários
1.1.4. Equipe de TI
1.2. Técnicas de Elicitação
1.2.1. Entrevistas Semiestruturadas
1.2.2. Workshops e Brainstorm
1.2.3. Observação Direta
1.2.4. Questionários Online
1.2.5. Protótipos de baixa fidelidade
1.3. Requisitos Funcionais
1.3.1. Reservar livro online
1.3.2. Cadastrar/editar livros
1.4. Requisitos Não Funcionais
1.4.1. Alta disponibilidade (24/7)
1.4.2. Interface responsiva e rápida
1.5. Diagrama de Casos de Uso
1.5.1. Atores
1.5.1.1. Aluno
1.5.1.2. Bibliotecário
1.5.1.3. Sistema de TI
1.5.2. Casos
1.5.2.1. Consultar Catálogo
1.5.2.2. Reservar Livro
1.5.2.3. Realizar Empréstimo
1.5.2.4. Gerenciar Acervo
1.6. Diagrama de Classes
1.6.1. Usuario (abstrata)
1.6.2. Aluno e Bibliotecario (herança)
1.6.3. Livro
1.6.4. Emprestimo
1.6.5. Pilares da Orientação a Objetos
1.6.5.1. Abstração
1.6.5.2. Encapsulamento
1.6.5.3. Herança
1.6.5.4. Polimorfismo
1.7. Boas Práticas
1.7.1. Clean Code
1.7.2. Modularização
1.7.3. Controle de Versão
1.7.4. Documentação contínua
1.8. Ferramentas
1.8.1. Git + GitHub
1.8.2. VS Code
1.8.3. PostgreSQL
1.8.4. Docker
1.8.5. Swagger/OpenAPI
1.9. Integração Contínua
1.9.1. GitHub Actions + Testes automatizados
1.10. Tipos de Testes
1.10.1. Unitários
1.10.2. Integração
1.10.3. Funcionais
1.10.4. Aceitação
1.10.5. Usabilidade
1.11. Automação de Testes
1.11.1. JUnit / PyTest / Selenium
1.11.2. Execução contínua (CI)
1.12. Critérios de Aceitação
1.12.1. Reserva com sucesso
1.12.2. Limite de reservas por fila
1.13. Dimensões de Qualidade
1.13.1. Funcionalidade
1.13.2. Usabilidade
1.13.3. Eficiência
1.13.4. Confiabilidade
1.13.5. Manutenibilidade
1.13.6. Portabilidade