KR101905675B1 - 모듈의 구조 해석을 지원하는 장치 및 프로그램 - Google Patents

모듈의 구조 해석을 지원하는 장치 및 프로그램 Download PDF

Info

Publication number
KR101905675B1
KR101905675B1 KR1020147003424A KR20147003424A KR101905675B1 KR 101905675 B1 KR101905675 B1 KR 101905675B1 KR 1020147003424 A KR1020147003424 A KR 1020147003424A KR 20147003424 A KR20147003424 A KR 20147003424A KR 101905675 B1 KR101905675 B1 KR 101905675B1
Authority
KR
South Korea
Prior art keywords
module
statement
function
storage means
operand
Prior art date
Application number
KR1020147003424A
Other languages
English (en)
Other versions
KR20140065389A (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 신이치 이시다
Publication of KR20140065389A publication Critical patent/KR20140065389A/ko
Application granted granted Critical
Publication of KR101905675B1 publication Critical patent/KR101905675B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/75Structural analysis for program understanding
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/51Source to source

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Quality & Reliability (AREA)

Abstract

본 발명의 모듈의 구조 해석을 지원하는 장치는, 1이상의 모듈이 기억된 기억 수단과, 기억 수단에 기억된 모듈 중 소정의 대상 모듈을 이차적 모듈로 변환하여 기억 수단에 기억하는 변환 수단을 구비하고 있다. 변환 수단은, 대상 모듈을 기억 수단으로부터 읽어들이고, 대상 모듈의 소정의 처리 개시 부분으로부터 소정의 처리 종료 부분까지 기술된 문의 각각을 이차적 모듈로 순차 출력한다. 또, 변환 수단은, 문이 모듈 내부의 처리 단위 또는 다른 모듈을 실행하는 문인 경우, 실행 대상인 처리 단위 등에 기술되어 있는 문을 재귀적으로 전개하여 이차적 모듈로 출력한다.

Description

모듈의 구조 해석을 지원하는 장치 및 프로그램{MODULE STRUCTURAL ANALYSIS SUPPORTING DEVICE AND PROGRAM}
본 발명은, 프로그램 언어에 의해 기술된 1 이상의 문(文, sentences)으로 이루어지는 모듈(소스 프로그램)의 구조 해석을 지원하는 장치에 관한 것이다.
프로그램을 작성하는 경우, 구조화 프로그래밍이 강하게 추천된다. 구체적으로는, 예를 들면, 비교적 소수의 문으로 이루어지는 처리 단위를 조합함으로써 모듈을 작성하도록 요구된다. 또, 복수의 모듈에 대한 공통적인 처리를 모듈화하는 것이 요구된다. 따라서, 예를 들면 프로그램의 합계 행(行)수가 100만행을 넘는 것과 같은 큰 시스템은, 각각이 수십의 처리 단위로 이루어지는 수천의 모듈을 구비하고 있는 경우도 많다.
상술한 바와 같은 대규모 시스템은, 개발 후 당분간의 동안은, 개발에 종사한 담당자(즉, 모듈 간의 관련 및 각각의 모듈의 구조를 숙지한 사람)가 시스템의 메인티넌스를 행하는 경우가 많다. 그렇지만, 이러한 시스템은 수십 년에 걸쳐 메인티넌스를 반복하면서 사용되는 경우도 많다. 시간이 경과함에 따라 개발에 종사한 담당자가 없어지고, 모듈의 구조를 모르는 사람이 시스템의 메인티넌스를 행하게 된다. 이러한 경우, 구조화 프로그래밍이 이루어져 있는 것에 기인하여, 방대한 모듈로 분산하여 기술되어 있는 기능을 파악하지 않으면 안되어, 메인티넌스는 극히 곤란하게 된다. 즉, 모듈의 구조 해석이 곤란하게 된다.
예를 들면, 특허 문헌 1 및 특허 문헌 2에는, 모듈의 구조 해석을 지원하기 위한 기술이 개시되어 있다. 특허 문헌 1에는, 모듈 관련도를 자동적으로 작성하는 모듈 구성도 자동 생성 장치가 개시되어 있다. 특허 문헌 2에는, 플로우차트(flow chart) 및 테스트 항목을 자동적으로 작성하는 테스트 항목 자동 생성 장치가 개시되어 있다.
일본 특개평 11-110198호 공보 일본 특개 2006-209521호 공보
그러나, 시스템을 메인티넌스하기 위해서 모듈의 구조 해석을 행하는 경우, 각 모듈의 상세한 내부 처리를 파악할 필요가 있다. 모듈 관련도나 모듈마다의 플로우차트를 이용해도, 다수의 모듈로 분산된 기능의 전체 상(像)을 파악하는 것은 용이하지 않다.
따라서, 본 발명은, 다수의 모듈로 분산된 기능을 1개의 이차적 모듈로 한데 모음으로써 기능을 파악하기 쉽게 하고, 이것에 의해 모듈의 구조 해석을 지원하는 장치를 제공하는 것을 목적으로 한다.
본 발명의 일측면은, 프로그램 언어에 의해 기술된 1이상의 문으로 이루어지는 모듈을 1이상의 이차적 문(secondary sentence)으로 이루어지는 이차적 모듈(secondary module)로 변환하고, 이것에 의해 모듈의 구조 해석을 지원하는 장치를 제공한다. 상기 모듈은 모듈명에 의해 특정 가능하다. 상기 모듈에는, 1이상의 상기 문으로 구성되는 처리 단위를 기술하는 것이 가능하다. 상기 처리 단위는, 처리 단위명에 의해 특정 가능하다. 상기 모듈에는, 상기 문으로서, 처리 단위 실행문과 모듈 호출문과 조건문을 기술 가능하다. 상기 처리 단위 실행문은, 상기 처리 단위를 상기 처리 단위명에 의해 특정해 실행하기 위한 상기 문이다. 상기 모듈 호출문은, 상기 모듈을 상기 모듈명에 의해 특정하여 실행하기 위한 상기 문이다. 상기 조건문은, 조건식이 성립하는지 여부에 따라 실행할 상기 문을 선택하기 위한 상기 문이다. 상기 조건문에는 상기 조건문에 의해 선택되는 상기 문으로서 더욱 상기 조건문이 기술 가능하고, 이것에 의해 상기 조건문에 의한 상기 문의 계층화가 가능하다. 상기 장치는, 기억 수단과 변환 수단을 구비하고 있다. 상기 기억 수단에는, 1이상의 상기 모듈이 기억되어 있다. 상기 변환 수단은, 상기 기억 수단에 기억된 상기 모듈 중 소정의 대상 모듈을 상기 이차적 모듈로 변환하여 상기 기억 수단에 기억하는 것이다. 상기 변환 수단은, 판독(read) 기능과 변환(conversion) 기능과 기입(write) 기능을 가지고 있다. 상기 판독 기능은, 상기 대상 모듈을 상기 기억 수단으로부터 읽어들이는 기능이다. 상기 변환 기능은, 상기 대상 모듈의 소정의 처리 개시 부분으로부터 소정의 처리 종료 부분까지 기술된 상기 문의 각각을 상기 이차적 문으로서 상기 이차적 모듈로 순차 출력하고, 상기 이차적 모듈로 출력되는 상기 문이 상기 처리 단위 실행문 또는 상기 모듈 호출문인 경우, 실행 대상의 상기 처리 단위 또는 호출 대상의 상기 모듈에 기술되어 있는 상기 문을 전개함으로써 상기 이차적 문을 생성하여 상기 이차적 모듈로 출력하며, 상기 전개되는 상기 문에 있어서의 상기 처리 단위 실행문 또는 상기 모듈 호출문에 대해서도 상기 전개를 더 행하는 기능이다. 상기 기입 기능은, 상기 이차적 모듈을 상기 기억 수단에 기억하는 기능이다.
또, 본 발명의 다른 측면에 의하면, 상기 이차적 모듈을 이용하여(예를 들면, 가공하여), 이것에 의해 모듈의 구조 해석을 지원하는 장치가 얻어진다. 상기 장치는, 기억 수단과 이용 수단(예를 들면, 가공 수단)을 구비하고 있다. 상기 기억 수단에는, 상기 이차적 모듈이 기억되어 있다. 상기 이용 수단은, 상기 기억 수단에 기억된 상기 이차적 모듈을 이용하는 것이다. 상기 이용 수단은, 판독 기능과, 이용 기능과, 기입 기능을 가지고 있다. 상기 판독 기능은, 상기 이차적 모듈을 상기 기억 수단으로부터 읽어들이는 기능이다. 상기 가공 수단이 상기 이용 수단인 경우, 상기 이용 기능은, 예를 들면 계층 식별 부가 기능이다. 상기 계층 식별 부가 기능은, 상기 이차적 모듈의 상기 이차적 문의 적어도 일부에 대하여 계층 식별을 부가하는 기능이다. 상기 계층 식별은, 상기 이차적 문이 어느 상기 계층에 위치하고 있는지를 나타내고 있다. 상기 기입 기능은, 예를 들면 상기 계층 식별이 부가된 상기 이차적 문으로 이루어지는 상기 이차적 모듈을 상기 기억 수단에 기억하는 기능이다.
또, 본 발명의 또 다른 측면에 의하면, 컴퓨터를, 상기 장치로서 기능시키기 위한 프로그램이 얻어진다.
본 발명에 의하면, 1개의 모듈의 소정의 처리 개시 부분으로부터 소정의 처리 종료 부분까지의 사이에 실행 대상의 문이 전개되기 때문에, 다수의 모듈에 분산된 기능을, 보다 용이하게 파악할 수가 있다.
또, 동일한 처리 단위 또는 동일한 모듈에 대하여 실행 대상의 문을 1회만 전개하는 경우, 중복된 전개를 피할 수가 있어, 이것에 의해 전개되는 양을 작게 할 수가 있다.
첨부된 도면을 참조하면서 하기의 최선의 실시 형태의 설명을 검토함으로써, 본 발명의 목적이 바르게 이해되고, 또한 그 구성에 대하여 보다 완전하게 이해될 것이다.
도 1은, 본 발명의 실시 형태에 의한 모듈의 구조 해석을 지원하는 장치를 나타내는 블록 구성도이다.
도 2는, 도 1의 장치의 기억장치에 기억되어 있는 모듈의 파일 구성을 모식적으로 나타내는 도면이다.
도 3은, 도 2의 모듈의 예를 나타내는 도이다.
도 4는, 도 1의 기억장치에 기억되어 있는 이차적 모듈의 파일 구성을 모식적으로 나타내는 도면이다.
도 5는, 도 1의 이차적 모듈의 일례를 부분적으로 나타내는 도면이다. 여기서, 이차적 모듈의 일부(파선 A의 부분)를 실선 A의 부분으로 확대하여 나타내고 있다.
도 6은, 도 1의 기억장치에 기억되어 있는 플로우차트(flow chart)의 일례를 부분적으로 나타내는 도면이다.
도 7은, 도 1의 기억장치에 기억되어 있는 매트릭스의 일례를 부분적으로 나타내는 도면이다.
도 8은, 도 1의 장치의 변환 수단의 기능을 나타내는 플로우차트이다.
도 9는, 도 8의 변환 수단의 기능의 일부를 보다 상세하게 나타내는 플로우차트이다.
도 10은, 도 1의 장치의 가공 수단의 기능을 나타내는 플로우차트이다.
도 11은, 도 1의 장치의 선택 수단의 기능을 나타내는 플로우차트이다.
도 12는, 도 1의 장치의 표시 속성 설정 수단의 기능을 나타내는 플로우차트이다.
도 13은, 도 1의 장치의 플로우차트 작성 수단의 기능을 나타내는 플로우차트이다.
도 14는, 도 1의 장치의 매트릭스 작성 수단의 기능을 나타내는 플로우차트이다.
도 15는, 도 1의 기억장치에 기억되어 있는 매트릭스의 일례를 부분적으로 나타내는 도면이다.
도 16은, 도 3의 모듈 중 하나를 변경했을 때의 차분(差分)을 예시하는 도면이다.
도 17은, 도 14의 매트릭스 작성 수단의 기능의 변형예를 나타내는 플로우차트이다.
도 18은, 도 16의 모듈이 변경되었을 경우의 매트릭스를 부분적으로 예시하는 도면이다.
도 19는, 도 16의 모듈이 변경되었을 경우의 플로우차트를 부분적으로 예시하는 도면이다.
도 20은, 도 1의 장치의 변형예를 나타내는 시스템 구성도이다.
본 발명에 대해서는 다양한 변형이나 여러 가지 형태로 실현되는 것이 가능하지만, 그 일례로서 도면에 나타내는 것과 같은 특정의 실시 형태에 대하여, 이하에 상세하게 설명한다. 도면 및 실시 형태는, 본 발명을 여기에 개시한 특정의 형태로 한정하는 것이 아니고, 첨부된 청구 범위에 명시되어 있는 범위 내에 있어서 이루어지는 모든 변형예, 균등물, 대체예를 그 대상에 포함하는 것으로 한다.
도 1에 나타내는 바와 같이, 본 발명의 실시 형태에 의한 장치(모듈의 구조 해석을 지원하는 장치)(10)는, 장치 본체(20)와, 기억장치(기억 수단)(30)와, 입력장치(40)와, 표시장치(50)를 구비하고 있다. 장치(10)는, 프로그램 언어에 의해 기술된 1이상의 문으로 이루어지는 모듈(소스 프로그램)을, 1이상의 이차적 문으로 이루어지는 이차적 모듈(이차적 소스 프로그램)로 변환할 수가 있다.
본 실시 형태에 의한 프로그램 언어는 COBOL이다. 그렇지만, 본 발명은 COBOL 이외의 프로그램 언어에도 적용 가능하다.
본 실시 형태에 의한 모듈은, 문자, 숫자, 기호 등을 조합한 모듈명에 의해 특정 가능하다.
모듈에는, 1이상의 문으로 구성되는 처리 단위를 기술할 수가 있다. 본 실시 형태에 의한 처리 단위는, COBOL에 있어서의 섹션(section)이다. 섹션의 각각은, 섹션명(처리 단위명)에 의해 특정할 수가 있다. 단, 처리 단위는, 예를 들면 프로그램 언어가 JAVA(일본에 있어서의 등록상표)인 경우, 함수명(처리 단위명)에 의해 특정 가능한 함수여도 좋다.
모듈은, 다른 모듈 또는 해당 모듈 자신을 호출(call)할 수가 있다. 또, 모듈의 섹션은, 다른 섹션 또는 해당 섹션 자신을 실행할 수가 있다. 보다 구체적으로는, 모듈에는, 문으로서, 섹션을 섹션명에 의해 특정하여 실행하기 위한 처리 단위 실행문(processing-section perform statement)과, 모듈의 하나를 모듈명에 의해 특정하여 실행하기 위한 모듈 호출문(module call statement)을 기술할 수가 있다. 또, 모듈에는, 문으로서, 조건식이 성립하는지 여부에 따라 실행할 문을 선택하기 위한 조건문을 기술할 수가 있다. 처리 단위 실행문 및 모듈 호출문은, 함수명을 지정한 문이어도 좋다. 모듈 호출문이 함수명을 지정한 문인 경우, 모듈 호출문에 의해 실행되는 것은 모듈 중 지정된 함수 부분(즉, 모듈의 일부)이다. 이 경우, 모듈 호출문에 있어서 모듈명이 명시적으로 기술되지 않는 경우(즉, 함수명에 의해 모듈명이 간접적으로 특정되는 경우)가 있다.
본 실시 형태에 의하면, 처리 단위 실행문은 PERFORM문이다. 모듈 호출문은 CALL문이다. 또, 조건문은 IF문 및 EVALUATE문이다. IF문 등의 조건문에 의해 선택되는 문으로서 조건문이 더 기술가능하고, 이것에 의해 조건문에 의한 문의 네스트(nested)(계층화)가 가능하다. 자세하게는, 예를 들면 IF문의 THEN에 있어서 IF문을 더욱 기술할 수가 있다.
도 1에 나타내는 바와 같이, 기억장치(30)는, 예를 들면 자기 디스크장치이다. 기억장치(30)는, 예를 들면 폴더(folders, 미도시)에 의해 계층화된 다양한 파일을 기억할 수가 있다. 기억장치(30)는, 장치 본체(20)와 통신 가능하게 접속되어 있으며, 장치 본체(20)로부터의 지시에 따라 파일의 판독이나 기입(기억)을 행할 수가 있다. 본 실시 형태에 의한 기억장치(30)에는, 하나 이상의 모듈(31)이 기억되어 있다. 환언하면, 본 실시 형태에 의한 모듈(31)은, 기억장치(30)에 기억된 모듈이다. 모듈(31)은, 예를 들면 프로그래밍 툴(미도시)을 사용하여 작성된다. 모듈(31)의 각각이 하나의 파일이어도 무방하다. 복수의 모듈(31)이 하나의 파일 중에 기억되어 있어도 좋다. 기억장치(30)는, 이차적 모듈(32)과, 플로우차트(33)와, 매트릭스(34)를, 모듈(31)과 마찬가지로 기억할 수가 있다. 본 실시 형태에 의한 플로우차트(33) 및 매트릭스(34)는, 이차적 모듈(32)로부터 각각 작성할 수가 있다.
입력장치(40)는, 예를 들면 키보드나 마우스이다. 입력장치(40)는, 장치 본체(20)와 통신 가능하게 접속되어 있으며, 키보드로부터 입력된 문자나 마우스에 의해 지시받은 위치를 장치 본체(20)에 통지할 수가 있다.
표시장치(50)는, 예를 들면 디스플레이나 프린터이다. 표시장치(50)는, 장치 본체(20)와 통신 가능하게 접속되어 있으며, 장치 본체(20)로부터 전송된 데이터(예를 들면, 문자나 도형)를 표시 또는 인쇄할 수가 있다.
장치 본체(20)는, 예를 들면 PC(Personal Computer)의 본체이다. 장치 본체(20)는, CPU(Central Processing Unit), 주(主)기억장치 등을 구비하고 있다(미도시). 기억장치(30)에는 여러 가지 프로그램의 실행 형식 파일이 기억되어 있다(미도시). CPU는, 실행 형식 파일을 주기억장치에 로딩하고, 실행 형식 파일 내의 명령어를 실행함으로써 여러 가지 기능을 실현한다. CPU가 명령어를 실행하는 과정에 있어서, 기억장치(30)에 기억된 소정의 파일이, 주기억장치 내의 버퍼 영역을 경유하여 프로그램의 변수 영역으로 읽어들인다. 프로그램의 변수 영역으로 읽어들인 파일의 내용은, 필요에 따라서 주기억장치 내의 버퍼 영역을 경유하여 기억장치(30)에 기입된다. 상기의 설명으로부터 이해되는 바와 같이, 기억장치(30) 및 주기억장치의 각각은, 본 실시 형태에 있어서의 판독 및 기입 가능한 기억 수단으로서 기능한다. 환언하면, 본 실시 형태에 의한 기억 수단은, 기억장치(30) 및 주기억장치의 일방이어도 좋고, 쌍방이어도 좋다. 이후의 설명에 있어서는, 기억 수단으로서 기억장치(30)를 사용한다.
본 실시 형태에 의한 기억장치(30)에는, 변환 프로그램과, 가공 프로그램과, 선택 프로그램과, 표시 속성 설정 프로그램과, 플로우차트 작성 프로그램과, 매트릭스 작성 프로그램이 기억되어 있다(미도시). 상기의 프로그램은, 주기억장치에 로딩되어, CPU에 의해 실행되며, 이것에 의해 컴퓨터는, 변환 수단(21), 가공 수단(22), 선택 수단(23), 표시 속성 설정 수단(24), 플로우차트 작성 수단(25), 및 매트릭스 작성 수단(26)으로서 각각 기능한다. 즉, 상기의 프로그램은, 컴퓨터를 모듈의 구조 해석을 지원하는 장치(10)로서 기능시키기 위한 것이다. 환언하면, 본 실시 형태에 의한 장치(10)의 장치 본체(20)는, 변환 수단(21)과, 가공 수단(22)과, 선택 수단(23)과, 표시 속성 설정 수단(24)과, 플로우차트 작성 수단(25)과, 매트릭스 작성 수단(26)을 구비하고 있다.
본 실시 형태에 의한 변환 수단(21)은, 기억장치(30)에 기억된 모듈(31) 중 소정의 대상 모듈(31)을 이차적 모듈(32)로 변환하여 기억장치(30)에 기억하는 것이다. 가공 수단(22)은, 기억장치(30)에 기억된 이차적 모듈(32)을 가공하는 것이다. 선택 수단(23)은, 기억장치(30)에 기억된 이차적 모듈(32)의 이차적 문의 일부를 선택하는 것이다. 표시 속성 설정 수단(24)은, 기억장치(30)에 기억된 이차적 모듈(32)의 이차적 문에 소정의 표시 속성을 설정하는 것이다. 플로우차트 작성 수단(25)은, 기억장치(30)에 기억된 이차적 모듈(32)로부터 표형식(table form)의 플로우차트(33)를 작성하는 것이다. 매트릭스 작성 수단(26)은, 기억장치(30)에 기억된 이차적 모듈(32)로부터 복수의 열(列)과 1이상의 행(行)을 조합한 표형식의 매트릭스(matrix, 34)를 작성하는 것이다.
도 2에 나타내는 바와 같이, 본 실시 형태에 의한 모듈(31)은, n개(n≥1)의 행(310)으로 구성된다. 행(310)은, 적어도 일련 번호(행 식별)(311)와 문(312)으로 구성된다. 일련 번호(311)는, 행(310)을 식별하기 위한 것이다. 일련 번호(311)는, 숫자뿐만이 아니라 문자나 기호를 포함하고 있어도 좋다. 문(312)에는, 문(예를 들면, 데이터 정의문, 실행문, 코멘트문)이 기술되어 있다. 문(312)에는, 하나의 완결된 문 전체가 기술되어 있어도 좋다. 문(312)에는, 하나의 문의 일부가 기술되어 있어도 좋다. 예를 들면, MOVE문이 2개의 행(310)의 문(312)으로 나뉘어 기술되어 있어도 좋다.
도 3에 나타내는 바와 같이, 기억장치(30)에는, 1이상의 모듈(31)이 기억되어 있다. 모듈(31)의 각각은, 일련 번호(311)와 문(312)으로 이루어지는 복수의 행(310)으로 구성되어 있다. 도 3에 나타내는 본 실시 형태의 일례에 의하면, 기억장치(30)에는, 모듈명이 XXX인 모듈(31)(즉, XXX 모듈)과, 모듈명이 AAA인 모듈(31)(즉, AAA 모듈)과, 모듈명이 BBB인 모듈(31)(즉, BBB 모듈)과, 모듈명이 CCC인 모듈(31)(즉, CCC 모듈)이 기억되어 있다. 이하, 본 예를 사용하여, 모듈(31)의 구조를 보다 구체적으로 설명한다.
XXX 모듈은, 메인 모듈(즉, 처리의 기점이 되는 모듈)이다. XXX 모듈은, AAA 모듈과 BBB 모듈을 모듈명에 의해 특정하여 호출하기 위한 CALL문이 각각 기술된 행(310)을 가지고 있다. AAA 모듈은, CCC 모듈을 호출하는 CALL문이 기술된 행(310)을 가지고 있다.
도 3에 예시된 모듈(31)의 각각은, 1이상의 섹션으로 구성되어 있다. 예를 들면, XXX 모듈은, 메인 섹션(즉, 모듈에 있어서의 처리의 기점이 되는 주된 처리 단위)와, 종(從)인 섹션(종인 처리 단위)을 가지고 있다. 메인 섹션은, "PROCEDURE DIVISION."이 기술된 행(310)의 다음의 행(310)으로부터, "STOP RUN."이 기술된 행(310)까지의 행(310)으로 구성되어 있다. 종인 섹션(서브 섹션)은, "AAA-SUB SECTION."이 기술된 행(310)으로부터, "EXIT."가 기술된 행(310)까지의 행(310)으로 구성되어 있다. 상술한 서브 섹션의 섹션명(처리 단위명)은 AAA-SUB이다. 메인 섹션은, AAA-SUB 섹션을 섹션명에 의해 특정하여 실행하는 행(310)을 구비하고 있다. 보다 구체적으로는, 메인 섹션은, "PERFORM AAA-SUB."가 기술된 행(310)을 구비하고 있다.
도 3에 예시된 섹션의 일부는, 조건문이 기술된 행(310)을 구비하고 있다. 예를 들면, XXX 모듈의 메인 섹션은, 5개의 WHEN구(句)를 가지는 EVALUATE문이 기술된 행(310)과, THEN 및 ELSE를 가지는 IF문이 기술된 행(310)을 구비하고 있다. CCC 모듈의 메인 섹션은, IF문의 ELSE에 있어서 IF문이 더 기술된 행(310)을 구비하고 있으며, 이것에 의해 조건문에 의한 문(312)의 계층화가 행해져 있다.
도 4에 나타내는 바와 같이, 본 실시 형태에 의한 이차적 모듈(32)은, m개(m≥1)의 행(320)으로 구성된다. 본 실시 형태에 의한 이차적 모듈(32)은, MICROSOFT EXCEL(일본에 있어서의 등록상표)의 워크시트이다. 단, 이차적 모듈(32)은, 예를 들면 텍스트 파일이어도 좋다. 본 실시 형태에 의한 행(320)은, 적어도 모듈 식별(321)과, 행 번호(322)와, 계층 식별(323)과, 명령 식별(324)과, 오퍼랜드 정보(325)와, 일련 번호(행 식별)(326)와, 이차적 문(327)과, 표시 속성(328)으로 구성된다. 오퍼랜드 정보(325)는, 제1 오퍼랜드(325f)와, 연산자(325o)와, 제2 오퍼랜드(325s)를 구비하고 있다. 이차적 모듈(32)은, 1이상의 모듈(31)로부터 실행문 등이 기술된 행(310)을 모아 가공함으로써 생성되어 있다.
도 5에 나타내는 바와 같이, 본 실시 형태에 의한 이차적 모듈(32)은, 예를 들면, XXX 모듈, AAA 모듈, BBB 모듈 및 CCC 모듈의 PROCEDURE DIVISION의 행(310)을 모아 가공한 것이다.
도 5에 예시되어 있는 바와 같이, 행(320)의 이차적 문(327)에 있어서, 행(310)의 문(312)에 기술되어 있는 CALL문은 코멘트화되어 있다(즉, 코멘트문으로 변경되어 있다). CALL문에 의해 호출되는 AAA 모듈의 PROCEDURE DIVISION의 문(312)은, 행(320)의 이차적 문(327)으로서 전개되어 있다(즉, 전개되어, 행(320)의 이차적 문(327)이 생성되어 있다). 더욱이, AAA 모듈로부터 CALL문에 의해 호출되는 CCC 모듈의 PROCEDURE DIVISION의 문(312)은, 행(320)의 이차적 문(327)으로서 전개되어 있다. 마찬가지로, 행(310)의 문(312)에 기술되어 있는 PERFORM문은, 행(320)의 이차적 문(327)에 있어서 코멘트화되어 있다. 또, PERFORM문에 의해 실행되는 AAA-SUB 섹션의 문(312)이, 행(320)의 이차적 문(327)으로서 전개되어 있다.
도 5에 예시되어 있는 바와 같이, 문(312)에 기술된 조건문 중 IF문 이외의 조건문(본 실시 형태에 의하면 EVALUATE문)은, 이차적 문(327)에 있어서 IF문으로 변환되어 있다. 예를 들면, "EVALUATE WK-A-O", "WHEN CS-1", "MOVE CS-1 TO WK-B-I"가 각각 기술된 3개의 문(312)은, "*#E EVALUATE WK-A-O"(코멘트문), "*#E WHEN CS-1"(코멘트문), "IF ( WK-A-O = CS-1 )", "THEN", "MOVE CS-1 TO WK-B-I"가 각각 기술된 5개의 이차적 문(327)으로 변환되어 있다. 본 실시 형태에 의하면, 상기의 변환에 더하여, IF문에 있어서의 THEN, ELSE 및 END IF의 결락(缺落)을 보충하기 위한 이차적 문(327)이 생성된다. 또, 부정의 조건식은 긍정의 조건식으로 변환된다. 더욱이, AND나 OR로 결합된 조건식을 가지는 IF문은 복수의 IF문으로 분해되어, 2개의 평가 대상 오퍼랜드(operand) 간의 관계를 1개의 논리 연산자에 의해서만 평가하는 단순한 이차적 조건식을 가지는 IF문으로 변환된다.
이상에 덧붙여, 복수의 문(312)에 띄어쓰기 되어 있는 MOVE문 등은, 1개의 이차적 문(327)으로 한데 모아진다. 즉, 이차적 모듈(32)의 행(320)의 각각은, 모듈(31)의 행(310)에 근거하여 생성되어 있으며, 이차적 문(327)은, 문(312)을 그대로 카피(copy)한 것이거나, 또는 문(312)을 가공·전개함으로써 생성된 것이다.
표시 속성(328)에는, 행(320)의 이차적 문(327) 등을 표시장치(50)에 표시할 때의 표시색, 배경색, 서체 등, 표시에 관한 속성이 설정된다. 예를 들면, 문(312)을 코멘트화한 이차적 문(327)을 적색으로 표시함으로써, 코멘트화한 것을 시각적으로 파악하는 것이 가능하게 된다.
본 실시 형태에 의한 모듈 식별(321)은, 각각의 행(320)이 어느 모듈(31)에 근거하는 것인지를 나타내는 것이다. 보다 구체적으로는, 모듈 식별(321)에는, 모듈명(예를 들면, XXX)이 설정된다. 단, 모듈명에 대신하여, 모듈(31)을 일의에 식별 가능한 번호 등을 설정해도 좋다.
일련 번호(326)에는, 이차적 문(327)이 문(312)의 카피인 행(320)에 있어서는, 카피 원(元)인 행(310)의 일련 번호(311)가 설정된다. 행(310)과 1대 1로 대응하는 행(320)(예를 들면, 문(312)을 코멘트화한 이차적 문(327)의 행(320))에 대해서는, 일련 번호(326)에는, 대응하는 행(310)의 일련 번호(311)가 설정된다. 한편, 생성된(추가된) 행(320)의 일련 번호(326)에는, 생성된 행(320)인 것을 식별 가능한 식별자(예를 들면, 기호의 조합)가 설정된다. 이와 같이 함으로써, 시스템의 메인티넌스를 행할 때에, 행(320)과 행(310)을 용이하게 대응지을 수 있다.
본 실시 형태에 의한 행 번호(322)에는, 1로부터 시작되는 순차번호(sequence number, 通番)가 행(320)의 정렬 순서(alignment sequence)를 따라 설정되어 있다. 단, 행 번호(322)는, 순차번호가 아니어도 좋다. 예를 들면, 행 번호(322)는 문자나 기호의 조합이어도 좋다.
본 실시 형태에 의한 계층 식별(323)은, 분기 계층(branch hierarchy)과 분기의 깊이(hierarchy depth)로 구성되어 있다. 분기 계층은, 조건문에 의한 계층을 식별하기 위해서 사용된다. 본 실시 형태에 의한 분기 계층은, 1행째의 행(320)에 있어서의 출발치로서 1을 사용함으로써 설정된다. 환언하면, 1행째의 행(320)의 분기 계층은, 1이다. 분기 계층은, IF문의 THEN이 기술된 행(320)에 있어서 1.1로 변경되며, ELSE가 기술된 행(320)에 있어서 1.2로 변경된다. 분기 계층은, IF문의 END IF가 기술된 행(320)의 다음의 행으로부터 1로 돌아온다. 일반화하면, THEN이 기술된 행(320)에 있어서는, 직전의 행(320)의 분기 계층의 말미에 「. 1」이 더해지고, ELSE가 기술된 행(320)에 있어서는, 직전의 행(320)의 분기 계층의 말미 「. 1」이 「. 2」로 변경되며, END IF가 기술된 행(320)의 다음의 행에 있어서는, END IF가 기술된 행(320)의 분기 계층의 말미 「. 2」가 삭제된다. 상기의 경우를 제외하고, 분기 계층에는, 직전의 행(320)과 동일한 값이 설정된다.
본 실시 형태에 의한 분기의 깊이는, 분기 계층과 마찬가지로, 1행째의 행(320)에 있어서의 출발치로서 1을 사용함으로써 설정된다. 환언하면, 1행째의 행(320)의 분기의 깊이는, 1이다. 분기의 깊이는, IF문의 THEN이 기술된 행(320)에 있어서 1.1로 변경되며, END IF가 기술된 행(320)의 다음의 행으로부터 1로 돌아온다. 더욱이, 그 후의 IF문의 THEN이 기술된 행(320)에 있어서 1.2로 변경되며, END IF가 기술된 행(320)의 다음의 행으로부터 1로 돌아온다. 일반화하면, 분기의 깊이는, 1을 출발치로 하고 있고, THEN이 기술된 행(320)에 있어서 말미에 「. p」(p는 1이상의 정수)인 자리수가 더해지며, END IF가 기술된 행(320)의 다음의 행에 있어서 말미의 「. p」인 자리수가 삭제된다. 「. p」에 있어서의 p의 값은, 자리수의 각각에 대해 1을 출발치로 하고 있다. 상세하게는, 1자리수째의 「. p」(예를 들면 1.2의 「. 2」)에 있어서의 p의 값은, 1을 출발치로 하고 있으며, 부가될 때마다 인크리먼트(increment)된다. 한편, 2자리수째 이후의 「. p」(예를 들면 1.2.1의 「. 1」)에 있어서의 p의 값은, 해당 자리수를 제외한 분기의 깊이가 동일값인 행(320)이 연속하는 범위에 있어서 1을 출발치로 하고 있으며, 상기 연속하는 범위에 있어서 부가될 때마다 인크리먼트(increment)된다.
이상의 설명으로부터 이해되는 바와 같이, 계층 식별(323)에 의해, 조건문에 의한 계층의 이차적 모듈(32)에 있어서의 장소를 특정할 수가 있다. 또한, 계층 식별(323)의 설정 내용은 상술한 설명으로는 한정되지 않는다. 조건문에 의한 계층의 이차적 모듈(32)에 있어서의 장소를 특정할 수가 있는 한, 계층 식별(323)에 어떠한 값이 설정되어 있어도 좋다.
명령 식별(324)은, 이차적 문(327)에 기술되어 있는 문의 종별을 나타내고 있다. 본 실시 형태에 의한 명령 식별(324)은, 명령명과, 조건 명령인지 여부를 나타내는 식별자(조건 명령 식별:도 5에 있어서 단지 「조건 명령」이라고 기재)와,처리 명령인지 여부를 나타내는 식별자(처리 명령 식별:도 5에 있어서 단지 「처리 명령」이라고 기재)로 이루어진다. 이차적 문(327)에 IF문의 요소의 일부가 기술되어 있는 경우(즉, IF, THEN, ELSE 또는 END-IF가 기술되어 있는 경우), 조건 명령 식별로 O이 설정된다. 이차적 문(327)에 IF문 이외의 실행문이 기술되어 있는 경우(예를 들면, MOVE문이나 COMPUTE문이 기술되어 있는 경우), 처리 명령 식별로 O이 설정된다. 조건 명령 식별 또는 처리 명령 식별로 O이 설정되어 있는 경우, 명령명에는 이차적 문(327)에 기술되어 있는 명령명(IF, THEN, END-IF, MOVE 등)이 설정된다.
오퍼랜드 정보(325)는, 명령 식별(324)에 명령명이 설정된 이차적 문(327)(즉, 실행문이 기술되어 있는 이차적 문(327))으로서, 또한, 2개의 오퍼랜드와 1개의 연산자로 이루어지는 이차적 문(327)에 대해서 설정된다. 예를 들면, "MOVE 9 TO WK-C-I"가 기술되어 있는 이차적 문(327)에 대해서는, 제1 오퍼랜드(325f), 연산자(325o) 및 제1 오퍼랜드(325s)로, "9", "TO" 및 "WK-C-I"가 각각 설정된다. 오퍼랜드 정보(325)를 참조함으로써, 변수 및 정수 간의 대입·비교가 어떻게 행해져 있는지를, 보다 용이하게 파악할 수가 있다.
행(320)은, 이상에 설명한 항목에 더하여 다양한 항목을 구비할 수가 있다. 예를 들면, 행(320)이, 대응하는 행(310)의 섹션명을 구비하는 경우, 행(320)과 행(310)간의 대응을, 보다 용이하게 파악할 수가 있다.
본 실시 형태에 의하면, 기억장치(30)에 기억된 이차적 모듈(32)에 근거하여 다양한 파일을 작성할 수가 있다. 작성한 파일은, 모듈(31)의 구문 해석을 지원하기 위한 자료로서 표시장치(50)에 표시·인쇄할 수가 있다. 보다 구체적으로는, 이차적 모듈(32)에 근거하여, 예를 들면 플로우차트(33) 및 매트릭스(34)를 작성할 수가 있다.
도 6 및 도 7로부터 이해되는 바와 같이, 본 실시 형태에 의한 플로우차트(33) 및 매트릭스(34)는, MICROSOFT EXCEL(일본에 있어서의 등록상표)의 워크시트(worksheet)이다. 단, 플로우차트(33) 및 매트릭스(34)는 다른 형식의 파일 등이어도 상관없다. 본 실시 형태에 의하면, 플로우차트(33) 및 매트릭스(34)의 각각은, 이차적 모듈(32)로부터 생성된다.
도 6으로부터 이해되는 바와 같이, 플로우차트(33)는, 이차적 모듈(32)의 이차적 문(327)을 플로우차트 식으로 편집한 것이다. 보다 구체적으로는, IF문과 관련되지 않은 이차적 문(327)은, 이차적 모듈(32)에 있어서의 행(320)의 정렬 순서(arrangement order)에 따라, 제2 열째(헤더에 "1"이 표시되어 있는 열)에 순차 배열되어 있다. 한편, IF문과 관련된 이차적 문(327)(즉, IF로부터 END-IF까지의 문이 기술된 이차적 문(327))은, IF문에 있어서의 조건식이 성립하는 경우에 실행되는 이차적 문(327)과, IF문에 있어서의 조건식이 성립하지 않는 경우에 실행되는 이차적 문(327)이 좌우로 각각 나뉘어 배열되어 있다.
플로우차트(33)의 제1 열째에는 제2 열째에 배열된 이차적 문(327)의 행 번호(322)가 설정되어 있으며, 이것에 의해 플로우차트(33)의 행을 이차적 모듈(32)의 행(320)에 각각 대응지을 수 있다. 또한, 행 번호(322)에 한정하지 않고, 행(320)의 임의의 항목을 플로우차트(33)에 설정할 수가 있다.
이상의 설명으로부터 이해되는 바와 같이, 본 실시 형태에 의한 플로우차트(33)의 열은, IF문에 의한 계층이 깊어짐에 따라 증가한다. 환언하면, 이차적 모듈(32) 중, 보다 복잡한 조건문이 기술되어 있는 부분은, 표의 열방향으로 연장되도록 하여 표시된다. 따라서, 플로우차트(33)를 표시장치(50)에 표시시키고, 좌우의 열로 배열되어 표시된 실행문을 비교해봄으로써, 조건식의 성부(成否)에 따른 처리의 상이를 파악할 수가 있다. 플로우차트(33)에 있어서의 처리의 블록을 채색하여 표시장치(50)에 표시시킬 수도 있다. 예를 들면, 플로우차트(33)의 IF 및 END-IF가 설정된 란에 소정의 배경색(A)을 설정하고, THEN의 경우에 실행되는 이차적 문(327)에 소정의 배경색(B)을 설정하며, ELSE의 경우에 실행되는 이차적 문(327)에 소정의 배경색(C)을 설정할 수가 있다. 이와 같이 함으로써, 플로우차트(33)를 표시장치(50)에 표시시켰을 때에, IF문에 의한 계층 구조를 배경색의 조합에 의한 패턴으로서 시각적으로 파악하는 것이 가능하다.
도 7에 나타내는 바와 같이, 본 실시 형태에 의한 매트릭스(34)는, 행 번호의 열(제1 열째)과, 일련 번호의 열(제2 열째)과, 이차적 문의 열(제3 열째)과, 1이상의 관련 표시열(제4 열째 이후)로 이루어지는 표이다. 열의 각각은 1이상의 행을 구비하고 있다.
행 번호의 열, 일련 번호의 열, 및 이차적 문의 열에는, 이차적 모듈(32)의 행 번호(322), 일련 번호(326), 및 이차적 문(327)이 각각 설정된다. 더욱이, 예를 들면 이차적 문의 열에는, 표시 속성(328)에 근거한 표시 속성이 설정된다. 상기의 항목에 대신하여 또는 상기의 항목에 더하여, 행(320)의 임의의 항목을 매트릭스(34)에 설정할 수가 있다.
관련 표시열의 열 수(數)는, 이차적 모듈(32)의 이차적 문(327)에 기술되어 있는 IF문에 의해 정해진다. 예를 들면, 이차적 모듈(32)에, THEN과 ELSE를 각각 1개만 가지는 IF문이 1개만 기술되어 있는 경우, IF문에 의한 분기수(즉, IF문에 있어서 실행되는 케이스의 수)는 2이므로, 관련 표시열의 열 수는 2이다. 예를 들면, THEN 및 ELSE의 각각에 THEN과 ELSE를 가지는 IF문이 기술되어 있는 경우, 실행되는 케이스의 수는 4(2 x 2)이므로, 관련 표시열의 열 수는 4이다. 예를 들면, 실행되는 케이스의 수가 5인 IF문이 2개 기술되어 있는 경우, 관련 표시열의 열 수는, 2개의 케이스의 수의 최대치인 5여도 좋고, 각각의 케이스를 조합한 수인 25(5 x 5)여도 좋다. 도 7에 예시되어 있는 관련 표시열의 열 수는, 각각의 IF문에 있어서 실행되는 케이스의 수의 최대치이다. 자세하게는, 도 7의 매트릭스(34)는, 케이스 C1 내지 케이스 C5의 5개의 케이스에 대응하는 5열의 관련 표시열을 구비하고 있다.
관련 표시열에는, 이차적 문의 열(제3 열째)과의 관련이 설정된다. 보다 구체적으로는, 이차적 문의 열에 기술되어 있는 실행문 중, 관련 표시열과 대응하는 케이스에 있어서 실행되는 것에 대하여, 관련 표시열의 대응하는 행에 I, T, E, EI 또는 O가 설정된다. 한편, 실행되지 않는 행에는 -가 설정된다. 본 실시 형태에 의하면, I, T, E, EI 및 O의 각각은, 실행문이 IF문의 IF, THEN, ELSE, END-IF 및 IF문 이외의 실행문인 것을 나타내고 있다. 실행문 이외의 문(예를 들면 코멘트문)과 대응하는 행에는 *가 설정된다.
이상의 설명으로부터 이해되는 바와 같이, 본 실시 형태에 의한 매트릭스(34)를 표시장치(50)에 표시시킴으로써, 이차적 문의 열에 표시되는 실행문과, 관련 표시열에 표시되는 케이스와의 관련을 파악할 수가 있다. 또, 메인티넌스에 있어서 실행문을 변경했을 경우에 필요한 테스트케이스를 파악할 수가 있다.
이하, 이상과 같이 구성된 장치(10)의 기능 및 동작에 대해 상세하게 설명한다.
도 8로부터 이해되는 바와 같이, 본 실시 형태에 의한 변환 수단(21)은, 제어 정보 취득 기능(S800)과, 판독 기능(S802, S804)과, 변환 기능(S806~S812)과, 기입 기능(S814)을 가지고 있다. 제어 정보 취득 기능은, 전개 제어 정보를 취득하는 기능이다. 판독 기능은, 모듈(31) 중 처리 대상으로 하는 대상 모듈(31)을 기억장치(30)로부터 읽어들이는 기능이다. 변환 기능은, 대상 모듈(31)을 이차적 모듈(32)로 변환하는 기능이다. 기입 기능은, 이차적 모듈(32)을 기억장치(30)에 기억하는 기능이다.
보다 구체적으로는, 도 8에 나타내는 바와 같이, 변환 수단(21)은, 예를 들면 입력장치(40)로부터 입력된 기동(起動) 지시에 의해 기동되면, 예를 들면 기동 지시의 일부로서 입력된 전개 제어 정보를 취득한다(S800). 본 실시 형태에 의한 전개 제어 정보에는, 전개 제한 지시를 포함시킬 있다. 전개 제한 지시는, 실행 대상인 섹션 또는 호출 대상인 모듈(31)의 문(312)에 기술되어 있는 문의 전개를 첫회로만 제한하는 것을 지시하는 것이다.
다음에, 변환 수단(21)은, 대상 모듈(31)을 특정하는 대상 모듈명을 취득한다(S802). 대상 모듈명은, 전개 제어 정보와 같은 방법으로 취득할 수가 있다. 변환 수단(21)은, 취득한 대상 모듈명에 의해 특정되는 대상 모듈(31)을 기억장치(30)로부터 읽어들인다(S804). 이때, 예를 들면 소정의 폴더에 기억된 모듈(31)만이 판독 대상이어도 좋다. 대상 모듈(31)이 기억장치(30)에 기억되어 있지 않은 경우, 변환 수단(21)은, 처리를 종료한다(미도시).
다음에, 변환 수단(21)은, 대상 모듈(31)의 처리 개시 부분의 문(312)을 취득한다(S806). 본 실시 형태에 의한 처리 개시 부분은, 메인 섹션의 선두이다. 변환 수단(21)은, 취득한 문(312)에 대하여 이차적 문 출력 처리를 행한다(S808). 다음에, 변환 수단(21)은, 처리 종료 부분의 문(312)을 처리완료인지 판정한다(S810). 본 실시 형태에 의한 처리 종료 부분은, 메인 섹션의 말미이다. 처리완료인 경우(S810에 있어서 YES의 경우), 변환 수단(21)은, 작성한 이차적 모듈(32)을 기억장치(30)에 기입하고(S814), 처리를 종료한다. 한편, 처리완료가 아닌 경우(S810에 있어서 NO의 경우), 변환 수단(21)은, 다음에 처리할 문(312)(후속하는 행(310)의 문(312))을 취득하고(S812), 취득한 문(312)에 대하여 이차적 문 출력 처리를 행한다(S808).
도 9는, 도 8에 나타낸 변환 수단(21)의 처리(기능) 중, 이차적 문 출력 처리(S808)를 보다 상세하게 나타내는 플로우차트이다. 도 9에 나타내는 바와 같이, 변환 수단(21)은, 이차적 문 출력 처리에 있어서 문(312)을 이차적 문(327)으로서 출력한다(S900). 보다 구체적으로는, 본 실시 형태에 의하면, 문(312)에 기술되어 있는 실행문 등을 워크시트의 소정의 행·렬로 카피한다. 이때, 상술한 바와 같이, PERFORM문을 코멘트문으로 하는 등의 가공이 행해진다. 더욱이, 변환 수단(21)은, 모듈 식별(321)과, 행 번호(322)와, 일련 번호(326)와, 표시 속성(328)으로 상술한 바와 같은 값을 출력한다.
다음으로, 변환 수단(21)은, 문(312)에 조건문이 기술되어 있는지 판정한다(S902). 문(312)에 기술되어 있는 실행문이 조건문인 경우(S902에서 YES의 경우), 변환 수단(21)은, 상술한 바와 같이 IF문 이외의 조건문을 IF문으로 변환하는 등의 처리를 행한다. 보다 구체적으로는, 변환 수단(21)은, 조건문의 조건식에 근거하여, 이차적 문의 하나인 이차적 조건문(IF문)이 기술된 이차적 문(327)을 생성하고, 이차적 조건문에 의해 이차적 문(327)을 계층화하여 이차적 모듈로 출력하며(S904), 이차적 문 출력 처리를 종료한다. 상술한 이차적 조건문은, 2개의 평가 대상 오퍼랜드 간의 관계를 1개의 논리 연산자에 의해서만 평가하는 이차적 조건식이 성립하는지 여부에 따라서 실행할 이차적 문(327)을 선택하는 조건문(이차적 문(327))이다.
문(312)에 기술되어 있는 실행문(즉, 판정 대상문)이 조건문이 아닌 경우(S902에서 NO의 경우), 변환 수단(21)은, 판정 대상문이 처리 단위 실행문(본 실시 형태에 의하면, PERFORM문)인지 판정한다(S906). 판정 대상문이 처리 단위 실행문인 경우(S906에서 YES의 경우), 변환 수단(21)은, 실행 대상의 처리 단위(본 실시 형태에 의하면, 섹션)의 처리 개시 부분의 문(312)을 취득한다. 본 실시 형태에 의하면, 처리 단위의 처리 개시 부분은 섹션의 선두이다.
판정 대상문이 처리 단위 실행문이 아닌 경우(S906에서 NO의 경우), 변환 수단(21)은, 판정 대상문이 모듈 호출문(본 실시 형태에 의하면, CALL문)인지 판정한다(S910). 판정 대상문이 모듈 호출문인 경우(S910에서 YES의 경우), 변환 수단(21)은, CALL문에 의해 특정되는 호출 대상의 모듈(31)을 기억장치(30)로부터 읽어들여, 호출 대상의 모듈(31)의 처리 개시 부분의 문(312)을 취득한다. 이때, 예를 들면 대상 모듈(31)이 기억되어 있는 소정의 폴더에 기억된 모듈(31)만이 판독 대상이어도 좋다. 본 실시 형태에 의하면, 호출 대상의 모듈(31)의 처리 개시 부분은, 해당 모듈(31)의 메인 섹션의 선두이다. 판정 대상문이 모듈 호출문이 아닌 경우(S910에서 NO의 경우), 변환 수단(21)은 이차적 문 출력 처리를 종료한다.
변환 수단(21)은, 실행 대상의 섹션의 문(312) 또는 호출 대상의 모듈(31)의 문(312)에 대하여, 재귀적으로 이차적 문 출력 처리를 행한다(S916). 다음에, 변환 수단(21)은, 처리 종료 부분의 문(312)을 처리완료인지 판정한다(S918). 본 실시 형태에 의한 처리 종료 부분은, 실행 대상의 섹션에 대해서는 해당 섹션의 말미이며, 호출 대상의 모듈(31)에 대해서는 메인 섹션의 말미이다. 처리가 종료되어 있는 경우(S918에 있어서 YES의 경우), 변환 수단(21)은, 이차적 문 출력 처리를 종료한다. 한편, 처리가 종료되어 있지 않은 경우(S918에 있어서 NO의 경우), 변환 수단(21)은, 다음에 처리할 문(312)(후속하는 행(310)의 문(312))을 취득하여(S920), 취득한 문(312)에 대해 재귀적으로 이차적 문 출력 처리를 행한다(S916).
변환 수단(21)은, 재귀적인(자기 자신을 실행하는) PERFORM문에 대해서는, 실행 대상의 섹션의 문(312)의 전개를 행하지 않는다. 마찬가지로, 변환 수단(21)은, 재귀적인(자기 자신을 호출하는) CALL문에 대해서는, 호출 대상의 모듈(31)의 문(312)의 전개를 행하지 않는다. 더욱이, 변환 수단(21)은, 전개 제어 정보에 전개 제한 지시가 지정되어 있는 경우, 이미 이차적 문 출력 처리를 행한 섹션과 섹션명이 동일한 섹션을 실행하는 PERFORM문에 대해서는, 이차적 문 출력 처리를 행하지 않는다(이것은 S906에 있어서의 처리이지만, 플로우차트 중에는 기술하고 있지 않다). 마찬가지로, 전개 제어 정보에 전개 제한 지시가 지정되어 있는 경우, 변환 수단(21)은, 이미 이차적 문 출력 처리를 행한 모듈(31)과 모듈명이 동일한 모듈(31)을 호출하는 CALL문에 대해서는, 이차적 문 출력 처리를 행하지 않는다(이것은 S910에 있어서의 처리이지만, 플로우차트 중에는 기술하고 있지 않다).
이상의 설명으로부터 이해되는 바와 같이, 변환 수단(21)의 변환 기능은, 대상 모듈(31)의 소정의 처리 개시 부분으로부터 소정의 처리 종료 부분까지 기술된 문(312)의 각각을 이차적 문(327)으로서 이차적 모듈에 차례차례 출력한다. 더욱이, 변환 수단(21)의 변환 기능은, 문(312)이 처리 단위 실행문 또는 모듈 호출문인 경우, 실행 대상인 상기 처리 단위 또는 호출 대상인 모듈(31)에 기술되어 있는 문(312)을 전개함으로써 이차적 문(327)을 생성하여 이차적 모듈(32)로 출력한다. 더욱이, 변환 수단(21)의 변환 기능은, 전개되는 문(312)에 있어서의 처리 단위 실행문 또는 모듈 호출문에 대해서도 전개를 더 행한다(즉, 재귀적으로 전개한다). 따라서, 다수의 처리 단위나 모듈(31)에 분산된 기능을, 대상 모듈(31)의 메인 섹션으로 끌어들여 한데 모을 수가 있다. 상술한 바와 같이, 본 실시 형태에 의하면, 모듈(31)에 대한 소정의 처리 개시 부분 및 소정의 처리 종료 부분은, 각각, 메인 섹션의 선두 및 말미이다. 단, 모듈(31)의 소정의 처리 개시 부분 및 소정의 처리 종료 부분은, 각각, PROCRDURE DIVISON의 선두 및 말미로 해도 좋다. 예를 들면, 소정의 처리 개시 부분 및 소정의 처리 종료 부분 중 적어도 일방을, 메인 섹션의 도중으로 하는 것도 가능하다. 단, 불필요한 전개를 피하고, 또한 충분한 전개 결과를 얻기 위해서는 본 실시 형태와 같이 하는 것이 바람직하다.
이상의 설명으로부터 이해되는 바와 같이, 본 실시 형태에 의한 변환 수단(21)의 변환 기능은, 전개 제어 정보에 전개 제한 지시가 지정되어 있는 경우, 동일한 처리 단위에 대해서는, 실행 대상인 처리 단위에 기술되어 있는 문(312)의 전개를 첫회의 1회만 행하고(즉, 동일한 처리 단위를 1회만 전개하고), 동일한 모듈(31)에 대해서는, 호출 대상인 모듈(31)에 기술되어 있는 문(312)의 전개를 첫회의 1회만 실시한다(즉, 동일한 모듈(31)을 1회만 전개한다). 단, 변환 수단(21)의 변환 기능은, 전개 제한 지시가 지정되어 있는지 여부에 관계없이, 동일한 처리 단위나 동일한 모듈(31)을 1회만 전개해도 좋다. 더욱이, 변환 수단(21)의 변환 기능은, 전개 제한 지시가 지정되어 있는지 여부에 관계없이, 동일한 처리 단위나 동일한 모듈(31)을 반복하여 전개해도 좋다.
이상에 설명한 바와 같이, 변환 수단(21)에 의해, 이차적 문(327)으로 이루어지는 이차적 모듈(32)이 기억장치(30)에 기억된다. 환언하면, 변환 수단(21)을 구비한 장치(10)는, 이차적 문(327)으로 이루어지는 이차적 모듈(32)을 기억장치(30)에 출력할 수가 있다.
도 10으로부터 이해되는 바와 같이, 본 실시 형태에 의한 가공 수단(22)은, 판독 기능(S1000, S1002)과, 계층 식별 부가 기능(S1006)과 오퍼랜드 부가 기능(S1010) 중 적어도 일방과, 기입 기능(S1014)을 가지고 있다. 판독 기능은, 처리 대상의 이차적 모듈(32)을 기억장치(30)로부터 읽어들이는 기능이다. 계층 식별 부가 기능은, 이차적 모듈(32)의 이차적 문(327)의 적어도 일부에 대하여 계층 식별(323)을 부가하는 기능이다. 본 실시 형태에 의한 계층 식별(323)은, 이차적 문(327)이 어느 계층에 위치하고 있는지를 나타내고 있다. 오퍼랜드 부가 기능은, 이차적 모듈(32)의 이차적 문(327) 중 정수 또는 변수로 이루어지는 2개의 오퍼랜드와 1개의 연산자를 포함하는 것에 대하여, 2개의 오퍼랜드(제1 오퍼랜드(325f)와 제2 오퍼랜드(325s))와 1개의 연산자(325o)로 이루어지는 오퍼랜드 정보(325)를 이차적 문(327)에 부가하는 기능이다. 기입 기능은, 계층 식별(323) 또는 오퍼랜드 정보(325)가 부가된 이차적 문(327)으로 이루어지는 이차적 모듈(32)을 기억장치(30)에 기억하는 기능이다.
보다 구체적으로는, 도 10에 나타내는 바와 같이, 가공 수단(22)은, 예를 들면 변환 수단(21)과 유사하게 기동되면, 처리 대상인 이차적 모듈(32)을 특정하기 위한 이차적 모듈명을 취득한다(S1000). 가공 수단(22)은, 취득한 이차적 모듈명에 의해 특정되는 이차적 모듈(32)을 기억장치(30)로부터 읽어들인다(S1002). 처리 대상인 이차적 모듈(32)이 기억장치(30)에 기억되어 있지 않은 경우, 가공 수단(22)은, 처리를 종료한다(미도시).
다음에, 가공 수단(22)은, 처리 대상인 이차적 모듈(32)의 처리 개시 부분의 이차적 문(327)을 취득한다(S1004). 본 실시 형태에 의한 처리 개시 부분은, 이차적 모듈(32)의 선두이다.
가공 수단(22)은, 취득한 이차적 문(327)에 대해 계층 식별(323)을 부가한다(S1006). 보다 구체적으로는, 본 실시 형태에 의한 가공 수단(22)은, 처리 대상인 이차적 모듈(32)이 기록된 워크시트(즉, 대상 워크시트)에 있어서 행(320)의 계층 식별(323)과 대응하는 행·렬로, 상술한 바와 같은 분기 계층과 분기의 깊이를 설정한다. 다음으로, 가공 수단(22)은, 취득한 이차적 문(327)에 대하여 명령 식별(324)을 부가한다(S1008). 보다 구체적으로는, 본 실시 형태에 의한 가공 수단(22)은, 대상 워크시트에 있어서 행(320)의 명령 식별(324)과 대응하는 행·렬로, 상술한 바와 같은 명령명과, 조건 명령 식별과, 처리 명령 식별을 설정한다. 다음에, 가공 수단(22)은, 취득한 이차적 문(327)에 대하여 오퍼랜드 정보(325)를 부가한다(S1010). 보다 구체적으로는, 본 실시 형태에 의한 가공 수단(22)은, 대상 워크시트에 있어서 행(320)의 오퍼랜드 정보(325)와 대응하는 행·렬로, 상술한 바와 같은 제1 오퍼랜드(325f)와, 연산자(325o)와, 제2 오퍼랜드(325s)를 설정한다.
다음에, 가공 수단(22)은, 처리 종료 부분의 이차적 문(327)을 처리완료인지 판정한다(S1012). 본 실시 형태에 의한 처리 종료 부분은, 이차적 모듈(32)의 말미이다. 처리가 종료되어 있는 경우(S1012에 있어서 YES의 경우), 가공 수단(22)은, 가공한 이차적 모듈(32)을 기억장치(30)에 기입하고(S1014), 처리를 종료한다. 한편, 처리가 종료되어 있지 않은 경우(S1012에 있어서 NO의 경우), 가공 수단(22)은, 다음에 처리할 이차적 문(327)(후속하는 행(320)의 이차적 문(327))을 취득하고(S1016), 취득한 이차적 문(327)에 대하여 계층 식별(323)의 부가 등을 행한다(S1006~S1010).
이상에 설명한 바와 같이, 가공 수단(22)에 의해, 계층 식별(323), 명령 식별(324) 및 오퍼랜드 정보(325)가 부가된 이차적 문(327)으로 이루어지는 이차적 모듈(32)(본 실시 형태에 의하면, 계층 식별(323) 등이 추기(追記)된 워크시트)가 기억장치(30)에 기억된다. 환언하면, 가공 수단(22)을 구비한 장치(10)는, 계층 식별(323), 명령 식별(324) 및 오퍼랜드 정보(325)가 부가된 이차적 문(327)으로 이루어지는 이차적 모듈(32)을 기억장치(30)에 출력할 수가 있다.
가공 수단(22)은, 계층 식별(323)의 부가(S1006), 명령 식별(324)의 부가(S1008) 및 오퍼랜드 정보(325)의 부가(S1010) 중 일부만을 행해도 좋다. 예를 들면, 가공 수단(22)을 기동할 때에, 입력장치(40)로부터 계층 식별(323)의 부가를 행하는지 여부의 지시를 입력해도 좋다.
더욱이, 계층 식별(323)의 부가, 명령 식별(324)의 부가 및 오퍼랜드 정보(325)의 부가 중 일부를 변환 수단(21)이 행해도 좋다. 예를 들면, 변환 수단(21)이, 이차적 모듈(32)로 출력하는 이차적 문(327)에 계층 식별(323)을 부가하는 계층 식별 부가 기능과, 이차적 문(327)에 오퍼랜드 정보(325)를 부가하는 오퍼랜드 부가 기능 중 적어도 일방을 가지도록 설계할 수도 있다.
도 11로부터 이해되는 바와 같이, 본 실시 형태에 의한 선택 수단(23)은, 판독 기능(S1100, S1102)과, 특정 정보 취득 기능(S1104)과, 선택 기능(S1106)과, 기입 기능(S1108)을 가지고 있다. 판독 기능은, 처리 대상인 이차적 모듈(32)을 기억장치(30)로부터 읽어들이는 기능이다. 특정 정보 취득 기능은, 계층 식별 특정 정보를 취득하는 기능이다. 계층 식별 특정 정보는, 처리 대상인 이차적 모듈(32)의 이차적 문(327) 중 선택 대상으로 할 것의 계층 식별(323)을 특정하고 있다. 선택 기능은, 처리 대상인 이차적 모듈(32)의 이차적 문(327) 중, 계층 식별(323)이 계층 식별 특정 정보에 의해 특정되는 계층 식별과 동일한 것을 선택하여 선택 후의 이차적 모듈(32)로 출력하는 기능이다. 기입 기능은, 선택된 이차적 문(327)으로 이루어지는 선택 후의 이차적 모듈(32)을 기억장치(30)에 기억하는 기능이다.
보다 구체적으로는, 도 11에 나타내는 바와 같이, 선택 수단(23)은, 예를 들면 변환 수단(21)과 유사하게 기동되면, 처리 대상인 이차적 모듈(32)을 특정하기 위한 이차적 모듈명을 취득한다(S1100). 선택 수단(23)은, 취득한 이차적 모듈명에 의해 특정되는 이차적 모듈(32)을 기억장치(30)로부터 읽어들인다(S1102). 처리 대상인 이차적 모듈(32)이 기억장치(30)에 기억되어 있지 않은 경우, 선택 수단(23)은, 처리를 종료한다(미도시).
다음에, 선택 수단(23)은, 계층 식별 특정 정보를 취득한다(S1104). 보다 구체적으로는, 예를 들면, 처리 대상인 이차적 모듈(32)(본 실시 형태에 의하면, 워크시트)를 표시장치(50)에 표시한 후, 워크시트의 행(320)을 표시한 행이 더블 클릭되었을 경우에, 선택 수단(23)은, 더블 클릭된 행에 표시되어 있는 계층 식별(323)을 계층 식별 특정 정보로서 취득한다.
다음으로, 선택 수단(23)은, 처리 대상인 이차적 모듈(32)의 선두의 행(320)으로부터 말미의 행(320)까지, 취득한 계층 식별 특정 정보와 계층 식별(323)을 순차 비교한다. 선택 수단(23)은, 계층 식별 특정 정보와 계층 식별(323)이 일치하는 행(320) 중 선두의 행(320)으로부터 말미의 행(320)까지의 이차적 문(327)(선택 조건을 만족하는 이차적 문(327))을 선택한다(S1106). 선택 수단(23)은, 선택 조건을 만족하는 이차적 문(327)의 행(320)으로 이루어지는 선택 후의 이차적 모듈(32)(선택 후의 워크시트)을 작성한다.
다음에, 선택 수단(23)은, 선택 후의 이차적 모듈(32)을 기억장치(30)에 기입하고(S1108), 처리를 종료한다.
이상의 설명으로부터 이해되는 바와 같이, 선택 후의 이차적 모듈(32)은, 처리 대상의 이차적 모듈(32) 중, 지정된 계층 식별(323)을 가지는 부분이다. 이와 같이 이차적 모듈(32)의 일부를 선택가능하게 함으로써, 예를 들면 메인티넌스를 행할 때, 처리에 대하여 확인하고자 하는 부분을 컴팩트하게 표시장치(50)에 표시하는 것이 가능하게 된다. 더욱이, 계층 식별(323)을 직접 지정하지 않고, 이차적 문(327)을 선택해도 좋다. 예를 들면, 선택 수단(23)은, 입력장치(40)에 의해 입력된 행 번호와 일치하는 행 번호(322)를 검색해도 좋다. 이 경우, 검색된 행 번호(322)의 계층 식별(323)에 의해 이차적 문(327)을 선택하면 좋다.
도 12로부터 이해되는 바와 같이, 본 실시 형태에 의한 표시 속성 설정 수단(24)은, 판독 기능(S1200, S1202)과, 초기 검색 문자 취득 기능(S1204)과, 표시 속성 설정 기능(S1206~S1210)과, 기입 기능(S1212)을 가지고 있다.
보다 구체적으로는, 도 12에 나타내는 바와 같이, 표시 속성 설정 수단(24)은, 예를 들면 변환 수단(21)과 유사하게 기동되면, 처리 대상의 이차적 모듈(32)을 특정하기 위한 이차적 모듈명을 취득한다(S1200). 표시 속성 설정 수단(24)은, 취득한 이차적 모듈명에 의해 특정되는 처리 대상의 이차적 모듈(32)을 기억장치(30)로부터 읽어들인다(S1202). 처리 대상의 이차적 모듈(32)이 기억장치(30)에 기억되어 있지 않은 경우, 표시 속성 설정 수단(24)은, 처리를 종료한다(미도시).
다음에, 표시 속성 설정 수단(24)은, 초기 검색 문자를 취득한다(S1204). 본 실시 형태에 의한 초기 검색 문자는 이차적 문(327)에 있어서 참조 또는 갱신되는 변수의 명칭(즉, 변수명)이다. 초기 검색 문자는, 변수명의 일부분이어도 좋고, 이차적 문(327)에 있어서 참조되는 정수여도 좋다.
다음으로, 표시 속성 설정 수단(24)은, 이차적 문(327)의 제1 오퍼랜드(325f) 또는 제2 오퍼랜드(325s) 중 초기 검색 문자를 포함하는 것을 추가 검색 문자로서 취득한다(S1206).
보다 구체적으로는, 표시 속성 설정 수단(24)은, 처리 대상인 이차적 모듈(32)의 이차적 문(327) 중, 오퍼랜드 정보(325)의 제1 오퍼랜드(325f) 또는 제2 오퍼랜드(325s)에 초기 검색 문자를 포함하고 있는 것을 검색한다. 이때, 단순하게 문자를 검색할 뿐만 아니라, 보다 고도로 문자를 검색해도 좋다. 예를 들면, 표시 속성 설정 수단(24)은, REDEFINES 구(句)에 의해 재정의된 변수를 참조하여, 재정의되는 변수명에 의해 문자 검색해도 좋다. 구체적으로는, 예를 들면 변수명 "VRBL"이 변수명 "VVV"로 재정의되고, 제1 오퍼랜드(325f)로 변수명 "VVV"가 설정되어 있으며, 또한, 초기 검색 문자가 "VRBL"인 경우, 표시 속성 설정 수단(24)은, 제1 오퍼랜드(325f)가 초기 검색 문자를 포함하고 있다고 판정해도 좋다. 상술한 REDEFINES 구에 의한 예에 한정하지 않고, 실질적으로 초기 검색 문자를 포함하고 있는지 여부를 판정해도 좋다. 예를 들면, 변환 수단(21)이 모듈(31)로부터 이차적 모듈(32)을 생성할 때에, 생성한 이차적 모듈(32)과 대응지어 모듈(31)의 DATA DIVISION을 기억장치(30)에 기억함으로써, 상술한 바와 같은 판정을 행할 수가 있다.
본 실시 형태에 의한 표시 속성 설정 수단(24)은, 제1 오퍼랜드(325f) 및 제2 오퍼랜드(325s)의 적어도 일방이 초기 검색 문자를 포함하고 있는 경우, 제1 오퍼랜드(325f)와 제2 오퍼랜드(325s)의 쌍방을 추가 검색 문자로서 취득한다.
다음에, 표시 속성 설정 수단(24)은, 새로운 추가 검색 문자가 발견되지 않게 될 때까지, 이차적 문(327)의 제1 오퍼랜드(325f) 또는 제2 오퍼랜드(325s) 중 추가 검색 문자를 포함하는 것을 추가 검색 문자로서 취득한다(S1208). 보다 구체적으로는, 표시 속성 설정 수단(24)은, 이차적 문(327) 중 오퍼랜드 정보(325)의 제1 오퍼랜드(325f) 또는 제2 오퍼랜드(325s)에 추가 검색 문자를 포함하고 있는 것을 더 검색한다. 이때의 검색 방법은 초기 검색 문자의 검색 방법과 동일하다. 따라서, 표시 속성 설정 수단(24)은, 제1 오퍼랜드(325f) 및 제2 오퍼랜드(325s)의 적어도 일방이 추가 검색 문자를 포함하고 있는 경우, 제1 오퍼랜드(325f)와 제2 오퍼랜드(325s)의 쌍방을 추가 검색 문자로서 취득한다.
다음으로, 표시 속성 설정 수단(24)은, 이차적 문(327) 중 오퍼랜드 정보(325)의 제1 오퍼랜드(325f) 또는 제2 오퍼랜드(325s)에 초기 검색 문자 또는 추가 검색 문자를 포함하고 있는 행(320)의 표시 속성(328)에, 소정의 표시 속성(예를 들면 강조 표시 가능한 배경색)을 설정한다(S1210).
다음에, 표시 속성 설정 수단(24)은, 이차적 문(327) 등에 소정의 표시 속성이 설정된 이차적 모듈(32)을 기억장치(30)에 기입한다(S1212). 즉, 표시 속성 설정 수단(24)은, 처리 대상인 이차적 모듈(32)을 갱신하고(S1212), 처리를 종료한다.
이상의 설명으로부터 이해되는 바와 같이, 표시 속성 설정 후의 이차적 모듈(32)의 이차적 문(327) 중 초기 검색 문자와 관련된 변수 또는 정수를 참조·갱신하고 있는 것에는, 소정의 배경색 등의 표시 속성이 설정된다. 따라서, 예를 들면 메인티넌스를 행할 때, 소정의 변수에 관련된 처리가 눈에 띄도록 하여 표시장치(50)에 표시하는 것이 가능하게 된다. 또, 예를 들면, 초기 검색 문자를 포함한 이차적 문(327)의 배경색과, 추가 검색 문자를 포함한 이차적 문(327)의 배경색을 다른 색으로 하면, 관련된 처리를, 보다 시각적으로 파악할 수가 있다.
도 13으로부터 이해되는 바와 같이, 본 실시 형태에 의한 플로우차트 작성 수단(25)은, 판독 기능(S1300, S1302)과, 플로우차트(flow chart) 작성 기능(S1304)과, 기입 기능(S1306)을 가지고 있다.
보다 구체적으로는, 도 13에 나타내는 바와 같이, 플로우차트 작성 수단(25)은, 예를 들면 변환 수단(21)과 유사하게 기동되면, 처리 대상인 이차적 모듈(32)을 특정하기 위한 이차적 모듈명을 취득한다(S1300). 플로우차트 작성 수단(25)은, 취득한 이차적 모듈명에 의해 특정되는 처리 대상인 이차적 모듈(32)을 기억장치(30)로부터 읽어들인다(S1302). 처리 대상인 이차적 모듈(32)이 기억장치(30)에 기억되어 있지 않은 경우, 플로우차트 작성 수단(25)은, 처리를 종료한다(미도시).
다음에, 플로우차트 작성 수단(25)은, 이차적 조건식의 성부에 각각 대응하는 이차적 문(327)을 표의 좌우에 배열한 표형식의 플로우차트(33)를 작성한다(S1304). 보다 구체적으로는, 이차적 모듈(32)의 이차적 문(327) 중 계층 식별(323)에 의해 나타나는 계층이 동일한 이차적 문(327)에 대하여, 이차적 조건식이 성립했을 경우에 실행되는 이차적 문(327)과 이차적 조건식이 성립하지 않는 경우에 실행되는 이차적 문(327)을 표의 좌우에 각각 배열한 플로우차트(33)를 작성한다. 본 실시 형태에 의한 플로우차트 작성 수단(25)은, 계층 식별(323)의 분기의 깊이가 동일하고, 또한, 분기 계층 중 말미의 1자리수("1" 또는 "2")를 제외한 부분이 동일한 경우, 계층 식별(323)에 의해 나타내는 계층이 동일하다고 판정한다. 더욱이, 플로우차트 작성 수단(25)은, 플로우차트(33)의 이차적 문(327)과 대응하도록 하여 행 번호(322)를 설정한다.
다음으로, 플로우차트 작성 수단(25)은, 플로우차트(33)를 기억 수단(30)에 기입하고(S1306), 처리를 종료한다.
도 14로부터 이해되는 바와 같이, 본 실시 형태에 의한 매트릭스 작성 수단(26)은, 판독 기능(S1400, S1402)과, 이차적 문 출력 기능(S1404)과, 케이스 생성 기능(S1406)과, 매트릭스 작성 기능(S1408, S1410)과, 기입 기능(S1412)을 가지고 있다.
보다 구체적으로는, 도 14에 나타내는 바와 같이, 매트릭스 작성 수단(26)은, 예를 들면 변환 수단(21)과 유사하게 기동되면, 처리 대상인 이차적 모듈(32)을 특정하기 위한 이차적 모듈명을 취득한다(S1400). 매트릭스 작성 수단(26)은, 취득한 이차적 모듈명에 의해 특정되는 처리 대상인 이차적 모듈(32)을 기억장치(30)로부터 읽어들인다(S1402). 처리 대상인 이차적 모듈(32)이 기억장치(30)에 기억되어 있지 않은 경우, 매트릭스 작성 수단(26)은, 처리를 종료한다(미도시).
다음에, 매트릭스 작성 수단(26)은, 이차적 문(327)을 표형식의 매트릭스(34)의 소정의 열에 출력한다(S1404). 상세하게는, 매트릭스 작성 수단(26)은, 처리 대상인 이차적 모듈(32)의 행 번호(322), 일련 번호(326), 및 이차적 문(327)을 매트릭스(34)의 소정의 열(예를 들면, 제1 열째 내지 제3 열째)의 각 행에 출력한다.
다음에, 매트릭스 작성 수단(26)은, 이차적 조건식의 성부(成否) 여부에 대한 케이스(cases)를 생성한다(S1406). 보다 구체적으로는, 매트릭스 작성 수단(26)은, 이차적 모듈(32)의 이차적 문(327)에 기술되어 있는 1이상의 이차적 조건식에 대하여, 그 모두가 성립하는 경우와, 그 일부가 성립하는 경우와, 그 모두가 성립하지 않는 경우를 포함한 모든 케이스를 생성한다. 이때, 매트릭스 작성 수단(26)은, 계층 식별(323)의 분기 식별이 "1"인 이차적 문(327)에 기술된 IF문(계층의 최상위의 IF문)마다 케이스를 작성해도 좋고, 계층의 최상위의 IF문의 각각에 대한 케이스를 조합함으로써 케이스를 작성해도 좋다. 더욱이, 매트릭스 작성 수단(26)은, 계층의 최상위의 IF문 중 일부에 대하여 케이스를 조합함으로써 케이스를 작성해도 좋다.
다음으로, 매트릭스 작성 수단(26)은, 생성한 케이스에, 매트릭스(34)의 열의 어느 것을 관련 표시열로서 각각 대응시킨다(S1408). 예를 들면, 생성한 케이스의 수가 5이면, 제1의 케이스 내지 제5의 케이스에, 제4 열째 내지 제8 열째를 각각 대응시킨다. 이 경우, 예를 들면 제3의 케이스에 대응하는 관련 표시열은 제6 열째이다.
다음에, 매트릭스 작성 수단(26)은, 관련 표시열의 각각에 대하여, 대응하는 케이스에 있어서 실행 대상인 이차적 문(327)이 출력되어 있는 행에, 이차적 문(327)이 실행 대상이 되는 것을 나타내는 표시 정보를 출력한다(S1410). 보다 구체적으로는, 상술한 바와 같이, O, I 등의 표시 정보가 출력된다.
다음으로, 매트릭스 작성 수단(26)은, 매트릭스(34)를 기억 수단(30)에 기입하고(S1412), 처리를 종료한다.
매트릭스 작성 수단(26)에 의해, 도 7 및 도 15에 나타내는 바와 같은 매트릭스(34)를 작성할 수가 있다. 도 7에 부분적으로 나타내고 있는 매트릭스(34)는, 계층의 최상위의 복수의 IF문에 대한 케이스를 각각 작성한 것이며, 케이스의 수는 5이다. 도 15에 부분적으로 나타내고 있는 매트릭스(34)는, 계층의 최상위의 복수의 IF문의 각각에 대한 케이스를 조합함으로써 케이스를 작성한 것이며, 케이스의 수는 180이다.
본 실시 형태에 의한 장치(10)는, 메인티넌스에 의해 모듈(31)이 변경되었을 경우, 모듈(31)의 변경 부분을 표시장치(50)에 시각적으로 표시할 수도 있다.
예를 들면, 도 16에 나타내는 바와 같이, CCC 모듈을 변경했을 경우, 변경 전후의 CCC 모듈을 대조함으로써, CCC 모듈에 있어서의 변경 전후의 차분(差分)을 얻을 수 있다. 변경 전후의 차분은, 예를 들면, 행마다 모듈명(CCC)을 부가하여, 텍스트 파일(차분 파일)로서 기억장치(30)에 기억할 수가 있다. 이 경우, 매트릭스 작성 수단(26)은, 하기에 설명하는 바와 같이, 차분 파일을 참조하여 매트릭스(34)를 작성해도 좋다.
도 17에 나타내는 바와 같이, 제1의 변형예에 의한 매트릭스 작성 수단(26)은, 매트릭스 작성 기능에 있어서, 기억장치(30)에 기억된 이차적 모듈(32)의 이차적 문(327)의 일부를 선택하고, 표시 속성(328)에 소정의 표시 속성을 설정한다(S1405). 보다 구체적으로는, 제1의 변형예에 의한 매트릭스 작성 수단(26)은, 기억장치(30)로부터 차분 파일을 읽어들인다. 다음으로, 매트릭스 작성 수단(26)은, 차분 파일의 각 행에 대하여, 모듈 식별(321) 및 일련 번호(326)가 일치하는 행(320)을 검색하여, 검색된 행(320)의 표시 속성(328)에 강조 표시를 위한 표시 속성(예를 들면, 배경색)을 설정한다.
또, 제1의 변형예에 의한 매트릭스 작성 수단(26)은, 관련 표시열 중 선택된 이차적 문(327)이 실행 대상이 되는 케이스에 대응하는 관련 표시열만을 기억 대상으로서 추출한다(S1411).
이상에 설명한 것 외에는, 제1의 변형예에 의한 매트릭스 작성 수단(26)은, 상술한 본 실시 형태에 의한 매트릭스 작성 수단(26)과 같은 기능을 구비하고 있다. 제1의 변형예에 의한 매트릭스 작성 수단(26)에 의해, 모듈(31)의 변경 전후의 차분과 관련된 케이스만을 매트릭스(34)로 작성할 수가 있다. 따라서, 메인티넌스에 따라 변경한 기능에 관련된 테스트 케이스를, 보다 용이하게 작성할 수가 있다. 또한, 매트릭스 작성 수단(26)은, 강조 표시를 위한 표시 속성의 설정을 행하는 한편, 실행 대상이 되는 케이스에 대응하는 관련 표시열의 추출을 행하지 않아도 좋다(제2의 변형예).
도 18로부터 이해되는 바와 같이, 매트릭스 작성 수단(26)의 제2의 변형예에 의해 작성된 매트릭스(34)를 표시장치(50)에 표시하면, 변경된 문(312)에 대응하는 행(320)(즉, 변경된 부분)과, 변경된 문(312)으로부터 생성된 이차적 문(327)의 행(320)(즉, 이차적으로 변경된 부분)이, 다른 행(320)과 다른 색으로 각각 표시된다. 따라서, 변경된 부분 및 이차적으로 변경된 부분에 있어서의 관련 표시열의 표시 내용을 보다 용이하게 시인(視認)할 수 있어, 이것에 의해 관련된 케이스를 보다 용이하게 선택할 수가 있다. 보다 구체적으로는, 변경된 부분 및 이차적으로 변경된 행의 관련 표시열에 O, I, T, E, EI 중 어느 것이 표시되어 있는 경우, 변경한 기능에 관련된 케이스라고 판단할 수가 있다.
도 18에 나타내는 바와 같이, CCC 모듈을 상술한 바와 같이 변경한 예에 있어서는, 변경한 기능에 관련된 케이스는, "C2" 내지 "C4"이다. 따라서, 제1의 변형예에 의한 매트릭스 작성 수단(26)에 의해 매트릭스(34)를 작성했을 경우, 작성된 매트릭스(34)는, 도 18의 제1 열째 내지 제3 열째 및 제5 열째 내지 제7 열째를 가지는 한편, 제4 열째와 제8 열째를 가지고 있지 않다.
도 19로부터 이해되는 바와 같이, 플로우차트 작성 수단(25)에 대해서도, 매트릭스 작성 수단(26)의 제2의 변형예와 마찬가지로 변형함으로써, 변경된 부분과 이차적으로 변경된 부분을 강조 표시할 수가 있다.
본 실시 형태에 의한 장치(10)는, 다양하게 변형하는 것이 가능하다. 예를 들면, 도 20에 나타내는 바와 같이, 장치(10)를, 변환 수단(21)을 구비하는 장치(10')와 가공 수단(22)을 구비하는 장치(10")와, 선택 수단(23) 등을 구비하는 장치(미도시)로 나누어도 좋다. 장치(10')와 장치(10")의 각각은, 통신회선(80)을 경유하여, 파일 서버(60)와 통신 가능하게 접속되어 있다. 통신회선(80)은, 예를 들면 LAN(Local Area Network)이어도 좋고, 인터넷이어도 좋다. 파일 서버(60)는, 기억장치(기억 수단)(70)를 구비하고 있다. 기억장치(70)는, 모듈(31)과, 이차적 모듈(32)과, 플로우차트(33)와, 매트릭스(34)를 기억할 수가 있다. 따라서, 장치(10')와 장치(10")는, 기억장치(70)로부터 모듈(31) 등을 읽어들이고, 기억장치(70)에 모듈(31) 등을 기입할 수가 있다.
장치(10')는, 장치 본체(20')와, 입력장치(40)와, 표시장치(50)를 구비하고 있다. 장치(10")는, 장치 본체(20')와, 입력장치(40)와, 표시장치(50)를 구비하고 있다. 장치 본체(20')는, 변환 수단(21)과 기억장치(기억 수단)(30')를 구비하고 있다. 장치 본체(20")는, 가공 수단(22)과 기억장치(기억 수단)(30")를 구비하고 있다.
본 변형예에 있어서의 기억장치(30')와 기억장치(30")는, 주(主)기억장치에 의해 구성할 수가 있다. 예를 들면, 변환 수단(21)은, 모듈(31)을 기억장치(30')로부터 읽어들일 수가 있다. 환언하면, 본 변형예에 있어서의 기억 수단은, 주로 주기억장치이다.
본 발명은 2011년 7월 25일에 일본 특허청에 제출된 일본 특허 출원 제2011-162519호에 기초하고 있으며, 그 내용은 참조함으로써 본 명세서의 일부를 구성한다.
본 발명의 최선의 실시 형태에 대해 설명했지만, 당업자에게는 명백한 바와 같이, 본 발명의 정신을 일탈하지 않는 범위에서 실시 형태를 변형하는 것이 가능하고, 그러한 실시 형태는 본 발명의 범위에 속하는 것이다.
10, 10', 10" 장치(모듈의 구조 해석을 지원하는 장치)
20, 20', 20" 장치 본체
21 변환 수단
22 가공 수단
23 선택 수단
24 표시 속성 설정 수단
25 플로우차트(flow chart) 작성 수단
26 매트릭스 작성 수단
30, 30', 30" 기억장치(기억 수단)
31 모듈(소스 프로그램)
310 행
311 일련 번호(행 식별)
312 문
32 이차적 모듈(이차적 소스 프로그램)
320 이차적 행
321 모듈 식별
322 행 번호
323 계층 식별
324 명령 식별
325 오퍼랜드 정보
325f 제1 오퍼랜드(오퍼랜드)
325o 연산자
325s 제2 오퍼랜드(오퍼랜드)
326 일련 번호(행 식별)
327 이차적 문
328 표시 속성
33 플로우차트
34 매트릭스
40 입력장치
50 표시장치
60 파일 서버
70 기억장치(기억 수단)
80 통신회선

Claims (11)

  1. 프로그램 언어에 의해 기술된 1이상의 문으로 이루어지는 모듈을 1이상의 이차적 문으로 이루어지는 이차적 모듈로 변환하고, 이것에 의해 모듈의 구조 해석을 지원하는 장치로서,
    상기 모듈은 모듈명에 의해 특정 가능하고, 상기 모듈에는 1이상의 상기 문으로 구성되는 처리 단위를 기술하는 것이 가능하며, 상기 처리 단위는 처리 단위명에 의해 특정 가능하고,
    상기 모듈에는 상기 문으로서 처리 단위 실행문과 모듈 호출문과 조건문을 기술 가능하며, 상기 처리 단위 실행문은 상기 처리 단위를 상기 처리 단위명에 의해 특정하여 실행하기 위한 상기 문이고, 상기 모듈 호출문은 상기 모듈을 상기 모듈명에 의해 특정하여 실행하기 위한 상기 문이며, 상기 조건문은 조건식이 성립할지 여부에 따라서 실행할 상기 문을 선택하기 위한 상기 문이며, 상기 조건문에는 상기 조건문에 의해 선택되는 상기 문으로서 상기 조건문이 더욱 기술 가능하고, 이것에 의해 상기 조건문에 의한 상기 문의 계층화가 가능하며,
    상기 장치는, 기억 수단과, 변환 수단을 구비하고 있고,
    상기 기억 수단에는, 1이상의 상기 모듈이 기억되어 있으며,
    상기 변환 수단은, 상기 기억 수단에 기억된 상기 모듈 중의 소정의 대상 모듈을 상기 이차적 모듈로 변환하여 상기 기억 수단에 기억하는 것이고, 상기 변환 수단은, 판독 기능과 변환 기능과 기입 기능을 가지고 있으며,
    상기 판독 기능은, 상기 대상 모듈을 상기 기억 수단으로부터 읽어들이는 기능이고,
    상기 변환 기능은, 상기 대상 모듈의 소정의 처리 개시 부분으로부터 소정의 처리 종료 부분까지 기술된 상기 문의 각각을 상기 이차적 문으로서 상기 이차적 모듈에 순차 출력하고, 상기 이차적 모듈로 출력되는 상기 문이 상기 처리 단위 실행문 또는 상기 모듈 호출문인 경우, 실행 대상인 상기 처리 단위 또는 호출 대상인 상기 모듈에 기술되어 있는 상기 문을 전개함으로써 상기 이차적 문을 생성하여 상기 이차적 모듈로 출력하며, 상기 전개되는 상기 문에 있어서의 상기 처리 단위 실행문 또는 상기 모듈 호출문에 대해서도 상기 전개를 더 행하는 기능이고,
    상기 기입 기능은, 상기 이차적 모듈을 상기 기억 수단에 기억하는 기능인
    장치.
  2. 제1항에 있어서,
    상기 변환 수단은 제어 정보 취득 기능을 더 가지고 있고, 상기 제어 정보 취득 기능은 전개 제어 정보를 취득하는 기능이며, 상기 전개 제어 정보에는 전개 제한 지시를 포함시킬 수 있고, 상기 전개 제한 지시는, 실행 대상인 상기 처리 단위 또는 호출 대상인 상기 모듈에 기술되어 있는 상기 문의 상기 전개를 첫회로만 제한하는 것을 지시하는 것이며,
    상기 변환 수단은, 상기 변환 기능에 있어서, 상기 전개 제어 정보에 상기 전개 제한 지시가 지정되어 있는 경우, 동일한 상기 처리 단위에 대해서는, 실행 대상인 상기 처리 단위에 기술되어 있는 상기 문의 상기 전개를 첫회의 1회만 행하고, 동일한 상기 모듈에 대해서는, 호출 대상인 상기 모듈에 기술되어 있는 상기 문의 상기 전개를 첫회의 1회만 행하는
    장치.
  3. 제1항에 있어서,
    상기 변환 수단은, 상기 변환 기능에 있어서, 상기 문이 상기 조건문인 경우, 상기 조건문의 상기 조건식에 근거하여 상기 이차적 문의 하나인 이차적 조건문을 생성하고, 상기 이차적 조건문에 의해 상기 이차적 문을 계층화하여 상기 이차적 모듈로 출력하며,
    상기 이차적 조건문은, 2개의 평가 대상 오퍼랜드 간의 관계를 1개의 논리 연산자에 의해서만 평가하는 이차적 조건식이 성립할지 여부에 따라 실행할 상기 이차적 문을 선택하기 위한 상기 이차적 문인
    장치.
  4. 제3항에 있어서,
    상기 변환 수단은, 계층 식별 부가 기능과 오퍼랜드 부가 기능 중의 적어도 일방을 더 가지고 있고,
    상기 계층 식별 부가 기능은, 상기 이차적 모듈로 출력하는 상기 이차적 문의 적어도 일부에 대하여 계층 식별을 부가하는 기능이며, 상기 계층 식별은 상기 이차적 문이 어느 상기 계층에 위치하고 있는지를 나타내고 있으며,
    상기 오퍼랜드 부가 기능은, 상기 이차적 모듈로 출력하는 상기 이차적 문 중 정수 또는 변수로 이루어지는 2개의 오퍼랜드와 1개의 연산자를 포함하는 것에 대하여, 2개의 상기 오퍼랜드와 1개의 상기 연산자를 포함하는 오퍼랜드 정보를 상기 이차적 문에 부가하는 기능인
    장치.
  5. 제3항에 기재된 장치에 의해 출력되는 상기 이차적 모듈을 가공하여, 이것에 의해 모듈의 구조 해석을 지원하는 장치로서,
    기억 수단과 가공 수단을 구비하고 있고,
    상기 기억 수단에는, 상기 이차적 모듈이 기억되어 있으며,
    상기 가공 수단은, 상기 기억 수단에 기억된 상기 이차적 모듈을 가공하는 것이고, 상기 가공 수단은, 판독 기능과, 계층 식별 부가 기능과 오퍼랜드 부가 기능 중의 적어도 일방과, 기입 기능을 가지고 있고,
    상기 판독 기능은, 상기 이차적 모듈을 상기 기억 수단으로부터 읽어들이는 기능이며,
    상기 계층 식별 부가 기능은, 상기 이차적 모듈의 상기 이차적 문의 적어도 일부에 대하여 계층 식별을 부가하는 기능이고, 상기 계층 식별은, 상기 이차적 문이 어느 상기 계층에 위치하고 있는지를 나타내고 있으며,
    상기 오퍼랜드 부가 기능은, 상기 이차적 모듈의 상기 이차적 문 중 정수 또는 변수로 이루어지는 2개의 오퍼랜드와 1개의 연산자를 포함하는 것에 대하여, 2개의 상기 오퍼랜드와 1개의 상기 연산자를 포함한 오퍼랜드 정보를 상기 이차적 문에 부가하는 기능이고,
    상기 기입 기능은, 상기 계층 식별 또는 상기 오퍼랜드 정보가 부가된 상기 이차적 문으로 이루어지는 상기 이차적 모듈을 상기 기억 수단에 기억하는 기능인
    장치.
  6. 제4항에 기재된 장치에 의해 출력되는 상기 이차적 모듈의 일부를 선택하여, 이것에 의해 모듈의 구조 해석을 지원하는 장치로서,
    기억 수단과 선택 수단을 구비하고 있고,
    상기 기억 수단에는, 적어도 상기 계층 식별이 부가된 상기 이차적 문으로 이루어지는 상기 이차적 모듈이 기억되어 있으며,
    상기 선택 수단은, 상기 기억 수단에 기억된 상기 이차적 모듈의 상기 이차적 문의 일부를 선택하는 것이고, 상기 선택 수단은, 판독 기능과 특정 정보 취득 기능과 선택 기능과 기입 기능을 가지고 있으며,
    상기 판독 기능은, 상기 이차적 모듈을 상기 기억 수단으로부터 읽어들이는 기능이고,
    특정 정보 취득 기능은, 계층 식별 특정 정보를 취득하는 기능이며, 상기 계층 식별 특정 정보는, 상기 이차적 문 중 선택 대상으로 할 것의 상기 계층 식별을 특정하고 있고,
    상기 선택 기능은, 상기 이차적 모듈의 상기 이차적 문 중 상기 계층 식별이 상기 계층 식별 특정 정보에 의해 특정되는 상기 계층 식별과 동일한 것을 선택하여 선택 후의 이차적 모듈로 출력하는 기능이며,
    상기 기입 기능은, 상기 선택 후의 이차적 모듈을 상기 기억 수단에 기억하는 기능인
    장치.
  7. 제4항에 기재된 장치에 의해 출력되는 상기 이차적 모듈로부터 표형식의 플로우차트(flow chart)를 작성하고, 이것에 의해 모듈의 구조 해석을 지원하는 장치로서,
    기억 수단과 플로우차트 작성 수단을 구비하고 있고,
    상기 기억 수단에는, 적어도 상기 계층 식별이 부가된 상기 이차적 문으로 이루어지는 상기 이차적 모듈이 기억되어 있으며,
    상기 플로우차트 작성 수단은, 상기 기억 수단에 기억된 상기 이차적 모듈로부터 표형식의 상기 플로우차트를 작성하는 것이고, 상기 플로우차트 작성 수단은, 판독 기능과 플로우차트 작성 기능과 기입 기능을 가지고 있으며,
    상기 판독 기능은, 상기 이차적 모듈을 상기 기억 수단으로부터 읽어들이는 기능이고,
    상기 플로우차트 작성 기능은, 상기 이차적 모듈의 상기 이차적 문 중 상기 계층 식별에 의해 나타내는 계층이 동일한 상기 이차적 문에 대하여, 상기 이차적 조건식이 성립했을 경우에 실행되는 상기 이차적 문과 상기 이차적 조건식이 성립하지 않는 경우에 실행되는 상기 이차적 문을 표의 좌우에 배열한 상기 플로우차트를 작성하는 기능이며,
    상기 기입 기능은, 상기 플로우차트를 상기 기억 수단에 기억하는 기능인
    장치.
  8. 제4항에 기재된 장치에 의해 출력되는 상기 이차적 모듈을 가공하여, 이것에 의해 모듈의 구조 해석을 지원하는 장치로서,
    기억 수단과 표시 속성 설정 수단을 구비하고 있고,
    상기 기억 수단에는, 적어도 상기 오퍼랜드 정보가 부가된 상기 이차적 문으로 이루어지는 상기 이차적 모듈이 기억되어 있으며,
    상기 표시 속성 설정 수단은, 상기 기억 수단에 기억된 상기 이차적 모듈의 상기 이차적 문에 소정의 표시 속성을 설정하는 것이고, 상기 표시 속성 설정 수단은, 판독 기능과 초기 검색 문자 취득 기능과 표시 속성 설정 기능과 기입 기능을 가지고 있으며,
    상기 판독 기능은, 상기 이차적 모듈을 상기 기억 수단으로부터 읽어들이는 기능이고,
    상기 초기 검색 문자 취득 기능은, 초기 검색 문자를 취득하는 기능이며,
    상기 표시 속성 설정 기능은, 상기 이차적 모듈의 상기 이차적 문의 상기 오퍼랜드 정보의 상기 오퍼랜드 중 상기 초기 검색 문자를 포함하고 있는 것을 추가 검색 문자로서 더 취득하고, 상기 이차적 문의 상기 오퍼랜드 정보의 상기 오퍼랜드 중 상기 추가 검색 문자를 포함하고 있는 것을 상기 추가 검색 문자로서 더 취득하며, 상기 이차적 문 중 상기 오퍼랜드 정보의 상기 오퍼랜드에 상기 초기 검색 문자 또는 상기 추가 검색 문자를 포함하고 있는 것에 상기 소정의 표시 속성을 설정하는 기능이고,
    상기 기입 기능은, 상기 이차적 문에 상기 소정의 표시 속성이 설정된 상기 이차적 모듈을 상기 기억 수단에 기억하는 기능인
    장치.
  9. 제3항에 기재된 장치에 의해 출력되는 상기 이차적 모듈로부터 표형식의 매트릭스를 작성하여, 이것에 의해 모듈의 구조 해석을 지원하는 장치로서,
    기억 수단과 매트릭스 작성 수단을 구비하고 있고,
    상기 기억 수단에는, 상기 이차적 모듈이 기억되어 있으며,
    상기 매트릭스 작성 수단은, 상기 기억 수단에 기억된 상기 이차적 모듈로부터, 복수의 열과 1이상의 행을 조합한 표형식의 상기 매트릭스를 작성하는 것이고, 상기 매트릭스 작성 수단은, 판독 기능과 이차적 문 출력 기능과 케이스 생성 기능과 매트릭스 작성 기능과 기입 기능을 가지고 있고,
    상기 판독 기능은, 상기 이차적 모듈을 상기 기억 수단으로부터 읽어들이는 기능이며,
    상기 이차적 문 출력 기능은, 상기 이차적 모듈의 상기 이차적 문을 상기 매트릭스의 소정의 열의 각 행에 출력하는 기능이고,
    상기 케이스 생성 기능은, 상기 이차적 모듈의 1이상의 상기 이차적 조건식에 대하여, 그 모두가 성립하는 경우와, 그 일부가 성립하는 경우와, 그 모두가 성립하지 않는 경우를 포함한 모든 케이스를 생성하는 기능이며,
    상기 매트릭스 작성 기능은, 생성한 상기 케이스의 각각에 상기 열의 어느 것을 관련 표시열로서 대응시키고, 상기 행에 출력된 상기 이차적 문 중 상기 관련 표시열과 대응하는 상기 케이스에 있어서 실행 대상이 되는 것이 출력되어 있는 상기 행에, 실행 대상이 되는 것을 나타내는 표시 정보를 출력하는 기능이며,
    상기 기입 기능은, 상기 매트릭스를 상기 기억 수단에 기억하는 기능인
    장치.
  10. 제9항에 있어서,
    상기 매트릭스 작성 수단은, 상기 매트릭스 작성 기능에 있어서, 상기 기억 수단에 기억된 상기 이차적 모듈의 상기 이차적 문의 일부를 선택하여, 상기 관련 표시열 중 상기 선택된 상기 이차적 문이 실행 대상이 되는 상기 케이스에 대응하는 것만을 상기 기억 대상으로서 추출하는
    장치.
  11. 컴퓨터를, 제1항 내지 제10항 중 어느 한 항에 기재된 장치로서 기능시키기 위한 프로그램을 기록한 기록매체.
KR1020147003424A 2011-07-25 2012-07-10 모듈의 구조 해석을 지원하는 장치 및 프로그램 KR101905675B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JPJP-P-2011-162519 2011-07-25
JP2011162519A JP5458065B2 (ja) 2011-07-25 2011-07-25 モジュールの構造解析を支援する装置及びプログラム
PCT/JP2012/067577 WO2013015109A1 (ja) 2011-07-25 2012-07-10 モジュールの構造解析を支援する装置及びプログラム

Publications (2)

Publication Number Publication Date
KR20140065389A KR20140065389A (ko) 2014-05-29
KR101905675B1 true KR101905675B1 (ko) 2018-10-10

Family

ID=47600962

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147003424A KR101905675B1 (ko) 2011-07-25 2012-07-10 모듈의 구조 해석을 지원하는 장치 및 프로그램

Country Status (5)

Country Link
US (1) US9128807B2 (ko)
JP (1) JP5458065B2 (ko)
KR (1) KR101905675B1 (ko)
CN (1) CN103635880B (ko)
WO (1) WO2013015109A1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015015622A1 (ja) * 2013-08-01 2015-02-05 松崎 務 装置及びプログラム
JP6366033B2 (ja) * 2014-05-09 2018-08-01 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation プログラム中のif文の最適化方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088689A1 (en) 2002-10-31 2004-05-06 Jeffrey Hammes System and method for converting control flow graph representations to control-dataflow graph representations

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01286026A (ja) * 1988-05-13 1989-11-17 Hitachi Ltd プログラムの実現仕様解析方式
JPH02140828A (ja) * 1988-11-22 1990-05-30 Nec Corp 図式プログラムエディタにおける階層別プログラム表示方式
JPH03150636A (ja) * 1989-11-08 1991-06-27 Matsushita Electric Ind Co Ltd コンパイル方法
JPH04127235A (ja) * 1990-03-09 1992-04-28 Hitachi Ltd プログラム表示方法および装置ならびにプログラム生成方法および装置
JPH03292532A (ja) * 1990-04-11 1991-12-24 Nissan Motor Co Ltd プログラム開発支援装置
JPH04165425A (ja) * 1990-10-29 1992-06-11 Nippon Telegr & Teleph Corp <Ntt> 記号列中の入れ子関係抽出方法及びその装置
US5390320A (en) * 1991-01-22 1995-02-14 Grumman Aerospace Corporation Automatically converting structured analysis tool database outputs into an integrated simulation model via transportable standardized metafile
JPH07261990A (ja) * 1994-03-23 1995-10-13 Fujitsu Ltd プログラム解析表示装置
JPH07281883A (ja) * 1994-04-06 1995-10-27 Fujitsu Ltd プログラム修正支援装置及び方法
JPH0895763A (ja) * 1994-09-22 1996-04-12 Hitachi Software Eng Co Ltd オリジナルプログラムへの部品プログラム取り込み方法
JP3262493B2 (ja) * 1996-04-12 2002-03-04 インターナショナル・ビジネス・マシーンズ・コーポレーション プログラムのデータ構造を表示する方法、及びデータ構造表示装置
JPH10320190A (ja) * 1997-05-20 1998-12-04 Fujitsu Ltd ソースプログラム経路検索装置および検索プログラムを記録した媒体
JPH11110198A (ja) 1997-10-02 1999-04-23 Fujitsu Ltd モジュール構成図自動生成装置および記録媒体
JP3418544B2 (ja) * 1998-03-24 2003-06-23 日立ソフトウエアエンジニアリング株式会社 プログラムのテストデータ自動生成装置
JP2001154835A (ja) * 1999-11-30 2001-06-08 Sharp Corp 構造化プログラム編集装置、及び構造化プログラム編集プログラムを記録した記録媒体
US7424646B2 (en) * 2004-11-30 2008-09-09 International Business Machines Corporation Imposing a logical structure on an unstructured trace record for trace analysis
JP2006209521A (ja) 2005-01-28 2006-08-10 Matsushita Electric Ind Co Ltd テスト項目自動生成装置
US20060253840A1 (en) * 2005-04-25 2006-11-09 Eologic Limited Program verification and visualization using a dynamic abstracted conceptual model
CN1949168A (zh) * 2005-10-14 2007-04-18 英业达股份有限公司 面板程序转换系统以及方法
US7568189B2 (en) * 2006-05-03 2009-07-28 Sony Computer Entertainment Inc. Code translation and pipeline optimization
US9021446B2 (en) * 2006-06-28 2015-04-28 Oracle America, Inc. Uncoverage tool
US7805705B2 (en) * 2006-08-04 2010-09-28 Apple Inc. Graphically depicting program code depth
JP2008181311A (ja) * 2007-01-24 2008-08-07 Toshiba Corp リファクタリング支援装置及びプログラム
JP5542300B2 (ja) * 2007-09-28 2014-07-09 東芝三菱電機産業システム株式会社 プログラム編集装置
US8336028B2 (en) * 2007-11-26 2012-12-18 International Business Machines Corporation Evaluating software sustainability based on organizational information
US9405555B2 (en) * 2008-05-23 2016-08-02 Microsoft Technology Licensing, Llc Automated code splitting and pre-fetching for improving responsiveness of browser-based applications
US20100042974A1 (en) * 2008-08-12 2010-02-18 International Business Machines Corporation Build optimization with applied static analysis
US8286140B2 (en) * 2008-10-10 2012-10-09 American Express Travel Related Services Company, Inc. System, computer program, and method for a static code coverage analyzer for computer programs
US8612938B2 (en) * 2009-01-05 2013-12-17 Tata Consultancy Services Limited System and method for automatic generation of test data to satisfy modified condition decision coverage

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040088689A1 (en) 2002-10-31 2004-05-06 Jeffrey Hammes System and method for converting control flow graph representations to control-dataflow graph representations

Also Published As

Publication number Publication date
KR20140065389A (ko) 2014-05-29
JP2013025716A (ja) 2013-02-04
CN103635880A (zh) 2014-03-12
WO2013015109A1 (ja) 2013-01-31
US9128807B2 (en) 2015-09-08
JP5458065B2 (ja) 2014-04-02
CN103635880B (zh) 2017-03-01
US20140196009A1 (en) 2014-07-10

Similar Documents

Publication Publication Date Title
US10970474B2 (en) Method and system for editing text with a find and replace function leveraging derivations of the find and replace input
US5371747A (en) Debugger program which includes correlation of computer program source code with optimized object code
JP4091726B2 (ja) 構造化文書の表示規則の生成方法、システムおよびプログラムが記録された媒体ならびに構造化文書およびその文書型定義の変更方法、システムおよびプログラムが記録された媒体
Schulte et al. A multi-language computing environment for literate programming and reproducible research
EP2577460B1 (en) Generating text manipulation programs using input-output examples
US6219831B1 (en) Device and method for converting computer programming languages
US7921359B2 (en) Computer-implemented system and method for tagged and rectangular data processing
JPH0969101A (ja) 構造化文書生成方法および装置
JPH0830620A (ja) 構造検索装置
JPH07219758A (ja) 仕様書生成方法
US6175843B1 (en) Method and system for displaying a structured document
US5765177A (en) Document processing method and apparatus for searching documents having a graph based document logic structure
KR101905675B1 (ko) 모듈의 구조 해석을 지원하는 장치 및 프로그램
JP2008165403A (ja) Xml文書の処理方法および処理プログラム
KR101578119B1 (ko) 구조 해석 장치 및 프로그램
US6981219B2 (en) Method and system for processing formulas and curves in a document
KR101705254B1 (ko) 장치 및 프로그램
Waterman Pas-ii reference manual
JPH0512020A (ja) テンプレート機能を有する紙葉類識別論理知識獲得装置
JPH02297174A (ja) 構造化文書処理システムにおけるヘッダデータ保持処理方式
Rubin et al. Using Microsoft Excel® as a Laboratory Data Management Tool
JP2004355322A (ja) 機械翻訳装置、変換ルール辞書管理装置およびプログラム
Venkatasubramanian Flowgrapher: generation of conceptual graphs from flowcharts
JPH08194706A (ja) 構造化文章作成装置
JP2008130063A (ja) Web入力画面とプログラムの開発を完全分離できる入力画面作成システム。

Legal Events

Date Code Title Description
PA0105 International application

Patent event date: 20140210

Patent event code: PA01051R01D

Comment text: International Patent Application

PG1501 Laying open of application
A201 Request for examination
PA0201 Request for examination

Patent event code: PA02012R01D

Patent event date: 20170410

Comment text: Request for Examination of Application

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20180720

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20181001

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20181002

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
PR1001 Payment of annual fee

Payment date: 20210621

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20240913

Start annual number: 7

End annual number: 7