И. Соммервилл - Инженерия программного обеспечения (1133538), страница 31
Текст из файла (страница 31)
Первоначальная архитектура системы помогает структурировать спецификацию требований. Системные требования должны описывать подсистемы, из которых состоит разрабатываемая система. 2. В большинстве случаев разрабатываемая система должна взаимодействовать с уже существующими системами. Это накладывает определенные ограничения на архитектуру новой системы. 3, В качестве внешнего системного требования может выступать условие использования для разрабатываемой системы специальной архитектуры (см. главу 18).
118 Часть 11. Требовнимя 5.3.1. Структурированный язык спецификаций Это сокращенная форма естественного языка, предназначенная для написания специ. фикации требований. Достоинством такого подхода к написанию спецификаций является то, что он сохраняет выразительность н понятность естественного языка и вместе с тем формализует описание требований. Структурированность языка проявляется в использовании специальной терминологии, а также шаблонов для описания системных требований. Структурированный язык может включать языковые конструкции, взятые из языков программирования. Пример использования структурированного языка для описания системных требований приведен в работе [160].
Здесь для написания спецификации требований для про. граммной системы управления полетами разработаны специальные формы, помомющие описать входные и выходные данные и функции системы. Для описания системных требований часто разрабатываются специальные формы и шаблоны. Они должны учитывать, на основе чего строится спецификация: на основе объ. сьтов, управляемых системой, на основе функций, выполняемых системой, или на основе событий, обрабатываемых системой. Пример формы для спецификации показан во врезке5.8.
Это более детализированное описание функции создания сгруктурных элементов лля системы редактирования программных архитектур, описанной во врезке 5.7. 1 Врезка 8.8. Спецификация системного требования, испойьзую[цая стандартйую фа![гну [ Т[ ! Эщгнпс/ДР[й/Ср д е/ВЕ/ИО/8.5.1 , :Функция. Добавление структурных элементов в схему, ~ Описание. Добавление структурных элементов в существующро схему системной архитектуры. Пользо-г„ ; ватель выбирает тнп струк!урпого элемшгга н его' местоположение. После вотавкн в схему струх[урный ' [ элемент становится' вьщеленным '(текущнм структурным "элементоьг)., Пользователь олределяеу„место4 ~ положение элемента путем перемещения курсора по области схемы: —,-., ",[ , Входные данные.
Тнп элемента, позиция элемента, идентификатор схемы. ! Источники входньог данньос:Тнп элемента н позиция элемента задаются пользователем; ндвнтнфнка- ! [ тор схемы получен нз базы данных проекта: ! Выходные даника. Идвюификатор схемы. , 'Пункт'назначения. База данйых'прсектц Идентнфнкатор схемы поыещаетсн в базу данаа проекта по завершении выполнения данной фуацин. ' Для вьеголивннв функции требуечсв схема, определенная входным идентификатором схемы.
! Предусловив. Схема открыта н отображается на экране пользователя. " ' Постусловив. Схема, за исключением вставки нового структурного, элемента, не изменяется. ! , Побочныевффекты. Нвт... ! "«, ...'..:., ": +' ,! ~ Слецнфнгец!ик Ълнпс/АРМ/Средстаа/0Е/й0/3!5. 1 Стыпгартные формы, используемые для специфицирования функциональных требо. ванин, должны содержать следующую информацию. 1. Описание функции илн объекта. Уь Описание входных данных и их источники.
5. Требования к программному обеспечению 119 3. Описание выходных данных с указанием пункта их назначения. 4. Указание, что необходимо для выполненил функции. 5. Если это спецификация функции, необходимо описание предварительных условий (предусловий), которые должны выполняться перед вызовом функции, и описание заключительного условия (посгусловия), которое должно быть выполнено после завершения выполнения функции. 6. Описание побочных эффектов (если они сеть). Использование структурированного языка снимает некоторые проблемы, прис>щие спецификациям, написанным естественным языком, поскольку снижает "вариабельность" спецификации и более эффективно ее структурирует.
Вместе с тем некоторзл "размытость" определений и описаниИ в спецификации остается. Альтернативой использованию структурированного естественного языка может служить специальный язык опи. сания спецификаций (рассмотрен в следующем разделе), который полностью снимает проблему нечеткости описания требований.
Но с другой стороны, неспециалист найдет такую спецификацию трудной Лля чтения и понимания. 5.3.2. Создание спецификаций с помощью РШ. Для уменьшения присущей естественному язык) нечеткости понлтий при описании системных требований используется специальный язык описания программ (ргоягапг г(езсг! рйоп )апяцаяе — РР().
Этот язык подобен таким языкам программирования, как)ага и Аг(а, но более абстрактсн. Достоинством применения Р01 для создания спецификации является то, что а такой спецификации можно проверить синтаксис и семантику существующими программными средствами. Эти проверки позволяют удалить ошибки и несогласованность в описании требований. Применение Р(У(. приводит к очень подробным и детализированным спецификациям, которые иногда просто невозможно ввести в закзючительный документ с описанием системных требований.
Я рекомендую использовать Р(11 в следующих ситуациях. 1. Если описываемал операция состоит из последовательности простых действий и важен порялок нх выполнения. Описать такие последовательности действий иа естественном языке порой затруднительно, поскольку их вьшолнсннс можс"г сопровождаться вложенныьги условиями или они могут повторяться циклически. Этой ситуации соответствует спецификация системы обслуживания банкоматов, приведенная в листинге 5.1. Злссь в качестве РШ.
я испол~ зевал л:няк )ага. В этом листинге я привел только часть спецификации, опустив описания некоторых сс(звпсов. Полную спецификацию лгожно на)!ти на ЖеЬстранице данной книги. 2. Если необхолимо специфицировать аппаратные нли программные интерфейсы. так как практически во всех спецификациях системных требований приходится описывать интерфейсы. Листинг 5.1. Спецификация системы управления банкоматами с1авв Атн ( // декларативная часть РцЫас всас1с чоЫ юв1п (бсгхпд агйв[]) с)згомв 1пча11с)сагс)( сгу ( ГВ(яСагд.геас) () //может породить исключительную ситуацию 1пча11ЙСагб р1п = кеуРаб.геадРтп () ; ассеюргя = 1 120 '1асть ЬЬ Требования иЬ11е ( (сь1всагб.ртп.едиа1а (р1п) д ассешрсв < 4 ) ( ртп = Кеурад.геабРтп () г аггешргв = асгешргв + 1 Яг ( (СЫвСагс).ртп.едпа1в (р1п) ) ГЬгомв пеи 1пча11бсагд (" Неправильный Ртп-код") сЫвВа1апсе = сЬЬвСагд.десва1апсе ()г бо ( Ясгееп.ргошг (" Пожалуйста, выберите сервис"); вегч1се = 5сгееп.сопсЬКеу ()г витссЬ (вегчтсе) ( саве Яегчтсев.и1снбгаиа1м1сЬНесе1ргг гесетргдесуз1гей = Сне г саве Яегнтсев.итгндгаиа1нонесетрс: ашоппг = КеуРас).геадйшоипг () тг (алюппг > СЫвва1апсе) ( Ясгееп.ргтпгшвд (" Счет превышен") Ьгеа1с г ) Птврепвег.с)е11чег (ашоппг) пеива1апсе = сЫвВа1апсе — ашоипс 1г (гесе1ргдегрг1гей) Несетрг.рг1пг (ашоппг, пеиВа1апсе) г Ьгеа1с //далее описание других сервисов дебап1С: Ьгеа)г ) иЫ1е (вегнтсе !- "Яегч1сев.дптг) СЬтвСагд.геспгптоцвег (" Пожалуйста, заберите карточку"! сагсЬ (1пна11с)Сагб е ) Ясгееп.рг1пгшвд (" Недействительна карточка или Рзп-код") ) //далее обработка других хсхлкязеихй )//ша1п () )//йтм Если читатель системной спецификации знаком с Р))Ь, чтение такой спецификации не вызовет у него затруднений.
Кроме того, если Р()Ь построен на основе какого-либо языка программирования, легко преобразовать спецификацию в системную архитектуру, при этом возможносгь неверной интерпретации требований сведена к минимуму. Нмсстс с тем подход к построению спецификаций, основанный на Р()Ь, имеет свои нщ достатки. 1. РГ)Ь, используемый для написания спецификации, может не иметь достаточных средств для описания всех системных функций. 2. Спецификации, созданные с помощью Р()Ь, понятны только людям, имеющим ощ рсдслснныс знанил языков программирования. уь Системная архитектура, полученная на основе такой спецификации, не является системной моделью, которая помогла бы пользователю разобраться в структуре системы.
Наиболее аффективным способом разработки спецификаций является сочетание подхола, основанного нз Р()Ь, с использованием структ)рированного естественного языка. В атом случае формализованные записи на естественном языке используются для описз. 1щя системы в цслом, а Р()Ь вЂ” для описания последовательностей управляющих действий плн для детализированного описания интерфейсов. 5. Требования к программному обеспечению 121 Б.З.З.