성공과 실패를 결정하는 1%의 객체 지향 원리(Akira Hirasawa 저, 이길섭, 신동완 역, 성안당)를 바탕으로 기억해두고 싶은 내용 정리한 것임.


현실 세계와 소프트웨어의 차이를 메울 3가지 단계와 이를 원활히 진행할 모델링 기술.


1단계. 업무 분석 : 현실 세계 일의 진행 방법을 정리한다.

  • 대상으로 하는 현실 세계의 일이 어떠한 역할 분담으로 어떻게 진행되는지를 정리하는 것.
  • 업무를 수행하기 위한 과제를 도출, 컴퓨터에 맡길 일을 정하기 위한 정보의 원천
  • 컴퓨터를 왜(why) 이용하는지를 정리하는 것이라고도 말한다.

2단계. 요구 정의 : 컴퓨터에 맡길 일의 범위를 정한다.

  • 컴퓨터의 주특기인 「정해진 일」과 「기억하는 일」이므로, 현실 세계의 업무 중에서 이러한 일을 도출할 필요가 있다.
  • 컴퓨터에게 어떤(what) 일을 시킬 것인지를 정하는 것에 해당한다.

3단계. 설계 : 소프트웨어를 어떻게 작성할지를 결정한다.

  • 컴퓨터를 관리하는 소프트웨어를 어떻게 실현할지를 결정하는 것에 해당한다.
  • 설계작업의 흐름
    • 실행 환경의 정의
      • 채용하는 하드웨어, 소프트웨어 제품의 선정
      • 신뢰성과 실행 효율 등의 시스템 요건, 기술과 제품의 성숙도, 비용, 운용 면 등 여러 가지 점을 고려해서 제품 선정
      • 특히 소프트웨어에 대해서는 운영체제, 통신, 데이터베이스 등 각각의 분야에 있어서 채용하는 기술과 제품을 결정할 필요가 있음
    • 소프트웨어 전체 구조의 정의
      • 전체를 복수의 서브 시스템으로 분할
      • 임베디드 소프트웨어와 같이 타이밍이 중요한 어플리케이션은 이 단계에서 스레드의 구성도 대체적으로 검토
      • OOP를 전제로 하는 경우, 어플리케이션 전체의 표준화와 품질 확보를 목적으로 전체적으로 공통이 되는 소프트웨어 구조를 결정한 후에 프레임워크를 제품군으로 준비하는 경우도 있다.
      • 서브 시스템의 구조는 UML의 패키지 다이어그램을 사용해서 표현한다.
    • 각각의 소프트웨어 구성품의 설계
      • 각각의 어플리케이션 기능을 표현하는 소프트웨어 구성품의 사양과 인터페이스를 하나하나 결정한다.
      • OOP에서는 클래스 및 메소드의 사양과 인터페이스를 결정하는 설계 작업 흐름 표현한다.


모델링 : 3가지 단계에 관해서 객체지향은 모델링을 지원한다. 

모델링에서는 하나의 어플리케이션이라도 업무 분석, 요구 정의, 설계의 산출물이 각각 다르다. 현실 세계와 소프트웨어의 차이를 메우는 3가지 단계는 현실 세계를 그대로 받아들이는 시점으로부터 컴퓨터의 상황에 맞추는 시점으로 바꾸어 가는 단계라고도 볼 수 있다.

모델링의 목적

업무 분석 : 현실 세계의 모습을 그대로 받아들인다.

요구 정의 : 컴퓨터의 성질을 고려해서 맡길 일의 범위를 정한다.

설계 : 하드웨어의 능력, OS와 미들웨어의 특성, 프로그래밍 언어의 표현 능력등을 고려해서 소프트웨어의 구조를 정한다.


+ Recent posts