본문 바로가기

💻 개발IT/OOP

3. Object-Oriented Development (OOD)

Software Development 정의

  • Software로 문제를 해결하는 것



Procedural Programming

  • Procedure들로 구성된 프로그램
    • Procedure/Function : 변수 값을 변경하는 statement들
  • 데이터 구조, 알고리즘, 과정의 시퀀스들에 집중해야함



SASD

  • 구조적 분석 설계 방법론 (Structured Analysis and Structured Design)
  • Top-Down Divide and Conquer
    • SA : SW 만들 때 입력과 출력을 다 찾고 레벨을 낮춰서 또 찾고 찾고... (하단 사진에서 DFD level을 낮춤)
    • SD : 실제 구현
  • DFD(data flow diagram) 사용 

Object-Oriented Programming

  • object들로 구성된 프로그램
  • object와 그들 간의 커뮤니케이션에 집중
    • 명확한 data flow 없음
    • sequence 다이어그램에서만 표현



OOAD

  • Object-Oriented Analysis and Design
  • OOA + OOD
    • Object-Oriented Analysis (OOA)
      • 시스템의 요구사항 식별 → domain model 작성(conceptual한 class, objects를 발견)
    • Object-Oriented Design (OOD)
      • objects를 디테일하게 어떤 attribute, operation이 있는지 정의 (class 다이어그램(:=DCD) 통해서 static model 정의)
      • 요구사항을 충족시키기 위해 object의 communication 정의 (시퀀스 다이어그램 통해서 dynamic model 정의)



Software (Development) Process Model

  1. Waterfall Model
    • A classic software development life-cycle(SDLC) model
    • Requrement Analysis → System Design → Implementation → System Testing → System Deployment → System Maintenance
    • 여러 회사가 개발하는 대형 프로젝트에서 주로 사용
  2. Iterative Model (Agile): 조금씩 만들고 다시 처음부터 반복
    • waterfall 단점을 극복하고자 rapid prototyping, rapid development 
    • Agile 방법론
      1. Iterative : 계속 반복
      2. Incremental : 미리 requirement를 10개씩 해서 마지막에 합침
      3. evolution : 간단하게 만들고 점차 진화
    • Agile 방법 특징
      • Process, tools 보다 개인에 맡김
      • documentation 만드는 것보다 소스 코드 만드는 것이 더 중요
      • 계약서 기반으로 개발하는 것보다 고객과 협업
      • 계획에 팔로우하는 것보다 변화에 유연적으로 대응
    • Example : XP(eXtreme Programming), TDD(Test Driven Development)
  3. Iterative Model - Unified Process(UP)
    • 이전에 있는 Process model을 합침
      • Iterative(Incremental, Evolutionary)
        • Iteration(mini waterfall cycle)을 3주로 fix함(기능 단위가 아닌 시간으로 요구사항을 자름)
        • Risk(client, architecture)-driven
          • 해당 risk를 다 찾아봐서 클라이언트가 중요시하는 요구사항과 architecture에 dependency가 있는 요구사항을 선구현하여(하단 사진에서 eleboration과정에서 prototype 구현) architecture를 정해야함 
          • client : 클라이언트가 중요하다고 생각하는 요구사항
          • Architecture : 특정 요구사항은 특정 architecture에서만 구현할 수 있음
    • := RUP (Rational Unified Process)

 

반응형

'💻 개발IT > OOP' 카테고리의 다른 글

2. Object-Oriented Principles  (0) 2022.02.03
1. Object-Oriented  (0) 2022.02.02