KR101180784B1 - 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치 - Google Patents

컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치 Download PDF

Info

Publication number
KR101180784B1
KR101180784B1 KR1020100136928A KR20100136928A KR101180784B1 KR 101180784 B1 KR101180784 B1 KR 101180784B1 KR 1020100136928 A KR1020100136928 A KR 1020100136928A KR 20100136928 A KR20100136928 A KR 20100136928A KR 101180784 B1 KR101180784 B1 KR 101180784B1
Authority
KR
South Korea
Prior art keywords
component
log
sequence diagram
information
framework
Prior art date
Application number
KR1020100136928A
Other languages
English (en)
Other versions
KR20120074937A (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 KR1020100136928A priority Critical patent/KR101180784B1/ko
Publication of KR20120074937A publication Critical patent/KR20120074937A/ko
Application granted granted Critical
Publication of KR101180784B1 publication Critical patent/KR101180784B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/70Information retrieval; Database structures therefor; File system structures therefor of video data
    • G06F16/78Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5066Algorithms for mapping a plurality of inter-dependent sub-tasks onto a plurality of physical CPUs

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Library & Information Science (AREA)
  • Debugging And Monitoring (AREA)

Abstract

본 발명은 멀티미디어 데이터를 처리하는 컴포넌트 기반 멀티미디어 재생 프로그램의 동작 시퀀스 다이어그램을 자동으로 생성함으로써 프로그램 개발의 편의성과 효율성을 제고시킬 수 있도록 한 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치에 관한 것이다.
본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치는 복수의 컴포넌트로 이루어진 미디어 그래프에 의해 데이터를 처리하는 컴포넌트 기반 프로그램에서 미디어 그래프의 구성을 지시하는 응용 프로그램 또는 프레임워크로부터 미디어 그래프를 구성하는 컴포넌트 종류 정보를 전달받아 해당 순서 정보를 부여한 후에 컴포넌트 정보 DB에 저장하는 컴포넌트 정보 저장기; 컴포넌트로부터 컴포넌트와 응용 프로그램 또는 프레임워크 사이의 동작 로그, 컴포넌트 사이의 동작 로그 또는 컴포넌트 자체의 동작 로그와 시간 정보를 전달받아 컴포넌트 로그 DB에 저장하는 컴포넌트 로그 저장기 및 컴포넌트 정보 DB에 저장된 컴포넌트 정보와 컴포넌트 로그 DB에 저장된 동작 로그 정보에 의거하여 시퀀스 다이어그램 스크립트를 자동으로 생성하여 표시하는 시퀀스 다이어그램 생성기를 포함하여 이루어진다.

Description

컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치{apparatus for automatically creating operation sequence diagram of program based on component}
본 발명은 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치에 관한 것으로, 특히 멀티미디어 데이터를 처리하는 컴포넌트 기반 멀티미디어 재생 프로그램의 동작 시퀀스 다이어그램을 자동으로 생성하는 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치에 관한 것이다.
최근 급속도로 발전하고 있는 PC나 모바일 기기의 CPU는 대부분 멀티 코어 구조로 개발되고 있고, 소프트웨어의 구조가 갈수록 복잡해짐에 따라 컴포넌트 기반의 소프트웨어가 날로 증가하고 있다. 일예로 PC나 모바일 환경에서 다양한 운영체제(Windows, WindowMobile, Linux, Android 또는 Embedded Linux)를 지원하는 멀티미디어 프레임워크가 큰 이슈로 대두되고 있다.
잘 알려진 바와 같이, PC나 모바일 환경에서 오디오나 비디오(이미지) 단독 또는 이들이 복합되어 이루어진 멀티미디어(이하 간단히 '미디어'라고도 한다)를 처리, 예를 들어 미디어 파일의 재생, 저장 또는 전송, 실시간 DMB(Digital Multimedia Broadcasting) 수신이나 화상회의 지원 등(이하 이러한 미디어 처리 작업을 총칭하여 '렌더링'(rendering)이라 한다)하기 위해서는 사전에 미디어 그래프가 구성되어야 한다. 여기에서, '미디어 그래프'(Media Graph)라 함은 미디어 데이터 스트림을 처리하기 위해 추가되거나 연결된 한 개 이상의 컴포넌트의 집합을 말하고, '컴포넌트'(Component)라 함은 미디어 데이터 스트림을 처리하는 컴퓨터 프로그램으로서 독립적으로 기능할 수 있는 것을 말하는데, 각각의 컴포넌트는 입력 포트와 출력 포트를 선택적으로 한 개 이상씩 가질 수 있다.
한편, 'OpenMax'(정확히는 OpenMax IL(Integration Layer); 이하 OpenMax)는 Khronos Group에 의해 제안되어 산업 표준으로 자리잡아 가고 있는 컴포넌트 기반의 멀티미디어 데이터 처리 규격으로서, 임의의 컴포넌트가 해야 하는 작업과 인터페이스 등을 규정, 예를 들어 미디어 그래프 구성할 때 포맷 설정, 데이터 송수신 인터페이스 설정. 속성 설정과 연결 컴포넌트 설정 및 기타 잡다한 컴포넌트만의 고유 특성의 설정 등을 규정하고 있다.
도 1은 OpenMax 표준에 따른 멀티미디어 데이터 처리 구조를 설명하기 위한 도이다. 도 1에 도시한 바와 같이, OpenMax 표준에 따른 멀티미디어 데이터 처리 구조는 예를 들어, 상층에 응용 프로그램(Application Program; APP)(100)이 위치하고, 하층에는 한 개 이상의 컴포넌트(120)로 이루어진 미디어 그래프가 위치하며, 이들 사이에 미디어 그래프의 구성과 렌더링을 지원하는 기반 환경인 프레임워크(110)가 위치한다.
전술한 구성에서, 프레임워크(110)는 미디어의 재생을 위해 컴포넌트(120)로부터 이벤트를 수신하여 필요한 경우 이를 응응 프로그램(100)으로 전달하는 기능을 수행하고, 또한 응용 프로그램(100)도 미디어 데이터 스트림의 재생이나 탐색 등의 명령이 필요한 경우 이러한 명령을 프레임워크(110)로 전달할 수도 있는데, 이러한 명령을 전달받은 프레임워크(110)는 이러한 명령을 다시 컴포넌트(120)에 전달하여 사용자의 요구를 반영하도록 구성되어 있다.
도 2는 OpenMax 표준에 따른 MPG 파일 재생용 미디어 그래프를 예시적으로 보인 도이다. 도 2에 도시한 바와 같이, MPG(MPEG; Motion Picture Expert Group) 파일을 재생하기 위한 미디어 그래프(120)는, 예를 들어 MPG 파일로부터 데이터를 읽어서 분석하기 위한 MPG 파일을 분석하기 위한 파서(Parser) 컴포넌트(122), 분석된 MPG 비디오 파일과 오디오 파일을 각각 디코딩하는 비디오 디코더 컴포넌트(123)와 오디오 디코더 컴포넌트(126), 비디오 디코더 컴포넌트(123)에 의해 디코딩된 비디오 신호의 색상을 변환하는 컬러 변환기 컴포넌트(124), 컬러 변환기 컴포넌트(124)에 의해 컬러가 변환된 비디오 신호를 재생하는 비디오 렌더러 컴포넌트(125) 및 오디오 디코더 컴포넌트(126)에 의해 디코딩된 오디오 신호를 재생하는 오디오 렌더러 컴포넌트(127)를 포함하여 이루어질 수 있다.
도면에서 미설명 부호 121은 클록 컴포넌트로서 미디어 그래프(120)에서 동기를 맞추는 역할을 담당하는데, 여기에 연결된 컴포넌트, 예를 들어 비디오 렌더러 컴포넌트(125)와 오디오 렌더러 컴포넌트(127)는 클록 컴포넌트(121)에서 제공하는 시간을 근거로 자기의 동작을 결정하거나 예약 작업 등을 수행할 수 있다.
한편, 멀티미디어 재생 프로그램과 같은 컴포넌트 기반 프로그램을 개발하는 과정에서는 오류가 발생한 컴포넌트와 오류의 종류 등을 파악하기 위한 디버깅 작업이 반드시 요구되는바, 종래에는 마이크로소프트사의 비주얼 스튜디오 디버거 등을 이용하여 디버깅 작업을 수행하여 왔다.
종래 디버거를 이용해서 컴포넌트 기반 멀티미디어 재생 프로그램 등을 분석함에 있어서는 미디어 그래프를 구성하는 컴포넌트들을 하나씩 정지시킨 상태에서 임의 컴포넌트의 쓰레드를 실행시켜서 그 동작 상태를 분석하는 방법이 주로 사용된다.
그러나 이러한 방법은 미디어 그래프가 단일 쓰레드에 의해 동작하는 경우에는 별 문제가 되지 않으나 각각의 컴포넌트마다 독립적으로 쓰레드를 사용하는 멀티 쓰레드 환경에서는 각각의 컴포넌트가 개별적으로 쓰레드를 수행하기 때문에 그 동작 상태를 파악하기가 매우 어려울 뿐만 아니라 많은 시간이 소요되는 문제점이 있다.
또한 이 방법에 따르면, 다른 컴포넌트의 동작을 정지시킨 상태에서 해당 컴포넌트의 동작 상태를 분석하기 때문에 디버깅 상황과 멀티미디어 재생 프로그램의 실제 동작 상황과는 다른 상황이 발생할 수 있고, 이에 따라 디버깅 수행 시에도 문제가 동일하게 재현되지 않을 수 있다는 문제점이 있다.
본 발명은 전술한 문제점을 해결하기 위해 안출된 것으로서, 멀티미디어 데이터를 처리하는 컴포넌트 기반 멀티미디어 재생 프로그램의 동작 시퀀스 다이어그램을 자동으로 생성함으로써 프로그램 개발의 편의성과 효율성을 제고시킬 수 있도록 한 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치를 제공함을 목적으로 한다.
전술한 목적을 달성하기 위한 본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치는 복수의 컴포넌트로 이루어진 미디어 그래프에 의해 데이터를 처리하는 컴포넌트 기반 프로그램에서 미디어 그래프의 구성을 지시하는 응용 프로그램 또는 프레임워크로부터 미디어 그래프를 구성하는 컴포넌트 종류 정보를 전달받아 해당 순서 정보를 부여한 후에 컴포넌트 정보 DB에 저장하는 컴포넌트 정보 저장기; 컴포넌트로부터 컴포넌트와 응용 프로그램 또는 프레임워크 사이의 동작 로그, 컴포넌트 사이의 동작 로그 또는 컴포넌트 자체의 동작 로그와 시간 정보를 전달받아 컴포넌트 로그 DB에 저장하는 컴포넌트 로그 저장기 및 컴포넌트 정보 DB에 저장된 컴포넌트 정보와 컴포넌트 로그 DB에 저장된 동작 로그 정보에 의거하여 시퀀스 다이어그램 스크립트를 자동으로 생성하여 표시하는 시퀀스 다이어그램 생성기를 포함하여 이루어진다.
전술한 구성에서, 상기 장치는 컴포넌트 기반 프로그램의 응용 프로그램 또는 프레임워크에 내장되거나 컴포넌트 기반 프로그램 외부의 시퀀스 다이어그램 서버에 구축될 수 있다.
상기 동작 로그 정보는 동작 요청 컴포넌트, 요청받는 컴포넌트의 종류와 요청 시간 및 동작 로그의 종류를 포함하여 이루어질 수 있다.
응용 프로그램 또는 프레임워크에는 컴포넌트 등록 함수를 구비한 라이브러리가 구비된 것을 특징으로 한다.
각각의 컴포넌트에는 컴포넌트 로그 DB를 초기화하는 로그 라이브러리 초기화 함수, 로그 설정 함수, 로그 등록 함수 및 로그 라이브러리 종료 함수를 구비한 로그 라이브러리가 구비된 것을 특징으로 한다.
본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치에 따르면, 컴포넌트 기반 프로그램을 개발하거나 디버깅할 때 응용 프로그램이나 프레임워크 및 컴포넌트 사이에서의 일련의 상호 협력 과정을 시퀀스 다이어그램으로 표시함으로써 문제점을 보다 효율적으로 파악하여 분석할 수 있도록 지원할 수 있다.
도 1은 OpenMax 표준에 따른 멀티미디어 데이터 처리 구조를 설명하기 위한 도.
도 2는 OpenMax 표준에 따른 MPG 파일 재생용 미디어 그래프를 예시적으로 보인 도.
도 3은 본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치의 일 실시예에 따른 구성도.
도 4a 및 도 4b는 본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치에 따라 자동으로 생성된 시퀀스 다이어그램의 예를 보인 도.
이하에는 첨부한 도면을 참조하여 본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치의 바람직한 실시예에 대해 상세하게 설명하는데, 이하에서는 컴포넌트 기반 프로그램으로 멀티미디어 재생 프로그램을 예로 들어 설명을 진행한다.
도 3은 본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치의 일 실시예에 따른 구성도이다. 도 3에 도시한 바와 같이 본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치는 크게 컴포넌트 기반 멀티미디어 재생 프로그램(200)과 시퀀스 다이어그램 서버(300)를 포함하여 이루어질 수 있다.
전술한 구성에서, 컴포넌트 기반 멀티미디어 재생 프로그램(200)의 기능적인 구성은 도 1에서 설명한 바와 같이 상층에 응용 프로그램(Application Program; APP)(210)이 위치하고, 하층에는 미디어 그래프를 구성하는 다수의 컴포넌트(230)가 위치하며, 이들 사이에 미디어 그래프의 구성과 렌더링을 지원하는 기반 환경인 프레임워크(220)가 위치할 수 있다.
전술한 구성에서, 프레임워크(220)는 미디어의 재생을 위해 각 컴포넌트(230)로부터 이벤트를 수신하여 필요한 경우 이를 응응 프로그램(210)으로 전달하는 기능을 수행하고, 또한 응용 프로그램(210)도 미디어 데이터 스트림의 재생이나 탐색 등의 명령이 필요한 경우 이러한 명령을 프레임워크(220)로 전달할 수도 있는데, 이러한 명령을 전달받은 프레임워크(220)는 이러한 명령을 다시 컴포넌트(230)에 전달하여 사용자의 요구를 반영하도록 구성될 수 있다.
한편, 본 발명에서는 시퀀스 다이어그램의 자동 생성을 위해 프레임워크(220)에 미디어 그래프를 구성하는 컴포넌트를 등록하는 로그(등록) 라이브러리(222)가 구비될 수 있고, 나아가 각각의 컴포넌트(230)에는 컴포넌트(230) 자체, 컴포넌트(230)들 사이 또는 컴포넌트(230)와 프레임워크(220)나 응용 프로그램(210) 사이의 동작 로그를 처리하는 로그 라이브러리(232)가 구비될 수 있다.
이 경우에 각각의 로그 라이브러리(222),(232)를 초기화하는 로그 라이브러리 초기화 함수는, 예를 들어 "int SequenceLogInit(void)"과 같이 구현될 수 있다. 프레임워크(220)의 로그 라이브러리(222)에 구비된 컴포넌트 등록 함수는. 예를 들어 "int SequenceLogRegisterComponent(char* name)"과 같이 구현될 수 있다.
다음으로, 각 컴포넌트에 구비된 로그 라이브러리(232)에서 로그 설정 함수는, 예를 들어 "int SequenceLogConfigLog(char* name, int logconfig)"와 같이 구현될 수 있는데, 각 컴포넌트(230)가 남길 로그의 종류로는 예를 들어 "command", "response" 또는 "state change" 등이 있을 수 있다.
각 컴포넌트(230)의 로그 라이브러리(232)에 구비된 로그 등록 함수는, 예를 들어 "int SequenceLogRegisterLog(int time, char* srcname, char* targetname, char* message, char* additionalinfo)로 구현될 수 있고, 로그 라이브러리를 종료하는 로그 라이브러리 종료 함수는 예를 들어 "int SequenceLogExit(void)"로 구현될 수 있을 것이다.
아래의 표 1은 이러한 로그 라이브러리 함수의 프로토 타입(proto type)을 정리한 표이다.
함수의 종류 프로토 타입(예시)
로그 라이브러리 초기화 함수 int SequenceLogInit(void)
컴포넌트 등록 함수 int SequenceLogRegisterComponent(char* name)
로그 설정 함수 int SequenceLogConfigLog(char* name, int logconfig)
로그 등록 함수 int SequenceLogRegisterLog(int time, char* srcname, char* targetname, char* message, char* additionalinfo)
로그 라이브러리 종료 함수 int SequenceLogExit(void)
다음으로, 시퀀스 다이어그램 서버(300)는 멀티미디어 재생 프로그램(200)의 프레임워크(220)가 제공하는, 미디어 그래프를 구성하는 각 컴포넌트(230)에 대한 정보, 즉 각 컴포넌트(230)에 대한 종류 정보를 수집한 후에 일련번호(시퀀스 다이어그램의 일련번호)를 부여하여 컴포넌트 정보 DB(312)에 저장하는 컴포넌트 정보 저장기(310), 각 컴포넌트(230)가 제공하는 컴포넌트(230)와 프레임워크(220) 또는 응용 프로그램(210) 사이의 동작 로그와 시간, 컴포넌트(230) 사이의 동작 로그와 시간 또는 컴포넌트(230) 자체적으로 수행되는 동작 로그, 예를 들어 상태 변경 등의 동작 로그와 시간 정보를 수집한 후에 컴포넌트 로그 DB(322)에 저장하는 컴포넌트 로그 저장기(320) 및 컴포넌트 정보 DB(312)에 저장된 등록 컴포넌트 정보와 컴포넌트 로그 DB(322)에 저장된 동작 로그 정보를 기반으로 시퀀스 다이어그램을 자동으로 생성하는 시퀀스 다이어그램 생성기(330)를 포함하여 이루어질 수 있다. 여기에서 프레임워크(220)는 각 컴포넌트(230)에 동작 로그를 저장하도록 지시하고, 이러한 지시에 따라 각 컴포넌트(230)는 컴포넌트 로그 저장기(320)에 동작 로그를 전달함으로써 동작 로그를 저장할 수 있을 것이다.
한편, 이와 같이 시퀀스 다이어그램 서버(300)를 멀티미디어 재생 프로그램(200)의 외부에 구축하면, 비록 멀티미디어 재생 프로그램(200)이 동작 중에 다운되더라도 컴포넌트 정보와 동작 로그에 대한 정보를 온전히 보존할 수 있기 때문에 이에 의해 자동으로 시퀀스 다이어그램을 생성할 수가 있다.
시퀀스 다이어그램 서버(300)의 각 구성요소의 동작을 보다 구체적으로 설명하면, 멀티미디어 재생 프로그램(200), 보다 구체적으로 프레임워크(220)는 미디어 그래프를 구성할 컴포넌트(230)를 조합하면서 자체의 로그 라이브러리(222)에 구비된 컴포넌트 등록 함수에 의해 해당 컴포넌트의 종류 정보를 컴포넌트 정보 저장기(310)에 전달하는데, 이후에 컴포넌트 정보 저장기(310)는 이렇게 전달받은 컴포넌트 종류 정보에 대한 일련번호(이하 이 둘을 '컴포넌트 정보'라 한다)를 부여하여 생성된 컴포넌트 정보를 컴포넌트 정보 DB(312)에 저장한다. 프레임워크(220)는 미디어 그래프의 구성이 해체되는 즉시 자체의 로그 라이브러리(222)에 구비된 로그 초기화 함수를 호출하여 컴포넌트 정보 저장기(310)에 컴포넌트 정보 DB(312)를 초기화할 것을 지시하는데, 이에 따라 컴포넌트 정보 저장기(310)는 컴포넌트 정보 DB(312)를 초기화시킨다.
다음으로 로그 저장 과정을 살펴보면, 미디어 그래프를 구성하는 임의의 컴포넌트가 다른 컴포넌트에게 특정 동작을 요청하면, 해당 컴포넌트는 자체의 로그 라이브러리에 구비된 로그 설정 함수와 로그 등록 함수를 호출하여 컴포넌트 로그 저장기(320)에 해당 동작 로그의 저장을 지시하는데, 이에 따라 컴포넌트 로그 저장기(320)는 로그 동작을 요청하는 컴포넌트의 번호와 요청받는 컴포넌트의 번호 및 요청의 종류 정보 등으로 이루어진 동작 로그 정보를 컴포넌트 로그 DB(322)에 저장한다.
여기에서 미디어 그래프를 구성하는 임의의 컴포넌트가 스스로 상태를 변경하는 경우에도 해당 컴포넌트는 로그 라이브러리에 구비된 로그 설정 함수와 로그 등록 함수를 호출하여 컴포넌트 로그 저장기(320)에 해당 동작 로그의 저장을 지시하는데, 이 경우에는 요청 컴포넌트의 번호와 요청받는 컴포넌트의 번호가 동일한 값을 갖게 될 것이다. 그리고 이러한 과정은 미디어 그래프가 동작하는 전 과정, 즉 멀티미디어 데이터의 재생이 종료되는 전 과정 동안 반복적으로 수행될 것이다.
컴포넌트 로그 DB(322)에 저장되는 동작 로그 정보의 포맷은, 예를 들어 아래의 표 2와 같이 구현될 수 있다.
포맷 [TIME(YYYYMMDDHHMMSS)]:[SRCNAME]:[TARGETNAME]:[MESSAGENAME]:[ADDITIONALINFO]
예시 1 20101222101005:framework:videodecoder:sendcommand:portenable
예시 2 20101222101010:videodecoder:framework:response:portenablesuccess
예시 3 20101222101010:videodecoder:videodecoder:statechage:idletorun
표 2의 동작 로그 정보의 포맷에서 "TIME"은 해당 로그의 발생 시간을 나타내는데, "YYYYMMDDHHMMSS"의 형식으로 이루어질 수 있다. "SRCNAME"는 동작을 요청한 컴포넌트를 나타내고, "TARGETNAME"는 동작을 요청받은 컴포넌트를 나타낸다. "MESSAGENAME"는 로그의 종류를 나타내고, "ADDITIONALINFO"는 해당 로그의 부가적인 정보를 나타낸다.
다음으로 다이어그램 생성기(330)는 컴포넌트 정보 DB(312)에 저장된 컴포넌트 정보에 의거하여 일련번호 순서대로 시퀀스 다이어그램에 표시할 컴포넌트 리스트를 생성하고 컴포넌트 로그 DB(322)에 저장되어 있는 동작 로그 정보, 즉 프레임워크(220) 또는 컴포넌트(230)의 일련번호와 요청 및 응답 종류 정보에 의거하여 시퀀스 다이어그램 스크립트(332)를 생성한 후에 이에 의거하여 시퀀스 다이어그램 뷰어(334)을 동작시킴으로써 시퀀스 다이어그램, 예를 들어 UML(Unified Modeling Language)로 된 시퀀스 다이어그램을 자동적으로 생성할 수 있다.
아래의 표 3은 시퀀스 다이어그램 생성기(334)에 의해 생성된 시퀀스 다이어그램 스크립트 포맷을 보인 표이다.
[COMPONENTINFO] FRAMEWORK=1|clock=2|container_demuxer.3gp=3|video_decoder=4|iv_processor.ffmpeg=5|iv_renderer.fbdev=6|audio_decoder=7|audio_renderer.alsa=8
[LOGINFO]
20101222101005:framework:videodecoder:sendcommand:portenable
20101222101010:videodecoder:framework:response:portenablesuccess
20101222101010:videodecoder:videodecoder:statechage:idletorun
도 4a 및 도 4b는 본 발명의 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치에 따라 자동으로 생성된 시퀀스 다이어그램의 예를 보인 도인바, 도 2에 도시한 미디어 그래프의 동작 과정에서 컴포넌트 자체 또는 프레임워크와 컴포넌트 사이 또는 컴포넌트들 사이의 동작과 상태 변화 부분만을 추출하여 도시한 것이다.
본 발명은 전술한 실시예에 국한되지 않고 본 발명의 기술사상이 허용하는 범위 내에서 다양하게 변형하여 실시할 수가 있다.
예를 들어 도 3의 실시예에서는 시퀀스 다이어그램 서버가 컴포넌트 기반 프로그램의 외부에 설치되어 있는 것으로 설명을 진행하였으나 컴포넌트 기반 프로그램과 일체로 구현, 예를 들어 시퀀스 다이어그램 서버의 기능이 프레임워크에 내장될 수도 있다. 나아가, 컴포넌트 기반 프로그램에서 프레임워크를 개재시킴이 없이 응용 프로그램이 직접 미디어 그래프의 구성을 제어하는 경우에는 시퀀스 다이어그램 서버의 기능이 응용 프로그램에 내장될 수 있을 것이다.
나아가, 로그 라이브러리가 프레임워크에만 구비된 상태에서 프레임워크가 이러한 로그 라이브러리를 통해 상기한 동작 로그를 수집한 후에 바로 컴포넌트 로그 저장기(320)에 전달하는 방식으로 구성이 변경될 수도 있을 것이다. 또한 상기 일련번호 대신에 알파벳 등과 같이 순서를 파악할 수 있는 다른 문자나 기호가 사용될 수도 있을 것인바, 이들을 총칭하여 '순서 정보'라 한다.
200: 컴포넌트 기반 프로그램, 210: 응용 프로그램,
220: 프레임워크, 222: 로그 라이브러리,
230: 컴포넌트, 232: 로그 라이브러리,
300: 시퀀스 다이어그램 서버, 310: 컴포넌트 정보 저장기,
312: 컴포넌트 정보 DB, 320: 컴포넌트 로그 저장기,
322: 컴포넌트 로그 DB, 330: 시퀀스 다이어그램 생성기,
332: 시퀀스 다이어그램 스크립트, 334: 시퀀스 다이어그램 뷰어

Claims (5)

  1. 복수의 컴포넌트로 이루어진 미디어 그래프에 의해 데이터를 처리하는 컴포넌트 기반 프로그램에서 미디어 그래프의 구성을 지시하는 응용 프로그램 또는 프레임워크로부터 미디어 그래프를 구성하는 컴포넌트 종류 정보를 전달받아 해당 순서 정보를 부여한 후에 컴포넌트 정보 DB에 저장하는 컴포넌트 정보 저장기;
    컴포넌트로부터 컴포넌트와 응용 프로그램 또는 프레임워크 사이의 동작 로그, 컴포넌트 사이의 동작 로그 또는 컴포넌트 자체의 동작 로그와 시간 정보를 전달받아 컴포넌트 로그 DB에 저장하는 컴포넌트 로그 저장기 및
    컴포넌트 정보 DB에 저장된 컴포넌트 정보와 컴포넌트 로그 DB에 저장된 동작 로그 정보에 의거하여 시퀀스 다이어그램 스크립트를 자동으로 생성하여 표시하는 시퀀스 다이어그램 생성기를 포함하여 이루어진 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치.
  2. 제 1 항에 있어서,
    상기 장치는 컴포넌트 기반 프로그램의 응용 프로그램 또는 프레임워크에 내장되거나 컴포넌트 기반 프로그램 외부의 시퀀스 다이어그램 서버에 구축되는 것을 특징으로 하는 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치.
  3. 제 2 항에 있어서,
    상기 동작 로그 정보는 동작 요청 컴포넌트, 요청받는 컴포넌트의 종류와 요청 시간 및 동작 로그의 종류를 포함하여 이루어진 것을 특징으로 하는 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치.
  4. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    응용 프로그램 또는 프레임워크에는 컴포넌트 등록 함수를 구비한 라이브러리가 구비된 것을 특징으로 하는 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치.
  5. 제 1 항 내지 제 3 항 중 어느 한 항에 있어서,
    각각의 컴포넌트에는 컴포넌트 로그 DB를 초기화하는 로그 라이브러리 초기화 함수, 로그 설정 함수, 로그 등록 함수 및 로그 라이브러리 종료 함수를 구비한 로그 라이브러리가 구비된 것을 특징으로 하는 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치.
KR1020100136928A 2010-12-28 2010-12-28 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치 KR101180784B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020100136928A KR101180784B1 (ko) 2010-12-28 2010-12-28 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020100136928A KR101180784B1 (ko) 2010-12-28 2010-12-28 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치

Publications (2)

Publication Number Publication Date
KR20120074937A KR20120074937A (ko) 2012-07-06
KR101180784B1 true KR101180784B1 (ko) 2012-09-07

Family

ID=46708995

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020100136928A KR101180784B1 (ko) 2010-12-28 2010-12-28 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치

Country Status (1)

Country Link
KR (1) KR101180784B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101488188B1 (ko) * 2013-04-19 2015-02-06 서강대학교산학협력단 시퀀스 다이어그램의 생성 방법 및 시스템

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307654A1 (en) 2008-06-06 2009-12-10 Hiroshi Ishikawa System, method and computer program for generating sequence diagram

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090307654A1 (en) 2008-06-06 2009-12-10 Hiroshi Ishikawa System, method and computer program for generating sequence diagram

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
논문1:대한전자공학회

Also Published As

Publication number Publication date
KR20120074937A (ko) 2012-07-06

Similar Documents

Publication Publication Date Title
CN113542757B (zh) 云应用的图像传输方法、装置、服务器及存储介质
US7286132B2 (en) System and methods for using graphics hardware for real time two and three dimensional, single definition, and high definition video effects
US9620173B1 (en) Automated intelligent visualization of data through text and graphics
WO2019071680A1 (zh) 一种插件加载的方法和装置
CN112929681B (zh) 视频流图像渲染方法、装置、计算机设备及存储介质
TWI495330B (zh) 有效地串流數位視訊的系統及方法
CN112929680B (zh) 直播间图像渲染方法、装置、计算机设备及存储介质
EP3905663A1 (en) Multi-subtitle display method, intelligent terminal and storage medium
WO2019071678A1 (zh) 一种直播的方法和装置
CN114040251A (zh) 音视频播放方法、系统、存储介质及计算机程序产品
CN111107394A (zh) 一种跨平台集成视频流的系统及方法
CN101442627A (zh) 一种用于对等计算机顶盒的播放器的控制方法
KR100788698B1 (ko) 디스플레이 서비스 방법 및 그 방법을 수행할 수 있는네트워크 디바이스와 저장 매체
KR101180784B1 (ko) 컴포넌트 기반 프로그램의 동작 시퀀스 다이어그램 자동 생성 장치
CN103139610B (zh) 集群视频同步播放的方法和装置
US7882510B2 (en) Demultiplexer application programming interface
WO2021217467A1 (zh) 一种智能摄像头的测试方法及装置
CN114679550A (zh) 通用录制的装置及其方法
CN105791852A (zh) 一种基于led异步控制的多媒体数据处理方法
CN111866508A (zh) 视频处理方法、装置、介质及电子设备
KR100719416B1 (ko) 데이터 처리 장치 및 데이터 처리 방법
CN100466700C (zh) 在数字电视接收机上呈现信息的方法
CN116708867B (zh) 一种直播数据处理方法、装置、设备及存储介质
CN114071225B (zh) 一种帧动画播放方法、装置和系统
JP2008293121A (ja) デバッグ装置、デバッグシステム、及びデバッグ方法

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee