Задание Составить модель вашего проекта и расписать ее на бумажке ввиде отдельных классов с перечислением их полей и методов.

1) Решить что войдет в первый прототип

Это нужно для того, чтобы не делать сразу все сложные части, а сначала сделать максимально простую версию которую дальше можно будет расширять и улучшать. По-первых, проще работать когда у вас уже что-то работает и вы просто отлаживаете какую-то новую функцию. Во-вторых, так вы минимизируете шансы на ситуацию “дедлайн пришел, а у вас даже не компилируется из-за того что вы взялись за всё и сразу”. В-третьих, так у вас будет выше мотивация и лучше настроение, т.к. вы уже будете видеть промежуточный результат.

Если у вас творческий проект - то сначала нужно продумать минимальный прототип. Т.е. отбросив все необязательные улучшения вы должны вычленить самое основное, самое ключевое для реализации. Т.е. тот минимальный набор функций и деталей, которым уже можно будет гордиться, который уже не стыдно будет презентовать и который можно будет улучшать, расширять и насыщать деталями настолько, насколько хватит времени.

Если у вас типовой проект - то первый прототипом для вашего проекта является:

  • Алгоритм решающий поставленную задачу
  • Визуализация данных
  • Визуализация результата и вывод результата в консоль

2) Перечислить классы описывающие все сущности (т.е. объекты) вашего первого прототипа

Если у вас творческий проект - то подумайте, какие объекты в вашей игре представлены. Для какой-нибудь игры вроде Flappy Bird это птица и стены. Для какой-нибудь стрелялки это персонаж игрока, пули, враги, ящик с патронами, стены и другие препятствия, мир (или карта) состоящий из этих препятствий.

Если у вас типовой проект - то подумайте какие объекты будут у вас. Скорее-всего это что-то вроде точек, отрезков, прямоугольников и других сущностей описанных в задаче.

3) Перечислите для каждой сущности (т.е. класса) ее характеристики (т.е. поля)

Например для птицы это может быть скорость и положение в мире.

Например для пули это может быть скорость, положение в мире, указание кто ее выпустил (игрок или враги, для того чтобы враги сами себя не поубивали случайно), величина наносимого урона.

Например для точки это x, y. Для отрезка это две точки (т.е. полем класса может являться объект другого класса). Для прямоугольника уже могут быть варианты - это может быть как две точки (верхний левый и нижний правый углы), так и размер (ширина и высота) и расположение (например точка соответствующая верхнему левому углу или центру прямоугольника).

4) Перечислите для каждой сущности (т.е. класса) ее операции (т.е. методы)

Каждый метод - это сигнатура (название, аргументы, тип возвращаемого значения) + смысловая нагрузка, т.е. то что он делает или вычисляет.

Например для птицы это может быть метод отрисовки в переданную Graphics g, метод обновления положения в пространстве за временной промежуток dt, метод проверки на столкновение со стенкой.

Например для отрезка это может быть метод отрисовки, метод пересечения с другим отрезком (аргумент - другой отрезок, возвращаемое значение - точка или null).