
- •Раздел 1. Основы разработки по 4
- •Раздел1. Основы разработки по
- •1.1. Основные понятия и определения
- •1.2. Понятие «программирование»
- •Программирование как дисциплина
- •Программирование как деятельность
- •1.3. Области разработки по
- •Контрольные вопросы
- •Раздел2. Методология разработки по
- •2.1. Основные понятия и определения
- •2.2. Классификация методологий
- •2.3. Происхождение методологий
- •Практическое происхождение
- •Алгоритмическое происхождение
- •Структурно-языковое происхождение
- •2.4. Методологии программирования
- •Методология императивного программирования
- •Методология объектно-ориентированного программирования
- •Методология функционального программирования
- •Методология логического программирования
- •Методология сентенциального программирования
- •Методология ограничительного программирования
- •Методология структурного императивного программирования
- •Методология императивного параллельного программирования
- •Методология логического параллельного программирования
- •Контрольные вопросы
- •Раздел3. Технология разработки по
- •3.1. Основные понятия и определения
- •3.2. Основные классификации
- •3.3. Модели жизненного цикла по
- •Непланируемая модель
- •Каскадная модель
- •Прототипируемая модель
- •Итеративная инкрементная модель
- •Эволюционная модель
- •Спиральная модель
- •Модифицированная спиральная модель
- •3.4. Классические технологические процессы Процесс 1. Исследование идеи
- •Процесс 2. Управление
- •Процесс 3. Анализ
- •Процесс 4. Проектирование
- •Процесс 5. Кодирование
- •Процесс 6. Тестирование
- •Процесс 7. Ввод в действие
- •Процесс 8. Сопровождение
- •Процесс 9. Снятие с эксплуатации
- •3.5. Методики анализа и проектирования
- •3.6. Стандартные технологические процессы
- •Стандарт iso/iec 12207
- •Основные процессы
- •Вспомогательные процессы
- •Организационные процессы
- •Адаптация стандарта
- •Стандарт iso/iec15288
- •Контрольные вопросы
- •Раздел4. Подходы разработки по
- •4.1. Каскадные технологические подходы
- •4.2. Каркасные технологические подходы
- •Унифицированный процесс (up)
- •Рациональный унифицированный процесс (rup)
- •Основы подхода
- •Жизненный цикл проекта
- •Каркас решений Microsoft(msf)
- •Основы подхода
- •Жизненный цикл проекта
- •Процесс iconix(iconix Process)
- •Основы подхода
- •Жизненный цикл проекта
- •4.3. Эволюционные технологические подходы
- •Подходы прототипирования
- •Итеративная инкрементная разработка (iid)
- •Быстрая разработка приложений (rad)
- •Основы подхода
- •Жизненный цикл проекта
- •4.4. Адаптивные технологические подходы
- •Особенности живых подходов
- •Адаптивная разработка по (asd)
- •Основы подхода
- •Жизненный цикл проекта
- •Экстремальное программирование (xp)
- •Основы подхода
- •Жизненный цикл проекта
- •4.5. Генетические технологические подходы
- •Синтезирующее программирование
- •Конкретизирующее программирование
- •Сборочное программирование
- •4.6. Формальные технологические подходы
- •Формальные генетические подходы
- •Подходы формальной разработки
- •Жизненный цикл проекта
- •Обзор используемых подходов
- •Инженерия стерильного цеха (CrSe)
- •Основы подхода
- •Жизненный цикл проекта
- •Методика подхода
- •Контрольные вопросы
- •Раздел5. Инженерия и инструментарий по
- •5.1. Инженерия по
- •5.2. Инструментарий по
- •Контрольные вопросы
- •Раздел6. Методические указания
- •6.1. Лабораторные работы
- •1. Введение вRational Rose
- •1.1. Цель работы
- •1.2. Общие сведения
- •1.3. Порядок выполнения
- •1.4. Содержание отчёта
- •1.5. Варианты заданий
- •1.6. Контрольные вопросы
- •2. Диаграмма прецедентов
- •2.1. Цель работы
- •2.2. Общие сведения
- •2.3. Порядок выполнения
- •2.4. Содержание отчёта
- •2.5. Варианты заданий
- •2.6. Контрольные вопросы
- •3. Диаграмма классов. Пакеты
- •3.1. Цель работы
- •3.2. Общие сведения
- •3.3. Порядок выполнения
- •3.4. Содержание отчёта
- •3.5. Варианты заданий
- •3.6. Контрольные вопросы
- •4. Диаграммы взаимодействия
- •4.1. Цель работы
- •4.2. Общие сведения
- •4.3. Порядок выполнения
- •4.4. Содержание отчёта
- •4.5. Варианты заданий
- •4.6. Контрольные вопросы
- •5. Диаграммы переходов состояний
- •5.1. Цель работы
- •5.2. Общие сведения
- •5.3. Порядок выполнения
- •5.4. Содержание отчёта
- •5.5. Варианты заданий
- •5.6. Контрольные вопросы
- •6. Диаграмма компонентов
- •6.1. Цель работы
- •6.2. Общие сведения
- •6.3. Порядок выполнения
- •6.4. Содержание отчёта
- •6.5. Варианты заданий
- •6.6. Контрольные вопросы
- •7. Диаграмма развёртывания
- •7.1. Цель работы
- •7.2. Общие сведения
- •7.3. Порядок выполнения
- •7.4. Содержание отчёта
- •7.5. Варианты заданий
- •7.6. Контрольные вопросы
- •8. Дальнейшая работа с моделью
- •8.1. Цель работы
- •8.2. Общие сведения
- •8.3. Порядок выполнения
- •8.4. Содержание отчёта
- •8.5. Варианты заданий
- •8.6. Контрольные вопросы
- •6.2. Курсовая работа
- •7. Общие сведения
- •Обзор языка uml
- •Принципы моделирования
- •Формальное описание
- •Представления модели
- •Диаграмма робастности
- •Процесс iconix
- •Обзор подхода
- •Особенности подхода
- •Ключевые принципы
- •Жизненный цикл проекта
- •8. Порядок выполнения
- •Определение задания
- •Этапы выполнения
- •Содержание отчёта
- •9. Типовые задания
- •Предметные области
- •Примеры автоматизации
- •Варианты заданий
- •6.3. Самостоятельная работа студентов
- •Тема 1. Основы разработки по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •Тема 2. Методология разработки по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •Тема 3. Технология разработки по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •Тема 4. Подходы разработки по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •Тема 5. Инженерия и инструментарий по Содержание темы
- •Самостоятельная работа
- •Контрольные вопросы
- •6.4. Примерные тестовые задания Тема 1. Основы разработки по
- •Тема 2. Методология разработки по
- •Тема 3. Технология разработки по
- •Тема 4. Подходы разработки по
- •Тема 5. Инженерия и инструментарий по
- •Литература Основная литература
- •Дополнительная литература
- •Документация
- •Интернет – источники
- •Литература по Rational RoseиUml
5.3. Порядок выполнения
1. Изучить назначение элементов интерфейса RRдля построения диаграммы состояний. Рассмотреть типовой пример построения диаграммы.
2. Продолжить моделирование системы в соответствии с индивидуальным заданием в виде построения диаграммы состояний:
2.1. Активизировать окно диаграммы состояний, добавить требуемые состояния и переходы, в т.ч. переходы со сторожевым условием.
2.2. Выполнить спецификацию определённых состояний и переходов.
3. Изучить назначение элементов интерфейса RRдля построения диаграммы деятельности. Рассмотреть типовой пример построения диаграммы.
4. Продолжить моделирование системы в соответствии с индивидуальным заданием в виде построения диаграммы деятельности:
4.1. Активизировать окно диаграммы деятельности, добавить деятельности и переходы, в т.ч. при необходимости добавить символы ветвления (решения), символы соединения, переходы со сторожевым условием.
4.2. Определить при необходимости стереотипы деятельностей, выполнить спецификацию определённых переходов.
5. Оформить отчёт по результатам выполнения лабораторной работы.
5.4. Содержание отчёта
Результаты выполнения лабораторной работы необходимо представить в виде отчёта, который должен содержать следующие разделы:
1. Постановка задачи.
2. Краткое описание составляющих каждой из диаграмм переходов состояний.
3. Окончательный вид каждой из диаграмм проектируемой системы.
5.5. Варианты заданий
Вариант индивидуального задания соответствует варианту, полученному при выполнении лабораторной работы №2.
5.6. Контрольные вопросы
1. Для чего предназначена диаграмма состояний?
2. В чём особенности построения диаграммы состояний в средеRR?
3. В чём отличие диаграммы состояний от диаграммы деятельности?
4. Используются ли диаграммы переходов состояний при генерации кода?
5. Как можно создать диаграмму переходов состояний?
6. Сколько начальных и конечных состояний может иметь диаграмма переходов состояний? Как они добавляются?
7. Как превратить обычное состояние в композитное?
8. Какие свойства состояний (переходов, деятельности) можно определить?
9. Что определяет сторожевое условие?
6. Диаграмма компонентов
6.1. Цель работы
Целью данной работы является использование диаграммы компонентов при разработке программной системы в среде RR.
6.2. Общие сведения
Диаграмма компонентов (component diagram) служит частью физического представления модели и относится к диаграммам реализации (implementation diagram). Она является необходимой для генерации кода. Она отображает компоненты системы и зависимости между ними: компоненты – исходный код, исполняемые компоненты, библиотеки кода; зависимости – порядок компиляции. В модели может быть создано несколько диаграмм для отражения пакетов, компонентов верхнего уровня и описания содержимого каждого пакета компонентов.
В RRесть возможность работы с программными библиотеками. Можно как разрабатывать библиотеки, так и пользоваться уже готовыми. Для этого необходимо указать, какие классы в каких компонентах будут находиться. При разработке проекта разделение классов по компонентам является серьёзной задачей. Чтобы обеспечить минимальные трудозатраты на разработку и сопровождение, тесно связанные между собой классы собираются в библиотекиDLL,OCXи т.п. Этим обычно занимаются системные аналитики, проектирующие структуру ПО.
Для разработки диаграмм компонентов в браузере предназначено представление компонентов (Component View), в котором уже есть диаграмма компонентов с пустым содержанием и именемMain(Главная). Активизация диаграммы компонентов может быть выполнена одним из следующих способов:
1. Раскрыть представление компонентов и дважды щёлкнуть на значке Main.
2. В браузере щёлкнуть правой кнопкой мыши на пакете и в открывшемся меню выбрать New → Component Diagram(Создать → Диаграмма компонентов).
3. Через меню Browse → Component Diagram(Браузер → Диаграмма компонентов), указав пакет и выбрав в окне диаграммы компонентов пунктNew.
При этом появляется новое окно с чистым рабочим листом диаграммы и специальная панель инструментов, содержащая кнопки с изображением графических элементов для разработки диаграммы компонентов (табл.6.1).
Таблица 6.1
Значок |
Подсказка |
Назначение кнопки |
|
Selection Tool |
Переключает в режим выделения элементов на диаграмме |
|
Text Box |
Добавляет на диаграмму текстовую область |
|
Note |
Добавляет на диаграмму примечание |
|
Anchor Note to Item |
Добавляет связь примечания с элементом диаграммы |
|
Component |
Добавляет на диаграмму компонент |
|
Package |
Добавляет на диаграмму пакет |
|
Dependency |
Добавляет на диаграмму отношение зависимости |
|
Subprogram Specification |
Добавляет на диаграмму спецификацию подпрограммы |
|
Subprogram Body |
Добавляет на диаграмму тело подпрограммы |
|
Main Program |
Добавляет на диаграмму главную программу |
|
Package Specification |
Добавляет на диаграмму спецификацию пакета |
|
Package Body |
Добавляет на диаграмму тело пакета |
|
Task Specification |
Добавляет на диаграмму спецификацию задачи |
|
Task Body |
Добавляет на диаграмму тело задачи |
|
Generic Subprogram |
Добавляет на диаграмму типовую подпрограмму |
|
Generic Package |
Добавляет на диаграмму типовой пакет |
|
Database |
Добавляет на диаграмму базу данных |
Использование стереотипов увеличивает наглядность и позволяет архитектору уточнить характер реализации модели на выбранном ЯП (табл.6.2).
Таблица 6.2
Изображение |
Название |
Характеристика стереотипа компонента |
|
Subprogram Specification Спецификация подпрограммы |
Содержит описание переменных и подпрограмм и не содержит определений классов. |
|
Subprogram Body Тело подпрограммы |
Содержит реализацию подпрограмм, не относящихся к каким-либо классам, при этом не содержит определений классов или реализаций операций других классов. |
|
Main Program Главная программа |
Реализует базовую логику работы приложения и содержит ссылки на другие компоненты модели. |
|
Package Specification Спецификация пакета |
Содержит определение класса, его атрибутов и операций. В C++спецификации пакета соответствует файл-заголовок. |
|
Package Body Тело пакета |
Содержит код реализации операций класса. В C++спецификации пакета соответствует файл-реализация. |
|
Task Specification Спецификация задачи |
Может содержать определение класса, его атрибутов и операций, которые предполагается использовать в независимом потоке управления. |
|
Task Body Тело задачи |
Может содержать реализацию операций класса, которые имеют независимый поток управления. |
|
Generic Subprogram Типовая подпрограмма |
Содержит описание переменных и подпрограмм, которые могут быть использованы в нескольких приложениях. При этом типовая подпрограмма не содержит определений классов. |
|
Generic Package Типовой пакет |
Содержит определение класса, его атрибутов и операций, которое может быть использовано в нескольких приложениях. |
|
Database База данных |
Содержит определение классов, их атрибутов и, возможно, операций. При этом классы могут быть реализованы в форме одной или нескольких таблиц базы данных. |
Для добавления компонента можно использовать специальную панель инструментов, главное меню Tools → Create → Componentили контекстного меню представления компонентовNew → Component. Для удаления компонента из диаграммы выделите его и нажмите клавишуDelete. Для удаления компонента из модели выделите его и в меню модели выберитеEdit → Delete from Model.
Для каждого компонента можно определить свойства: стереотип, ЯП, декларации, реализуемые классы. Редактирование этих свойств для произвольного компонента осуществляется с помощью окна спецификации свойств. По умолчанию для всех добавляемых компонентов в качестве ЯП используется язык анализа.
Можноназначать ЯП для кодирования отдельных компонентов. Есть также возможность создавать дополнительные декларации для каждого компонента при генерации кода (вкладкаDeclarationsспецификации компонента). Декларациями называют специфичные для ЯП операторы объявления переменных, классов и т.д.
Для генерации кода класса необходимо соотнести класс с компонентом. Это позволяет определить, в каком физическом файле следует сохранить код класса. С каждым компонентом можно соотнести несколько классов. В результате в логическом представлении после имени класса появится имя соответствующего компонента, заключённое в скобки.
Для соотнесения класса с компонентом нужно открыть окно спецификации компонента, перейти на вкладку Realizes(Реализации), щёлкнуть правой кнопкой мыши на классе и в открывшемся меню выбратьAssign(Назначить). На вкладкеRealizesсодержатся все классы, которые присутствуют в модели. Классы будут показаны только при выбранном свойствеShow all classes(Показать все классы).
Для добавления зависимости между двумя компонентами нужно с помощью левой кнопки мыши нажать кнопку с изображением зависимости на специальной панели инструментов. Для наглядности можно указать в форме примечаний те классы модели, которые предполагается реализовать в данных компонентах Отношение зависимости в среде RRне имеет окна спецификации свойств. Специфицировать свойства этого отношения (имя и стереотип) можно только с помощью текстовой области.
Для удаления диаграммы компонентов щёлкните правой кнопкой мыши на диаграмме в браузере и в открывшемся меню выберите Delete.
Типовой пример
Пример диаграммы компонентов для модели банкомата приведён на рис.6.1. При её построении добавлены следующие компоненты и зависимости.
Рис.6.1. Диаграммы компонентов модели управления банкомата
1. Компоненты:
1) компонент ‘MainATM.exe’: стереотип – <<EXE>>;
2) компонент ‘MainBank’: стереотип – ‘MainProgram’;
3) компонент ‘Устройства банкомата’: стереотип – ‘Task Specification’;
4) компоненты ‘Устройство чтения карточки’, ‘Клавиатура банкомата’, ‘Принтер банкомата’, ‘Экран банкомата’, ‘Устройство выдачи наличных’: стереотип – Task Body.
2. Отношения зависимости:
1) от компонента ‘MainATM.exe’ к компоненту ‘MainBank’;
2) от ‘MainATM.exe’ к ‘Устройства банкомата’;
3) от ‘Устройство чтения карточки’ к ‘Устройства банкомата’;
4) от ‘Клавиатура банкомата’ к ‘Устройства банкомата’;
5) от ‘Принтер банкомата’ к ‘Устройства банкомата’;
6) от ‘Экран банкомата’ к ‘Устройства банкомата’;
7) от ‘Устройство выдачи наличных’ к ‘Устройства банкомата’.