KR100617297B1 - 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법 - Google Patents

복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법 Download PDF

Info

Publication number
KR100617297B1
KR100617297B1 KR1020040101006A KR20040101006A KR100617297B1 KR 100617297 B1 KR100617297 B1 KR 100617297B1 KR 1020040101006 A KR1020040101006 A KR 1020040101006A KR 20040101006 A KR20040101006 A KR 20040101006A KR 100617297 B1 KR100617297 B1 KR 100617297B1
Authority
KR
South Korea
Prior art keywords
library
shared library
applications
shared
common
Prior art date
Application number
KR1020040101006A
Other languages
English (en)
Other versions
KR20060062240A (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 KR1020040101006A priority Critical patent/KR100617297B1/ko
Publication of KR20060062240A publication Critical patent/KR20060062240A/ko
Application granted granted Critical
Publication of KR100617297B1 publication Critical patent/KR100617297B1/ko

Links

Images

Classifications

    • 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

Abstract

본 발명은 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법을 개시한다.
본 발명에 의하면, 응용 프로그램들이 사용하는 공유 라이브러리를 재구성하여 최소 용량의 공유 라이브러리로 재구성하는 방법에 있어서, 응용 프로그램들이 사용하는 공유 라이브러리를 분석하여 재조합이 가능하면서도 분리 가능한 단위로 세분화하고, 세분화된 라이브러리 중에서 실제로 각 응용 프로그램들이 사용하는 부분을 결정하며, 실제로 사용되는 세분화된 라이브러리들을 하나의 라이브러리로 재구성하기 위한 링크 정보를 구성하여, 세분화된 라이브러리들을 링크 정보에 따라 재구성하여 경량화된 공유 라이브러리를 생성하여, 예를 들면 임베디드 소프트웨어를 개발할 때 메모리 사용의 제한을 덜 받게 되고 일반 응용 프로그램을 개발하듯이 임베디드 시스템용 응용 프로그램을 개발할 수 있으며, 임베디드 시스템의 메모리 제한 부분을 해결하여 좀 더 저렴하고 간편하게 시스템을 구성하는 효과가 있다.

Description

복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법 {Method for creating lightweight shared library for plural application programs}
도 1은 본 발명에 따른 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법의 흐름의 예를 도시한 것이다.
도 2는 본 발명에 따라 공유 라이브러리를 분석하는 흐름의 일 예를 도시한 것이다.
도 3은 도 2에 따라 분석된 결과를 이용해서 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법의 흐름의 예를 도시한 것이다.
도 4는 종래의 공유 라이브러리를 사용하는 시스템의 구성을 블록으로 도시한 것이다.
도 5는 본 발명에 따라 생성된 경량 공유 라이브러리를 사용하는 시스템의 구성을 블록으로 도시한 것이다.
본 발명은 응용 프로그램에 관한 것으로서, 여러 개의 응용프로그램들이 사 용하는 라이브러리를 생성하는 방법에 관한 것이다.
현재 일반 데스크탑 시스템이나 임베디드 시스템에서의 일반적인 공유 라이브러리들은 해당 라이브러리가 제공하는 모든 기능들을 포함하고 있으며, 2~3개의 크기가 작은 응용 프로그램을 수행하기 위하여서도 전체 라이브러리를 프로그램 코드에 혹은 컴파일 과정에서 삽입하여 사용하고 있다. 따라서 규모가 작은 응용 프로그램들을 실행할 때에도 시스템의 프로그램들이 운용되는 메모리의 용량을 필요없이 많이 차지하게 된다.
그리고 공유 라이브러리를 특정 시스템이나 메모리 용량에 맞게 그 내용을 수정하기가 쉽지가 않다. 그러므로 시스템의 사양을 정하고 그 시스템의 사양에 맞추어 사용될 공유 라이브러리를 결정하기보다는 그 반대로 사용할 공유 라이브러리에 맞추어 시스템의 사양 특히 메모리의 크기를 결정하기도 한다.
상기와 같이 시스템에서 응용 프로그램들 동작에 필요한 메모리의 용량을 꼭 필요하지 않은 공유 라이브러리의 내용의 일부가 차지하여 메모리 용량의 낭비와 시스템의 동작이나 운용이 원활하지 않게 되는 문제가 있다.
본 발명이 이루고자 하는 기술적인 과제는, 상기의 문제점들을 해결하기 위해, 이미 생성된 응용 프로그램들부터 실제 사용되는 라이브러리들만을 추출하여 해당 시스템에 최적화되어 최소한의 크기로 경량화된 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법을 제공하는 데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 의한, 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법은, 응용 프로그램들이 사용하는 공유 라이브러리를 재구성하여 최소 용량의 공유 라이브러리로 재구성하는 방법에 있어서, (a) 상기 응용 프로그램들이 사용하는 공유 라이브러리를 분석하여 재조합이 가능하면서도 분리 가능한 단위로 세분화하는 단계; (b) 상기 세분화된 라이브러리 중에서 실제로 상기 각 응용 프로그램들이 사용하는 부분을 결정하는 단계; (c) 상기 (b) 단계에서 실제로 사용되는 세분화된 라이브러리들을 하나의 라이브러리로 재구성하기 위한 링크 정보를 구성하는 단계; 및 (d) 상기 (b) 단계에서 결정된 세분화된 라이브러리들을 상기 (c) 단계의 링크 정보에 따라 재구성하여 경량화된 공유 라이브러리를 생성하는 단계;를 포함하는 것을 특징으로 한다.
상기 (b) 단계에서 공유 라이브러리를 사용하는 상기 응용 프로그램이 실행될 때에 참조하는 공유 라이브러리의 구성 요소를 찾아서 그 구성 요소를 실제 사용하는 부분으로 결정하는 것이 바람직하다.
그리고 상기 (b) 단계 및 (c) 단계에서 각 응용 프로그램별로 공유 라이브러리를 분석하여 실제 사용되는 응용 라이브러리의 객체 정보들을 세분화된 객체 단위로 정보를 추출하여 링크 정보를 구성하는 것이 바람직하다.
또한 상기 (d) 단계에서 재구성된 공유 라이브러리는 복수의 응용 프로그램들에 공통된 최소 집합의 세분화된 라이브러리만을 포함하여 생성된 것이 바람직하다.
이하에서 첨부된 도면을 참조하여 본 발명의 바람직한 일 실시예를 상세히 설명한다.
도 1은 본 발명에 따른 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법의 흐름의 예를 도시한 것이다.
응용 프로그램들이 사용하는 공유 라이브러리를 재구성하여 최소 용량의 공유 라이브러리로 재구성하는 이 방법은, 상기 응용 프로그램들이 사용하는 공유 라이브러리를 분석하여 재조합이 가능하면서도 분리 가능한 단위로 세분화하고(100 단계), 세분화된 라이브러리 중에서 실제로 상기 각 응용 프로그램들이 사용하는 부분을 결정하며(110 단계), 110 단계에서 실제로 사용되는 세분화된 라이브러리들을 하나의 라이브러리로 재구성하기 위한 링크 정보를 구성하며(120 단계), 110 단계에서 결정된 세분화된 라이브러리들을 120 단계의 링크 정보에 따라 재구성하여 경량화된 공유 라이브러리를 생성한다(130 단계).
도 2는 본 발명에 따라 공유 라이브러리를 분석하는 흐름의 일 예를 도시한 것이다.
기존의 공유 라이브러리 파일들을 읽어 들여 분석하고(200 단계), 공유 라이브러리를 분리하여 재구성 가능한 단위로 세분화하며(210 단계), 세분화된 오브젝트들을 재구성하기 위한 링크 옵션 정보를 구성한다(220 단계).
일반적인 라이브러리 파일들은 오브젝트(object) 혹은 클래스(class) 단위로 구성되어 있다. 즉 고유의 기능을 가진 각 오브젝트들이 모여서 하나의 라이브러리를 구성한다. 이 오브젝트들은 하나의 파일이나 여러 개의 파일들로 구성될 수 있다. 210 단계에서는 이와 같은 공유 라이브러리를 분리하며, 이와 같은 분리는 라 이브러리를 구성하는 오브젝트 단위로 분리한다. 이때에 너무 세분화된 분리를 할 경우에는 각 오브젝트를 결합할 정보까지도 분리될 수 있으므로 재구성을 위한 결합 정보를 포함하는 기본단위로 분리한다.
상기와 같이 분리된 각 오브젝트들에 따라서 각 오브젝트를 다시 결합하기 위한 링크 정보가 달라질 수 있다. 예를 들면 이미지 관련 오브젝트는 이미지 관련 기본 라이브러리를 링크 시에 포함시켜야 하고, 텍스트(text) 관련 오브젝트들에서 Unicode, TrueType Font 등의 기능을 지원하기 위하여서는 각 기능별 해당 기본 라이브러리들을 링크 시에 포함시켜야 한다. 따라서 220 단계에서 세분화된 오브젝트의 속성에 따라서 그리고 그런 속성을 가진 오브젝트가 라이브러리에 포함되느냐에 따라서 링크 옵션을 다르게 설정한다.
그리고 이와 같은 210 및 220 단계들의 정보를 데이터베이스화한다(230 단계).
도 3은 도 2에 따라 분석된 결과를 이용해서 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법의 흐름의 예를 도시한 것이다. 이를 통해 도 2와 같은 절차를 통해 분석된 공유 라이브러리를 이용하여 개발된 응용 프로그램들만의 경량 고유 라이브러리를 생성한다.
복수개의 응용 프로그램을 입력으로 받아들이며(300 단계), 개별 응용 프로그램들의 내부 구조를 분석하여 해당 응용 프로그램에서 실제로 사용되고 있는 공유 라이브러리들의 오브젝트 정보들을 추출한다(310 단계).
응용 프로그램에서 실제 사용하는 오브젝트들의 정보를 추출하기 위하여서는 해당 응용 프로그램이 정상적으로 동작하는 동안에 해당 응용 프로그램의 내부 정보를 공유할 수 있어야 한다. 이를 위해서 310 단계에서 공유 라이브러리들의 오브젝트 정보를 추출하는 프로그램은 정보를 추출할 대상인 응용 프로그램의 서브 프로그램 형태로 동작해야 한다. 일반적인 예를 들면 플러그 인(plug-in)이나 모듈 프로그램의 형태이다. 이러한 형태로 추출 프로그램이 동작을 하면 응용 프로그램의 내부 정보를 공유한다. 따라서 이 때에 응용 프로그램들은 실제 사용하고 있는 오브젝트들의 정보를 가지고 있게 되고 추출 프로그램은 이들 정보를 실시간 모니터링하여 필요한 오브젝트 정보를 추출할 수 있다.
하나 이상의 응용 프로그램을 분석하기 위해 분석할 응용 프로그램들이 더 있는가를 확인하고(320 단계), 각각 분석된 정보들을 하나로 모아서 최소 집합을 구성하여(330 단계), 최소 집합으로 구성된 새로운 공유 라이브러리를 생성한다(340 단계).
330 단계에서 최소 집합을 구성하는 것은 상기에 설명된 추출 프로그램에서 생성된 각각의 응용 프로그램들에 대한 오브젝트 정보를 서로 비교하여 기능이 겹치는 부분만을 제외하는 방식으로 최소 집합을 구성하는 것이다.
330 단계에서 이런 방식으로 모아진 최소 집합의 오브젝트 정보를 이용하여 340 단계에서 각 오브젝트에 필요한 파일들을 모아서 새로운 라이브러리를 구성한다. 이 경우 일반적인 라이브러리 구성방법처럼 링크 시에 필요한 옵션들과 오브젝트 파일들과 필요에 따라서는 이미 구성되어져 있는 다른 공유 라이브러리를 입력하여 340 단계에서 링크 프로그램을 실행시킨다. 이때에 실행되는 링크 프로그램은 통상적인 링크 프로그램을 사용할 수 있다. 다만 링크되는 대상인 오브젝트들이 본 발명에 따라 추출되고 준비된 것이다.
상기에 기재된 설명과 같이 본 발명에 의한 경량 공유 라이브러리 생성 방법은 크게 두 가지 부분으로 나눌 수가 있다.
첫 번째는 도 2와 같이 기존의 공유 라이브러리를 분석하여 원하는 부분만으로 재조합이 가능하도록 세분화하고 재조합할 수 있도록 구성하는 방법이다.
두 번째는 공유 라이브러리를 이용하여 개발된 응용 프로그램을 분석하여 해당 응용 프로그램에서 사용되고 있는 공유 라이브러리의 객체 정보들을 첫 번째 방식으로 세분화된 객체 단위로 정보를 추출하는 방법이다.
이 두 가지 부분이 원활하게 동작하기 위하여 두 가지 부분이 하나의 응용프로그램 안에서 상호 정보를 주고받으면서 동작하도록 구성할 필요가 있다.
도 4는 종래의 공유 라이브러리를 사용하는 시스템의 구성을 블록으로 도시한 것이다. 기존의 종래 시스템(400)은 공유라이브러리(410)와 해당 공유 라이브러리를 사용하는 응용 프로그램들(420)를 포함한다. 각 응용 프로그램들은 실행될 때에 공유 라이브러리 중에서 필요한 부분을 인출하여 동작하게 된다.
상기에 설명된 본 발명과 같은 과정을 통해 공유 라이브러리(410)의 각 구성요소들을 A부터 Z까지의 각 구성 요소들로 나눈 후에 이 각각을 재조합하기 위한 링크 정보들을 구성한다.
그리고 각 응용프로그램들이 실제로 사용하고 있는 공유 라이브러리의 구성 요소가 어느 것인가를 분석하여 해당되는 공유 라이브러리의 세부 정보를 추출하여 각 분석된 정보를 모아서 최소의 크기가 되도록 구성한다. 그리고 추출된 각 실제로 사용되는 공유 라이브러리의 객체 정보들을 기반으로 상기의 링크 정보를 참조하여 새로운 공유 라이브러리를 생성한다.
도 5는 상기의 설명과 같이 본 발명에 따라 생성된 경량 공유 라이브러리를 사용하는 시스템의 구성을 블록으로 도시한 것이다.
실제로 사용하는 공유 라이브러리의 구성요소는 A, B, C, D, E, G 및 M이며, 이들만으로 공유 라이브러리를 재구성하여 경량화된 공유 라이브러리(510)를 생성한 결과가 도시되어 있다.
본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자는 본 발명이 본 발명의 본질적인 특성에서 벗어나지 않는 범위에서 변형된 형태로 구현될 수 있음을 이해할 수 있을 것이다. 그러므로 본 개시된 실시예들은 한정적인 관점이 아니라 설명적인 관점에서 고려되어야 한다. 상기의 설명에 포함된 예들은 본 발명에 대한 이해를 위해 도입된 것이며, 이 예들은 본 발명의 사상과 범위를 한정하지 않는다.상기의 예들 외에도 본 발명에 따른 다양한 실시 태양이 가능하다는 것은, 본 발명이 속한 기술 분야에 통상의 지식을 가진 사람에게는 자명할 것이다. 본 발명의 범위는 전술한 설명이 아니라 청구범위에 나타나 있으며, 그와 동등한 범위 내에 있는 모든 차이점은 본 발명에 포함된 것으로 해석되어야 할 것이다.
또한 본 발명에 따른 상기의 각 단계는 일반적인 프로그래밍 기법을 이용하여 소프트웨어적으로 또는 하드웨어적으로 다양하게 구현할 수 있다는 것은 이 분야에 통상의 기술을 가진 자라면 용이하게 알 수 있는 것이다.
본 발명에 의하면, 응용 프로그램들이 사용하는 공유 라이브러리를 재구성하여 최소 용량의 공유 라이브러리로 재구성하는 방법에 있어서, 응용 프로그램들이 사용하는 공유 라이브러리를 분석하여 재조합이 가능하면서도 분리 가능한 단위로 세분화하고, 세분화된 라이브러리 중에서 실제로 각 응용 프로그램들이 사용하는 부분을 결정하며, 실제로 사용되는 세분화된 라이브러리들을 하나의 라이브러리로 재구성하기 위한 링크 정보를 구성하여, 세분화된 라이브러리들을 링크 정보에 따라 재구성하여 경량화된 공유 라이브러리를 생성하여, 예를 들면 임베디드 소프트웨어를 개발할 때 메모리 사용의 제한을 덜 받게 되고 일반 응용 프로그램을 개발하듯이 임베디드 시스템용 응용 프로그램을 개발할 수 있으며, 임베디드 시스템의 메모리 제한 부분을 해결하여 좀 더 저렴하고 간편하게 시스템을 구성하는 효과가 있다.

Claims (6)

  1. 복수의 응용 프로그램들에 공통된 공유 라이브러리를 생성하는 방법에 있어서,
    (a) 상기 응용 프로그램들이 사용하는 공유 라이브러리를 분석하여 재조합 및 분리 가능한 단위로 세분화하는 단계;
    (b) 상기 세분화된 라이브러리 중에서 실제로 상기 각 응용 프로그램들이 사용하는 부분을 결정하는 단계;
    (c) 상기 (b) 단계에서 실제로 사용되는 세분화된 라이브러리들을 하나의 라이브러리로 조합하기 위한 링크 정보를 구성하는 단계; 및
    (d) 상기 (b) 단계에서 결정된 세분화된 라이브러리들을 상기 (c) 단계의 링크 정보에 따라 조합하여 경량화된 공유 라이브러리를 생성하는 단계;를 포함하는 것을 특징으로 하는 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법.
  2. 제1항에 있어서,
    상기 (a) 단계에서 라이브러리를 세분화하는 것은 라이브러리를 구성하는 오브젝트 단위로 분리하는 것을 특징으로 하는 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법.
  3. 제1항 또는 제2항에 있어서,
    상기 (c) 단계에서 구성되는 링크 정보는 분리될 오브젝트 파일의 이미지 또는 텍스트를 포함하는 속성에 따라 구분되어 결정하는 것을 특징으로 하는 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법.
  4. 제1항에 있어서,
    상기 (b) 단계에서 공유 라이브러리를 사용하는 상기 응용 프로그램이 실행될 때에 참조하는 공유 라이브러리의 구성 요소를 찾아서 그 구성 요소를 실제 사용하는 부분으로 결정하는 것을 특징으로 하는 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법.
  5. 제1항에 있어서,
    상기 (b) 단계 및 (c) 단계에서,
    각 응용 프로그램별로 공유 라이브러리를 분석하여 실제 사용되는 응용 라이브러리의 객체 정보들을 세분화된 객체 단위로 정보를 추출하여 링크 정보를 구성하는 것을 특징으로 하는 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법.
  6. 제1항에 있어서,
    상기 (d) 단계에서, 조합된 공유 라이브러리는 복수의 응용 프로그램들에 공통된 최소 집합의 세분화된 라이브러리만을 포함하여 생성되는 것을 특징으로 하는 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를 생성하는 방법.
KR1020040101006A 2004-12-03 2004-12-03 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법 KR100617297B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020040101006A KR100617297B1 (ko) 2004-12-03 2004-12-03 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020040101006A KR100617297B1 (ko) 2004-12-03 2004-12-03 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법

Publications (2)

Publication Number Publication Date
KR20060062240A KR20060062240A (ko) 2006-06-12
KR100617297B1 true KR100617297B1 (ko) 2006-08-30

Family

ID=37158436

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020040101006A KR100617297B1 (ko) 2004-12-03 2004-12-03 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법

Country Status (1)

Country Link
KR (1) KR100617297B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100835269B1 (ko) * 2006-12-07 2008-06-05 한국전자통신연구원 다운로드 서버와 공유 라이브러리의 분할을 이용한 응용프로그램 설치 및 업데이트 방법
KR100884926B1 (ko) * 2007-06-15 2009-02-20 한국과학기술원 가상 메모리가 없는 임베디드 시스템에서의 기존 공유라이브러리 사용방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332675A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp 共有ライブラリ管理機構
JPH0895757A (ja) * 1994-09-19 1996-04-12 Internatl Business Mach Corp <Ibm> マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置
JP2003308216A (ja) 2002-04-17 2003-10-31 Hitachi Ltd 共有ライブラリ生成方法およびシステム
JP2004246413A (ja) 2003-02-10 2004-09-02 Mitsubishi Electric Corp 計算機システム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH06332675A (ja) * 1993-05-20 1994-12-02 Mitsubishi Electric Corp 共有ライブラリ管理機構
JPH0895757A (ja) * 1994-09-19 1996-04-12 Internatl Business Mach Corp <Ibm> マイクロカーネル・データ処理システム用のマスタ・サーバ・プログラム・ロード方法および装置
JP2003308216A (ja) 2002-04-17 2003-10-31 Hitachi Ltd 共有ライブラリ生成方法およびシステム
JP2004246413A (ja) 2003-02-10 2004-09-02 Mitsubishi Electric Corp 計算機システム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
06332675 *

Also Published As

Publication number Publication date
KR20060062240A (ko) 2006-06-12

Similar Documents

Publication Publication Date Title
Griebler et al. SPar: a DSL for high-level and productive stream parallelism
US8230374B2 (en) Method of partitioning an algorithm between hardware and software
Hong et al. Simplifying scalable graph processing with a domain-specific language
US6928393B2 (en) Method and system for supporting negative testing in combinatorial test case generators
Nagappan et al. Efficiently extracting operational profiles from execution logs using suffix arrays
US20100175049A1 (en) Scope: a structured computations optimized for parallel execution script language
Griebler et al. High-level and productive stream parallelism for Dedup, Ferret, and Bzip2
LaBelle et al. Inter-package dependency networks in open-source software
CN107122185A (zh) 一种针对配电网参数类信息可视化展现方法
Souder et al. Form: A framework for creating views of program executions
KR100617297B1 (ko) 복수의 응용 프로그램들에 공통된 경량 공유 라이브러리를생성하는 방법
Carmichael et al. Design maintenance: Unexpected architectural interactions (experience report)
EP3465422B1 (en) Format-specific data processing operations
Tekin et al. A graph mining approach for detecting identical design structures in object-oriented design models
Shahbazian et al. An end-to-end domain specific modeling and analysis platform
Kerdoudi et al. Recovering software architecture product lines
Wagner et al. Performance optimization for the trinity RNA-Seq assembler
Nasgaard et al. Ibm infosphere streams: event processing for a smarter planet
Newton et al. Wavescript: A case-study in applying a distributed stream-processing language
Memon et al. Community-based, collaborative testing and analysis
Buchgeher et al. Connecting architecture and implementation
Koschke What architects should know about reverse engineering and rengineering
Müller et al. FEX: Assisted identification of domain features from C programs
Gonçalves A Product Family for Digital Humanities Repositories
Köckerbauer Defining and Searching Communication Patterns in Event Graphs/submitted by Thomas Köckerbauer

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
FPAY Annual fee payment

Payment date: 20091228

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee