ΠŸΠ΅Ρ€Π΅ΠΉΡ‚ΠΈ ΠΊ основному содСрТимому

πŸ“‹ Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ ΠΈ мСтодологичСскиС ссылки

Π­Ρ‚ΠΎΡ‚ Ρ€Π°Π·Π΄Π΅Π» систСматизируСт ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ отраслСвыС стандарты, ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ ΠΈ Π»ΡƒΡ‡ΡˆΠΈΠ΅ ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠΈ, Ρ„ΠΎΡ€ΠΌΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ основу для Software Design Document (SDD). ΠŸΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Ρ… ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ΠΎΠ² обСспСчиваСт:

  • Π§Π΅Ρ‚ΠΊΠΎΡΡ‚ΡŒ ΠΈ ΠΎΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ
  • ВысокоС качСство Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹ ΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ
  • ΠœΠΈΠ½ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΡŽ рисков ΠΈ нСоднозначностСй Π² Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ΅
  • БоотвСтствиС ΠΌΠ΅ΠΆΠ΄ΡƒΠ½Π°Ρ€ΠΎΠ΄Π½Ρ‹ΠΌ стандартам качСства

EARS (Easy Approach to Requirements Syntax)​

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹ΠΉ ΠΏΠΎΠ΄Ρ…ΠΎΠ΄ ΠΊ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ, ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‰ΠΈΠΉ ΠΈΡ… Ρ‡Π΅Ρ‚ΠΊΠΎΡΡ‚ΡŒ, ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ ΠΈ Π½Π΅Π΄Π²ΡƒΡΠΌΡ‹ΡΠ»Π΅Π½Π½ΠΎΡΡ‚ΡŒ Ρ‡Π΅Ρ€Π΅Π· стандартизированныС ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹.

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ EARS​

1. WHEN (ВрСбования, управляСмыС событиями)​

НазначСниС: ОписаниС Ρ€Π΅Π°ΠΊΡ†ΠΈΠΈ систСмы Π½Π° ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ события ΠΈΠ»ΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Ρ‹
Π€ΠΎΡ€ΠΌΠ°Ρ‚: WHEN [событиС/Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€] THEN [систСма] SHALL [дСйствиС]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

  • WHEN ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π°ΠΆΠΈΠΌΠ°Π΅Ρ‚ ΠΊΠ½ΠΎΠΏΠΊΡƒ "Π‘ΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ" THEN систСма SHALL Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ всС поля Ρ„ΠΎΡ€ΠΌΡ‹
  • WHEN Π·Π°Π³Ρ€ΡƒΠ·ΠΊΠ° Ρ„Π°ΠΉΠ»Π° ΠΏΡ€Π΅Π²Ρ‹ΡˆΠ°Π΅Ρ‚ 10 ΠœΠ‘ THEN систСма SHALL ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ сообщСниС ΠΎΠ± ошибкС
  • WHEN сСссия ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Ρ истСкаСт THEN систСма SHALL ΠΏΠ΅Ρ€Π΅Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΡŒ Π½Π° страницу Π²Ρ…ΠΎΠ΄Π°

2. IF (ВрСбования, управляСмыС состояниСм)​

НазначСниС: ОписаниС повСдСния систСмы ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹Ρ… условиях
Π€ΠΎΡ€ΠΌΠ°Ρ‚: IF [условиС] THEN [систСма] SHALL [дСйствиС]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

  • IF ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π½Π΅ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½ THEN систСма SHALL Π·Π°ΠΏΡ€Π΅Ρ‚ΠΈΡ‚ΡŒ доступ ΠΊ Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½Ρ‹ΠΌ рСсурсам
  • IF ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ ΠΊ Π±Π°Π·Π΅ Π΄Π°Π½Π½Ρ‹Ρ… Π½Π΅ удаСтся THEN систСма SHALL ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ сообщСниС ΠΎ тСхничСском обслуТивании
  • IF ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΏΡ€Π°Π²Π° администратора THEN систСма SHALL ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ панСль администратора

3. WHILE (НСпрСрывныС трСбования)​

НазначСниС: ОписаниС постоянного повСдСния систСмы Π² Π·Π°Π΄Π°Π½Π½ΠΎΠΌ состоянии
Π€ΠΎΡ€ΠΌΠ°Ρ‚: WHEN [состояниС] THEN [систСма] SHALL [Π½Π΅ΠΏΡ€Π΅Ρ€Ρ‹Π²Π½ΠΎΠ΅ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

  • WHEN Ρ„Π°ΠΉΠ» загруТаСтся THEN систСма SHALL ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ прогрСсса
  • WHEN ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ ΠΏΠ΅Ρ‡Π°Ρ‚Π°Π΅Ρ‚ THEN систСма SHALL ΠΏΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΡ‚ΡŒ ΠΎΠ±Ρ€Π°Ρ‚Π½ΡƒΡŽ связь Π²Π°Π»ΠΈΠ΄Π°Ρ†ΠΈΠΈ Π² Ρ€Π΅Π°Π»ΡŒΠ½ΠΎΠΌ Π²Ρ€Π΅ΠΌΠ΅Π½ΠΈ
  • WHEN систСма ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Π΅Ρ‚ запрос THEN систСма SHALL ΠΏΡ€Π΅Π΄ΠΎΡ‚Π²Ρ€Π°Ρ‰Π°Ρ‚ΡŒ Π΄ΡƒΠ±Π»ΠΈΡ€ΡƒΡŽΡ‰ΠΈΠ΅ ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠΈ

4. WHERE (ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½ΠΎ-зависимыС трСбования)​

НазначСниС: ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ трСбования ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π½Ρ‹ΠΌ контСкстом ΠΈΠ»ΠΈ срСдой
Π€ΠΎΡ€ΠΌΠ°Ρ‚: WHERE [контСкст] THEN [систСма] SHALL [ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅]

ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹:

  • WHERE ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ находится Π½Π° мобильном устройствС THEN систСма SHALL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°Π΄Π°ΠΏΡ‚ΠΈΠ²Π½ΡƒΡŽ ΠΊΠΎΠΌΠΏΠΎΠ½ΠΎΠ²ΠΊΡƒ
  • WHERE ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² Ρ€Π΅ΠΆΠΈΠΌΠ΅ ΠΏΡ€ΠΎΠ΄Π°ΠΊΡˆΠ½ THEN систСма SHALL Π»ΠΎΠ³ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ошибки Π²ΠΎ внСшний сСрвис
  • WHERE нСсколько ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΉ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€ΡƒΡŽΡ‚ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ THEN систСма SHALL ΠΎΠ±Ρ€Π°Π±Π°Ρ‚Ρ‹Π²Π°Ρ‚ΡŒ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ изящно

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ EARS​

ΠšΠ°Ρ‚Π΅Π³ΠΎΡ€ΠΈΡΠ Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹
Бинтаксис‒ Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ Π°ΠΊΡ‚ΠΈΠ²Π½Ρ‹ΠΉ Π·Π°Π»ΠΎΠ³ β€’ Π•Π΄ΠΈΠ½Ρ‹ΠΉ Ρ‚Π΅Ρ€ΠΌΠΈΠ½ "систСма" вмСсто синонимов❌ "Π”ΠΎΠ»ΠΆΠ½Ρ‹ Π±Ρ‹Ρ‚ΡŒ Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Π½Ρ‹ поля" βœ… "БистСма SHALL Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ поля"
ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΡΡ‚ΡŒβ€’ Π˜Π·Π±Π΅Π³Π°Ρ‚ΡŒ расплывчатых Ρ‚Π΅Ρ€ΠΌΠΈΠ½ΠΎΠ² β€’ Π£ΠΊΠ°Π·Ρ‹Π²Π°Ρ‚ΡŒ количСствСнныС ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹βŒ "Быстрый ΠΎΡ‚ΠΊΠ»ΠΈΠΊ" βœ… "ΠžΡ‚ΠΊΠ»ΠΈΠΊ ΠΌΠ΅Π½Π΅Π΅ 300 мс"
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°β€’ Одно Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ = ΠΎΠ΄Π½ΠΎ ΡƒΡ‚Π²Π΅Ρ€ΠΆΠ΄Π΅Π½ΠΈΠ΅ β€’ Π§Π΅Ρ‚ΠΊΠΈΠ΅ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈβŒ "БистСма SHALL Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ" βœ… Π”Π²Π° ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Ρ… трСбования

Анти-ΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½Ρ‹ EARS​

🚫 БоставныС трСбования
ΠŸΡ€ΠΈΠΌΠ΅Ρ€: "WHEN ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²Π²ΠΎΠ΄ΠΈΡ‚ Π΄Π°Π½Π½Ρ‹Π΅ THEN систСма SHALL Π²Π°Π»ΠΈΠ΄ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΈ ΡΠΎΡ…Ρ€Π°Π½ΡΡ‚ΡŒ"
РСшСниС: Π Π°Π·Π΄Π΅Π»ΠΈΡ‚ΡŒ Π½Π° Π΄Π²Π° трСбования с ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹ΠΌΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€Π°ΠΌΠΈ

🚫 НСоднозначныС условия
ΠŸΡ€ΠΈΠΌΠ΅Ρ€: "WHEN Π΄Π°Π½Π½Ρ‹Π΅ Π²Π²Π΅Π΄Π΅Π½Ρ‹ THEN систСма SHALL ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π°Ρ‚ΡŒ"
РСшСниС: Π£ΠΊΠ°Π·Π°Ρ‚ΡŒ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ условия ("WHEN всС ΠΎΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ поля Π·Π°ΠΏΠΎΠ»Π½Π΅Π½Ρ‹")

🚫 Π”Π΅Ρ‚Π°Π»ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
ΠŸΡ€ΠΈΠΌΠ΅Ρ€: "WHEN ΠΎΡ‚ΠΏΡ€Π°Π²ΠΊΠ° Ρ„ΠΎΡ€ΠΌΡ‹ THEN систСма SHALL ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ REST API"
РСшСниС: Π€ΠΎΠΊΡƒΡΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒΡΡ Π½Π° Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚Π΅ ("...систСма SHALL ΡΠΎΡ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅")


ΠžΡ‚Ρ€Π°ΡΠ»Π΅Π²Ρ‹Π΅ стандарты​

IEEE 830-1998: БпСцификация Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊ ΠŸΠžβ€‹

ЦСль стандарта: ΠžΠ±Π΅ΡΠΏΠ΅Ρ‡Π΅Π½ΠΈΠ΅ структурированного ΠΏΠΎΠ΄Ρ…ΠΎΠ΄Π° ΠΊ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚ΠΈΡ€ΠΎΠ²Π°Π½ΠΈΡŽ Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ Ρ‡Π΅Ρ€Π΅Π· SRS (Software Requirements Specification).

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ характСристики качСствСнного SRS​

  • ΠŸΠΎΠ»Π½ΠΎΡ‚Π°: ВсС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΈ Π½Π΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ трСбования ΡƒΡ‡Ρ‚Π΅Π½Ρ‹
  • ΠžΠ΄Π½ΠΎΠ·Π½Π°Ρ‡Π½ΠΎΡΡ‚ΡŒ: ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ двусмыслСнных Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΎΠΊ
  • ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ΅ΠΌΠΎΡΡ‚ΡŒ: КаТдоС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ ΠΈΠΌΠ΅Π΅Ρ‚ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ Π²Π΅Ρ€ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
  • Π‘ΠΎΠ³Π»Π°ΡΠΎΠ²Π°Π½Π½ΠΎΡΡ‚ΡŒ: ΠžΡ‚ΡΡƒΡ‚ΡΡ‚Π²ΠΈΠ΅ ΠΏΡ€ΠΎΡ‚ΠΈΠ²ΠΎΡ€Π΅Ρ‡ΠΈΠΉ ΠΌΠ΅ΠΆΠ΄Ρƒ трСбованиями
  • ΠžΡ‚ΡΠ»Π΅ΠΆΠΈΠ²Π°Π΅ΠΌΠΎΡΡ‚ΡŒ: Бвязь с источниками ΠΈ этапами ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π°

РСкомСндуСмая структура SRS​

1. Π’Π²Π΅Π΄Π΅Π½ΠΈΠ΅
- НазначСниС Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°
- ΠžΠ±Π»Π°ΡΡ‚ΡŒ примСнСния
- Π’Π΅Ρ€ΠΌΠΈΠ½Ρ‹ ΠΈ опрСдСлСния
- Бсылки Π½Π° ΡΠΎΠΏΡƒΡ‚ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠ΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Ρ‹

2. ΠžΠ±Ρ‰Π΅Π΅ описаниС
- ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚ систСмы
- ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ характСристики
- ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
- ΠŸΡ€Π΅Π΄ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΈ зависимости

3. ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ трСбования
- Π€ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ (FR-001, FR-002...)
- ΠΠ΅Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Π΅ (NFR-001...)
- Π˜Π½Ρ‚Π΅Ρ€Ρ„Π΅ΠΉΡΡ‹
- ВрСбования ΠΊ Π΄Π°Π½Π½Ρ‹ΠΌ

4. ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ
- ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° трассировки
- Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹
- ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ сцСнариСв

Π€ΠΎΡ€ΠΌΠ°Ρ‚ записи трСбований​

КаТдоС Ρ‚Ρ€Π΅Π±ΠΎΠ²Π°Π½ΠΈΠ΅ Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ:

  • Π£Π½ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΉ ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ (FR-001)
  • ΠšΡ€Π°Ρ‚ΠΊΠΎΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅
  • ΠŸΠΎΠ΄Ρ€ΠΎΠ±Π½ΠΎΠ΅ описаниС
  • Π˜ΡΡ‚ΠΎΡ‡Π½ΠΈΠΊ (Π·Π°ΠΊΠ°Π·Ρ‡ΠΈΠΊ/Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚)
  • ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚ (Must/Should/Could)
  • ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠΊΠΈ
  • Зависимости

АрхитСктурныС ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ ΠΈ мСтодологии​

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΡ‹ SOLID​

ΠŸΡ€ΠΈΠ½Ρ†ΠΈΠΏΠžΠΏΠΈΡΠ°Π½ΠΈΠ΅ΠΠ½Ρ‚ΠΈΠΏΠ°Ρ‚Ρ‚Π΅Ρ€Π½
Single ResponsibilityΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ 1 Π°ΠΊΡ‚ΠΎΡ€Π°-ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡΠ‘ΠΎΠΆΠ΅ΡΡ‚Π²Π΅Π½Π½Ρ‹ΠΉ ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ (God Object)
Open/ClosedΠžΡ‚ΠΊΡ€Ρ‹Ρ‚ для Ρ€Π°ΡΡˆΠΈΡ€Π΅Π½ΠΈΡ, Π·Π°ΠΊΡ€Ρ‹Ρ‚ для модификацииЧастыС измСнСния Π±Π°Π·ΠΎΠ²ΠΎΠ³ΠΎ ΠΊΠΎΠ΄Π°
Liskov SubstitutionΠŸΠΎΠ΄ΠΊΠ»Π°ΡΡΡ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ Π·Π°ΠΌΠ΅Π½ΡΡ‚ΡŒ Π±Π°Π·ΠΎΠ²Ρ‹Π΅ ΠΊΠ»Π°ΡΡΡ‹ΠΠ°Ρ€ΡƒΡˆΠ΅Π½ΠΈΠ΅ ΠΊΠΎΠ½Ρ‚Ρ€Π°ΠΊΡ‚Π° наслСдования
Interface SegregationΠ‘ΠΏΠ΅Ρ†ΠΈΡ„ΠΈΡ‡Π½Ρ‹Π΅ интСрфСйсы вмСсто ΠΎΠ±Ρ‰ΠΈΡ…"ΠŸΡƒΡ…Π»Ρ‹Π΅" интСрфСйсы
Dependency InversionΠ—Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ абстракций Π²Π΅Ρ€Ρ…Π½ΠΈΡ… слоСв, Π° Π½Π΅ рСализацийЖСсткиС прямыС зависимости ΠΎΡ‚ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π²Π΅Ρ€Ρ…Π½ΠΈΡ… слоСв Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Domain-Driven Design (DDD)​

ΠšΠ»ΡŽΡ‡Π΅Π²Ρ‹Π΅ ΠΊΠΎΠ½Ρ†Π΅ΠΏΡ†ΠΈΠΈ:

  • Π£Π½ΠΈΠ²Π΅Ρ€ΡΠ°Π»ΡŒΠ½Ρ‹ΠΉ язык: Единая тСрминология для бизнСс-Π°Π½Π°Π»ΠΈΡ‚ΠΈΠΊΠΎΠ² ΠΈ Ρ€Π°Π·Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠΎΠ²
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½Π½Ρ‹Π΅ контСксты: Π§Π΅Ρ‚ΠΊΠΎΠ΅ Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½Ρ‹Ρ… областСй
  • АгрСгаты: Π“Ρ€ΡƒΠΏΠΏΠΈΡ€ΠΎΠ²ΠΊΠ° ΠΎΠ±ΡŠΠ΅ΠΊΡ‚ΠΎΠ² с ΠΎΠ±Ρ‰Π΅ΠΉ Π³Ρ€Π°Π½ΠΈΡ†Π΅ΠΉ Ρ‚Ρ€Π°Π½Π·Π°ΠΊΡ†ΠΈΠΉ
  • Бобытия Π΄ΠΎΠΌΠ΅Π½Π°: Ѐиксация Π·Π½Π°Ρ‡ΠΈΠΌΡ‹Ρ… бизнСс-событий

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ ΠΏΠΎ ΠΏΡ€ΠΈΠΌΠ΅Π½Π΅Π½ΠΈΡŽ:

  1. Π‘ΠΎΠ·Π΄Π°Ρ‚ΡŒ глоссарий ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎΠΉ области
  2. Π’Ρ‹Π΄Π΅Π»ΠΈΡ‚ΡŒ ядро Π΄ΠΎΠΌΠ΅Π½Π° (Core Domain)
  3. Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ ΡˆΠ°Π±Π»ΠΎΠ½Ρ‹ проСктирования (Бущности, ЗначСния, Π Π΅ΠΏΠΎΠ·ΠΈΡ‚ΠΎΡ€ΠΈΠΈ)
  4. Π’Π½Π΅Π΄Ρ€ΠΈΡ‚ΡŒ ΡˆΠΈΠ½Ρƒ событий для ΠΊΠΎΠΌΠΌΡƒΠ½ΠΈΠΊΠ°Ρ†ΠΈΠΈ ΠΌΠ΅ΠΆΠ΄Ρƒ контСкстами

ΠœΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ сбора трСбований​

ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠΈΠ΅ истории (User Stories)​

Π€ΠΎΡ€ΠΌΠ°Ρ‚:
Как [Ρ€ΠΎΠ»ΡŒ], я Ρ…ΠΎΡ‡Ρƒ [Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ], Ρ‡Ρ‚ΠΎΠ±Ρ‹ [бизнСс-Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ]

ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ качСства (INVEST):

  • Independent: ΠΠ΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡ‚ΡŒ ΠΎΡ‚ Π΄Ρ€ΡƒΠ³ΠΈΡ… историй
  • Negotiable: Π’ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
  • Valuable: ΠŸΡ€Π΅Π΄ΠΎΡΡ‚Π°Π²Π»ΡΠ΅Ρ‚ Ρ†Π΅Π½Π½ΠΎΡΡ‚ΡŒ
  • Estimable: ΠŸΠΎΠ΄Π΄Π°Π΅Ρ‚ΡΡ ΠΎΡ†Π΅Π½ΠΊΠ΅
  • Small: УмСщаСтся Π² ΠΎΠ΄Π½Ρƒ ΠΈΡ‚Π΅Ρ€Π°Ρ†ΠΈΡŽ
  • Testable: Π˜ΠΌΠ΅Π΅Ρ‚ Ρ‡Π΅Ρ‚ΠΊΠΈΠ΅ ΠΊΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠΊΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:
Как ΠΌΠ΅Π½Π΅Π΄ΠΆΠ΅Ρ€ ΠΏΠΎ ΠΏΡ€ΠΎΠ΄Π°ΠΆΠ°ΠΌ, я Ρ…ΠΎΡ‡Ρƒ Ρ„ΠΈΠ»ΡŒΡ‚Ρ€ΠΎΠ²Π°Ρ‚ΡŒ Π·Π°ΠΊΠ°Π·Ρ‹ ΠΏΠΎ Π΄Π°Ρ‚Π΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ Π΅ΠΆΠ΅Π½Π΅Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Ρ‹Ρ€ΡƒΡ‡ΠΊΡƒ
ΠšΡ€ΠΈΡ‚Π΅Ρ€ΠΈΠΈ ΠΏΡ€ΠΈΠ΅ΠΌΠΊΠΈ:

  • WHEN Π²Π²Π΅Π΄Π΅Π½ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ Π΄Π°Ρ‚ THEN систСма SHALL ΠΎΡ‚ΠΎΠ±Ρ€Π°Π·ΠΈΡ‚ΡŒ Π·Π°ΠΊΠ°Π·Ρ‹ Π² этом ΠΏΠ΅Ρ€ΠΈΠΎΠ΄Π΅
  • WHEN Π²Ρ‹Π±Ρ€Π°Π½Π° нСвалидная Π΄Π°Ρ‚Π° THEN систСма SHALL ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ подсказку

Use Cases​

Бтандартная структура:

1. НазваниС
2. Акторы
3. ΠŸΡ€Π΅Π΄ΡƒΡΠ»ΠΎΠ²ΠΈΡ
4. Основной ΠΏΠΎΡ‚ΠΎΠΊ (ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ шагов)
5. ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ
6. ΠŸΠΎΡΡ‚ΡƒΡΠ»ΠΎΠ²ΠΈΡ
7. Π˜ΡΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ

Π Π΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°Ρ†ΠΈΠΈ:

  • ΠœΠ°ΠΊΡΠΈΠΌΡƒΠΌ 9 шагов Π² основном ΠΏΠΎΡ‚ΠΎΠΊΠ΅
  • ΠΠ»ΡŒΡ‚Π΅Ρ€Π½Π°Ρ‚ΠΈΠ²Π½Ρ‹Π΅ ΠΏΠΎΡ‚ΠΎΠΊΠΈ Π½ΡƒΠΌΠ΅Ρ€ΡƒΡŽΡ‚ΡΡ (3a, 3b)
  • ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ шаг содСрТит дСйствиС Π°ΠΊΡ‚ΠΎΡ€Π° ΠΈ Ρ€Π΅Π°ΠΊΡ†ΠΈΡŽ систСмы

Π‘Ρ‚Π°Π½Π΄Π°Ρ€Ρ‚Ρ‹ докумСнтирования​

ВрСбования ΠΊ тСхничСской докумСнтации​

ЭлСмСнтРСкомСндацииАнтипаттСрны
Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°β€’ ЛогичСская ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½ΠΎΡΡ‚ΡŒβ€’ Единая систСма заголовковБмСшСниС ΡƒΡ€ΠΎΠ²Π½Π΅ΠΉ Π΄Π΅Ρ‚Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ
Π‘Ρ‚ΠΈΠ»ΡŒβ€’ Активный Π·Π°Π»ΠΎΠ³β€’ ΠšΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½Ρ‹Π΅ Ρ„ΠΎΡ€ΠΌΡƒΠ»ΠΈΡ€ΠΎΠ²ΠΊΠΈΠŸΠ°ΡΡΠΈΠ²Π½Ρ‹Π΅ конструкции ("Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±Ρ‹Ρ‚ΡŒ сдСлано")
ВСрминология‒ Глоссарий Π² Π½Π°Ρ‡Π°Π»Π΅ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°β€’ Π•Π΄ΠΈΠ½ΠΎΠΎΠ±Ρ€Π°Π·ΠΈΠ΅ тСрминовБинонимия Π² Ρ€Π°ΠΌΠΊΠ°Ρ… Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°
Визуализация‒ Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΡ‹ для слоТных процСссов‒ Π‘Ρ…Π΅ΠΌΡ‹ Π΄Π°Π½Π½Ρ‹Ρ…Π˜Π·Π±Ρ‹Ρ‚ΠΎΡ‡Π½Ρ‹Π΅ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ Π±Π΅Π· пояснСний

Π’ΠΈΠΏΡ‹ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ ΠΈ ΠΈΡ… стандарты​

1. API-докумСнтация​

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ элСмСнты:

  • ОписаниС всСх эндпоинтов с HTTP-ΠΌΠ΅Ρ‚ΠΎΠ΄Π°ΠΌΠΈ
  • ΠŸΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ запросов/ΠΎΡ‚Π²Π΅Ρ‚ΠΎΠ² Π² JSON/YAML
  • ΠšΠΎΠ΄Ρ‹ ошибок с пояснСниями
  • ΠŸΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹ Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ†ΠΈΠΈ
  • ΠžΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΡ скорости (rate limits)

РСкомСндация: АвтоматичСская гСнСрация Ρ‡Π΅Ρ€Π΅Π· Swagger/OpenAPI

2. ΠŸΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΡΠΊΠ°Ρ докумСнтация​

Π‘Ρ‚Ρ€ΡƒΠΊΡ‚ΡƒΡ€Π°:

- Quick Start: 5-ΠΌΠΈΠ½ΡƒΡ‚Π½ΠΎΠ΅ руководство
- ΠžΡΠ½ΠΎΠ²Π½Ρ‹Π΅ сцСнарии: ΠŸΠΎΡˆΠ°Π³ΠΎΠ²Ρ‹Π΅ инструкции
- Π Π°ΡΡˆΠΈΡ€Π΅Π½Π½Ρ‹Π΅ возмоТности: Π“Π»ΡƒΠ±ΠΎΠΊΠΎΠ΅ ΠΏΠΎΠ³Ρ€ΡƒΠΆΠ΅Π½ΠΈΠ΅
- FAQ: РСшСниС Ρ‚ΠΈΠΏΠΎΠ²Ρ‹Ρ… ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ
- Бсылки Π½Π° сообщСство

3. АрхитСктурная докумСнтация​

ΠžΠ±ΡΠ·Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Π΅ Ρ€Π°Π·Π΄Π΅Π»Ρ‹:

  • ΠšΠΎΠ½Ρ‚Π΅ΠΊΡΡ‚Π½Π°Ρ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° (C4 Model Level 1)
  • Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΎΠ² (C4 Model Level 2)
  • ОписаниС ΠΊΠ»ΡŽΡ‡Π΅Π²Ρ‹Ρ… Ρ€Π΅ΡˆΠ΅Π½ΠΈΠΉ (ADR)
  • ΠœΠ°Ρ‚Ρ€ΠΈΡ†Π° Ρ‚Π΅Ρ…Π½ΠΎΠ»ΠΎΠ³ΠΈΠΉ
  • План ΡΠ²ΠΎΠ»ΡŽΡ†ΠΈΠΈ Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Ρ‹

Π”Π°Π½Π½Ρ‹Π΅ стандарты ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΎΠ»ΠΎΠ³ΠΈΠΈ рСкомСндуСтся Π°Π΄Π°ΠΏΡ‚ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΏΠΎΠ΄ спСцифику ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°, сохраняя баланс ΠΌΠ΅ΠΆΠ΄Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒΡŽ ΠΈ практичСской ΠΏΡ€ΠΈΠΌΠ΅Π½ΠΈΠΌΠΎΡΡ‚ΡŒΡŽ. РСгулярныС Ρ€Π΅Ρ†Π΅Π½Π·ΠΈΠΈ Π΄ΠΎΠΊΡƒΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ с участиСм всСх стСйкхолдСров ΠΎΠ±Π΅ΡΠΏΠ΅Ρ‡ΠΈΠ²Π°ΡŽΡ‚ Π΅Π΅ Π°ΠΊΡ‚ΡƒΠ°Π»ΡŒΠ½ΠΎΡΡ‚ΡŒ ΠΈ качСство Π½Π° всСх этапах ΠΆΠΈΠ·Π½Π΅Π½Π½ΠΎΠ³ΠΎ Ρ†ΠΈΠΊΠ»Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π°.