Спецификации проектов программных систем

Инструментальные средства концептуального проектирования

 

CASE-системы

 

В современных информационных технологиях важное место отводится инструментальным средствам и средам разработки АС, в частности, систе­мам разработки и сопровождения их ПО. Эти технологии и среды образуют системы, называемые CASE-системами.

Используется двоякое толкование аббревиатуры CASE, соответствую­щее двум направлениям использования CASE-систем. Первое из них — Computer Aided System Engineering — подчеркивает направленность на под­держку концептуального проектирования сложных систем, преимущественно слабоструктурированных. Далее CASE-системы этого направления будем на­зывать системами CASE для концептуального проектирования. Второе на­правление было рассмотрено выше, его название Computer Aided Software Engineering переводится, как автоматизированное проектирование программ­ного обеспечения, соответствующие CASE-системы называют инструмен­тальными CASE или инструментальными средами разработки ПО (одно из близких к этому названий — RAD — Rapid Application Development).

Среди систем CASE для концептуального проектирования различают системы функционального, информационного или поведенческого проек­тирования. Наиболее известной методикой функционального проектирова­ния сложных систем является методика SADT (Structured Analysis and De­sign Technique), предложенная в 1973 г. Р. Россом и впоследствии ставшая основой международного стандарта IDEFO (Integrated DEFinition 0).

Системы информационного проектирования реализуют методики инфологического проектирования БД. Широко используются язык и методика создания информационных моделей приложений, закрепленные в между­народном стандарте IDEF1X. Кроме того, развитые коммерческие СУБД, как правило, имеют в своем составе совокупность CASE-средств проекти­рования приложений.

Основные положения стандартов IDEFO и IDEF1X использованы также при создании комплекса стандартов ISO 10303, лежащих в основе техноло­гии STEP для представления в компьютерных средах информации, относя­щейся к проектированию и производству в промышленности.

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

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

Среди инструментальных CASE-систем различают интегрированные комплексы инструментальных средств для автоматизации всех этапов жиз­ненного цикла ПО (такие системы называют Workbench) и специализиро­ванные инструментальные средства для выполнения отдельных функций (Tools). Средства CASE по своему функциональному назначению принад­лежат к одной из следующих групп:

1) средства программирования;

2) средства управления программным проектом;

3) средства верификации (анализа) программ;

4) средства документирования.

К первой группе относятся компиляторы с алгоритмических языков; по­строители диаграмм потоков данных; планировщики для построения высоко­уровневых спецификаций и планов ПО (возможно, на основе баз знаний, реа­лизованных в экспертных системах); интерпретаторы языков спецификаций и языков четвертого поколения; прототайпер для разработки внешних интер­фейсов — экранов, форм выходных документов, сценариев диалога; гене­раторы программ определенных классов (например, конверторы заданных языков, драйверы устройств программного управления, постпроцессоры); кросс-средства; отладчики программ. При этом под языками спецификаций понимают средства укрупненного описания разрабатываемых алгоритмов и программ, к языкам 4GL относят языки для компиляции программ из набо­ра готовых модулей, реализующих типовые функции достаточно общих приложений (чаще всего это функции технико-экономических систем).

Основой средств управления программным проектом является репозиторий — БД проекта. Именно в репозитории отражена история развития программного проекта, содержатся все созданные версии (исходный про­граммный код, исполняемые программы, библиотеки, сопроводительная документация и т. п.) с помощью репозитория осуществляется контроль и отслеживание вносимых изменений.

Средства верификации служат для оценки эффективности исполнения разрабатываемых программ и определения наличия в них ошибок и проти­воречий. Различают статические и динамические анализаторы. В статиче­ских анализаторах ПО исследуется на наличие неопределенных данных, бесконечных циклов, недопустимых передач управления и т. п. Динамиче­ский анализатор функционирует в процессе исполнения проверяемой про­граммы; при этом исследуются трассы, измеряются частоты обращений к модулям и т. п. Используемый математический аппарат — сети Петри, тео­рия массового обслуживания.

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

Проектирование ПО с помощью CASE-систем включает в себя не­сколько этапов:

Начальный этап — предварительное изучение проблемы. Результат представляют в виде исходной диаграммы потоков данных и со­гласуют с заказчиком.

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

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

Спецификации проектов программных систем

 

Важное значение в процессе разработки ПО имеют средства специфи­кации проектов ПО. Средства спецификации в значительной мере опреде­ляют суть методов CASE.

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

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

Аспектами моделирования приложений являются функциональное, по­веденческое и информационное описания.

Практически все способы функциональных спецификаций имеют сле­дующие общие черты:

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

• элементарной частью диаграммы каждого уровня является конст­рукция вход-функция-выход;

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

В большинстве случаев функциональные диаграммы являются диа­граммами потоков данных (DFD — Data Flow Diagram). В DFD блоки (пря­моугольники) соответствуют функциям, дуги — входным и выходным по­токам данных. Поясняющий текст представлен в виде «словарей данных», в которых указаны компонентный состав потоков данных, число повторений циклов и т. п. Для описания структуры информационных потоков можно использовать нотацию Бэкуса-Наура.

Одна из нотаций для DFD предложена Е. Йорданом. В ней описывают процессы (функции), потоки данных, хранилища и внешние сущности, их условные обозначения показаны на рис. 1.

Рис. 1. Изображения элементов в нотации Е. Йордана

 

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

Для описания информационных моделей наибольшее распространение получили диаграммы сущность-связь (ERD — Entity-Relation Diagrams), в которых предусмотрены средства для описания сущностей, атрибутов и от­ношений. Спецификации хранилищ данных в CASE, как правило, даются с помощью диаграмм сущность-связь. Стандартной методикой построения таких диаграмм является IDEF1X.

Поведенческие модели описывают процессы обработки информации. В инструментальных CASE-системах их представляют в виде граф-схем, диа­грамм перехода состояний, таблиц решений, псевдокодов (языков специ­фикаций), процедурных языков программирования, в том числе языков четвертого поколения.

В граф-схемах блоки, как и в DFD, используют для задания процессов обработки, но дуги имеют иной смысл — они описывают последователь­ность передач управления (вместе с специальными блоками управления).

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

Близкий по своему характеру способ описания процессов основан на таблицах (или деревьях) решений. Каждый столбец таблицы решений соот­ветствует определенному сочетанию условий, при выполнении которых осу­ществляются действия, указанные в нижерасположенных клетках столбца.

Таблицы решений удобны при описании процессов с многократными ветвлениями. В этих случаях помогают также визуальные языки програм­мирования, в которых для описания процессов используют графические элементы, подобные приведенным на рис.2.

Рис. 2. Примеры описания операторов в визуальных языках программирования

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

Языки четвертого поколения предназначены для описания программ как совокупностей заранее разработанных программных модулей. Поэтому одна команда языка четвертого поколения может соответствовать значи­тельному фрагменту программы на языке 3GL. Примерами языков 4GL мо­гут служить Informix-4GL, JAM, NewEra, XAL.

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

Объектный подход представлен компонентно-ориентированными тех­нологиями разработки ПО. При объектном подходе ПО формируется из компонентов, объединяющих в себе алгоритмы и данные и взаимодейст­вующих путем обмена сообщениями. Для поддержки объектного подхода разработан стандартный язык моделирования приложений UML.