Слайд 2
![Литература к курсу Л. Басс, П. Клементс, Р. Кацман -](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-1.jpg)
Литература к курсу
Л. Басс, П. Клементс, Р. Кацман - Архитектура программного
обеспечения на практике.
1-е издание, 2006 год, 576 стр., формат 17x23 см (70х100/16), Твердый переплет, ISBN 5-469-00494-5
Слайд 3
![Литература к курсу М. Фаулер- Архитектура корпоративных программных приложений – Вильямс,2006](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-2.jpg)
Литература к курсу
М. Фаулер- Архитектура корпоративных программных приложений – Вильямс,2006
Слайд 4
![Литература к курсу М.Фаулер – UML основы – Символ-Плюс, Питер, 2002.](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-3.jpg)
Литература к курсу
М.Фаулер – UML основы – Символ-Плюс, Питер, 2002.
Слайд 5
![Литература к курсу Лешек Мацяшек - Анализ требований и проектирование систем – Вильямс,2002](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-4.jpg)
Литература к курсу
Лешек Мацяшек - Анализ требований и проектирование систем –
Вильямс,2002
Слайд 6
![Литература к курсу Л. Константайн, Л. Локвуд – Разработка программного обеспечения - Питер, 2004](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-5.jpg)
Литература к курсу
Л. Константайн, Л. Локвуд – Разработка программного обеспечения -
Питер, 2004
Слайд 7
![Определения «архитектуры ПО» Архитектура - это базовая организация системы, воплощенная](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-6.jpg)
Определения «архитектуры ПО»
Архитектура - это базовая организация системы, воплощенная в ее
компонентах, их отношениях между собой и с окружением, а также принципы, определяющие проектирование и развитие системы.
Архитектура - это набор значимых решений по поводу организации системы программного обеспечения, набор структурных элементов и их интерфейсов, при помощи которых компонуется система, вместе с их поведением, определяемым во взаимодействии между этими элементами, компоновка элементов в постепенно укрупняющиеся подсистемы, а также стиль архитектуры который направляет эту организацию -- элементы и их интерфейсы, взаимодействия и компоновку.
Архитектура программы или компьютерной системы - это структура или структуры системы, которые включают элементы программы, видимые извне свойства этих элементов и связи между ними.
Слайд 8
![Определения «архитектуры ПО» Архитектура - это структура организации и связанное](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-7.jpg)
Определения «архитектуры ПО»
Архитектура - это структура организации и связанное с ней
поведение системы. Архитектуру можно рекурсивно разобрать на части, взаимодействующие посредством интерфейсов, связи, которые соединяют части, и условия сборки частей. Части, которые взаимодействуют через интерфейсы, включают классы, компоненты и подсистемы. [5]
Архитектура программного обеспечения системы или набора систем состоит из всех важных проектных решений по поводу структур программы и взаимодействий между этими структурами, которые составляют системы. Проектные решения обеспечивают желаемый набор свойств, которые должна поддерживать система, чтобы быть успешной. Проектные решения предоставляют концептуальную основу для разработки системы, ее поддержки и обслуживания.
Слайд 9
![Влияние на архитектуру оказывают заинтересованные в системе лица](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-8.jpg)
Влияние на архитектуру оказывают заинтересованные в системе лица
Слайд 10
![Влияние на архитектуру оказывает компания-разработчик Компании делают прямые инвестиции в](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-9.jpg)
Влияние на архитектуру оказывает компания-разработчик
Компании делают прямые инвестиции в различные активы
– в частности в существующие варианты архитектуры и основанные на них продукты. Каждый последующий проект в таком случае мыслится как продолжение ряда схожих систем, а в его смете заложено активное повторное использование имеющихся средств.
Следуя своим стратегическим задачам, компании иногда делают долгосрочные инвестиции в инфраструктуру; в таком случае предполагаемая система мыслится как одно из средств финансирования и расширения этой инфраструктуры.
Определенное влияние на программную архитектуру оказывает организационная структура компании-разработчика.
Слайд 11
![Влияние на архитектуру оказывают опыт и привычки архитекторов Положительный опыт](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-10.jpg)
Влияние на архитектуру оказывают опыт и привычки архитекторов
Положительный опыт – повторение
его в последующих работах.
Отрицательный опыт – отказ использовать его в последующих работах.
Архитекторы любят экспериментировать с новыми образцами(pattern) и методиками.
Слайд 12
![Влияние на архитектуру оказывает техническая база Подготовка и опыт архитектора](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-11.jpg)
Влияние на архитектуру оказывает техническая база
Подготовка и опыт архитектора проявляется, в
частности, в его работе с технической базой (technical environment).
К технической базе можно отнести:
методы работы, принятые в данной отрасли
приемы программной инженерии, распространенные в профессиональном сообществе, в которое входит архитектор.
Слайд 13
![Вариативность факторов влияния на архитектуру](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-12.jpg)
Вариативность факторов влияния на архитектуру
Слайд 14
![Архитектура оказывает обратное воздействие на факторы влияние](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-13.jpg)
Архитектура оказывает обратное воздействие на факторы влияние
Слайд 15
![Программный процесс и архитектурно-экономический цикл создание экономической модели системы; выявление](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-14.jpg)
Программный процесс и архитектурно-экономический цикл
создание экономической модели системы;
выявление требований;
создание новой или
выбор существующей архитектуры;
документирование и распространение сведений об архитектуре;
анализ или оценка архитектуры;
реализация системы на основе архитектуры;
проверка соответствия реализации архитектуре;
Слайд 16
![Строительные элементы архитектуры ПО - компонент Компонент – абстрактная единица](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-15.jpg)
Строительные элементы архитектуры ПО - компонент
Компонент – абстрактная единица инструкций программного
обеспечения и внутренних состояний, которая обеспечивает трансформацию данных через свои интерфейсы.
Слайд 17
![Строительные элементы архитектуры ПО - коннектор Коннектор – абстрактный механизм,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-16.jpg)
Строительные элементы архитектуры ПО - коннектор
Коннектор – абстрактный механизм, служащий посредником
в коммуникации, координации или кооперации между компонентами.
Слайд 18
![Строительные элементы архитектуры ПО - данные Данные – элемент информации,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-17.jpg)
Строительные элементы архитектуры ПО - данные
Данные – элемент информации, передаваемый от
одного компонента или получаемый от другого компонента через коннектор.
Слайд 19
![Пример архитектурного описания](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-18.jpg)
Пример архитектурного описания
Слайд 20
![Архитектурные образцы, эталонные модели и эталонные варианты архитектуры](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-19.jpg)
Архитектурные образцы, эталонные модели и эталонные варианты архитектуры
Слайд 21
![Классификация архитектурных стилей](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-20.jpg)
Классификация архитектурных стилей
Слайд 22
![Каналы и фильтры Архитектурное описание строится как (или представляет собой)](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-21.jpg)
Каналы и фильтры
Архитектурное описание строится как (или представляет собой) связную совокупность
фильтров и каналов , в которой:
фильтр – независимый блок, получающий на вход поток(и) данных и выдающий поток(и) данных
возможна достаточно простая переконфигурация системы фильтров (соединение их с помощью pipes)
фильтры работают параллельно
Слайд 23
![Стиль, основанный на репозитарии (Repository-based) В рамках стиля, базирующегося на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-22.jpg)
Стиль, основанный на репозитарии (Repository-based)
В рамках стиля, базирующегося на репозитарии, общие
данные разделяет определённая совокупность приложений, каждое из которых в своих обращениях к данным является независимым.
Слайд 24
![Событийно-ориентированный (Event-based) стиль Событийный стиль используется для композиции приложений, которые](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-23.jpg)
Событийно-ориентированный (Event-based) стиль
Событийный стиль используется для композиции приложений, которые обращаются (регулярно
или случайно) к родственному типу событий (возникающих регулярно или случайно), с которыми взаимодействует система.
Слайд 25
![Одноранговый (Peer-to-Peer) стиль Одноранговый стиль применим в условиях, когда разрабатываемая](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-24.jpg)
Одноранговый (Peer-to-Peer) стиль
Одноранговый стиль применим в условиях, когда разрабатываемая система состоит
из приложений (участников взаимодействия), каждое из которых связано с определённым количеством других. В каждом акте взаимодействия оно устанавливается и происходит только между двумя участниками.
Слайд 26
![Многослойный стиль Одним из эффективных подходов к разбиению системы на](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-25.jpg)
Многослойный стиль
Одним из эффективных подходов к разбиению системы на части является
использование многослойных структур. Такой подход применим как к приложениям, развёрнутым на одном компьютере, так и для распределённых систем. Типовые разбиения на слои (для таких вариантов) близки по смыслу, но имеют различия в терминологиях, используемых для их описаний.
Слайд 27
![Клиент-серверный стиль Для распределённых систем типичен случай применения стиля «клиент-сервер»,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-26.jpg)
Клиент-серверный стиль
Для распределённых систем типичен случай применения стиля «клиент-сервер», для
реализации которого, часть системы с определёнными функциональностями размещают на сервере, а другую часть на клиентских местах пользователей.
Слайд 28
![Стиль «Модель-вид-контроллер» (Model-View-Control, MVC) Стиль MVC согласован с приложениями ,](/_ipx/f_webp&q_80&fit_contain&s_1440x1080/imagesDir/jpg/294420/slide-27.jpg)
Стиль «Модель-вид-контроллер» (Model-View-Control, MVC)
Стиль MVC согласован с приложениями , в которых
основным видом работ является интерактивное взаимодействие пользователя с визуализированными моделями, представляющими определённые сущности.