Skip to content

Instantly share code, notes, and snippets.

@rdnvndr
Last active December 27, 2022 11:35
Show Gist options
  • Save rdnvndr/fa1841179db6de5d092f40c51f6a5b12 to your computer and use it in GitHub Desktop.
Save rdnvndr/fa1841179db6de5d092f40c51f6a5b12 to your computer and use it in GitHub Desktop.
Формулировка требований

Формулировка требований

Общий шаблон

В общем случае требование формулируется с точки зрения системы или с точки зрения пользователя.

C точки зрения системы

Синтаксис:

  • <необязательное предварительное условие> <необязательный триггер события> <название системы> должна <ожидаемая реакция системы>

    <optional preconditions> <optional trigger> the <system name> shall <system response>

Примеры:

  • Если запрошенный химикат есть на складе химикатов, система должна отобразить список всех хранимых на складе контейнеров с указанным химикатом

    If the requested chemical is found in the chemical stockroom, the system shall display a list of all containers of the chemical that are currently in the stockroom

C точки зрения пользователя

Синтаксис:

  • <класс пользователя или имя действующего лица> должен иметь возможность <выполнить что-то> <с каким-то объектом> <условия выполнения, время отклика или декларация качества>

    The <user class or actor name> shall be able to <do something> <to some object> <qualifying conditions, response time, or quality statement>

  • <название системы> должна позволять (или разрешать или давать возможность) <название класса пользователя> <делать что-то>

    *The <system name> *shall let (or allow, permit, or enable) the <a particular user class name> to <do something>

Примеры:

  • Химик должен иметь возможность повторно заказать любой химикат, который он ранее заказывал, путем извлечения и редактирования параметров ранее введенного заказа

    The Chemist shall be able to reorder any chemical he has ordered in the past by retrieving and editing the order details

  • Оператор калл-центра должен иметь возможность получить информацию о позвонившем клиенте в течении 5 секунд после формирования запроса если поиск осуществляется с использованием номера договора.

Easy Approach to Requirements Syntax (EARS)

Easy Approach to Requirements Syntax (EARS), предлагает простой синтаксис для спецификации требований на естественном языке. Все требования можно разделить на два больших класса:

  • Нормальное поведение (normal operation) - это когда все взаимодействующие системы ведут себя как ожидается и соответствуют целям пользователя.

  • Нежелательное поведение (unwanted behaviour) - это любые отклонения от нормального поведения.

Все требования на естественном языке можно сформулировать при помощи пяти простых шаблона - 4 шаблона для нормального поведения и 1 для нежелательного

Безусловное поведение (Constant Template)

Безусловное поведение (Constant Template) - определяет поведение системы которое должно работать все время. Нет никаких предварительных условий или триггеров.

Синтаксис:

  • <название системы> должна <ожидаемая реакция системы>

    The <system name> shall <system response>

Примеры:

  • Автомобиль должен иметь максимальную розничную цену продажи XX

    The car shall have a maximum retail sale price of XXX

  • Автомобиль должен быть совместимым с требованиями безопасности, определенными в XXX

    The car shall be compliant with the safety requirements defined in XXX

  • Ноутбук имеет массу не более XXX грамм

    The laptop shall have a mass of no more than XXX grams

  • Ноутбук имеет минимальный срок службы аккумулятора XXX часов

    The laptop shall have a minimum battery life of XXX hours

По событию (Event-Driven Template)

По событию (Event-Driven Template) - требование работает как реакция на событие, обнаруженное на границе системы. Часто позволяет понять границы системы.

Синтаксис:

  • Когда <триггер> <название системы> должна <ожидаемая реакция системы>

    When <trigger> the <system name> shall <system response>

Примеры:

  • Когда нажата педаль сцепления, автомобиль должен отключить движущую силу

    When the clutch pedal is depressed, the car shall disengage the driving force

  • Когда получена команда "включить индикатор", автомобиль должен включить индикатор на передней, боковой и задней части автомобиля, а также обеспечить звуковую и визуальную индикацию для водителя

    When the "turn indicator" command is received, the car shall operate the indicator lights on the front, side and rear of the vehicle, and provide audible and visual conf irmation to the driver

  • Когда ноутбук выключен, а кнопка питания нажата, ноутбук должен загрузиться

    When the laptop is off and the power button is pressed, the laptop shall boot up

  • Когда ноутбук работает и ноутбук закрыт, ноутбук должен войти в режим "энергосбережения"

    When the laptop is running and the laptop is closed, the laptop shall enter "powersave" mode

По состоянию (State-Driven Template)

По состоянию (State-Driven Template) - требование к системе, которая находится в определенном состоянии.

Синтаксис:

  • Пока <состояние системы> <название системы> должна <ожидаемая реакция системы>

    While <in a specific state> the <system name> shall<system response>

Примеры:

  • Пока зажигание включено, автомобиль должен отображать уровень топлива и уровень масла при движении

    While the ignition is on, the car shall display the fuel level and the oil level to the driver

  • Пока ключ в замке зажигания, автосигнализация должны быть отключена

    While the key is in the ignition, the car alarm shall be inhibited

  • Пока работает ручной тормоз. колёса должны быть заблокированы

    While the handbrake is applied, the wheels shall be locked

  • Пока ноутбук работает от аккумулятора и заряд батареи ниже XXX%, ноутбук должен отображать "низкий заряд батареи"

    While the laptop is running on the battery and the battery is below XXX % charge, the laptop shall display "low battery"

  • Пока к внешнему аудио выходу подключено устройства, ноутбук должен отключить встроенный динамик и перенаправить аудиосигнал на внешний выход аудио устройства

    While an external audio output device is connected, the laptop shall mute the built-in speaker and send the audio output signal to the external audio output device

По условиям (Optional Feature Template)

По условиям (Optional Feature Template) - требования к системе, которая обладает конкретными свойствами.

Синтаксис:

  • При <наличие свойства> <название системы> должна <ожидаемая реакция системы>

    Where <feature is included> the <system name> shall <system response>

Примеры:

  • При наличии в автомобиле электрических стеклоподъемников электрическое управления окнами должны быть на дверной панели водителя

    Where the car has electric windows, the electric window controls shall be on the driver's door panel

  • При наличии автоматических стеклоочистителей ветрового стекла, автомобиль должен обнаружить влагу на ветровом стекле и включить стеклоочистители без команд

    Where the car includes automatic windscreen wipers, the car shall sense moisture on the windscreen and operate the windscreen wipers without driver commands

  • При установке «долгой жизни» батареи, ноутбук должен иметь минимальный срок службы батареи XXX часов

    Where a "long life" battery is fitted, the laptop shall have a minimum battery life of XXX hours

  • При легкой модели ноутбука, ноутбук должен иметь массу не более XXX грамм

    Where the laptop is a "lightweight" model, the laptop shall have a mass of no more than XXX grams

Нежелательное поведение (Unwanted Behaviour Template)

Нежелательное поведение (Unwanted Behaviour Template) - похоже на требования по событию.

Синтаксис:

  • Если <необязательное предварительное условие> <триггер>, то <название системы> должна <ожидаемая реакция системы>

    If <optional preconditions> <trigger>, then the <system name> shall <system response>

Примеры:

  • Если автомобиль обнаруживает попытки проникновения, то автомобиль должен включить автосигнализацию

    If the car detects attempted intrusion, then the car shall operate the car alarm

  • Если автомобиль обнаруживает низкое давление масла, то автомобиль должен отображать предупреждение "низкого давления масла"

    If the car detects low oil pressure, then the car shall display a "low oil pressure" warning

  • Если будет введен неверный пароль, то ноутбук должен отображать XXX предупреждений

    If the incorrect password is entered, then the laptop shall display XXX warning message

  • Если ноутбук подключен к несовместимым устройствам, то ноутбук должен предотвратить передачу данных, зарядку, показать сообщение с предупреждением XXX, и не быть поврежден

    If the laptop is connected to a non-compatible device, then the laptop shall prevent transfer of data, prevent transfer of charge, display XXX warning message and not be damaged

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment