2.4 Каждая система делает конкретные предположения о той среде, в которой она будет работать. Некоторые из них представляют собой не что иное, как описание входных данных, которые система будет принимать и выходных данных, которые система будет производить: типы этих входных/выходных данных, диапазоны их значений, а также единицы измерения.
Иногда правильное поведение системы зависит от более сложных предположений о её окружении, которые можно сформулировать как требования, предъявляемые системой к своей среде.
Определение предположений об окружении системы (то есть ограничений) важно и с точки зрения поддержки эксплуатации системы, и для обеспечения возможности её переиспользования. Неспособность сформулировать ограничения и последующее неправильное использование системы является распространённой причиной самых разных сбоев.
2.4.1 Определите тип, диапазон и точность переменных как часть ограничений (то есть предположений системы об окружающей среде).
2.4.2 Задокументируйте обоснование использования именно таких ограничений.
2.4.3 Опишите ограничения рядом с тем объектом, который они ограничивают, чтобы было легко определить все обязательства, возложенные на каждый объект.
2.4.4 Если ограничение определяет взаимосвязь между несколькими внешними объектами, определите тот объект, который отвечает за ограничение, и опишите ограничение рядом с ним.
2.4.5 Если ограничение определяет взаимосвязь между несколькими внешними объектами, определите внешний объект, ответственный за обеспечение выполнения ограничения, и свяжите ограничение с этим объектом.
Ограничения — это предположения об окружающей среде, от которых зависит правильная работа системы. Они могут быть заданы как математическая зависимость между измеряемыми и изменяемыми переменными. Эта взаимосвязь может быть такой же простой, как типы, диапазоны и единицы измерения переменных (система предполагает, что высота никогда не будет меньше 100 футов ниже уровня моря или более 50 000 футов над уровнем моря), или такой же сложной, как полное сопоставление изменяемых переменных с измеряемыми, которые полностью описывают поведение среды.
Определение ограничений, на которые система опирается в своей работе, является такой же важной частью требований, как и определение требуемого поведения системы. Хукс и Фарри ссылаются на неверные факты или ограничения как на наиболее распространённую форму ошибок в требованиях [22].
Неспособность определить и задокументировать ограничения также стала причиной нескольких серьёзных сбоев в работе ПО. В некоторых случаях сбой происходил из-за того, что подсистема, разработанная одной командой, не учитывала ограничения, на которые опиралась другая.
Первым важным шагом к предотвращению подобных сбоев является выявление и документирование ограничений. Выявление ограничений имеет важное значение для повторного использования компонентов системы. В некоторых случаях серьезные сбои происходили из-за того, что существующая система была повторно использована в другой среде, и разработчики не знали об ограничениях, на которые опирались их коллеги.
Документирование ограничений является необходимым условием для повторного использования компонентов системы.
Что дальше
В следующем разделе мы подробнее разберём как определить ограничения системы.