Estou trabalhando em um aplicativo para universidades. O caso é o seguinte:
Cada universidade possui vários programas acadêmicos. Cada programa tem muitos assuntos (módulos). Cada assunto pode ser oferecido em locais diferentes. O ano acadêmico é dividido em períodos e cada período dura várias semanas. Nem todos os módulos são oferecidos nos mesmos locais em cada semestre e os programas podem ser oferecidos a diferentes grupos de estudantes com datas de início diferentes no mesmo ano acadêmico.
Por exemplo, a Universidade A possui um programa de MBA oferecido em Nova York e Londres. O MBA possui 2 módulos por período (10 semanas) oferecidos nos dois locais (Say MBA-NY e MBA-L). É possível, e com base na demanda, ter uma terceira execução do programa (e, portanto, dos módulos neste termo), que inicia uma semana depois da ingestão normal. Portanto, há outro grupo de MBA-NY, mas com cronograma diferente. Mas esse grupo também faz parte do mesmo termo no currículo do MBA (ou seja, os dois grupos estão fazendo o Termo 2 do MBA).
Minha pergunta é como modelar locais, termos acadêmicos e execuções no projeto OO. A localização, os termos acadêmicos (e talvez as "execuções") são propriedades do objeto da universidade ou do objeto do programa? ou do objeto do módulo?
Atualização: Com base nas suas respostas, minha dificuldade é modelar os termos acadêmicos, as coortes e os diferentes cronogramas. Não é realmente o local, pois parece direto para mim. Eu apenas o incluí na descrição para mostrar as conexões.
Animal
vez deLocation
? Como você classificaria as coisas em geral?