Описание: существует достаточно много структурных методов. Некоторые из них созданы для выполнения традиционных функций обработки данных и транзакций, другие (MASCOT, JSD, Yourdon в режиме реального времени) - в большей степени ориентированы на процессы управления и задачи реального времени (для систем, реализующих такие задачи, характеристика безопасности является более критичной, чем для других систем).

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

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

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

- декомпозиция данных и функций в разрабатываемой системе;

- использование контрольных таблиц, то есть списков типов объектов, нуждающихся в анализе;

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

Нотации, используемые для анализа и документирования проблем и объектов системы (например, на основе процессов и потоков данных), ориентированы на строгость, однако нотации для выражения функций обработки выполняемых этими объектами являются более неформальными. В то же время некоторые методы частично используют формальные нотации (например, JSD использует регулярные выражения; Yourdon, SOM и SDL используют теорию конечных автоматов). Увеличение точности нотации не только повышает уровень понимания, но и обеспечивает возможность автоматизированной обработки.

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

Настоящее приложение содержит подробное описание пяти структурных методов: представление требований, разработка системы по Джексону, MASCOT, Yourdon для систем реального времени и методология структурного анализа и проектирования (SADT).

Литература:

Software Design for Real-time Systems. J. E. Cooling, Chapman and Hall, 1991.

Structured Development for Real-Time Systems (3 Volumes). P. T. Ward and S. J. Mellor, Yourdon Press, 1985.

Essential Systems Analysis. St. M. McMenamin, F. Palmer, Yourdon Inc, New York, 1984.

The Use of Structured Methods in Development of Large Software-Based Avionic Systems. D. J. Hatley. Proc. DASC, Baltimore, 1984.

C.2.1.2 CORE - представление требований

Цель: обеспечение требований, определений и формулировок.

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

Литература:

Software Design for Real-time Systems. J. E. Cooling, Chapman и Hall, 1991.

C.2.1.3 JSD - метод разработки системы по Джексону

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

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

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

Литература:

An Overview JSD. J. R. Cameron. IEEE Transactions on Software Engineering, SE-12, No. 2, February 1986.

System Development. M. Jackson, Prentice-Hall, 1983.

C.2.1.4 MASCOT - модульный метод построения, эксплуатации и тестирования программных средств

Цель: проектирование и реализация систем реального времени.

Описание: MASCOT представляет собой модульный метод проектирования, который поддерживается программно. Данный метод описывает структуры систем реального времени способом, не зависящим от типа аппаратных средств или языка реализации. MASCOT высокоорганизованно реализует проектирование, что порождает строго модульную структуру, обеспечивая близкое соответствие между функциональными элементами проекта и элементами конструкции, появляющимися при интеграции системы. Система представляется в терминах сети конкурирующих процессов, которые взаимодействуют через каналы. Каналами могут быть либо совокупности файлов, либо очереди (конвейеры) данных. Управление доступом к каналу описывается независимо от процессов в терминах механизмов доступа, которые также активизируют правила планирования процессов. Последняя версия MASCOT была спроектирована с учетом реализации языка программирования ADA.

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

Литература:

MASCOT 3 User Guide MASCOT Users Forum. RSRE, Malvern, England, 1987.

C.2.1.5 Метод Йордона (Yourdon) для систем реального времени

Цель: спецификация и проектирование систем реального времени.

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

Сущностная модель состоит из двух частей:

- модели окружающей среды, содержащей описание границ между системой и ее окружением, а также внешних событий, на которые должна реагировать система;

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

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

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

Литература:

Structured Development for Real-Time Systems (3 Volumes). P. T. Ward and S. J. Mellor. Yourdon Press, 1985.

Strategies for Real-time System Specification. D. Hatley, E. Pirbhai, Dorset Publishing House, 1988.

C.2.1.6 SADT - методология структурного анализа и проектирования

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

Описание: в методологии SADT концепция активностных диаграмм играет главную роль. Активностная диаграмма состоит из активностей, сгруппированных в так называемые «блоки действий». Каждому блоку действий присваивается простое имя, и он связывается отношениями (изображаются стрелками) с другими блоками действий, которым также присваиваются уникальные имена. Каждый блок действий может быть иерархически декомпозирован на блоки действий более низкого уровня и отношения между ними. Каждая из четырех сторон блока действий имеет определенное в методологии SADT особое назначение: входы, управления, механизмы и выходы:

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

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

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

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

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

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

Литература:

Structured Analysis for Requirements Definition. D. T. Ross, K. E. Schoman Jr. IEEE Transactions on Software Engineering, Vol. SE-3, 1, 6-15, 1977.

Structured Analysis (SA): A Language for Communicating Ideas. D. T. Ross. IEEE Transactions on Software Engineering, Vol. SE-3, 1, 16-34, 1977.

Applications and Extensions of SADT. D. T. Ross. Computer, 25-34, April 1985.

Structured Analysis and Design Technique - Application on Safety Systems. W. Heins. Risk Assessment and Control Courseware, Module B1, Chapter 11, Delft University of Technology, Safety Science Group, PO Box 5050, 2600 GB Delft, Netherlands, 1989.

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

Примечание - Ссылка на данный метод/средство приведена в МЭК 61508-3 (таблицы В.5 и В.7).

Цель: программная поддержка описания потока данных в виде диаграмм.

Описание: диаграммы потоков данных описывают преобразование входных данных в выходные для каждого компонента схемы, представляющего различные преобразования. Диаграммы потоков данных состоят из трех компонентов:

- аннотированные стрелки - обозначают поток данных, входящих и исходящих из блоков преобразования с кратким описанием этих данных;

- аннотированные кружки - обозначают блоки преобразования с кратким описанием преобразований;

- операторы (and, xor) - эти операторы используются для связи аннотированных стрелок.

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

Создание диаграмм потока данных является наилучшим подходом при анализе систем в направлении от входов к выходам. Каждый кружок на диаграмме должен обозначать разное преобразование - его выходы должны отличаться от его входов. Не существует правил определения общей структуры диаграммы, и создание диаграммы потока данных является одним из творческих аспектов создания проекта системы в целом. Подобно всем проектам, процедура, уточняющая начальную диаграмму для создания конечной, является итеративной [20], [22].

Литература:

Software Engineering. I. Sommerville, Addison-Wesley, 3rd Edition, 1989.

C.2.3 Структурные диаграммы

Примечание - Ссылка на данный метод/средство приведена в МЭК 61508-3 (таблица В.5).

Цель: представление структуры программы в виде схемы.

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

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

- прямоугольника с именем модуля;

- линии, соединяющей эти прямоугольники, формирующие структуру;

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