35
. Шаблонизируй это Как паттерны требований облегчают жизнь . аналитика 1 2 3 4 5 6 7 8 9 10 11 12 Шаблонизируй это Как паттерны требований облегчают жизнь аналитика Виталий Мальцев Devexperts

Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

  • Upload
    sqalab

  • View
    362

  • Download
    4

Embed Size (px)

Citation preview

Page 1: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

1

2

3

4

5

6

7

8

9

10

11

12

Шаблонизируй это

Как паттерны требований облегчают жизнь аналитика

Виталий Мальцев

Devexperts

Page 2: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Devexperts

Виталий Мальцев

Обо мнеБизнес-аналитик

4 года

7 крупных проектов

Проекты

От социальных сетей для трейдеров

до крупнейших торговых платформ

в США и Европе

1

2

3

4

5

6

7

8

9

10

11

12

Page 3: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

?Как мы работаем

1

2

3

4

5

6

7

8

9

10

11

12

Page 4: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

С чистого листа...

Подготовка к интервьюЗнакомство с заказчиком

Понимание особенностей его деятельностиОсознание специфики работы

Примерные вопросыФормирование вопросов по запрошенной функциональности

Поиск и анализ аналогичных решений

Черновик требованийОтсутствие частей функциональности

Много размытых требованийОшибочные предположения

... каждый раз1

2

3

4

5

6

7

8

9

10

11

12

Page 5: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Изобретая колесо...

Схожая функциональностьОтчеты

Стандарты

Регистрация

Одинаковые ошибкиПропущена часть требований

Не учтены известные ограничения

Забыли про полимеры

Разное описаниеНовые формулировки

Классные диаграммы

Прочий креатив

... постоянно1

2

3

4

5

6

7

8

9

10

11

12

Page 6: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Время идет...

3 этапа ревью требованийЗаказчик

Разработчик

Тестировщик

Ревью требований внутрикомандыОбъяснение новичкам правил команды

Лишние итерации из-за отсутствия стандартного подхода

" "Объяснение очевидногоРазработчики не любят новых форматов спецификаций

Вещи, кажущиеся очевидными, обязательно упускаются

... всегда1

2

3

4

5

6

7

8

9

10

11

12

Page 7: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Олимпийские показатели

Что ждут от требований?

Качество Скорость Точность

ПонятностьПоследова-тельность

1

2

3

4

5

6

7

8

9

10

11

12

Page 8: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Как этого ?достичь

1

2

3

4

5

6

7

8

9

10

11

12

Page 9: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

-Паттерны требований это руководство к написанию

требований определенноготипа

1

2

3

4

5

6

7

8

9

10

11

12

Page 10: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Структура требованияЭлементы и варианты взаимодействия для описываемой

функциональности

Важные аспектыМоменты, которые необходимо учесть при работе над требованием

ШаблонФормулировки, обычно используемые для описания требования

Дополнительные требованияТребования, обычно описывающие смежную функциональность

1

2

3

4

5

6

7

8

9

10

11

12

Паттерны требований

Page 11: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Применение паттерновSoftware Requirement Patterns (Stephen Withall)

Основные требования к системе

Данные

Пользовательские функции

Производительность

Гибкость

Контроль доступа

1

2

3

4

5

6

7

8

9

10

11

12

Page 12: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Разработкапаттернов

1

2

3

4

5

6

7

8

9

10

11

12

Page 13: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Разработка паттерна

Систематизациятребований

Анализприменимости

в будущем

Поискпохожих

требований

1

2

3

4

5

6

7

8

9

10

11

12

Page 14: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Паттернаутентификации

1

2

3

4

5

6

7

8

9

10

11

12

Page 15: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна

Authentication system for XYZ1.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 ABC1.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

Page 16: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Authentication system for XYZ1.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 ABC1.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

Page 17: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна Структура паттерна аутентификации

Пользователи Механизмаутентификации

Доступ безаутентификации

1

2

3

4

5

6

7

8

9

10

11

12

Page 18: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна Структура паттерна аутентификации

Дополнительные:требования

Восстановление пароля

Remember Me

Logout

1

2

3

4

5

6

7

8

9

10

11

12

Page 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

Page 20: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Паттернразрешения доступак функциям системы

1

2

3

4

5

6

7

8

9

10

11

12

Page 21: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна

Permissions for XYZ functionality1.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 functionality1.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

Page 22: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна

Permissions for XYZ functionality1.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 functionality1.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

Page 23: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна Структура паттерна разрешения доступа

Пользователи Поведениесистемы

Название пермиссии и

состояния

1

2

3

4

5

6

7

8

9

10

11

12

Page 24: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна Структура паттерна разрешения доступа

Дополнительные:требования

Миграция пермиссий

1

2

3

4

5

6

7

8

9

10

11

12

Page 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).

Page 26: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

1

2

3

4

5

6

7

8

9

10

11

12

ПаттернАудита изменений

в системе

Page 27: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна Структура паттерна аудита изменений

Атрибуты сущности

Создание аудита

Отображение аудита

1

2

3

4

5

6

7

8

9

10

11

12

Page 28: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Создание паттерна Структура паттерна аудита изменений

Дополнительные:требования

Фильтрация и поиск аудитов

1

2

3

4

5

6

7

8

9

10

11

12

Page 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

Page 30: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Паттерны дают хорошую точку опоры для начала работы над требованиями

Начинать с шаблона1

2

3

4

5

6

7

8

9

10

11

12

Page 31: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

- , Паттерны это сохраненный опыт который можно и нужно использовать

Улучшать, а не пересоздавать1

2

3

4

5

6

7

8

9

10

11

12

Page 32: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Don't waste your time Использование паттернов увеличивает качество

требований и сокращает время на их создание1

2

3

4

5

6

7

8

9

10

11

12

Page 33: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Плюсы применения паттернов

Качество Скорость Точность

ПонятностьПоследова-тельность

1

2

3

4

5

6

7

8

9

10

11

12

Page 34: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

Плюсы применения паттернов

Качество Скорость Точность

ПонятностьПоследова-тельность

1

2

3

4

5

6

7

8

9

10

11

12

Page 35: Шаблонизируй это. Как паттерны требований облегчают жизнь аналитика

. Шаблонизируй это Как паттерны требований облегчают жизнь.аналитика

!Спасибо за внимание

E-mail

[email protected]

Виталий Мальцев,

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