Если описать предметную область полно то получится достаточно большой размах, и никто из посетителей форума не захочет даже читать это описание. Я же вижу целью изучение проектирования, а не решение какой-то задачи. Для начала проще понять что 2*2=4 чем вычислять интегралы. Поэтому наоборот пытаюсь сузить предметную область до минимума, главное на примере уловить все особенности.
Попытаюсь сейчас описать этот минимум:
Задача системы - хранение данных о студентах, тестах, и том как студенты проходили эти тесты. Только хранение и просмотр, ни о каком процессе тестирования, назначения студенту теста для прохождения речи пока не идёт.
Значит данные о студентах: номер студенческого (уникален), Фамилия, Имя, Отчество. Студенты объединяются в группы, которые имеют свой уникальный номер, и номер курса на котором обучается группа.
Также хранятся сведения о тестах: наименование и сложность.
Каждый тест состоит из тестовых заданий, на которые имеются варианты ответов, верные и неверные. В тестовом задании бывает несколько верных ответов, ответ считается верным если пользователь выбрал все верные варианты ответов тестового задания.
После тестирования студента по определённому тесту фиксируется результат в виде оценки и даты проведения тестирования. Также данные о том, на какие тестовые задания ответил студент правильно или нет, и какие варианты ответа он выбрал, в случае неверности ответа. Студент может ответить не на все задания теста.
Поступление данных в систему прошу не рассматривать, оценка не высчитывается, она просто хранится. Вся задача хранить эффективно эти данные и просматривать:
1. Просмотр списка групп, сведений о группе (номер, курс, кол-во студентов, список студентов в группе)
2. Просмотр списка всех студентов (номер студ. ФИО, группа, курс)
3. Просмотр результатов тестирования студента (тест, дата тестирования, оценка, список пройденных заданий, у неверных выбранные варианты ответов)
4. Просмотр списка тестов (Наименование, сложность, кол-во заданий)
5. Просмотр заданий теста (задание, список вариантов ответов)
Всё.