- Артикул:00-01015192
- Автор: Назаров С.В.
- ISBN: 978-5-16-011753-9
- Обложка: Твердый переплет
- Издательство: Инфра-М (все книги издательства)
- Город: Москва
- Страниц: 374
- Формат: 60х90/16
- Год: 2023
- Вес: 543 г
- Научная мысль
В монографии рассматриваются технологии и проблемы создания больших программных систем, их архитектуры и жизненного цикла. Основное внимание обращено на разработку и анализ требований, определение спецификаций, методы и средства проектирования архитектуры программных систем. Уделено значительное внимание рефакторингу программных систем, в том числе архитектурному рефакторингу.
Для аспирантов, преподавателей технических вузов и специалистов, занимающихся разработкой программных систем.
Содержание
Предисловие
Введение
Глава 1. Проблемы создания больших программных систем
1.1. Особенности разработки сложных (больших) программных систем
1.2. Проблемы создания ПС
1.3. Кризис программирования. Инженерный подход к разработке ПС
1.4. Становление и развитие программной инженерии
1.5. Развитие технологий программирования
Литература к главе 1
Глава 2. Архитектуры программных систем
2.1. Понятие архитектуры программной системы
2.2. Почему важна архитектура
2.3. Как появляется архитектура. Кто и что влияет на архитектуру
2.4. Архитектурные образцы, эталонные модели и эталонные варианты архитектуры
2.5. Что определяет и на что влияет выбранная архитектура
2.6. Архитектурные структуры и представления
2.7. Отношения между структурами
2.8. Варианты архитектур программных систем
2.8.1. Архитектура, основанная на уровнях абстракций
2.8.2. Архитектуры, основанные на портах
2.8.3. Архитектуры, основанные на потоках данных
2.8.4. Архитектуры независимых компонентов
2.8.5. Сервис-ориентированные архитектуры (SOA)
2.9. Архитектурные представления программных систем
2.9.1. Архитектурный вид - структура многослойной программной системы
2.9.2. Архитектурный вид - размещение программной системы
2.9.3. Архитектурный вид - размещение программной системы, основанной на потоках данных
2.9.4. Архитектурный вид - распределение работ по группам разработчиков
Литература к главе 2
Глава 3. Жизненный цикл программных систем
3.1. Понятие жизненного цикла программных систем
3.2. Основные процессы ЖЦ ПС
3.3. Вспомогательные процессы ЖЦ ПО
3.4. Организационные процессы ЖЦ ПС
3.5. Взаимосвязь между процессами ЖЦ ПС
3.6. Модели и стадии ЖЦ ПС
3.7. Виды моделей ЖЦ ПС и технологии создания программных систем
3.7.1. Каскадная модель (классический жизненный цикл)
3.7.2. Итерационная модель ЖЦ ПС
3.7.3. Макетирование
3.7.4. Стратегии конструирования ПС
3.7.5. Инкрементная модель
3.7.6. Спиральная модель ЖЦ ПО
3.7.7. Рациональный унифицированный процесс
3.7.8. Scrum-методология
3.7.9. Agile-методологии
3.7.10. Управление жизненным циклом приложений
Литература к главе 3
Глава 4. Проектирование программных систем. Определение требований и целей программного продукта
4.1. Процесс проектирования как последовательная трансляция требований, предъявляемых к системе
4.2. Методология решения задач проектирования ПС по Г. Майерсу
4.3. Уровни требований к программным системам
4.4. Определение требований к программным системам
4.4.1. Постановка задачи и принципы разработки требований
4.4.2. Бизнес-моделирование
4.4.3. Определение функциональных требований
4.4.4. Определение нефункциональных (эксплуатационных) требований
4.5. Анализ и управление требованиями
4.6. Требования и риски
4.7. Проверка правильности требований
4.8. Цели программного продукта
4.9. Постановка целей для программной системы
4.9.1. Цели продукта
4.9.2. Цели проекта
Литература к главе 4
Глава 5. Разработка предварительного внешнего проекта
5.1. Представление и анализ требований
5.1.1. Требования в V-модели Халла
5.1.2. Моделирование в определении требований и спецификаций
5.1.3. Разработка программных систем, управляемая моделями.
5.2. Анализ требований и определение спецификаций. Структурный подход
5.2.1. Спецификации
5.2.2. Структурный подход представления спецификаций
5.2.3. Метод функционального моделирования
5.2.4. Диаграммы потоков данных
5.2.5. Диаграммы переходов состояний
5.3. Анализ требований и определение спецификаций при объектном подходе
5.3.1. Общие сведения о языке UML как языке моделирования сложных систем
5.3.2. Определение прецедентов использования
5.3.3. Концептуальная модель предметной области
5.3.4. Описание поведения системы
5.4. Разработка предварительного внешнего проекта
5.4.1. Процесс внешнего проектирования
5.4.2. Проектирование взаимодействия с пользователем
5.4.3. Подготовка внешних спецификаций
5.4.4. Проверка правильности внешних спецификаций
Литература к главе 5
Глава 6. Проектирование архитектуры программных систем
6.1. Методология проектирования
6.2. Модульность
6.2.1. Модули, модульно-интерфейсный подход, модульное программирование
6.2.2. Обоснование модульности
6.2.3. Внутренняя характеристика модуля - связность (прочность)
6.2.4. Сцепление модулей - внешняя характеристика модуля
6.3. Сложность программной системы
6.3.1. Методы оценки сложности
6.3.2. Оценка сложности на основе связности и сцепления модулей
6.4. Представление архитектуры программных систем
6.4.1. Модульно-интерфейсный подход
6.4.2. Объектно-ориентированный поход
6.4.3. Компонентный подход
6.5. Слои программного продукта
6.6. Методы структурного проектирования
6.6.1. Метод восходящей разработки («снизу вверх»)
6.6.2. Метод нисходящей разработки («сверху вниз»)
6.6.3. Заключительные замечания по структурному проектированию
6.7. Формальное описание методики разработки модульной архитектуры программной системы
6.7.1. Проектирование «сверху вниз»
6.7.2. Проектирование «снизу вверх»
6.7.3. Еще раз о проектировании архитектуры ПС на основе объектно ориентированной и компонентной методологии
Литература к главе 6
Глава 7. Рефакторинг программных систем
7.1. Что такое рефакторинг
7.2. Рефакторинг, проектирование и производительность программ
7.3. Когда применять рефакторинг
7.4. Уровни рефакторинга
7.5. Методы рефакторинга
7.5.1. Основные методы
7.5.2. Формализация процесса рефакторинга на основе символьной записи структуры классов
7.6. Архитектурный рефакторинг
7.6.1. Когда нужен архитектурный рефакторинг
7.6.2. Построение архитектуры ПС по ее программному коду
7.6.3. Рефакторинг архитектуры многослойной иерархической ПС
7.6.4. Слои в архитектуре ПС. Паттерн выделения слоев
7.7. Архитектурный рефакторинг для повышения производительности многослойных программных систем
7.7.1. Возможный подход к созданию программных систем
7.7.2. Представление созданной архитектуры ПС
7.7.3. Анализ на соответствие послойной архитектуре (выделение слоев)
7.7.4. Коррекция (трансформация) архитектуры в интересах ее рефакторинга
7.7.5. Рефакторинг архитектуры в интересах повышения производительности ПС
Литература к главе 7