KR101913558B1 - 시퀀스 다이어그램 기반의 통합개발장치 - Google Patents

시퀀스 다이어그램 기반의 통합개발장치 Download PDF

Info

Publication number
KR101913558B1
KR101913558B1 KR1020160142325A KR20160142325A KR101913558B1 KR 101913558 B1 KR101913558 B1 KR 101913558B1 KR 1020160142325 A KR1020160142325 A KR 1020160142325A KR 20160142325 A KR20160142325 A KR 20160142325A KR 101913558 B1 KR101913558 B1 KR 101913558B1
Authority
KR
South Korea
Prior art keywords
sequence diagram
debugging
sequence
source code
event processing
Prior art date
Application number
KR1020160142325A
Other languages
English (en)
Other versions
KR20180046761A (ko
Inventor
오종근
김혁
신택규
홍주형
Original Assignee
주식회사 엘지씨엔에스
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엘지씨엔에스 filed Critical 주식회사 엘지씨엔에스
Priority to KR1020160142325A priority Critical patent/KR101913558B1/ko
Publication of KR20180046761A publication Critical patent/KR20180046761A/ko
Application granted granted Critical
Publication of KR101913558B1 publication Critical patent/KR101913558B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

본 발명은 시퀀스 다이어그램 기반의 통합개발장치에 관한 것으로, 복수의 시퀀스 객체들, 상기 복수의 시퀀스 객체들 각각에 포함되고 해당 시퀀스 객체에서 발생되는 이벤트를 각각 처리하는 적어도 하나의 이벤트 처리 노드 및 상기 복수의 시퀀스 객체들 간의 플로우를 포함하는 시퀀스 다이어그램을 생성하는 시퀀스 다이어그램 생성부 및 상기 시퀀스 다이어그램 상에서 사용자 인터랙션을 통해 상기 적어도 하나의 이벤트 처리 노드에 디버깅용 종단점을 결합시키는 시퀀스 다이어그램 디버깅 처리부를 포함한다.

Description

시퀀스 다이어그램 기반의 통합개발장치{SEQUENCE DIAGRAM BASED INTEGRATED DEVELOPMENT APPARATUS}
본 발명은 시퀀스 다이어그램 기반의 통합개발기술에 관한 것으로, 보다 상세하게는, 테스트 및 디버그를 모두 시퀀스 다이어그램 기반으로 통합하여 진행할 수 있는 시퀀스 다이어그램 기반의 통합개발장치에 관한 것이다.
UML(Unified Modeling Language) 모델 기반의 모델 주도 개발방식은 프로그램에 관한 분석 및 설계 모델을 작성함에 있어서 작성한 모델로부터 소스 코드를 자동으로 생성하는 환경을 기반으로 한다.
UML 모델 기반의 모델 주도 개발방식에서 프로그램의 개발은 모델을 작성하는 것이지만, 테스트 및 디버그는 생성한 소스 코드를 바탕으로 진행한다. 개발자는 프로그램의 변경이 발생하면 모델을 수정하고 소스 코드를 다시 생성한 뒤 소스 코드를 보면서 재 테스트를 하는 방식으로 진행하게 된다.
이러한 종래 기술은 테스트 및 디버그에 있어서 소스 코드를 사용하기 때문에 개발자는 문제가 발생하면 모델의 어느 부분을 수정해야 하는지 직관적으로 알 수 없어 소스 코드를 통해 유추해야 하는 문제가 있다. 또한, 종래 기술에서 모델이 수정되었을 때 소스 코드를 생성하지 않은 경우 소스 코드와 모델 간의 차이점이 발생하지만 이를 인식하기 어려운 단점이 존재한다.
한국 등록특허 제 10-0724520(2007.05.28)호는 센서노드 지원장치, 센서노드 통합개발장치 및 이를 이용한 센서 네트워크 개발시스템에 관한 것으로, 적어도 하나 이상의 센서노드에 설치되어 호스트 컴퓨터와의 통신과 명령처리 및 센서노드와의 통신을 위한 센서노드 지원장치; 및 호스트 컴퓨터에 설치되어 상기 센서노드 지원장치와 상호 통신되어 센서노드를 제어하기 위한 센서노드 통합개발장치를 포함함으로써, 센서 네트워크 시스템의 개발 시간과 비용의 단축 및 개발되는 센서 네트워크 시스템의 신뢰성을 증대할 수 있는 효과가 있다.
한국 공개특허공보 제10-2008-0066669(2008.07.16)호는 각각의 노드가 그래픽 표현을 갖는 것인 복수의 노드(DIAij)를 포함하는 그래프 구조를 탐색하는 그래프 구조 탐색 방법에 관한 것으로, 대응하는 시퀀스를 따라 각각의 탐색 경로가 일 세트의 노드들을 포함하는 것인 복수의 탐색 경로(NAVk)를 정의하는 단계, 상기 탐색 경로들 중 하나를 선택(CMDk)하는 단계, 상기 선택된 탐색 경로의 노드들을 순회(traversing)하는 단계 및 상기 각각의 순회된 노드의 그래픽 표현을 디스플레이하는 단계를 포함한다.
1. 한국 등록특허 제 10-0724520(2007.05.28)호 2. 한국 공개특허공보 제10-2008-0066669(2008.07.16)호
본 발명의 일 실시예는 테스트 및 디버그를 모두 시퀀스 다이어그램 기반으로 통합하여 진행할 수 있는 시퀀스 다이어그램 기반의 통합개발장치를 제공한다.
본 발명의 일 실시예는 시퀀스 다이어그램 상에서 디버깅용 종단점을 간편하게 설정할 수 있는 시퀀스 다이어그램 기반의 통합개발장치를 제공한다.
본 발명의 일 실시예는 시퀀스 다이어그램과 소스 코드 간의 동기화를 자동으로 수행할 수 있는 시퀀스 다이어그램 기반의 통합개발장치를 제공한다.
본 발명의 일 실시예는 개발, 테스트 및 디버그를 모두 UML(Unified Modeling Language) 모델 안에서 통합적으로 수행 가능한 시퀀스 다이어그램 기반의 통합개발장치를 제공한다.
실시예들 중에서, 시퀀스 다이어그램 기반의 통합개발장치는 복수의 시퀀스 객체들, 상기 복수의 시퀀스 객체들 각각에 포함되고 해당 시퀀스 객체에서 발생되는 이벤트를 각각 처리하는 적어도 하나의 이벤트 처리 노드 및 상기 복수의 시퀀스 객체들 간의 플로우를 포함하는 시퀀스 다이어그램을 생성하는 시퀀스 다이어그램 생성부 및 상기 시퀀스 다이어그램 상에서 사용자 인터랙션을 통해 상기 적어도 하나의 이벤트 처리 노드에 디버깅용 종단점을 결합시키는 시퀀스 다이어그램 디버깅 처리부를 포함한다.
상기 시퀀스 다이어그램 생성부는 상기 시퀀스 다이어그램 상에서 상기 복수의 시퀀스 객체들을 순차적으로 배치할 수 있다.
상기 시퀀스 다이어그램 생성부는 상기 복수의 시퀀스 객체들 간의 플로우를 해당 이벤트 처리 노드들 간의 방향성 연결관계를 통해 정의할 수 있다.
상기 시퀀스 다이어그램 디버깅 처리부는 상기 결합이 확인되면 해당 이벤트 처리 노드 및 해당 연관된 메소드 코드 모두에 상기 디버깅용 종단점을 설정할 수 있다.
상기 시퀀스 다이어그램 디버깅 처리부는 상기 시퀀스 다이어그램 상에서 상기 해당 이벤트 처리 노드에 시각적인 디버깅용 종단점을 표시할 수 있다.
상기 시퀀스 다이어그램 디버깅 처리부는 상기 해당 연관된 메소드 코드를 상기 시퀀스 다이어그램과 연관된 소스 코드에서 검색하고 상기 해당 연관된 메소드 코드에 코드적인 디버깅용 종단점을 설정할 수 있다.
상기 시퀀스 다이어그램 디버깅 처리부는 상기 검색이 실패하거나 또는 상기 시퀀스 다이어그램과 상기 소스 코드 간의 불일치가 검출되면 상기 시퀀스 다이어그램과 상기 소스 코드 간의 동기화를 수행할 수 있다.
상기 디버깅용 종단점이 상기 시퀀스 다이어그램과 연관된 소스 코드에 설정되는 것을 검출하는 소스 코드 디버깅 처리부를 더 포함할 수 있다.
상기 소스 코드 디버깅 처리부는 상기 소스 코드에서 상기 디버깅용 종단점과 연관된 메소드 코드를 확인하고 해당 이벤트 처리 노드에서 상기 디버깅용 종단점의 유무를 검출할 수 있다.
상기 소스 코드 디버깅 처리부는 상기 해당 이벤트 처리 노드에서 상기 디버깅용 종단점이 검출되지 않은 경우에는 상기 해당 이벤트 처리 노드에 시각적인 디버깅용 종단점을 표시할 수 있다.
개시된 기술은 다음의 효과를 가질 수 있다. 다만, 특정 실시예가 다음의 효과를 전부 포함하여야 한다거나 다음의 효과만을 포함하여야 한다는 의미는 아니므로, 개시된 기술의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
본 발명의 일 실시예에 따른 시퀀스 다이어그램 기반의 통합개발장치는 테스트 및 디버그를 모두 시퀀스 다이어그램 기반으로 통합하여 진행할 수 있다.
본 발명의 일 실시예에 따른 시퀀스 다이어그램 기반의 통합개발장치는 시퀀스 다이어그램 상에서 디버깅용 종단점을 간편하게 설정할 수 있다.
본 발명의 일 실시예에 따른 시퀀스 다이어그램 기반의 통합개발장치는 시퀀스 다이어그램과 소스 코드 간의 동기화를 자동으로 수행할 수 있다.
본 발명의 일 실시예에 따른 시퀀스 다이어그램 기반의 통합개발장치는 개발, 테스트 및 디버그를 모두 UML(Unified Modeling Language) 모델 안에서 통합적으로 수행할 수 있다.
도 1은 본 발명의 일 실시예에 따른 시퀀스 다이어그램 기반의 통합개발장치를 설명하는 도면이다.
도 2는 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치에 의해 생성된 시퀀스 다이어그램을 설명하는 도면이다.
도 3은 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치에 의해 생성되거나 수정될 수 있는 시퀀스 다이어그램 및 소스 코드를 나타내는 도면이다.
도 4는 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치에서 테스트 및 디버깅을 진행하기 위하여 시퀀스 다이어그램을 생성하고 디버깅용 종단점을 설정하는 과정을 설명하는 흐름도이다.
도 5는 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치에서 시퀀스 다이어그램과 소스 코드 간의 동기화를 수행하는 과정을 설명하는 흐름도이다.
도 6은 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치의 실제 구현에 따른 디버깅용 종단점 설정 화면의 일 실시예를 나타내는 도면이다.
본 발명에 관한 설명은 구조적 내지 기능적 설명을 위한 실시예에 불과하므로, 본 발명의 권리범위는 본문에 설명된 실시예에 의하여 제한되는 것으로 해석되어서는 아니 된다. 즉, 실시예는 다양한 변경이 가능하고 여러 가지 형태를 가질 수 있으므로 본 발명의 권리범위는 기술적 사상을 실현할 수 있는 균등물들을 포함하는 것으로 이해되어야 한다. 또한, 본 발명에서 제시된 목적 또는 효과는 특정 실시예가 이를 전부 포함하여야 한다거나 그러한 효과만을 포함하여야 한다는 의미는 아니므로, 본 발명의 권리범위는 이에 의하여 제한되는 것으로 이해되어서는 아니 될 것이다.
한편, 본 출원에서 서술되는 용어의 의미는 다음과 같이 이해되어야 할 것이다.
"제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위한 것으로, 이들 용어들에 의해 권리범위가 한정되어서는 아니 된다. 예를 들어, 제1 구성요소는 제2 구성요소로 명명될 수 있고, 유사하게 제2 구성요소도 제1 구성요소로 명명될 수 있다.
어떤 구성요소가 다른 구성요소에 "연결되어"있다고 언급된 때에는, 그 다른 구성요소에 직접적으로 연결될 수도 있지만, 중간에 다른 구성요소가 존재할 수도 있다고 이해되어야 할 것이다. 반면에, 어떤 구성요소가 다른 구성요소에 "직접 연결되어"있다고 언급된 때에는 중간에 다른 구성요소가 존재하지 않는 것으로 이해되어야 할 것이다. 한편, 구성요소들 간의 관계를 설명하는 다른 표현들, 즉 "~사이에"와 "바로 ~사이에" 또는 "~에 이웃하는"과 "~에 직접 이웃하는" 등도 마찬가지로 해석되어야 한다.
단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한 복수의 표현을 포함하는 것으로 이해되어야 하고, "포함하다"또는 "가지다" 등의 용어는 실시된 특징, 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것이 존재함을 지정하려는 것이며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
각 단계들에 있어 식별부호(예를 들어, a, b, c 등)는 설명의 편의를 위하여 사용되는 것으로 식별부호는 각 단계들의 순서를 설명하는 것이 아니며, 각 단계들은 문맥상 명백하게 특정 순서를 기재하지 않는 이상 명기된 순서와 다르게 일어날 수 있다. 즉, 각 단계들은 명기된 순서와 동일하게 일어날 수도 있고 실질적으로 동시에 수행될 수도 있으며 반대의 순서대로 수행될 수도 있다.
여기서 사용되는 모든 용어들은 다르게 정의되지 않는 한, 본 발명이 속하는 분야에서 통상의 지식을 가진 자에 의해 일반적으로 이해되는 것과 동일한 의미를 가진다. 일반적으로 사용되는 사전에 정의되어 있는 용어들은 관련 기술의 문맥상 가지는 의미와 일치하는 것으로 해석되어야 하며, 본 출원에서 명백하게 정의하지 않는 한 이상적이거나 과도하게 형식적인 의미를 지니는 것으로 해석될 수 없다.
도 1은 본 발명의 일 실시예에 따른 시퀀스 다이어그램 기반의 통합개발장치를 설명하는 도면이다.
도 1을 참조하면, 시퀀스 다이어그램 기반의 통합개발장치(100)는 시퀀스 다이어그램 생성부(110), 시퀀스 다이어그램 디버깅 처리부(120), 제어부(130) 및 소스 코드 디버깅 처리부(140)를 포함할 수 있다.
시퀀스 다이어그램 기반의 통합개발장치(100)는 프로그램에 관해 테스트 및 디버깅을 할 수 있는 컴퓨팅 장치에 해당한다. 예를 들어, 시퀀스 다이어그램 기반의 통합개발장치(100)는 데스크톱, 노트북, 태블릿 PC 또는 스마트폰으로 구현될 수 있다.
일 실시예에서, 시퀀스 다이어그램 기반의 통합개발장치(100)는 UML(Unified Modeling Language) 모델 기반의 모델 주도 개발방식에 해당하고, 프로그램에 관한 분석 및 설계 모델을 작성함에 있어서 작성한 UML 모델로부터 소스 코드(300)를 자동으로 생성하는 환경을 기반으로 한다.
본 발명의 일 실시예에 따르면, 시퀀스 다이어그램 기반의 통합개발장치(100)는 UML 모델의 한 종류인 시퀀스 다이어그램(200)으로부터 소스 코드(300)를 생성한 뒤, 그 작성된 모델인 시퀀스 다이어그램(200)을 기반으로 테스트 및 디버그까지 모두 수행할 수 있다.
시퀀스 다이어그램 생성부(110)는 시퀀스 다이어그램(200)을 생성할 수 있다. 이러한 내용은 도 2 및 도 3을 참조하여 설명하도록 한다.
도 2는 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치(100)에 의해 생성된 시퀀스 다이어그램(200)을 설명하는 도면이고, 도 3은 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치(100)에 의해 생성되거나 수정될 수 있는 시퀀스 다이어그램(200) 및 소스 코드(300)를 나타내는 도면이다.
시퀀스 다이어그램(200)은 복수의 시퀀스 객체들(210), 적어도 하나의 이벤트 처리 노드(220) 및 복수의 시퀀스 객체들 간의 플로우(230)를 포함할 수 있다. 여기에서, 적어도 하나의 이벤트 처리 노드(220)는 복수의 시퀀스 객체들(210) 각각에 포함되고 해당 시퀀스 객체(210)에서 발생되는 이벤트를 각각 처리할 수 있다.
시퀀스 다이어그램 생성부(110)는 시퀀스 다이어그램(200) 상에서 복수의 시퀀스 객체들(210)을 순차적으로 배치할 수 있다. 일 실시예에서, 시퀀스 다이어그램 생성부(110)는 복수의 시퀀스 객체들(210) 각각의 생성시점, 연관되는 이벤트의 발생 시점 또는 설정된 우선순위를 기초로 복수의 시퀀스 객체들(210)을 순차적으로 배치할 수 있다.
시퀀스 다이어그램 생성부(110)는 복수의 시퀀스 객체들(210) 간의 플로우(230)를 해당 이벤트 처리 노드들(220) 간의 방향성 연결관계를 통해 정의할 수 있다. 예를 들어, 시퀀스 다이어그램 생성부(110)는 제1 시퀀스 객체(210a)의 이벤트 처리 노드(220a)를 시작노드로 설정하고 제4 시퀀스 객체(210d)의 이벤트 처리 노드(220b)를 종결노드로 설정하는 방향성 연결관계를 통해 제1 시퀀스 객체(210a)와 제4 시퀀스 객체(210d) 간의 플로우(230a)를 정의할 수 있다. 일 실시예에서, 복수의 시퀀스 객체들(210) 간의 방향성 연결관계는 사용자 인터랙션을 통해 설정될 수 있다.
일 실시예에서, 시퀀스 다이어그램 생성부(110)는 사용자 인터랙션을 통해 복수의 시퀀스 객체들(210), 해당 시퀀스 객체(210)에서 발생하는 이벤트 정보를 포함하고 해당 이벤트를 처리하는 복수의 시퀀스 객체들(210) 각각의 이벤트 처리 노드들(220) 및 이벤트 처리 노드들(220) 간의 방향성 연결관계를 입력 받은 후에 입력 정보를 기초로 복수의 시퀀스 객체들(210) 간의 플로우(230)를 정의하여 시퀀스 다이어그램(200)을 생성할 수 있다.
일 실시예에서, 시퀀스 다이어그램 생성부(110)는 사용자로부터 소스 코드(300)를 입력 받을 수 있고, 입력 받은 소스 코드(300)에 포함된 복수의 시퀀스 객체들(210), 이벤트 처리 노드(220) 및 이벤트 처리 노드들(220) 간의 플로우(230)와 연관되는 복수의 메소드 코드들을 기초로 시퀀스 다이어그램(200)을 생성할 수 있다.
시퀀스 다이어그램 디버깅 처리부(120)는 시퀀스 다이어그램(200) 상에서 사용자 인터랙션을 통해 적어도 하나의 이벤트 처리 노드(220)에 디버깅용 종단점(240)을 결합시킬 수 있다. 일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 시퀀스 다이어그램(200) 상에서 특정 시퀀스 객체(210)의 특정 이벤트 처리 노드(220)에 마우스 버튼을 클릭하여 해당 이벤트 처리 노드(220)에 디버깅용 종단점(240)을 결합시킬 수 있다.
시퀀스 다이어그램 디버깅 처리부(120)는 이벤트 처리 노드(220)와 디버깅용 종단점(240)의 결합이 확인되면 해당 이벤트 처리 노드(220) 및 해당 연관된 메소드 코드(method code) 모두에 디버깅용 종단점(240)을 설정할 수 있다. 일 실시예에서, 특정 시퀀스 객체(210)의 특정 이벤트 처리 노드(220)와 연관된 메소드 코드는 해당 시퀀스 객체(210)의 상태 및 속성 변경과 같이 해당 시퀀스 객체(210)에 대해 수행할 수 있는 작업을 정의할 수 있고, 이에 따라 시퀀스 다이어그램 디버깅 처리부(120)는 메소드 코드를 통해 해당 시퀀스 객체(210)와 관련하여 관련 소스 코드(300)에 접근 및 데이터 변경 등의 기능을 수행할 수 있다.
일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 상기의 결합이 확인되면 시퀀스 다이어그램(200) 상에서 해당 이벤트 처리 노드(220)에 시각적인 디버깅용 종단점(240)을 표시할 수 있다. 예를 들어, 시퀀스 다이어그램 디버깅 처리부(120)는 제1 시퀀스 객체(210a)의 이벤트 처리 노드(220a)에 마우스 클릭에 따른 사용자 인터랙션이 입력되면 해당 이벤트 처리 노드(220a)에 디버깅용 종단점(240)을 결합시킬 수 있고, 이러한 결합이 확인되면 시퀀스 다이어그램(200) 상에서 해당 이벤트 처리 노드(220a)에 디버깅용 종단점(240) 설정을 상징하는 제1 아이콘을 오버레이하여 시각적으로 표시할 수 있다.
일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 상기의 결합이 확인되면 해당 연관된 메소드 코드를 시퀀스 다이어그램(200)과 연관된 소스 코드(300)에서 검색하고 해당 연관된 메소드 코드에 코드적인 디버깅용 종단점을 설정할 수 있다. 일 실시예에서, 코드적인 디버깅용 종단점은 디버깅을 중지 또는 종료하고 런타임 과정에서 생성된 데이터 및 오류코드를 호출하도록 정의될 수 있다. 일 실시예에서, 테스트 및 디버깅 과정은 소스 코드(300)의 검색을 통해 만일 코드적인 디버깅용 종단점이 검색되면 해당 코드적인 디버깅용 종단점이 포함된 특정 메소드 코드까지 또는 시퀀스 다이어그램(200)에서 해당 이벤트 처리 노드(220)의 바로 이전 이벤트 처리 노드(220)와 연관되는 메소드 코드까지 진행될 수 있다.
시퀀스 다이어그램 디버깅 처리부(120)는 시퀀스 다이어그램(200) 상에서 사용자 인터랙션을 통해 적어도 하나의 이벤트 처리 노드(220)에 설정된 디버깅용 종단점(240)을 해지할 수 있다. 일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 사용자 인터랙션을 통한 디버깅용 종단점(240) 해지 요청을 수신하면 해당 이벤트 처리 노드(220) 및 해당 연관된 메소드 코드 중에서 적어도 하나에 설정된 디버깅용 종단점(240)을 해지할 수 있다.
일 실시예에서, 시퀀스 다이어그램 기반의 통합개발장치(100)는 특정 디버깅용 종단점(240)의 설정(또는 해지)가 시퀀스 다이어그램(200) 상에서 또는 해당 기능을 제공하는 별도의 인터페이스 화면을 통해서 수행되도록 할 수 있고, 어느 한 쪽을 통하여 수행되더라도 상호 동기화되도록 할 수 있다.
시퀀스 다이어그램 디버깅 처리부(120)는 시퀀스 다이어그램(200)과 소스 코드(300) 간의 동기화를 수행할 수 있다. 일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 상기의 검색이 실패하거나 또는 시퀀스 다이어그램(200)과 해당 소스 코드(300) 간의 불일치가 검출되면 시퀀스 다이어그램(200)과 소스 코드(300) 간의 동기화를 수행할 수 있다. 일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 상기의 불일치가 검출되면 시퀀스 다이어그램(200) 상에 시각적으로 표시할 수 있다.
보다 구체적으로, 시퀀스 다이어그램 디버깅 처리부(120)는 특정 이벤트 처리 노드(220)와 디버깅용 종단점(240)의 결합이 확인되면 해당 연관된 메소드 코드를 시퀀스 다이어그램(200)과 연관된 소스 코드(300)에서 검색할 수 있고, 이러한 검색이 실패하거나(예를 들어, 연관된 소스 코드(300)에서 해당 연관된 메소드 코드가 검출되지 않으면) 또는 시퀀스 다이어그램(200)과 해당 소스 코드(300)가 복수의 이벤트들에 관해 정의한 속성 및 행위의 관점에서 상호 일치하지 않는 부분이 적어도 하나 이상 존재하면 시퀀스 다이어그램(200)과 해당 소스 코드(300) 간의 동기화를 수행할 수 있다. 일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 이러한 동기화의 과정에서 현재의 시퀀스 다이어그램(200)을 기초로 코드적인 디버깅용 종단점 및 해당 연관된 메소드 코드 중에서 적어도 하나를 포함하는 소스 코드(300)를 다시 생성하거나 또는 특정 부분에 대해서만 갱신하도록 할 수 있다.
제어부(130)는 시퀀스 다이어그램 기반의 통합개발장치(100)의 동작 전반을 제어할 수 있고, 시퀀스 다이어그램 생성부(110), 시퀀스 다이어그램 디버깅 처리부(120) 및 소스 코드 디버깅 처리부(140) 간의 데이터 흐름을 제어할 수 있다.
소스 코드 디버깅 처리부(140)는 디버깅용 종단점(240)이 시퀀스 다이어그램(200)과 연관된 소스 코드(300)에 설정되는 것을 검출할 수 있다. 일 실시예에서, 소스 코드 디버깅 처리부(140)는 시퀀스 다이어그램(200)과 연관된 소스 코드(300) 상에서 코드적인 디버깅용 종단점을 검색하여 코드적인 디버깅용 종단점의 설정 여부를 검출할 수 있다.
상기의 과정에 이어서, 소스 코드 디버깅 처리부(140)는 소스 코드(300)에서 디버깅용 종단점(240)과 연관된 메소드 코드를 확인하고 해당 이벤트 처리 노드(220)에서 디버깅용 종단점(240)의 유무를 검출할 수 있다. 일 실시예에서, 소스 코드 디버깅 처리부(140)는 소스 코드(300)에서 코드적인 디버깅용 종단점이 검출되면 해당 디버깅용 종단점과 연관되는 메소드 코드를 검색하여 해당 메소드 코드가 시작되는 지점의 해당 이벤트 처리 노드(220) 정보를 확인할 수 있고, 시퀀스 다이어그램(200) 상에서 앞서 확인한 해당 이벤트 처리 노드(220)에 설정된 디버깅용 종단점(240)이 존재하는지 여부를 검출할 수 있다.
상기의 과정에 이어서, 소스 코드 디버깅 처리부(140)는 해당 이벤트 처리 노드(220)에서 디버깅용 종단점(240)이 검출되지 않은 경우에는 해당 이벤트 처리 노드(220)에 시각적인 디버깅용 종단점을 표시할 수 있다. 일 실시예에서, 소스 코드 디버깅 처리부(140)는 이러한 시각적인 디버깅용 종단점 표시와 관련하여 사용자에게 승인을 구하는 메시지를 표시하도록 할 수 있고, 사용자에 의한 승인이 사용자 인터랙션을 통해 입력되면 해당 이벤트 처리 노드(220)에 코드적인 디버깅용 종단점 검출에 따른 시퀀스 다이어그램(200) 상의 시각적 디버깅용 종단점(240) 설정을 상징하는 제2 아이콘을 오버레이하여 시각적으로 표시할 수 있다.
도 4는 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치에서 테스트 및 디버깅을 진행하기 위하여 시퀀스 다이어그램을 생성하고 디버깅용 종단점을 설정하는 과정을 설명하는 흐름도이다.
시퀀스 다이어그램 생성부(110)는 복수의 시퀀스 객체들(210), 복수의 시퀀스 객체들(210) 각각에 포함되고 해당 시퀀스 객체(210)에서 발생되는 이벤트를 각각 처리하는 적어도 하나의 이벤트 처리 노드(220) 및 복수의 시퀀스 객체들(210) 간의 플로우(230)를 포함하는 시퀀스 다이어그램(200)을 생성할 수 있다(단계S410).
시퀀스 다이어그램 디버깅 처리부(120)는 사용자 인터랙션을 통해 적어도 하나의 이벤트 처리 노드(220)에 디버깅용 종단점(240)을 결합할 수 있다(단계S420).
시퀀스 다이어그램 디버깅 처리부(120)는 상기 결합이 확인되면 시퀀스 다이어그램(200) 상에서 해당 이벤트 처리 노드(220)에 시각적인 디버깅용 종단점(240)을 표시할 수 있다(단계S430).
시퀀스 다이어그램 디버깅 처리부(120)는 상기 결합이 확인되면 해당 연관된 메소드 코드에 코드적인 디버깅용 종단점을 설정할 수 있다(단계S440).
본 발명의 일 실시예에 따르면, 시퀀스 다이어그램 기반의 통합개발장치(100)는 사용자 인터랙션을 통해 시퀀스 다이어그램(200) 상에서 디버깅용 종단점(240)을 간편하게 설정 또는 해지할 수 있다. 이에 따라, 테스트 및 디버깅 과정은 해당 시퀀스 다이어그램(200)를 기반으로 생성된 소스 코드(300)를 기초로 해당 코드적인 디버깅용 종단점(240)이 포함된 특정 메소드 코드까지 진행될 수 있다.
일 실시예에서, 시퀀스 다이어그램 기반의 통합개발장치(100)는 상기의 단계들을 통해 시퀀스 다이어그램(200) 상에 복수의 디버깅용 종단점(240)들을 결합할 수 있고, 해당 복수의 이벤트 처리 노드들(220) 각각에 시각적인 디버깅용 종단점(240)들을 표시할 수 있으며, 해당 연관된 복수의 메소드 코드들 각각에 코드적인 디버깅용 종단점들을 설정할 수 있다.
이후의 단계에서, 시퀀스 다이어그램 기반의 통합개발장치(100)는 디버깅용 종단점(240)이 검출되는 순서에 따라 복수의 디버깅용 종단점(240)들을 차례로 넘나들면서 테스트 및 디버그를 수행할 수 있다. 예를 들어, 시퀀스 다이어그램 기반의 통합개발장치(100)는 복수의 이벤트 처리 노드들(220)에 관해 복수의 디버깅용 종단점(240)들이 결합된 시퀀스 다이어그램(200)으로부터 생성된 소스 코드(300)를 실행(run)시키어 가장 먼저 디버깅용 종단점(240)이 검출되는 부분에서 실행을 멈출 수 있고, 다시 실행시키면 그 다음 검출되는 부분에서 멈출 수 있으며, 이와 같은 과정을 사용자 인터랙션을 통해 반복할 수 있다. 일 실시예에서, 디버깅용 종단점(240)이 검출되는 순서는 시퀀스 다이어그램(200) 상의 플로우(230)에서 디버깅용 종단점(240)이 결합된 순서에 해당한다.
본 발명의 일 실시예에 따르면, 시퀀스 다이어그램 기반의 통합개발장치(100)는 UML 모델의 한 종류인 시퀀스 다이어그램(200)으로부터 소스 코드(300)를 생성한 뒤, 그 작성된 모델인 시퀀스 다이어그램(200)을 기반으로 테스트 및 디버그까지 모두 수행할 수 있다.
도 5는 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치에서 시퀀스 다이어그램과 소스 코드 간의 동기화를 수행하는 과정을 설명하는 흐름도이다.
시퀀스 다이어그램 디버깅 처리부(120)는 시퀀스 다이어그램(200)과 소스 코드(300) 간의 불일치를 검출하여 시퀀스 다이어그램(200)에서 소스 코드(300)로 방향으로 순방향 동기화를 수행할 수 있다.
보다 구체적으로, 시퀀스 다이어그램 디버깅 처리부(120)는 시퀀스 다이어그램(200)과 연관된 소스 코드(300)에서 디버깅용 종단점(240)이 결합된 이벤트 처리 노드(220)와 연관된 메소드 코드에 대한 검색이 실패하였는지 여부 또는 시퀀스 다이어그램(200)과 해당 소스 코드(300) 간의 불일치를 검출할 수 있다(단계S510). 단계S510에 이어서, 시퀀스 다이어그램 디버깅 처리부(120)는 해당 불일치가 검출되면 시퀀스 다이어그램(200)과 소스 코드(300) 간의 동기화를 수행할 수 있고, 일 실시예에서, 현재의 시퀀스 다이어그램(200)을 기초로 코드적인 디버깅용 종단점 및 해당 연관된 메소드 코드 중에서 적어도 하나를 포함하는 소스 코드(300)를 다시 생성하여 동기화를 수행할 수 있다(단계S520). 일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 동기화를 수행하는 과정에서 시퀀스 다이어그램(200) 상에서 소스 코드(200)와 불일치하는 이벤트 처리 노드(220)에 해당 불일치를 상징하는 제3 아이콘을 오버레이하여 시각적으로 표시할 수 있고, 또한, 소스 코드(200) 상에서 시퀀스 다이어그램(200)와 불일치하는 해당 연관된 메소드 코드의 불일치 부분에 해당 불일치를 상징하는 제4 아이콘을 오버레이하여 시각적으로 표시할 수 있다.
소스 코드 디버깅 처리부(140)는 시퀀스 다이어그램(200)과 소스 코드(300) 간의 불일치를 검출하여 소스 코드(300)에서 시퀀스 다이어그램(200) 방향으로 역방향 동기화를 수행할 수 있다.
보다 구체적으로, 소스 코드 디버깅 처리부(140)는 디버깅용 종단점(240)이 시퀀스 다이어그램(200)과 연관된 소스 코드(300)에 설정되는 것을 검출할 수 있다(단계S530). 단계S530에 이어서, 소스 코드 디버깅 처리부(140)는 소스 코드(300)에서 디버깅용 종단점(240)과 연관된 메소드 코드를 확인할 수 있고(단계S540), 해당 이벤트 처리 노드(220)에서 디버깅용 종단점(240)의 유무를 검출할 수 있다(단계S550). 단계S550에 이어서, 소스 코드 디버깅 처리부(140)는 해당 이벤트 처리 노드(220)에서 디버깅용 종단점(240)이 검출되지 않은 경우에는 해당 이벤트 처리 노드(220)에 시각적인 디버깅용 종단점을 표시할 수 있다(단계S560).
본 발명의 일 실시예에 따르면, 시퀀스 다이어그램 기반의 통합개발장치(100)는 시퀀스 다이어그램(200)과 소스 코드(300) 간의 순방향 및 역방향 동기화 중에서 적어도 하나를 자동으로 또는 사용자의 승인을 기초로 한 반-자동으로 수행할 수 있다.
도 6은 도 1에 있는 시퀀스 다이어그램 기반의 통합개발장치의 실제 구현에 따른 디버깅용 종단점 설정 화면의 일 실시예를 나타내는 도면이다.
도 6(a)에서, 시퀀스 다이어그램 디버깅 처리부(120)는 사용자 인터랙션을 통해 시퀀스 다이어그램(200) 상에서 적어도 하나의 이벤트 처리 노드(220)에 디버깅용 종단점(240)을 설정(또는 해지)할 수 있다. 예를 들어, 시퀀스 다이어그램 디버깅 처리부(120)는 시퀀스 다이어그램(200) 상에서 특정 이벤트 처리 노드(220)에 사용자의 마우스 좌측 버튼의 입력이 수신되거나, 또는, 시퀀스 다이어그램(200) 상에서 특정 이벤트 처리 노드(220)에 사용자의 마우스 우측 버튼을 통해 연결된 제1 인터페이스(610)에서 디버깅용 종단점(240)을 설정(또는 해지)에 관한 기능을 제공하는 메뉴(예를 들어, Toggle Breakpoint)의 선택 입력이 수신되면, 해당 이벤트 처리 노드(220)에 디버깅용 종단점(240)을 설정(또는 해지)할 수 있고, 시퀀스 다이어그램(200) 상에서 해당 이벤트 처리 노드(220)의 디버깅용 종단점(240) 설정 여부에 관해 시각적으로 표시할 수 있다.
도 6(b)에서, 시퀀스 다이어그램 디버깅 처리부(120)는 해당 기능을 제공하는 별도의 제2 인터페이스(620)을 통해 사용자 인터랙션을 기초로 적어도 하나의 이벤트 처리 노드(220)에 디버깅용 종단점(240)을 설정(또는 해지)할 수 있다.
일 실시예에서, 시퀀스 다이어그램 디버깅 처리부(120)는 제1 및 제2 인터페이스(610, 620) 중에서 어떠한 인터페이스를 통해 디버깅용 종단점(240)의 설정(또는 해지)이 진행되더라도 상호 간에 동기화되도록 할 수 있다.
상기에서는 본 발명의 바람직한 실시예를 참조하여 설명하였지만, 해당 기술 분야의 숙련된 당업자는 하기의 특허 청구의 범위에 기재된 본 발명의 사상 및 영역으로부터 벗어나지 않는 범위 내에서 본 발명을 다양하게 수정 및 변경시킬 수 있음을 이해할 수 있을 것이다.
100: 시퀀스 다이어그램 기반의 통합개발장치
110: 시퀀스 다이어그램 생성부
120: 시퀀스 다이어그램 디버깅 처리부
130: 제어부 140: 소스 코드 디버깅 처리부
200: 시퀀스 다이어그램
210: 복수의 시퀀스 객체들 220: 이벤트 처리 노드들
230: 복수의 시퀀스 객체들 간의 플로우
240: 디버깅용 종단점
300: 소스 코드

Claims (10)

  1. 복수의 시퀀스 객체들, 상기 복수의 시퀀스 객체들 각각에 포함되고 해당 시퀀스 객체에서 발생되는 이벤트를 각각 처리하는 적어도 하나의 이벤트 처리 노드 및 상기 복수의 시퀀스 객체들 간의 플로우를 포함하는 시퀀스 다이어그램을 생성하는 시퀀스 다이어그램 생성부; 및
    상기 시퀀스 다이어그램 상에서 사용자 인터랙션을 통해 상기 적어도 하나의 이벤트 처리 노드에 디버깅용 종단점을 결합시키는 시퀀스 다이어그램 디버깅 처리부를 포함하되,
    상기 시퀀스 다이어그램 디버깅 처리부는
    상기 결합이 확인되면 해당 이벤트 처리 노드 및 해당 연관된 메소드 코드 모두에 상기 디버깅용 종단점을 설정하고,
    상기 해당 연관된 메소드 코드를 상기 시퀀스 다이어그램과 연관된 소스 코드에서 검색하여 상기 검색이 실패하거나 또는 상기 시퀀스 다이어그램과 상기 소스 코드 간의 복수의 이벤트들에 관해 정의한 속성 및 행위의 관점에서 상호 일치하지 않는 부분이 적어도 하나 이상 존재하면 상기 시퀀스 다이어그램과 상기 소스 코드 간의 순방향 및 역방향 동기화 중 적어도 하나를 자동으로 또는 사용자의 승인을 기초로 한 반-자동으로 수행하는 것을 특징으로 하는 시퀀스 다이어그램 기반의 통합개발장치.
  2. 제1항에 있어서, 상기 시퀀스 다이어그램 생성부는
    상기 시퀀스 다이어그램 상에서 상기 복수의 시퀀스 객체들을 순차적으로 배치하는 것을 특징으로 하는 시퀀스 다이어그램 기반의 통합개발장치.
  3. 제2항에 있어서, 상기 시퀀스 다이어그램 생성부는
    상기 복수의 시퀀스 객체들 간의 플로우를 해당 이벤트 처리 노드들 간의 방향성 연결관계를 통해 정의하는 것을 특징으로 하는 시퀀스 다이어그램 기반의 통합개발장치.
  4. 삭제
  5. 제1항에 있어서, 상기 시퀀스 다이어그램 디버깅 처리부는
    상기 시퀀스 다이어그램 상에서 상기 해당 이벤트 처리 노드에 시각적인 디버깅용 종단점을 표시하는 것을 특징으로 하는 시퀀스 다이어그램 기반의 통합개발장치.
  6. 제1항에 있어서, 상기 시퀀스 다이어그램 디버깅 처리부는
    상기 해당 연관된 메소드 코드에 코드적인 디버깅용 종단점을 설정하는 것을 특징으로 하는 시퀀스 다이어그램 기반의 통합개발장치.
  7. 삭제
  8. 제1항에 있어서,
    상기 디버깅용 종단점이 상기 시퀀스 다이어그램과 연관된 소스 코드에 설정되는 것을 검출하는 소스 코드 디버깅 처리부를 더 포함하는 것을 특징으로 하는 시퀀스 다이어그램 기반의 통합개발장치.
  9. 제8항에 있어서, 상기 소스 코드 디버깅 처리부는
    상기 소스 코드에서 상기 디버깅용 종단점과 연관된 메소드 코드를 확인하고 해당 이벤트 처리 노드에서 상기 디버깅용 종단점의 유무를 검출하는 것을 특징으로 하는 시퀀스 다이어그램 기반의 통합개발장치.
  10. 제9항에 있어서, 상기 소스 코드 디버깅 처리부는
    상기 해당 이벤트 처리 노드에서 상기 디버깅용 종단점이 검출되지 않은 경우에는 상기 해당 이벤트 처리 노드에 시각적인 디버깅용 종단점을 표시하는 것을 특징으로 하는 시퀀스 다이어그램 기반의 통합개발장치.
KR1020160142325A 2016-10-28 2016-10-28 시퀀스 다이어그램 기반의 통합개발장치 KR101913558B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160142325A KR101913558B1 (ko) 2016-10-28 2016-10-28 시퀀스 다이어그램 기반의 통합개발장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160142325A KR101913558B1 (ko) 2016-10-28 2016-10-28 시퀀스 다이어그램 기반의 통합개발장치

Publications (2)

Publication Number Publication Date
KR20180046761A KR20180046761A (ko) 2018-05-09
KR101913558B1 true KR101913558B1 (ko) 2018-10-31

Family

ID=62200840

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160142325A KR101913558B1 (ko) 2016-10-28 2016-10-28 시퀀스 다이어그램 기반의 통합개발장치

Country Status (1)

Country Link
KR (1) KR101913558B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102588597B1 (ko) 2023-08-24 2023-10-12 주식회사 리얼라이즈소프트 Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
Lief Geigera and Albert Zündorfb, Graph Based Debugging with Fujaba, Electronic Notes in Theoretical Computer Science, Volume 72, Issue 2, 2002.11.
Willi Nesensohn, Sneak Peek on our UML Debugger, http://blog.lieberlieber.com/2014/09/05/uml-debugger-sneak-peak/, 2014.9.5.

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102588597B1 (ko) 2023-08-24 2023-10-12 주식회사 리얼라이즈소프트 Uml 시퀀스 다이어그램의 대체 에디터로서 오퍼레이션 로직 디자이너를 이용하여 프로그램을 설계하는 방법 및 그를 이용한 장치

Also Published As

Publication number Publication date
KR20180046761A (ko) 2018-05-09

Similar Documents

Publication Publication Date Title
US10853232B2 (en) Adaptive system for mobile device testing
US9342237B2 (en) Automated testing of gesture-based applications
CN102667730B (zh) 设计时调试
Moreira et al. Pattern‐based GUI testing: Bridging the gap between design and quality assurance
US9292413B2 (en) Setting breakpoints in a code debugger used with a GUI object
US6668370B1 (en) Synchronous execution of object-oriented scripts and procedural code from within an interactive test facility
US9535821B1 (en) Displaying violated coding rules in source code
US20120054715A1 (en) System and method for use in replaying software application events
US8515876B2 (en) Dry-run design time environment
Costa et al. Pattern based GUI testing for mobile applications
US8904356B2 (en) Collaborative software debugging in a distributed system with multi-member variable expansion
Belli et al. Test minimization for human-computer interaction
KR20090065144A (ko) 모바일 응용 소프트웨어의 그래픽 사용자 인터페이스테스트 시스템 및 방법
KR20150003651A (ko) 컴퓨팅 시스템 및 컴퓨팅 시스템의 제어방법
KR101913558B1 (ko) 시퀀스 다이어그램 기반의 통합개발장치
US9047411B1 (en) Programming environment for executing program code despite errors and for providing error indicators
CN109240928A (zh) 一种测试方法、装置、设备及存储介质
Zeng et al. Graphical model debugger framework for embedded systems
US20090094614A1 (en) Direct synchronous input
US9298428B2 (en) Graphical user interface editor that displays live data during editing
CN104007966A (zh) 基于开发使用的应用程序界面控件信息查看方法
Canny et al. Model-based testing of post-wimp interactions using object oriented petri-nets
Poirier et al. Interactive multimodal system characterization in the internet of things context
JP6004440B2 (ja) ヘルプ・リコメンド方法およびそのコンピュータプログラム
JP5723675B2 (ja) シミュレーション装置及びシミュレーション方法

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant