Я работаю над большим проектом (для меня), который будет иметь много классов и должен быть расширяемым, но я не уверен, как планировать свою программу и как классы должны взаимодействовать.
Я взял курс OOD несколько семестров и многому научился у него; например, писать UML и переводить документы требований в объекты и классы. Мы также изучили диаграммы последовательности, но почему-то я пропустил лекцию или что-то еще, они на самом деле не придерживались меня.
С предыдущими проектами я пробовал использовать методы, которые я изучил на курсе, но, как правило, в конечном итоге с кодом, который, как только я могу сказать "да, это похоже на то, что я имел в виду", у меня нет желания копать muck, чтобы добавить новые функции.
У меня есть копия кода Стива МакКоннелла, который я постоянно слышу, это потрясающе, здесь и в другом месте. Я прочитал главу о дизайне и, похоже, не получил информацию, которую я ищу. Я знаю, что он говорит, что это не вырезанный и высушенный процесс, который в основном основан на эвристике, но я не могу, кажется, взять всю свою информацию и применить ее к моим проектам.
Итак, , что вы делаете на этапе проектирования высокого уровня (прежде чем начинать программирование), чтобы определить, какие классы вам нужны (особенно те, которые не основаны на каких-либо объектах реального мира) и как они будут взаимодействовать друг с другом?
В частности, меня интересуют, какие методы вы используете? Каким образом вы следуете за процессом, который обычно дает хороший, чистый дизайн, который будет точно представлять конечный продукт?