Пример: индексатор – архитектуры
• |
Архитектура I |
|
Текст |
|
Множество |
|
Упоряд. |
|
Выделение |
|
страницы |
Разбиение на |
слов |
|
множество |
|
очередной |
|
|
|
Сортировка |
||
|
|
|
слова |
|
|||
|
страницы |
П |
|
|
|
|
|
|
|
|
|
|
|
||
|
|
|
Номер |
|
|
|
|
|
|
|
страницы |
|
|
|
|
|
|
|
Конец |
|
|
|
Вывод |
• |
Архитектура II |
|
документа |
|
|
|
|
|
|
|
|
|
|||
|
|
|
|
|
|
||
|
|
|
|
Текущее |
|
|
|
|
Обработка |
|
|
слово |
|
|
|
|
|
|
|
|
|
|
|
|
символа |
П |
Конец |
|
Вставка |
Индекс - |
|
|
|
слова |
|
отображение |
|||
|
|
|
|
||||
|
|
|
|
|
|
||
Номер
страницы
Конец
Вывод
документа
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
Вставка
ПП
Индекс - отображение
11
Пример: индексатор – сценарии
a.Поддержка нескольких языков
b.Устранение предлогов, союзов, частиц и пр.
c.Поддержка изменяемых частей речи
d.Распараллеливание
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
12 |
Пример: индексатор – оценка
a.Поддержка нескольких языков
•Если языки с разными алфавитами, то ничего делать не надо
•Если языки с одним алфавитом, нужна разметка документа используемыми языками
•I : 4m
•II : 4m
b.Устранение предлогов, союзов, частиц и пр.
•I : A – добавить для множества слов фильтр, отсекающий лишнее
•II : Am – добавить фильтр перед вставкой, модифицировать вставку
c.Поддержка изменяемых частей речи
•I : A – добавить приведение слов в «нормальную форму» для множества
•II : Am – добавить приведение слов в «нормальную форму» перед вставкой, модифицировать вставку
d.Распараллеливание
a.I : AM – вместо выделения страницы сделать разрезание на страницы, разбиение и сортировку размножить, добавить общее управление вставкой и выводом
b.II : AmM – перед обработкой символа добавить разрезание на страницы и управление, обработка упрощается, заменить индекс на обновляемый параллельно
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
13 |
Описание архитектуры
•Для многих случаев хватает нескольких видов прямоугольников со стрелками
•Для более сложных и общих ситуаций – Unified Modeling Language, UML
•9 видов диаграмм, один – use cases – не архитектурный
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
14 |
Архитектурные диаграммы UML
•Статические – описывают неизменные элементы или фиксированное состояние
•Диаграммы классов
•Диаграммы объектов
•Диаграммы компонентов
•Диаграммы развертывания
•Динамические – описывают возможные изменения
•Диаграммы сценариев
•Диаграммы взаимодействия
•Диаграммы деятельностей
•Диаграммы состояний и переходов
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
15 |
UML: диаграммы классов
•Классы
•Интерфейсы Имя Атрибуты
Операции
•Связи
•Ассоциации
•Композиция – строгая
•Ссылочные связи
•Связи-отображения
•Наследование/обобщение
•Зависимость
Множественность связей
•Пакеты
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
16 |
UML: диаграммы объектов
•Объекты
•Множественность
•Класс
•Имя
•Связи
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
17 |
UML: компоненты и развертывание
•Диаграммы компонентов
•Компоненты
•Имя
•Реализуемые интерфейсы
•Пакеты
•Зависимости
•Диаграммы развертывания
•Узлы/машины
•Размещаемые компоненты
•Устройства
•Физические соединения
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
18 |
UML: сценарии и взаимодействия
•Диаграммы сценариев
•Участники – компоненты, объекты, агенты
•Обмен сообщениями
•Время жизни
•Общие состояния
|
aClient : |
|
|
AccountManager |
|
anAccount : Account |
|
Client |
|
|
|
|
|
Операто |
|
|
|
|
||
|
|
|
|
|
|
|
р |
|
|
|
|
|
|
new Client()

createAccount (aClient) addAccount() 

new Account()
deposit()
•Диаграммы взаимодействия
•Участники
•Связи
•Обмен сообщениями
|
|
|
|
|
|
aClient : |
|
|
|
|
|
|
|
|
|
|
|
1. new |
|
|
Client |
|
|
|
|
|
|
|
|
||
|
|
Client() |
2.1.1. new |
||||
|
|
|
|
||||
|
|
3. |
Account() |
||||
|
|
|
|
|
|
||
|
anAccount : Account |
|
|
|
|||
|
|
|
|
|
|
|
|
|
|
|
deposit() |
|
|
|
|
|
|
|
|
2.1. |
|
||
Операто |
|
|
addAccount() |
||||
р2. createAccount (aClient)
AccountManager
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
19 |
UML: диаграммы деятельности
•Дорожки (параллельные деятельности)
•Деятельности
•Переходы
•Развилки/слияния
•Условия
•Иногда: потоки данных
Кулямин В.В. ФКН ВШЭ, ПИ / ВМК МГУ |
Основы инженерии программного обеспечения |
20 |
