На протяжении жизни мне много раз улыбалась удача; одним из больших подарков фортуны было то, что я оказался в нужном месте, вооруженный необходимыми знаниями, в результате чего в 1997 году было написано первое издание этой книги. В то время в хаотическом мире объектно-ориентированного (ОО) моделирования только начинался процесс объединения под эгидой унифицированного языка моделирования (Unified Modeling Language, UML). С тех пор UML стал стандартом графического моделирования не только объектов, но и программного обеспечения в целом. Мне повезло, что эта книга была самой популярной по языку UML, разойдясь тиражом более четверти миллиона экземпляров.
Конечно, мне это очень приятно, но зачем вам покупать мою книгу?
Я люблю подчеркивать, что это тонкая книжка. Ее цель не в том, чтобы детально осветить каждый аспект языка UML, растущего с каждым годом. Я стремлюсь найти наиболее полезную часть языка и рассказать вам именно о ней. Хотя более объемная книга дает более детальное описание, но и читать ее нужно дольше. А время - самый ценный капитал, который вы вкладываете при чтении книги. Сохраняя небольшой размер книги, я сэкономил вам время, выбирая самое лучшее, и избавил вас от необходимости самостоятельно выполнить эту работу. (К сожалению, «меньше» не означает пропорционально дешевле; существует определенная фиксированная стоимость издания высококачественной технической книги.)
|
|
Один из мотивов, побуждающих приобрести данную книгу, - желание получить начальные сведения по UML. Это маленькая книжка, и с ее помощью можно быстро постичь основы языка. Что касается профессионального освоения, то более подробную информацию можно найти в книге «User Guide» [6] или «Reference Manual» [40].
Эта книга может также служить удобным справочником по наиболее общим разделам языка UML. В ней есть не все, зато она много легче большинства других книг по UML и ее можно носить с собой повсюду.
Это книга с ярко выраженным мнением. Я долгое время имел дело с объектами и точно знаю, что работает, а что - нет. Любая книга отражает мнение автора, и я также не стараюсь скрывать свое. Поэтому ее-
ли вы ищете нечто, имеющее оттенок объективности, то, возможно, вам потребуется еще что-нибудь,
Многие разработчики говорили мне, что эта книга является хорошим введением в объекты, однако при ее написании у меня не было такой мысли. Если вам требуется введение в ОО, я бы рекомендовал книгу К. Лармана (Craig Larman) [29].
Многие разработчики, интересующиеся UML, используют некоторый инструментарий. Эта книга посвящена стандартному применению UML в рамках принятых соглашений, и в ней не рассматриваются подробности поддержки языка различными инструментами. Несмотря на то что UML справился с Вавилонской башней нотаций, существовавших до UML, осталось множество досадных различий между тем, что показывают инструменты, и тем, что они позволяют делать в процессе рисования UML-диаграмм.
|
|
Я не рассказываю в этой книге об MDA (Model Driven Architecture) -архитектуре, основанной на модели. Распространено мнение, что это одно и то же, но многие разработчики применяют язык UML, совершенно не интересуясь MDA. Тем, кто хочет узнать об MDA больше, я бы посоветовал начать с данной книги, чтобы сначала познакомиться с UML, а затем перейти к книге, посвященной MDA.
Хотя главной темой этой книги является язык UML, я включил в нее дополнительный материал о приемах, которые очень полезны в объектно-ориентированном проектировании, например, приведена информация о CRC-карточках. UML - это только часть того, что необходимо знать для успешной работы с объектами, и я думаю, что он играет важную роль при подготовке к освоению других приемов.
В такой небольшой книге, как эта, невозможно детально объяснить, как UML соотносится с исходным кодом, в частности потому, что не существует стандартного способа проведения такого соответствия. Однако я демонстрирую некоторые приемы программирования для реализации элементов UML. Мои примеры написаны на Java и С#, поскольку я обнаружил, что они понятны более широкой аудитории. Не надо думать, что они мне больше нравятся. Для этого я слишком много написал на Smalltalk!