WWW.LIBRUS.DOBROTA.BIZ
БЕСПЛАТНАЯ  ИНТЕРНЕТ  БИБЛИОТЕКА - собрание публикаций
 

Pages:     | 1 |   ...   | 3 | 4 ||

«Мартина ФаУflера Предметно-ориентированное П оекти ОБ иие еТРУКТУРИ3АЦИЯ елО жныIx ПРО rPAMMHbIX СИ еТЕМ Domain -Driven Design TACKLING COMPLEXITY IN ТНЕ HEART OFSOFTWARE Eric Evans Addison-Wesley ...»

-- [ Страница 5 ] --

Команда (command), или модификатор (modifier). Операция, вносящая в систему какое-то изменение, например, устанавливающая значение переменной. Операция, создающая намеренный побочный эффект .

Концептуальный контур (conceptual contour). Внутренняя согласованность самой предметной области, которая, будучи отражена в модели, помогает более естественно модифицировать архитектуру .

Контекст (context). Окружение, в котором фигурирует слово или утверждение и ко­ торое определяет их смысл. См. Ограниченный контекст (bounded context) .

Карта контекстов (context тар). Представление ОГРАНИЧЕННЫХ КОНТЕКСТОВ ( BOUNDED CONTEXTS), задействованных в проекте, вместе с фактическими связями меж­ ду ними и их моделями .

Смысловое ядро (core domain). Четко выделяемая часть модели, наиболее сущест­ венная для достижения целей пользователя программы, которая придает программе ценность и отличает ее от других .

1 Из соображений удобства поиска 110 оригинальному термину в глоссарии сохранен алфавит­ ный порядок английского текста. Следует учитывать это при поиске по ссылкам. - Прuмеч. перев .

Declarative design (декларативное проектирование). Форма программирования, в которой точное описание свойств объектов реально служит для управления програм­ мой - фактически исполняемая спецификация .

Углубленная модель (deep model). Четкое и выразительное представление основных задач и интересов специалистов в предметной области, а также наиболее существенных знаний о ней. В углубленной модели отбрасываются поверхностные аспекты проблемы и наивные ее интерпретации .

Архитектурный шаблон, или образец (design pattem). Описание взаимодействую­ щих друг с другом объектов и классов, приспособленных к решению общей архитектур­ ной задачи в конкретном контексте [ 14], с. З .

Дистилляция (distillation). Процесс разделения компонентов смеси для выделения главного компонента в такой форме, которая делает его важным и ценным. В области проектирования программного обеспечения - абстрагирование ключевых аспектов мо­ дели или проведение границ в большой системе с целью выделения ее СМЫСЛОВОГО ЯДРА (CORE DOMAIN) .

Предметная область (domain). Отрасль или сфера знаний, влияния, деятельности .

Специалист в предметной области (domain expert). Участник проекта по разработке программного обеспечения, специализирующийся не в программировании, а в той об­ ласти, в которой программа должна применяться. Специалист - это не просто рядовой пользователь программы, а носитель глубоких знаний о предмете .

Уровень предметной области (domain layer). Та часть архитектуры и программной реа­ лизации, которая отвечает за алгоритмизацию предметной области в МНОГОУРОВНЕВОЙ АРХИТЕКТУРЕ (LAYERED ARCHITECTURE). Именно на уровне предметной области реализуется программное выражение модели предметной области .

Сущность (entity). Объект, суть которого определяется не его атрибутами, а непре­ рывностью существования и идентификации .

Фабрика (factory). Механизм обслуживания клиента, инкапсулирующий сложные алгоритмы создания и абстрагирующий тип создаваемого объекта .

Функция (function). Операция, вычисляющая и возвращающая результат без наблю­ даемых побочных эффектов .

Неизменяемый (immutabIe). Обладающий свойством никогда не изменять своего на­ блюдаемого состояния после создания .

Неявное понятие (implicit concept). Понятие, необходимое для понимания модели или архитектуры, но не упоминаемое в них .

Информативный интерфейс (intention-revealing interface). Архитектура, в которой имена классов, методов и других элементов четко описывают, для чего их создавал ис­ ходный разработчик, а также для чего ими может пользоваться разработчик-клиент .





Инвариант (invariant). КОНТРОЛЬНОЕ УТВЕРЖДЕНИЕ (ASSERTION) относительно не­ которого элемента архитектуры, которое должно быть истинным всегда, кроме специфи­ ческих переходных состояний, таких как процесс выполнения метода или незавершен­ ной транзакции базы данных .

Итерация (iteration). Процесс, в котором программа постепенно совершенствуется маленькими шагами. Та'Кже один из таких шагов .

Крупномасштабная структура (Iarge-scale structure). Набор высокоуровневых по­ нятий, правил, или того и другого, задающий образец для проектирования всей системы .

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

434 ГЛОССАРИЙ Многоуровневая архитектура (layered architecture). Способ изоляции друг от друга выполняемых в программной системе задач - в числе прочего, способ выделения уровня предметной области .

Цикл существования (life cycle). Последовательность состояний объекта, которые он может принимать от момента создания до момента удаления - обычно вместе со связя­ ми-ограничениями, которые гарантируют его целостность при переходе от одного со­ стояния к другому. Может включать миграцию СУЩНОСТИ (ENTITY) между системами и разными ОГРАНИЧЕННЫМИ КОНТЕКСТАМИ (BOUNDED CONTEXTS) .

Модель (model). Система абстракций, которая описывает избранные аспекты пред­ метной области и может использоваться для решения задач, относящихся к этой области .

Проектирование по модели (model-driven design). Проектирование архитектуры, при котором соблюдается максимально точное соответствие между некоторым подмножеством элементов программы и элементами модели. Также, процесс совместной разработки моде­ ли и ее программной реализации с сохранением такого соответствия между ними .

Парадигма моделирования (modeling paradigm). Оригинальный стиль построения понятий в предметной области в сочетании со средствами создания программных анало­ гов этих понятий (например, объектно-ориентированное программирование и логиче­ ское программирование) .

Хранилище (repository). Механизм для инкапсулирования средств хранения, извле­ чения и поиска объектов в виде некоторой совокупности .

Обязанность (responsibility). Возложенное на кого-либо или что-либо обязательство выполнять определенную задачу или владеть информацией [24 ] .

Служба (service). Операция, предлагаемая в виде интерфейса и находящаяся в моде­ ли автономно, без инкапсулируемого состояния .

Побочный эффект (side effect). Любое наблюдаемое изменение состояния в резуль­ тате некоторой операции - неважно, намеренное или нет, пусть даже от предумышлен­ ной модификации данных .

Функция без побочных эффектов (side-effect-free function). См. Функция (function) .

Изолированный класс (standalone class). Класс, который можно воспринимать и тестировать без всякой связи с другими классами, если не считать систеrvIНЫХ прими­ тивов и базовых библиотек .

Без состояния (stateless). Свойство элемента архитектуры, позволяющее клиент­ скому коду пользоваться его операциями, не обращая внимания на историю изменений .

Элемент без состояния может использовать информацию, доступную глобально, и даже изменять ее (т.е. иметь побочные эффекты), но не содержит никакого закрытого состоя­ ния, которое бы влияло на его поведение .

Стратегическое проектирование (strategic design). Принятие модельных и архитек­ турных решений, касающихся крупных частей системы. Такие решения оказывают влия­ ние на весь проект и должны приниматься на уровне всей группы разработчиков в целом .

Гибкая архитектура (supple design). Архитектура программы, которая вкладывает всю силу, заключенную в углубленной модели (deep model) в руки разработчика клиент­ ского кода, помогая ему четко и гибко выражать идеи и выдавать устойчивые, ожидаемые результаты. Не менее важно, что та же самая модель применяется и для того, чтобы об­ легчить ее реализатору модификацию или перестройку архитектуры для адаптации но­ вых знаний и выводов .

ГЛОССАРИЙ Единый язык (ubiquitous language). Язык, структурированный в соответствии с мо­ делью предметной области и используемый всеми разработчиками для координации ра­ бот группы над программным проектом .

Унификация (unification). Внутренняя согласованность модели, при которой все термины имеют единообразные значения, а в правилах нет противоречий .

Объект-значение (value object). Объект, описывающий некоторую характеристику или атрибут, но не передающий понятий и не имеющий индивидуальности .

Целостный объект-значение (whole value). Объект, моделирующий отдельное, за­ конченное понятие .

436 ГЛОССАРИЙ СПИСОК ЛИТЕРАТУРЫ

[ 1 ] Alexander С., Silverstein М., Angel S., Ishikawa S., Abrams О. The Oregon Experiment, Oxford University Press, 1975 .

[2] Alexander С., Ishikawa S., Silverstein М. А Pattem Langua{!;e : Towns, Buildings, Constmction, Oxford University Press, 1 977 .

[3] Alur D., Crupi ]., Malks О. CoreJ2EE Pattems, Sun MicrosysteIlls Press, 200 1 .

[4] Beck К. Smalltalk Best Practice Pattems, Prentice НаН PTR, 1 997 .

[5] Beck К. Extreme Programming Explained: Embrace Change, Addison-Wesley, 2000 .

[6] Beck К. Test-Driven Development: Ву Example, Addison-Wesley, 2003 .

[7] Buschmann F., Meunier R., Rohnert Н., Sommerlad Р., Stal М. Pattem- Oriented So/tware Architecture: А System о/ Pattems, Wiley, 1 996 .

[ 8] Cockburn А. Sumiving Object- Oriented Projects: А Manager's Guide, Addison-Wesley, 1998 .

[9] Evans Е., Fowler М. "Specifications." Труды конференции PLoP-97, 1997 .

[ 1 0] Fayad M., ]ohnson R. Domain -Speci/ic Application Frameworks, Wiley, 2000 .

[ 1 1 ] Fowler М. Analysis Pattems: Reusable Object Models, Addison-Wesley, 1 997 .

[ 1 2] Fowler М. Re/actoring: ImprolJing the Design о/ Existing Code, Addison-Wesley, 1999 .

[ 1 3] Fowler М. Pattems о/ Enterprise Application Architecture, Addison-Wesley, 2003 .

[ 1 4] Саmmа Е., Helm R., ]ohnson R., Vlissides ]. Design Pattems, Addison-Wesley, 1 995 .

[ 1 5] Kerievsky ]. Continuous Leaming. Extreme Programming Perspectives, Michele Marchesi et al. Addison-Wesley, 2003 .

[ 1 6] Kerievsky ]. 2003. http : / / www. indus t r i a l l ogi c. comjxp / re f act oring .

[ 1 7 ] Larman С. Applying UML and Pattems: Аn Introduction to Object- Oriented Analysis an d Design, Prentice НаН PTR, 1 998 .

[ 1 8] Merriam-Webster. Метаm- Webster's Collegiate Diction ary. Tenth edition. Merriam­ Webster, 1993 .

[ 1 9 ] Меуег В. Object-orien ted So/tware Constmction. Prentice НаН PTR, 1 988 .

[20] Murray-Rust Р., Rzepa Н., Leach С. Abstract 40. Стенд на 2 1 0th ACS Meeting, Chicago, 2 1 августа 1 995 г. http : / /www. ch. i c. а с. uk/ cml / [2 1 ] Pinker S. Тhe Language Instinct: How the Mind Creates Language, HarperCoHins, 1994 .

[22] Succi С. ]., WeHs О., Marchesi М., WiHiams L. Extreme Programming Perspectives, Pearson Education, 2002 .

[23] Warmer ]., Kleppe А. The Object Constraint Language: Precise Modeling with UML, Addison-Wesley, 1 999 .

[24] Wirfs-Brock R., Wilkerson В., Wiener L. Designing Object- Oriented So/tware, Prentice НаН PTR, 1 990 .

[25] Wirfs-Brock R., МсКеап А. Object Design : Roles, Responsibilities, and Collaborations, Addison-Wesley, 2003 .

ФОТОГРАФИИ Все фотоrpафии, приведенные в этой книге, бьmи опубликованы с разрешения владельцев .

Richard А. Paselk, Humboldt State University "Астролябия" (глава 3, с. 62) .

© БезвозмездноjСоrЬis " Отпечаток пальца" (глава S, с. 95), "Автосервис" (глава S, с. 1 07), "Автозавод" (глава 6, с. 1 33), "Библиотекарь" (глава 6, с. 1 4 1 ) .

Martine Jousset "Виноград" (глава 6, с. 1 24 ), " Оливковые деревья" (молодые и старые) (заключение, с. 423-424) .

Biophoto AssociatesjPhoto Researchers, Inc .

Электронная микрофотография бактерий Oscillatoria (глава 14, с. 298) .

Ross J. Venables " Гребцы" (группа и одиночка) (глава 1 4, с. 302 и 325 ) .

Photodisc GreenjGetty Images "Бегуны" (глава 1 4, с. 3 1 3), "Ребенок" (глава 1 4, с. 3 1 9 ) .

U.S. National Oceanic and Atmospheric Administration Великая Китайская стена (глава 14, с. 320) .

© 2003 NAMES Project Foundation, Atlanta, Georgia. Фотограф Paul Margolies .

www. a idsqui l t. org Мозаика памяти жертв СПИДа (глава 16, с. 375 )

ПРЕДМЕТНЫЙ УКАЗАТЕ Л Ь

–  –  –

П РЕДМ ЕТН Ы Й УКА З АТЕЛ Ь 443 Мировое сообщество программистов признает, что моделирование предметных областей - Iлючевой раздел прое lтировани программного обеспечени. В мо­ делх предметных областей разраБОТЧИIИ выражают сложные фУНIЦИИ своих про­ грамм, реализу их затем в таlОМ виде, IОТОРЫЙ отвечает реальным потребностм пользователей. Но HeC MOTp на очевидную важность предмета, существует очень мало пособий по эффеlТИВНОМУ внедрению моделировани предметных областей в праlТИIУ разраБОТIИ программ .

Книга ЭРИlа Эванса восполнет этот пробел. Она посвщена не отдельным техноло­ гим, а систематичеСIОМУ предметно-ориентированному подходу. В ней представлен ШИРОIИЙ набор приемов и меТОДИl, основанных на праlтичеСIОМ опыте, и фунда­ ме нтальных принципов, помогающих в реализации программных проеlТОВ из сложных предметных областей. Органично переплета праlТИIУ проеlтировани и реализации программ, эта Iнига содержит множество фаlтичеСIИХ примеров, иллюстрирующих применение общих стратегичеСIИХ принципов в реальных программных проеlтах .

ИЗ IНИГИ читатель узнает, Iаl с помощью модели предметной области придать разработ Iе сложной системы нужную направленность и динаМИIУ. Выделены основные приемы и образцы-шаблоны, образующие общий ЗЫI группы разраБОТЧИIОВ. Особо подчеРIИ c необходимость рефаlторинга не толыо,ода, но и модели в его основе, что в сочетани с итерационной agile-меТОДИIОЙ при водит 1 углублению знаний о предметной области и повышению Iачества взаимодействи между специалистами и программистами. Подход IНИГИ строитс именно на этом фундаменте, предлага модели и архитеlТУРЫ ДЛ систем и организаций любой сложности .

В частности, в Iниге рассматриваютс следующие темы:

• Единый ЗЫI общени дл всей группы разраБОТЧИIОВ

•ГлуБОlа свзь между моделью и программной реализацией

• Выделение Iлючевых черт модели

• Управление ЦИIЛОМ существовани объеlТОВ

• Написание леГIО интегрируемого,ода предметной области

• Iаl сделать сложный IОД очевидны м и преДСlазуемым

• ФОРМУЛИРОВlа введени в предметную область

• Аистимци дpa предметной области

• ПОИСI HeBHЫX понтий, СIРЫТЫХ в модели

• Применение аналитичеС IИХ шаблонов

• Архитеlтурные шаблоны в моделх

• Помержание целостности больших систем

• Сосуществование неСIОЛЫИХ моделей в одном проеlте

• Организаци систем в соответствии с Iрупномасштабными СТРУIтурами

• Качественные СIаЧIИ в моделх Име под РУIОЙ эту IНИгу. разраБОТЧИIИ объеlтно-ориентированных программ, системные анаЛИТИIИ и архитеlТОРЫ будут всегда располагать набором реlомендаций по организации своего труда, созданию сложных и полезных моделей предметных областей, превращению их в ВЫСОIОlачественные программные ПРОДУIТЫ .

Эрик Эванс влетс основателем Domain Language - Iонсалтинговой группы, IOTopa по­ могает различным фирмам строить и разви вать программные системы, тес но свзанные с профессиональной детельностью. Автор работал в Iачестве архитеlтора и программ над большими объеlтно-ориентированными системами н()чина с 1 980-х годов. Он таlже занимаетс повышением lваЛИфИlации групп разраБОТЧИIОВ в области ЭIстремального

Pages:     | 1 |   ...   | 3 | 4 ||



Похожие работы:

«МОДЕЛИ СЕРИИ STEM 18 Инструкция по эксплуатации СОДЕРЖАНИЕ Введение.................................... ....................................................... 2 Меры безопасности..........»

«Lcd, TFT, ДИСПЛЕЙ т.80447584780 www.fotorele.net www.tiristor.by радиодетали, электронные компоненты email minsk17@tut.by tel.+375 29 758 47 80 мтс каталог, описание, технические, характеристики, d...»

«1. Булатова, В.В. Лабораторные работы с применением серийно­ выпускаемых технических устройств как средство формирования профессиональных компетенции будущих специалистов пожарной безопасности / В.В. Булатова, М.Г. Контобойцева // Новые образовательные технологии в ВУ...»

«КЛИМАЧЁВ Иван Иванович УДК.621.37.:367.732. РАЗРАБОТКА КОНСТРУКЦИИ И ТЕХНОЛОГИИ МИКРОПОЛОСКОВЫХ ПЛАТ ДЛЯ БЕСФЛЮСОВОЙ СБОРКИ ГИС СВЧ С ВЫСОКОЙ ВОСПРОИЗВОДИМОСТЬЮ ПАРАМЕТРОВ И НАДЕЖНОСТЬЮ ИЗДЕЛИЙ Специальность 05.27.01 "Твердотельная электроника, ради...»

«ПР АВИТЕ ЛЬСТВО МОСКВЫ РАСПОРЯЖЕНИЕ 5 июня 2018 г. N 367-РП 0 мерах по оказанию содействия избирательным комиссиям в реа­ лизации их полномочий при под­ готовке и проведении выборов Мэра Москвы 9 сентября 2018 г. В целях оказания содейст...»

«ИЗВЕСТИЯ ТОМСКОГО ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ ПОЛИТЕХНИЧЕСКОГО ИНСТИТУТА имени С. М. КИРОВА Том 128. I i А. А. КАПЛИН, Б. Ф . НАЗАРОВ, М. С. ЗАХАРОВ, В. С. ЖИКИНА И С С Л Е Д О В А Н И Я ПО П О В Ы Ш Е Н И Ю Н А Д Е Ж Н О С Т И СТАЦИОНАРНОГО ЭЛЕКТРОДА С ПЛАТИНОВЫМ КОНТАКТОМ В МЕТОДЕ АМАЛЬГАМНОЙ ПОЛЯРОГРАФИИ С НАКОПЛЕНИЕМ (Представлена...»

«Министерство образования и науки Российской Федерации федеральное государственное автономное образовательное учреждение высшего образования "НАЦИОНАЛЬНЫЙ ИССЛЕДОВАТЕЛЬСКИЙ ТОМСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ" Инженерная школа ядерных технологий Направление подготовки 14.04.02 Ядерные физ...»

«Принтеры Zebra® для киосков и встроенные решения печати Высокопроизводительные решения Функции и характеристики принтеров Zebra для печати для систем самообслуживания киосков: Если Вам необходимо р...»







 
2019 www.librus.dobrota.biz - «Бесплатная электронная библиотека - собрание публикаций»

Материалы этого сайта размещены для ознакомления, все права принадлежат их авторам.
Если Вы не согласны с тем, что Ваш материал размещён на этом сайте, пожалуйста, напишите нам, мы в течении 1-2 рабочих дней удалим его.