КАТЕГОРИИ: Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748) |
Архитектурные структуры и представления
Архитектура помогает в процессе обучения Архитектура предполагает возможность разработки на основе шаблонов В составе архитектуры присутствуют проектные решения о взаимодействии элементов; отраженные в реализациях всех элементов, они тем не менее локализуются и фиксируются лишь единожды. Для местной фиксации механизмов межэлементного взаимодействия служат шаблоны. К примеру, в шаблоне можно закодировать объявления публичной области элемента, в которой будут аккумулироваться результаты, или протоколы, применяемые элементом для взаимодействия с исполняемым файлом системы. Пример ряда четких архитектурных решений, предполагающих возможность шаблонной разработки, приводится в главе 8. Архитектура, содержащая описание взаимодействия элементов в рамках требуемого поведения, может послужить в качестве своеобразной инструкции, вводящей новых участников проекта в курс дела. Этим дополнительно подтверждается наше утверждение о том, что одной из основных функций программной архитектуры является организация и содействие общению между представителями разношерстных заинтересованных групп. Архитектура — это хорошая опорная точка. Невропатологи, гематологи и дерматологи представляют структуру человеческого тела по-разному. Офтальмологи, кардиологи и ортопеды специализируются на подсистемах. Кинезиологи и психиатры занимаются различными аспектами поведения организма в целом. Все эти представления фиксируются по-разному и обладают разными свойствами, однако, по сути, они связаны — все вместе они описывают архитектуру тела. Та же ситуация с программным обеспечением. Современные программные системы настолько сложны, что разбирать их в комплексе крайне сложно. Приходится концентрировать внимание на одной или нескольких структурах программной системы. Для того чтобы рассуждать об архитектуре осмысленно, мы должны определиться с тем, какая структура или какие структуры в данный момент являются предметом обсуждения, — о каком представлении (view) архитектуры мы говорим.
Рассматривая представление архитектуры, мы будем употреблять связанные между собой понятия структуры (structure) и представления (view). Представление — это отображение ряда связанных архитектурных элементов в том виде, в котором ими оперируют заинтересованные в системе лица. В нем фиксируется отображения совокупности элементов и установленных между ними связей. Структура же — это собственно ряд элементов, существующих в рамках программного или аппаратного обеспечения. В частности, модульная структура представляет собой набор модулей системы с указанием их организации. Модульное представление есть отображение этой структуры, документированное и применяемое теми или иными заинтересованными лицами. Несмотря на то что эти термины иногда используются как синонимы, мы намерены придерживаться приведенных определений. Архитектурные структуры подразделяются на три общие группы, в каждую из которых включается элементы определенного характера. ♦ Модульные структуры. Элементами таких структур являются модули — блоки реализации. Модули предполагают рассмотрение системы с точки зрения кода. Им как отдельным областям выделяются определенные функциональные обязанности. Особого внимания тому, как конечное программное обеспечение заявит себя в период прогона, в данном случае не уделяется. Модульные структуры позволяют отвечать на такие вопросы, как: «Какие основные функциональные обязанности несет данный модуль? К каким программным элементам он может обращаться? Какое программное обеспечение он фактически использует? Между какими модулями установлены отношения обобщения или специализации (например, наследования)?»
♦ Структуры «компонент и соединитель». В данном случае элементами являются компоненты (основные единицы вычислений) и соединители (инструменты взаимодействия между компонентами) периода прогона. Среди вопросов, на которые отвечают структуры «компонент и соединитель», — такие, например, как: «Каковы основные исполняемые компоненты и как происходит их взаимодействие? Каковы основные совместно используемые хранилища данных? Какие части системы воспроизводятся? Каким образом по системе проходят данные? Какие элементы системы способны исполняться параллельно? Какие структурные изменения происходят с системой во время ее исполнения?» ♦ Структуры распределения. Структуры распределения демонстрируют связь между программными элементами, с одной стороны, и элементами одной или нескольких внешних сред, в которых данное программное обеспечение создается и исполняется, — с другой. Они отвечают на вопросы: «На каком процессоре исполняется данный программный элемент? В каких файлах каждый элемент хранится в ходе разработки, тестирования и конструирования системы? Каким образом программные элементы распределяются между группами разработчиков?» Эти три структуры соответствуют трем универсальным типам решений, принимаемым в ходе архитектурного проектирования: ♦ Каким образом следует структурировать совокупность блоков кода (модулей) системы? ♦ Каким образом следует структурировать совокупность элементов системы, обладающих поведением (компоненты) и демонстрирующих взаимодействие (соединители) в период прогона? ♦ Каким образом следует установить связи между системой и непрограммными структурами среды (например, с процессорами, файловыми системами, сетями, группами разработчиков и т. д.)?
Дата добавления: 2015-04-25; Просмотров: 1563; Нарушение авторских прав?; Мы поможем в написании вашей работы! Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет |