Projeto

Praticar a matéria fazendo um software não trivial


Além dos laboratórios, a disciplina deve contar com um TP. Para fazer o mesmo, montem grupos de 3 ou 4 pessoas. Tal TP será um projeto de software de pequeno/médio porte. O importante é que o mesmo aplique os conceitos visto em aula.

O grupo deve escolher um problema de seu interesse e realizar todo o processo de desenvolvimento de um sistema de médio porte (análise, projeto e implementação), aplicando os conceitos e técnicas vistos durante o curso (modelagem, POO, testes unitários, etc). O programa deve ser feito baseado na linguagem C++20. Uma lista de sugestões de temas é apresentada abaixo. Entretanto, o tema é aberto à negociação caso o grupo tenha outra ideia.

  1. Batalha RPG
  2. Jogo de Magic
  3. Jogo de Cartas
    • UNO
    • Poker
    • Truco
  4. Sistema de Gerência
    • e-commerce
    • biblioteca
  5. Biblioteca de Grafos
  6. Indexador de Arquivos
  7. Seu Tema!

O desenvolvimento e a entrega deverão ser feitos utilizando o sistema de controle de versão GitHub. Sugere-se que commits/pushs sejam feitos de maneira frequente, pelo menos uma vez ao dia. O calendário de atividades do trabalho é mostrado abaixo:

Primeira Entrega

A primeira entrega consiste de User Stories. As UserStories são uma forma simples de apresentar osrequisitos funcionais desejados para um determinado sistema. São artefatos de desenvolvimento utilizados principalmente em processos baseados em metodologias ágeis. As descrições são intencionalmente genéricas, dando liberdade ao grupo para decidir detalhes da implementação. O grupo deverá identificar possíveis funcionalidades interessantes de serem incorporadas ao sistema e propor pelo menos seis User Stories.

  1. A primeira entrega de tema + user stories vale 5pts do projeto final.
  2. Depois disso, iniciem o trabalho no tema, vamos ter uma entrevista após a primeira prova.
  3. Até a entrevista, tente criar ao menos um README.md no seu github!

Entrevistas

Entre a primeira entrega e a entrega final, os alunos devem marcar ao menos duas entrevistas com o monitor. Os alunos que não realizarem as duas apresentações, onde a segunda tem que ter um projeto quase pronto. Terão penalizações na nota.

  1. Faltar a primeira apresentação (-5pts)
  2. Faltar a segunda apresentação (-5pts)

Segunda Entrega

Repositório com código completo, README.md indicando como compilar e executar o código.

  1. Documentação (3pts).
    1. Detalhamento do projeto.
    2. Doxygen, comentários, endentação.
  2. Funcionamento correto (5 pts).
    1. Compila e executa, não apresenta crash, etc.
  3. Uso correto das boas práticas e dos conceitos de OO (10 pts).
    1. Abstração, Encapsulamento, Herança e Polimorfismo.
    2. Modularidade e componentes reusáveis.
    3. Tratamento de exceções.
  4. Testes de Unidade (3pts).
  5. Entrevista (2pts).
  6. Participação individual (2pts).
  7. Criatividade, extras (+2pts).