УДК 002.6:004.91
Ю.А. Орлова, канд. техн. наук, доц., (8442)248100, yulia.orlova@gmail.com (Роения, Волгоград, ВолгГТУ)
МЕТОДИКА АНАЛИЗА ТЕКСТА ТЕХНИЧЕСКОГО ЗАДАНИЯ
Рассматривается методика анализа текста технического задания с целью повышения эффективности проектирования программного обеспечения за счет автоматизации рутинного труда человека по извлечению полезной информации из стандартного документа и отображению ее в виде модели программного обеспечения.
Ключевые слова: методика, семантический анализ, техническое задание, проектирование программного обеспечения.
В настоящее время проектирование включает разработку требований или технического задания (ТЗ), разработку системы или технического проекта, программирование или рабочее проектирование, пробную эксплуатацию, сопровождение и улучшение. Необходимо учитывать взаимозависимость всех основных частей процесса проектирования от инструментария, технологий и организации работ. Большинство работ в области САПР направлены на создание и совершенствование инструментария для автоматизации процесса проектирования. Значительный вклад в развитие САПР внесли В.И.Аверченков, Г.С.Альтшуллер, A.B. Андрейчиков,
Н.П.Бусленко, В.П.Быков, Б.С.Воинов, Г.Д.Волкова, В. Гаспарский, Дж. К. Джонс, Дж. Диксон, М.Ф.Зарипов, В.А. Камаев, К.В.Кумунжиев, В.М.Курейчик, П.М.Мазуркин, И. Мюллер, И.П.Норенков, И.Ю.Петрова, А.И.Половинкин, А.Ф.Похилько, Ю.М. Соломенцев, Ф.Ханзен, П. Хилл, А. Холл и др.
Наиболее известные из коммерческих программных продуктов, используемых для проектирования программного обеспечения, предназначены для визуализации промежуточных и конечных результатов процесса проектирования. Некоторые из них позволяют полностью автоматизировать последние этапы проектирования: генерация программного кода, создание отчетной и сопровождающей документации и т.д. При этом задача автоматизации начального этапа проектирования - формирование и анализ текста технического задания - остается открытой. Это связано с необычайной сложностью проблемы синтеза и анализа семантики технического текста, для решения которой необходимо использовать симбиоз методов искусственного интеллекта, прикладной лингвистики, психологии и т.д.
Таким образом, актуальной является задача автоматизации начального этапа проектирования программного обеспечения, главным аспектом которой является автоматизация семантического анализа текста технического задания.
Автоматизация начальных этапов процесса проектирования включает в себя несколько этапов: разработка технического задания, анализ текста технического задания и построением моделей программного обеспечения, разработка технического проекта и рабочей документации. В данной работе будем рассматривать второй этап.
Целью исследования является повышение эффективности проектирования программного обеспечения за счет автоматизации семантического анализа текста технического задания.
В современных информационных технологиях важное место отводится инструментальным средствам, системам разработки и сопровождения ПО. Эти технологии и среды образуют CASE-системы. Широко известные CASE-системы, такие как BPWin, ERWin, OOWin, Design/IDEF, CASE-Аналитик, Silverrun, Rational Rose, Vantage Team Builder, S-Designer и др., позволяют частично автоматизировать процесс проектирования программного обеспечения. Однако, как показал анализ, данные системы автоматизируют конечные этапы проектирования программного обеспечения, такие как создание отчетной и сопровождающей документации, генерация кода и т.д. Начальный этап проектирования - анализ текста технического задания и построение модели программного обеспечения - выполняется аналитиком, т.е. задача автоматизации данного этапа остается открытой.
Проведенный анализ систем автоматизации проектирования показывает, что важное значение в процессе разработки ПО имеют средства спецификации проектов ПО. На начальных этапах проектирования ПО строится функциональная модель системы, которая описывает совокупность выполняемых системой функций. Результат представляется в виде диаграммы потоков данных и согласуется с заказчиком.
Построение функциональных спецификаций осуществляется аналитиком на основе текста технического задания и является в настоящий момент не автоматизированным этапом, так как сложность вызывает автоматизация семантического анализа естественного языка.
Системы обработки связных текстов довольно разнообразны по структуре: интеллектуальные вопрос-ответные системы, системы общения с базами данных, диалоговые системы решения задач, системы обработки связных текстов и др. (Alex, AURA, GalaktikaZOOM, Link Grammar Parser, Гарант-Парк-Интернет, WordTabulator, Алхимик, Худломер, Рабочее Место Лингвиста, ABBYY Retrieval & Morphology (ARM), Следопыт, BA-АЛ2000 идр.).
Наиболее известные в настоящее время разработки в области анализа текста осуществляют семантический анализ на уровне предложения или слова.
По результатам анализа существующих систем, использующих семантический анализ текста (Galaktika-ZOOM, AURA, Алхимик, Рабочее Место Лингвиста и др.), нами не было найдено системы, анализирующей текст технического задания.
Задачей исследования является автоматизированная обработка текста документа, который изначально создается человеком на естественном языке с соблюдением структуры, требования к которой изложены в ГОСТах.
На данном этапе развития методов анализа текста не представляется возможным анализировать естественный язык без каких-либо ограничений, поэтому необходимо было выявить особенности существующей практики написания технических заданий и сформулировать дополнительные требования, которым должно удовлетворять техническое задание, чтобы оно могло быть проанализировано с помощью предлагаемой в работе системы.
При проведении исследований было рассмотрено множество различных вариантов ТЗ и детально изучены ГОСТ 19.201-78 и ГОСТ 34.602-89.
На основе рассмотренных особенностей ТЗ сформулированы требования к методике анализа: возможность представления неточной информации и гибкость - процесс обработки ТЗ должен осуществляться с минимально возможными потерями.
Предлагаемая методика анализа текста технического задания (рисунок) содержит формализмы, необходимые для представления семантики требований к программному обеспечению на ранних этапах проектирования.
В соответствии с предлагаемой методикой система рассматривается как черный ящик, а предъявляемые к ней требования представляются в виде спецификации функций и определения потоков входных и выходных воздействий.
Методика анализа текста технического задания состоит из трех этапов: семантическая обработка текста, создание фреймовой структуры и создание диаграмм потоков данных системы, описанной в техническом задании.
Для реализации первого этапа методики была разработана семантическая модель текста технического задания, включающая требования, сформулированные в виде документа на ограниченном естественном языке; второго этапа - фреймовая структура, являющаяся внутренним представлением требований; третьего этапа - модель программного обеспечения в виде описания требований на графическом языке Data Flow Diagrams.
Уровень формализации Уровень реализации
Семантическая модель текста ТЗ
Нечеткая атрибутная грамматика
Внутреннее
представление
Фреймовая структура
Текст ТЗ на ограниченном естественном языке
Методика
^Обработка Тз)
Ж
(Создание фреймов)
Формальная
модель
Модель
программного
обеспечения
Диаграммы:
<3- 1
общая структура 2. выполняемые функции
V
^Создание диаграмм)
У
Методика анализа текста технического задания
Семантическая модель текста технического задания содержит разработанную расширенную нечеткую атрибутную грамматику над фреймовой структурой формального документа “Техническое задание”, которая позволяет наиболее полно отобразить содержимое ТЗ.
Расширенная нечеткая атрибутная грамматика, необходимая для автоматизированного анализа текста технического задания, определена в виде
АО = <*Т, Т, Р, Б, В, Б, А, Б(А)>, где N - конечное множество нетерминальных символов; Т - непересекаю-щееся с N множество терминальных символов; Р - конечное множество правил; Б - выделенный символ из N называемый начальным символом; В - множество лингвистических переменных ркд, соответствующих терминальным символам Т (переменная { на к уровне); Б - множество функций принадлежности 1кд, определяющих степень принадлежности цкд лингвистических переменных ркд; А - множество атрибутов, А = АвтиАвет, где Абш - синтаксические атрибуты, Авет - семантические атрибуты; В(А) -конечное множество семантических действий.
Лингвистические переменные из множества В={ркд}кд используемые для анализа текста технического задания описывается следующей пятеркой:
Рк,1 =<р, Т(Р), и, О, м>,
где Р - название лингвистической переменной (наименование и область применения, основание для разработки, назначение разработки, технические требования к программному изделию, стадии и этапы разработки и т.д.); Т(Р) - языковые выражения. Для лингвистических переменных верхнего уровня они являются лингвистическими переменными, соответствующими терминалам правой части правила. Для лингвистических переменных нижнего уровня - нечеткими переменными, то есть выражениями естественного языка. и - универсум, Тф) с и; О - правила морфологического и синтаксического описания языковых выражений, которые определяют синтаксические атрибуты Абш; М - семантическое правило для лингвистических переменных, которое индуцируется морфологическими и синтаксическими правилами, так как смысл терма в Т частично определяется его синтаксическим деревом, и семантическими атрибутами Авет.
Язык представления выражений состоит из констант и правил их последовательного применения. На морфологическом уровне константами являются граммемы (рд - родительный падеж, мн - множественное число). На синтаксическом - названия отношений и групп (ПОДЛ - отношение между подлежащим и сказуемым, ПГ - предложная группа). Для каждого слова входного текста выдается множество морфологических интерпретаций следующего вида: лемма; морфологическая часть речи; набор общих граммем; множество граммем.
Используются следующие синтаксические правила образования текста: деепричастный, причастный, вводный оборот; необособленное согласованное определение в препозиции; количественная группа; последовательность чисел вперемешку со знаками препинания; фрагмент с личной формой глагола, с кратким причастием, с кратким прилагательным, с предикативом, с инфинитивом, с тире, со сравнительным прилагательным; существительное + числовой идентификатор; правила для построения ФИО; слова степени с группой прилагательного или причастия; однородные прилагательные, наречия, инфинитивы, прилагательные сравнительной степени; группы даты, временных отрезков; аналитическая форма сравнительной степени прилагательного или наречия; наречие + глагол; одно или несколько прилагательных, согласованных по роду, числу и падежу с существительным и другие.
Методы представления связей между правилами транслируются на язык нечеткой математики. При этом связи представляются нечеткими отношениями, предикатами и правилами, а последовательность преобразований этих отношений - как процесс нечеткого вывода.
Лингвистические переменные верхнего уровня являются составными, то есть включают лингвистические переменные нижнего уровня. Благодаря этому можно построить дерево лингвистических переменных и установить зависимость между ними.
Функции принадлежности из множества Г={^д}кд лингвистических переменных {рк,1}к,1, необходимы для построения нечеткого вывода. В частности, каждому правилу грамматики из множества Р ставится в соответствие функция принадлежности 4д. Эта двойственная система подстановок используется для вычисления смысла лингвистической переменной.
Синтаксические атрибуты Абш, используемые в грамматике: ’Название’ - текст представляет собой наименование раздела; ’Содержимое’ -текст представляет собой содержимое раздела; ’Клауза’ - клауза; ’Клауза ТИРЕ’- Фрагмент с тире; ’Группа ГЕНИТ ИГ’ - именительная группа, связанная родительным падежом и др.
Семантические атрибуты, используемые в грамматике, содержат название атрибута Авет и семантические действие ЩА): “Фрейм СИС-ТЕМАСоздание ” - создается фрейм СИСТЕМА; ”Слот НАЗВАНИЕ СИСТЕМЫ=Присваивание ” - значение присваивается слоту НАЗВАНИЕ СИСТЕМЫ; “Фрейм ПОТОК ДАННЫХ = Создание” - создается фрейм ПОТОК ДАННЫХ; “Слот ВХОД = Присваивание”, “Слот ВЫХОД = Присваивание” - значение присваивается слотам ВХОД, ВЫХОД; “Слот КОЛ-ВО ДАННЫХ = Присваивание” - значение присваивается слоту КОЛИЧЕСТВО ДАННЫХ; “Слот ТИП ДАННЫХ = Присваивание” - значение присваивается слоту ТИП ДАННЫХ; “Слот НАЗВАНИЕ ПОТОКА ДАННЫХ = Присваивание” - значение присваивается слоту НАЗВАНИЕ ПОТОКА ДАННЫХ; “Фрейм ФУНКЦИЯ =Создание” “Слот НАЗВАНИЕ ФУНКЦИИ = Присваивание”- значение присваивается слоту НАЗВАНИЕ ФУНКЦИИ и др.
Фреймовая структура технического задания представлена в виде кортежа:
я = (Ия, Гя, 1Я, °я)
где Ия - название системы, Гя - вектор функций системы, Iя - вектор входных воздействий, Оя - вектор выходных воздействий.
р я =(^ Гя, Р?,..., , тогда Ряя = {| иГ, 1Г, , оГ, иГ, оГ'! ,
где ИГ - имя функции Г я, 1*¥ - вектор входных воздействий функции, и1Г - название действия, выполняемого функцией, ОГ - объект, над которым выполняется действие, Ир - ограничения на функцию, ОГ - вектор выходных воздействий функции.
Обозначим поток данных как DF (Data Flow), тогда JR , OR , 1F , OF имеют одинаковую структуру элементов:
DF = {-NDF, DDF, TDF, CDF ) где Ndf - название потока данных, Ddf - направление потока данных,-тип данных в потоке, CDF - количество данных в единичной порции.
На последнем этапе методики требования представляются в виде набора диаграмм потоков данных на графическом языке Data Flow Diagrams: общая структура системы с указанием ее входных, выходных потоков и функции, выполняемые системой, с их входными, выходными потоками.
Научная новизна состоит в следующем: разработана методика анализа текста технического задания на начальных этапах проектирования программного обеспечения, включающая семантическую модель текста технического задания, преобразование смысла текста во фреймовую структуру и построение на ее основе модели программного обеспечения:
1. Впервые семантическая модель текста технического задания представлена как расширенная нечеткая атрибутная грамматика над фреймовой структурой, содержащая синтаксические, семантические атрибуты и лингвистические переменные.
2. Предложены и разработаны методика и алгоритмы, предназначенные для преобразования исходного текста технического задания в разработанную фреймовую структуру, представляющую собой описание требований к проектируемому программному обеспечению.
3. Разработан метод построения модели программного обеспечения, описанного в техническом задании, в виде диаграмм потоков данных.
Практическая ценность работы заключается в следующем.
1. Разработанная методика анализа текста позволяет упростить процесс проектирования программного обеспечения на начальных этапах.
2. Разработанные формализмы анализа текста технических заданий могут использоваться для анализа других технических текстов и на других языках в различных предметных областях при автоматизации проектирования программного обеспечения.
3. В результате разработки и внедрения предлагаемой методики повышается эффективность проектирования за счет автоматизации рутинного труда человека по извлечению полезной информации из стандартного документа и отображению ее в виде модели программного обеспечения.
Работа выполнена при поддержке гранта РФФИ 10-01-00135-а.
Список литературы
1. Камаев В.А., Щербаков М.В. Об одном нейросетевом подходе идентификации сложных систем // Вестник компьютерных и информационных технологий, Машиностроение. 2004. №3. С. 20-24.
2. Камаев В.А., Щербаков М.В., Скоробогатченко Д.В. Автоматизированная система прогнозирования транспортно эксплуатационного состояния дорог // Вестник компьютерных и информационных технологий. Машиностроение. 2004. №4. С. 2-6.
3. Заболеева-Зотова А.В. Автоматизация семантического анализа документации технического задания // Вестник компьютерных и информационных технологий. Машиностроение. 2008. № 9. C. 26-34.
4. Заболеева-Зотова А.В. Атрибутная грамматика формального документа "Техническое задание" // Изв. ВолгГТУ. Сер. «Актуальные проблемы управления, вычислительной техники и информатики в технических системах»: межвуз. сб. науч. ст. / 2008. Вып. 4. №2. C. 39-43.
5. Заболеева-Зотова А.В. Автоматизация процедур семантического анализа текста технического задания // Известия ВолгГТУ. Сер. "Актуальные проблемы управления, вычислительной техники и информатики в технических системах": межвуз. сб. науч. ст. / 2007. Вып.3. №9. C. 49-52.
6. Заболеева-Зотова А.В. Моделирование лексического анализа текста технического задания // Изв. ВолгГТУ. Сер. "Актуальные проблемы управления, вычислительной техники и информатики в технических системах": межвуз. сб. науч. ст. / 2007. Вып.2. №2. C. 39-42.
7. Розалиев В.Л. Построение модели эмоций по речи человека // Известия ВолгГТУ. Серия “Актуальные проблемы управления, вычислительной техники и информатики в технических системах”: межвуз. сб. науч. ст. / 2007. Вып.3. №9. С.62-65.
8. Розалиев В.Л. Предпосылки, возможности, перспективы создания автоматизированной системы распознавания эмоциональности речи // Известия ВолгГТУ. Серия “Актуальные проблемы управления, вычислительной техники и информатики в технических системах”: межвуз. сб. науч. ст. / 2008. Вып.4. №2. С.58-61.
Y. Orlova
TECHNIQUE OF THE TEXT ANALYSIS OF A TECHNICAL SPECIFICATION
The technique of the text analysis of a technical specification for the purpose of increase efficiency software engineering at the expense of automation of routine work of the person on extraction of the helpful information from the standard document and to its display in the form of software model is considered.
Key words: technique, semantic analysis, technical specification, software engineering.
Получено 17.02.10