Sistema de Alocação de Salas
Descrição geral
Deve ser implementado um sistema para alocação de salas. A interface gráfica não precisa ser caprichada, o foco da avaliação do projeto estará sobre a qualidade da API. O sistema deve possuir uma arquitetura com isolamento entre a lógica de negócio e a interface gráfica, ou seja, deve ser possível, utilizando a sua API, desenvolver uma interface gráfica para ela sem ter que alterar o código do modelo de negócio. Deve ser criada uma interface inicial via linha de comando. Em seguida, uma interface gráfica pode substituir a interface de linha de comando.
Objetivo
O principal objetivo do projeto é utilizar o maior número de padrões de projeto possível de forma justificável. Pense em formas de maximizar a flexibilidade do código, mas procure não forçar a utilização de padrões só por causa do escopo da disciplina. A aplicação adequada dos padrões será considerada na avaliação do projeto.
User Stories (requisitos)
Milestones
O projeto será avaliado através de três milestones. Para cada milestone, os seguintes resultados devem ser apresentados:
Importante: os arquivos referentes a cada milestone devem ser empacotados em um arquivo ZIP, de acordo com o seguinte padrão de nomenclatura (NomeSobrenomeDoAluno1-NomeSobrenomeDoAluno2_milestoneX), onde X é o número do milestone. Deve-se enviar este arquivo por e-mail para o monitor da disciplina com cópia para o professor da disciplina, de acordo com as datas já definidas.
Testes de aceitação
Os testes de aceitação que você deve rodar para saber se o seu sistema está atendendo direitinho os requisitos estão em anexo (veja ao final desta página). Você usará o EasyAccept para rodar os testes. Para poder rodar os testes, será necessário criar uma Façade que acessa a API do seu sistema segundo a linguagem de script definida abaixo, que foi criada para os testes de aceitação.
Detalhe: num sistema de informação real, a persistência de dados usaria provavelmente um banco de dados. Não faremos isso aqui. A informação persistente pode ser feita em arquivo, com XML (vejam java.beans.XMLEncoder e java.beans.XMLDecoder).
Linguagem de script
Glossário
Avaliação da equipe (a cada milestone)
Avaliação individual (a cada milestone)
Notas