Монография / С. В. Назаров. М.: Ниц инфра-м, 2014. 351 с.: 60x88 1/16 + ( Доп мат znanium com). - umotnas.ru o_O
Главная
Поиск по ключевым словам:
страница 1
Похожие работы
Название работы Кол-во страниц Размер
Экономическая теория: Учебник / Р. А. Бурганов. М.: Ниц инфра-М,... 1 169.71kb.
Монография / Б. Б. Логинов, А. О. Руднева. М.: Ниц инфра-М, 2014. 1 37.27kb.
Монография / О. Н. Жданов. М.: Ниц инфра-м, 2015. 88 с.: 60x88 1/16. 1 20.82kb.
В. М. Аникин 3 изд., перераб и доп. М.: Ниц инфра-м, 2014. 128 с. 1 23.93kb.
Монография / Э. Н. Кузьбожев, О. В. Шугаева. М.: Ниц инфра-М, 2014. 1 15.33kb.
Учебное пособие / П. П. Ковалев. 2-e изд., перераб и доп. М. 1 47.05kb.
Менеджмент организации: теория, история, практика: Учебное пособие... 1 74.63kb.
Монография / И. А. Савченко. М.: Иц риор: инфра-м, 2015. 201 с. 1 15.28kb.
Компьютерные сети: Учебное пособие для студ учреждений спо/ Н. 1 67.94kb.
Монография / Г. А. Поташева. М.: Инфра-м, 2014. 160 с.: 60x88 1/16. 1 33.68kb.
Монография / Ю. М. Антонян. М.: Норма: ниц инфра-М, 2013. 224 с. 1 19.49kb.
Лекции читаются по пятницам в 16: 20 в аудитории №64 1 13.12kb.
Викторина для любознательных: «Занимательная биология» 1 9.92kb.

Монография / С. В. Назаров. М.: Ниц инфра-м, 2014. 351 с.: 60x88 1/16 + ( Доп мат - страница №1/1

Архитектура и проектирование программных систем: Монография / С.В. Назаров. - М.: НИЦ ИНФРА-М, 2014. - 351 с.: 60x88 1/16 + ( Доп. мат. znanium.com). - (Научная мысль; Информатика). (обложка)

ISBN 978-5-16-005735-4

DOI 10.12737/695

В монографии рассматриваются технологии и проблемы создания больших программных систем, их архитектура и жизненный цикл. Основное внимание обращено на разработку и анализ требований, определение спецификаций, методы и средства проектирования архитектуры программных систем и технико-экономический анализ проектов. Уделено значительное внимание рефакторингу программных систем, в том числе архитектурному рефакторингу.

Для аспирантов, преподавателей технических вузов и специалистов, занимающихся разработкой программных систем.
Глава 1. Введение. Проблемы создания больших программных систем 7

1.1. Особенности разработки сложных (больших) программных систем 7

1.2. Проблемы создания ПС 11

1.3. Кризис программирования. Инженерный подход

к разработке ПС 14

1.4. Становление и развитие программной

инженерии 15

1.5. Развитие технологий программирования 19

1.6. Индустрия программного обеспечения 28

1.7. Современное состояние ИТ-индустрии

в России 34

Глава 2. Архитектуры программных систем 41

2.1. Понятие архитектуры программной системы 41

2.2. Почему важна архитектура 45

2.3. Как появляется архитектура. Кто и что влияет

на архитектуру 47

2.4. Архитектурные образцы, эталонные модели

и эталонные варианты архитектуры 49

2.5. Что определяет и на что влияет выбранная

архитектура 51

2.6. Архитектурные структуры и представления 60

2.7. Отношения между структурами 64

2.8. Варианты архитектур программных систем 65

2.8.1. Архитектура, основанная на уровнях

абстракций 66

2.8.2. Архитектуры, основанные на портах 72

2.8.3. Архитектуры, основанные на потоках данных 74

2.8.4. Архитектуры независимых компонентов 75

2.8.5. Сервис-ориентированные архитектуры (SOA) 77

Глава 3. Жизненный цикл программных систем 82

3.1. Понятие жизненного цикла программных систем 82

3.2. Основные процессы ЖЦ ПС 83

3.3. Вспомогательные процессы ЖЦ ПО 88

3.4. Организационные процессы ЖЦ ПС 91

3.5. Взаимосвязь между процессами ЖЦ ПС 92

3.6. Модели и стадии ЖЦ ПС 93

3.7. Виды моделей ЖЦ ПС и технологии создания программных систем 97

3.7.1. Каскадная модель (классический жизненный цикл) 97

3.7.2. Итерационная модель ЖЦ ПС 98

3.7.3. Макетирование 100

3.7.4. Стратегии конструирования ПС 102

3.7.5. Инкрементная модель 102

3.7.6. Спиральная модель ЖЦ ПО 103

3.7.7. Рациональный унифицированный процесс 105

3.7.8. SCRAM-методология 110

3.7.9. Agile-методологии 116

3.7.10. Управление жизненным циклом приложений. Интегрированная среда поддержки создания программных систем 124

Глава 4. Проектирование программных систем.

Определение требований и целей программного продукта 137

4.1. Процесс проектирования как последовательная трансляция требований, предъявляемых к системе 137

4.2. Методология решения задач проектирования ПС

по Г. Майерсу 142

4.3. Уровни требований к программным системам 145

4.4. Определение требований к программным системам 148

4.4.1. Постановка задачи и принципы разработки требований 148

4.4.2. Бизнес-моделирование 154

4.4.3. Определение функциональных требований 160

4.4.4. Определение нефункциональных (эксплуатационных) требований 163

4.5. Анализ и управление требованиями 164

4.6. Требования и риски 170

4.7. Проверка правильности требований 175

4.8. Цели программного продукта 177

4.9. Постановка целей для программной системы 182

4.9.1. Цели продукта 182

4.9.2. Цели проекта 183

Глава 5. Разработка предварительного внешнего проекта 187

5.1. Представление и анализ требований 187

5.1.1. Требования в V-модели Халла 187

5.1.2. Моделирование в определении требований

и спецификаций 189

5.1.3. Разработка программных систем, управляемая моделями 191

5.2. Анализ требований и определение спецификаций. Структурный подход 194

5.2.1. Спецификации 194

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. Разработка предварительного внешнего проекта 199

5.4.1. Процесс внешнего проектирования 199

5.4.2. Проектирование взаимодействия с пользователем 201

5.4.3. Подготовка внешних спецификаций 204

5.4.4. Проверка правильности внешних спецификаций 208

Глава 6. Проектирование архитектуры программных

Систем 213

6.1. Методология проектирования 213

6.2. Модульность 216

6.2.1. Модули, модульно-интерфейсный подход, модульное программирование 216

6.2.2. Обоснование модульности 218

6.2.3. Внутренняя характеристика модуля - связность (прочность) 220

6.2.4. Сцепление модулей - внешняя характеристика модуля 226

6.3. Сложность программной системы 228

6.3.1. Методы оценки сложности 228

6.3.2. Оценка сложности на основе связности и сцепления модулей 233

6.4. Представление архитектуры программных систем 237

6.4.1. Модульно-интерфейсный подход 237

6.4.2. Объектно-ориентированный поход 239

6.4.3. Компонентный подход 243

6.5. Слои программного продукта 245

6.6. Методы структурного проектирования 250

6.6.1. Метод восходящей разработки ("снизу-вверх") 250

6.6.2. Метод нисходящей разработки ("сверху-вниз") 253

6.6.3. Заключительные замечания по структурному проектированию 255

6.7. Формальное описание методики разработки модульной (компонентной) архитектуры программной системы 256

6.7.1. Проектирование сверху-вниз 256

6.7.2. Проектирование снизу-вверх 261

6.7.3. Еще раз о проектировании архитектуры ПС

на основе объектно-ориентированной и компонентной методологии 263

Глава 7. Технико-экономический анализ

проектов программных систем 269

7.1. Технико-экономический анализ при планировании жизненного цикла программных систем 269

7.2. Первичное технико-экономическое обоснование разработки ПС 273

7.3. Методы оценки размеров проектов



7.3.1. Размерно-ориентированные метрики

7.3.2. Функционально-ориентированные метрики

7.4. Выполнение оценки проекта



7.4.1. Оценка на основе LOC- и FP-метрик

7.4.2. Оценка по конструктивной модели стоимости

7.4.3. Модель композиции приложения

7.4.4 . Модель раннего этапа проектирования

7.4.5. Модель этапа постархитектуры

7.5. Оценка компромиссной стоимости программной

системы 280

7.5.1. Принципы определения стоимости заказчиком 280

7. 5.2. Принципы определения стоимости исполнителем ....283

7.5.3. Положения компромиссного подхода 284

Глава 8. Рефакторинг программных систем 296

8.1. Что такое рефакторинг 296

8.2. Рефакторинг, проектирование и производительность программ 306

8.3. Когда применять рефакторинг



8.3.1. Дублирование кода

8.3.2. Длинный метод . Большой класс

8.3.4 . Длинный список параметров

8.3.5 . Расходящиеся модификации . Множественные изменения

8.3.7. Завистливые функции

8.3.8. Группы данных

8.3.9 . Одержимость элементарными типами 10. Операторы типа switch

8.3.11. Параллельные иерархии наследования

8.3.12. Ленивый класс

8.3.13. Теоретическая общность

8.3.14. Временное поле

8.3.15. Цепочки сообщений

8.3.16. Посредник

8.3.17. Неуместная близость

8.3.18. Альтернативные классы с разными интерфей­сами

8.3.19. Неполнота библиотечного класса

8.3.20. Классы данных

8.3.21. Отказ от наследования

8.3.22. Комментарии

8.4. Уровни рефакторинга 311

8.5. Методы рефакторинга 313

8.5.1. Основные методы 313

8.5.2. Рефакторинг кода первого уровня 314

8.5.3. Рефакторинг условных выражений 318

8.5.4. Рефакторинг кода второго уровня 320

8.5.5. Методы рефакторинга, облегчающие работу

с данными 323

8.5.6. Рефакторинг третьего уровня 326

8.6. Архитектурный рефакторинг 329

8.6.1. Когда нужен архитектурный рефакторинг 329

8.6.2. Построение архитектуры ПС

по ее программному коду 331

8.6.3. Рефакторинг архитектуры многослойной иерархической ПС 337

8.6.4. Слои в архитектуре ПС. Паттерн выделения слоев....339


- часть материалов доступна бесплатно по адресу znanium.com