Skip to main content

UML-Based System Modeling and Static Verification

We work on removing the need to maintain design models by hand: deriving models from requirements, deriving code from models, and statically checking whether a model and its implementation have drifted apart.

Background

A UML model is usually drawn early in a project and then goes stale as the code changes. A stale model is worse than none. Nobody is confident it still holds, so it cannot serve as evidence for verification, and redrawing it every time is expensive.

Three problems follow. How do you obtain the model automatically (extracting a class model from requirement documents), how do you obtain code from the model (code generation from state machine diagrams), and how do you know the model and the implementation have diverged (consistency checking, reverse-engineering-based change analysis).

For Android applications the same problem shows up in configuration files. Permissions, intent filters, and API levels declared in the manifest are managed separately from the code, so the compiler does not catch mistakes, and a wrong declaration fails only on certain devices or certain versions.

Approach

Automatic Model Generation from Requirements

We extract class models from Korean requirement sentences. 5W1H heuristic rules narrow the candidates and a GRU classification model decides which of them are classes, attributes, or relationships. We validated the approach on domains with large document volumes and strong consistency requirements, such as naval combat systems.

Code Generation from State Machine Diagrams

Executable code is generated from state machine diagrams. Since the goal is not to be tied to a particular framework or runtime, the generator's output layer is separated out and data flow is reflected in the generated code. We implemented editors and generators for TMO-based real-time object models and for AUTOSAR components.

Model Consistency and Change Analysis

We compute and visualise the difference between two models, and between a model and its source code. Because the current model is re-extracted from the code by reverse engineering and compared with the previous one, the divergence shows up without having to decide which side changed first. Behavioural compatibility of component interfaces is checked against state machine diagrams.

Static Analysis of Android Configuration and Component Communication

We collected applications at scale and analysed what kinds of manifest mistakes occur and how they have changed over time. The permission-based security model was examined separately from the perspectives of policy experts, developers, and end users. Inter-component communication (ICC) carries over into generating test cases from a model of intents.

Component Identification and Interface Testing

We worked on identifying domain component boundaries from object usage information and object relationships, and on a tool that generates clients automatically to test EJB component interfaces. This is the lab's early component-based development (CBD) line.

From the same period, we also carried modeling languages into security: a language for formally describing security policies in a graphical object-oriented notation, with its syntax and translation functions defined.

Selected Records

The list below is a selection. Some records sit on the boundary between areas, so it is not exhaustive; the full list is in the Archive. Titles and author names are kept in their original language.

  • Development of an automatic class diagram generator using an AI-based GRU classification model and 5W1H heuristic rulesInternational Journal

    Seungmo Jung, Woojin Lee

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

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

    정승모, 이우진

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

    DOI
  • Development of a Framework-Independent Code Generator From State Machine DiagramsInternational Journal

    Seungmo Jung, Woojin Lee

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

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

    정승모, 이우진

    정보처리학회논문지, 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 systemDomestic Journal

    정승모, 이우진

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

    DOI
  • An empirical study of configuration changes and adoption in Android appsInternational JournalIF 2.45

    Ajay Kumar Jha, Sunghee Lee, Woo Jin Lee

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

    DOI
  • 안드로이드에서의 컴포넌트간 통신의 신뢰성 및 보안성 향상 기법PhD Thesis

    Ajay Kumar Jha

    경북대학교, 2017

    Full text
  • Developer Mistakes in Writing Android Manifests: An Empirical Study of Configuration ErrorsInternational Conference

    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 PerspectivesInternational Journal

    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 AndroidInternational Conference

    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 TechniqueDomestic Journal

    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) 환경에서의 개발을 위한 이클립스 기반 상태머신 다이어그램 편집기Software

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

    C-2012-024578, 2012-12-05

  • TMO기반의 실시간 객체지향 모델의 코드 자동생성 기법MS Thesis

    석미희

    경북대학교, 2011

    Full text
  • 모델 기반의 개발을 위한 정적 모델 분석 도구Software

    이우진, 류호동, 백태산

    2011-01-179-011714, 2011

  • 데이터 흐름을 이용한 상태머신 다이어그램 기반 코드 자동 생성기MS Thesis

    이병용

    경북대학교, 2010

    Full text
  • A Behavior Conformance Checker for Component Interfaces using UML State Machine DiagramDomestic Journal

    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 InformationInternational Journal

    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
  • 엔터프라이즈 자바 빈즈 컴포넌트의 인터페이스 시험 장치 및 방법Patent GrantedDomestic

    이지현, 이우진, 신규상

    Granted 10-0404908-0000 (2003-11-07)

    Full text
  • 객체관계와 객체 이용 정보를 이용한 소프트웨어 컴포넌트 식별 방법 및 그 장치Patent GrantedDomestic

    이우진, 김민정, 신규상

    Granted 10-0388486-0000 (2003-06-25)

    Full text
  • 그래픽 기반의 객체 지향 표기법을 이용한 정형적인 보안 정책 기술 언어Domestic Conference

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

    pp. 356-360, 2002-11-16

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

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

  • Development of Modeling Tool and Automatic Code Generator for Home Appliance SoftwareResearch Project

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

  • 컴포넌트 기반의 차량용 응용 SW 설계도구 개발Research Project

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

  • Development of Architecture and Code Generation of Digital Appliance SoftwareResearch Project

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

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

    KISA