Превосходно, Ватсон, Вы делаете успехи. Правда, Вы упустили все существенные детали, зато хорошо усвоили метод
Артур Конан Дойль. “Приключения Шерлока Холмса”
Структурная методология
Перечислим основные методы ведения структурного анализа и рассмотрим подробно некоторые из них:
* Диаграммы потоков данных.
* Диаграммы потоков управления.
* Таблицы решений.
* Сети Петри.
* Диаграммы зависимости.
* Диаграммы декомпозиции.
* Диаграммы функционального моделирования.
Диаграмма потоков данных (Data Flow Diagram — DFD) — информационная модель, основные компоненты которой — различные потоки данных, переносящие информацию от одного модуля к другому.
Компонентами диаграммы потоков данных являются:
* внешние сущности — материальный предмет или физическое лицо, представляющее собой источник или приемник информации;
* процессы — совокупность операций по преобразованию входных данных в выходные в соответствии с определенным алгоритмом;
* накопители данных — абстрактное устройство для хранения информации, которую можно в любой момент поместить в накопитель и через некоторое время извлечь;
* поток данных — механизм, определяющий информацию, передаваемую через некоторое соединение от источника к приемнику.
Модель системы характеризуется как иерархия диаграмм потоков данных, описывающих асинхронный процесс преобразования информации от ее ввода в систему до выдачи пользователю.
Диаграмма функционального моделирования (Structured Analisis and Design Technique — SADT) — модель, состоящая из диаграмм, фрагментов текста и глоссария , имеющих ссылки друг на друга.
В состав диаграммы входят:
* блоки, изображающие активность моделируемой системы;
* дуги, связывающие блоки вместе и изображающие взаимодействия и взаимосвязи между ними. Место соединения дуги с блоком определяет тип интерфейса:
• управляющая информация входит в блок сверху;
• входная информация, подвергающаяся обработке, показана с левой стороны блока;
• результаты (выходная информация) показаны с правой стороны;
• механизм (человек или автоматизированная система), который осуществляет операцию, представляется дугой, входящей в блок снизу.
Объектно-ориентированная методология
Перечислим основные методы ведения объектно-ориентированного анализа и рассмотрим подробно некоторые из них.
* КОК-карты (класс-ответственность-кооперация).
* Диаграммы вариантов использования.
* диаграммы классов.
* диаграммы состояний.
* диаграммы деятельности.
* диаграммы последовательности.
Карты класс-ответственность-кооперация (class-responsibility-collsboration) предназначены для описания классов. Первоначально они были созданы для обучения объектному языку (http://c2.com/doc/oopsla89/paper.html).
* Ответственность — это высокоуровневое описание функций, которые выполняет класс. Здесь применяется идея отказаться от описания конкретных элементов данных и процессов и вместо этого несколькими предложениями описать ответственность класса.
* Кооперация — ссылка на другие классы, с которыми необходимо кооперироваться (взаимодействовать) для реализации функций. С помощью коопераций можно получить представление о связях между классами.
Этот метод способствует более оживленному обсуждению модели и концентрирует внимание на ответственностях, позволяя понять особенности деления каждого класса.
Диаграмма классов (class diagram) служит для представления структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма классов не содержит информации о временных аспектах функционирования системы.
Класс служит для обозначения множества объектов, которые обладают одинаковой структурой, поведением и отношением с объектами из других классов. Между классами существуют четыре типа отношений.
* Ассоциации, представляющие некоторое отношение или связь.
* Обобщения, представляющие иерархическое строение и наследование классов.
* Зависимости, когда изменение одного элемента может потребовать изменения другого.
* Агрегации (часть-целое), когда один из классов представляет собой вторую сущность, включающую в себя в качестве составных частей другие сущности.
Объект — отдельный экземпляр класса, который создается на этапе выполнения программы. Объект имеет имя и конкретные значения атрибутов.
Диаграмма объектов (object diagram) может понадобиться, если потребуется рассмотреть взаимосвязи между отдельными объектами.
Обратим внимание на то, что практически во всех объектно-ориентированных подходах есть возможность группировать классы в компоненты более высокого уровня (например, предметные области или пакеты).
Диаграмма вариантов использования (use case diagram) — сценарий, позволяющий лучше понять требования к системе. В состав диаграммы входят:
* вариант использования (use case) — типичное взаимодействие пользователя и системы. Оно охватывает некоторую очевидную для пользователя функцию, решая некоторую дискретную задачу;
* актер (асtor) — любая внешняя по отношению к моделируемой системе сущность, которая взаимодействует с системой и использует ее функции и возможности;
* интерфейс — спецификация параметров системы, которые видимы извне без указания их внутренней структуры.
диаграмма состояний (statechart diagram) отражает модель поведения объектов в реальном или абстрактном мире. Все объекты имеют некоторый срок жизни:
* сначала они появляются или создаются;
* затем эволюционируют, проходя через определенные стадии существования;
* и, наконец, исчезают или умирают.
Для представления этого жизненного цикла предлагается модель состояний, состоящая из:
* множества состояний; состояние — положение объекта, в котором применяется определенный набор правил, линий поведения, предписаний и физических законов;
* множества событий; событие — абстракция инцидента или сигнала в реальном мире, который сообщает о перемещении чего-либо в новое состояние;
* множества правил переходов; правила определяют, какое новое состояние достигается, когда с объектом в данном состоянии происходит некоторое событие;
* множества действий; действие — это деятельность или операция, которая должна быть выполнена экземпляром (объектом), когда он переходит в некоторое состояние.
Диаграмма деятельности (activity diagram) предназначена для детализации особенностей алгоритмической и логической организации, выполняемой системой операций. Каждое действие расчленяется на фундаментальные процессы. Управление на диаграмме осуществляется либо явно — через потоки управления, либо неявно — через определяемые потоки данных. Процессы могут быть объединены в четыре основных группы.
* Процессы доступа, единственная цель которых заключается в получении доступа к элементам одного архива данных объекта.
* Генераторы событий, создающие событие, как результат работы.
* Процессы преобразования, основной целью которых является вычисление или преобразование данных.
* Процессы проверка, которые проверяют условие и исполняют один нескольких условных выводов управления.
Обратим внимание на то, что диаграммы деятельности можно считать частным случаем диаграмм состояний.
Диаграмма последовательности (sequence diagram) предназначена для моделирования еще одной разновидности взаимодействия — взаимодействия времени. С ее помощью отслеживается поведение взаимодействующих групп объектов. Диаграмма имеет два измерения.
* Слева направо, в виде линий жизни каждого объекта, участвующего во взаимодействии. Есть начальный момент времени — верхняя часть диаграммы, где указываются имена объектов.
* Сверху вниз, в виде вертикальных линий, представляющих линию жизни отдельного объекта. Линия жизни — время, в течение которого объект существует в системе.
Чтобы выделить активное состояние объекта, применяется специальное понятие — фокус управления, изображаемый как вытянутый прямоугольник, который становится продолжением линии жизни.
Сообщение — законченный фрагмент информации, отправляемый одним объектом другому. Существуют четыре разновидности сообщений.
* для вызова процедур, выполнения операций или, обозначения вложенных потоков управления.
* для обозначения простого (не вложенного) потока управления.
* для асинхронного сообщения между двумя объектами в некоторой процедурной последовательности.
* Для возврата из вызова процедуры.