본문으로 건너뛰기

UML 기반 시스템 모델링 및 정적 검증

설계 모델을 사람이 손으로 유지하지 않아도 되게 만드는 쪽을 봅니다. 요구사항에서 모델을 뽑고, 모델에서 코드를 뽑고, 모델과 코드가 어긋났는지 정적으로 검사합니다.

연구 배경

UML 모델은 프로젝트 초기에 그려진 뒤 코드가 바뀌면 그대로 낡습니다. 낡은 모델은 없는 것보다 나쁩니다. 실제로 맞는지 아무도 확신하지 못하므로 검증의 근거로 쓸 수 없고, 그렇다고 매번 다시 그리기엔 비용이 큽니다.

여기서 세 갈래의 문제가 나옵니다. 모델을 어떻게 자동으로 얻는가(요구사항 문서에서 클래스 모델 추출), 모델에서 코드를 어떻게 얻는가(상태머신 다이어그램 기반 코드 생성), 모델과 구현이 어긋났는지 어떻게 아는가(일관성 검사, 역공학 기반 변경 분석)입니다.

안드로이드 애플리케이션은 이 문제가 설정 파일에서 그대로 나타납니다. 매니페스트에 선언한 권한, 인텐트 필터, API 레벨은 코드와 따로 관리되기 때문에 컴파일러가 잡아주지 않고, 잘못 써도 특정 단말이나 특정 버전에서만 실패합니다.

주요 접근

요구사항에서 모델 자동 생성

한국어 요구사항 문장에서 클래스 모델을 뽑습니다. 5W1H 휴리스틱 규칙으로 후보를 추리고 GRU 분류 모델로 클래스·속성·관계를 가려내는 구조입니다. 함정전투체계처럼 문서 분량이 크고 일관성 요구가 강한 도메인을 대상으로 검증했습니다.

상태머신 다이어그램 기반 코드 생성

상태머신 다이어그램에서 실행 코드를 생성합니다. 특정 프레임워크나 런타임에 묶이지 않게 만드는 것이 목표라, 생성기의 출력 계층을 갈라 두고 데이터 흐름까지 코드에 반영하도록 했습니다. TMO 기반 실시간 객체 모델과 AUTOSAR 컴포넌트를 대상으로 편집기와 생성기를 구현했습니다.

모델 일관성 및 변경 분석

두 모델 사이의, 그리고 모델과 소스코드 사이의 차이를 계산해 시각화합니다. 역공학으로 현재 코드에서 모델을 다시 뽑아 이전 모델과 비교하는 방식이라, 어느 쪽이 먼저 바뀌었는지 따지지 않아도 어긋난 지점이 드러납니다. 컴포넌트 인터페이스의 행위 호환성은 상태머신 다이어그램을 근거로 검사합니다.

안드로이드 구성 및 컴포넌트 통신 정적 분석

실제 앱을 대량으로 수집해 매니페스트 작성 오류가 어떤 유형으로 나타나고 어떻게 바뀌어 왔는지 분석했습니다. 권한 기반 보안 모델은 정책 입안자, 개발자, 최종 사용자 관점을 나눠 살펴봤습니다. 컴포넌트 간 통신(ICC)은 인텐트를 모델로 옮겨 테스트 케이스를 생성하는 쪽으로 이어집니다.

컴포넌트 식별 및 인터페이스 시험

객체 사용 정보와 객체 관계로 도메인 컴포넌트 경계를 찾는 기법, 그리고 EJB 컴포넌트의 인터페이스를 시험하기 위한 클라이언트 자동 생성 도구를 다뤘습니다. 연구실 초기의 컴포넌트 기반 개발(CBD) 축입니다.

같은 시기에 모델링 언어를 보안 쪽으로 옮긴 작업도 있습니다. 보안 정책을 그래픽 객체지향 표기법으로 정형 기술하는 언어를 설계하고 구문과 번역 기능을 정의했습니다.

대표 실적

아래는 이 분야에서 골라낸 것입니다. 분야 경계에 걸치는 실적이 있어 전수가 아니며, 전체 목록은 Archive에 있습니다.

  • Development of an automatic class diagram generator using an AI-based GRU classification model and 5W1H heuristic rules국제논문지

    Seungmo Jung, Woojin Lee

    Journal of Systems and Software, Vol. 235, pp. 112780, 2026-5

    DOI
  • 한국어 소프트웨어 요구사항으로부터 클래스 모델 자동 생성국내논문지

    정승모, 이우진

    정보처리학회논문지, Vol. 15, No. 3, pp. 210-218, 2026-03

    DOI
  • Development of a Framework-Independent Code Generator From State Machine Diagrams국제논문지

    Seungmo Jung, Woojin Lee

    IEEE Access, Vol. 12, pp. 125108-125124, 2024

    DOI
  • 소프트웨어 개발에 구조화된 UML 모델을 적용하기 위한 자동 모델 생성 도구에 관한 연구국내논문지

    정승모, 이우진

    정보처리학회논문지, Vol. 13, No. 12, pp. 683-690, 2024-12

    DOI
  • A study on applying a consistent UML model to naval combat system software using model verification system국내논문지

    정승모, 이우진

    한국컴퓨터정보학회논문지, Vol. 27, No. 5, pp. 109-116, 2022-05

    DOI
  • An empirical study of configuration changes and adoption in Android apps국제논문지IF 2.45

    Ajay Kumar Jha, Sunghee Lee, Woo Jin Lee

    Journal of Systems and Software, Vol. 156, pp. 164-180, 2019-10

    DOI
  • 안드로이드에서의 컴포넌트간 통신의 신뢰성 및 보안성 향상 기법박사 학위논문

    Ajay Kumar Jha

    경북대학교, 2017

    원문
  • Developer Mistakes in Writing Android Manifests: An Empirical Study of Configuration Errors국제학술회의

    Ajay Kumar Jha, Sunghee Lee, Woo Jin Lee

    2017 IEEE/ACM 14th International Conference on Mining Software Repositories (MSR), pp. 25-36, 2017-5

    DOI
  • Analysis of Permission-based Security in Android through Policy Expert, Developer, and End User Perspectives국제논문지

    Ajay Kumar Jha, Woo Jin Lee

    Journal of Universal Computer Science, Vol. 22, No. 4, pp. 459-474, 2016-04

    DOI
  • Modeling and Test Case Generation of Inter-component Communication in Android국제학술회의

    Ajay Kumar Jha, Sunghee Lee, Woo Jin Lee

    pp. 113-116, 2015-5

    DOI
  • Development of Analysis and Visualization Tool for Java Source Code Changes using Reverse Engineering Technique국내논문지

    Jin-Wook Kwon, Yun-Ja Choi, Woo-Jin Lee

    The KIPS Transactions:PartD, Vol. 19D, No. 1, pp. 39-48, 2012-2-29

    DOI
  • 개발형 자동차 표준 소프트웨어 구조(AUTOSAR) 환경에서의 개발을 위한 이클립스 기반 상태머신 다이어그램 편집기프로그램

    이우진, 류호동, 백태산, 장수영, 정수용

    C-2012-024578, 2012-12-05

  • TMO기반의 실시간 객체지향 모델의 코드 자동생성 기법석사 학위논문

    석미희

    경북대학교, 2011

    원문
  • 모델 기반의 개발을 위한 정적 모델 분석 도구프로그램

    이우진, 류호동, 백태산

    2011-01-179-011714, 2011

  • 데이터 흐름을 이용한 상태머신 다이어그램 기반 코드 자동 생성기석사 학위논문

    이병용

    경북대학교, 2010

    원문
  • A Behavior Conformance Checker for Component Interfaces using UML State Machine Diagram국내논문지

    Ho-Jun Kim, Woo-Jin Lee

    The KIPS Transactions:PartD, Vol. 16D, No. 1, pp. 65-72, 2009-2-28

    DOI
  • A Method and Tool for Identifying Domain Components Using Object Usage Information국제논문지

    Woo-Jin Lee, Oh-Cheon Kwon, Min-Jung Kim, Gyu-Sang Shin

    ETRI Journal, Vol. 25, No. 2, pp. 121-132, 2003-4-15

    DOI
  • 엔터프라이즈 자바 빈즈 컴포넌트의 인터페이스 시험 장치 및 방법특허 등록국내

    이지현, 이우진, 신규상

    등록 10-0404908-0000 (2003-11-07)

    원문
  • 객체관계와 객체 이용 정보를 이용한 소프트웨어 컴포넌트 식별 방법 및 그 장치특허 등록국내

    이우진, 김민정, 신규상

    등록 10-0388486-0000 (2003-06-25)

    원문
  • 그래픽 기반의 객체 지향 표기법을 이용한 정형적인 보안 정책 기술 언어국내학술회의

    김지영, 김상현, 강철범, 장희진, 이우진, 김상욱, 유동영, 김형종

    pp. 356-360, 2002-11-16

    원문

관련 연구과제

  • IT 자동차 융합 연구센터(CITAC) 차량용 SW 모델링 및 테스팅 기술연구과제

    2011-06 ~ , 정보통신산업진흥원, 참여연구원

  • Development of Modeling Tool and Automatic Code Generator for Home Appliance Software연구과제

    2009-03-01 ~ 2009-12-10, LG전자, 연구책임자, 30000천원

  • 컴포넌트 기반의 차량용 응용 SW 설계도구 개발연구과제

    2008-07-01 ~ 2008-12-31, 대구경북과학기술연구원, 연구책임자, 40000천원

  • Development of Architecture and Code Generation of Digital Appliance Software연구과제

    2007-12-01 ~ 2008-11-30, LG전자, 연구책임자, 30000천원

  • 방어메커니즘 모델링 형식언어 구문정의 및 번역기능 연구연구과제

    KISA