Боюсь, что единственный реальный ответ - это практика;практика;практика.Однако я обнаружил, что при рассмотрении вопроса о распределении тем между различными областями полезно постоянно напоминать себе о трех вещах.
Во-первых, все время старайтесь помнить, на каком уровне своей задачи вы находитесьв данный момент работаю над.При рассмотрении любой части архитектуры / дизайна, продолжайте говорить (себе) - это подходящая тема для этой задачи.(Например, проект, над которым я сейчас работаю, требует спецификации синтаксического анализатора. Это важно для архитектуры, но я долго не мог вспомнить, что вывод программы был парсером, а неописание грамматики.)
Во-вторых, упростить.Я обнаружил, что и хороший дизайн, и хорошая архитектура имеют тенденцию быть простыми - они, как правило, приводят к «ага» моменту - очевидно, что это путь.Это значит (особенно при работе над архитектурой) быть готовым к реорганизации вещей;удалить вещи из архитектуры - в место «фрагмента хорошей идеи», чтобы вы могли вернуться к ним.Помните также, что если у вас есть соответствующий уровень абстракции, то даже очень простое описание системы будет иметь значительную глубину.
В-третьих, следите за своим мышлением, идеями, предложениями.Это не должно быть очень сложным - я использую текстовый формат дневника, отмечая время записи, как я делаю их.Я фиксирую вещи, которые кажутся значительными в то время.Я не часто к этому возвращаюсь, но возвращаюсь, особенно если в моем мышлении есть перерыв.Этот инструмент предназначен для моего личного использования - я не делаю его доступным для других.
Наконец, слишком глубоко вникнув в дизайн при работе над архитектурой, вполне можно быть частью процесса.Нужно по-настоящему понять последствия и требования, которые вы пытаетесь удовлетворить, и иногда единственный способ сделать это - углубиться.Просто не забывайте показываться на поверхности, будьте готовы хранить в другом месте результаты углубления и интегрируйте результаты своих исследований в свою архитектуру - на соответствующем уровне абстракции, конечно.
РЕДАКТИРОВАТЬ:
Что касается инструментов, я нашел инструменты, которые помогут придумать большую часть помощи.Программное обеспечение Mind Mapping, такое как Mind Manager ;Инструменты UML, такие как вы упоминаете;инструменты типа доски, где предметы можно размещать, перемещать и дополнять с помощью того же средства, что и доска;и (если в корпоративной среде) программное обеспечение для проведения мозгового штурма.Я не могу дать ссылки на эти последние инструменты, потому что мои знания сильно устарели.Также может помочь помещение всех ваших заметок под контроль версий, разделенных по задачам в разные проекты.
В рамках проекта, о котором я упоминал изначально, я пытаюсь разработать ряд инструментов, которые помогут в этом процессе.Инструменты будут интегрированы со ссылкой на модели процессов архитектуры, дизайна и сборки.Тем не менее, это развлекательный проект с единственным разработчиком, я сам, и я еще не дошел до того, чтобы предоставить инструменты.