Sangdeok's Dev Note

MD1

2020-06-24

1. 모델 기반 개발 방식 소개

생성일: Jun 5, 2019 3:36 PM 최종수정시간: Jun 5, 2019 5:12 PM 출처 및 링크: LG Learning Plus

용어정리

  • 모델
    • 인간 또는 모델과 기계가 의사소통할 수 있는 가장 추상화된 형태의 설계 방식 및 프로그래밍의 수단
  • MDD
    • 모델 기반 개발 방식, 공정 안에서 모델 적극적 활용
  • MDA - Model Driven Architecture
    • 모델로부터 소스 코드를 생성하기 위한 개발 표준
  • DevOn MDA
    • 모델 기반 개발 방식을 지원하는 LG CNS의 자동화 도구

왜 모델에 주목하는가?

  • SW 개발 방식은 언어로 통해 개발한다.
  • 컴퓨터는 데이터를 처리하기 위해, 0과 1로 구성된 기계지향적인 바이너리를 해석한다.
  • Assembly에서는 바이너리를 MOV로 표현
  • 코드 중심으로 개발하는 것보다, SW를 모델 중심으로 설계
  • 표준화되고 일관된 서비스를 생성하기 위함

DevOn MDA

  • PIM(업무설계모델)을 집중적으로 작성하게 된다.
  • PSM(구현모델) : PIM과 100% 매핑
  • PSM과 소스코드를 100% 매핑하여 소스코드 자동 생성
  • 모델 설계시 비즈니스 로직과 상관없는 부분은 최대한 자동화 해준다.

모델기반 개발 절차

  • 기본(기존과 동일)
    • 요구 사항을 분석
    • 화면 정의
    • 테이블 작성
  • 업무설계모델 > 기술설계모델(자동생성) > 단위코드생성(자동생성) > 단위 테스트(실행) > 검증결과 반영) : 반복적 설계 및 검증
  • 통합 코드 생성
  • 코딩이 아닌 모델링

2. UseCase 모델링

생성일: Jun 5, 2019 3:57 PM 최종수정시간: Jun 24, 2020 8:29 AM

모델기반 개발 방식

2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled.png

유스케이스 모델링의 개념

  • 정의
    • 개발자가 아닌 사용자(고객)의 관점으로, 개발될 시스템에 대한 사용자 요구사항을 모델링하는 기법
    • 액터와 시스템 간의 상호작용 분석을 통해, 화면, 정보 수준의 데이터, 이벤트, 예외처리, 연계 대상등을 식별하는 것
  • 구성
    • 다이어그램(UML)
    • 명세서(텍스트)
  • 장점 (왜 하는가?)
    • 누가 어떤 목적으로 시스템을 사용하는지 명시적 표현가능
    • 시스템 경계 명확히 파악가능
    • 개발의 전체 생명주기를 사용자 요구사항 중심으로 이끌어감
  • 중요한 점
    • 향후 관리 측면을 고려, 너무 크게 묵거나, 너무 잘게 쪼개지지 않도록 한다.(적절한 크기로 식별하는 것이 중요하다)

유스케이스 명세서의 주요 개념

  • 명세서
    • 유스케이스에 대한 구체적 명세를 기술한 문서
    • 목적
      • 요구사항의 시나리오 파악을 위해 TEXT 기반의 문서 작성
    • 예시

      2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled%201.png

  • (시나리오)
    • 기본 흐름 : 유스케이스의 기능을 수행하게 되는 긍정적 흐름 작성
    • 대안 흐름 : 기본 흐름을 수행 중 대안적으로 발생하는 선택및 예외흐름

유스케이스 다이어그램 및 주요개념

  • 액터(Actor)
    • 자신의 목적을 달성하기 위해 시스템을 직접적을 사용하게 될 시스템 외부에 존재하는 어떤 사람 또는 어떤 것의 역할
    • 사람(시스템 사용자), 시스템(개발 외 인터페이스가 필요한 시스템), 디바이스(OS 제공 외, 외부 인터페이스가 필요한 디바이스)
    • 종류
      • 1차 엑터 : 시스템 사용을 시작하는 주체(사람)
        • 직접적으로 사용하는 사용자
        • 사용자를 유형 및 업무별로 일반화 시킨 역할
      • 2차 엑터 : 1차 엑터 목적 달성을 위해 보조적 역할 수행
        • 타 시스템 및 시스템 외부에서 시스템과 인터페이스하는 역할 ex)그룹웨어, 은행연합회
        • 유스케이스가 액터를 제어할 때
    • UML 표기법 : 사람 모양이다. 스테레오 타입은 사람/디바이스

    2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled%202.png

    • 액터는 업무별로 생성된다.

    2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled%203.png

  • 유스케이스
    • Actor의 시스템 사용 목적을 달성할 수 있도록 우리가 개발할 시스템이 제공해야 하는 서비스
    • 시스템 처리 기능, 시스템이 제공하는 기능 또는 서비스
    • 하나 이상의 일련의 트랜잭션들로 수행
    • 트랜잭션의 기능이 operation으로 구현 > 여러개의 operation이 모여 하나의 useCase 실현
    • 종류
      • 온라인 유스케이스 : 화면과 주로 상호작용하며 실시간 처리
      • 배치 유스케이스 : 특정한 시간대에 대량 데이터 일괄처리
      • 공통서비스 유스케이스 : 여러 유스케이스의 공통 기능 처리
    • UML 표기법 : 실선으로 된 타원, 스테레오는

      2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled%204.png

    • 업무 기능 분해도 & 업무 흐름도를 통해 UseCase를 식별 한다.
    • Lv1. Process > Lv2. 프로세스 체인 > Lv3. 프로세스 > Lv4. 액티비티 > Lv5. 액티비티(Transaction)

    2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled%205.png

    • 비슷한 정보군끼리 UseCase로 묶는다.

    2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled%206.png

  • (트랜잭션)
    • 액터로부터 발생한 이벤트가 시스템 내부 처리를 거쳐 다시 액처로 돌아가는 행위의 집합
  • 다이어그램
    • Actor와 유스케이스 관계를 도식화한 것(대표 산출물)
    • 과정
      • 1차 액터의 요구사항이 정의
      • UI 화면 정의
      • 이벤트 정의 : 무슨 정보를 주고 받는지 식별
      • 예외 사항 정의
      • System Interface 정의(유스케이스의 결과가 타시스템에 넘어갈 때) : 연계 대상 식별
    • 작성법
      • 액터와 유스케이스 정의는 병렬적으로 진행
      • 먼저 대화를 시작하는 쪽에서 대화를 받는 쪽으로 방향성 표시(액터 > 유스케이스)
      • 해당 유스케이스 내에 공통서비스 유스케이스가 진행되는 경우

      2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled%207.png

      2%20UseCase%206110107eac1246b1867ee7cb44ece840/Untitled%208.png

  • (연관관계)
    • 액터와 유스케이스 간의 커뮤니케이션 관계를 표시하는 것
    • 화상표의 방향은 누가 먼저 행위를 시작하는지 의미
  • RSA : 모델링 툴, DevOnMDA 플러그인이 존재한다.
    • 사용법
      • 액터추가 : UML 추가 > 액터
      • 관계는 연관/직접연관/포함 등이 존재한다.

Comments

Content