С древних времен большинству талантливых архитекторов и одаренных дизайнеров известен закон экономии. Независимо от формы, то ли в виде парадокса («чем меньше, тем больше»), то ли в виде коэна (разум дзэна - это разум новичка), он имеет непреходящее значение: Сократи все до его сути, так чтобы форма пребывала в гармонии с содержанием. Лучшие архитекторы и дизайнеры - от пирамид до Оперного театра в Сиднее, от построений Неймана до UNIX и языка Smalltalk - старались следовать этому универсальному и вечному правилу.
Я понимаю, что значит бриться Бритвой Оккама, поэтому когда я собираюсь вести разработку или читать, то ищу проекты и книги, в которых соблюдается закон экономии. Следовательно, я одобряю книгу, которую вы сейчас читаете.
Это мое замечание может удивить вас на первых порах. Я часто заглядывал в объемные и компактные спецификации, которые определяют UML (Unified Modeling Language - унифицированный язык моделирования). Эти спецификации позволяют инструментам поставщиков реализовывать UML, а методологам применять его. За семь лет мне довелось руководить большими международными командами по стандартизации, которые занимались спецификациями версий UML 1.1 и 2.0, а также нескольких менее важных промежуточных версий. В течение этого времени UML добавил в выразительности и точности, а также приобрел никому не нужную сложность как результат процесса стандартизации. Печально, что процесс стандартизации лучше известен компромиссами в области дизайна со стороны комитета, нежели своей расчетливой элегантностью.
|
|
Что может извлечь из книги Мартина, посвященной основам UML 2.0, специалист, хорошо знающий разные скрытые мелочи спецификации UML? Вполне достаточно, то же можете и вы. Мартин умело сократил большой и сложный язык до практичного подмножества, эффективность которого он доказал на практике. При подготовке нового издания своей книги он не пошел по легкому пути, который диктовала тактика простого добавления страниц. Когда язык разросся, Мартин по-прежнему придерживался своей цели, ища «наиболее полезную составляющую языка UML» и рассказывая вам именно о ней..
Составляющая, на которую он ссылается, - это те мистические 20% языка UML, которые помогают выполнять 80% работы. Поймать и приручить этого иллюзорного зверя - значительный успех!
Это тем более поразительно, что Мартин достигает своей цели, излагая материал в удивительной, притягательной разговорной манере. Донося до нас свою точку зрения и рассказывая при этом анекдоты, он делает свою книгу приятной для чтения и тем самым напоминает нам, что системы архитектуры и дизайна должны быть продуктивными и в то же время оригинальными. Если мы следуем коэну экономии до конца, то нужно признать, что моделирование проектов с помощью языка UML должно быть таким же приятным, какими были для нас уроки рисования и живописи в средней школе. UML должен стать громоотводом наших творческих способностей, а также лазером для выжигания четко определяющих систему планов, которые третья сторона могла бы запросить и построить по ним такую же систему. Последнее является серьезным испытанием для любого настоящего языка проектирования.
|
|
Для такой тонкой книжки это нетривиальная задача. Вы можете получить от изучения подхода Мартина к моделированию столь же много, как от его описания UML 2.O.
Мне было приятно работать с Мартином над улучшением подбора и точности возможностей языка UML 2.0, объясняемых в этой версии. Мы должны иметь в виду, что все современные языки, как естественные, так и искусственные, должны развиваться или исчезнуть. Выбор Мартином новых свойств языка в соответствии с его предпочтениями и в соответствии с предпочтениями других профессионалов - это решающий момент процесса пересмотра UML. Они поддерживают язык в жизнеспособном состоянии и помогают ему эволюционировать в процессе естественного отбора на рынке.
Значительное количество многообещающих работ остаются вне управляемого моделями способа разработки, который становится ведущим, но меня поддерживают книги, подобные этой, которые понятно объясняют основы моделирования на языке UML и показывают его использование на практике. Я надеюсь, что вы, как и я, с ее помощью получите новые знания и используете приобретенные вами навыки для повышения качества моделирования программного обеспечения.
Крис Кобрин (Cris Kobryn)
Chair, U2 Partners' UML 2.0 Submission Team
Chief Technologist, Telelogic