Файл: Учебное пособие.doc

ВУЗ: Не указан

Категория: Не указан

Дисциплина: Не указана

Добавлен: 04.12.2020

Просмотров: 6426

Скачиваний: 15

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

СОДЕРЖАНИЕ

Введение

1.Введение в технологии разработки программного обеспечения

1.1.Основные этапы развития технологии разработки

1.1.1.Первый этап – «стихийное» программирование.

1.1.2.Второй этап – структурный подход к программированию (60-70-е годы XX в)

1.1.3.Третий этап – объектный подход к программированию (с середины 80-х годов до нашего времени)

1.1.4.Четвертый этап – компонентный подход и CASE-технологии (с середины 90-х годов до нашего времени)

1.1.5.Пятый этап – разработка, ориентированная на архитектуру и CASE-технологии (с начала XXI в. до нашего времени)

1.2.Эволюция моделей жизненного цикла программного обеспечения

1.2.1.Каскадная модель

1.2.2.Спиральная модель

1.2.3.Макетирование

1.2.4.Быстрая разработка приложений

1.2.5.Компонентно-ориентированная модель

1.2.6.XP-процесс

1.3.Стандарты, регламентирующие процесс разработки программного обеспечения

1.3.1.ГОСТ Р ИСО 9000-2001. Системы менеджмента качества. Основные положения и словарь

1.3.1.1.Предисловие

1.3.1.2.Введение

1.3.1.3.Область применения

1.3.1.4.Основные положения систем менеджмента качества

1.3.2.ГОСТ Р ИСО/МЭК ТО 15504

1.3.2.1.Обзор

1.3.2.2.Область применения

1.3.2.3.Состав ИСО/МЭК ТО 15504

1.3.2.4.Связь с другими международными стандартами

1.3.3.ГОСТ Р ИСО/МЭК 12207-99. Информационная технология. Процессы жизненного цикла программных средств

1.3.3.1.Введение

1.3.3.2.Область применения

1.3.3.3.Прикладное применение настоящего стандарта

2.Анализ проблемы и постановка задачи

2.1.Введение в системный анализ

2.2.Системные ресурсы

2.3.Анализ проблемы и моделирование предметной области с использованием системного подхода

2.3.1.Основные положения

2.3.2.Этап 1. Достижение соглашения об определении проблемы

2.3.3.Этап 2. Выделение основных причин – проблем, стоящих за проблемой

2.3.3.1.Устранение корневых причин

2.3.4.Этап 3. Выявление заинтересованных лиц и пользователей

2.3.5.Этап 4. Определение границ системы-решения

2.3.6.Этап 5. Выявление ограничений, налагаемых на решение

2.4.Методология ARIS

2.4.1.Организационная модель

2.4.2.Диаграмма цепочки добавленного качества

2.4.3.Модели eEPC

2.5.Стандарты IDEF0 - IDEF3

2.5.1.Методология описания бизнес процессов IDEF3

2.5.1.1.Синтаксис и семантика моделей IDEF3

2.5.1.2.Требования IDEF3 к описанию бизнес-процессов

2.5.2.Методология функционального моделирования IDEF0

2.5.2.1.Синтаксис и семантика моделейIDEF0

2.5.2.2.Построение моделей IDEF0

3.Анализ требований и их формализация

3.1.Методы определения требований

3.1.1.Интервьюирование

3.1.1.1.Этапы проведения интервью

3.1.2.Мозговой штурм и отбор идей

3.1.2.1.Генерация идей

3.1.2.2.Отбор идей

3.1.3.Совместная разработка приложений (JAD – Joint application design)

3.1.3.1.Роли в сеансах JAD

3.1.3.2.Сеансы JAD

3.1.3.3.Результаты проведения сеанса JAD

3.1.3.4.Недостатки метода JAD

3.1.4.Раскадровка

3.1.4.1.Типы раскадровок

3.1.5.Обыгрывание ролей

3.1.5.1.Суть метода обыгрывания ролей

3.1.5.2.Сценарный просмотр

3.1.6.CRC-карточки (Class-Responsibility-Collaboration, класс-обязанность-взаимодействие)

3.1.7.Быстрое прототипирование

3.2.Формализация требований

3.2.1.Метод вариантов использования и его применение

3.2.1.1.Построение модели вариантов использования

3.2.1.2.Спецификация вариантов использования

3.2.1.3.Преимущества

3.2.2.Псевдокод

3.2.3.Конечные автоматы

3.2.4.Графические деревья решений

3.2.5.Диаграммы деятельности

3.3.Техническое задание (ГОСТ 34.602-89)

3.3.1. Общие сведения

3.3.2.Назначение и цели создания (развития) системы

3.3.2.1.Назначение системы

3.3.2.2.Цели создания системы

3.3.3.Характеристики объекта автоматизации

3.3.4.Требования к системе

3.3.4.1.Требования к системе в целом

3.3.4.2.Требования к функциям (задачам)

3.3.4.3.Требования к видам обеспечения

3.3.5.Состав и содержание работ по созданию системы

3.3.6.Порядок контроля и приемки системы

3.3.7.Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие

3.3.8.Требования к документированию

3.3.9.Источники разработки

4.Архитектуры программных систем

4.1.Планирование архитектуры

4.1.1.Архитектурно-экономический цикл

4.1.2.Программный процесс и архитектурно-экономический цикл

4.1.2.1.Этапы разработки архитектуры

4.1.3.Суть программной архитектуры

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

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

4.2.Проектирование архитектуры

4.2.1.Атрибутный метод проектирования

4.2.1.1.Этапы ADD

4.2.2.Создание макета системы

4.3.Документирование программной архитектуры

4.3.1.Варианты применения архитектурной документации

4.3.2.Представления

4.3.2.1.Выбор значимых представлений

4.3.3.Документирование представления

4.3.3.1.Документирование поведения

4.3.3.2.Документирование интерфейсов

4.4.Методы анализа архитектуры

4.4.1.Метод анализа компромиссных архитектурных решений – комплексный подход к оценке архитектуры

4.4.1.1.Этапы АТАМ

4.4.2.Метод анализа стоимости и эффективности — количественный подход к принятию архитектурно-проектных решений

4.4.2.1.Контекст принятия решений

4.4.2.2.Реализация СВАМ

5.Технология MDA.

5.1.Использование архитектуры, управляемой моделью

5.1.1.Концепция архитектуры, управляемой моделью

5.1.2.Модельные точки зрения и модели MDA

5.2.Язык объектных ограничений OCL

5.2.1.Типы данных и операции OCL

5.2.2.Инфиксная форма записи выражений OCL

5.2.3.Последовательности доступа к объектам в языке OCL

5.2.4.Операции над коллекциями

5.2.4.1.Стандартные операции

5.2.4.2.Операция select

5.2.4.3.Операция reject

5.2.4.4.Выделение элементов коллекции

5.2.4.5.Упорядочение набора

5.2.4.6.Логические итераторы

5.2.4.7.Операции для работы со строками

5.2.4.8.Работа с датами

5.3.Возможности технологии ECO

5.3.1.Введение в технологию ЕСО

5.3.2.Модель ЕСО

5.3.3.Пространство имен ЕСО

5.4.Разработка приложений на основе ECO

5.4.1.Этапы создания приложения по технологии ECO

5.4.2.Создание простого MDA-приложения

5.4.2.1.Создание модели UML

5.4.2.2.Создание интерфейса

5.4.2.3.Связывание интерфейса с моделью

5.4.2.4.Создание логики на OCL

6.Документирование программных систем в соответствии с ГОСТ

6.1.Управление документированием программного обеспечения

6.1.1.Предисловие

6.1.2.Область применения

6.1.3.Роль руководителей

6.1.4.Функции программной документации

6.1.4.1.Информация для управления

6.1.4.2.Связь между задачами

6.1.4.3.Обеспечение качества

6.1.4.4.Инструкции и справки

6.1.4.5.Сопровождение программного обеспечения

6.1.4.6.Исторические справки

6.1.5.Установление стратегии документирования

6.1.6.Определение стандартов и руководств по документированию

6.1.6.1.Выбор модели жизненного цикла программного обеспечения

6.1.6.2.Определение типов и содержания документов

6.1.6.3.Определение качества документов

6.1.6.4.Определение форматов документов

6.1.6.5.Определение системы обозначения документов

6.1.7.Установление процедуры документирования

6.1.8.Распределение ресурсов для документирования

6.1.8.1.Персонал

6.1.8.2.Средства

6.1.8.3.Финансирование

6.1.9.Планирование документирования

6.2.Требования к содержанию документов на автоматизированные системы

6.2.1.Общие положения

6.2.2.Требования к содержанию документов по общесистемным решениям

6.2.2.1.Ведомость эскизного (технического) проекта

6.2.2.2.Пояснительные записки к эскизному, техническому проектам

6.2.2.3.Схема функциональной структуры

6.2.2.4.Описание автоматизируемых функций

6.2.2.5.Описание постановки задачи (комплекса задач)

6.2.2.6.Локальная смета и локальный сметный расчет

6.2.2.7.Паспорт

6.2.2.8.Формуляр

6.2.2.9.Проектная оценка надежности системы

6.2.2.10.Общее описание системы

6.2.2.11.Программа и методика испытаний (компонентов, комплексов средств автоматизации, подсистем, систем)

6.2.3.Требования к содержанию документов с решениями по организационному обеспечению

6.2.3.1.Описание организационной структуры

6.2.3.2.Методика (технология) автоматизированного проектирования

6.2.3.3.Технологическая инструкция

6.2.3.4.Руководство пользователя

6.2.3.5.Описание технологического процесса обработки данных

6.2.4.Требования к содержанию документов с решениями по программному обеспечению

6.2.4.1.Описание программного обеспечения

6.2.5.Другие разделы

6.3.Принципы разработки руководства программиста

6.3.1.Общие положения

6.3.2.Содержание разделов

6.4.Разработка руководства пользователя

6.4.1.Общие замечания

6.4.2.Содержание разделов руководства

6.4.2.1.Общие сведения

6.4.2.2.Описание применения

6.4.2.3.Требования к процедурам функционирования системы

Заключение

Библиографический список

Якунин Юрий Юрьевич
















Учебное пособие по теоретической подготовке

«Технологии разработки программного обеспечения»


Аннотация

Пособие содержит теоретический материал, необходимый для освоения курса «Технология разработки программного обеспечения». В пособии представлен материал в соответствии с учебной программой дисциплины, который охватывает технологии, методики и стандарты, обеспечивающие процесс разработки программного обеспечения на протяжении всего жизненного цикла. Особое внимание уделено новой технологии, ориентированной на архитектуру, управляемую моделью – MDA и языкам модельной разработки – UML и OCL.

Для студентов обучающихся по направлению 230100 – Информатика и вычислительная техника. Для освоения данного курса студенты должны иметь навыки объектно-ориентированного проектирования и программирования, а также иметь знания по курсу «Базы данных».


Оглавление



Введение 7

1. Введение в технологии разработки программного обеспечения 7

1.1. Основные этапы развития технологии разработки 7

1.1.1. Первый этап – «стихийное» программирование. 8

1.1.2. Второй этап – структурный подход к программированию (60-70-е годы XX в) 11

1.1.3. Третий этап – объектный подход к программированию (с середины 80-х годов до нашего времени) 13

1.1.4. Четвертый этап – компонентный подход и CASE-технологии (с середины 90-х годов до нашего времени) 15

1.1.5. Пятый этап – разработка, ориентированная на архитектуру и CASE-технологии (с начала XXI в. до нашего времени) 18

1.2. Эволюция моделей жизненного цикла программного обеспечения 19

1.2.1. Каскадная модель 19

1.2.2. Спиральная модель 22

1.2.3. Макетирование 23

1.2.4. Быстрая разработка приложений 26

1.2.5. Компонентно-ориентированная модель 28

1.2.6. XP-процесс 28

1.3. Стандарты, регламентирующие процесс разработки программного обеспечения 31

1.3.1. ГОСТ Р ИСО 9000-2001. Системы менеджмента качества. Основные положения и словарь 31

1.3.2. ГОСТ Р ИСО/МЭК ТО 15504 43

1.3.3. ГОСТ Р ИСО/МЭК 12207-99. Информационная технология. Процессы жизненного цикла программных средств 60

2. Анализ проблемы и постановка задачи 67

2.1. Введение в системный анализ 67

2.2. Системные ресурсы 68

2.3. Анализ проблемы и моделирование предметной области с использованием системного подхода 70

2.3.1. Основные положения 70

2.3.2. Этап 1. Достижение соглашения об определении проблемы 71

2.3.3. Этап 2. Выделение основных причин – проблем, стоящих за проблемой 71

2.3.4. Этап 3. Выявление заинтересованных лиц и пользователей 73

2.3.5. Этап 4. Определение границ системы-решения 75

2.3.6. Этап 5. Выявление ограничений, налагаемых на решение 77

2.4. Методология ARIS 79

2.4.1. Организационная модель 81

2.4.2. Диаграмма цепочки добавленного качества 83

2.4.3. Модели eEPC 84

2.5. Стандарты IDEF0 - IDEF3 86

2.5.1. Методология описания бизнес процессов IDEF3 86

2.5.2. Методология функционального моделирования IDEF0 95

3. Анализ требований и их формализация 111

3.1. Методы определения требований 111

3.1.1. Интервьюирование 111

3.1.2. Мозговой штурм и отбор идей 114

3.1.3. Совместная разработка приложений (JAD – Joint application design) 116

3.1.4. Раскадровка 118

3.1.5. Обыгрывание ролей 120

3.1.6. CRC-карточки (Class-Responsibility-Collaboration, класс-обязанность-взаимодействие) 121

3.1.7. Быстрое прототипирование 122

3.2. Формализация требований 125

3.2.1. Метод вариантов использования и его применение 125

3.2.2. Псевдокод 129

3.2.3. Конечные автоматы 130

3.2.4. Графические деревья решений 131

3.2.5. Диаграммы деятельности 131

3.3. Техническое задание (ГОСТ 34.602-89) 133

3.3.1. Общие сведения 133

3.3.2. Назначение и цели создания (развития) системы 133

3.3.3. Характеристики объекта автоматизации 133

3.3.4. Требования к системе 134

3.3.5. Состав и содержание работ по созданию системы 138

3.3.6. Порядок контроля и приемки системы 139

3.3.7. Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие 139

3.3.8. Требования к документированию 139

3.3.9. Источники разработки 140

4. Архитектуры программных систем 140

4.1. Планирование архитектуры 140

4.1.1. Архитектурно-экономический цикл 140

4.1.2. Программный процесс и архитектурно-экономический цикл 143

4.1.3. Суть программной архитектуры 145

4.2. Проектирование архитектуры 157

4.2.1. Атрибутный метод проектирования 157

4.2.2. Создание макета системы 158

4.3. Документирование программной архитектуры 160

4.3.1. Варианты применения архитектурной документации 160

4.3.2. Представления 161

4.3.3. Документирование представления 163

4.4. Методы анализа архитектуры 171

4.4.1. Метод анализа компромиссных архитектурных решений – комплексный подход к оценке архитектуры 171

4.4.2. Метод анализа стоимости и эффективности — количественный подход к принятию архитектурно-проектных решений 173

5. Технология MDA. 179

5.1. Использование архитектуры, управляемой моделью 179

5.1.1. Концепция архитектуры, управляемой моделью 179

5.1.2. Модельные точки зрения и модели MDA 180

5.2. Язык объектных ограничений OCL 183

5.2.1. Типы данных и операции OCL 185

5.2.2. Инфиксная форма записи выражений OCL 185

5.2.3. Последовательности доступа к объектам в языке OCL 187

5.2.4. Операции над коллекциями 188

5.3. Возможности технологии ECO 191

5.3.1. Введение в технологию ЕСО 191

5.3.2. Модель ЕСО 192

5.3.3. Пространство имен ЕСО 193

5.4. Разработка приложений на основе ECO 194

5.4.1. Этапы создания приложения по технологии ECO 194

5.4.2. Создание простого MDA-приложения 194

6. Документирование программных систем в соответствии с ГОСТ 205

6.1. Управление документированием программного обеспечения 205

6.1.1. Предисловие 205

6.1.2. Область применения 206

6.1.3. Роль руководителей 206

6.1.4. Функции программной документации 207

6.1.5. Установление стратегии документирования 209

6.1.6. Определение стандартов и руководств по документированию 210

6.1.7. Установление процедуры документирования 215

6.1.8. Распределение ресурсов для документирования 216

6.1.9. Планирование документирования 217

6.2. Требования к содержанию документов на автоматизированные системы 218

6.2.1. Общие положения 218

6.2.2. Требования к содержанию документов по общесистемным решениям 219

6.2.3. Требования к содержанию документов с решениями по организационному обеспечению 231

6.2.4. Требования к содержанию документов с решениями по программному обеспечению 235

6.2.5. Другие разделы 236

6.3. Принципы разработки руководства программиста 237

6.3.1. Общие положения 237

6.3.2. Содержание разделов 237

6.4. Разработка руководства пользователя 238

6.4.1. Общие замечания 238

6.4.2. Содержание разделов руководства 240

Заключение 242

Библиографический список 243





Введение

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

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

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

В данном курсе уделяется большое внимание российским стандартам, регламентирующим организацию процесса разработки и документирование отдельных этапов. Раскрывается понятие архитектуры программной системы и её важность. Рассматривается методика разработки ориентированная на архитектуру, управляемую моделью (MDA), которая раскрывает практическую применимость этого подхода.

1.Введение в технологии разработки программного обеспечения

1.1.Основные этапы развития технологии разработки

Технологией программирования называют совокупность методов и средств, используемых в процессе разработки программного обеспечения. Как любая другая технология, технология программирования представляет собой набор технологических инструкций, включающих:

  • указание последовательности выполнения технологических операций;

  • перечисление условий, при которых выполняется та или иная операция;

  • описания самих операций, где для каждой операции определены исходные данные, результаты, а также инструкции, нормативы, стандарты, критерии и методы оценки и т. п. (см. Рис. 1 .1).

Рис.1.1. Структура описания технологической операции

Кроме набора операций и их последовательности, технология также определяет способ описания проектируемой системы, точнее модели, используемой на конкретном этапе разработки.

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