Синтаксические методы
![]() | В этой статье есть несколько проблем. Пожалуйста, помогите улучшить его или обсудите эти проблемы на странице обсуждения . ( Узнайте, как и когда удалять эти шаблонные сообщения )
|
В обеспечения разработке программного синтаксические методы представляют собой методы разработки правильных программ . Эти методы пытаются обнаружить и, таким образом, предотвратить определенные виды дефектов ( ошибок ), исследуя структуру создаваемого кода на синтаксическом, а не семантическом уровне.
Использование
[ редактировать ]Синтаксические методы часто используются, когда формальные методы невозможны, и часто являются более простой и, что более важно, более дешевой альтернативой. В некритически важных системах формальные методы могут оказаться слишком дорогими по сравнению с теми преимуществами, которые они приносят. Затраты на моделирование, персонал, выполнение и разработку часто могут перевесить выгоды, полученные от предотвращения возможных сбоев. Этот подход основан на использовании абстрактного графа зависимостей , который создается на основе рассматриваемой системы. Абстрактный граф зависимостей — это ориентированный граф , граф вершин , соединенных односторонними ребрами. Чаще всего вершины и ребра графа представляют собой входы и выходы функций или компонентов системы. Проверяя созданный абстрактный граф зависимостей, разработчик может обнаружить синтаксические аномалии (или аномалии Preece ) в системе. Хотя аномалии не всегда являются дефектами, они часто дают ключ к обнаружению дефектов в системе. Таким образом, аномалии в системе помогают разработчику указать правильное направление в поиске дефектов.
Аномалии
[ редактировать ]Существует четыре основных типа аномалий:
- Избыточность — фрагмент графа является избыточным, если его терминалы могут быть достигнуты, если фрагмент удален из графа.
- Конфликты . Система содержит конфликты, если одни и те же входные данные могут означать разные выходные данные.
- Зацикленность . Петля на графике указывает на зацикленность в системе.
- Недостатки . Блок является дефектным, если подмножество входов не приводит к отсутствию терминалов.
Хотя аномалии часто указывают на дефекты, они также могут легко отражать нормальную предполагаемую функциональность системы. Разработчик должен изучить аномалии, чтобы определить, являются ли они ключом к проблеме или просто ложной тревогой.
При создании визуального ориентированного графа системы можно выявить несколько очевидных визуальных флажков, указывающих на вышеуказанные аномалии:
- подграф без входных данных, вероятно, упускает что-то важное;
- глядя на транзитивное замыкание системы (все узлы ниже узла), узел в своем собственном транзитивном замыкании указывает на цикличность;
- при рассмотрении транзитивного замыкания системы разделение между парами строк указывает на избыточность;
- конфликты несколько сложнее, поскольку они становятся скорее семантическими, чем синтаксическими.
Когда формальные методы оказываются слишком дорогостоящими, систему можно проверить исключительно на ее синтаксисе . Это не так тщательно, поскольку он рассматривает систему только на поверхностном уровне. Однако это дает разработчику множество подсказок относительно того, где могут скрываться дефекты системы.
Общие ссылки
[ редактировать ]- «Синтаксическая теория архитектуры программного обеспечения». Дин, Томас Р., Корди, Джеймс Р. Транзакции IEEE по разработке программного обеспечения 21 (4), стр. 302–313 (1995)
- «Абстракция синтаксического типа» Гроссман Д., Моррисетт Г., Зданцевич С. Транзакции ACM в языках и системах программирования 22 (6), стр. 1037–1080.
- «Новый алгоритм нарезки неструктурированных программ». Харман М., Даничич С. Журнал обслуживания и эволюции программного обеспечения 10 (6), стр. 415–441.
- «Обратное проектирование встроенного программного обеспечения с использованием распознавания синтаксических образов» Фурниго, М., Лиарде, П.-Ю., Теглиа, Ю. Тремо, А. Робер-Инасио, Ф. Конспекты лекций по информатике (включая подсерию «Конспекты лекций по искусственному интеллекту»). Интеллект и конспекты лекций по биоинформатике), том 4277 LNCS - I, 2006, страницы 527–536. (2006)
Внешние ссылки
[ редактировать ]- «Проект: Алгебраические и синтаксические методы в информатике (ASMICS 2)» Парижский университет 7, Лаборатория теоретической информатики и программирования (рабочая группа)
- «Синтаксические методы в компьютерной графике» Павла Славика.