Прежде всего, не предполагайте, что программа, которой трудно следовать, "хорошо спроектирована с точки зрения ОО".Цель OOA & D - не более и не менее, чем сделать код более легким для понимания, расширения и рефакторинга, избегая «спагетти-кода» (кода с большими неорганизованными файлами, содержащими множество переходов; практически единственный способ сделать это на старых языках).).Тем не менее, вы можете при чрезмерно усердном использовании шаблонов проектирования создавать другие программные пасты: «код лазаньи» (так много уровней абстракции, что трудно перейти к реальному коду, который вы хотите проверить) или «код равиоли» (код не работает)до такого количества кусков размера укуса, что вы постоянно перемещаетесь из файла в файл, чтобы отслеживать выполнение одного простого алгоритма).
В любом случае, для проектов .NET VS имеет некоторые инструменты для генерации диаграмм классов,Office Visio Professional также может интегрироваться с Visual Studio и расширяет эту функциональность, предоставляя некоторую «перемотку назад» между изменением диаграмм и изменением реального кода.Точно так же он может подключаться к MSS и давать вам схемы схем.Но на самом деле нет лучшего инструмента, чем практический опыт.Даже самый хорошо разработанный код будет иметь некоторые особенности, которые требуют, чтобы вы знали кодовую базу, чтобы сосредоточиться на объекте с проблемой (или на связи между объектами и т. Д.).Я еще не встречал работодателя, который не ожидал, что потребуется новый месяц для нового найма, чтобы ознакомиться с достаточным количеством существующей архитектуры, чтобы начать работать.С точки зрения заключения контрактов, это ожидание может быть менее мягким, но просто нецелесообразно ожидать, что кто-то погрузится в массивную кодовую базу с небольшим количеством или вообще без внешней документации и начнет плавать, как олимпийский спринтер.