πŸ’» Computer Science/Software Engineering

Ch2 μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€

kkh1902 2022. 1. 22. 18:17
728x90
λ°˜μ‘ν˜•

1 μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€μ˜ 이해

01. ν”„λ‘œμ„ΈμŠ€

  • 일을 μ²˜λ¦¬ν•˜λŠ” κ³Όμ • λ˜λŠ” μˆœμ„œλ₯Ό μΌμ»«λŠ”λ‹€
  • μ£Όμ–΄μ§„ 일을 ν•΄κ²°ν•˜κΈ° μœ„ν•œ λͺ©μ μœΌλ‘œ κ·Έ μˆœμ„œκ°€ μ •ν•΄μ Έ μˆ˜ν–‰λ˜λŠ” 일련의 절차

02. μ†Œν”„νŠΈμ›¨μ–΄ 개발 ν”„λ‘œμ„ΈμŠ€

  • μž‘μ—…: μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•  λ•Œ 일을 μˆ˜ν–‰ν•˜λŠ” μž‘μ€ λ‹¨μœ„
  • ν”„λ‘œμ„ΈμŠ€λŠ” 이 μž‘μ—… μˆœμ„œμ˜ 집합이닀.
  • λ‹¨μˆœνžˆ μž‘μ—… μˆœμ„œλ§Œμ΄ μ•„λ‹ˆλΌ 일정, μ˜ˆμ‚°, μžμ›κ³Ό 같은 μ œμ•½ 쑰건을 ν¬ν•¨ν•˜λŠ” 일련의 ν™œλ™μ„ λ§ν•œλ‹€.
  • 의미둠적
    • 쒁은 의미
      • μ†Œν”„νŠΈμ›¨μ–΄ μ œν’ˆμ„ κ°œλ°œν•  λ•Œ ν•„μš”ν•œ 절차, κ³Όμ • 그리고 ꡬ쑰λ₯Ό μΌμ»«λŠ” 말
      • μ‚¬μš©μžμ˜ μš”κ΅¬ 사항을 μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμœΌλ‘œ κ΅¬ν˜„ν•˜κΈ° μœ„ν•œ 일련의 ν™œλ™μ΄λΌκ³  λ³Ό 수 μžˆλ‹€.
    • 넓은 의미
      • μ ˆμ°¨λ‚˜ ꡬ쑰뿐 μ•„λ‹ˆλΌ κ·Έ μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” 데 ν•„μš”ν•œ 방법과 도ꡬλ₯Ό λΉ„λ‘―ν•΄ 개발과 κ΄€λ ¨λœ μ‹€μ œ 절차λ₯Ό 따라 μž‘μ—…μ„ μˆ˜ν–‰ν•˜λŠ” μ°Έμ—¬μžλ“€κΉŒμ§€λ„ ν¬ν•¨ν•œλ‹€.
      • 즉 μ†Œν”„νŠΈμ›¨μ–΄ 개발 λͺ©μ μ„ μ΄λ£¨λŠ” 데 ν•„μš”ν•œ 톡합적 μˆ˜λ‹¨
  • ν”„λ‘œμ„ΈμŠ€λŠ” κ°€μ΄λ“œ 역할을 ν•œλ‹€.
  • ν”„λ‘œμ„ΈμŠ€μ˜ 3μš”μ†Œ
    1. λŠ₯λ ₯, ꡐ윑 및 동기가 λΆ€μ—¬λœ 인원
    2. μž‘μ—…λ“€μ˜ 관계λ₯Ό μ •μ˜ν•˜λŠ” μ ˆμ°¨μ™€ 방법
    3. 도ꡬ와 μž₯λΉ„

process, problem, people


2 μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈμ˜ 이해

  • μš΄μ˜μ²΄μ œλ‚˜ λ°μ΄ν„°λ² μ΄μŠ€ 관리 μ‹œμŠ€ν…œμ²˜λŸΌ λŒ€κ·œλͺ¨ μ†Œν”„νŠΈμ›¨μ–΄λŠ” κ°œλ°œμ— μ°Έμ—¬ν•˜λŠ” κ°œλ°œμžκ°€ 많고 기간도 κΈΈλ©° μ˜ˆμ‚°λ„ 많이 ν•„μš”ν•˜λ‹€.
  • λ”°λΌμ„œ 개발 전에 μ—¬λŸ¬ μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈ μ€‘μ—μ„œ κ°€μž₯ μ ν•©ν•œ λͺ¨λΈμ„ ν”„λ‘œμ νŠΈμ˜ ν‘œμ€€μœΌλ‘œ μ •ν•˜κ³ , λͺ¨λ“  μ°Έμ—¬μžκ°€ κ·Έ ν‘œμ€€μ˜ μ ˆμ°¨μ— 따라 κ°œλ°œν•΄μ•Όν•œλ‹€.

μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈμ˜ μ •μ˜

  • μ†Œν”„νŠΈμ›¨μ–΄ 개발 생λͺ…μ£ΌκΈ° 라고도 ν•œλ‹€.
  • μ–΄λ–»κ²Œ κ°œλ°œν•  것인가에 λŒ€ν•œ 전체적인 흐름을 μ²΄κ³„ν™”ν•œ κ°œλ…μœΌλ‘œ 개발 κ³„νš μˆ˜λ¦½λΆ€ν„° μ΅œμ’… 폐기 λ•ŒκΉŒμ§€μ˜ μ „ 과정을 닀루고 μžˆλ‹€.

μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈμ˜ λͺ©μ 

  • μ£Όμ–΄μ§„ μ˜ˆμ‚°κ³Ό μžμ›μœΌλ‘œ κ°œλ°œν•˜κ³  κ΄€λ¦¬ν•˜λŠ” 방법을 ꡬ체적으둜 μ •μ˜ν•œλ‹€.
  • 즉 각 λ‹¨κ³„μ—μ„œ 무엇을 ν•˜κ³  μ–΄λ–€ μˆœμ„œλ‘œ ν•˜λ©° μ–΄λ–€ μžμ›μ„ μ‚¬μš©ν•  것인지에 λŒ€ν•œ μ§€μΉ¨κ³Ό ν”„λ‘œμ„ΈμŠ€ 관리, 개발된 μ†Œν”„νŠΈμ›¨μ–΄μ— λŒ€ν•œ ν’ˆμ§ˆ 관리 등을 λͺ…ν™•νžˆ ν•œλ‹€

μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈμ˜ μ—­ν• 

  • 전체적인 κΈ°λ³Έ 골격을 μ„Έμ›Œμ€€λ‹€.
  • μΌμ •κ³„νšμ„ μˆ˜λ¦½ν•  수 있고, 개발 λΉ„μš© 산정뿐 μ•„λ‹ˆλΌ μ—¬λŸ¬ μžμ›μ„ μ‚°μ •ν•˜κ³  λΆ„λ°°ν•  수 μžˆλ‹€.
  • μ°Έμ—¬μž 간에 μ˜μ‚¬μ†Œν†΅μ˜ 기쀀을 μ •ν•  수 μžˆλ‹€,
  • μš©μ–΄μ˜ ν‘œμ€€ν™” κ°€λŠ₯μΌ€
  • 개발 진행상황 λͺ…ν™•νžˆ νŒŒμ•…
  • 각 λ‹¨κ³„λ³„λ‘œ μƒμ„±λ˜λŠ” λ¬Έμ„œλ₯Ό ν¬ν•¨ν•œ μ‚°μΆœλ¬Όμ„ ν™œμš©ν•˜μ—¬ κ²€ν† ν•  수 μžˆλ‹€.

 

3 주먹ꡬꡬ식 λͺ¨λΈ

  • build-and-fix λͺ¨λΈμ€ 즉ν₯적 μ†Œν”„νŠΈμ›¨μ–΄ 개발 λ˜λŠ” μ½”λ”©κ³Ό μˆ˜μ • λͺ¨λΈμ΄λΌκ³  ν•œλ‹€.
  • 곡식적인 κ°€μ΄λ“œλΌμΈμ΄λ‚˜ ν”„λ‘œμ„ΈμŠ€κ°€ μ—†λŠ” 개발 방식이닀.
  • 즉 μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ‚˜ 섀계 단계 없이 κ°„λ‹¨ν•œ κΈ°λŠ₯λ§Œμ„ μ •λ¦¬ν•˜μ—¬ κ°œλ°œν•˜λŠ” ν˜•νƒœλ₯Ό λ§ν•œλ‹€.
  • 일반 μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ—¬ μ œν’ˆμ„ λ§Œλ“€μ–΄ λ³Έ 후에 μš”κ΅¬λΆ„μ„, 섀계 , μœ μ§€ λ³΄μˆ˜μ— λŒ€ν•΄ μƒκ°ν•˜λŠ” 것이닀.
    1. 첫 번째 λ²„μ „μ˜ μ½”λ“œλ₯Ό μž‘μ„±ν•˜μ—¬ μ œν’ˆμ„ μ™„μ„±ν•œλ‹€.
    2. μž‘μ„±λœ μ½”λ“œμ— 문제점이 있으면 μˆ˜μ •ν•˜μ—¬ ν•΄κ²°ν•œλ‹€.
    3. λ¬Έμ œκ°€ μ—†μœΌλ©΄ μ‚¬μš©ν•œλ‹€.
  • 개발자 ν•œ λͺ…이 λ‹¨μ‹œκ°„μ— 마칠수 μžˆλŠ” κ²½μš°μ—λ‚˜ μ‚¬μš©ν•  수 μžˆλŠ” 방법이닀.
  • λŒ€ν•™ μˆ˜μ—…μ˜ ν•œ ν•™κΈ°μš© ν”„λ‘œμ νŠΈ 정도이닀.
  • λ”°λΌμ„œ μ‹€μ œ 개발 ν˜„μž₯μ—μ„œ μ‚¬μš©ν•˜κΈ°μ—λŠ” λ¬Έμ œκ°€ λ§Žλ‹€.
  • 이 λͺ¨λΈμ€ μ •ν•΄μ§„ 개발 μˆœμ„œλ‚˜ 각 λ‹¨κ³„λ³„λ‘œ λ¬Έμ„œν™”λœ μ‚°μΆœλ¬Όμ΄ μ—†λ‹€.
    1. 관리 및 μœ μ§€λ³΄μˆ˜κ°€ 맀우 μ–΄λ ΅λ‹€.
    2. ν”„λ‘œμ νŠΈ 전체 λ²”μœ„λ₯Ό μ•Œ 수 없을 λΏλ”λŸ¬ 쒋은 아킀텍쳐λ₯Ό λ§Œλ“€μˆ˜λ„ μ—†λ‹€.
    3. κ°œλ°œμžκ°€ 일을 효과적으둜 λ‚˜λˆ  κ°œλ°œν•  μˆ˜λ„ μ—†λ‹€. μ§„μ²™ 상황을 νŒŒμ•…μ•ˆλŒ
    4. μ—¬λŸ¬λ²ˆ μˆ˜μ •ν•˜λ‹€λ³΄λ©΄ ꡬ쑰적으둜 가독성이 λ†’μ•˜λ˜ ν”„λ‘œκ·Έλž¨μ˜ ꡬ쑰가 λ‚˜λΉ μ Έ μˆ˜μ •μ΄ 맀우 μ–΄λ €μ›Œ μ§„λ‹€

4. μ„ ν˜• 순차적 λͺ¨λΈ

  • 폭포수 λͺ¨λΈλ‘œ μ•Œλ €μ§ (고전적 생λͺ… μ£ΌκΈ°classic life cycle)이라고 ν•œλ‹€.

1. 폭포수 λͺ¨λΈμ˜ 개발 절차

  • ν•˜ν–₯μ‹μœΌλ‘œ μ§„ν–‰λ˜λ©° λ³‘ν–‰λ˜κ±°λ‚˜ 거슬러 λ°˜λ³΅λ˜μ§€ μ•ŠλŠ”λ‹€
  • ν™•μ‹€νžˆ 맀듭을 μ§“κ³  κ·Έ κ²°κ³Όλ₯Ό ν™•μΈν•œ 후에 λ‹€μŒ λ‹¨κ³„λ‘œ μ§„ν–‰ν•œλ‹€.
  • μš”κ΅¬ 사항 뢄석 단계가 λλ‚˜λ©΄ μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλΌλŠ” λ¬Έμ„œκ°€ μ‚°μΆœλœλ‹€.

각 λ‹¨κ³„μ—μ„œ ν•˜λŠ” 일

1. κ³„νš 단계(planning)

  • 문제λ₯Ό μ •μ˜ν•œ ν›„ ν”„λ‘œμ νŠΈ μ˜μ—­μ„ κ²°μ •ν•œλ‹€.
  • μž‘μ—… λΆ„ν•  ꡬ쑰도(WBS)λ₯Ό μ΄μš©ν•˜μ—¬ μ„ΈλΆ€ μž‘μ—…μ„ κ²°μ •ν•œλ‹€.
  • CPM(Critical Path Method)λ₯Ό μ΄μš©ν•΄ μž‘μ—… μˆœμ„œλ₯Ό κ²°μ •ν•œλ‹€.
  • κ°„νŠΈ 차트λ₯Ό μ΄μš©ν•΄ μΌμ •ν‘œλ₯Ό μž‘μ„±ν•œλ‹€.
  • κΈ°λŠ₯ 점수(FP)등을 μ΄μš©ν•΄ ν”„λ‘œμ νŠΈμ— μ†Œμš”λ˜λŠ” λΉ„μš©μ„ μ‚°μ •ν•œλ‹€.
  • κ³„νš λ‹¨κ³„μ˜ μ΅œμ’… μ‚°μΆœλ¬ΌμΈ ‘개발 κ³„νšμ„œ’λ₯Ό μž‘μ„±ν•œλ‹€.

2. μš”κ΅¬ 뢄석(requirement analysis) 단계

  • κΈ°μ‘΄ μ‹œμŠ€ν…œμ„ λΆ„μ„ν•˜κ³ , 인터뷰 등을 톡해 μ‚¬μš©μžμ˜ μš”κ΅¬ 사항을 μˆ˜μ§‘ν•œλ‹€.
  • μ‚¬μš©μžκ°€ μš”κ΅¬ν•˜λŠ” κΈ°λŠ₯적 μš”κ΅¬ 사항과 λΉ„κΈ°λŠ₯적 μš”κ΅¬ 사항을 νŒŒμ•…ν•œλ‹€.
  • 각 방법둠에 λ”°λ₯Έ ν‘œκΈ°λ²•μ„ μ΄μš©ν•΄ μ •λ¦¬λœ μš”κ΅¬ 사항을 ν‘œν˜„ν•œλ‹€.
  • 객체지ν–₯ λ°©λ²•λ‘ μ—μ„œλŠ” μœ μŠ€μΌ€μ΄μŠ€ λ‹€μ΄μ–΄κ·Έλž¨μ„ μž‘μ„±ν•œλ‹€.
  • μš”κ΅¬ 뢄석 λ‹¨κ³„μ˜ μ΅œμ’… μ‚°μΆœλ¬ΌμΈ μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ₯Ό μž‘μ„±ν•œλ‹€.

3. 섀계(design)단계

  • 크게 전체적인 μ‹œμŠ€ν…œ ꡬ성을 λ‚˜νƒ€λ‚΄λŠ” μƒμœ„ 섀계(μ•„ν‚€ν…μ²˜ 섀계)와 각 λͺ¨λ“ˆ (μ»΄ν¬λ„ŒνŠΈ, 자료ꡬ쑰, μ•Œκ³ λ¦¬μ¦˜)의 μ„ΈλΆ€ λ‚΄μš©μ„ μ„€κ³„ν•˜λŠ” ν•˜μœ„ μ„€κ³„λ‘œ λ‚˜λ‰œλ‹€.
  • μƒμœ„ 섀계
    • κ°œλ°œν•˜λ €λŠ” μ†Œν”„νŠΈμ›¨μ–΄μ˜ 전체 ꡬ쑰λ₯Ό λ³Ό 수 μžˆλŠ” μ•„ν‚€ν…μ²˜λ₯Ό μ„€κ³„ν•œλ‹€.
    • μ•„ν‚€ν…μ²˜μ˜ ν’ˆμ§ˆ 속성을 κ²°μ •ν•œλ‹€.
    • μ•„ν‚€ν…μ²˜μ˜ μŠ€νƒ€μΌμ„ κ²°μ •ν•œλ‹€.
    • 섀계 νŒ¨ν„΄μ„ κ²°μ •ν•œλ‹€.
  • ν•˜μœ„ 섀계
    • λͺ¨λ“ˆ κ°„μ˜ κ²°ν•©λ„μ˜ λͺ¨λ“ˆ λ‚΄μ˜ 응집λ ₯을 κ³ λ €ν•΄ λͺ¨λ“ˆμ˜ μ„ΈλΆ€ λ‚΄μš©μ„ μ„€κ³„ν•œλ‹€.
    • 객체지ν–₯ 방법둠에 따라 섀계λ₯Ό ν•œλ‹€λ©΄ 섀계 원리, 클래슀 κ°„μ˜ 관계, 클래슀 섀계 원칙을 κ³ λ €ν•œλ‹€.

4. κ΅¬ν˜„ 단계 (implementation)

  • 코딩을 ν•˜λŠ” 단계이닀.
  • λ³΄μ•ˆμ΄ 맀우 μ€‘μš”ν•˜λ―€λ‘œ μ‹œνμ–΄ μ½”λ”©(secure coding)ν•˜λŠ” 방법도 κ³ λ €ν•˜μž

5. ν…ŒμŠ€νŠΈ(test) 단계

  • ν”„λ‘œμ νŠΈμ˜ 성격에 λ§žλŠ” 방법을 μ„ νƒν•œλ‹€.
    • 개발자 λ˜λŠ” μ‚¬μš©μž μ‹œκ°μ— λ”°λ₯Έ λΆ„λ₯˜
    • μ‚¬μš©λ˜λŠ” λͺ©μ μ— λ”°λ₯Έ λΆ„λ₯˜
    • ν”„λ‘œκ·Έλž¨μ˜ μ‹€ν–‰ μš”κ΅¬ 여뢀에 λ”°λ₯Έ λΆ„λ₯˜
    • ν’ˆμ§ˆ νŠΉμ„±μ— λ”°λ₯Έ λΆ„λ₯˜
    • μ†Œν”„νŠΈμ›¨μ–΄ 개발 단계에 λ”°λ₯Έ λΆ„λ₯˜

6. μœ μ§€λ³΄μˆ˜ (maintenance) 단계

  • μ‚¬λŠ” 집에 λΆˆνŽΈν•œ 뢀뢄이 λ°œκ²¬λ˜κ±°λ‚˜ λ‚‘μœΌλ©΄ 계속 κ³ μΉ˜λ©΄μ„œ μ‚΄μ•„κ°€λŠ” 것과 μœ μ‚¬ν•˜λ‹€.
  • μ†Œν”„νŠΈμ›¨μ–΄λ„ μ‚¬μš©ν•˜λ‹€ 보면 μΆ”κ°€ μš”κ΅¬μ‚¬ν•­, μˆ˜μ • 사항 등이 많이 λ°œμƒ ν•œλ‹€.
    • μˆ˜μ • μœ μ§€ 보수(correction)
    • 적응 μœ μ§€ 보수(adaption)
    • κΈ°λŠ₯ 보강 μœ μ§€ 보수 (enhancement)
    • 예방 μœ μ§€ 보수(prevention)

2. 폭포수 λͺ¨λΈμ˜ μž₯점과 단점

폭포수 λͺ¨λΈμ€ 각 λ‹¨κ³„λ§ˆλ‹€ μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œ, 섀계 μ‚¬μ–‘μ„œ, μ½”λ“œ λ¬Έμ„œ, λ°μ΄ν„°λ² μ΄μŠ€ 메뉴얼, μ‚¬μš©μž 맀뉴얼, 운영 맀뉴얼 λ“±μ˜ μƒμ„Έν•œ λ¬Έμ„œκ°€ μƒμ„±λ˜λŠ” λ¬Έμ„œ μ€‘μ‹¬μ˜ λͺ¨λΈμ΄λΌ ν•  수 μžˆλ‹€.

폭포수 λͺ¨λΈμ„ μ‚¬μš©ν–ˆμ„ λ•Œμ˜ μž₯점

  • 관리가 μš©μ΄ν•˜λ‹€.
  • μ²΄κ³„μ μœΌλ‘œ λ¬Έμ„œν™”ν•  수 μžˆλ‹€.
    • 단계별 μ‚°μΆœλ¬Όμ„ μ²΄κ³„μ μœΌλ‘œ λ¬Έμ„œν™”ν•  수 μžˆλ‹€.
  • μš”κ΅¬ μ‚¬ν•­μ˜ λ³€ν™”κ°€ 적은 ν”„λ‘œμ νŠΈμ— μ ν•©ν•˜λ‹€.

폭포수 λͺ¨λΈμ„ μ‚¬μš©ν–ˆμ„ λ•Œμ˜ 단점

  • 폭포가 μœ„μ—μ„œ μ•„λž˜λ‘œ 흐λ₯΄λ“―이 각 λ‹¨κ³„λŠ” μ•ž 단계가 μ™„λ£Œλ˜μ–΄μ•Ό μˆ˜ν–‰ν•  수 μžˆλ‹€.
  • 각 λ‹¨κ³„λ§ˆλ‹€ μž‘μ„±λœ 결과물이 μ™„λ²½ν•œ μˆ˜μ€€μœΌλ‘œ μž‘μ„±λ˜μ–΄μ•Ό λ‹€μŒ 단계에 였λ₯˜λ₯Ό λ„˜κ²¨μ£Όμ§€ μ•ŠλŠ”λ‹€.
    • ν˜„μ‹€μ€ κ·Έλ ‡μ§€ λͺ»ν•˜λ‹€. μ‚°μΆœλ¬Όμ„ μΆ©λΆ„νžˆ κ²€ν† ν–ˆλ‹€ 해도 λ°œκ²¬ν•˜μ§€ λͺ»ν•œ 였λ₯˜κ°€ μžˆμ„ 수 μžˆλ‹€.
  • μ‚¬μš©μžκ°€ 쀑간에 κ°€μ‹œμ μΈ κ²°κ³Όλ₯Ό λ³Ό 수 μ—†μ–΄ λ‹΅λ‹΅ν•΄ ν•  수 μžˆλ‹€.
    • μ‚¬μš©μžκ°€ μ‹€μ œλ‘œ μ†Œν”„νŠΈμ›¨μ–΄ μž‘λ™ λͺ¨μŠ΅μ„ 보렀면 κ΅¬ν˜„μ΄ λλ‚˜μ•Ό ν•œλ‹€.
    • μ›ν•˜λŠ” κ²°κ³Όκ°€ μ•„λ‹ˆλΌλ©΄ μˆ˜μ • μš”κ΅¬ 사항을 λ°›μ•„ λ³΄μ™„ν•˜κΈ° μœ„ν•΄ μ‹œκ°„κ³Ό λΉ„μš©μ΄ 많이 λ“€μ–΄κ°€κ²Œ λœλ‹€.

5. V λͺ¨λΈ

Vλͺ¨λΈμ€ 폭포수 λͺ¨λΈμ˜ λ³€ν˜•μ΄λ‹€.

ν…ŒμŠ€νŠΈ 단계λ₯Ό μΆ”κ°€ ν™•μž₯ν•˜μ—¬ ν…ŒμŠ€νŠΈ 단계가 뢄석 및 섀계와 μ–΄λ–»κ²Œ κ΄€λ ¨λ˜μ–΄ μžˆλŠ”μ§€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€.

λ‹¨μœ„ ν…ŒμŠ€νŠΈ (unit test)

  • λͺ©ν‘œ : κ°œλ³„ λͺ¨λ“ˆ 검증
  • λ‚΄μš©
    • λ‹¨μœ„ ν…ŒμŠ€νŠΈλŠ” λͺ¨λ“ˆ ν…ŒμŠ€νŠΈλΌκ³  ν•˜λ©°, μ‹œμŠ€ν…œμ„ κ΅¬μ„±ν•˜λŠ” λͺ¨λ“ˆ(ν•¨μˆ˜, μ„œλΈŒλ£¨ν‹΄, μ»΄ν¬λ„ŒνŠΈ λ“±)이 κΈ°λŠ₯을 μ˜¬λ°”λ₯΄κ²Œ μˆ˜ν–‰ν•˜λŠ”μ§€ νŒλ³„ν•œλ‹€.
    • 내뢀에 μ‘΄μž¬ν•˜λŠ” 논리적인 였λ₯˜λ₯Ό κ²€μΆœν•  λͺ©μ μœΌλ‘œ 상세 섀계 μ‚¬μ–‘μ„œμ˜ λ‚΄μš©λŒ€λ‘œ μ •ν™•νžˆ κ΅¬ν˜„λ˜μ—ˆλŠ”κ°€λ₯Ό μ§‘μ€‘μ μœΌλ‘œ ν™•μΈν•œλ‹€.

톡합 ν…ŒμŠ€νŠΈ (interation test)

  • λͺ¨λ“ˆμ΄λž€? κΈ°λŠ₯상 성격이 λΉ„μŠ·ν•œ λ˜λŠ” μ—°κ΄€μ„± μžˆλŠ” 뢀뢄듀이 쑰립된 덩어리λ₯Ό λ§ν•©λ‹ˆλ‹€.
  • λͺ©ν‘œ : λͺ¨λ“ˆ κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€ 확인
  • λ‚΄μš©
    • λ‹¨μœ„ ν…ŒμŠ€νŠΈλ₯Ό 마친 각 λͺ¨λ“ˆμ„ ν†΅ν•©ν•˜λŠ” κ³Όμ •μ—μ„œ λ°œμƒν•  수 μžˆλŠ” 였λ₯˜λ₯Ό μ°ΎλŠ”λ‹€
    • λͺ¨λ“ˆ 사이에 μΈν„°νŽ˜μ΄μŠ€ 였λ₯˜λŠ” μ—†λŠ”μ§€ λͺ¨λ“ˆ μ‚¬μ΄μ˜ μƒν˜Έμž‘μš©μ΄ μ μ ˆν•˜κ²Œ μˆ˜ν–‰λ˜λŠ”μ§€
    • λͺ¨λ“ˆμ΄ μ˜¬λ°”λ₯΄κ²Œ μ—°κ³„λ˜μ–΄ λ™μž‘ν•˜κ³  μžˆλŠ”μ§€ 확인
    • λͺ¨λ“ˆ μƒν˜Έ 간에 잘 κ²°ν•©λ˜μ—ˆλŠ”μ§€λ₯Ό 확인

μ‹œμŠ€ν…œ ν…ŒμŠ€νŠΈ(system test)

  • λͺ©ν‘œ: λͺ¨λ“ˆμ΄ λͺ¨λ‘ ν†΅ν•©λœ ν›„ μ‚¬μš©μžμ˜ μš”κ΅¬ 사항듀을 λ§Œμ‘±ν•˜λŠ”μ§€ 확인
  • λ‚΄μš©
    • λͺ¨λ“ˆ κ°„μ˜ μΈν„°νŽ˜μ΄μŠ€μ— λ¬Έμ œκ°€ μ—†λŠ”μ§€ ν™•μΈν•˜λŠ” 톡합 ν…ŒμŠ€νŠΈκΉŒμ§€ λλ‚˜λ©΄, μ‹œμŠ€ν…œ ν…ŒμŠ€νŠΈλ₯Ό 톡해 μ‹œμŠ€ν…œ 전체가 μ •μƒμ μœΌλ‘œ μž‘λ™ν•˜λŠ”μ§€ ν…ŒμŠ€νŠΈν•œλ‹€.

인수 ν…ŒμŠ€νŠΈ (accptance test)

  • λͺ©ν‘œ ; μ‹œμŠ€ν…œμ΄ μ˜ˆμƒλŒ€λ‘œ λ™μž‘ν•˜κ³  μš”κ΅¬ 사항에 λΆ€ν•©ν•˜λŠ”μ§€ 확인
  • λ‚΄μš©
    • μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œμ— λͺ…μ‹œλœ 사항을 λͺ¨λ‘ μΆ©μ‘±ν•˜λŠ”μ§€ ν…ŒμŠ€νŠΈν•œλ‹€.
    • 인수 ν…ŒμŠ€νŠΈκ°€ λλ‚˜λ©΄ μ‚¬μš©μžμ—κ²Œ μ •μƒμ μœΌλ‘œ μΈμˆ˜ν•œ ν›„ ν”„λ‘œμ νŠΈλ₯Ό μ’…λ£Œν•œλ‹€.

6. 진화적 ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈ

ν”„λ‘œν† νƒ€μž… λͺ¨λΈ

1. 진화적 ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈμ˜ λ“±μž₯ λ°°κ²½(λͺ©μ )

  • 폭포수 λͺ¨λΈμ˜ κ°€μž₯ 큰 단점 쀑 ν•˜λ‚˜κ°€ 단계λ₯Ό 거슬러 μ˜¬λΌκ°€ μž‘μ—…ν•˜λŠ” 것이 쉽지 μ•Šμ€ ꡬ쑰이닀.
  • μƒˆλ‘œμš΄ μš”κ΅¬κ°€ μˆ˜μ‹œλ‘œ λ°œμƒν•΄ 이에 λ―Όμ²©ν•˜κ²Œ λŒ€μ‘ν•  수 μžˆλŠ” 방법이 ν•„μš” → 진화적 ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈ
  • νŠΉμ§•
    • μ‚¬μš©μž μš”κ΅¬μ— 따라 κ°€μƒμœΌλ‘œ μ‹€ν–‰λ˜λŠ” 초기 λ²„μ „μ˜ ν”„λ‘œν† νƒ€μž…μ„ λ§Œλ“€κ³  μ‚¬μš©μžλŠ” μΈν„°νŽ˜μ΄μŠ€ μ€‘μ‹¬μ˜ ν™”λ©΄κ³Ό μ‹€ν–‰ ν›„ λ‚˜νƒ€λ‚˜λŠ” κ°€μƒμ˜ κ²°κ³Ό 화면을 λ³Έλ‹€
    • 그런 λ‹€μŒ λ³€κ²½λœ μš”κ΅¬ 사항을 λ°˜μ˜ν•˜κ±°λ‚˜ μΆ”κ°€ν•΄ 2μ°¨ ν”„λ‘œν† νƒ€μž…μ„ λ§Œλ“€μ–΄ μ‚¬μš©μžμ—κ²Œ 보여쀀닀.
    • 이 같은 μž‘μ—…μ„ λ°˜λ³΅ν•˜μ—¬ μ™„μ„±
    • ν”„λ‘œν†  νƒ€μž…μ„ ν™œμš©ν•˜λ©΄ 반볡적인 μΆ”κ°€ 및 μˆ˜μ • μš”κ΅¬κ°€ κ·Έλ•Œκ·Έλ•Œ λ°˜μ˜λ˜λ―€λ‘œ μ™„μ„± μ œν’ˆμ„ λŒ€ν­ μˆ˜μ •ν•΄μ•Ό ν•˜λŠ” λŒ€ν˜• 사고λ₯Ό 막을 수 μžˆλ‹€.
    • μ‚¬μš©μž μš”κ΅¬ 사항을 νŒŒμ•…ν•˜μ—¬ κ°€λŠ₯ν•œ λΉ λ₯Έ μ‹œκ°„ 내에 ν”„λ‘œν† νƒ€μž…μ„ κ°œλ°œν•œ ν›„ 이것을 고객과의 μ˜μ‚¬μ†Œν†΅ λ„κ΅¬λ‘œ ν™œμš©→ μ‚¬μš©μžκ°€ λ§Œμ‘±ν•˜λŠ” μ΅œμ’… μ™„μ œν’ˆμ„ λ§Œλ“€ 수 μžˆλ‹€.

2. ν”„λ‘œν† νƒ€μž…

  • ν”„λ‘œν†  νƒ€μž…μ˜ 사전적 의미: λŒ€λŸ‰ 생산에 μ•žμ„œ 미리 μ œμž‘ν•΄λ³΄λŠ” μ›ν˜• λ˜λŠ” μ‹œμ œν’ˆμœΌλ‘œ, μ œμž‘λ¬Όμ˜ λͺ¨ν˜•이라 ν•  수 μžˆλ‹€.
  • μ™„μ „ν•œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό λ§Œλ“€κΈ° 전에 μ‚¬μš©μžμ˜ μš”κ΅¬λ₯Ό λ°›μ•„ λͺ¨ν˜•을 λ§Œλ“€κ³  이 λͺ¨ν˜•을 μ‚¬μš©μžμ™€ μ˜μ‚¬μ†Œν†΅ν•˜λŠ” λ„κ΅¬λ‘œ ν™œμš©ν•œλ‹€.
  • μ˜ˆμ‹œ : λͺ¨λΈ ν•˜μš°μŠ€
  • λͺ¨λΈ λ§Œλ“œλŠ” 것을 λͺ¨λΈλ§μ΄λΌκ³  ν•˜λ“―, ν”„λ‘œν† νƒ€μž…μ„ λ§Œλ“œλŠ” 것을 ν”„λ‘œν† νƒ€μ΄ν•‘μ΄λΌ ν•œλ‹€.
  • κ°œλ°œμžλŠ” μ‚¬μš©μžμ˜ 초기 μš”κ΅¬ 사항을 λ°˜μ˜ν•˜μ—¬ 1μ°¨ ν”„λ‘œν† νƒ€μž…μ„ λ§Œλ“€κ³ , 이것을 μ‚¬μš©μžμ—κ²Œ 보여쀀닀. 그러면 μ‚¬μš©μžλŠ” 1μ°¨ ν”„λ‘œν† νƒ€μž…μ„ λ³΄λ©΄μ„œ μΆ”κ°€ μš”κ΅¬λ‚˜ μˆ˜μ • μš”κ΅¬λ₯Ό ν•˜κ³ , κ°œλ°œμžλŠ” 이런 μš”κ΅¬ 사항을 λ°›μ•„λ“€μ—¬ 2μ°¨ ν”„λ‘œν† νƒ€μž…μ„ λ§Œλ“ λ‹€. 이과정을 μ‚¬μš©μžκ°€ λ§Œμ‘±ν•  λ•ŒκΉŒμ§€ μ—¬λŸ¬ 번 λ°˜λ³΅ν•˜μ—¬ μ‚¬μš©μžμ˜ μ΅œμ’… μš”κ΅¬λ₯Ό λ°˜μ˜ν•œ μ™„μ„±ν’ˆμ„ λ§Œλ“œλŠ” 개발 방식이닀.
  • ν”„λ‘œν† νƒ€μž… λͺ¨λΈμ€ 폭포수 λͺ¨λΈμ„ 기반으둜 κ°œλ°œν•˜λ©΄μ„œ μ‚¬μš©μžμ˜ μš”κ΅¬λ₯Ό μΆ©λΆ„νžˆ λ°˜μ˜ν•˜κΈ° μœ„ν•΄ ν”„λ‘œν† νƒ€μž…μ„ μΆ”κ°€ν•œ λͺ¨λΈμ΄λ‹€.
  • ν”„λ‘œν† νƒ€μž… λͺ¨λΈμ€ μ‚¬μš©μžμ˜ μš”κ΅¬κ°€ 뢈투λͺ…ν•˜κ³ , μš”κ΅¬ μ‚¬ν•­μ˜ λ³€ν™”κ°€ 계속 많이 λ°œμƒν•˜λŠ” κ²½μš°μ— μ ν•©ν•˜λ‹€.
  • λ˜ν•œ λΉ„μš©μ΄ 많이 ν•„μš”ν•œ λŒ€κ·œλͺ¨ μ‹œμŠ€ν…œμ΄λ‚˜ μƒˆλ‘œμš΄ ν˜μ‹  κΈ°μˆ μ„ μ‚¬μš©ν•  경우 개발 전에 ν”„λ‘œν† νƒ€μ΄ν•‘μ„ 톡해 μ‹€ν˜„ κ°€λŠ₯성을 타진해볼 수 μžˆλ‹€.

ν”„λ‘œν† νƒ€μž… λͺ¨λΈμ€ μ΅œμ’… ν”„λ‘œν† νƒ€μž…μ„ μ–΄λ–»κ²Œ ν™œμš©ν•˜λŠλƒ(두가지 ν˜•νƒœ)

  1. μ΅œμ’… ν”„λ‘œν† νƒ€μž…μ„ 버리고 μ²˜μŒλΆ€ν„° μƒˆλ‘œ μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό κ°œλ°œν•˜λŠ” μ‹€ν—˜μ  ν”„λ‘œν†  νƒ€μž… λͺ¨λΈ
  2. μ΅œμ’… ν”„λ‘œν† νƒ€μž…μ„ 버리지 μ•Šκ³  μ§€μ†μ μœΌλ‘œ λ°œμ „μ‹œμΌœ κ°œλ°œν•΄ κ°€λŠ” 진화적 ν”„λ‘œν† νƒ€μž… λͺ¨λΈμ΄λ‹€.

2.1 μ‹€ν—˜μ  ν”„λ‘œν† νƒ€μž… λͺ¨λΈ

  • μ‚¬μš©μžμ˜ μš”κ΅¬ 사항을 반볡적으둜 λ°˜μ˜ν•˜μ—¬ μ΅œμ’… ν”„λ‘œν† νƒ€μž…μ„ λ§Œλ“œλŠ” 데 λͺ©μ μ΄ μžˆλ‹€.

2.2 진화적 ν”„λ‘œν† νƒ€μž… λͺ¨λΈ

  • κ΅¬ν˜„λœ ν”„λ‘œν† νƒ€μž…μ„ 버리지 μ•Šκ³  μ§€μ†μ μœΌλ‘œ κ°œμ„ . λ³΄μ™„ν•˜μ—¬ μ΅œμ’… μ‹œμŠ€ν…œμœΌλ‘œ μ™„μ„±μ‹œν‚¨λ‹€.(λ‚˜μ„ ν˜• λͺ¨λΈ)

3. ν”„λ‘œν† νƒ€μž… λͺ¨λΈμ˜ 개발 절차

1. μš”κ΅¬ 사항 μ •μ˜ 및 뢄석

  • μ‚¬μš©μžμ˜ μš”κ΅¬λ₯Ό νŒŒμ•…ν•˜κ³  μ •λ¦¬ν•˜μ—¬ μš”κ΅¬ 사항을 μ •μ˜ν•œ ν›„ λΆ„μ„ν•œλ‹€.

2. ν”„λ‘œν†  νƒ€μž… 섀계

  • μ‚¬μš©μžμ™€ λŒ€ν™”ν•  수 μžˆλŠ” μˆ˜μ€€μœΌλ‘œ 섀계

3. ν”„λ‘œν†  νƒ€μž… 개발

  • μ™„μ œν’ˆ 개발 x
  • 좜λ ₯ κ²°κ³Όκ°€ μ‚¬μš©μž μ›ν•˜λŠ” 것인지 λ³΄μ—¬μ£ΌλŠ” 데 λͺ©μ μ΄ μžˆλ‹€.
  • 가상 μˆ˜ν–‰μ„ μ „μ œλ‘œ ν•œ 싀행을 λ³΄μ—¬μ£ΌλŠ” 것이 μš°μ„ μ΄λ‹€.
  • μ™„μ „ν•œ μ‹€ν–‰ μ—¬λΆ€, 개발된 μ œν’ˆμ˜ μ‹ νšŒλ„, ν’ˆμ§ˆ 등은 λ‚˜μ€‘μœΌλ‘œ 미루고 RAD(Rapid Application Development) 같은 도ꡬλ₯Ό μ΄μš”ν•΄ λΉ λ₯΄κ²Œ μ‹€ν–‰ν•œλ‹€.

4. μ‚¬μš©μžμ— μ˜ν•œ ν”„λ‘œν† νƒ€μž… 평가

  • n번 반볡 ν•˜μ—¬ μ‚¬μš©μžμ˜ μΆ”κ°€ μš”κ΅¬ 사항이 더 이상 없을 λ•Œ μ΅œμ’… ν”„λ‘œν†  νƒ€μž…μ΄ λ§Œλ“€μ–΄μ§„λ‹€.

5. κ΅¬ν˜„

  • 첨뢀터 λ‹€μ‹œν•˜λ©΄ μ‹€ν—˜μ 
  • κ°œμ„ ν•΄λ‚˜κ°€λ©΄ 진화적

4. ν”„λ‘œν†  νƒ€μž… λͺ¨λΈμ˜ μž₯점과 단점

μž₯점

  • κ°€μ‹œμ μΈ 결과인 ν”„λ‘œν† νƒ€μž…μ΄ κ°œλ°œμžμ™€ μ‚¬μš©μž κ°„μ˜ μ˜μ‚¬μ†Œν†΅ λ„κ΅¬λ‘œ μ‚¬μš©λ˜μ–΄ ꡬ체적이고 μ›ν™œν•˜κ²Œ λŒ€ν™”ν•  수 μžˆλ‹€λŠ” 것이닀.
  • μ‚¬μš©μžμ˜ μš”κ΅¬κ°€ μΆ©λΆ„νžˆ 반영 된 μš”κ΅¬ 뢄석 λͺ…μ„Έμ„œλ₯Ό λ§Œλ“€ 수 μžˆλ‹€λŠ” 것이닀.
  • μ‚¬μš©μžμ˜ μš”κ΅¬κ°€ μΆ©λΆ„νžˆ λ°˜μ˜λ˜μ–΄ μ΅œμ’… μ œν’ˆμ΄ λ‚˜μ˜€λ―€λ‘œ μœ μ§€λ³΄μˆ˜μ— ν•„μš”ν•œ λ…Έλ ₯κ³Ό μ‹œκ°„μ„ 많이 쀄일 수 μžˆλ‹€.

단점

  • ν•„μš”ν•œ νˆ¬μž… 인λ ₯κ³Ό λΉ„μš©μ‚°μ •μ΄ μ–΄λ ΅λ‹€.
  • λΉ λ₯Έ μ‹œκ°„ μ•ˆμ— μ΅œμ’… κ²°κ³Όκ°€ λ‚˜μ˜¬ κ²ƒμ²˜λŸΌ 착각을 쀄 수 μžˆλ‹€.
  • 관리-ν†΅μ œν•˜κΈ° μ–΄λ ΅λ‹€.
  • μ΄μ •ν‘œλ‚˜ μ‚°μΆœλ¬Όμ„ μƒμ„±ν•˜κΈ°κ°€ 쉽지 μ•ŠκΈ° λ•Œλ¬Έμ΄λ‹€.
  • λͺ©ν‘œκ°€ 뢈λͺ…ν™•ν•΄μ§ˆμˆ˜μžˆκ³  μΆ”κ°€ λΉ„μš©μ΄ λ“€μˆ˜ μžˆλ‹€.

7. λ‚˜μ„ ν˜• λͺ¨λΈ

1. λ‚˜μ„ ν˜• λͺ¨λΈμ˜ νŠΉμ„±

‘λ‚˜μ„ ν˜•’은 μ†ŒλΌ 껍데기처럼 λΉ™λΉ™ λΉ„ν‹€λ € λŒμ•„κ°€λŠ” λͺ¨μ–‘을 λ§ν•œλ‹€.

  • 진화적 ν”„λ‘œν† νƒ€μž… λͺ¨λΈ 절차λ₯Ό λ”°λ₯Έλ‹€.
  • μœ„ν—˜ 뢄석 단계가 μΆ”κ°€λ˜μ—ˆλ‹€.

μœ„ν—˜ 뢄석 단계

  • μœ„ν—˜ μš”μ†ŒλŠ” μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œν•˜λŠ”λ° λ°©ν•΄λ˜λŠ” λͺ¨λ“ μš”μ†Œλ“€
  • 예
    • λ²ˆλ²ˆν•˜κ²Œ λ³€κ²½λ˜λŠ” μš”κ΅¬ 사항, νŒ€μ›λ“€μ˜ κ²½ν—˜ λΆ€μ‘±, 결속λ ₯이 λ–¨μ–΄μ§€λŠ” νŒ€μ›Œν¬
    • ν”„λ‘œμ νŠΈ κ΄€λ¦¬μ˜ λΆ€μž¬
  • 반볡적 개발 λͺ¨λΈ

2. λ‚˜μ„ ν˜• λͺ¨λΈμ˜ 개발 절차

1. κ³„νš 및 μš”κ΅¬ 뢄석 단계

  • 개발 μ˜λ„λ₯Ό νŒŒμ•…
  • κΈ°λŠ₯ μš”κ΅¬μ‚¬ν•­ , μ„±λŠ₯ 같은 λΉ„κΈ°λŠ₯ μš”κ΅¬ 사항 μ •μ˜ 및 뢄석

2. μœ„ν—˜ 뢄석 단계

  • μœ„ν—˜ μš”μ†Œλ₯Ό μ°Ύμ•„ λͺ©λ‘μ„ μž‘μ„±
  • μœ„ν—˜ μš”μ†Œλ₯Ό 평가 진행해도 λ˜λŠ” μ§€ 평가
  • κ°œλ°œν•˜λŠ”λ° 일반적으둜 λ‚˜νƒ€λ‚  수 μžˆλŠ” μœ„ν—˜ μš”μ†Œ
    • 개발자의 이직
    • μš”κ΅¬ 사항 λ³€κ²½
    • λ°œμ£Όμ‚¬μ˜ μž¬μ •μ  어렀움
    • μ˜ˆμƒμ„ λΉ—λ‚˜κ°„ νˆ¬μž… 인λ ₯
    • 개발 κΈ°κ°„μ˜ λΆ€μ‘±
    • κ°œλ°œλΉ„μ˜ 초과

3. 개발 단계

4. μ‚¬μš©μž 평가 단계

  • n번 λ°˜λ³΅ν•˜μ—¬ 더 μ΄μƒμ˜ μΆ”κ°€ 및 μˆ˜μ • μš”κ΅¬κ°€ μ—†μœΌλ©΄ μ΅œμ’… μ œν’ˆμ„ λ§Œλ“ λ‹€

3. λ‚˜μ„ ν˜• λͺ¨λΈμ˜ μž₯점과 단점

μž₯점

  • μœ„ν—˜μ„ κ³ λ €λ₯Ό ν•˜λ©΄μ„œ 개발이 μ§„ν–‰λœλ‹€
  • μœ„ν—˜μœΌλ‘œ 인해 ν”„λ‘œμ νŠΈκ°€ μ€‘λ‹¨λ˜λŠ” μ‹¬κ°ν•œ μ‚¬νƒœκ°€ λ°œμƒν•  ν™•λ₯ μ΄ 비ꡐ적 μ λ‹€λŠ” μž₯점이 μžˆλ‹€.
  • μ‚¬μš©μžμ˜ μš”κ΅¬λ„ μΆ©λΆ„νžˆ λ°˜μ˜λ˜λŠ” 맀우 μœ μš©ν•œ μ†Œν”„νŠΈμ›¨μ–΄ ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈμ΄λ‹€.

단점

  • μš”κ΅¬λΆ„μ„, μœ„ν—˜ 뢄석, 개발, μ‚¬μš©μž 평가가 반볡적으둜 계속 μ§„ν–‰λ˜κΈ° λ•Œλ¬Έμ— ν”„λ‘œμ νŠΈ 기간이 κΈΈμ–΄μ§ˆ 수 있고, 반볡 νšŸμˆ˜κ°€ λ§Žμ•„μ§ˆμˆ˜λ‘ ν”„λ‘œμ νŠΈ 관리가 μ–΄λ ΅λ‹€.
  • μœ„ν—˜ 관리 μ „λ¬Έκ°€λ₯Ό ν•„μš”λ‘œ ν•œλ‹€.

8. 단계적 개발 λͺ¨λΈ

개발과 μ‚¬μš©μ„ λ³‘ν–‰ν•˜λŠ” 과정을 λ°˜λ³΅ν•˜μ—¬ μ§„ν–‰ν•˜λ©΄μ„œ μ™„λ£Œν•œλ‹€.

  • 단계적 개발 λͺ¨λΈμ€ 릴리슀λ₯Ό κ΅¬μ„±ν•˜λŠ” 방법에 따라 점증적 개발 방법과 반볡적 개발 λ°©λ²•μœΌλ‘œ λ‚˜λˆŒ 수 μžˆλ‹€.

1. 점증적 개발 방법 : 개발 λ²”μœ„μ˜ 증가

  • μ½”μŠ€μš”λ¦¬ 처럼 ‘ν•˜λ‚˜κ°€ λλ‚˜λ©΄ κ·Έλ‹€μŒ, 또 ν•˜λ‚˜κ°€ λλ‚˜λ©΄ κ·Έλ‹€μŒκ³Ό 같이 ν•˜λ‚˜μ”© λŠ˜λ €κ°„λ‹€.’
  • 점증적 방법은 μ€‘μš”ν•˜λ‹€κ³  μƒκ°λ˜λŠ” λΆ€λΆ„λΆ€ν„° μ°¨λ‘€λ‘œ κ°œλ°œν•œ ν›„ κ·Έ 일뢀λ₯Ό μ‚¬μš©ν•˜λ©΄μ„œ 개발 λ²”μœ„λ₯Ό 점차 λŠ˜λ €κ°€λŠ” 방식이닀.

2. 반볡적 개발 방법 : ν’ˆμ§ˆμ˜ 증가

  • ν•œμ •μ‹
  • μ΄ˆκΈ°μ— μ‹œμŠ€ν…œ 전체λ₯Ό 일차적으둜 κ°œλ°œν•˜μ—¬ μΈλ„ν•œ ν›„ , 각 μ„œλΈŒ μ‹œμŠ€ν…œμ˜ κΈ°λŠ₯κ³Ό μ„±λŠ₯을 λ³€κ²½ 및 λ³΄κ°•ν•˜μ—¬ 완성도λ₯Ό 높인닀. μ΄λ ‡κ²Œ μ—…κ·Έλ ˆμ΄λ“œλœ 릴리슀 버전을 λ‹€μ‹œ λ‚΄λ†“λŠ” 것이닀.
  • 초기의 μš”κ΅¬μ‚¬ν•­μ΄ λΆˆλΆ„λͺ…ν•œ 경우 적합
  • μ‹€μ œ κ°œλ°œμ—μ„œλŠ” 점증적 κ³Ό 반볡적 ν•¨κ»˜ μ‚¬μš©

9. 톡합 ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈ

  • 반볡적 개발 방법둠

톡합 ν”„λ‘œμ„ΈμŠ€ (UP: United Process)λͺ¨λΈ

톡합 ν”„λ‘œμ„ΈμŠ€(UP) 방법

OMG(object Management Group)κ°€ κ³΅κ°œν•œ UML(Unified Modeling Language)κ³Ό ν•¨κ»˜ μ œμ•ˆλ˜μ–΄ ν†΅ν•©λœ ν”„λ‘œμ„ΈμŠ€μ΄λ‹€.

  • 이후 Ration사에 μ˜ν•΄ RUP (Rational Unified Peocess)λΌλŠ” μ΄λ¦„μœΌλ‘œ μƒν’ˆν™”

1. 톡합 ν”„λ‘œμ„ΈμŠ€(UP λͺ¨λΈμ˜ 절차)

  • 개발 과정은 크게 4단계 (λ„μž…, ꡬ체화, ꡬ좕, 전이)둜 λ‚˜λ‰˜κ³  각 단계도 μ—¬λŸ¬ 개의 μž‘μ€ λ‹¨μœ„ (반볡 iteration)둜 λ‚˜λ‰˜μ–΄ 각 반볡 ꡬ간을 ν•˜λ‚˜μ”© 정볡해간닀.
  • 객체지ν–₯ 뢄석/섀계 μ€‘μ‹¬μ˜ ν”„λ‘œμ νŠΈμ—μ„œ 많이 μ‚¬μš©λ˜λŠ” λŒ€ν‘œμ μΈ 반볡적/점증적(interative, incremental)ν”„λ‘œμ„ΈμŠ€ 이닀.

1. λ„μž… 단계 (inception phase)

  • μ€€λΉ„ 단계, 인지 단계, μ‹œμž‘ 단계, 발견 단계, κ°œλ… μ •λ¦½μ˜ 단계와 같이 λ‹€μ–‘ν•œ μ΄λ¦„μœΌλ‘œ λΆˆλ¦°λ‹€.
    • 개발의 κΈ°μ΄ˆκ°€ λ˜λŠ” 아이디어 λ„μΆœ
    • 투자 λΉ„μš© λŒ€λΉ„ 효과 뢄석
    • μ‚¬μ—…μ˜ 타당성 및 ν”„λ‘œμ νŠΈμ˜ μ‹€ν˜„ κ°€λŠ₯μ„± 확인
    • μ†Œν”„νŠΈμ›¨μ–΄ 개발 λͺ©ν‘œ 수립
    • ν”„λ‘œμ νŠΈμ˜ 개발 λ²”μœ„ νŒŒμ•…
    • λΉ„μš©κ³Ό κΈ°κ°„ μ‚°μ •
    • ν”„λ‘œμ νŠΈ κ³„νš
    • ν”„λ‘œμ νŠΈμ˜ μœ„ν—˜ μš”μ†Œ 발꡴
    • μ‚¬μš©μžμ˜ 전체 μš”κ΅¬ 사항 이해 및 μ •μ˜
    • μ‚¬μš©μžμ™€ μ˜μ‚¬ κ΅ν™˜ν•  수 μžˆλŠ” ν”„λ‘œν† νƒ€μž… 개발
    • λͺ‡ κ°€μ§€ μš”κ΅¬ μ‚¬ν•­μ˜ λͺ…ν™•ν™”
    • 앑터와 μœ μŠ€μΌ€μ΄μŠ€ λ„μΆœ
    • μœ μŠ€μΌ€μ΄μŠ€μ˜ μΌλΆ€λ§Œ μƒμ„Έν•˜κ²Œ 기술
    • μ•„ν‚€ν…μ²˜ 후보ꡰ 발꡴
    • λ°˜λ³΅μ— λŒ€ν•œ κ³„νšκ³Ό 평가 μˆ˜ν–‰
  • 톡합 ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈμ˜ λ„μž…λ‹¨κ³„

2. ꡬ체화 단계 (eleboration phase)

  • 상세 단계, μ •λ ¨ 단계라고도 λΆˆλ¦°λ‹€.
  • λΉ„μ¦ˆλ‹ˆμŠ€ λͺ¨λΈλ§κ³Ό μš”κ΅¬ 사항 μ •μ˜ μž‘μ—…μ€ 점차 쀄어든닀.

ꡬ체화 단계 ν™œλ™

  • μ•„ν‚€ν…μ²˜ 수립
  • μƒμ„Έν•œ ν”„λ‘œμ νŠΈ κ³„νš
  • μš”κ΅¬ μ‚¬ν•­μ˜ κΈ°λŠ₯ μš”μ†Œμ— λŒ€ν•œ λ¬Έμ„œν™”
  • λ„μž… λ‹¨κ³„μ—μ„œ νŒŒμ•…ν•œ μš”κ΅¬ 사항을 μƒμ„Έν•˜κ²Œ 뢄석
  • μœ μŠ€μΌ€μ΄μŠ€ ν™•μ‹€νžˆ νŒŒμ•…
  • μ•„ν‚€ν…μ²˜ κ³„νš 수립
  • 핡심 μ•„ν‚€ν…μ²˜ 섀계
  • μ•„ν‚€ν…μ²˜ μ„€λͺ…μ„œ μž‘μ„±
  • 첫 번째 λ°˜λ³΅μ„ ν†΅ν•œ μ‚°μΆœλ¬Όλ‘œ μ•„ν‚€ν…μ²˜ ν”„λ‘œν† νƒ€μž… 생성
  • μƒμ„±λœ 첫 번째 ν”„λ‘œν† νƒ€μž…μ„ λ‹€μŒ λ‹¨κ³„μ˜ μ•„ν‚€ν…μ²˜ κΈ°μ€€μ„ μœΌλ‘œ ν™œμš©
  • ν”„λ‘œμ νŠΈ μˆ˜ν–‰μ„ λ°©ν•΄ν•˜λŠ” μ€‘λŒ€ν•œ μœ„ν—˜ μš”μ†Œλ“€μ„ μ°Ύμ•„ μœ„ν—˜ μΆ•μ†Œ 및 제거
  • λ°˜λ³΅μ— λŒ€ν•œ κ³„νšκ³Ό 평가 μˆ˜ν–‰
  • 이 단계가 λλ‚˜λ©΄ μœ μŠ€μΌ€μ΄μŠ€ λͺ¨λΈμ„ λŒ€λž΅ 80% 정도

3. ꡬ좕 단계 (construction phase)

  • ꡬ좕 λ‹¨κ³„μ—μ„œλŠ” κ΅¬ν˜„ μž‘μ—…μ΄ κ°€μž₯ 많이 이루어 μ§„λ‹€.
  • λͺ¨λ“  개발 μš”μ†Œ κ΅¬ν˜„
  • μ‚¬μš©μž μ„€λͺ…μ„œ 및 ν˜„μž¬ λ²„μ „μ˜ μ„€λͺ…μ„œ μž‘μ„±

4. 전이 단계(transition phase)

  • 이행 단계라고 ν•œλ‹€.
  • μ‚¬μš©μžλ₯Ό μœ„ν•œ μ œν’ˆμ„ μ™„μ„±ν•˜λŠ” 단계이닀.
  • μ™„μ„±λœ μ œν’ˆμ„ μ‚¬μš©μžμ—κ²Œ λ„˜κ²¨μ£ΌλŠ” κ³Όμ •μ—μ„œ μˆ˜ν–‰ν•΄μ•Ό ν•  일을 ν•œλ‹€.

전이 단계 ν™œλ™

  • 개발된 λͺ¨λ“ˆμ— λŒ€ν•΄ 베타 ν…ŒμŠ€νŠΈ μ‹€μ‹œ
  • μ‚¬μš©μžμ—κ²Œ 배포 κ°€λŠ₯ν•œ λ‹¨μœ„λ‘œ λ¬ΆλŠ” μž‘μ—… μˆ˜ν–‰
  • 개발된 μ†Œν”„νŠΈμ›¨μ–΄λ₯Ό μ‚¬μš©μž ν™˜κ²½μ—μ„œ μ‚¬μš©μžκ°€ 직접 ν…ŒμŠ€νŠΈ(μΈμˆ˜ν…ŒμŠ€νŠΈ)
  • μ†Œν”„νŠΈμ›¨μ–΄ μ œν’ˆκ³Ό μ‚¬μš©μž μ„€λͺ…μ„œ λ“± λ‹¨κ³„λ³„λ‘œ μƒμ„±λœ μ΅œμ’… μ‚°μΆœλ¬Όμ„ μ‚¬μš©μžμ—κ²Œ 인도
  • μ œν’ˆ μ‚¬μš©μž 및 μœ μ§€λ³΄μˆ˜ λ‹΄λ‹Ήμžμ—κ²Œ ꡐ윑

5. λ„μž…. ꡬ체화. ꡬ좕. 전이 λ‹¨κ³„μ˜ 곡톡 μž‘μ—…

  • 뢄석 , 섀계, κ΅¬ν˜„, ν…ŒμŠ€νŠΈ μž‘μ—…μ„ κ³΅ν†΅μœΌλ‘œ μˆ˜ν–‰ν•œλ‹€.
  • 각 μž‘μ—…μ„ 반볡 μˆ˜ν–‰
    • ꡬ체화, 전이 λ‹¨κ³„λŠ” 2νšŒμ”© ꡬ좕 λ‹¨κ³„λŠ” 3회 반볡

10. μ• μžμΌ ν”„λ‘œμ„ΈμŠ€ λͺ¨λΈ

 

728x90
λ°˜μ‘ν˜•