4.2 Среда SRS
Важно рассмотреть ту роль, которую SRS играет в общем плане проекта, определяемого в стандарте IEEE 610.12-1990. По существу, программное обеспечение может содержать все функциональные возможности проекта или может являться частью большей системы. В последнем случае обычно имеется SRS, которая будет устанавливать интерфейсы между системой и частью ее программного обеспечения, и будет распространять внешние требования к характеристикам и функциям на эту часть программного обеспечения. Конечно, в этом случае SRS должна быть согласована и расширена в соответствии с этими системными требованиями.
Стандарт IEEE 1074-1997 описывает стадии жизненного цикла программного обеспечения и соответствующие входные данные для каждой стадии. Другие стандарты, такие как перечисленные в Разделе 2, относятся к другим частям жизненного цикла программного обеспечения и могут дополнять требования к программному обеспечению.
Так как SRS играет определенную роль в процессе разработки программного обеспечения, составителю (-ям) SRS следует проявлять осторожность, чтобы не выйти за пределы этой роли. Это означает, что SRS:
а) Должна правильно определять все требования к программному обеспечению. Причиной существования какого-либо требования к программному обеспечению может являться характер решаемой задачи или особая характеристика проекта.
б) Не должна описывать детали разработки или реализации. Они должны быть описаны на этапе разработки проекта.
в) Не должна налагать дополнительные ограничения на программное обеспечение. Эти ограничения надлежащим образом определяются в других документах, таких как план обеспечения качества программных средств.
Следовательно, правильно составленная SRS ограничивает диапазон допустимых проектов, но не определяет какой-либо конкретный проект.
4.3 Характеристики правильно составленной SRS
SRS должна быть:
а) Корректной;
б) Однозначной;
в) Полной;
г) Непротиворечивой;
д) Упорядоченной по ее значимости и/или устойчивости;
е) Проверяемой;
ж) Модифицируемой;
з) Отслеживаемой.
4.3.1 Корректность
SRS является корректной, если, и только, если каждое требование, изложенное в ней, является требованием, которому должно удовлетворять программное обеспечение.
Не существует какого-либо средства или процедуры, которые гарантирует корректность. SRS должна сравниваться с любой качественной применимой спецификацией, такой как спецификация требований к системе, с другой документацией проекта и с другими применимыми стандартами, и должна гарантировать согласованность. В качестве альтернативы заказчик или пользователь может определить, правильно ли SRS отражает фактические потребности. Отслеживаемость делает эту процедуру более простой и менее подверженной ошибкам (см. 4.3.8).
4.3.2 Однозначность
SRS является однозначной, если и только, если каждое изложенное в ней требование может интерпретироваться только однозначно. Как минимум, для этого требуется, чтобы каждая характеристика конечного продукта была описана с использованием одного уникального термина.
4 Авторское право © 1998 IEEE. Все права сохранены.
рекомендуемая Институтом Инженеров по Электротехнике и Радиоэлектронике (IEEE) Стандарт IEEE 830-1998
(Пересмотр стандарта IEEE 830-1993)
В тех случаях, когда термин, используемый в специфическом контексте, может иметь множественные значения, этот термин должен быть включен в глоссарий, в котором его значение описывается более конкретно.
SRS является важной частью процесса составления требований или жизненного цикла программного обеспечения и используется в разработке, реализации, мониторинге проекта, верификации и проверке правильности, а также в обучении, как описано в стандарте IEEE 1074-1997. SRS должна быть однозначной как для тех, кто составляет ее, так и для тех, кто ее использует. Однако, эти группы часто не имеют одинаковую квалификацию и, следовательно, не имеют тенденции к описанию требований к программному обеспечению одним и тем же образом. Способы представления требований, которые улучшают спецификацию требований для разработчика, могут оказаться неэффективными в том, что они уменьшают их понимание пользователем, и наоборот.
В подразделах с 4.3.2.1 по 4.3.2.3 даются рекомендации, как избежать неоднозначности.
4.3.2.1 "Ловушки" естественного языка
Требования часто пишутся на естественном языке (например, английском). Естественный язык по существу является неоднозначным. Естественный язык SRS должен анализироваться независимой стороной с целью идентификации неоднозначного использование так, чтобы эту неоднозначность можно было скорректировать.
4.3.2.2 Языки спецификаций требований
Один из способов избежать неоднозначности, свойственной естественному языку, состоит в том, чтобы составлять SRS на особом языке спецификаций требований. Языковые процессоры автоматически обнаруживают многие лексические, синтаксические и семантические ошибки.
Одним из недостатков использования таких языков является длительность их изучения. К тому же, многие пользователи, не имеющие отношения к технике, считают их непонятными. Кроме того, эти языки имеют тенденцию к улучшению при точном выражении некоторых типов требований и обращении к некоторым типам систем. Таким образом, они могут влиять на требования неуловимым образом.
4.3.2.3 Инструменты представления требований
В целом, методы составления требований и языки, а также инструменты, которые их поддерживают, разделяются на три основных категории - объект, процесс и поведенческие характеристики.. При использовании объектно-ориентированных методов, требования классифицируются языком реальных объектов, их атрибутов и функций, выполняемых этими объектами. Методы, ориентированные на процесс, классифицируют требования по иерархии функций, которые сообщаются через потоки данных. Поведенческие подходы описывают внешнее поведение системы языком неких абстрактных понятий (таких как исчисления предикатов), математических функций или конечных автоматов.
Степень, до которой такие средства и методы могут быть полезны в подготовке SRS, зависит от объема и сложности программы. В данном документе не делается никаких попыток описать или одобрить какой-либо специфический инструмент.
При использовании любого из этих подходов самым оптимальным будет придерживаться описания на естественном языке. При этом заказчики, незнакомые с перечисленными понятиями, будут в состоянии понять SRS.
4.3.3 Завершенность
SRS является полной, если и только, если она включает следующие элементы:
а) Все существенные требования, независимо от того, относятся ли они к функциональным возможностям, рабочим характеристикам, проектным ограничениям, атрибутам или внешним интерфейсам. В частности, должны быть подтверждены и обработаны любые внешние требования, налагаемые спецификацией системы.
Авторское право © 1998 IEEE. Все права сохранены.
Стандарт IEEE 830-1998 Методика составления спецификаций требований к программному обеспечению
(Пересмотр стандарта IEEE 830-1993)
б) Определение откликов программного обеспечения на все классы входных данных, которые могут быть реализованы, во всех возможных ситуациях. Следует заметить, что важно определить отклики, как на допустимые, так и недопустимые входные значения.
в) Полные обозначения и ссылки на все рисунки, таблицы и схемы в SRS и определение всех терминов и единиц измерения.
4.3.3.1 Использование условия TBD
Любая SRS, в которой используется фраза "должно быть определено" (условие TBD), не является полной SRS. Однако, иногда условие TBD необходимо и должно сопровождаться:
а) Описанием условий, являющихся причиной возникновения условия TBD (например, почему ответ не известен) так, чтобы ситуацию можно было разрешить;
б) Описанием того, что должно быть сделано, чтобы исключить условие TBD, кто ответственен за его устранение и когда оно должно быть устранено.
4.3.4 Непротиворечивость
Непротиворечивость обозначает внутреннюю непротиворечивость. Если SRS не согласовывается с каким-то документом более высокого уровня, таким как, например, спецификации системных требований, то она является некорректной (см. 4.3.1).
4.3.4.1 Внутренняя непротиворечивость
SRS является внутренне непротиворечивой, если и только, если никакой набор отдельных требований, описанных в ней, не находится в противоречии с ней. Тремя типами вероятных конфликтов в SRS являются следующие:
а) Могут входить в конфликт заданные характеристики реальных объектов. Например,
1) Формат отчета о выходных данных может быть описан в одном требовании в табличном виде, а в другом - в текстовом.
2) Одно требование может устанавливать, что все индикаторы должны быть зелеными, в то время как в другом может быть указано, что все индикаторы должны быть синими.
б) Между двумя заданными действиями может существовать логический или временной конфликт. Например,
-
Одно требование может устанавливать, что программа будет добавлять два входа, а другое может указывать, что программа будет умножать их.
-
Одно требование может устанавливать, что "А" должно всегда следовать за "Б", в то время как другое может требовать, чтобы события "А" и "Б" происходили одновременно.
в) Два или более требований могут описывать один и тот же реальный объект, но использовать для этого объекта различные условия. Например, запрос программы о вводе пользователем может называться "подсказкой" в одном требовании и "репликой" в другом. Использование стандартной терминологии и определений поддерживает непротиворечивость.
4.3.5 Упорядочивание по значимости и/или устойчивости
SRS является упорядоченной по значимости и/или устойчивости, если каждое требование в ней имеет идентификатор, указывающий или значимость или устойчивость этого конкретного требования.
Как правило, все требования, которые касаются программного изделия, не являются важными в равной степени. Некоторые требования могут быть необходимыми, особенно для приложений, критичных в течение жизненного цикла, в то время как другие могут быть желательными.
Авторское право © 1998 IEEE. Все права сохранены.
рекомендуемая Институтом Инженеров по Электротехнике и Радиоэлектронике (IEEE) Стандарт IEEE 830-1998
(Пересмотр стандарта IEEE 830-1993)
Каждое требование в SRS должно быть идентифицировано, чтобы сделать эти различия четкими и явными. Идентификация требований следующим образом помогает:
а) заказчикам более тщательно рассмотреть каждое требование, что часто позволяет разъяснить любые скрытые допущения, которые могут быть заключены в них.
б) разработчикам принять правильные проектные решения и приложить соответствующие усилия к различным составляющим программного изделия.
4.3.5.1 Степень устойчивости
Один метод идентификации требований использует величину устойчивости. Устойчивость может быть выражена с точки зрения числа ожидаемых изменений для любого требования, основанных на опыте или знании предстоящих событий, которые влияют на организацию, функции, и пользователей, поддерживаемых системой программного обеспечения.
4.3.5.2 Степень необходимости
Другой способ упорядочения требований состоит в том, чтобы различать классы требований как необходимые, условные и необязательные.
а) Необходимые. Подразумевают, что программное обеспечение не будет пригодным, если эти требования не будут обеспечены согласованным образом.
б) Условные. Подразумевают, что эти требования расширяют программное изделие, но не сделают его непригодным при их отсутствии.
в) Необязательные. Подразумевают класс функций, которые могут заслуживать или не заслуживать внимания. Это дает поставщику возможность предложить что-либо, что выходит за пределы SRS.
4.3.6 Проверяемость
SRS является проверяемой, если и только, если каждое требование, изложенное в ней, может быть проверено. Требование являются проверяемым, если и только, если существует некий конечный эффективный процесс, используя который пользователь или машина могут убедиться, что программное изделие удовлетворяет этому требованию. В целом, любое неоднозначное требование не проверяемо.
Непроверяемые требования включают формулировки типа "работает хорошо", "хороший интерфейс с пользователем" и "обычно должно происходить". Эти требования не могут быть проверены, так как невозможно определить термины "хороший", "хорошо" или "обычно". Утверждение о том, что "программа никогда не должна зацикливаться" является непроверяемым, так как тестирование этого свойства теоретически невозможно.
Примером проверяемого утверждения является следующее:
Выходные данные программы должны вырабатываться в пределах 20 секунд в течение 60 % временного интервала события; и должны вырабатываться в пределах 30 секунд в течение 100 % временного интервала события.
Это утверждение может быть проверено, так как в нем используются конкретные термины и измеримые величины.
Если нельзя изобрести метод, чтобы определить, отвечает ли программное обеспечение определенному требованию, то это требование следует исключить или пересмотреть.
Авторское право © 1998 IEEE. Все права сохранены.
Стандарт IEEE 830-1998 Методика составления спецификаций требований к программному обеспечению
(Пересмотр стандарта IEEE 830-1993)
4.3.7 Модифицируемость
SRS является модифицируемой, если и только, если ее структура и стиль таковы, что любые изменения требований могут быть выполнены легко, полностью и непротиворечивым образом при сохранении структуры и стиля. Как правило, модифицируемость требует, чтобы SRS:
а) Имела связанную и легкую в использовании структуру с оглавлением, алфавитным указателем и явно выраженными перекрестными ссылками;
б) Не была избыточной (то есть, одно и то же требование не должно появляться в SRS более чем в одном месте);
в) Выражала каждое требование раздельно, не смешивая его с другими требованиями.
Избыточность сама по себе не является ошибкой, но она легко может привести к появлению ошибок. Иногда избыточность может помочь сделать SRS более читаемой, но тогда могут возникнуть проблемы при модификации избыточного документа. Например, требование может быть изменено только в одном из тех мест, где оно появляется. Тогда SRS становится противоречивой. Каждый раз, когда избыточность необходима, SRS должна включать явные перекрестные ссылки, чтобы сделать ее модифицируемой.
4.3.8 Отслеживаемость
SRS является отслеживаемой, если четко прослеживается источник каждого из ее требований и если она облегчает обращение к каждому из требований при дальнейшей разработке или модернизации документации. Рекомендуются следующие два типа отслеживаемости:
а) Обратная отслеживаемостъ (то есть, к предыдущим стадиям разработки). Зависит от каждого требования, которое в явном виде ссылается на его источник в более ранних документах.
б) Прямая отслеживаемостъ (то есть, ко всем документы, порождаемым SRS). Зависит от каждого требования в SRS, имеющего однозначно определенное имя или номер ссылки.
Прямая отслеживаемость SRS особенно важна, когда программное изделие вступает в стадию функционирования и сопровождения. По мере изменения кода и проектных документов необходимо иметь возможность определить полный набор требований, на которые могут повлиять эти изменения.
4.4 Совместная подготовка SRS
Процесс разработки программного обеспечения должен начинаться с соглашения между поставщиком и заказчиком по вопросу о том, что должно выполнять завершенное программное обеспечение. Это соглашение в форме SRS должно быть подготовлено совместно. Это важно, так как обычно ни заказчик, ни поставщик не имеют достаточной квалификации, чтобы составить качественную SRS по отдельности.
а) Заказчики обычно не понимают в достаточной степени процесс проектирования и разработки программного обеспечения, чтобы составить SRS, пригодную для использования.
б) Поставщики обычно не понимают в достаточной степени проблемы заказчика и поле приложения усилий, чтобы определить требования для системы, которая удовлетворит заказчика.
Следовательно, заказчик и поставщик должны работать вместе, чтобы создать хорошо написанную и полностью понятную SRS.
Особая ситуация возникает, когда система и программное обеспечение определяются одновременно. Тогда функциональные возможности, интерфейсы, рабочие характеристики и другие атрибуты и ограничения программного обеспечения не предопределяются, а задаются совместно и подлежат согласованию и изменению. При этом более трудно, но не менее важно сделать так, чтобы SRS удовлетворяла характеристикам, изложенным в пункте 4.3. В частности, SRS, которая не соответствует требованиям спецификации ее родительской системы, является не корректной.
8 Авторское право © 1998 IEEE. Все права сохранены.
рекомендуемая Институтом Инженеров по Электротехнике и Радиоэлектронике (IEEE) Стандарт IEEE 830-1998
(Пересмотр стандарта IEEE 830-1993)
Данная методика специально не обсуждает стиль, исполнение языка или методы качественного написания. Однако весьма важно, чтобы SRS была хорошо написана. В качестве руководства могут использоваться технические книги по общим методам написания.
4.5 Развитие SRS
По мере разработки программного изделия может возникнуть необходимость в развитии SRS. Может оказаться невозможным определить некоторые детали во время начала разработки проекта (например, может оказаться невозможным определить все форматы экрана для интерактивной программы на стадии выработки требований). В результате в SRS обнаруживаются неточности, недостатки и погрешности, являющиеся результатом дополнительных изменений.
Двумя главными критериями в этом процессе являются следующие:
а) Требования должны быть определены в том объеме и с той тщательностью, как они известны на текущий момент, даже если эволюционные изменения могут быть предсказаны как неизбежные. Должен быть отмечен тот факт, что они не являются полными.
б) Должен быть инициализирован формальный процесс изменений, чтобы идентифицировать, управлять, прослеживать и составлять отчет о запроектированных изменениях. Утвержденные изменения требований должны быть включены в SRS таким образом, чтобы:
-
Обеспечить точную и полную проверку изменений;
-
Обеспечить анализ текущих и замененных частей SRS..
4.6 Макетирование
Макетирование часто используется на этапе выработки требований проекта. Существуют многие инструментальные средства, которые позволяют очень быстро и легко создать прототип, проявляющий некоторые характеристики системы. См. также ASTM Е1340-96.
Прототипы удобны по следующим причинам:
а) Заказчик может более удобным образом наблюдать прототип и оценивать его, нежели читать SRS и оценивать ее. Таким образом, прототип обеспечивает быструю обратную связь.
б) Прототип отображает непредвиденные аспекты поведения систем. Таким образом, он генерирует не только ответы, но также и новые вопросы. Это помогает сосредоточиться на SRS.
в) SRS, базирующаяся на прототипе, имеет тенденцию подвергаться меньшим изменениям во время разработки, сокращая, таким образом ее длительность.
Прототип должен использоваться как способ установления требований к программному обеспечению. Некоторые характеристики, такие как форматы экрана или отчета, могут быть выделены непосредственно из прототипа. Другие требования могут быть выведены посредством проведения экспериментов с прототипом.
4.7 Встраивание структуры в SRS
Любое требование определяет внешне видимую функцию или атрибут системы. Структура описывает специфический подкомпонент системы и/или его интерфейс с другими подкомпонентами. Составитель (-ли) SRS должны ясно осознавать разницу между идентификацией требуемых ограничений структуры и проектированием специфической структуры. Следует заметить, что каждое требование в SRS ограничивает варианты структуры. Тем не менее, это не означает, что каждое требование является структурой.
Авторское право © 1998 IEEE. Все права сохранены.
Стандарт IEEE 830-1998 Методика составления спецификаций требований к программному обеспечению
(Пересмотр стандарта IEEE 830-1993)
SRS должна указывать, какие функции должны выполняться и с какими данными, чтобы получить то, что является результатом, в каком месте и для кого. SRS должна фокусироваться на выполняемых услугах. SRS обычно не должна указывать элементы структуры, такие как:
а) Разбиение разделов программного обеспечения на модули;
б) Присваивание функций модулям;
в) Описание потока данных или управления между модулями;
г) Выбор структур данных.
4.7.1 Необходимые требования к структуре
В особых случаях некоторые требования могут строго ограничивать структуру. Например, требования к защищенности или безопасности могут отражать непосредственно в структуре потребность в:
а) Сохранении некоторых функций в отдельных модулях;
б) Разрешении только ограниченной связи между некоторыми областями программы;
в) Проверке целостности данных для критических переменных.
Примерами применимых ограничений структуры являются физические требования, требования к техническим характеристикам, стандарты разработки программного обеспечения и стандарты обеспечения качества программных средств.
Поэтому, требования должны излагаться исключительно с внешней точки зрения. При использовании моделей для иллюстрации требований, помните, что модель только указывает внешнее поведение, но не определяет структуру.
4.8 Встраивание требований к проекту в SRS
SRS должна относиться к программному изделию, а не к процессу его создания.
Требования к проекту представляют соглашение между заказчиком и поставщиком по договорным вопросам, имеющим отношение к созданию программного обеспечения и, таким образом, не должны включаться в SRS. Они обычно включают такие позиции, как
а) Стоимость;
б) Графики поставки;
в) Процедуры составления отчетов;
г) Методы разработки программного обеспечения;
д) Обеспечение качества;
е) Критерии утверждения и верификации;
ж) Процедуры приемки.
Требования к проекту определяются в других документах, обычно в плане разработки программного обеспечения, плане обеспечения качества программных средств или формулировке работ.
5. Части SRS
В этом разделе обсуждается каждая из необходимых частей SRS. Эти части показаны на рисунке 1 в виде эскиза, который может служить примером для составления SRS..
Несмотря на то, что SRS не должна повторять этот эскиз или использовать наименования, приведенные здесь для ее частей, качественно составленная SRS должна включать всю информацию, обсуждаемую здесь.
10 Авторское право © 1998 ШЕЕ. Все права сохранены.
рекомендуемая Институтом Инженеров по Электротехнике и Радиоэлектронике (IEEE)
Стандарт IEEE 830-1998
(Пересмотр стандарта
IEEE 830-1993)
Содержание
1..Введение
-
Назначение
-
Область действия
-
Определения, акронимы и сокращения
-
Публикации
-
Краткий обзор
2. Полное описание
-
Перспектива изделия
-
Функции изделия
-
Характеристики пользователя
-
Ограничения
-
Допущения и зависимости
3. Специфические требования (Объяснения возможных специфических требований см. в пунктах с 5.3.1 по 5.3.8. Несколько различных способов организации этого раздела SRS см. в Приложении)
Приложения
Алфавитный указатель
Достарыңызбен бөлісу: |