2018년 1월 19일 금요일

Software Functional Components와 Interface

Software Component는 연관된 기능을 캡슐화한 software package 또는 module을 일컫는다. 내부에는 기능적으로는 일부 Use Case의 functionality를 포함하고 있으며 그 크기에 따라 Class일수도 있고 Package일 수도 있다.

Component는 Interface를 통해 다른 component와 통신하는데 interface를 component 내부의 implementation과 분리함으로써 component의 replaceability를 높일 수 있다. 

  • Blackbox Component with Facade Type Interface
    • Use case의 functionality가 Interface의 method가 됨.
  • Blackbox Component with Mediator Type Interface
    • Use case의 sequence diagram의 workflow를 통해 interface의 method가 도출됨. 
    • 통상, Facade type보다 개수가 적음. 하지만 workflow의 변경이 있는 경우, interface가 추가되거나 변경될 수 있음.
  • Whitebox Component
    • Component level의 interface를 제공하지 않는다.
Interface의 타입별 특성을 알아보자.
  • View Component의 Interface
    • Single system인 경우, API가 아닌 end-user를 위한 UI 그 자체일 수 있다.
    • Platform인 경우라면 다양한 application을 위한 API일 수도 있다.
  • Data Component의 Interface
    • Data Component는 주로 서로 연관된 Entity Object들의 집합
    • Entity Object의 Interface
      • 해당 Entity Object가 다루는 데이터를 attribute로 가지며 그 attribute에 대한 CRUD operation이 interface가 된다.
      • Entity Object는 persistent storage (Database등) 에 대한 dependency를 숨겨주는 역할을 한다.
    • Data Component의 Interface는 entity object들에 대한 Facade type API임
      • Data를 다루는 기능이므로 workflow를 제공하는 Mediator type API를 가지지 않음.

0개의 덧글:

댓글 쓰기

에 가입 댓글 [Atom]

<< 홈