От Зефира в коробке к Structure Zephyr или как тест-менеджеру перекроить внут...
Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика
1. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
1
2
3
4
5
6
7
8
9
10
11
12
Шаблонизируй это
Как паттерны требований
облегчают жизнь аналитика
Виталий Мальцев
Devexperts
2. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Devexperts
Виталий Мальцев
Обо мне
Бизнес-аналитик
4 года
7 крупных проектов
Проекты
От социальных сетей для трейдеров
до крупнейших торговых платформ
в США и Европе
1
2
3
4
5
6
7
8
9
10
11
12
3. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
?Как мы работаем
1
2
3
4
5
6
7
8
9
10
11
12
4. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
С чистого листа...
Подготовка к интервью
Знакомство с заказчиком
Понимание особенностей его деятельности
Осознание специфики работы
Примерные вопросы
Формирование вопросов по запрошенной функциональности
Поиск и анализ аналогичных решений
Черновик требований
Отсутствие частей функциональности
Много размытых требований
Ошибочные предположения
... каждый раз
1
2
3
4
5
6
7
8
9
10
11
12
5. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Изобретая колесо...
Схожая функциональность
Отчеты
Стандарты
Регистрация
Одинаковые ошибки
Пропущена часть требований
Не учтены известные ограничения
Забыли про полимеры
Разное описание
Новые формулировки
Классные диаграммы
Прочий креатив
... постоянно
1
2
3
4
5
6
7
8
9
10
11
12
6. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Время идет...
3 этапа ревью требований
Заказчик
Разработчик
Тестировщик
Ревью требований внутри
команды
Объяснение новичкам правил команды
Лишние итерации из-за отсутствия стандартного подхода
" "Объяснение очевидного
Разработчики не любят новых форматов спецификаций
Вещи, кажущиеся очевидными, обязательно упускаются
... всегда
1
2
3
4
5
6
7
8
9
10
11
12
7. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Олимпийские показатели
Что ждут от требований?
Качество Скорость Точность
Понятность
Последова-
тельность
1
2
3
4
5
6
7
8
9
10
11
12
8. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Как этого ?достичь
1
2
3
4
5
6
7
8
9
10
11
12
9. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
-Паттерны требований
это руководство к написанию
требований определенного
типа
1
2
3
4
5
6
7
8
9
10
11
12
10. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Структура требования
Элементы и варианты взаимодействия для описываемой
функциональности
Важные аспекты
Моменты, которые необходимо учесть при работе над требованием
Шаблон
Формулировки, обычно используемые для описания требования
Дополнительные требования
Требования, обычно описывающие смежную функциональность
1
2
3
4
5
6
7
8
9
10
11
12
Паттерны требований
11. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Применение паттернов
Software Requirement Patterns (Stephen Withall)
Основные требования к системе
Данные
Пользовательские функции
Производительность
Гибкость
Контроль доступа
1
2
3
4
5
6
7
8
9
10
11
12
12. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Разработка
паттернов
1
2
3
4
5
6
7
8
9
10
11
12
13. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Разработка паттерна
Систематизация
требований
Анализ
применимости
в будущем
Поиск
похожих
требований
1
2
3
4
5
6
7
8
9
10
11
12
14. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Паттерн
аутентификации
1
2
3
4
5
6
7
8
9
10
11
12
15. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Authentication system for XYZ
1.System shall provide the access to the
following website functionality for non-
authenticated users:...
2.System shall provide the option to
authenticate on the XYZ website by providing
trading platform credentials.
3.System shall provide the option to select the
domain which credentials will be provided for
login from the below list:...
4.As required data is provided, system shall
validate provided credentials against selected
domain via XYZ Authentication webservice
Authentication system for ABC
1.Non-authenticated users shall be able to
perform following actions: ...
2.System shall provide the option to
authenticate on the website for ABC
customers by providing existing credentials
from ABC platform.
3.As required data is provided, system shall
pass it to the ABC Authentication service and
receive a response.
Анализ структуры похожих требований
1
2
3
4
5
6
7
8
9
10
11
12
16. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Authentication system for XYZ
1.System shall provide the access to the
following website functionality for non-
authenticated users:...
2.System shall provide the option to
authenticate on the XYZ website by providing
trading platform credentials.
3.System shall provide the option to select the
domain which credentials will be provided for
login from the below list:
...
4.As required data is provided, system shall
validate provided credentials against selected
domain via XYZ Authentication webservice
Authentication system for ABC
1.Non-authenticated users shall be able to
perform following actions: ...
2.System shall provide the option to
authenticate on the website for ABC
customers by providing existing credentials
from ABC platform.
3.As required data is provided, system shall
pass it to the ABC Authentication service and
receive a response.
Выявление общих частей и отличий
Создание паттерна
1
2
3
4
5
6
7
8
9
10
11
12
17. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Структура паттерна аутентификации
Пользователи Механизм
аутентификации
Доступ без
аутентификации
1
2
3
4
5
6
7
8
9
10
11
12
18. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Структура паттерна аутентификации
Дополнительные
:требования
Восстановление пароля
Remember Me
Logout
1
2
3
4
5
6
7
8
9
10
11
12
19. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Users:
Specify the list of users to whom the requirements are applied (All users,
Admin users, Customers, etc.)
Mechanism:
Specify the mechanism used for authentication (Password validation,
Webservice, Fingerprints, etc.)
Edge-cases:
Specify what shall system do in case of successful/unsuccessful
authentication attempt
Template:
System shall provide <users> the option to authenticate on the website
by <mechanism>.
As required data is provided, system shall validate provided credentials
<mechanism>
In case of <edge-case1...>, system shall <specify actions>
Add. requirements:
Specify additional requirements related to authentication.
Паттерн аутентификации
1
2
3
4
5
6
7
8
9
10
11
12
20. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Паттерн
разрешения доступа
к функциям системы
1
2
3
4
5
6
7
8
9
10
11
12
21. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Permissions for XYZ functionality
1.System shall introduce "Perform forex
transfer" STAFF permission in the configure
permissions and roles interface of admin
application.
2.If the effective status of "Perform forex
transfer" STAFF permission is set to ALLOW
system shall provide admin user with the
option to add forex transfer ("+ Add Forex
Transfer") in the Transaction selector
interface.
3.If the effective status of "Perform forex
transfer" STAFF permission is DENY (by
default) system shall NOT provide admin user
with the option to add forex transfer ("+ Add
Forex Transfer") in the Transaction selector
interface.
Permissions for ABC functionality
1.System shall provide Staff permission 'Make BP
Adjustment' within Permissions and Roles
interface.
2.System shall provide the following access type
options for 'Make BP Adjustment' permission: <Not
Defined>, Allow, Deny.
3.By default Effective Access type value of 'Make
BP Adjustment' permission shall be set to <Not
Defined>. System shall process <Not Defined>
Access type as Denied Effective Access.
4.Admin user shall be able to edit BP Adjustment
attribute of chosen user account if Effective
Access type for 'Make BP Adjustment' permission
for that user is set to Allowed.
Анализ структуры похожих требований
1
2
3
4
5
6
7
8
9
10
11
12
22. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Permissions for XYZ functionality
1.System shall introduce "Perform forex
transfer" STAFF permission in the configure
permissions and roles interface of admin
application.
2.If the effective status of "Perform forex
transfer" STAFF permission is set to ALLOW
system shall provide admin user with the
option to add forex transfer ("+ Add Forex
Transfer") in the Transaction selector
interface.
3.If the effective status of "Perform forex
transfer" STAFF permission is DENY (by
default) system shall NOT provide admin user
with the option to add forex transfer ("+ Add
Forex Transfer") in the Transaction selector
interface.
Permissions for ABC functionality
1.System shall provide Staff permission 'Make BP
Adjustment' within Permissions and Roles
interface.
2.System shall provide the following access type
options for 'Make BP Adjustment' permission: <Not
Defined>, Allow, Deny.
3.By default Effective Access type value of 'Make
BP Adjustment' permission shall be set to <Not
Defined>. System shall process <Not Defined>
Access type as Denied Effective Access.
4.Admin user shall be able to edit BP Adjustment
attribute of chosen user account if Effective
Access type for 'Make BP Adjustment' permission
for that user is set to Allowed.
Анализ структуры похожих требований
1
2
3
4
5
6
7
8
9
10
11
12
23. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Структура паттерна разрешения доступа
Пользователи Поведение
системы
Название
пермиссии и
состояния
1
2
3
4
5
6
7
8
9
10
11
12
24. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Структура паттерна разрешения доступа
Дополнительные
:требования
Миграция пермиссий
1
2
3
4
5
6
7
8
9
10
11
12
25. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Паттерн разрешения доступа
1
2
3
4
5
6
7
8
9
10
11
12
Users:
Specify the list of users to whom permission is applicable (admin users
only (STAFF), clients (FEATURE))
Permission name and purpose:
Specify the name of permission, its location in the list, and purpose.
System behavior for each permission state:
Specify possible effective states for permission (ALLOW/DENY, R/W
access) and system behavior for each state.
Template:
System shall provide <users> with <permission name> permission to
<purpose> in <permission availability>.
When effective access type for this permission is set to
<permission_state> for user, system shall <specify_action>
Add. requirements:
Specify additional requirements related to permissions (like Migration
from old permissions to the new ones).
26. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
1
2
3
4
5
6
7
8
9
10
11
12
Паттерн
Аудита изменений
в системе
27. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Структура паттерна аудита изменений
Атрибуты сущности
Создание аудита
Отображение аудита
1
2
3
4
5
6
7
8
9
10
11
12
28. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Создание паттерна
Структура паттерна аудита изменений
Дополнительные
:требования
Фильтрация и поиск аудитов
1
2
3
4
5
6
7
8
9
10
11
12
29. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Attributes:
Specify the attributes of the entity which system shall audit.
Audit trigger:
Specify upon which condition audit record should be created (manual
change, change by system).
Audit record:
Specify what data should be included in the attribute record (All entity
data, only modified attributes)
Record display:
Specify the options to view the record (Description and Detailed view,
Delta comparison and highlighting)
Add. requirements:
Specify additional requirements related to permissions (like search of the
particular audit, filtering of audits).
Паттерн аудита изменений
1
2
3
4
5
6
7
8
9
10
11
12
30. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Паттерны дают хорошую точку опоры
для начала работы над требованиями
Начинать с шаблона
1
2
3
4
5
6
7
8
9
10
11
12
31. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
- ,Паттерны это сохраненный опыт который можно
и нужно использовать
Улучшать, а не пересоздавать
1
2
3
4
5
6
7
8
9
10
11
12
32. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Don't waste your time
Использование паттернов увеличивает качество
требований и сокращает время на их создание
1
2
3
4
5
6
7
8
9
10
11
12
33. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Плюсы применения паттернов
Качество Скорость Точность
Понятность
Последова-
тельность
1
2
3
4
5
6
7
8
9
10
11
12
34. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
Плюсы применения паттернов
Качество Скорость Точность
Понятность
Последова-
тельность
1
2
3
4
5
6
7
8
9
10
11
12
35. .Шаблонизируй это Как паттерны требований облегчают жизнь
.аналитика
!Спасибо за внимание
E-mail
vitaly.maltsev@gmail.com
Виталий Мальцев,
Devexperts
On the web
vk.com/vis_vitalis
twitter.com/vis_vitalis
facebook.com/vis.vitalis
skype: vis__vitalis
1
2
3
4
5
6
7
8
9
10
11
12