- •Конспект лекций
- •Раздел 1. Задача проектирования программных систем Введение. Содержание и задачи курса
- •Задачи и этапы проектирования сложных программных средств
- •Тема 1.1. Технология программирования и основные этапы ее развития
- •1.1.1. Стихийное программирование.
- •1.1.2. Структурное программирование.
- •1.1.3. Объектно-ориентированное программирование.
- •1.1.4. Компоненты и case-технология.
- •1.1.5. Платформа .Net.
- •Тема 1.2. Организация процесса проектирования программного обеспечения (по)
- •1.2.1. Проблемы разработки сложных программных систем.
- •1.2.2. Блочно-иерархический подход к проектированию по.
- •1.2.3. Жизненный цикл по.
- •1.2.4. Процессы жизненного цикла.
- •1.2.5. Модели жизненного цикла по.
- •1.2.6. Оценка качества процессов разработки по.
- •1.2.7. Технология rad.
- •Тема 1.3. Технологичность программных продуктов
- •1.3.1. Понятие технологичности по.
- •1.3.2. Модульное программирование.
- •1.3.3. Нисходящая и восходящая разработка по.
- •1.3.4. Стиль оформления программы.
- •1.3.5. Эффективность и технологичность.
- •Тема 1.4. Определение требований к по
- •1.4.1. Классификация программных систем.
- •1.4.2. Эксплуатационные требования к по.
- •1.4.3. Исследование предметной области.
- •1.4.4. Разработка технического задания.
- •Тема 1.5. Начальный этап проектирования
- •1.5.1. Выбор архитектуры по.
- •1.5.2. Выбор типа пользовательского интерфейса.
- •1.5.3. Выбор подхода к разработке.
- •1.5.4. Выбор средств разработки.
- •1.5.5. Стандарты разработки.
- •Раздел 2. Использование декомпозиции и абстракции при структурном подходе к анализу и проектированию по Тема 2.1. Анализ требований к по и декомпозиция системы при структурном подходе
- •2.1.1. Спецификация процедур и данных при структурном подходе.
- •2.1.2. Диаграммы переходов состояний.
- •2.1.3. Функциональные диаграммы.
- •2.1.4. Диаграммы потоков данных.
- •2.1.5. Абстрактные структуры данных.
- •2.1.6. Математические модели задач.
- •Тема 2.2. Методы проектирования структуры по
- •2.2.1. Структурная схема по.
- •2.2.2. Функциональная схема по.
- •2.2.3. Метод пошаговой детализации.
- •2.2.4. Проектирование по, основанное на декомпозиции данных.
- •2.2.5. Case-технологии на основе структурного подхода.
- •Тема 2.3. Проектирование структур данных
- •2.3.1. Векторная структура.
- •2.3.2. Списковые структуры.
- •2.3.3. Представление данных во внешней памяти.
- •Раздел 3. Использование декомпозиции и абстракции при объектно-ориентированном подходе к анализу и проектированию по Тема 3.1. Анализ требований к по и декомпозиция системы при объектном подходе
- •3.1.1. Язык uml.
- •3.1.2. Диаграммы вариантов использования.
- •3.1.3. Диаграммы классов.
- •3.1.4. Диаграмма последовательностей.
- •3.1.5. Диаграмма деятельностей.
- •Тема 3.2. Проектирование по при объектном подходе
- •3.2.1. Типы классов объектов.
- •3.2.2. Отношения между объектами.
- •3.2.3. Интерфейсы.
- •3.2.4. Проектирование классов.
- •3.2.5. Компоновка программных компонентов.
- •Раздел 4. Разработка по Тема 4.1. Проектирование интерфейса с пользователем
- •4.1.1. Типы пользовательских интерфейсов.
3.1.2. Диаграммы вариантов использования.
Разработку спецификаций программного обеспечения начинают с анализа требований к функциональности, указанных в техническом задании. В процессе анализа выявляют внешних пользователей разрабатываемого программного обеспечения и перечень отдельных аспектов его поведения в процессе взаимодействия с конкретными пользователями. Аспекты поведения программного обеспечения были названы «вариантами использования» или «прецедентами» (use cases).
Примечание. Варианты использования основаны на неформальном описании сценариев функционирования проектируемых программных систем, применяемом многими разработчиками программного обеспечения в 1980-1990 годах.
Вариант использования представляет собой характерную процедуру применения разрабатываемой системы конкретным действующим лицом, в качестве которого могут выступать не только люди, но и другие системы или устройства.
Не следует путать Вариант использования с конкретными операциями будущей системы. Каждый .вариант использования связан с некоторой целью, имеющей самостоятельное значение, например для текстового редактора Формирование оглавления - это вариант использования, а Связывание заголовков со специальными стилями - операция, которую необходимо выполнить, чтобы стало возможно автоматическое построение оглавления.
В зависимости от цели выполнения конкретной процедуры различают следующие варианты использования:
основные - обеспечивают требуемую функциональность разрабатываемого программного обеспечения;
вспомогательные - обеспечивают выполнение необходимых настроек системы и ее обслуживание (например, архивирование информации и т. п.);
дополнительные - обеспечивают дополнительные удобства для пользователя (как правило, реализуются в том случае, если не требуют серьезных затрат каких-либо ресурсов ни при разработке, ни при эксплуатации).
Вариант использования можно описать кратко или подробно. Краткая форма описания содержит: название варианта использования, его цель, действующих Лиц, тип варианта использования (основная, второстепенная или дополнительная) и его краткое описание.
Основные варианты использования обычно описывают подробно, стараясь отразить особенности предметной области разрабатываемого программного обеспечения. Подробная форма, кроме указанной выше информации, включает описание типичного хода событий и возможных альтернатив. Типичный ход событий представляют в виде диалога между пользователями и системой, последовательно нумеруя события. Если пользователь может выбирать варианты, то их описывают в отдельных таблицах. Также отдельно приводят альтернативы, связанные с нарушением типичного хода событий.
Диаграммы вариантов использования позволяют наглядно представить ожидаемое поведение системы. Основными понятиями диаграмм вариантов использования являются: действующее лицо, вариант использования, связь.
Действующее лицо — внешняя по отношению к разрабатываемому программному обеспечению сущность, которая взаимодействует с ним с целью получения или предоставления какой-либо информации. Как уже упоминалось выше, действующими лицами могут быть пользователи, другое программное обеспечение или какие-либо технические средства, взаимодействующие с разрабатываемым программным обеспечением.
Вариант использования - некоторая очевидная для действующего лица процедура, решающая его конкретную задачу. Все варианты использования, так или иначе, связаны с требованиями к функциональности разрабатываемой системы и могут сильно отличаться по объему выполняемой работы.
Связь - взаимодействие действующих лиц и соответствующих вариантов использования.
Варианты использования также могут быть связаны между собой. При этом фиксируют связи использования и расширения.
Использование подразумевает, что существует некоторый фрагмент поведения разрабатываемого программного обеспечения, который повторяется в нескольких вариантах использования. Этот фрагмент оформляют, как отдельный вариант использования и указывают связь с ним типа «использование».
Расширение применяют, если имеется два подобных варианта использования, различающиеся наличием в одном из них некоторых дополнительных действий. В этом случае дополнительные действия определяют как отдельный вариант использования, который связан с основным вариантом связью типа «расширение».
На рис. 6.3 приведены условные обозначения, которые применяют при изображении диаграмм вариантов использования.
Пример 6.1. Построить диаграмму вариантов использования для системы решения комбинаторно-оптимизационных задач.
Действующее лицо у данной системы одно - Пользователь, который, по сути дела, обращается к системе либо для решения новой задачи, либо для просмотра результатов ранее решенной задачи, которые должны сохраняться в базе данных. Представим эти варианты использования на диаграмме (рис. 6.4).
Вариант Выполнение задания на самом деле включает несколько вариантов, различающихся способом определения данных (ввод с клавиатуры или чтение из базы) и сохранением введенных данных в базе. Изобразим эти варианты на схеме, указав соответствующие расширения данного варианта (см. рис. 6.4).
Помимо двух основных вариантов использования, система должна также предусматривать вспомогательные прецеденты для удаления лишних данных и результатов из базы.
Пример 6.2. Построить диаграмму вариантов использования для системы учета успеваемости студентов.
Действующими лицами системы являются Декан, Заместитель декана по курсу и Сотрудник деканата. Варианты использования выявляем, анализируя техническое задание, и изображаем на диаграмме, связывая с соответствующими действующими лицами (рис. 6.5).
Анализ вариантов использования показывает, что вариант получения сводки успеваемости по факультету «использует» вариант получения сводки по курсу, что и представлено на диаграмме.
Полученная диаграмма вариантов использования отражает типичное взаимодействие пользователя с разрабатываемым программным обеспечением. Ее
необходимо обсудить с заказчиком для определения как можно большего числа основных вариантов использования и проанализировать на полноту обслуживания системы.
Естественно, все варианты использования определить, как правило, не удается: новые варианты фиксируют постоянно, даже в процессе эксплуатации. Но, чем больше вариантов выявлено в процессе уточнения спецификаций, тем лучше, так как при этом получают более точную модель предметной области, что уменьшает вероятность ее пересмотра при добавлении функций.