четверг, 22 августа 2013 г.

Эрик Эванс о составляющих успеха эффективного моделирования

 1 . Установили связь между моделью и ее реализацией. 

Уже в самом грубом прототипе присутствовала существенная связь с действительностью, и после всех последующих доработок эта связь сохранилась. 

2. Ввели в обиход язык, основанный на модели. 

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

3. Разработали информоемкую модель. 

У объектов есть заданные правила поведения и ограничения. Наша модель была не просто схемой хранения данных, а целостной методикой решения сложных задач. Она содержала в себе и обобщала обилие информации разного рода. 

4. Занимались дucстилляцией модели. 

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

5. Экспериментировали и nроводили мозговые штурмы. 

Наличие общего языка, набросков схем и готовности к интеллектуальным прорывам превратили наши дискуссии в экспериментальную лабораторию по разработке модели, где "обкатывались" и оценивались сотни опытных вариантов. В процессе пошагового исследования рабочих сценариев даже устные высказывания участников срабатывали как быстрые тесты на пригодность предлагаемой модели, поскольку ухо человека легко отличает ясность и простоту от косноязычия. 


В общем, именно творческий процесс мозгового штурма и интенсивного экспериментирования, облеченный в форму единого языка модели и направляемый обратной связью от программной реализации, сделал возможным создание информоемкой модели и ее дистилляцию. Знания, имеющиеся у коллектива разработчиков, превращаются в ценные для работы модели именно в результате такого процесса переработки знаний (knowledge crunching).

Эрик Эванс "Предметно-ориентированное проектирование"

Комментариев нет:

Linux: генерация рандомной строки для пароля

 cat /dev/urandom | tr -dc '[:alnum:]' | fold -w ${1:-20} | head -n 1