И. Соммервилл - Инженерия программного обеспечения (1133538), страница 29
Текст из файла (страница 29)
ВрВЗКа Вт ПРИЬГЕФгйафуВКЦИОВВДГйкаастРЕбеааннй ЮФ' -%' ":,';,:!цнц'-!-',-' Ъ";:";, "':";" .. трабоааяяпн пгродуятудрояйунпф~ гщ3$ф~ чам'гвуг $";-'~'. ~; йнхтэяанй':9%-;;;, .3*. вгг гак: ~$1 4.0.8! 'ЕсеЪзайькцдггйствйя между ййтлрфейам АРВЕ и логьзамтелем:осущесгаляются„нса основе;стан= онфиденциальной информации о, аиначике системы, цюме: ео ~~ Основная проблема нефункциональных требований состоит в том, что их выполнение трудно проверить. Часто они пишутся для того, чтобы отобразить общие цели заказчика системы, такие, как простота эксплуатации, возиожность восстановления после сбоев или быстрый ответ на запросы пользователя.
Реализация подобных требований может ока. заться сложной для системных разработчиков, поскольку они нечетко сформулированы и открывают простор для различных толкований. Подобную ситуацию иллюстрирует пример, приведенный во врезке 5.2. Здесь одним иэ основных показателей (целей) системы указана простота эксплуатации, что в виде нефункциональных требований можно выразить различными способами.
В данном случае требование сформулировано так, что его можно проверить. Врезка 6.2.''Систеийые цеди'и проверка требоааиий " ьСИСтВМа дщщНа'бйтв ПВОСПГй~В З2СПяуйтацнн'дГН ОямнаГО ОлвратОра И, СВОднтв ЮЛИЧЕСтап ЕП1 Онн-, Опатному оператору должны.быгьдосюупйы'ясе';системные функции после деух часов'обучения работе :,с данной,системой. Пориелщго обучения среднее число нпибок операгорр не должка превышать двух. В идеале нефункциональные требования должны выражаться через количественные показатели, которые можно объективно измерить.
В табл. 5.2 приведены показатели, с помощью которых можно специфицировать нефункциональные системные свойства. На практике выразить нефункциональные требования с помощью количественных по. казателсй весьма затруднительно, Часто заказчик ПО не может оформить свое видение будущей системы посредством требований, выраженных количественными показателями. Либо некоторые системные требования, например удобство сопровождения, вообще нельзя выразить через количественные показатели. Кроме того, затраты на объективное измерение количественных нефункционаяьных требований могут оказаться крайне высо- 112 Масть 11. Требования кими.
Поэтому часто документ, специфицирующий требования к сисгеме, содержит описание системных целей совместно с четко сформулированными требованиями. Эгн сио темные цели полезны, поскольку отралшют представления (и приоритеты) заказчика о будущей системе. Вместе с тем заказчик должен понимать, что его системные цели мо~ут трактоваться различными способами и их невозможно объективно проконтролировать. Таблица 5,2. Количественные показатели длв нефункциональных требований Показатель Единицы измерения Количество выполненных транзакций в секунду; время реакции на действия пользователя; время обновления экрана Килобайты; Скорость размер количество модулей памяти Времл обучения персонала; количество статей в справочной системе Средняя продолжительность времени между двумя последова- тельными проявлениями ошибок в системе; Простота экспл)отации Надежность вероятность выхода системы из строя; коэффициент готовности системы Время восстановления системы после сбоя; процент событий, приводящих к сбоям; вероятность порчи данных при сбоях Процент машинно-зависимых операторов; Устойчивость к сбоям Переносимость количество машинно.зависимых подсистем Нефункциональные требования часто вступают в конфликт с другими требованиями, предъявляемыми системе.
Например, в соответствии с одним из снсгемных требований размер системы не должен превышать 4 Мбайт, поскольку она должна полностью поместиться в постоянное запоминающее усгройство ограниченной емкости. Другое требование обязывает использовать для написания системы язык программирования Ада, который часто применяется для создания критических систем реального времени. Но, допустим, откомпилированная системная программа, написанная на языке Ада, занимает более 4 Мбайт. Итак, одновременное выполнение этих требований невозможно.
В этой ситуации следует отказаться от одного из требований. Можно или применить другой язык программирования. или увеличить объем памяти, выделяемый для системы. В принципе функциональные и нефункциональные требования в документе, описывающем требования к системе, должны быть разнесены по разным разделам. Но на практике это условие выполнить непросто. Если нефункциональные требования поместить отдельно от функциональных, будет трудно проследить взаимосвязи между ними.
Если все требования собраны в одном списке, сложно провести анализ функциональных и нефункциональных требований в отдельности и определить требования, относящиеся к системе в целом. Вид представления требований в одном документе также существенно зависит от типа спецнфицируемой системы. Но в любом случае должны быть выделены требования, описывающие интеграционные свойства системы. Для этого их можно поместить в отдельный раздел либо каким-нибудь другим способом отделить от остальных требований. Б.
Требоваиив к црограммиому обеспечеиию 113 5.1.3. Требования предметной области Эти требования отображают условия, в которых будет эксплуатироваться программная система. Они могут быть представлены в виде новых функциональных требований, в виде ограничений на уже сформулированные функциональные требования нли в виде указаний, как система должна выполнять вычисления.
Эти требования очень важны, поскольку отображают ту предметную область, где будет использоваться данная система. Невыполнение требований предметной области может привести к выходу системы из строя. В качестве примера рассмотрим требования к библиотечной системе (см. раздел 5.1.1). 1. Стандартный пользовательский интерфейс, предоставляющий доступ ко всем библиотечным базам данных, должен основываться на стандарте Х59.50.
2. Для обеспечения авторских прав некоторые документы должны быть удалены иэ системы сразу после получения. Для этого. в зависимости от желания пользователя, эти документы могут быть распечатаны или на локальном системном сервере, или на сетевом принтере. Первое требование является ограничением на системное функциональное требование.
Оно указывает, что пользовательский интерфейс к базам данных должен быть реализован согласно соответствующему библиотечному стандарту. Второе требование является внешним и направлено на выполнение закона об авторских правах, применяемого к библиотечным материалам. Иэ этого требования вйтекает, что система должна иметь средство "удалить на печать", применяемое автоматически для некоторых типов библиотечных документов. Во врезке 5.5 приведен пример требования предметной области, указывающего, как должны выполняться вычисления. Оно взято из спецификации системы автоматического торможения поезда. Эта система должна автоматически останавливать поезд на красный сигнал семафора.
Данное требование указывает способ вычисления скорости поезда прн торможении. Здесь использована терминология, применяемая при расчетах скоростей поезда. Чтобы разобраться в ней, необходимы соответствующие знания о системах управления поездами и ик характеристиках. Врезка В.З. Пример требований предметной области 1 ,,Торможение поезда вмчкслэется'по формуле " . ','; оэгэм Вим +'В ~ц ~ ! где Ц„'„,, равен 9.81'и с' э компенсирующий градиент/альфй. Значение 9.81 и сэ/альфа нзаастно'дэя Приведенный пример показывает основную проблему, связанную с требованиями предметной области.
Требования этого типа используют язык и обозначения, присущие данной предметной области. что затрудняет нх понимание разработчиками ПО. Вследствие этого требования предметной области не всегда выполняются так, как подразумевается заказчиками программной системы. 5.2. Пользовательские требования Пользовательские требования к системе должны описывать функциональные и нефункциональные системные требования так, чтобы они были понятны даже пользователю, не имеющему специальных технических знаний.
Эти требования должны определять только 114 Часть Н. Требования внешнее повсдсиис системы, избегая по возможности опрсдслсния структурных характсри. стик систсмы. Пользоватсльскис трсбовапия должны быть написаны сстсствснным языком с ис пол ьзованисм простых таблиц, а такжс наглядных и понятных диаграмм. Вместе с том при описании трсбоваиий на ссгсствснпом языке могут возникнуть различпыс проблсмы.
1. Омсутсэмка чсяшосяш изложения. Иногда нелегко изложить какую-либо мысль естествснным языком чстко и недвусмысленно, нс сдслав при этом текст многословным и трудночитаемым. 2. Сксиикис жрятованкй. В пользовательских трсбованиях отсутствует четкое раздслснис на функциональиыс и нсфункциональиыс требования, на системные цсли и просктную информацию. 3. Обзсдкнсякс гэребоепкий. Несколько различных требований к системе могут аписы. ватьсл как сдннос пользоватсльскос трсбованис. В качсствс иллюстрации к описанным проблемам рассмотрим трсбовапис к срсдс про. граммирования на языке Ада, представленное во врсзкс5зн Это трсбовапис содержит описание как общего плана, так и дстзлизированнос. Из информации, содержащейся в описании обшсго плана, слсдуст.
что срсдства управления конфигурацией являются со. ставиой частью интерфейса ЛРЗЕ, в то время как из более детализированного описания вытскаст, что средства управлсция конфнгурацисй должны прсдостаалять доступ к объсьтам, входящим в состав групп, без указания их полных имсн. Эту инфориацню лучше помсстить в спецификацию систсмных трсбовапий. Врезка 5.4„Требование к,базе данных длн среды программироаанин Дба Я.д.б. Беза денных додвнй поддерживать генерацию н упрввление конфшурэцией обье пов; в базе Ден- ' ных сгруппированные обьекты могут выстугють в виде отделыах'обьектов. Средство упрэвмния кон- ' фигурацией должно предостввшь воэмошюсть доступа к обьвктвм, входящим в сосщв групп, с помо- ~ ~ щью нх неполных имен.