Министерство образования и науки Украины Государственное высшее учебное заведение «Приазовский государственный технический университет» Е. Е. Пятикоп Технология создания программных продуктов Учебное пособие Рекомендовано Ученым советом ГВУЗ «ПГТУ» в качестве учебного пособия для студентов высших учебных учреждений Мариуполь 2016 УДК 004.413(075.8) ББК 32.973.2 П 994 Рекомендовано Ученым советом ГВУЗ «Приазовский государственный технический университет» в качестве учебного пособия для студентов высших учебных заведений (протокол № 11 от 25.02.015 г.). Рецензенты: Каргин А. А. – зав. кафедрой компьютерных технологий Донецкого национального университета, д. т. н, профессор (г. Винница); Назаренко Н. В. – доцент кафедры математических методов и системного анализа Мариупольского государственного университета, к.т.н. доцент; Симкин А. И. – зав. кафедрой автоматизации и компьютерных технологий ГВУЗ «Приазовский государственный технический университет», к.т.н., доцент. П 994 Пятикоп Е. Е. Технология создания программных продуктов : учебное пособие / Е. Е. Пятикоп. – Мариуполь : ПГТУ, 2016. – 232 с. Рассмотрены жизненный цикл создания программных продуктов, стратегии разработки и реализующие их модели жизненного цикла, международные и национальные стандарты, методологии разработки программ. Приведены основные понятия и классификации паттернов проектирования, архитектурных стилей, средств автоматизации разработки программ. Учебное пособие предназначено для студентов направления подготовки 6.050101 «Компьютерные науки». УДК004.413(075.8) ББК 32.973.2 © Е. Е. Пятикоп, 2016 © ГВУЗ «ПГТУ», 2016 2 Содержание Введение .................................................................................. 7 Часть 1. Жизненный цикл и стандарты программного обеспечения ................. Ошибка! Закладка не определена. Раздел 1. Понятие программного обеспечения и проблемы разработки сложного программного обеспечения ............. Ошибка! Закладка не определена. 1.1 Понятие программного обеспечения ........ Ошибка! Закладка не определена. 1.2 Классы программного обеспечения .......... Ошибка! Закладка не определена. 1.3 Проблемы разработки сложного программного обеспечения ......... Ошибка! Закладка не определена. Контрольные вопросыОшибка! Закладка не определена. Раздел 2. Жизненный цикл и процессы разработки программного обеспеченияОшибка! Закладка не определена. 2.1 Понятие жизненного циклаОшибка! Закладка не определена. 2.2 Модели каскадной стратегии ЖЦ ............. Ошибка! Закладка не определена. 2.2.1 Классическая каскадная модель ......... Ошибка! Закладка не определена. 2.2.2 Каскадная модель с обратными связями ........................... Ошибка! Закладка не определена. 2.2.3 V-образная модельОшибка! Закладка не определена. 2.3 Модели инкрементной стратегии ЖЦ ...... Ошибка! Закладка не определена. 2.3.1 Классическая инкрементная модель .. Ошибка! Закладка не определена. 3 2.3.2 Модель быстрой разработки приложений ........................... Ошибка! Закладка не определена. 2.4 Модели эволюционной стратегии ЖЦ ...... Ошибка! Закладка не определена. 2.4.1 Спиральная модельОшибка! Закладка не определена. 2.4.2 Компонентно-ориентированная модель ........................... Ошибка! Закладка не определена. 2.5 Модель прототипированияОшибка! Закладка не определена. 2.6 Сравнение стратегийОшибка! Закладка не определена. 2.7 Выбор модели жизненного цикла ............. Ошибка! Закладка не определена. Резюме .................. Ошибка! Закладка не определена. Контрольные вопросыОшибка! Закладка не определена. Раздел 3. Международные и национальные стандарты разработки сложных программных продуктов .. Ошибка! Закладка не определена. 3.1 Понятие, виды и классификация стандартов ............................... Ошибка! Закладка не определена. 3.2 Международные организации по стандартизации ИТ ......................... Ошибка! Закладка не определена. 3.3 Стандарты в области ПООшибка! Закладка не определена. 3.4 Комплекс стандартов ГОСТ 34Ошибка! Закладка не определена. 3.4.1 Стандарт ГОСТ 34.201-89Ошибка! Закладка не определена. 3.4.2 Стандарт ГОСТ 34.601-90Ошибка! Закладка не определена. 3.4.3 Стандарт ГОСТ 34.602-89Ошибка! Закладка не определена. 4 3.4.4 Стандарт ГОСТ 34.603-92Ошибка! Закладка не определена. 3.5 Семейство стандартов ISO/IEC 12207 ...... Ошибка! Закладка не определена. 3.5.1 Структура жизненного цикла ............. Ошибка! Закладка не определена. 3.5.2 Основные процессыОшибка! Закладка не определена. 3.5.3. Вспомогательные процессы ............... Ошибка! Закладка не определена. 3.5.4 Организационные процессы ............... Ошибка! Закладка не определена. 3.5.5 Взаимосвязь между процессами жизненного цикла программного продуктаОшибка! Закладка не определена. 3.6 ISO/IEC 15288:2002Ошибка! Закладка не определена. 3.6.1 Группы процессов в стандарте ........... Ошибка! Закладка не определена. 3.6.2 Структура жизненного цикла ............. Ошибка! Закладка не определена. 3.6.3 Сравнение с ISO/IEC 12207................. Ошибка! Закладка не определена. 3.7 SWEBOK ........ Ошибка! Закладка не определена. Контрольные вопросыОшибка! Закладка не определена. Часть 2. Методы и средства разработки программных средств .......................... Ошибка! Закладка не определена. Раздел 4. Методологии разработки программных средств ...................... Ошибка! Закладка не определена. 4.1 Группы методологийОшибка! Закладка не определена. 4.2 Методология Rational Unified Process ....... Ошибка! Закладка не определена. 5 4.2.1 Принципы RUPОшибка! Закладка не определена. 4.2.2 Этапы RUPОшибка! Закладка не определена. 4.3 Методология Microsoft Solutions Framework ............................... Ошибка! Закладка не определена. 4.3.1 Принципы MSFОшибка! Закладка не определена. 4.3.2 Модель проектной группы MSF ......... Ошибка! Закладка не определена. 4.3.3 Модель процессов MSFОшибка! Закладка не определена. 4.4 Методология Extreme Programming .......... Ошибка! Закладка не определена. 4.5 Методология ScrumОшибка! Закладка не определена. 4.5.1 Принципы ScrumОшибка! Закладка не определена. 4.5.2 Scrum- процессыОшибка! Закладка не определена. 4.5.3 Команда ScrumОшибка! Закладка не определена. 4.6 Методология OpenUPОшибка! Закладка не определена. 4.7 Методология Feature Driven Development Ошибка! Закладка не определена. 4.8 Методология Dynamic Systems Development Method .................. Ошибка! Закладка не определена. 4.8.1 Принципы DSDMОшибка! Закладка не определена. 4.8.2 Стадии DSDMОшибка! Закладка не определена. 4.8.3 Участники DSDMОшибка! Закладка не определена. 6 4.9 Сравнение методологийОшибка! Закладка не определена. Контрольные вопросыОшибка! Закладка не определена. Раздел 5. Паттерны проектирования программных средств ...................... Ошибка! Закладка не определена. 5.1 Понятие паттерна, классификация ............ Ошибка! Закладка не определена. 5.2 Паттерны проектированияОшибка! Закладка не определена. 5.3 Паттерны проектирования классов/объектов ............................... Ошибка! Закладка не определена. Контрольные вопросыОшибка! Закладка не определена. Раздел 6. Архитектура программных средств, стандарты описания архитектуры программных средств ... Ошибка! Закладка не определена. 6.1 Место архитектурного проектирования в процессе разработки ПО ..... Ошибка! Закладка не определена. 6.1 Архитектурное проектирование ................ Ошибка! Закладка не определена. 6.2 Понятие архитектуры ПООшибка! Закладка не определена. 6.3 Классификация архитектурных стилей .... Ошибка! Закладка не определена. 6.4 Структурные паттерныОшибка! Закладка не определена. 6.4.1 Паттерн (модель) репозитория ........... Ошибка! Закладка не определена. 6.4.2 Паттерн (модель) клиент/сервер ......... Ошибка! Закладка не определена. 6.4.3 Паттерн (модель) многоуровневой системы или абстрактной машиныОшибка! Закладка не определена. 7 6.4.4 Паттерн (модель) объектовОшибка! Закладка не определена. 6.4.5 Паттерн (модель) потоков данных (конвейер или фильтр) ...... Ошибка! Закладка не определена. 6.5 Паттерны управленияОшибка! Закладка не определена. 6.5.1 Паттерны централизованного управления ........................... Ошибка! Закладка не определена. 6.5.2 Паттерны управления, основанные на событиях .......... Ошибка! Закладка не определена. 6.5.3 Паттерны взаимодействия с базой данных ........................... Ошибка! Закладка не определена. 6.5.4 Паттерны для представления данных в Веб ........................... Ошибка! Закладка не определена. 6.6 Архитектурные концепции и методики Microsoft ............................... Ошибка! Закладка не определена. Контрольные вопросыОшибка! Закладка не определена. Раздел 7. Средства автоматизации разработки программных продуктовОшибка! Закладка не определена. 7.1 Понятие CASE-средстваОшибка! Закладка не определена. 7.2 История развития CASE-средств ............... Ошибка! Закладка не определена. 7.3 Базовые принципы построения CASE-средств ............................... Ошибка! Закладка не определена. 7.4 Классификация CASE-средствОшибка! Закладка не определена. 7.4.1 Классификация по типамОшибка! Закладка не определена. 7.4.2 Классификация по категориям ........... Ошибка! Закладка не определена. 8 7.4.3 Классификация по методологии проектирования Ошибка! Закладка не определена. Контрольные вопросыОшибка! Закладка не определена. Библиографический списокОшибка! Закладка не определена. 9 ВВЕДЕНИЕ Данное учебное пособие посвящено изучению различных технологий создания программного обеспечения на разных этапах жизненного цикла. Учебное пособие составлено на основе отраслевого стандарта высшего образования Украины «Образовательно-квалификационная характеристика бакалавра направления подготовки 6.050101 «Компьютерные науки» и в соответствии с рекомендуемыми модулями содержит две части: жизненный цикл и стандарты программного обеспечения; методы и средства разработки программных средств. Первая часть раскрывает вопросы, связанные с понятиями программного обеспечения, жизненного цикла, стратегиями и моделями разработки программного обеспечения. Приводится сравнение стратеги и параметры выбора моделей. Рассмотрены понятие, виды, классификация стандартов в сфере программного обеспечения, характеристики международных и национальных стандартов касательно жизненного цикла разработки программ. Вторая часть включает в себя рассмотрение методологий разработки программных средств (RUP, MSF, XP, Scrum, OpenUp, FDD, DSD), паттернов проектирования и средств автоматизации разработки программ. Данная часть охватывает вопросы архитектурного проектирования, архитектуры программного обеспечения, классификацию и описание архитектурных паттернов и стилей. Приведена общая систематизация CASE–средств. 10