Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
74
Добавлен:
10.02.2015
Размер:
289.79 Кб
Скачать

III. Анализ требований и проектирование

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

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

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

Проектирование должно проводится на двух уровнях:

  • Проектирование архитектуры (проектирование «в большом»);

  • Детальное проектирование (проектирование в «малом»).

Проектирование архитектуры (проектирование «в большом»)

Проектирование архитектуры включает следующие основные методы:

  • Метод нисходящего проектирования;

  • Метод восходящего проектирования;

  • Метод расширения ядра.

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

Метод нисходящего проектирования представляет собой подход функциональной декомпозиции на основе двух стратегий:

  • пошагового уточнения – при котором на каждом следующем этапе декомпозиции определяются модули очередного, более низкого уровня.

  • анализа сообщений – при котором анализируются потоки данных, обрабатываемые модулями.

Метод восходящего проектирования – подход, при котором в первую очередь определяются вспомогательные модули, которые потребуются для проектируемой программы.

Метод расширения ядра – подход, при котором основное внимание уделяется выявлению множества вспомогательных модулей, а не определению функции всей программы в целом.

Проектирование архитектуры для объектно-ориентированной методологии включает в себя основные методы:

  • метод проектирования предметных областей;

  • метод наведения мостов.

Метод проектирования предметных областей заключается в выделении предметной области системы с точки зрения пользователя.

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

Проектирование модулей (проектирование «в малом»)

Основные методы проектирования модулей для структурной методологии:

  • диаграммы «сущность – связь»;

  • структурные карты;

  • диаграммы деятельности;

  • диаграммы Варнье-Орра;

  • Блок-схемы;

  • Схемы экранов;

  • Псевдокод.

Объектно-ориентированная методология

Перечислим основные методы проектирования модулей для объектно-ориентированной методологии

  • Диаграммы кооперации.

  • Диаграммы компонентов

  • Диаграммы развертывания.

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

  • Спецификации, показывая роли классификаторов и ассоциаций в рассматриваемом взаимодействии.

  • Примеров, указывая экземпляры и связи, образующие отдельные роли в кооперации.

Объекты на диаграмме располагаются в виде вершин графа. Связи соединяют вершины дугами. Связи могут быть аннотированы сообщениями, которые объекты принимают и посылают.

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

Диаграмма развертывания (применения, размещения) отображает физические взаимосвязи между программными и аппаратнымикомпонентами системы.

Методы анализа и построения спецификаций

Структурная методология

Перечислим основные методы ведения структурного анализа:

  • Диаграммы потоков данных.

  • Диаграммы потоков управления.

  • Таблицы решений.

  • Сети Петри;

  • Диаграммы зависимости.

  • Диаграммы декомпозиции.

  • Диаграммы функционального моделирования.

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

Компонентами диаграммы потоков данных являются:

  • внешние сущности — материальный предмет или физическое лицо, пред­ставляющее собой источник или приемник информации;

  • процессы — совокупность операций по преобразованию входных данных в выходные в соответствии с определенным алгоритмом;

  • накопители данных — абстрактное устройство для хранения информации, которую можно в любой момент поместить в накопитель и через некото­рое время извлечь;

  • поток данных — механизм, определяющий информацию, передаваемую через некоторое соединение от источника к приемнику.

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

Диаграмма функционального моделирования — модель, состоящая из диаграмм, фрагментов текста и глоссария, имеющих ссылки друг на друга.

В состав диаграммы входят:

  • блоки, изображающие активность моделируемой системы;

  • дуги, связывающие блоки вместе и изображающие взаимодействия и взаимосвязи между ними. Место соединения дуги с блоком определяет тип интерфейса:

  • управляющая информация входит в блок сверху;

  • входная информация, подвергающаяся обработке, показана с левой стороны блока;

  • результаты (выходная информация) показаны с правой стороны;

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

Объектно-ориентированная методология

Перечислим основные методы ведения объектно-ориентированного анализа

  • КОК-карты (класс-ответственность-кооперация)

  • Диаграммы вариантов использования.

  • Диаграммы классов.

  • Диаграммы состояний.

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

  • Диаграммы последовательности.

Карты класс-ответственностъ-кооперация предназначены для описания классов. Первоначально они были созданы для обучения объектному языку.

  • Ответственность — это высокоуровневое описание функций, которые выполняет класс. Здесь применяется идея отказаться от описания конкретных элементов данных и процессов и вместо этого несколькими предложениями описать ответственность класса.

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

Этот метод способствует более оживленному обсуждению модели и концентрирует внимание на ответственностях, позволяя понять особенности поведения каждого класса.

Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов не содержит информации о временных аспектах функционирования системы.

Класс служит для обозначения множества объектов, которые обладают оди­наковой структурой, поведением и отношением с объектами из других классов. Между классами существуют четыре типа отношений.

  • Ассоциации, представляющие некоторое отношение или связь.

  • Обобщения, представляющие иерархическое строение и наследование классов.

  • Зависимости, когда изменение одного элемента может потребовать изменения другого.

  • Агрегации (часть-целое), когда один из классов представляет собой некоторую сущность, включающую в себя в качестве составных частей другиесущности.

Объект — отдельный экземпляр класса, который создается на этапе выполнения программы. Объект имеет имя и конкретные значения атрибутов.

Диаграмма объектов может понадобиться, если требуется рассмотреть взаимосвязи между отдельными объектами.

Обратим внимание на то, что практически во всех объектно-ориентированных подходах есть возможность группировать классы в компонент более высокого уровня (например, предметные области или пакеты).

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

  • вариант использования — типичное взаимодействие пользователя системы. Оно охватывает некоторую очевидную для пользователя функцию, решая некоторую дискретную задачу;

  • актер — любая внешняя по отношению к моделируемой системесущность, которая взаимодействует с системой и использует ее функции возможности;

  • интерфейс— спецификация параметров системы, которые видимы извне без указания их внутренней структуры.

Диаграмма состояний отражает модель поведения объектовв реальном или абстрактном мире. Все объекты имеют некоторый срок жизни:

  • сначала они появляются или создаются;

  • затем эволюционируют, проходя через определенные стадии существования;

  • и, наконец, исчезают или умирают.

Для представления этого жизненного цикла предлагается модель состояний, состоящая из:

  • множества состояний; состояние — положение объекта, в котором применяется определенный набор правил, линий поведения, предписаний и физических законов;

  • множества событий; событие — абстракция инцидента или сигнала в реальном мире, который сообщает о перемещении чего-либо в новое состояние;

  • множества правил переходов: правила определяют, какое новое состояние достигается, когда с объектом в данном состоянии происходит некоторое событие;

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

Диаграмма деятельности предназначена для детализации особенностей алгоритмической и логической организации, выполняемойсистемой операций. Каждое действие расчленяется на фундаментальные процессы. Управление на диаграмме осуществляется либо явно — через потоки управления, либо неявно — через определяемые потоки данных. Процессы могут быть объединены в четыре основных группы.

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

  • Генераторы событий, создающие событие, как результат работы.

  • Процессы преобразования, основной целью которых является вычисление или преобразование данных.

  • Процессы проверки, которые проверяют условие и исполняют один из нескольких условных выводов управления.

Диаграммы деятельности можно считать частным случаем диаграмм состояний.

Диаграмма последовательности предназначена для моделирования еще одной разновидности взаимодействия — взаимодействия вовремени. С ее помощью отслеживается поведение взаимодействующих, групп объектов. Диаграмма имеет два измерения.

  • Слева направо, в виде линий жизни каждого объекта, участвующего во взаимодействии. Есть начальный момент времени — верхняя часть диаграммы, где указываются имена объектов.

  • Сверху вниз, в виде вертикальных линий, представляющих линию жизни отдельного объекта. Линия жизни — время, в течение которого объект существует в системе.

Чтобы выделить активное состояние объекта, применяется специальное понятие — фокус управления, изображаемый как вытянутый прямоугольник, который становится продолжением линии жизни.

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

  • Для вызова процедур, выполнения операций или обозначения отдельных вложенных потоков управления.

  • Для обозначения простого (не вложенного) потока управления.

  • Для асинхронного сообщения между двумя объектами в некоторой процедурной последовательности.

  • Для возврата из вызова процедуры.

Подходы к ведению анализа и проектирования

Комбинации структурных методов образуют структурные подходы. Можно выделить три группы структурных подходов на основе порядка построения модели [Калянов 1996].

  • Процедурно-ориентированные подходы, в которых первично проектирование функциональных компонентов.

  • Подходы, ориентированные на данные. Для таких подходов первичны входные и выходные данные, а функциональные (процедурные) компоненты вторичны.

  • Информационно-ориентированные подходы. Эта группа близка к предыдущей, но отличается тем, что работа ведется с неиерархическими структурами данных.

Можно выделить два класса целевых систем — информационные системы (управляемые данными) и системы реального времени (управляемые событиями). Информационные системы работают с большим объемом входных данных сложной структуры. Системы реального времени работают с малым количеством входных данных простой структуры. Как правило, для проектирования систем реального времени применяются подходы, базирующиеся на подходах для информационных систем с расширением их дополнительными диаграммными техниками.

Как правило, подходы используют две основные группы средств моделирования [Вендров 2000].

  • Диаграммы, иллюстрирующие функции, которые система должна выполнять, и связи между функциями, например, диаграммы потоков данных и функционального моделирования.

  • Диаграммы, моделирующие данные и их отношения. Например, диаграммы "сущность-связь".

Перечислим основные подходы к ведению структурного анализа и проектирования и рассмотрим подробно некоторые из них.

  • Подход Йордона и ДеМарко.

  • Подход Гейна-Сарсона.

  • Подход Константайна.

  • Подход Джексона.

  • Подход Варнье-Орра.

  • Подход Мартина.

  • Подход промышленной технологии DATARUN.

  • Подход промышленного метода Oracle.

Подход Йордона и ДеМарко является процедурно-ориентированным и наиболее часто используемым (по статистике—в 36,5% случаев) [Калянов 1996]. Подход фокусирует внимание на потоках данных.

В нем интегрированы следующие средства:

  • диаграммы потоков данных;

  • словари данных, являющиеся каталогами всех элементов данных, присутствующих в диаграммах потоков данных;

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

Подход Гейна-Сарсона очень близок к предыдущему. Статистика утверждает, что он применяется в 20,2% случаев [Калянов 1996]. Главной отличительной чертой подхода является наличие этапамоделирования данных, определяющего содержимое хранилищ данных в диаграммах потоков данных в третьей нормальной форме. Этот этап включает:

  • построение списка элементов данных, располагающихся в каждом хранилище данных;

  • анализ отношений между данными и построение соответствующей диаграммы связей между элементами данных;

  • представление всей информации по модели в виде связанных нормализованных таблиц.

Подход Джексона ориентирован на данные. Базовая процедура проектирования включает четыре этапа [Калянов 1996] [Кинг 1991].

  • Этап проектирования данных. Построение системной сетевой диаграммы, демонстрирующей все хранилища, источники и стоки данных в программе. Представление каждой входной и выходной структуры данных древовидной структурной диаграммой.

  • Этап проектирования программ. Формирование структуры программыкомбинированием структур данных. Идентификация всех связей между компонентами структур данных.

  • Этап проектирования операций. Построение списка операций, необходимых для продуцирования выходных структур данных из входных. Назначение операций компонентам структуры, программы.

  • Этап проектирования текстов. Трансляция построенной модели программы в текстовый вид с добавлением ряда логических условий для управления выполнением циклов и выбором данных.

Объектно-ориентированная методология

Перечислим основные подходы к ведению объектно-ориентированного анализа и проектирования и рассмотрим подробно некоторые из них.

  • Подход на основе языка UML.

  • Подход Шлеер-Меллора.

  • Подход Гради Буча.

  • Подход Джеймса Рамбо (ОМТ)

  • Подход Ивара Якобсона (OOSE).

Подход на основе универсального языка моделирования UML (Unified Modeling Language) включает следующие основные типы диаграмм:

  • диаграммы вариантов использования;

  • диаграммы классов;

  • диаграммы состояний;

  • три диаграммы поведения (две последние из них также называют диаграммами взаимодействия):

  • диаграммы деятельности;

  • диаграммы последовательности;

  • диаграммы кооперации;

  • две диаграммы реализации:

  • диаграммы компонентов;

  • диаграммы развертывания.

Подход на основе языка UML состоит из четырех основных фаз разработки, причем работа с диаграммами ведется в основном на второй и третьей фазах.

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

  • диаграммы вариантов использования;

  • диаграммы классов;

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

На третьей фазе — построения — продолжается итеративная работа с такими типами диаграмм, как:

  • диаграммы классов;

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

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

  • диаграммы последовательности;

  • диаграммы кооперации.

В случае сложного поведения системы разрабатывается еще одна группа диаграмм: Диаграммы состояний.

Существует несколько рекомендаций, связанных с данным подходом:

  • не следует стремиться к построению диаграмм всей системы;

  • 80% проектов можно воплотить, используя 20% средств языка UML. Как правило, наиболее часто используют диаграммы классов и диаграмм деятельности.

Подход Шлеер-Меллора использует три группы средств для создания модели предметной области.

  • Информационное моделирование — для определения отношений междуданными (информацией). При этом используется один тип диаграмм: Диаграммы классов.

  • Моделирование состояний — для определения, зависящего от времени поведения системы. Используются диаграммы состояний.

  • Моделирование процессов — для определения функций, которые система должна выполнить. Используются:

  • диаграммы деятельности;

  • диаграммы последовательности.

Для анализа больших предметных областей используются диаграммы, по смыслу близкие к следующим диаграммам языка

  • диаграммы кооперации;

  • диаграммы компонентов;

  • диаграммы развертывания.

Подход предлагает механизм поддержки моделей состояний. Для этого вводятсячетыре архитектурных класса.

  • Переход, описывающий каждый переход для всех моделей состояний программе.

  • Конечная модель состояний, связывающая все экземпляры перехода, которые составляют одну модель состояний.

  • Активный экземпляр. Это абстрактный класс, из которого все экземпляры имеющие модель состояний, наследуют их текущее состояние.

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

Соседние файлы в папке Лекции разработка ПО