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.
- DOI ↗
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
- Full text ↗
안드로이드에서의 컴포넌트간 통신의 신뢰성 및 보안성 향상 기법PhD Thesis
Ajay Kumar Jha
경북대학교, 2017
- DOI ↗
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
개발형 자동차 표준 소프트웨어 구조(AUTOSAR) 환경에서의 개발을 위한 이클립스 기반 상태머신 다이어그램 편집기Software
이우진, 류호동, 백태산, 장수영, 정수용
C-2012-024578, 2012-12-05
- Full text ↗
TMO기반의 실시간 객체지향 모델의 코드 자동생성 기법MS Thesis
석미희
경북대학교, 2011
모델 기반의 개발을 위한 정적 모델 분석 도구Software
이우진, 류호동, 백태산
2011-01-179-011714, 2011
- Full text ↗
데이터 흐름을 이용한 상태머신 다이어그램 기반 코드 자동 생성기MS Thesis
이병용
경북대학교, 2010
- DOI ↗
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
- Full text ↗
엔터프라이즈 자바 빈즈 컴포넌트의 인터페이스 시험 장치 및 방법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
Related Research Projects
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