Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
74
Добавлен:
17.04.2018
Размер:
804.24 Кб
Скачать

8.1Поясните на примере отличия характеристик качества с точки

8.2 Сиситема видов в архитектурных решениях Simens

зрения разных групп стейкхолдеров.

(Использование концептуального вида было предложено до UML)

Стейкхолдеры – лица заинтересованные в проекте.

Система видов включала:

Основые характеристики качества:

Концептуальный вид как описание архитектуры системы в

 

понятиях, раскрывающих основные элементы ПО и связи между

 

ними

 

Модульный вид, раскрывающий функциональную

 

декомпозицию ПО и распределение по уровням детализации

 

Вид исполнения, специфицирующий динамическую структуру

 

ПО

 

Вид с позиций кодов, включающий кодовые компоненты и их

 

библиотечную организацию в среде разработки

8.3Архитектурные стили.REST(передача репрезентативного

8.3Архитектурные стили.REST(передача репрезентативного

состояния)

состояни)

Метод взаимодействия компонентов распределённого

в каждом запросе клиента должно явно содержаться указание о

приложения в сети Интернет, при котором вызов удалённой

возможности кэширования ответа и получения ответа из

процедуры представляет собой обычный HTTP запрос(обычно GET

существующего кэша;

или POST; такой запрос называют REST - запрос), а необходимые

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

данные передаются в качестве параметров запроса. (альтернатива

произвольным количеством промежуточных узлов. При этом

SOAP, CORBA, RPC).

клиент может не знать о существовании промежуточных узлов,

В широком смысле REST означает концепцию построения

за исключением случаев передачи конфиденциальной

распределенного приложения, при которой компоненты

информации.

взаимодействуют наподобие взаимодействия клиентов и

унифицированный программный интерфейс сервера.

серверов во Всемирной паутине.

Приложения, не соответствующие приведенным условиям, не

Хотя данная концепция лежит в самой основе Всемирной

могут называться REST приложениями. Если же все условия

паутины, термин REST был введен Роем Филдинго одним из

соблюдены, то приложение получит следующие преимущества:

создателей протокола HTTP, лишь в 2000г.Филдинго писал

надежность(за счет отсутствия необходимости сохранять

Концепцию построения распределенного приложения, при

информацию о состоянии клиента, которая может быть

которой каждый запрос клиента к серверу содержит в себе

утеряна);

исчерпывающую информацию о желаемом ответе сервера

производительность(за счет использования кэша);

(желаемом

масштабируемость;

Репрезентативном состоянии),и сервер не обязан сохранять

прозрачность системы взаимодействия, особенно необходимая

информацию о состоянии клиента

для приложений обслуживания сети;

Необходимые условия для построения распределенных REST

простота интерфейсов;

приложений:

портативность компонентов;

клиент-серверная архитектура;

легкость внесения изменений, способность эволюционировать,

сервер не обязан сохранять информацию о состоянии клиента;

приспосабливаясь к новым требованиям.

 

8.4Паттерн Заместитель,Proxy (структурирующий объекты)

8.4Паттерн Заместитель,Proxy (структурирующий объекты)

Назначение:

 

 

Вам нужно управлять ресурсоемкими объектами. Вы не хотите

 

 

создавать экземпляры таких объектов до момента их реального

 

 

использования. Proxy является суррогатом другого объекта и

 

 

управляетдоступом к нему.

 

 

Участники:

 

 

1. Proxy (imageProxy) — Заместитель:

 

 

• хранит ссылку, которая позволяет Заместителю обратиться к

 

 

реальному субъекту. Объект класса Proxy может обращаться

 

 

кобъекту класса Subject, если интерфейсы классов RealSubject и

 

 

Subject одинаковы;

 

 

• предоставляет интерфейс, идентичный интерфейсу Subject, так

 

 

что Заместитель всегда может быть подставлен вместо реального

Преимущества:

субъекта;

 

удалённый заместитель;

• контролирует доступ к реальному субъекту и может отвечать за

виртуальный заместитель может выполнять

его создание и удаление.

 

оптимизацию;

2. Subject — субъект: определяет общий для RealSubject и

 

 

защищающийзаместитель;

Proxy интерфейс, так что класс Proxy можно использовать

 

«умная» ссылка;

везде, где ожидается RealSubject.

Недостатки:

3. RealSubject (Image) — реальный субъект: определяет

 

резкоеувеличениевремениотклика.

реальныйобъект, представленный Заместителем.

 

 

7.1Перечислите и поясните смысл видов в архитектуре «4+1».

7.1Перечислите и поясните смысл видов в архитектуре «4+1».

Архитектура конкретной ПО описывается множеством ее

Здесь описывается также распределение пакетов и классов (из

представлений, где фиксируются главные решения

логического представления) в пакетах и модулях представления

проектирования структуры, показывающие, как приложение

выполнения. Это представление является подмножеством модели

разделено на компоненты, и как связаны эти компоненты для

выполнения.

получения полезной конфигурации.

4. Вид с позиций процесса, содержащий описание задач

Эти решения должны вытекать из требований функциональности

(процессов и нитей), их взаимодействия и конфигурации и

и других факторов. С другой стороны, эти решения устанавливают

распределения объектов и классов по задачам. Потребность этого

дальнейшие ограничения на требования и на будущие проектные

представления возникает, только если система имеет

решения нижнего уровня.

существенную степень параллелизма. В RationalUnifiedProcess 5.1

При использовании подхода «4+1» разработчики ПО начинают

представление процесса — это подмножество модели проекта.

формирование архитектуры с типичного набора видов,

5. Физический вид, который содержит описание различных

представленного на рис

физических узлов для наиболее типичных конфигураций

 

платформы, и расположение задач (из представления процесса)

 

по физическим узлам. Потребность этого представления

 

возникает, только если система распределена.

 

Дополнительные представления, например для представления

Набор видов включает следующее.

интерфейса пользователя, представления защиты и

представление данных не отвергаются, но ответственность за их

1. Usecase вид, который содержит прецеденты и сценарии,

связывание с базой «4+1» ложится на разработчиков ПО.

охватывающие архитектурно существенное поведение, классы

Перечисленные выше представления могут изобразить проект

или технические риски. Вид является подмножеством модели

системы в целом. Но архитектура интересуется только

прецедентов.

некоторыми определенными аспектами.

2. Логический вид, который содержит наиболее важные классы

Структура модели — организационные элементы, например,

проекта, их организацию в пакеты и подсистемы различных

иерархическое представление.

уровней. Здесь содержится уже некоторая реализация

Существенные элементы — критические прецеденты, главные

прецедента. Это представление является подмножеством модели

классы, общие механизмы и так далее, а не все элементы,

проекта

представленные в модели. Несколько ключевых сценариев,

3. Вид с позиции разработки, который содержит краткий обзор

показывающих главный поток управления в системе.

модели выполнения в терминах модулей пакетов и уровней.

Сервис, чтобы зафиксировать модульность, необязательные

 

 

особенности, аспекты производственной линии.

7.2Архитектурные решения SEI..

7.2Архитектурные решения SEI..

В Институте Программной Инженерии (SEI) *1+ разработан под$

 

ход к формированию архитектуры, исходящий из того, что для

 

конкретного ПО, кроме базовых «точек зрения», может

 

потребоватьсядополнительный набор видов. А значит,

 

архитектору должны бытьпредоставлены возможности создания

 

необходимых ему типовых видов, в частности «boxandline»

 

средства.Предлагается комплект средств выражения и методик

 

для такойработы. Но главный акцент предлагается направить на

 

работу с видами с позиций качества (рис. 27). Значения

 

характеристик качествадолжны оцениваться и, если значения не

 

соответствуют требованиям,то в построении архитектуры должен

 

происходить «возврат» к предшествующим шагам архитектурного

 

моделирования для внесениякоррекций в архитектуру или даже

 

для принятия новых архитектурных решений.Архитектурные

 

решения SEI согласованы со стандартом ИСО/

 

МЭК 9126. Особое внимание рекомендуется уделять

 

рассуждениям вгруппе разработчиков и документированию

 

решений.

 

 

 

7.3 Архитектурные стили. Архитектура, управляемая событиями

7.3 Архитектурные стили. Архитектура, управляемая событиями

(EDA)

(EDA)

Это концепция управления корпоративной информационной

Этот архитектурный стиль может применяться при разработке и

системой на основе событий, возникающих в бизнеспроцессе.

реализации приложений и систем, передающих события среди

Доступ к БД в EDA базируется на использовании

слабосвязанных программных компонентов и служб. Система,

централизованного способа обращения к распределенным базам

управляемая событиями, обычно содержит источники событий

данных. Все запросы клиентов поступают на вход SQL шлюза,

(или агентов)

который транслирует SQL запросы в унифицированный формат и

и потребителей событий (или стоков). Стоки ответственны за

перенаправляет их к серверам БД. Взаимодействие с ними

ответную реакцию, как только событие возникло. Реакция может

возможно как через набор общих API, так и через ODBC интерфейс

полностью или не полностью создаваться стоком. К примеру, сток

(рис. 8). Использование SQL шлюза обеспечивает доступ к данным

может отвечать лишь за фильтрацию, преобразование и доставку

в разнородных многозвенных системах, где множество

события другому компоненту, либо он может создать

приложений параллельно обращаются к источникам данных

собственную реакцию на это событие. Создание приложений и

различного формата.

систем в рамках архитектуры, управляемой событиями, позволяет

 

им быть сконструированными

 

способом, способствующим лучшей интерактивности, поскольку

 

системы, управляемые событиями, по структуре более

 

ориентированы на непредсказуемые и асинхронные окружения.

 

 

7.4Паттерн декоратор.

7.4Паттерн декоратор.

Назначение:

Участники:

Паттерн Decorator динамически добавляет новые обязанности

Interface (VisualComponent): определяет интерфейс для объектов,

объекту. Декораторы являются гибкой альтернативой

на которые могут быть динамически возложены дополнительные

порождениюподклассов для расширения

обязанности.

функциональности.Рекурсивно декорирует основной

CoreFunctionality (TextView): определяет объект, на который

объект.Паттерн Decorator использует схему «обертываем подарок,

возлагаются дополнительные обязанности.

кладем его в коробку, обертываем коробку»

Decorator — Декоратор: хранит ссылку на объект Component и

 

определяет интерфейс, соответствующий интерфейсу Component.

 

OptionalOne, OptionalTwo... (BorderDecorator, ScrollDecorator)

 

конкретный Декоратор: возлагает дополнительные обязанности

 

на компонент.

 

Преимущества:

 

большая гибкость, нежели у статического наследования.

 

Декоратор может добавлять и удалять обязанности во время

 

выполнения программы.

 

позволяет избежать перегруженных функциями классов

 

на верхних уровнях иерархии.

 

Декоратор разрешает добавлять новыеобязанности по мере

 

необходимости.

 

Недостатки:

 

Декоратор и его компонент не идентичны.

 

Декоратор действует как прозрачное обрамление. Но

 

декорированный компонентвсе же не идентичен исходному.

 

множество мелких объектов

 

 

6.1Приведите определение понятия «вид».

6.1Приведите определение понятия «вид».

Понятие «Вид. View» является родственным для «Видов»,

 

используемых в машиностроительном или строительном

 

черчении. Понятие «вид» в архитектурных описаниях ПО

 

соответствует «проекции ПО» на определенный интерес или

 

интересы. Для представления архитектурного вида используют, в

 

общем случае, совокупность концептуальных моделей и

 

документов, раскрывающих их содержание или дополняющих

 

содержание, выраженное в моделях. Архитектурные виды АС

 

принято визуализировать в форме, представленной на рис.

 

Виды в конкретной технологии разработки ПО могут быть

 

оформлены на определенном языке (например, на языке UML

 

и/или других языках описания архитектуры, Architecture

 

Description Language) и визуализированы в соответствии с

 

определенным набором правил: каждый вид соответствует

 

вполне определенной точке зрения (рис. 13); точка зрения

 

является образцом для конструирования видов, причем точка

 

зрения определяет правила не только для построения видов, но и

 

для их использования.

 

 

 

6.2 Лица заинтересованные в разработке

6.2 Лица заинтересованные в разработке

Стейкхолдерами могут быть:

пользователи (Users) обеспечивающие использование системы

*Те, кто активно вовлечен в проект и работает в нем (проектная

по назначению;

команда, спонсор, управляющий комитет, привлеченные

администраторы (Administrators) обеспечивающие

сторонние компании и другие исполнители и т.д.)

функционирование системы;

*Те, на чьи интересы может повлиять проект и кто будет

тестировщики (Testers) проверяющие корректность работы

пользоваться его результатами (заказчики, руководители

системы.

функциональных подразделений и их сотрудники, бизнес-

 

партнеры, клиенты, покупатели и т.д.)

 

*Те, кто в проект не вовлечен, но кто, в силу своего положения

 

или профессиональной деятельности, может на него влиять (топ-

 

менеджеры компании, владельцы и инвесторы, акционеры,

 

кредиторы, внешние и внутренние партнеры, регулирующие

 

государственные органы и т.д.)

 

Пр:

 

лица (Acquirers) приобретающие систему;

 

эксперты-консультанты (Assesors) проверяющие

 

целесообразность приобретения;

 

пропагандисты (Communicators) распространяющие сведения об

 

этом через документы и обучение;

 

разработчики (Developers) создающие систему;

 

сопровождающие (Mainteners) внедряющие, сопровождающие

 

и развивающие систему;

 

снабженцы (Suppliers) поставляющие «комплектующие части»;

 

6.3 Архитектурные стили. Сервис-ориентированная архитектура

6.3 Архитектурные стили. Сервис-ориентированная архитектура

(SOA)

(SOA)

 

Архитектура не привязана к какой-то определенной технологии.

 

Она может быть реализована с использованием широкого спектра

 

технологий, включая такие технологии как REST, RPC, DCOM,

 

CORBA или вебсервисы. SOA может быть реализована, используя

 

один из этих протоколов и, например, может использовать

 

дополнительно механизм файловой системы для обмена

 

данными.

 

Главное, что отличает SOA — это использование независимых

 

сервисов с четко определенными интерфейсами, которые для

 

выполнения своих задач могут быть вызваны неким стандартным

 

способом, при условии, что сервисы заранее ничего не знают о

 

приложении, которое их вызовет, а приложение не знает, каким

 

образом сервисы выполняют свою задачу.

 

SOA также может рассматриваться как стиль архитектуры

 

информационных систем, который позволяет создавать

 

приложения, построенные путем комбинации слабосвязанных и

 

взаимодействующих сервисов.

 

SOA может поддерживать интеграцию и консолидацию операций

 

в составе сложных систем, однако SOA не определяет и не

 

предоставляет методологий или фреймворков для

 

документирования сервисов.

 

 

6.4Паттерн Адаптер, обертка (структурирующий как классы, так и объекты)

Назначение:

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

Паттерн Adapter, представляющий собой программную обертку над существующими классами, преобразует их интерфейсы к виду, пригодному для последующего использования.

6.4Паттерн Адаптер, обертка (структурирующий как классы, так и объекты)

Участники:

Target (Shape) — целевой: определяет зависящий от предметной области интерфейс, которым пользуется Client.

Client (DrawingEditor) — клиент: вступает во взаимоотношения с объектами, удовлетворяющими интерфейсу Target.

Adaptee (Textview) — адаптируемый: определяет существующий интерфейс, который нуждается в адаптации.

Adapter (TextShape) — Адаптер: адаптирует интерфейс Adaptee к интерфейсу Target.

Достоинства паттерна Adapter

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

Недостатки паттерна Adapter

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

Соседние файлы в папке федоров