Pull to refresh

Использование семантической аннотации для идентификации требований

Reading time7 min
Views3.7K
Добрый день, %userName%.

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

Далее идет немного математики, теоретических выкладок и много букв.

Управление требованиями

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

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

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

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

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

Еще работы на данную тему

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

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

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

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

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

Математический аппарат семантической аннотации

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

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

Представим требование с помощью следующей модели:

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

Так же требование на естественном языке можно идентифицировать набором концептов:

, где
Сi — концепт, описывающий требование.

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

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

Таким образом, требование можно представить в виде следующей модели:

, где
CO — концепт, описывающий объект требования,
CS — концепт, описывающий субъект требования,
CE — концепт, описывающий событие требования,
CA — концепт, описывающий действие,
{CD} — набор концептов из категорий, полученных от домена.

Примем мерой различия двух требований семантическое расстояние, которое является показателем смыслового различия и является действительным числом в интервале от 0 до 1, где 1 — требования идентичны, 0 — требования совершенно не связаны. Исходными данными для вычисления являются концепты, которыми аннотированы требования.

Введем дополнительные понятия:

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

Словом или цепочкой в алфавите V называют произвольный кортеж из множества (k-й декартовой степени алфавита V) для различных k = 0, 1, 2…

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

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

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

, где
a­i1 — i-й символ первой строки,
ai2 — i-й символ второй строки.

H равно единице, если символы a­i1 и a­i2 совпадают и равно нулю во всех остальных случаях.

Для вычисления семантического расстояния между требованиями используем расстояние Хэмминга в следующем виде:

, где
L — семантическое расстояние
Ci — i-й концепт требования
N — число концептов в требовании (длина требования).

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

Первоначально все категории в рамках домена имеют вес равный единице.

Представим категорию в виде следующей модели:

, где
Т — название категории,
W — вес категории в рамках домена.

Тогда семантическое расстояние с учетом весов категорий будет вычисляться по следующей формуле:

, где
Wi — вес i-й категории в рамках домена.
max W –вес категории с максимальным весом в рамках домена

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

Для расчета семантического расстояния с учетом семантических отношений между концептами введем следующую модель концепта:

, где
С — концепт,
V — значение лингвистической переменной, описывающее концепт,
{S} — совокупность концептов, которые являются синонимами с данным. Семантическое расстояние между ними равно 1.
{M} — совокупность меронимов для данного концепта. Семантическое расстояние в данном случае определяется экспертным путем на основе словаря меронимов. Чем менее связаны между собой термины, тем меньше между ними семантическое расстояние. Оно равно единице, если термины являются синонимами и стремится к нулю по мере смыслового удаления.

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

, где
— совокупность концептов, состоящих в семантическом отношении с концептом .

В данном случае сравниваются не только исходные концепты, но и все связанные с ними семантическими отношениями концептами. В случае, если исходные концепты не совпадают, то сравниваются связанные концепты в следующей последовательности:
  1. Сравниваются все синонимичные концепты. Если среди синонимичных концептов нет совпадения, то переходим к пункту 2.
  2. Сравниваем все концепты с учетом меронимии в порядке убывания семантического расстояния. Расстояние между исходным и меронимичным концептом лежит в интервале [0..1].

Заключение

Использование семантического расстояния и семантической аннотации позволяет:
  1. Выявлять сходные требования на этапе ввода и предотвращать их повторный ввод.
  2. Искать сходные требования среди уже реализованных и использовать реализующий их код, сценарии тестирования, варианты использования и другие проектные артефакты повторно.
  3. Выполнять кластерный анализ требований для их группировки и последующего анализа.
  4. Прогнозировать параметры требований.

Прогнозирование параметров требований является приоритетным направлением и будет полезен при использовании методологий гибкого программирования, например, SСRUM для прогнозирования трудоемкости требований.

PS: Прошу не ругать за академический стиль изложения — проба пера для публикации в ВАКовском журнале.
Tags:
Hubs:
Total votes 24: ↑18 and ↓6+12
Comments15

Articles