λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
Basics/Concepts

μš”κ΅¬μ‚¬ν•­ 뢄석 기법 (λΆ„λ₯˜, κ°œλ…λͺ¨λΈλ§, ν• λ‹Ή λ“±) : μš”κ΅¬μ‚¬ν•­ μ •μ˜

by IworldT 2022. 2. 22.
λ°˜μ‘ν˜•

 

이번 ν¬μŠ€νŒ…μ€ μš”κ΅¬μ‚¬ν•­ 개발 ν”„λ‘œμ„ΈμŠ€μ˜ λ‘λ²ˆμ§Έ 단계인 μš”κ΅¬μ‚¬ν•­ λΆ„μ„μ—μ„œ μ–΄λ–€ 기법을 ν™œμš©ν•  수 μžˆλŠ”μ§€ μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

μš”κ΅¬μ‚¬ν•­ 개발 ν”„λ‘œμ„ΈμŠ€μ— λŒ€ν•œ μ„€λͺ…은 이전 ν¬μŠ€νŒ… (https://iworldt.tistory.com/93)을 ν™•μΈν•˜μ‹œλ©΄ λ©λ‹ˆλ‹€.

 


 

1. μš”κ΅¬μ‚¬ν•­ λΆ„λ₯˜(Requirement Classification)

- μš”κ΅¬μ‚¬ν•­μ΄ κΈ°λŠ₯인지 λΉ„κΈ°λŠ₯인지

- μš”κ΅¬μ‚¬ν•­μ΄ ν•˜λ‚˜ μ΄μƒμ˜ κ³ μˆ˜μ€€ μš”κ΅¬μ‚¬ν•­μœΌλ‘œλΆ€ν„° μœ λ„λœ 것인지 λ˜λŠ” μ΄ν•΄κ΄€κ³„μž λ‚˜ λ‹€λ₯Έ μ›μ²œ(Source)μœΌλ‘œλΆ€ν„° 직접 λ°œμƒν•œ 것인지

- μš”κ΅¬μ‚¬ν•­μ΄ μ œν’ˆμ— κ΄€ν•œ 것인지 ν”„λ‘œμ„ΈμŠ€μ— κ΄€ν•œ 것인지

- μš°μ„ μˆœμœ„κ°€ 더 높은 것인지 μ—¬λΆ€

- μš”κ΅¬μ‚¬ν•­μ˜ λ²”μœ„(μš”κ΅¬μ‚¬ν•­μ΄ μ†Œν”„νŠΈμ›¨μ–΄μ— λ―ΈμΉ˜λŠ” 영ν–₯의 λ²”μœ„)

- μš”κ΅¬μ‚¬ν•­μ΄ μ†Œν”„νŠΈμ›¨μ–΄ 생λͺ… μ£ΌκΈ° λ™μ•ˆμ— 변경이 λ°œμƒν•˜λŠ”μ§€ μ—¬λΆ€

 

μš”κ΅¬μ‚¬ν•­ λΆ„λ₯˜ 예 (좜처:NCSμš”κ΅¬μ‚¬ν•­ 확인 자료)

 

μš”κ΅¬μ‚¬ν•­μ„ μœ„μ™€ 같은 κΈ°μ€€μœΌλ‘œ λΆ„λ₯˜ν•˜λŠ” 것을 μš”κ΅¬μ‚¬ν•­ λΆ„λ₯˜ 기법이라고 ν•©λ‹ˆλ‹€. 

 

 

2. κ°œλ… λͺ¨λΈλ§(Conceptual Modeling)

κ°œλ… λͺ¨λΈμ΄λž€?

싀세계 λ¬Έμ œμ— λŒ€ν•œ λͺ¨λΈλ§μ΄ μ†Œν”„νŠΈμ›¨μ–΄ μš”κ΅¬μ‚¬ν•­ λΆ„μ„μ˜ 핡심이며, λͺ¨λΈμ€ λ¬Έμ œκ°€ λ°œμƒν•˜λŠ” 상황에 λŒ€ν•œ 이해λ₯Ό μ¦μ§„μ‹œν‚€κ³  해결책을 μ„€λͺ…ν•œλ‹€.

λ”°λΌμ„œ κ°œλ… λͺ¨λΈμ€ 문제 λ„λ©”μΈμ˜ μ—”ν„°ν‹°(entity)λ“€κ³Ό κ·Έλ“€μ˜ 관계 및 쒅속성을 λ°˜μ˜ν•œλ‹€.

 

UMLμœ μŠ€μΌ€μ΄μŠ€ λ‹€μ΄μ–΄κ·Έλž¨(좜처:https://ko.wikipedia.org/)

 

κ°œλ… λͺ¨λΈμ˜ μ’…λ₯˜μ™€ ν‘œκΈ°λ²•

κ°œλ… λͺ¨λΈ μ’…λ₯˜

μœ μŠ€μΌ€μ΄μŠ€ λ‹€μ΄μ–΄κ·Έλž¨(Use Case Diagram) : μ‚¬μš© μ‹œλ‚˜λ¦¬μ˜€λ₯Ό λ‚˜νƒ€λ‚Ό λ•Œ 많이 μ“°μž„.

데이터 흐름 λͺ¨λΈ(Data Flow Model),

μƒνƒœ λͺ¨λΈ(State Model),

λͺ©ν‘œκΈ°λ°˜ λͺ¨λΈ(Goal-Based Model),

μ‚¬μš©μž μΈν„°μ•‘μ…˜ (User Interactions),

객체 λͺ¨λΈ(Object Model),

데이터 λͺ¨λΈ(Data Model) 등이 μžˆλ‹€.

 

κ°œλ… λͺ¨λΈλ§ ν‘œκΈ°λ²•

λŒ€λΆ€λΆ„μ˜ λͺ¨λΈλ§ ν‘œκΈ°λ²•μ€ UML(Unified Modeling Language)을 μ‚¬μš©ν•œλ‹€.

 

 

3. μš”κ΅¬μ‚¬ν•­ ν• λ‹Ή(Requirement Allocation)

μš”κ΅¬μ‚¬ν•­μ„ λ§Œμ‘±μ‹œν‚€κΈ° μœ„ν•œ μ•„ν‚€ν…μ²˜ ꡬ성 μš”μ†Œλ₯Ό μ‹λ³„ν•˜λŠ” 것을 μš”κ΅¬μ‚¬ν•­ 할당이라 ν•œλ‹€.

λ‹€λ₯Έ ꡬ성 μš”μ†Œμ™€ μ–΄λ–»κ²Œ μƒν˜Έ μž‘μš©ν•˜λŠ”μ§€ 뢄석을 ν†΅ν•˜μ—¬ 좔가적인 μš”κ΅¬μ‚¬ν•­μ„ 발견 ν•  수 μžˆλ‹€.

 

 

4. μš”κ΅¬μ‚¬ν•­ ν˜‘μƒ(Requirement Negotiation)

두 λͺ…μ˜ μ΄ν•΄κ΄€κ³„μžκ°€ μ„œλ‘œ μƒμΆ©λ˜λŠ” λ‚΄μš©μ„ μš”κ΅¬ν•˜κ±°λ‚˜, μš”κ΅¬μ‚¬ν•­κ³Ό λ¦¬μ†ŒμŠ€, κΈ°λŠ₯κ³Ό λΉ„κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­λ“€μ΄ μ„œλ‘œ μƒμΆ©λ˜λŠ” 경우, μ–΄λŠ ν•œ μͺ½μ„ μ§€μ§€ν•˜κΈ°λ³΄λ‹€λŠ” μ μ ˆν•œ 트레 μ΄λ“œ μ˜€ν”„ μ§€μ μ—μ„œ ν•©μ˜κ°€ μ€‘μš”ν•˜λ‹€.

μš”κ΅¬μ‚¬ν•­μ— μš°μ„ μˆœμœ„λ₯Ό λΆ€μ—¬ν•˜λŠ” 것은 μ€‘μš”ν•œ μš”κ΅¬μ‚¬ν•­μ„ 필터링할 수 있으며, μš”κ΅¬ 사항듀 κ°„ μƒμΆ©λ˜λŠ” 문제λ₯Ό ν•΄κ²°ν•˜λŠ” 데 μ‚¬μš©λ  수 μžˆλ‹€.

 

 

5. μ •ν˜• 뢄석(Formal Analysis)

ν˜•μ‹μ μœΌλ‘œ μ •μ˜λœ μ‹œλ§¨ν‹±(Semantics)을 μ§€λ‹Œ μ–Έμ–΄λ‘œ μš”κ΅¬μ‚¬ν•­μ„ ν‘œν˜„ν•œλ‹€.

μ •ν™•ν•˜κ³  λͺ…ν™•ν•˜κ²Œ ν‘œν˜„ν•˜μ—¬ μ˜€ν•΄λ₯Ό μ΅œμ†Œν™”μ‹œν‚¬ 수 μžˆλ‹€.

μ •ν˜• 뢄석(Formal Analysis)은 μš”κ΅¬μ‚¬ν•­ λΆ„μ„μ˜ λ§ˆμ§€λ§‰ λ‹¨κ³„μ—μ„œ 이루어진닀.

 

 


 

μ΄λ ‡κ²Œ 이번 ν¬μŠ€νŒ…μ—μ„œλŠ” μ£Όμš” μš”κ΅¬μ‚¬ν•­ 뢄석 기법과 각 μ„€λͺ…을 μ •λ¦¬ν•΄λ³΄μ•˜μŠ΅λ‹ˆλ‹€.

 

λ‹€μŒ ν¬μŠ€νŒ…μ—μ„œλŠ” μš”κ΅¬μ‚¬ν•­ 확인 기법듀을 μ•Œμ•„λ³΄λ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

 

 

μš”κ΅¬μ‚¬ν•­ μ •μ˜, μš”κ΅¬μ‚¬ν•­ 개발, μš”κ΅¬μ‚¬ν•­ 개발 ν”„λ‘œμ„ΈμŠ€, μš”κ΅¬μ‚¬ν•­ 개발 단계, μš”κ΅¬μ‚¬ν•­ λ„μΆœ, μš”κ΅¬μ‚¬ν•­ 뢄석, μš”κ΅¬μ‚¬ν•­ λͺ…μ„Έ, μš”κ΅¬μ‚¬ν•­ 확인, μš”κ΅¬μ‚¬ν•­ 뢄석 기법

728x90
λ°˜μ‘ν˜•

λŒ“κΈ€