상세 컨텐츠

본문 제목

소프트웨어를 설계하는 방법 (4) - Design with Information Viewpoint

IT/SW Architecture

by HarimKang 2019. 12. 14. 16:25

본문

Design with Information Viewpoint

Writer: Harim Kang

SW 설계에 관한 가이드라인을 글로 수록합니다. 해당 내용은 지능형 시스템(Intelligent System) 설계를 위한 가이드라인을 포함하고 있습니다.

앞서 소프트웨어 설계의 순서를 파악하시고자 한다면 다음의 링크를 통해 보고 와주세요!

2019/12/13 - [IT/SW Architecture] - 소프트웨어를 설계하는 방법 (1) - 설계 소개 및 순서

 

소프트웨어를 설계하는 방법 (1) - 설계 소개 및 순서

SW Architecture Writer: Harim Kang SW 설계에 관한 가이드라인을 글로 수록합니다. 해당 내용은 지능형 시스템(Intelligent System) 설계를 위한 가이드라인을 포함하고 있습니다. SW 설계란 무엇인가요?? Defin..

davinci-ai.tistory.com


Information Viewpoint


Definition

Data Component들과 Database들의 설계를 위한 순차적인 Guideline이다.

Goals

  1. Identifying Data Components
    • Data Component들을 정의한다.
  2. Allocating Data Components
    • 정의된 Data Component들을 배치한다.
  3. Designing Data Components
    • 전체적인 시스템의 Data Component를 설계한다.

Process of Information Viewpoint

  1. Observe Informational Characteristics
  2. Refine Persistent Object Model
  3. Derive Data Components
  4. Refine Data Components for Tires
  5. Allocate Data Components
  6. Design Data Components
  7. Define Interfaces of Data Components

Step 1. Observe Informational Characteristics

  • information에 대한 결정을 내리기 전에, target system의 persistent-object를 알아야한다.
  • Characteristics of persistent dataset
    • Types
    • Volume
    • Manipulation-aspects : CRUD
  • Source of acquiring datasets
    • datasets을 얻는 주체
    • User, Sensors, Networks or other way
  • For Intelligent Systems
    • 적용할 ML Model들을 고려한 dataset 정의
    • Training Set, Test Set, Rating/Feedback, etc.

Step 2. Refine Persistent Object Model

  • Context-level의 Class Diagram을 그리는 단계이다. Persistent object classes들이 추가, 수정 제거 되는 것을 포함한다.

  • Refine the class diagram

    • Persistent Object Classes
    • Inter-class Relationships
    • Cardinalities on Relationships
  • Define essential attributes for each class

  • Persistent datasets relevant to ML models

    • Class for Acquiring Training Sets for ML
      • User나 Device, Sensor로 부터 얻는 data, meta data(log)
    • Class for ML Models
      • ML Model 관련 meta data
    • Class for Data Set
      • 획득한 다양한 Data Set
  • 작성 요령

    • 너무 큰 단위로 데이터 범위를 잡거나, 너무 작은 범위로 잡지 않고 명확한 데이터들을 정의한다.

    • Class 하나 하나를 데이터 베이스라고 생각해도 무방하다.

    • Ex

      Ex. Smart Mirror System

  • TODO : Class Diagram 관련 설명

Step 3. Derive Data Components

  • Inter-class간의 관계에 strength를 고려하여 Group를 만드는 단계이다.

  • ML 관련 Dataset을 따로 Group화 한다.

  • Strengths between classes

Step 4. Refine Data Components for Tiers

  • Functional Component Refine과 비슷한 과정을 수행하는 단계이다.
  • For Intelligent System
    • ML models을 생성하기 위한 전용 계층을 고려해야 한다.
    • Client를 위한 cML model, Server를 위한 sML model 구분 필요
  • TODO : 구체적으로 작성 필요 ( table 포함)

Step 5. Allocate Data Components

  • Step 4에서 선정한 Tier대로 Data Component들을 Place Holder에 배치하는 작업이다.
  • For Intelligent System
    • Client에는 cML model data Component가 위치하여 몇가지의 Client에서 필요한 Model들로만 구성된다. 이것은 주기적으로 업데이트 되어 최신의 모델로 유지해주어야 한다.
    • Server에는 sML model data Component가 위치하여 모든 ML model들을 Generating 하고 관리한다.

  • TODO : 구체적 작성 필요

Step 6. Design Data Components

  • Data Component의 내부적인 사항들을 구체화하기 위한 단계이다.

    • Attribute Design
    • Persistency Design
    • Other Design
  • Object-Relational Mapping for Relationship DB

    • 각각의 class/component 마다 Mapping(DB와 데이터를 맞추는 작업)을 위해 CRUD Method를 정의해 준다.

      • dbCreatObj(..);

        해당 method는 constructor(생성자)에서 실행한다. DB table에 새로운 record를 만든다.

      • dbRetrieveObj(..);

        해당 method는 instance를 메인 메모리에 생성하고, DB table에서 object를 찾아서 instance에 부여한다.

      • dbUpdateObj(..);

        set method에서 실행된다. 값을 수정한다.

      • dbDeleteObj(..);

        Destructor(파괴자)에서 실행된다. 값을 삭제한다.

  • For Non-relationship DB : NoSQL, Memory DB, Cloud Storage

    • For unstructed dataset : 비정형 dataset
    • 해당 DB의 요소로 직접 mapping
  • TODO : 구체적 작성 필요

Step 7. Define Interfaces of Data Components

  • 각각의 Data Component들에 대해 interface를 정의하는 단계이다.

  • 각 class의 public method를 고려해야한다.

  • Fassade-type interface를 정의한다.

  • 각각의 class들의 method를 정의한다.

    • class 내부의 persistent attribute들을 고려한다.

    • Persistent DB의 CRUD 실행을 고려한다.


이번 포스팅은 Data와 관련된 Informational view point 설계 순서를 알아봤습니다. 다음은 사용시 행동과 관련된 관점에서의 설계인 Behavior view 설계 디자인 방법에 대해 알아보겠습니다.

2019/12/14 - [IT/SW Architecture] - 소프트웨어를 설계하는 방법 (5) - Design with Behavior Viewpoint

 

소프트웨어를 설계하는 방법 (5) - Design with Behavior Viewpoint

Design with Behavior Viewpoint Writer: Harim Kang SW 설계에 관한 가이드라인을 글로 수록합니다. 해당 내용은 지능형 시스템(Intelligent System) 설계를 위한 가이드라인을 포함하고 있습니다. 앞서 소프트웨..

davinci-ai.tistory.com

관련글 더보기

댓글 영역