관리 메뉴

사과하는 제라스

[소프트웨어 분석 및 설계] 8. Functional and Data Components 본문

대학 전공 공부/소프트웨어 분석 및 설계

[소프트웨어 분석 및 설계] 8. Functional and Data Components

Xerath(제라스) 2022. 11. 12. 16:09

목차

    728x90
    반응형

    소프트웨어 설계에서의 SW 컴포넌트를 얘기할 거임.

     

    크게 1. Functional Component 2. Data Component가 있음.

     

    Functional Component

    : 타깃 시스템에 대한 특정한 기능을 제공하는 기능적 응집 단위임.

    ex. 차 대여 관리 시스템에서는...

    - User Profiler

    - Inventory Manager

    - Reservation Manager

    - Rental Manager

    - Payment Hander

     

    Data Component

    : 지속적인 데이터 모음을 관리하는 응집 단위임.(기능별이 아니라...!)

    ex. 차 대여 관리 시스템에서는...

    - User Profile

    - Reservation

    - Rental

    - Payment

     

    -> 이처럼 Data Component는 정말 데이터 셋 그 자체를 다루는 단위임.

    UML에서의 Component

    : 잘 정의된 Interface가 담긴 Module. 자기 포함 유닛이자, 시스템의 대체가능하고 물리적인 부분임.

     

    - <<component>> 라는 키워드를 써서 표기함.

    UML에서의 component 표기 예시(Order 라는 컴포넌트임.)

    Functional Component

    Functional Component는 어떻게 구성될까?

    1) 관련된 Use Case들끼리 묶음

    2) m<=n을 만족하는 n개의 use case에 대한 m개의 Functional component를 만듦

    3) Functional component는 use case 보다 더 큰 범주임.

    4) Functional Component의 이름은 명사형으로 지음 ex. Inventory Manager, Rental Manager, Payment Handler

    - 반면, 그 안에 포함된 use case는 동사형으로 지음.

     

    이렇게 만들어진 Funtional Component는 <control layer>>에 모두 포함되어 실행됨.

     

    Interface of Component

    1) UML에서는 인터페이스를 <<interface>>와 함께 쓰임.

    2) 인터페이스는 class나 component에 대한 프로토콜임.

    -> method의 시그니쳐 / method에 대한 기능적 설명임.

    3) 클래스는 인터페이스를 구체화함(implement).

    4) 인터페이스에는 attribute가 없음

    5) 인터페이스는 다른 인터페이스를 확장할 수 있음.

     

    Interface Realization

    iSensor 인터페이스 예시
    PRoximity Sensor와 Infrared Ray Sensor는 각각iSensor 인터페이스를 구현한 것이다.

    Provided Interface / Required Interface

    Provided Interface(제공 인터페이스)

    컴포넌트가 기능을 구현하고 외부에 이에 대한 서비스 및 기능을 제공하는 것

    외부의 다른 컴포넌트/클래스는 이 인터페이스를 통해 이 컴포넌트/클래스와 상호작용을 함.

    Required Interface(요구 인터페이스)

    컴포넌트가 정상적으로 동작하기 위해 필요로 하는 기능 및 서비스

    이것을 구현하는 외부의 컴포넌트가 필요하고, 외부 컴포넌트 입장에서는 이것은 제공 인터페이스임

     

    Data Component

    1) 관련있는 클래스들의 집합임.

    2) 가까운 관계에 있는 클래스들을 하나의 컴포넌트로 묶음.

    3) 하지만 그 관련있는 정도에 따라 하나의 Data Component로 묶을 수도 있고 아닐 수도 있음.

    클래스 간의 관계의 강도
    관계에 따른 강도를 고려한 Data Component 생성 결과

    Data Component의 할당

    Data Component는 그림과 같이 Model Layer에 할당된다.

    Component Layer

     

    결론적으로 Functional Component와 Data Component의 차이를 알아둬라!!

     

    728x90
    반응형