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

Презентации / Lecture08p

.pdf
Скачиваний:
0
Добавлен:
23.06.2026
Размер:
1.12 Mб
Скачать

Конвейер – разновидности

• Пакетная обработка (batch processing)

F1 F2 F3 F4 F5

• Замкнутый цикл управления (closed-loop control)

F2 F5 F6

F1 F3

F4 F7

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

11

Конвейер – варианты работы компонентов

• Фильтры

Filter 1

 

 

 

send

• Проталкивающие (push)

 

 

 

 

data

 

 

 

 

 

 

 

 

Вытягивающие (pull)

Синхронизующие каналы для разнотипных фильтров

Filter 2

 

Filter 3

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

process

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

send

 

 

 

 

Filter 1

 

 

Filter 2

 

 

Filter 3

 

 

 

 

 

 

 

 

 

 

 

data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

get data

 

 

 

 

get data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

process

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Filter 1

 

Pipe

 

 

Filter 2

 

 

 

 

 

process

 

 

 

 

read

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data

 

 

 

 

data

 

 

 

 

 

 

 

 

write

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

process

 

 

 

 

 

 

 

 

 

 

process

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

write

 

 

 

 

read

 

 

 

data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

data

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

12

Хранилище – разновидности

• Репозиторий

 

 

T

 

• Выделяются такие типы компонентов

 

 

 

 

 

I

 

R

O

 

 

Репозиторий – хранилище данных

Обработчики – получатели данных

Обработчики – потребители данных

Обработчики – преобразователи данных

Порядок работы обработчиков определен некоторой процедурой (и ее параметрами), не зависит от текущего состояния репозитория

Классная доска

Включение/выключение обработчиков зависит от шаблонов данных в репозитории

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

13

Интерактивные системы – разновидности

• Model-View-Controller

C

Компоненты делятся на три вида

M

V

 

• Модель/данные – хранит определенный набор данных

 

 

 

• Вид/представление – реализует определенное представление данных в UI

 

• Контроллер – реализует команды по модификации данных и связанного

представления

• Возможно «слипание» VC – Document-View

• Presentation-Abstraction-Control

• Компоненты MVC для одного представления объединяются в один агент, его внешний интерфейс совпадает с контроллером

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

14

Интерпретатор

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

Выделяются компоненты

Набор правил/программа (rules)

Входные данные/текущее состояние программы (data)

Состояние интерпретатора (interpreter state)

Интерпретатор/движок (engine)

D R

E S

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

15

Образцы анализа

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

Используются чаще в ОО моделях предметных областей

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

16

Пример образца анализа – наблюдения

Object

PhenomType

Области использования

Научные наблюдения

Медицина

Финансы

Observation Time

from

TimePnt Interval to

CatObservtn Measurement Quantity Number

Phenomenon

 

 

 

 

 

to

 

 

 

 

 

Unit

 

Convert

 

 

 

 

 

 

 

 

 

 

from

 

 

 

 

 

 

 

 

 

 

 

 

direct

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

PrimeUn

CompUn

inverse

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

17

Образцы проектирования

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

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

18

Пример – подписчик-издатель (наблюдатель)

Publisher-subscriber, observer, listener, dependents

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

 

 

observers

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Publisher

AbsSubscriber

 

 

Publisher

 

 

Subscriber1

 

 

Subscriber1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

attach(..)

 

 

update()

 

 

 

 

 

 

 

notify()

 

 

 

 

 

 

 

 

 

detach(..)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

notify()

 

 

 

 

 

 

 

 

 

 

O

 

update()

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Subscriber1

 

Subscriber2

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

update()

 

 

 

 

 

 

 

 

При большом количестве издателей и

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

O

 

 

 

 

get_data()

O

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

change manager

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

19

Идиомы

Типовые решения по организации кода в рамках отдельных компонентов или двух-трех тесно связанных компонентов

Зависят от используемого языка или группы языков

Часто превращаются в синтаксические конструкции при развитии языков

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

Свойства и обработчики событий как специальные методы

Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ

Основы инженерии программного обеспечения

20

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