Skip to content

Files

Latest commit

 

History

History
45 lines (37 loc) · 5.64 KB

design_of_design_brooks.org

File metadata and controls

45 lines (37 loc) · 5.64 KB

🏗️ Проектирование процесса проектирования / Брукс Фредерик

1. Что такое рациональная модель проектирования?

  • 1. Определи цель.
  • 2. Определи требования.
  • 3. Определи функцию пригодности: каждый компонент имеет насыщение, так что это не просто сумма всех частей. При достижении нужного уровня нет смысла дальше улучшать этот компонент.
  • 4. Определи основные ограничения: особенно те, которые растут экспоненциально. Их нужно держать под контролем.
  • 5. Перебери варианты в пространстве проектирования с учетом ограничений.

2. Что не так с рациональной моделью проектирования?

  • Требования на старте проекта обычно неясны. Быстрые итерации помогают клиентам сформулировать, что они действительно хотят. Не стоит сразу ожидать от них ясности поскольку они не понимают как вещи сложнее реализовать, а какие легче.
  • При поиске в дереве решений (пространстве проектирования) возникает комбинаторный взрыв.
  • Когда наступит следующий ноябрь? Вопрос на выяснение какая модель в голове у собеседуемого. В идеале пространственная.

3. Какие проблемы могут быть с требованиями?

  • Если комитет вырабатывает требования, то без обратной связи (людей с опытом эксплуатации подобных систем) требования могут стать либо нереализуемыии в принципе либо приаедут к ухудшению других характеристик. Пример с вертолетом, который должен суметь пересечь Атлантику.

4. Насколько сложно проектировать и сколько людей нужно?

  • Расчеты на суперкомпьютере при определении как оптимально смешать всего три компонента. Нет больше элементарных технологий: сравнить самый первый железный мост (избыточный) и современный.
  • Рост сложности компенсируется специализацией.
  • За системным архитектором остается решающее слово, при этом он активно общается со специалистами в нужных областях. В этом случае система будет концептуально целостной.
  • Если нет ни одного человека, который мог бы обьяснить всю систему на высоком уровне, то система обречена на крах. Пример с кучей архитекторов и руководством пользователя на 800 страниц.
  • Архитектор готовит проект, а специалисты делают обзор этого проекта, чтобы найти возможные неучтенные проблемы.
  • Барьеры:
    • Разные часовые пояса
    • Разные языки общения

5. Рациональная или эмпирическая модель?

  • Обе: строим рациональную модель и проверяем ее на практике.
  • Статическая и динамическая типизация как частный случай.

6. Что делают опытные проектировщики?

  • Точно формулиуют то, что они знают о пользователе.
  • Отделяют то, что они взяли в качестве предположения.
  • Даже если явные предположения неверные, то гораздо больше шансов их пересмотреть, чем если предположения неявные.

7. Зачем нужно определять ограниченные ресурсы?

  • Перечисли какие ресурсы точно являются ограниченными. Часто это не деньги, а дни, метры и т.п.
  • Микеланджело сделал из мрамора, признанного непригодным, скульптуру Давида.
  • Ограничения часто упрощают задачу проектирования.
  • Если нет ограничений, то нет и способа валидировать проект.

8. Что дает краткая и элегантная архитектура?

  • Проще понимать и предугадывать: многие микрорешения будут приниматься автоматически.
  • Стиль нужно задокументировать, чтобы он стал единообразным.