Архитектура программного обеспечения

Поделись знанием:
Перейти к: навигация, поиск
К:Википедия:Статьи без источников (тип: не указан)

Архитектура программного обеспечения (англ. software architecture) — совокупность важнейших решений об организации программной системы. Архитектура включает:

  • выбор структурных элементов и их интерфейсов, с помощью которых составлена система, а также их поведения в рамках сотрудничества структурных элементов;
  • соединение выбранных элементов структуры и поведения во всё более крупные системы;
  • архитектурный стиль, который направляет всю организацию — все элементы, их интерфейсы, их сотрудничество и их соединение[1][2].

Документирование архитектуры программного обеспечения (ПО) упрощает процесс коммуникации между разработчиками, позволяет зафиксировать принятые проектные решения и предоставить информацию о них эксплуатационному персоналу системы[3], повторно использовать компоненты и шаблоны проекта в других.

Общепринятого определения «архитектуры программного обеспечения» не существует. Так, сайт Software Engineering Institute приводит более 150 определений этого понятия[4][5].





Обзор

К:Википедия:Статьи без источников (тип: не указан)

Область компьютерных наук с момента своего образования столкнулась с проблемами, связанными со сложностью программных систем. Ранее проблемы сложности решались разработчиками путём правильного выбора структур данных, разработки алгоритмов и применения концепции разграничения полномочий. Хотя термин «архитектура программного обеспечения» является относительно новым для индустрии разработки ПО, фундаментальные принципы этой области неупорядоченно применялись пионерами разработки ПО начиная с середины 1980-х. Первые попытки осознать и объяснить программную архитектуру системы были полны неточностей и страдали от недостатка организованности, часто это была просто диаграмма из блоков, соединенных линиями. В 1990-е годы наблюдается попытка определить и систематизировать основные аспекты данной дисциплины. Первоначальный набор шаблонов проектирования, стилей проектирования, передового опыта (best practices), языков описания и формальная логика были разработаны в течение этого времени.

Основополагающей идеей дисциплины программной архитектуры является идея снижения сложности системы путём абстракции и разграничения полномочий. На сегодняшний день до сих пор нет согласия в отношении чёткого определения термина «архитектура программного обеспечения».

Являясь в настоящий момент своего развития дисциплиной без четких правил о «правильном» пути создания системы, проектирование архитектуры ПО все ещё является смесью науки и искусства. Аспект «искусства» заключается в том, что любая коммерческая система подразумевает наличие применения или миссии. То, какие ключевые цели имеет система, описывается с помощью сценариев как нефункциональные требования к системе, также известные как атрибуты качества, определяющие, как будет вести себя система. Атрибуты качества системы включают в себя отказоустойчивость, сохранение обратной совместимости, расширяемость, надежность, пригодность к сервисному обслуживанию (maintainability), доступность, безопасность, удобство использования, а также другие качества. С точки зрения пользователя программной архитектуры, программная архитектура дает направление для движения и решения задач, связанных со специальностью каждого такого пользователя, например, заинтересованного лица, разработчика ПО, группы поддержки ПО, специалиста по сопровождению ПО, специалиста по развертыванию ПО, тестера, а также конечных пользователей. В этом смысле архитектура программного обеспечения на самом деле объединяет различные точки зрения на систему. Тот факт, что эти несколько различных точек зрения могут быть объединены в архитектуре программного обеспечения, является аргументом в защиту необходимости и целесообразности создания архитектуры ПО ещё до этапа разработки ПО.

История

Начало архитектуре программного обеспечения как концепции было положено в научно-исследовательской работе Эдсгера Дейкстры в 1968 году и Дэвида Парнаса в начале 1970-х. Эти ученые подчеркнули, что структура системы ПО имеет важное значение, и что построение правильной структуры — критически важно. Популярность изучения этой области возросла с начала 1990-х годов вместе с научно-исследовательской работой по исследованию архитектурных стилей (шаблонов), языков описания архитектуры, документирования архитектуры, и формальных методов.

В развитии архитектуры программного обеспечения как дисциплины играют важную роль научно-исследовательские учреждения. Мэри Шоу и Дэвид Гэрлан из университета Carnegie Mellon написали книгу под названием «Архитектура программного обеспечения: перспективы новой дисциплины в 1996 году», в которой выдвинули концепции архитектуры программного обеспечения, такие как компоненты, соединители (connectors), стили и так далее. В калифорнийском университете институт Ирвайна по исследованию ПО в первую очередь исследует архитектурные стили, языки описания архитектуры и динамические архитектуры.

Первым стандартом программной архитектуры является стандарт IEEE 1471: ANSI / IEEE 1471—2000: Рекомендации по описанию преимущественно программных систем. Он был принят в 2007 году, под названием ISO ISO / IEC 42010:2007.

Языки описания архитектуры

Языки описания архитектуры (ADLS) используются для описания архитектуры программного обеспечения. Различными организациями было разработано несколько различных ADLS, в том числе AADL (стандарт SAE), Wright (разработан в университете Carnegie Mellon), Acme (разработан в университете Carnegie Mellon), xADL (разработан в UCI), Darwin (разработан в Imperial College в Лондоне), DAOP-ADL (разработан в Университете Малаги), а также ByADL (Университет L’Aquila, Италия). Общими элементами для всех этих языков являются понятия компонента, коннектора и конфигурации. Также, помимо специализированных языков, для описания архитектуры часто используется унифицированный язык моделирования UML.

Виды (views)

Архитектура ПО обычно содержит несколько видов, которые аналогичны различным типам чертежей в строительстве зданий. В онтологии, установленной ANSI / IEEE 1471—2000, виды являются экземплярами точки зрения, где точка зрения существует для описания архитектуры с точки зрения заданного множества заинтересованных лиц.

Архитектурный вид состоит из 2 компонентов:

  • Элементы
  • Отношения между элементами

Архитектурные виды можно поделить на 3 основных типа[6]:

  1. Модульные виды (англ. module views) — показывают систему как структуру из различных программных блоков.
  2. Компоненты-и-коннекторы (англ. component-and-connector views) — показывают систему как структуру из параллельно запущенных элементов (компонентов) и способов их взаимодействия (коннекторов).
  3. Размещение (англ. allocation views) — показывает размещение элементов системы во внешних средах.

Примеры модульных видов:

  • Декомпозиция (англ. decomposition view) — состоит из модулей в контексте отношения «является подмодулем»
  • Использование (англ. uses view) — состоит из модулей в контексте отношения «использует» (т.е. один модуль использует сервисы другого модуля)
  • Вид уровней (англ. layered view) — показывает структуру, в которой связанные по функциональности модули объединены в группы (уровни)
  • Вид классов/обобщений (англ. class/generalization view) — состоит из классов, связанные через отношения «наследуется от» и «является экземпляром»

Примеры видов компонентов-и-коннекторов:

  • Процессный вид (англ. process view) — состоит из процессов, соединённых операциями коммуникации, синхронизации и/или исключения
  • Параллельный вид (англ. concurrency view) — состоит из компонентов и коннекторов, где коннекторы представляют собой «логические потоки»
  • Вид обмена данными (англ. shared-data (repository) view) — состоит из компонентов и коннекторов, которые создают, сохраняют и получают постоянные данные
  • Вид клиент-сервер (англ. client-server view) — состоит из взаимодействующих клиентов и серверов и коннектором между ними (например, протоколов и общих сообщений)

Примеры видов размещения:

  • Развертывание (англ. deployment view) — состоит из программных элементов, их размещения на физических носителях и коммуникационных элементов
  • Внедрение (англ. implementation view) — состоит из программных элементов и их соответствия файловым структурам в различных средах (разработческой, интеграционной и т.д.)
  • Распределение работы (англ. work assignment view) — состоит из модулей и описания того, кто ответственен за внедрение каждого из них

Хотя было разработано несколько языков для описания архитектуры программного обеспечения, в настоящий момент нет согласия по поводу того, какой набор видов должен быть принят в качестве эталона. В качестве стандарта «для моделирования программных систем (и не только)» был создан язык UML.

Архитектурные шаблоны

Для удовлетворения проектируемой системы различным атрибутам качества применяются различные архитектурные шаблоны (паттерны). Каждый шаблон имеет свои задачи и свои недостатки.

Примеры архитектурных шаблонов:

  • Многоуровневый шаблон (Layered pattern). Система разбивается на уровни, которые на диаграмме изображаются один над другим. Каждый уровень может вызывать только уровень на 1 ниже него. Таким образом разработку каждого уровня можно вести относительно независимо, что повышает модифицируемость системы. Недостатками данного подхода являются усложнение системы и снижение производительности.
  • Шаблон посредника (Broker pattern). Когда в системе присутствует большое количество модулей, их прямое взаимодействие друг с другом становится слишком сложным. Для решения проблемы вводится посредник (например, шина данных), по которой модули общаются друг с другом. Таким образом, повышается функциональная совместимость модулей системы. Все недостатки вытекают из наличия посредника: он понижает производительность, его недоступность может сделать недоступной всю систему, он может стать объектом атак и узким местом системы.
  • Шаблон «Модель-Представление-Контроллер» (Model-View-Controller pattern). Т.к. требования к интерфейсу меняются чаще всего, то возникает потребность часто его модифицировать, при этом сохраняя корректное взаимодействие с данными (чтение, сохранение). Для этого в шаблоне Model-View-Controller (MVC) интерфейс отделён от данных. Это позволяет менять интерфейсы, равно как и создавать их разные варианты. В MVC система разделена на:
    • Модель, хранящую данные
    • Представление, отображающее часть данных и взаимодействующее с пользователем
    • Контроллер, являющийся посредником между видами и моделью

Однако, концепция MVC имеет и свои недостатки. В частности, из-за усложнения взаимодействия падает скорость работы системы.

  • Клиент-серверный шаблон (Client-Server pattern). Если есть ограниченное число ресурсов, к которым требуется ограниченный правами доступ большого числа потребителей, то удобно реализовать клиент-серверную архитектуру. Такой подход повышает масштабируемость и доступность системы. Но при этом сервер может стать узким местом системы, при его недоступности становится недоступна вся система.

Базовые фреймворки для архитектуры ПО

Существуют следующие фреймворки (англ. software architecture frameworks), относящихся к области архитектуры ПО:

  • 4+1
  • RM-ODP (Reference Model of Open Distributed Processing)
  • Service-Oriented Modeling Framework (SOMF)

Такие примеры архитектур как фреймворк Захмана (Zachman Framework), DODAF и TOGAF относятся к области архитектуры предприятия (enterprise architectures).

См. также

Напишите отзыв о статье "Архитектура программного обеспечения"

Примечания

  1. Kruchten, Philippe. The Rational Unified Process-An Introduction, Addison-Wesley, 1998
  2. Rumbaugh, J., Jacobsen, I. and Booch, G. The Unified Modelling Language Reference Manual. Reading, Mass.: Addison-Wesley, 1999
  3. Documenting Software Architectures: Views and Beyond, 2010, P.1.1. Overview.
  4. Documenting Software Architectures: Views and Beyond, 2010, P.1.2. Architecture and Quality Attributes.
  5. [www.sei.cmu.edu/architecture/start/glossary/ Software Architecture:Glossary], Software Engineering Institute
  6. Len Bass, Paul Clements, Rick Kazman. Software Architecture in Practice (3rd Edition) (SEI Series in Software Engineering). — 3 edition (October 5, 2012). — 2012. — 640 с. — ISBN 978-0321815736.

Литература

  • Paul Clements; Felix Bachmann; Len Bass; David Garlan; James Ivers; Reed Little; Paulo Merson; Robert Nord; Judith Stafford. Documenting Software Architectures: Views and Beyond. — Second Edition. — Addison-Wesley Professional, 2010. — ISBN 978-0-13-248861-7.
  • Len Bass, Paul Clements, Rick Kazman: Software Architecture in Practice, Third Edition. Addison Wesley, 2012, ISBN 978-0321815736 (This book, now in third edition, eloquently covers the fundamental concepts of the discipline. The theme is centered around achieving quality attributes of a system.)

Ссылки

  • [www.ibm.com/developerworks/ru/library/eeles/ Что такое архитектура программного обеспечения?]
  • [www.osp.ru/os/2006/03/1156577/ Ретроспектива программных архитектур]
  • [www.sei.cmu.edu/architecture/start/glossary/ Software Architecture: Glossary], Software Engineering Institute  (англ.)
  • [www.sei.cmu.edu/architecture/start/publications/ Architecture: Publications], Software Engineering Institute  (англ.)


Отрывок, характеризующий Архитектура программного обеспечения

Солдат с распухшей щекой сердито глядел на песельников кавалеристов.
– Ох, щегольки! – проговорил он укоризненно.
– Нынче не то что солдат, а и мужичков видал! Мужичков и тех гонят, – сказал с грустной улыбкой солдат, стоявший за телегой и обращаясь к Пьеру. – Нынче не разбирают… Всем народом навалиться хотят, одью слово – Москва. Один конец сделать хотят. – Несмотря на неясность слов солдата, Пьер понял все то, что он хотел сказать, и одобрительно кивнул головой.
Дорога расчистилась, и Пьер сошел под гору и поехал дальше.
Пьер ехал, оглядываясь по обе стороны дороги, отыскивая знакомые лица и везде встречая только незнакомые военные лица разных родов войск, одинаково с удивлением смотревшие на его белую шляпу и зеленый фрак.
Проехав версты четыре, он встретил первого знакомого и радостно обратился к нему. Знакомый этот был один из начальствующих докторов в армии. Он в бричке ехал навстречу Пьеру, сидя рядом с молодым доктором, и, узнав Пьера, остановил своего казака, сидевшего на козлах вместо кучера.
– Граф! Ваше сиятельство, вы как тут? – спросил доктор.
– Да вот хотелось посмотреть…
– Да, да, будет что посмотреть…
Пьер слез и, остановившись, разговорился с доктором, объясняя ему свое намерение участвовать в сражении.
Доктор посоветовал Безухову прямо обратиться к светлейшему.
– Что же вам бог знает где находиться во время сражения, в безызвестности, – сказал он, переглянувшись с своим молодым товарищем, – а светлейший все таки знает вас и примет милостиво. Так, батюшка, и сделайте, – сказал доктор.
Доктор казался усталым и спешащим.
– Так вы думаете… А я еще хотел спросить вас, где же самая позиция? – сказал Пьер.
– Позиция? – сказал доктор. – Уж это не по моей части. Проедете Татаринову, там что то много копают. Там на курган войдете: оттуда видно, – сказал доктор.
– И видно оттуда?.. Ежели бы вы…
Но доктор перебил его и подвинулся к бричке.
– Я бы вас проводил, да, ей богу, – вот (доктор показал на горло) скачу к корпусному командиру. Ведь у нас как?.. Вы знаете, граф, завтра сражение: на сто тысяч войска малым числом двадцать тысяч раненых считать надо; а у нас ни носилок, ни коек, ни фельдшеров, ни лекарей на шесть тысяч нет. Десять тысяч телег есть, да ведь нужно и другое; как хочешь, так и делай.
Та странная мысль, что из числа тех тысяч людей живых, здоровых, молодых и старых, которые с веселым удивлением смотрели на его шляпу, было, наверное, двадцать тысяч обреченных на раны и смерть (может быть, те самые, которых он видел), – поразила Пьера.
Они, может быть, умрут завтра, зачем они думают о чем нибудь другом, кроме смерти? И ему вдруг по какой то тайной связи мыслей живо представился спуск с Можайской горы, телеги с ранеными, трезвон, косые лучи солнца и песня кавалеристов.
«Кавалеристы идут на сраженье, и встречают раненых, и ни на минуту не задумываются над тем, что их ждет, а идут мимо и подмигивают раненым. А из этих всех двадцать тысяч обречены на смерть, а они удивляются на мою шляпу! Странно!» – думал Пьер, направляясь дальше к Татариновой.
У помещичьего дома, на левой стороне дороги, стояли экипажи, фургоны, толпы денщиков и часовые. Тут стоял светлейший. Но в то время, как приехал Пьер, его не было, и почти никого не было из штабных. Все были на молебствии. Пьер поехал вперед к Горкам.
Въехав на гору и выехав в небольшую улицу деревни, Пьер увидал в первый раз мужиков ополченцев с крестами на шапках и в белых рубашках, которые с громким говором и хохотом, оживленные и потные, что то работали направо от дороги, на огромном кургане, обросшем травою.
Одни из них копали лопатами гору, другие возили по доскам землю в тачках, третьи стояли, ничего не делая.
Два офицера стояли на кургане, распоряжаясь ими. Увидав этих мужиков, очевидно, забавляющихся еще своим новым, военным положением, Пьер опять вспомнил раненых солдат в Можайске, и ему понятно стало то, что хотел выразить солдат, говоривший о том, что всем народом навалиться хотят. Вид этих работающих на поле сражения бородатых мужиков с их странными неуклюжими сапогами, с их потными шеями и кое у кого расстегнутыми косыми воротами рубах, из под которых виднелись загорелые кости ключиц, подействовал на Пьера сильнее всего того, что он видел и слышал до сих пор о торжественности и значительности настоящей минуты.


Пьер вышел из экипажа и мимо работающих ополченцев взошел на тот курган, с которого, как сказал ему доктор, было видно поле сражения.
Было часов одиннадцать утра. Солнце стояло несколько влево и сзади Пьера и ярко освещало сквозь чистый, редкий воздух огромную, амфитеатром по поднимающейся местности открывшуюся перед ним панораму.
Вверх и влево по этому амфитеатру, разрезывая его, вилась большая Смоленская дорога, шедшая через село с белой церковью, лежавшее в пятистах шагах впереди кургана и ниже его (это было Бородино). Дорога переходила под деревней через мост и через спуски и подъемы вилась все выше и выше к видневшемуся верст за шесть селению Валуеву (в нем стоял теперь Наполеон). За Валуевым дорога скрывалась в желтевшем лесу на горизонте. В лесу этом, березовом и еловом, вправо от направления дороги, блестел на солнце дальний крест и колокольня Колоцкого монастыря. По всей этой синей дали, вправо и влево от леса и дороги, в разных местах виднелись дымящиеся костры и неопределенные массы войск наших и неприятельских. Направо, по течению рек Колочи и Москвы, местность была ущелиста и гориста. Между ущельями их вдали виднелись деревни Беззубово, Захарьино. Налево местность была ровнее, были поля с хлебом, и виднелась одна дымящаяся, сожженная деревня – Семеновская.
Все, что видел Пьер направо и налево, было так неопределенно, что ни левая, ни правая сторона поля не удовлетворяла вполне его представлению. Везде было не доле сражения, которое он ожидал видеть, а поля, поляны, войска, леса, дымы костров, деревни, курганы, ручьи; и сколько ни разбирал Пьер, он в этой живой местности не мог найти позиции и не мог даже отличить ваших войск от неприятельских.
«Надо спросить у знающего», – подумал он и обратился к офицеру, с любопытством смотревшему на его невоенную огромную фигуру.
– Позвольте спросить, – обратился Пьер к офицеру, – это какая деревня впереди?
– Бурдино или как? – сказал офицер, с вопросом обращаясь к своему товарищу.
– Бородино, – поправляя, отвечал другой.
Офицер, видимо, довольный случаем поговорить, подвинулся к Пьеру.
– Там наши? – спросил Пьер.
– Да, а вон подальше и французы, – сказал офицер. – Вон они, вон видны.
– Где? где? – спросил Пьер.
– Простым глазом видно. Да вот, вот! – Офицер показал рукой на дымы, видневшиеся влево за рекой, и на лице его показалось то строгое и серьезное выражение, которое Пьер видел на многих лицах, встречавшихся ему.
– Ах, это французы! А там?.. – Пьер показал влево на курган, около которого виднелись войска.
– Это наши.
– Ах, наши! А там?.. – Пьер показал на другой далекий курган с большим деревом, подле деревни, видневшейся в ущелье, у которой тоже дымились костры и чернелось что то.
– Это опять он, – сказал офицер. (Это был Шевардинский редут.) – Вчера было наше, а теперь его.
– Так как же наша позиция?
– Позиция? – сказал офицер с улыбкой удовольствия. – Я это могу рассказать вам ясно, потому что я почти все укрепления наши строил. Вот, видите ли, центр наш в Бородине, вот тут. – Он указал на деревню с белой церковью, бывшей впереди. – Тут переправа через Колочу. Вот тут, видите, где еще в низочке ряды скошенного сена лежат, вот тут и мост. Это наш центр. Правый фланг наш вот где (он указал круто направо, далеко в ущелье), там Москва река, и там мы три редута построили очень сильные. Левый фланг… – и тут офицер остановился. – Видите ли, это трудно вам объяснить… Вчера левый фланг наш был вот там, в Шевардине, вон, видите, где дуб; а теперь мы отнесли назад левое крыло, теперь вон, вон – видите деревню и дым? – это Семеновское, да вот здесь, – он указал на курган Раевского. – Только вряд ли будет тут сраженье. Что он перевел сюда войска, это обман; он, верно, обойдет справа от Москвы. Ну, да где бы ни было, многих завтра не досчитаемся! – сказал офицер.
Старый унтер офицер, подошедший к офицеру во время его рассказа, молча ожидал конца речи своего начальника; но в этом месте он, очевидно, недовольный словами офицера, перебил его.
– За турами ехать надо, – сказал он строго.
Офицер как будто смутился, как будто он понял, что можно думать о том, сколь многих не досчитаются завтра, но не следует говорить об этом.
– Ну да, посылай третью роту опять, – поспешно сказал офицер.
– А вы кто же, не из докторов?
– Нет, я так, – отвечал Пьер. И Пьер пошел под гору опять мимо ополченцев.
– Ах, проклятые! – проговорил следовавший за ним офицер, зажимая нос и пробегая мимо работающих.
– Вон они!.. Несут, идут… Вон они… сейчас войдут… – послышались вдруг голоса, и офицеры, солдаты и ополченцы побежали вперед по дороге.
Из под горы от Бородина поднималось церковное шествие. Впереди всех по пыльной дороге стройно шла пехота с снятыми киверами и ружьями, опущенными книзу. Позади пехоты слышалось церковное пение.
Обгоняя Пьера, без шапок бежали навстречу идущим солдаты и ополченцы.
– Матушку несут! Заступницу!.. Иверскую!..
– Смоленскую матушку, – поправил другой.
Ополченцы – и те, которые были в деревне, и те, которые работали на батарее, – побросав лопаты, побежали навстречу церковному шествию. За батальоном, шедшим по пыльной дороге, шли в ризах священники, один старичок в клобуке с причтом и певчпми. За ними солдаты и офицеры несли большую, с черным ликом в окладе, икону. Это была икона, вывезенная из Смоленска и с того времени возимая за армией. За иконой, кругом ее, впереди ее, со всех сторон шли, бежали и кланялись в землю с обнаженными головами толпы военных.
Взойдя на гору, икона остановилась; державшие на полотенцах икону люди переменились, дьячки зажгли вновь кадила, и начался молебен. Жаркие лучи солнца били отвесно сверху; слабый, свежий ветерок играл волосами открытых голов и лентами, которыми была убрана икона; пение негромко раздавалось под открытым небом. Огромная толпа с открытыми головами офицеров, солдат, ополченцев окружала икону. Позади священника и дьячка, на очищенном месте, стояли чиновные люди. Один плешивый генерал с Георгием на шее стоял прямо за спиной священника и, не крестясь (очевидно, пемец), терпеливо дожидался конца молебна, который он считал нужным выслушать, вероятно, для возбуждения патриотизма русского народа. Другой генерал стоял в воинственной позе и потряхивал рукой перед грудью, оглядываясь вокруг себя. Между этим чиновным кружком Пьер, стоявший в толпе мужиков, узнал некоторых знакомых; но он не смотрел на них: все внимание его было поглощено серьезным выражением лиц в этой толпе солдат и оиолченцев, однообразно жадно смотревших на икону. Как только уставшие дьячки (певшие двадцатый молебен) начинали лениво и привычно петь: «Спаси от бед рабы твоя, богородице», и священник и дьякон подхватывали: «Яко вси по бозе к тебе прибегаем, яко нерушимой стене и предстательству», – на всех лицах вспыхивало опять то же выражение сознания торжественности наступающей минуты, которое он видел под горой в Можайске и урывками на многих и многих лицах, встреченных им в это утро; и чаще опускались головы, встряхивались волоса и слышались вздохи и удары крестов по грудям.
Толпа, окружавшая икону, вдруг раскрылась и надавила Пьера. Кто то, вероятно, очень важное лицо, судя по поспешности, с которой перед ним сторонились, подходил к иконе.
Это был Кутузов, объезжавший позицию. Он, возвращаясь к Татариновой, подошел к молебну. Пьер тотчас же узнал Кутузова по его особенной, отличавшейся от всех фигуре.
В длинном сюртуке на огромном толщиной теле, с сутуловатой спиной, с открытой белой головой и с вытекшим, белым глазом на оплывшем лице, Кутузов вошел своей ныряющей, раскачивающейся походкой в круг и остановился позади священника. Он перекрестился привычным жестом, достал рукой до земли и, тяжело вздохнув, опустил свою седую голову. За Кутузовым был Бенигсен и свита. Несмотря на присутствие главнокомандующего, обратившего на себя внимание всех высших чинов, ополченцы и солдаты, не глядя на него, продолжали молиться.