КОНКУРС
на лучшую научную и научно-публицистическую работу по теме: Молодежная политика. 
Цифровая экономика и регионоведение.

Текущий номер

Тенденции и принципы проектирования сложных систем. Цифровые системы

А.И. Петербург, Ю.Д. Тычинский

Тенденции и принципы проектирования сложных систем. Цифровые системы

Учебное пособие


УДК 621, ББК 32

Рецензенты:
Заведующий кафедрой «Компьютерные системы и сети», МГТУ им. Н.Э. Баумана, д. т. н., профессор В.В Сюзев
Эксперт, главный научный сотрудник ОАО «КБ Электроприбор», доктор технических наук, профессор В.В. Сафронов

Петербург А.И., Тычинский Ю.Д. Тенденции и принципы проектирования сложных систем. Цифровые системы. Учебное пособие. – М.: Международный издательский центр «Этносоциум», 2013. – 126 с.

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

© Петербург А.И., Тычинский Ю.Д., 2013.
© Международный издательский центр «Этносоциум», 2013.

СОДЕРЖАНИЕ

Введение 5
1. Ключевые приемы разработки сложных систем 9
1.1. Разделение труда, кооперация предприятий 9
1.2. Промежуточный продукт, расширение рынка, усложнение продукта 11
1.3. Декомпозиция сложных систем 13
1.4. Агрегирование 14
1.5. Проблемы стыковки подсистем. Инфраструктура системы 16
1.6. Системы с открытой архитектурой 19
1.7. Общесистемные ресурсы 25
1.8. Многоуровневые структуры 25
1.9. Основная проблема проектирования 27
2. Цифровые системы 30
2.1. Программные технологии 33
2.2. Низкоуровневое программирование 34
2.3. Языки высокого уровня 35
2.4. Объектно-ориентированные языки 37
2.5. Графические языки, CASE-технологии 39
2.6. Идиомы. Паттерны проектирования 41
2.7. Роль архитектуры 43
2.8. Каркасы, фреймворки 46
2.9. Рефакторинг 49
2.10. Проблема увязки конкурирующих технологий 49
2.11. Увязка языков программирования. Декомпозиция программ на исполнимые модули 51
2.12. Многозадачность 53
2.13. Сетевые ОС 55
2.14. Удаленный вызов процедур 55
2.15. Программное обеспечение промежуточного слоя 57
2.16. Кроссплатформенность 60
2.17. Виртуальная машина 61
2.18. Технологии Java 64
2.19 .NET Framework 67
2.20. Протокол SOAP 69
2.21. Веб-службы 72
2.22. Сервис-ориентированные архитектуры 74
2.23. Серебряная пуля 76
3. Организация процесса разработки программного обеспечения 79
3.1. Эволюция процессов разработки программного обеспечения 79
3.2. Автоматизация разработки 85
3.3. Когда базар строит собор 87
3.4. Какая организация процесса разработки лучше 94
4. Примеры организации систем 96
4.1. Эволюция информационных систем предприятия 96
4.2. Интеграция систем 105
4.3. Монолитные системы 106
4.4. Сервис-ориентированные системы реального времени 107
4.5. Интернет 116
4.6. Всемирная паутина 119
4.7. Причины успеха Интернета 121
Выводы 123
Литература 125