Структура этой книги
Эта книга состоит из двух разделов. В первом разделе рассматриваются аналитические шаблоны, которые представляют собой паттерны из концептуальных бизнес-моделей. Они представляют собой ключевые абстракции из таких областей, как торговля, измерения, бухгалтерский учет и организационные отношения. Концептуальные модели потому и концептуальные, что представляют собой образ мышления людей о бизнесе, а не способ проектирования компьютерной системы. В главах этого раздела подчеркиваются альтернативные шаблоны, которые могут быть использованы, а также сильные и слабые стороны этих альтернатив. Хотя каждый паттерн будет полезен тем, кто работает в одной области, базовая версия паттерна часто бывает полезна и в других областях.
Второй раздел посвящен паттернам поддержки, которые помогают использовать аналитические шаблоны. Паттерны поддержки показывают, как аналитические шаблоны вписываются в архитектуру информационных систем, как конструкции концептуальных моделей превращаются в программные интерфейсы и реализации, и как некоторые продвинутые конструкции моделирования соотносятся с более простыми структурами.
Чтобы описать эти паттерны, мне нужна нотация. В приложении дается краткое описание нотации, которую я использую, и что означают те или иные символы. Я не использую какой-то один метод, а предпочитаю смешивать техники из разных методов. Приложение не предназначено для того, чтобы стать учебником по технике, но оно должно дать общее представление и освежить вашу память. В нем также указано, где можно найти руководство по используемым мной методам.
Каждый раздел поделен на главы. Каждая глава посвященная аналитическим шаблонам содержит паттерны, связанные между собой свободным понятием предметной области, на которую повлияли породившие их проекты. Такая организация отражает тот факт, что любой паттерн должен исходить из практического контекста. Каждый паттерн представлен в отдельном подразделе главы. Я не использую формальные заголовки для паттернов, которые используют некоторые авторы паттернов (см. раздел 1.2.2). Я описываю каждый паттерн в форме, максимально приближенной к оригинальной форме проекта, с минимальной абстракцией. Я добавляю примеры, чтобы показать использование паттерна в его оригинальной области, а также предложить, как паттерн может быть использован в других областях. Одна из самых больших трудностей паттернов — абстрагирование их в других областях; я следую принципу, что это должно быть оставлено на усмотрение читателя (см. раздел 1.2.3).
Таким образом, эта книга представляет собой скорее каталог, чем книгу, которую следует прочитать от корки до корки. Я постарался написать каждую главу так, чтобы ее можно было читать независимо от других глав. (Однако это не всегда возможно. Если глава требует, чтобы сначала была прочитана другая глава, я указываю это во введении к главе.) В каждой главе есть введение, в котором объясняется общая тематика главы, кратко описываются паттерны, представленные в главе, и говорится, из каких проектов эти паттерны были взяты.