observe_db

[객체지향설계] 1. Object-Oriented Design- Overview(2) 본문

학교 공부/객체지향설계(3-1)

[객체지향설계] 1. Object-Oriented Design- Overview(2)

쩡윤 2023. 3. 20. 16:19

`

3/10

 

소프트웨어 개발 과정은 다양하다.(심지어 거꾸로 가기도 한다.)

Why? 가진 자원과 조건이 다양하기 때문.

ex) 요구조건이 얼마나 정확한지/ 얼마의 시간이 주어졌는지./

 

Structured Development(구조적 개발)

  • 한 단계에서 다음 단계로 순차적으로 나아간다
  • 순차적으로, 다음 단계가 시작되기 전에 이번 단계를 종료한다.
  • 대표적인 모델들
    • 폭포수 모델(Waterfall model)
      • 요구사항이 명확할 때 사용.
      • PM의 지시(권위)가 있을 때 사용.
      • 신속한 편.
    • 병렬 개발 모델(Parallel development model)
      • 소규모 X
      • 팀당 소통이 많아야함.
      • 기능의 결합력이 작아야함.
      • 통합단계(integration) 필요.

폭포수 모델

 

병렬구조 모델

 

 

RAD(Rapid Application Development)

  • CASE 도구(Computer Aided Software Engineering)
  • JAD 세션(사용자-개발자 joint)
  • 4세대 시각화 프로그래밍 언어
  • 코드 생성기
  • Incremental development model(Phasesed development)
  • Prototyping(프로토타이핑)

phase 모델
프로토타입 기반 모델

 

Agile 방법론

  • 유명하고, 간단하고, 반복적인 개발 방식
  • XP(eXxtreme Programming approach)
    • 실천사항들
    • Planning game(기한 넘기면 패널티)
    • Small Release
    • Metaphor
    • 간단한 디자인
    • 테스팅
    • 리팩토링
    • 공정 프로그래밍
    • Collective Ownership
    • 지속적 통합
    • 주당 40시간(8x5)
    • On-site 고객
    • 코딩에서 지킬 규칙(Coding Standard)
  • Scrum approach
  • DevOps 등(소프트웨어 공학 과목에서 자세히..)

Agile 기본 형태
XP
SCRUM

 

모델들 정리

 

 

소프트웨어 개발 방법론

  • How to develop
  • SASD(Structured Analysis and Structured Design)
  • Information Engineering(정보공학 방법론)
  • Object-Oriented Analysis and Design(객체지향 분석 설계)
  • Component-Based Software Development
  • Product-Line Engineering
  • 그 외에도..?

 

소프트웨어의 발전

 

  • 어셈블리
  • 절차지향(C, Portlan)
  • 객체지향
  • 요소지향
  • 생산 라인 공학
  • 동적 자동객체 적응 SW (만일 여기에 AI가 적용된다면..?)

그리고 함수적 프로그래밍 까지(문장끼리 영향이 없어서 수정이 용이)

Comments