[SWμš”κ΅¬μ‚¬ν•­] λˆ„κ΅¬λ‚˜ λ”°λΌν•˜κΈ° μ‰¬μš΄ μš”κ΅¬μ‚¬ν•­ μž‘μ„± Tip, ν…œν”Œλ¦Ώ
λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
디지털 κΏ€νŒ

[SWμš”κ΅¬μ‚¬ν•­] λˆ„κ΅¬λ‚˜ λ”°λΌν•˜κΈ° μ‰¬μš΄ μš”κ΅¬μ‚¬ν•­ μž‘μ„± Tip, ν…œν”Œλ¦Ώ

by 일상을 κ³΅μœ ν•¨λ‹ˆλ‹€ 2022. 5. 30.
λ°˜μ‘ν˜•

 

SRS (Software Requirements Specification)

μš”κ΅¬μ‚¬ν•­ λ¬Έμ„œμ— λŒ€ν•œ ν…œν”Œλ¦Ώμ€ IEEE ν‘œμ€€ λ¬Έμ„œκ°€ μžˆμ§€λ§Œ μ‹€λ¬΄μ—μ„œ μ‚¬μš©ν•˜κΈ°λŠ” 번거둭고 가독성이 떨어진닀. κ·Έλž˜μ„œ νšŒμ‚¬λ³„, μ‚¬λžŒλ³„λ‘œ λ‹€μ–‘ν•œ μš”κ΅¬μ‚¬ν•­ μ •μ˜μ„œλ₯Ό 가지고 μžˆλ‹€.

μš°λ¦¬κ°€ ν”νžˆ λ³΄λŠ” λΉ„μ¦ˆλ‹ˆμŠ€ 츑면이 κ°•μ‘°λœ μš”κ΅¬μ‚¬ν•­ λ¬Έμ„œλŠ” λŒ€λΆ€λΆ„ PM μ΄λ‚˜ κΈ°νšμžλ“€μ΄ μž‘μ„±μ„ ν•  것이닀. μ‹€μ œ κ°œλ°œμ—μ„œ μ‚¬μš©ν•˜λŠ” μš”κ΅¬μ‚¬ν•­ μ •μ˜μ„œλŠ” μ„ μž„ κ°œλ°œμžλ‚˜ μ•„ν‚€ν…νŠΈκ°€ μž‘μ„±ν•˜μ—¬ BDD 에 μœ μš©ν•˜κ²Œ μ‚¬μš©ν•œλ‹€.

 

 

 

μ–΄λŠ λˆ„κ΅¬λ‚˜ SRS μ“Έ 수 μžˆλ‹€. 
λΉ„ κ°œλ°œμžλ„ μž‘μ„±ν•  수 μžˆλŠ” μˆ˜μ€€μ˜ SRS λ₯Ό μ œμ•ˆν•΄ λ³Έλ‹€.

μš”κ΅¬ 사항 μž‘μ„±μ— λͺ‡ 가지 원칙을 μ μš©ν•˜κΈΈ μ›ν•œλ‹€.

 

직무 κ΄€λ ¨ 이전 κΈ€ λ³΄λŸ¬κ°€κΈ°

 

λ°˜μ‘ν˜•

 

첫 번째, 상황 + μ•‘μ…˜ + κ²°κ³Όλ₯Ό ν¬ν•¨μ‹œμΌœλΌ.

- μ°Έκ³  : μœ μ € μŠ€ν† λ¦¬λŠ” Given When Then 에 맞좰 μž‘μ„±μ„ ν•œλ‹€.
여기도 λ™μΌν•œ 원칙을 μ μš©ν•˜μ—¬ μ–΄λ–€ μƒν™©μ—μ„œ μ–΄λ–€ ν–‰μœ„λ₯Ό ν•˜λ©΄ μ–΄λ–€ κ²°κ³Όλ₯Ό μ£ΌλŠ”μ§€λŠ” λͺ…μ‹œν•˜λŠ” 것이닀.

ν•„μžλŠ” (Screen - Action - Feedback) 이라고 원칙을 μ •ν–ˆλ‹€.
=> A ν™”λ©΄(or μƒνƒœ) μ—μ„œ Actor (or μ‹œμŠ€ν…œ, λͺ¨λΈ, 데이터) 의 행동에 μ˜ν•΄ B 의 κ²°κ³Όκ°€ λ‚˜νƒ€λ‚œλ‹€.

μ˜ˆμ‹œ
"μ‚¬μš©μžλŠ” κ°•μ‚¬μ˜ λͺ©λ‘μ„ μ„ νƒν•˜μ—¬ κ°•μ‚¬μ˜ 상세 정보λ₯Ό μ‘°νšŒν•  수 μžˆμ–΄μ•Ό ν•œλ‹€."

=> Screen : 강사 λͺ©λ‘μ΄ ν‘œμ‹œλ˜λŠ” μœ„μΉ˜
=> Action : νŠΉμ • 강사 λͺ©λ‘μ„ 선택
=> Feedback : κ°•μ‚¬μ˜ μƒμ„Έ μ •λ³΄κ°€ ν‘œμ‹œ
"μ‚¬μš©μžλŠ” μžμ‹ μ˜ μ •λ³΄ μƒμ„Έλ₯Ό μ‘°νšŒν•œ μƒνƒœμ—μ„œ μžμ‹ μ˜ μ •λ³΄λ₯Ό λ³€κ²½ν•  μˆ˜ μžˆμ–΄μ•Ό ν•œλ‹€."

=>Screen : μžμ‹ μ˜ 정보 상세
=> Action : 정보 λ³€κ²½
=> Feedback : μ •λ³΄ λ³€κ²½ νŽ˜μ΄μ§€λ‘œ μ΄λ™ (κ²°κ³Ό μœ μΆ”)
"μ‚¬μš©μžλŠ” κ°•μ˜ λͺ©λ‘μ„ κ°•μ˜ μΌμ‹œμ˜ μ˜€λ¦„μ°¨μˆœ/λ‚΄λ¦Όμ°¨μˆœμœΌλ‘œ μ •λ ¬ν•˜μ—¬ λ³Ό μˆ˜ μžˆμ–΄μ•Ό ν•œλ‹€."

=> Screen : κ°•μ˜ λͺ©λ‘μ΄ ν‘œμ‹œλ˜λŠ” μœ„μΉ˜
=> Action : κ°•μ˜ μ‹œκ°„μ˜ 정렬을 λ³€κ²½
=> Feedback : κ°•μ˜ λͺ©λ‘μ˜ μ •λ ¬μ΄ λ³€κ²½λ¨. (κ²°κ³Ό μœ μΆ”)

 

두 번째, λŠ₯λ™ν˜•, μˆ˜λ™ν˜•μ˜ λ¬Έμž₯ κ΅¬λ³„ν•΄μ„œ μž‘μ„±ν•˜λΌ.

λŠ₯λ™ν˜•μ€ μ£Όμ–΄ 즉, Actor 기반으둜 ν’€μ–΄κ°€λŠ” λ¬Έμž₯이닀. μœ„μ˜ 3개의 μ˜ˆμ‹œκ°€ λŠ₯λ™ν˜• λ¬Έμž₯이 λœλ‹€.
반면 μˆ˜λ™ν˜• λ¬Έμž₯은 λŠ₯λ™μ˜ ν–‰μœ„μ˜ 결과에 따라 λ™μž‘λ˜λŠ” μš”κ΅¬μ‚¬ν•­λ“€μ„ μž‘μ„±ν•œλ‹€.

 

λ°˜μ‘ν˜•

 

μ˜ˆμ‹œ
"λ³€κ²½ λ‚΄μš©μ΄ μ·¨μ†Œλ˜λ©΄ λ³€κ²½λœ μ •λ³΄λ₯Ό μ‚­μ œν•˜κ³  μ΄μ „ μ •λ³΄λ‘œ λ³΅μ›ν•΄μ•Ό ν•œλ‹€."

- μˆ˜λ™ν˜•μ€ Screen - Action - Feedback 원칙에 μ μš©λ˜μ§€ μ•ŠλŠ”λ‹€.
- μ΄μ „ μš”κ΅¬μ‚¬ν•­μ˜ Feedback(κ²°κ³Ό) μ— λ”°λΌ μ‹œμŠ€ν…œμ  ν–‰μœ„κ°€ μ΄λ£¨μ–΄μ§€λŠ” λΆ€λΆ„을 λ‹€λ£¨κ²Œ λœλ‹€.

=> μ΄μ „ μš”ꡬ μ‚¬ν•­ : "μ‚¬μš©μžλŠ” λ³€κ²½ μ•ˆλ‚΄λ₯Ό ν™•μΈν•˜κ³  μ·¨μ†Œν•  μˆ˜ μžˆμ–΄μ•Ό ν•œλ‹€."
λ‹€λ₯Έ μ˜ˆμ‹œ

A1 - "μ‚¬μš©μžλŠ” λ³€κ²½ μ•ˆλ‚΄λ₯Ό ν™•μΈν•˜κ³  μ™„λ£Œν•  수 μžˆμ–΄μ•Ό ν•œλ‹€."
A2 - "변경이 μ™„λ£Œλ˜λ©΄ λ³€κ²½λœ 정보λ₯Ό μ €μž₯ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€."
A3 - "변경이 μ™„λ£Œλ˜λ©΄ 이전 λ‚΄μš©μ„ λ°±μ—…ν•˜μ—¬ μ €μž₯ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€."

 

μ„Έ 번째, μ„œμˆ ν˜•μ˜ λ¬Έμž₯의 원칙을 μ§€μΌœλΌ.

μš”κ΅¬μ‚¬ν•­μ„ μ„œμˆ ν˜•μœΌλ‘œ μž‘μ„±ν•˜λŠ” κ°€μž₯ 큰 μ΄μœ λŠ” 행동을 λͺ…ν™•ν•˜κ²Œ ν•˜κΈ° μœ„ν•¨μ΄λ‹€.
기본적으둜 "ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€.", "ν•΄μ•Ό ν•œλ‹€." λΌλŠ” κ°€λŠ₯ν˜•μœΌλ‘œ μž‘μ„±μ„ κΆŒν•œλ‹€.
두 번째 μ›μΉ™μ—μ„œ μˆ˜λ™ν˜•μ΄ 있기 λ•Œλ¬Έμ— 무쑰건 κ°€λŠ₯, λŠ₯λ™ν˜•μœΌλ‘œ μž‘μ„±ν•  μˆ˜λŠ” μ—†λ‹€.
이에 따라 "λ˜μ–΄μ•Ό ν•œλ‹€.", "될 수 μžˆλ‹€." 의 λ¬Έμž₯도 ꡬ사될 수 μžˆλ‹€.

μ„œμˆ ν˜• μ‚¬μš© 사둀
~ ν•  수 μžˆμ–΄μ•Ό ν•œλ‹€. Actor 의 ν–‰μœ„λ₯Ό μ„€λͺ…ν•  λ•Œ
~ ν•΄μ•Ό ν•œλ‹€.
(~ 데이터λ₯Ό ) ν‘œμ‹œν•΄μ•Ό ν•œλ‹€. 
(~ μ‘°κ±΄μ—μ„œ ) κ°€λŠ₯ν•΄μ•Ό ν•œλ‹€.
쑰건이 μžˆμ„ κ²½μš°λ‚˜ λ°˜λ“œμ‹œ λ˜μ–΄μ•Ό ν•˜λŠ” ν•„μˆ˜ ν•­λͺ©μ— μ‚¬μš©
~ λ˜μ–΄μ•Ό ν•œλ‹€. Actor 의 ν–‰μœ„μ˜ 결과둜 인해 μ‹œμŠ€ν…œμ—μ„œ λ°˜λ“œμ‹œ λ™μž‘ν•΄μ•Ό ν•˜λŠ” κΈ°λŠ₯을 μ„€λͺ…

 

λ„€ 번째, 일관성을 μœ μ§€ν•΄λΌ

이 κΈ€μ—μ„œ μ„€λͺ…ν•˜λŠ” μš”κ΅¬μ‚¬ν•­μ€ 데이터 λ“œλ¦¬λΈ ν˜•νƒœλ‘œ μž‘μ„±λ˜κΈ° λ•Œλ¬Έμ— λ™μΌν•œ 데이터λ₯Ό λ‹€μ–‘ν•œ μƒν™©μ—μ„œ μ‚¬μš©ν•˜κ²Œ λœλ‹€. μ΄μ— 따라 κΈ°λ³Έ 화면을 κ΅¬μ„±ν•˜λŠ” λͺ©λ‘ 쑰회, 상세 λ‚΄μš© 쑰회 λΆ€λΆ„μ—μ„œ μƒν™©λ³„λ‘œ λ‹€λ₯Έ ν•­λͺ©μ„ μ‘°νšŒν•˜μ—¬ ν‘œμ‹œν•˜λŠ” κ²½μš°κ°€ 생긴닀. 

이 뢀뢄을 κ°„κ³Όν•˜κ³  μž‘μ„±ν•˜λ‹€λ³΄λ©΄, AλΌλŠ” 데이터가 μžˆλ‹€ μ—†λ‹€ ν•˜μ—¬ UI μ„€κ³„ν•˜λŠ” μžκ°€ ν˜Όλˆμ„ κ²ͺ게 λœλ‹€.
λ¨Έλ¦Ώμ†μœΌλ‘œλ‚˜ 별도 곡간에 곡톡뢀뢄을 μž‘μ„±ν•˜μ—¬ Reference ID 둜 μ—°κ²°ν•˜κΈΈ μΆ”μ²œν•œλ‹€.
쀑볡 μž‘μ„±μ„ 막고 일관성을 μœ μ§€ν•˜λŠ”λ° ν•œκ²° 도움이 될 것이닀.

λ˜ν•œ 일관성은 첫 번째, 두 번째, μ„Έ 번째 λ‚΄μš©μ„ λͺ¨λ‘ ν¬κ΄„ν•˜κ³  μžˆλ‹€.
λ¬Έμ„œλŠ” λ‚˜λ₯Ό μœ„ν•œ 것이 μ•„λ‹ˆλΌ λ³΄λŠ” μ‚¬λžŒμ„ μœ„ν•΄ μž‘μ„±ν•œλ‹€. μ˜μ‚¬κ²°μ •κΆŒμž, 리뷰자, 개발자 λ“± λ¬Έμ„œλ₯Ό λ³΄λŠ” λ‹€μ–‘ν•œ μ‚¬λžŒλ“€μ΄ λ‹€λ₯Έ μΆ”μΈ‘μ΄λ‚˜ 생각을 ν•˜μ§€ λͺ»ν•˜λ„둝 μΌκ΄€λ˜κ³  λͺ…ν™•ν•˜κ²Œ μž‘μ„±λ˜μ–΄μ•Ό ν•œλ‹€.

 


 

 

λ°˜μ‘ν˜•

 

 

1. ν‘œμ§€ μž‘μ„±

[OOO] μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έμ„œ, μž‘μ„±(배포)일, μž‘μ„±μž μ†Œμ†

 

μ‹œνŠΈ 1 - ν‘œμ§€

 

 

λ°˜μ‘ν˜•

 

 

2. λ¬Έμ„œ 확인

고객사와 κ°œλ°œμ‚¬, μ΄ν•΄κ΄€κ³„μžλ“€μ˜ ν˜‘μ˜λ₯Ό μœ„ν•œ 곡간

 

μ‹œνŠΈ 2 - λ¬Έμ„œ 확인

 

3. λ¬Έμ„œ 이λ ₯ 

λ¬Έμ„œμ˜ λ³€κ²½ 이λ ₯을 μž‘μ„±ν•œλ‹€.

 

μ‹œνŠΈ 3 - λ¬Έμ„œ 이λ ₯

 

4. μ„œλΉ„μŠ€ κ°œμš”

λͺ©μ , λ²”μœ„, μš©μ–΄, 사양(μ„±λŠ₯), 섀계, μ°Έκ³  λ¬Έν—Œ μ •μ˜

 

μ‹œνŠΈ 4 - μ„œλΉ„μŠ€ κ°œμš”

 

 

5. μƒμœ„ μˆ˜μ€€ μš”κ΅¬ 사항

μ‹œνŠΈ 5 - μƒμœ„ μˆ˜μ€€ μš”κ΅¬ 사항

 

6. κΈ°λŠ₯ μš”κ΅¬ 사항

μ‹œνŠΈ 6 - κΈ°λŠ₯ μš”κ΅¬ 사항

 

7. λΉ„ κΈ°λŠ₯ μš”κ΅¬ 사항

μ‹œνŠΈ 7 - λΉ„ κΈ°λŠ₯ μš”κ΅¬ 사항

 

8. 이슈 리슀트 (optional)

μ‹œνŠΈ 8 - 이슈 리슀트

 

 


 

 

상기 7개의 ν•„μˆ˜ ν•­λͺ©κ³Ό 1개의 μ˜΅μ…˜ ν•­λͺ©λ§Œ μž‘μ„±ν•˜λ”λΌλ„ κ°œλ°œμ— μ „ν˜€ λ¬Έμ œκ°€ μ—†λ‹€.
μ‹€μ œ μš”κ΅¬ 사항 μž‘μ„±μ— λŒ€ν•΄ μ‚΄νŽ΄λ³΄κ² λ‹€.

 

μƒμœ„ μˆ˜μ€€ μš”κ΅¬ 사항은

μš”κ΅¬ 사항 뢄석 μ‹œ μž‘μ„±ν•œ IA의 μ‚¬μš©μž μ‹œλ‚˜λ¦¬μ˜€λ₯Ό 기반으둜 μž‘μ„±ν•œλ‹€.

 

κΈ°λŠ₯ μš”κ΅¬ 사항 μƒμ„ΈλŠ”

μƒμœ„ μš”κ΅¬ 사항을 상속받아 μ„ΈλΆ€ νƒœμŠ€ν¬λ₯Ό μƒμ„Ένžˆ μž‘μ„±ν•΄μ£Όλ©΄ λœλ‹€.

 

 

λ°˜μ‘ν˜•

 

 

직무 κ΄€λ ¨ 이전 κΈ€ λ³΄λŸ¬κ°€κΈ°

λŒ“κΈ€