πŸŽ«μ†Œν”„νŠΈμ›¨μ–΄ 곡학 part00. μ†Œν”„νŠΈμ›¨μ–΄ μ—”μ§€λ‹ˆμ–΄λ§ μ†Œκ°œ

vincaΒ·2023λ…„ 1μ›” 2일
0

πŸ”„ Software engineering

λͺ©λ‘ 보기
1/17
post-thumbnail

λ³Έ λ¬Έμ„œλŠ” μˆ˜μ—…μ‹œκ°„μ— ν•œ λ‚΄μš©μ„ λ°”νƒ•μœΌλ‘œ 재 μ •λ¦¬ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

β–  μ†Œν”„νŠΈμ›¨μ–΄μ˜ νŠΉμ§•

ν”„λ‘œκ·Έλž¨μ€ ν˜•μ‹ μ–Έμ–΄(formal language)둜 ν‘œν˜„λœ 지적 λ…Έλ™μ˜ 결과물이닀.

  • 생산성이 μΌμ •ν•˜μ§€ μ•ŠμŒ
  • 논리적인 μš”μ†Œλ‘œ ꡬ성
  • 지속적인 μœ μ§€ λ³΄μˆ˜κ°€ μš”κ΅¬

β–  μ†Œν”„νŠΈμ›¨μ–΄ 개발

μ†Œν”„νŠΈμ›¨μ–΄ κ°œλ°œμ€ μ„œλΉ„μŠ€ 직ꡰ이며, μ‹œμŠ€ν…œμ μΈ κ΄€μ μ—μ„œ μ ‘κ·Όν•΄μ•Ό ν•œλ‹€.
μ‹œμŠ€ν…œμ μœΌλ‘œ 문제λ₯Ό λΆ„μ„ν•˜κ³  ν•΄κ²° λ°©μ•ˆμ„ λ„μΆœ

β–  Software Quality의 Type

● μ •ν™•μ„±(Correctness) : μš”κ΅¬ λΆ„μ„μ„œμ˜ κΈ°λŠ₯κ³Ό μΌμΉ˜ν•˜λŠ”μ§€ 점검.κΈ°λŠ₯적으둜 맞게 λ™μž‘, ν‘œμ€€μ— 적합
● μ‹ λ’°μ„±(Reliability) : μ†Œν”„νŠΈμ›¨μ–΄κ°€ μ£Όμ–΄μ§„ κΈ°κ°„ λ™μ•ˆ μ œλŒ€λ‘œ μž‘λ™ν•  ν™•λ₯ 
● 강인성(Robustness) : Fault tolerance (μ‹€νŒ¨μ— λŒ€ν•œ κ΄€μš©μ„± pc와 μ„œλ²„λ₯Ό μƒκ°ν•˜μž)
● μ„±λŠ₯(Performance) : μˆ˜ν–‰ 속도, μ‹œκ°„ λ³΅μž‘λ„
● μ‚¬μš© μš©μ΄μ„±(Usability) : μ‹œμŠ€ν…œμ„ μΉœκ·Όν•˜κ²Œ λŠλ‚„ 수 μžˆλŠ” μ„±μ§ˆ, μ‚¬μš© λŒ€μƒμ— 따라 λ‹¬λΌμ§ˆ 수 있음
● μž¬μ‚¬μš©μ„±(Reusability)
● 적응성(adaptability)

β–  μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ˜ λͺ©μ 

곡학적 μ ‘κ·Ό λ°©λ²•μœΌλ‘œ 원리λ₯Ό μ μš©ν•˜κ³  μ²΄κ³„μ μœΌλ‘œ κ°œλ°œν•˜μ—¬ μ†Œν”„νŠΈμ›¨μ–΄ μœ„κΈ°λ₯Ό 극볡

β–  μ†Œν”„νŠΈμ›¨μ–΄ κ³΅ν•™μ˜ κ°€μž₯ μ€‘μš”ν•œ λͺ©ν‘œ

β†’ ν’ˆμ§ˆ(Quality)κ³Ό 생산성(Productivity)
μ†Œν”„νŠΈμ›¨μ–΄ μ‹œμŠ€ν…œμ˜ μ„±λŠ₯ν–₯μƒμ˜ 원칙은 μ΅œμ†Œμ˜ 법칙을 따라간닀.

β–  개발 ν”„λ‘œμ„ΈμŠ€ CMM(Capability Maturity Model)

λ„μž… -> 반볡 -> μ •μ˜ -> Managed -> Optimizing
1~5λ‹¨κ³„λ‘œ κ΅¬μ„±λ˜λ©° μ†Œλ‹ˆμ˜ λΆ€ν™œμ€ 5단계와 관련이 μžˆλ‹€. (변화에 잘 μ μ‘ν•˜μ˜€μŒ)

β–  μ†Œν”„νŠΈμ›¨μ–΄ 생산성에 영ν–₯을 λ―ΈμΉ˜λŠ” μš”μ†Œ

μ˜μ‚¬μ†Œν†΅(Communication skill)
ν”„λ‘œμ νŠΈμ˜ 성격
ν”„λ‘œκ·Έλž˜λ¨Έμ˜ μ—­λŸ‰(Maturity)
관리(Management)
νŒ€μ˜ ν”„λ‘œμ νŠΈ κ²½ν—˜(Experience)

μ‹œμŠ€ν…œμ μΈ 사고 -> μ„±λŠ₯ν–₯상은 μ΅œμ†Œμ˜ 법칙을 따라간닀.

β–  ν”„λ‘œμ νŠΈμ˜ 꽃인 PM

β†’ PM(Project Manager)
PM은 λ³€ν™”ν•˜λŠ” ν™˜κ²½μ— λŒ€μ‘ν•˜μ—¬ ν”„λ‘œμ νŠΈμ˜ 결과에 μ±…μž„μ„ μ§„λ‹€.
μ±…μž„ : 일정관리, μ˜ˆμ‚°, 인λ ₯관리, ν˜•μƒ 관리, ν’ˆμ§ˆ 관리

쀑도에 νˆ¬μž…λœ κ°œλ°œμžλ“€μ€ 생산성을 μ¦κ°€μ‹œν‚€μ§€ λͺ»ν•¨
β†’ 주기적인 짧게 짧게 μ˜μ‚¬μ†Œν†΅μ΄ ν•„μš”ν•¨ (μ˜μ‚¬μ†Œν†΅μ˜ 질과 양보닀 주기적인 것이 μ€‘μš”)

β–  DFD (Data Flow Diagram)

데이터가 μ–΄λ–»κ²Œ ν˜λŸ¬κ°€λŠ”κ°€λ₯Ό λ‚˜νƒ€λ‚Έλ‹€. (μžκ°€ ν…Œμ΄ν”„λ₯Ό μ“Έ 일이 μ—†μœΌλ―€λ‘œ 이젠 쓸일이 μ—†λ‹€)
μ΅œκ·Όμ—λŠ” RDBMSλ₯Ό μ‚¬μš©ν•˜κ²Œ 됨으둜써 DFDλ₯Ό κ³ λ―Όν•˜μ§€ μ•Šμ•„λ„ 됨.

β–  방법둠

ν”„λ‘œμ„ΈμŠ€ 쀑심 방법둠(70λ…„λŒ€)

ν”„λ‘œμ„ΈμŠ€λ₯Ό λ¨Όμ € μ •μ˜ but, ν”„λ‘œμ„ΈμŠ€λŠ” 자주 λ³€ν•  수 μžˆλ‹€λŠ” 문제/ν”„λ‘œμ„ΈμŠ€κ°€ λ³€κ²½λ˜λ©΄ μ½”λ“œλ„ λ³€κ²½
γ„΄ ꡬ쑰적 뢄해법

  • 큰 μž‘μ—…μ„ μ—¬λŸ¬κ°œμ˜ μž‘μ€ μž‘μ—…μœΌλ‘œ λΆ„ν•΄ν•˜λŠ” 것. (λͺ¨λ“ˆν™”)

자료 쀑심 방법둠(80λ…„λŒ€)

ν”„λ‘œμ„ΈμŠ€λŠ” λ„ˆλ¬΄ μ‰½κ²Œ λ³€κ²½λœλ‹€λŠ” μ μ—μ„œ 비ꡐ적 ν”„λ‘œμ„ΈμŠ€λ³΄λ‹€ μ•ˆμ •λœ 자료ꡬ쑰λ₯Ό λ¨Όμ € μ •μ˜ν•¨.
κ΄€κ³„ν˜• λ°μ΄ν„°λ² μ΄μŠ€ (SQL)의 λ³΄κΈ‰μœΌλ‘œ μΆœν˜„
ER-diagram - λ°μ΄ν„°λ² μ΄μŠ€ μ‹œκ°„μ— 배운 μŠ€ν‚€λ§ˆλ₯Ό κ·Έλ €λ³΄μ‹œμ˜€.

객체지ν–₯ 방법둠(90λ…„λŒ€)

객체 μ§€ν–₯ ν”„λ‘œκ·Έλž˜λ° μ–Έμ–΄ smalltalkμ—μ„œ μ‹œμž‘ν•˜μ—¬ μ „ λ²”μœ„λ‘œ ν™•λŒ€
λͺ¨λ“ˆν™”, 정보은닉, μž¬μ‚¬μš©μ΄λΌλŠ” νŠΉμ§•μ„ 가짐

CBD (Component Based Development)

객체지ν–₯ 방법둠 보닀 λ°œμ „λœ ν˜•νƒœ
Componetλ₯Ό ν†΅ν•œ μ‘°λ¦½μ‹μœΌλ‘œ ν”„λ‘œκ·Έλž¨μ„ μ œμž‘ν•˜μ—¬ μ‚¬μš©

  • 맀좜 ν™•λ³΄μ˜ μ–΄λ €μ›€μœΌλ‘œ μ„±κ³΅ν•˜μ§€ λͺ»ν–ˆμœΌλ‚˜, μ˜€ν”ˆμ†ŒμŠ€λ‘œ λ°œμ „λ¨

SOA (Service Oriented Architure)

μ„œλΉ„μŠ€ 기반 ꡬ쑰

profile
뢉은 λ°° μ˜€μƒ‰ 딱닀ꡬ리 개발자 πŸ¦ƒCloud & DevOps

0개의 λŒ“κΈ€