UML. Проектирование систем реального времени, параллельных и распределенных приложений
Покупка
Тематика:
Системы автоматического проектирования
Издательство:
ДМК Пресс
Автор:
Гома Хассан
Перевод:
Слинкин Алексей Александрович
Год издания: 2023
Кол-во страниц: 701
Дополнительно
Вид издания:
Практическое пособие
Уровень образования:
Дополнительное образование
ISBN: 978-5-89818-574-9
Артикул: 616005.03.99
Данная книга описывает процесс создания распределенных, параллельных систем и систем реального времени с точки зрения проектирования архитектуры системы. Подробно рассмотрены ключевые вопросы, возникающие в процессе разработки: управление временем отклика, синхронизация, актуальность и непротиворечивость данных. На многочисленных примерах автор показывает, как с помощью одной и той же универсальной нотации UML описать такие, казалось бы, далекие области, как автоматизированная банковская система, бортовой компьютер автомобиля и система управления лифтами в многоэтажном здании — без привязки к какой-либо программной или аппаратной платформе и языку программирования.
Издание будет чрезвычайно полезно аналитикам, менеджерам предприятий и информационных систем, руководителям и архитекторам проектов, а также программистам, которые имеют дело с приложениями UML: книга поможет изложить свои идеи так, чтобы можно было реализовать проект, практически не зная той предметной области, для которой пишется система.
- Полная коллекция по информатике и вычислительной технике
- ДМК Пресс. Информационные системы и технологии
- ДМК Пресс. ИТ-технологии для профессионалов
- Интермедиатор. Информационные системы и технологии (сводная)
- Интермедиатор. ИТ-технологии для профессионалов (сводная)
- Информационные системы для автоматизации производства
- Системы автоматического проектирования
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 09.03.01: Информатика и вычислительная техника
- 09.03.02: Информационные системы и технологии
- 09.03.03: Прикладная информатика
- 38.03.02: Менеджмент
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
UML Проектирование систем реального времени, параллельных и распределенных приложений Хассан Гома
Designing Concurrent, Distributed, and RealTime Applications with UML Hassan Gomaa Boston • San Francisco • New York • Toronto • Montreal London • Munich • Paris • Madrid Capetown • Sydney • Tokyo • Singapore • Mexico City
UML Проектирование систем реального времени, параллельных и распределенных приложений Серия «Объектноориентированные технологии в программировании» Москва, 2023 Хассан Гома 2-е издание, электронное
УДК 004.415.2 ББК 32.973.26-018.1 Г64 Г64 Гома, Хассан. UML. Проектирование систем реального времени, параллельных и распределенных приложений / Х. Гома ; пер. с англ. А. А. Слинкина. — 2-е изд., эл. — 1 файл pdf : 700 с. — Москва : ДМК Пресс, 2023. — (Объектно-ориентированные технологии в программировании). — Систем. требования: Adobe Reader XI либо Adobe Digital Editions 4.5 ; экран 10". — Текст : электронный. ISBN 978-5-89818-574-9 Данная книга описывает процесс создания распределенных, параллельных систем и систем реального времени с точки зрения проектирования архитектуры системы. Подробно рассмотрены ключевые вопросы, возникающие в процессе разработки: управление временем отклика, синхронизация, актуальность и непротиворечивость данных. На многочисленных примерах автор показывает, как с помощью одной и той же универсальной нотации UML описать такие, казалось бы, далекие области, как автоматизированная банковская система, бортовой компьютер автомобиля и система управления лифтами в многоэтажном здании — без привязки к какой-либо программной или аппаратной платформе и языку программирования. Издание будет чрезвычайно полезно аналитикам, менеджерам предприятий и информационных систем, руководителям и архитекторам проектов, а также программистам, которые имеют дело с приложениями UML: книга поможет изложить свои идеи так, чтобы можно было реализовать проект, практически не зная той предметной области, для которой пишется система. УДК 004.415.2 ББК 32.973.26-018.1 Электронное издание на основе печатного издания: UML. Проектирование систем реального времени, параллельных и распределенных приложений / Х. Гома ; пер. с англ. А. А. Слинкина. — Москва : ДМК Пресс, 2016. — 700 с. — (Объектно-ориентированные технологии в программировании). — ISBN 978-5-97060-220-1. — Текст : непосредственный. Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство не может гарантировать абсолютную точность и правильность приводимых сведений. В связи с этим издательство не несет ответственности за возможные ошибки, связанные с использованием книги. В соответствии со ст. 1299 и 1301 ГК РФ при устранении ограничений, установленных техническими средствами защиты авторских прав, правообладатель вправе требовать от нарушителя возмещения убытков или выплаты компенсации. ISBN 978-5-89818-574-9 © by Hassan Gomaa © Перевод на русский язык, оформление ДМК Пресс
Содержание Предисловие ..................................................................................... 25 ЧАСТЬ I. Нотация UML, концепции проектирования, технологии, жизненные циклы и методы ...... 35 Глава 1. Введение ........................................................................... 36 1.1. Объектноориентированные методы и UML ........................... 37 1.2. Метод и нотация ........................................................................ 38 1.3. Параллельные приложения ...................................................... 38 1.3.1. Последовательные и параллельные программы .......................... 39 1.3.2. Последовательные и параллельные приложения ......................... 39 1.3.3. Параллельные задачи .............................................................. 40 1.4. Системы и приложения реального времени ........................... 40 1.5. Распределенные системы и приложения ............................... 42 1.6. Резюме ....................................................................................... 43 Глава 2. Обзор нотации UML ....................................................... 44 2.1. Диаграммы UML ........................................................................ 44 2.2. Диаграммы прецедентов .......................................................... 45 2.3. Нотация UML для классов и объектов ..................................... 45 2.4. Диаграммы классов ............................................................ 46 2.5. Диаграммы взаимодействия ............................................... 47 2.5.1. Диаграммы кооперации ........................................................... 47 2.5.2. Диаграммы последовательности ............................................... 48 2.6. Диаграммы состояний .............................................................. 48 2.7. Пакеты ........................................................................................ 50 2.8. Диаграммы параллельной кооперации ................................... 51 2.8.1. Обмен сообщениями на диаграммах параллельной кооперации .... 51 2.9. Диаграммы развертывания ...................................................... 51 2.10. Механизмы расширения UML ................................................ 53
UML. Проектирование систем 2.11. UML как стандарт ..................................................................... 54 2.12. Резюме ..................................................................................... 55 Глава 3. Концепции проектирования ПО и архитектуры ........................................................... 56 3.1. Объектноориентированные концепции ................................. 56 3.1.1. Основные концепции ............................................................... 56 3.1.2. Объекты и классы .................................................................... 57 3.2. Сокрытие информации ........................................................ 58 3.2.1. Сокрытие информации в объектноориентированном проектировании ........................... 59 3.2.2. Сокрытие информации в применении к внутренним структурам данных ..............................59 3.2.3. Сокрытие информации при проектировании интерфейса с устройствами ввода/вывода ................................................... 62 3.2.4. Проектирование объектов, скрывающих информацию ................. 63 3.3. Наследование ............................................................................ 64 3.4. Активные и пассивные объекты ............................................... 65 3.5. Параллельная обработка .......................................................... 66 3.5.1. Преимущества параллельного выполнения задач ........................ 66 3.5.2. Тяжеловесные и облегченные процессы ..................................... 67 3.6. Кооперация между параллельными задачами ....................... 68 3.6.1. Проблема взаимного исключения .............................................. 68 3.6.2. Пример взаимного исключения ................................................. 69 3.6.3. Проблема синхронизации задач ................................................ 70 3.6.4. Пример синхронизации задач ................................................... 70 3.6.5. Проблема производителя/потребителя ...................................... 72 3.6.6. Слабо связанный обмен сообщениями ....................................... 73 3.6.7. Сильно связанный обмен сообщениями с ответом ....................... 74 3.6.8. Сильно связанный обмен сообщениями без ответа ...................... 74 3.6.9. Пример обмена сообщениями между производителем и потребителем ..................................... 75 3.7. Сокрытие информации в применении к синхронизации доступа ................................. 76 3.7.1. Классы и объекты, скрывающие информацию ............................. 76 3.8. Мониторы ................................................................................... 77 3.8.1. Пример монитора .................................................................... 77 3.8.2. Условная синхронизация .......................................................... 78 3.9. Шаблоны проектирования ........................................................ 79
Содержание 3.10. Программные архитектуры и компонентные системы ........ 80 3.10.1. Компоненты и разъемы .......................................................... 81 3.10.2. Компонентные системы .......................................................... 81 3.11. Резюме ..................................................................................... 81 Глава 4. Технологии параллельных и распределенных систем ............ 83 4.1. Среды для параллельной обработки ....................................... 83 4.1.1. Мультипрограммная среда ....................................................... 83 4.1.2. Симметричная мультипроцессорная среда ................................. 83 4.1.3. Распределенная среда ............................................................. 84 4.2. Поддержка исполнения в мультипрограммной и мультипроцессорной средах .......... 85 4.2.1. Сервисы операционной системы ............................................... 85 4.2.2. Стандарт POSIX ....................................................................... 86 4.2.3. Операционные системы реального времени ............................... 87 4.3. Планирование задач ................................................................. 88 4.3.1. Алгоритмы планирования задач ................................................ 88 4.3.2. Состояния задач ..................................................................... 89 4.3.3. Контекстное переключение задач .............................................. 90 4.4. Вопросы ввода/вывода в операционной системе ................. 90 4.4.1. Контроллеры устройств ........................................................... 90 4.4.2. Обработка прерываний ............................................................ 91 4.4.3. Ввод/вывод с опросом ............................................................. 92 4.5. Технологии клиентсерверных и распределенных систем ... 93 4.5.1. Конфигурации клиентсерверных и распределенных систем ......... 93 4.5.2. Коммуникационные сетевые протоколы ..................................... 95 4.6. Технология World Wide Web ...................................................... 97 4.6.1. Язык Java и World Wide Web ...................................................... 98 4.7. Сервисы распределенных операционных систем ................. 98 4.7.1. Служба имен ........................................................................... 99 4.7.2. Связывание клиентов и серверов .............................................. 99 4.7.3. Сервисы распределенного обмена сообщениями ...................... 100 4.7.4. Сервисы сокетов ................................................................... 101 4.7.5. Обмен сообщениями через порты ........................................... 101 4.7.6. Восстановление после ошибок ................................................ 101 4.8. ПО промежуточного слоя ........................................................ 102 4.8.1. Платформы для распределенных вычислений ........................... 102 4.8.2. Вызовы удаленных процедур .................................................. 102 4.8.3. Вызов удаленных методов в языке Java .................................... 104
UML. Проектирование систем 4.9. Стандарт CORBA ...................................................................... 104 4.9.1. Брокер объектных запросов .................................................... 104 4.9.2. Язык определения интерфейса в CORBA .................................. 105 4.9.3. Статическое и динамическое связывание ................................. 106 4.9.4. Сервисы CORBA .................................................................... 107 4.9.5. Интеграция унаследованных приложений в каркас распределенных объектов .......................................... 107 4.10. Другие компонентные технологии ....................................... 108 4.10.1. Технология COM .................................................................. 108 4.10.2. Технология JavaBeans .......................................................... 108 4.10.3. Технология Jini .................................................................... 108 4.11. Системы обработки транзакций .......................................... 109 4.11.1. Характеристики транзакций .................................................. 109 4.11.2. Мониторы обработки транзакций .......................................... 110 4.12. Резюме ................................................................................... 111 Глава 5. Жизненные циклы и методы разработки программного обеспечения ..................................... 112 5.1. Определение жизненного цикла ПО ...................................... 112 5.1.1. Модель водопада .................................................................. 112 5.1.2. Недостатки модели водопада ................................................. 113 5.1.3. Временные прототипы ........................................................... 114 5.1.4. Создание эволюционирующих прототипов в ходе инкрементной разработки ............................................. 115 5.1.5. Комбинирование временных прототипов и инкрементной разработки .................................................... 116 5.1.6. Спиральная модель ............................................................... 117 5.1.7. Унифицированный процесс разработки ПО .............................. 118 5.2. Верификация и утверждение проекта ................................... 118 5.2.1. Контроль качества ПО ............................................................ 119 5.2.2. Анализ производительности ................................................... 119 5.3. Тестирование программного обеспечения .......................... 119 5.3.1. Автономное тестирование ...................................................... 120 5.3.2. Тестирование сопряжений ...................................................... 120 5.3.3. Комплексное тестирование .................................................... 120 5.3.4. Приемосдаточные испытания ................................................ 121 5.4. Эволюция методов проектирования ПО ............................... 121 5.5. Эволюция методов объектноориентированного анализа и проектирования ..... 123
Содержание 5.6. Обзор современных методов проектирования параллельных систем и систем реального времени ........... 125 5.7. Резюме ..................................................................................... 126 ЧАСТЬ II. COMET – метод архитектурного проектирования и моделирования параллельных объектов с применением UML ............................................. 127 Глава 6. Введение в метод COMET ......................................... 128 6.1. Жизненный цикл разработки объектноориентированного ПО в методе COMET .............. 128 6.1.1. Моделирование требований ................................................... 128 6.1.2. Аналитическое моделирование ............................................... 128 6.1.3. Проектное моделирование ..................................................... 129 6.1.4. Инкрементное конструирование ПО ......................................... 130 6.1.5. Инкрементная интеграция ПО ................................................. 130 6.1.6. Комплексное тестирование .................................................... 130 6.2. Сравнение жизненного цикла COMET с другими процессами разработки ПО .................................. 131 6.2.1. Сравнение жизненного цикла COMET с USDP ........................... 131 6.2.2. Сравнение жизненного цикла COMET со спиральной моделью .... 131 6.3. Модель требований, аналитическая и проектная модели ... 131 6.3.1. Виды деятельности при моделировании требований .................. 132 6.3.2. Виды деятельности при аналитическом моделировании ............. 132 6.3.3. Виды деятельности при проектном моделировании ................... 133 6.4. Основы COMET ....................................................................... 134 6.4.1. Разработка модели требований .............................................. 134 6.4.2. Разработка аналитической модели .......................................... 134 6.4.3. Разработка проектной модели ................................................ 135 6.5. Резюме ..................................................................................... 137 Глава 7. Моделирование прецедентов ................................. 138 7.1. Прецеденты .............................................................................. 138 7.2. Актеры ...................................................................................... 139 7.3. Актеры, роли и пользователи ................................................. 141 7.4. Выявление прецедентов ......................................................... 141
UML. Проектирование систем 7.5. Документирование прецедентов в модели прецедентов .... 142 7.6. Примеры прецедентов ............................................................ 143 7.6.1. Прецедент «Снять Деньги» ...................................................... 143 7.6.2. Прецедент «Получить Справку» ............................................... 145 7.6.3. Прецедент «Перевести Деньги» ............................................... 146 7.7. Отношения прецедентов ........................................................ 147 7.7.1. Отношение расширения ......................................................... 147 7.7.2. Отношение включения ........................................................... 149 7.7.3. Некоторые рекомендации ...................................................... 150 7.8. Пакеты прецедентов ............................................................... 150 7.9. Резюме ..................................................................................... 151 Глава 8. Статическое моделирование ................................... 152 8.1. Ассоциации между классами ................................................. 152 8.1.1. Изображение ассоциаций на диаграммах классов ..................... 153 8.1.2. Кратность ассоциаций ........................................................... 153 8.1.3. Другие ассоциации ................................................................ 155 8.1.4. Атрибуты связи ..................................................................... 155 8.1.5. Классыассоциации ............................................................... 156 8.2. Иерархии композиции и агрегирования ............................... 157 8.3. Иерархия обобщения/специализации .................................. 159 8.4. Ограничения ............................................................................ 160 8.5. Статическое моделирование и язык UML ............................. 160 8.5.1. Статическое моделирование предметной области ..................... 161 8.6. Статическое моделирование контекста системы ................ 162 8.6.1. Внешние классы .................................................................... 163 8.6.2. Пример разработки диаграммы классов контекста системы с внешними классами ............................................................ 164 8.6.3. Актеры и внешние классы ....................................................... 165 8.6.4. Пример разработки диаграммы классов контекста системы на основе рассмотрения актеров ............................................. 165 8.7. Статическое моделирование сущностных классов ............. 166 8.8. Резюме ..................................................................................... 167 Глава 9. Разбиение на классы и объекты ............................. 168 9.1. Критерии разбиения на объекты ........................................... 168 9.2. Категории классов приложения ............................................. 169 9.3. Структурирование категорий объектов ................................ 170 9.4. Внешние и интерфейсные классы ......................................... 171 9.4.1. Категории внешних классов .................................................... 171 9.4.2. Идентификация интерфейсных классов .................................... 172