Для уменьшения присущей естественному языку нечеткости понятий при описании системных требований используется специальный язык описания программ (program description language — PDL). Этот язык подобен таким языкам программирования, кaк Java и Ada, но более абстрактен. Достоинством применения PDL для создания спецификации является то, что в такой спецификации можно проверить синтаксис и семантику существующими программными средствами. Эти проверки позволяют удалить ошибки и несогласованность в описании требований.
Применение PDL приводит к очень подробным и детализированным спецификациям, которые иногда просто невозможно ввести в заключительный документ с описанием системных требований. Рекомендуется использовать PDL в следующих ситуациях.
1. Если описываемая операция состоит из последовательности простых действий и важен порядок их выполнения. Описать такие последовательности действий на естественном языке порой затруднительно, поскольку их выполнение может сопровождаться вложенными условиями или они могут повторяться циклически. Этой ситуации соответствует спецификация системы обслуживания банкоматов, приведенная в листинге 5.1. Здесь в качестве PDL я использовал язык Java. В этом листинге я привел только часть спецификации, опустив описания некоторых сервисов. Полную спецификацию можно найти на Web-странице данной книги.
2. Если необходимо специфицировать аппаратные или программные интерфейсы, так как практически во всех спецификациях системных требований приходится описывать интерфейсы.
Вместе с тем подход к построению спецификаций, основанный на PDL, имеет свои недостатки.
1. PDL, используемый для написания спецификации, может не иметь достаточных средств для описания всех системных функций.
2. Спецификации, созданные с помощью PDL, понятны только людям, имеющим определенные знания языков программирования.
3. Системная архитектура, полученная на основе такой спецификации, не является системной моделью, которая помогла бы пользователю разобраться в структуре системы.
Наиболее эффективным способом разработки спецификаций является сочетание подхода, основанного на PDL, с использованием структурированного естественного языка. В этом случае формализованные записи на естественном языке используются для описания системы в целом, a PDL — для описания последовательностей управляющих действий или для детализированного описания интерфейсов.