KR102395927B1 - 기능 사양서 생성 장치 및 방법 - Google Patents
기능 사양서 생성 장치 및 방법 Download PDFInfo
- Publication number
- KR102395927B1 KR102395927B1 KR1020200113641A KR20200113641A KR102395927B1 KR 102395927 B1 KR102395927 B1 KR 102395927B1 KR 1020200113641 A KR1020200113641 A KR 1020200113641A KR 20200113641 A KR20200113641 A KR 20200113641A KR 102395927 B1 KR102395927 B1 KR 102395927B1
- Authority
- KR
- South Korea
- Prior art keywords
- function
- code
- functional
- requirement
- meaning
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/74—Reverse engineering; Extracting design information from source code
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/75—Structural analysis for program understanding
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
본 발명은 기능 사양서 생성 장치에 관한 것으로, 자동차 시스템의 기능 사양 또는 기능 요구 사항을 저장하는 시스템 기능 사양 저장부; 자동차 시스템에 적용된 소스 코드를 저장하는 소스 코드 저장부; 상기 시스템 기능 사양 저장부에 저장된 시스템 기능 사양 또는 기능 요구 사항을 분석하고, 또한 상기 소스 코드 저장부에 저장된 소스 코드를 분석하여 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하여 상호 매칭시키고, 상기 매칭된 시스템 기능 사양 또는 기능 요구 사항을 정리하여 해당 자동차 시스템에 대응하는 기능 사양서를 생성하는 제어부; 및 상기 제어부가 생성한 기능 사양서를 미리 지정된 형태로 출력하는 기능 사양서 출력부;를 포함한다.
Description
본 발명은 기능 사양서 생성 장치 및 방법에 관한 것으로, 보다 상세하게는 차량용 전장 시스템의 개발 과정에서 필요한 기능 사양서를 생성하기 위하여 차량 시스템에 적용된 코드를 분석하여 코드에 부합하는 신뢰성 있는 기능 사양서를 생성할 수 있도록 하는, 기능 사양서 생성 장치 및 방법에 관한 것이다.
최근 자동차 산업은 크게 변화되어 왔으며, 이러한 자동차 산업에 대한 변화의 대부분은 자동차의 전장화와 관련이 있으며, 이 중 80%는 소프트웨어와 관련이 있다. 이는 자동차 소프트웨어의 큰 변화를 의미하며, 점점 더 많은 연관 관계를 가진 자동차의 기능들은 더욱 더 짧아진 개발 주기와 동시에 연속적인 시리즈 개발 준비 혹은 프로젝트 등을 통한 빈번한 소프트웨어 수정 및 개발을 필요로 하고 있다. 그러나 이러한 자동차 시스템은 대체로 초기 기본 시스템으로부터 지나치게 변경됨에도 불구하고 상대적으로 적은 문서화 작업(예 : 차량별로 적용된 기능들을 문서 형태로 정리한 기능 사양서)으로 인하여 자동차 시스템을 이해하는 것은 물론 유지보수에도 어려움을 겪게 되었다.
이에 따라 다양한 기능이 차량에 적용되어 안정적으로 구동되지만, 문서(예 : 차량별로 적용된 기능들을 문서 형태로 정리한 기능 사양서)의 갱신이 제때 이루어지지 않는 기존 자동차 시스템에 대해 IEEE 1219에서는 유일하게 신뢰할 수 있는 항목을 소스코드로 정의하고 이를 다루는 방법인 역공학을 권장하고 있다.
최근 차량용 소프트웨어는 연비, 운전자 및 보행자의 안전, 그리고 운전 편의성 등과 같은 다양한 요구에 부응하기 위해 높은 복잡도를 가질 뿐만 아니라, 개발 과정에서 높은 빈도의 기능 요구 사항 변경이 이루어지고 있다. 그러므로 차량용 소프트웨어 개발에 있어서, 자동차 시스템의 기능에 대한 이해는 소프트웨어의 개발 뿐만 아니라, 기능 요구 사항 변경 및 유지 보수 측면에서 중요한 사항이라 할 수 있다. 그러나 실제 개발 현장에서는 시장의 적시성 확보를 위한 개발 시간 및 비용의 제한은 소프트웨어 개발과 검증에 더 많은 노력을 기울이게 하며, 소프트웨어 개발 과정에서 시스템 레벨의 기능 이해를 바탕으로 한 기능 요구 사항 변경 및 유지 보수를 위한 노력, 즉 기능 요구 사항 변경 및 유지 보수를 위한 문서화(예 : 차량별로 적용된 기능들을 문서 형태로 정리한 기능 사양서)가 상대적으로 부족한 실정이다.
결과적으로 초기 버전의 시스템 설계와 최종 구현된 코드 간 불일치가 심각해져, 소프트웨어 개발 시, 중복된 기능 구현에 의한 성능 감소와 기능 구현 누락에 의한 비정상적 시스템 리셋 등이 발생할 뿐만 아니라, 유지 보수를 위한 추가적인 비용도 발생할 수 있는 문제점이 있다.
이러한 문제점을 해결하기 위해 차량용 소프트웨어 개발자들은 다양한 기능들이 적용된 차량의 개발을 완료한 후, 기존 코드를 재사용하는 수준 또는 코드 레벨 기능 분석을 통한 코드 레벨 문서화를 수행하고 있으나, 여전히 시스템 레벨 기능 이해를 보장할 수 없는 상태이며, 특히 시스템 레벨의 복잡한 기능에 대한 이해도가 낮은 경우, 시스템 레벨에서 코드 내 함수들 간의 기능 연관 관계를 찾기 어렵게 되고, 이는 다시 소프트웨어에 대한 적절한 검증 및 확인(Verification and Validation)을 어렵게 하는 문제점이 있다.
이에 따라 기능 사양서의 기능 요구 사항과 차량 시스템에 적용된 코드 레벨의 각 함수를 분석하여 산출한 코드의 의미를 상기 기능 요구 사항과 매칭시키는 과정을 통해 상기 기능 사양서의 기능 요구 사항을 보완함으로써, 코드에 부합하는 신뢰성 있는 기능 사양서를 생성할 수 있도록 기술이 필요한 상황이다.
본 발명의 배경기술은 대한민국 공개특허 10-2019-0136673호(2019.12.10. 공개, 차량용 소프트웨어 진단 시스템 및 그것의 동작 방법)에 개시되어 있다.
본 발명의 일 측면에 따르면, 본 발명은 상기와 같은 문제점을 해결하기 위해 창작된 것으로서, 차량용 전장 시스템의 개발 과정에서 필요한 기능 사양서를 생성하기 위하여, 기능 사양서의 기능 요구 사항을 데이터베이스(DB)로 구축하고, 코드 레벨의 각 함수를 분석하여 코드의 대략적인 의미를 파악한 다음, 상기 파악한 코드의 대략적인 의미를 상기 기능 요구 사항과 매칭 시킨 후, 상기 코드를 상세 분석한 결과와 상기 기능 요구 사항과의 매칭을 통해 부여된 기능의 의미를 바탕으로 상기 코드의 기능을 상세하게 재정의 한 다음, 상기 재정의 된 코드의 기능을 바탕으로 상기 기능 사양서의 기능 요구 사항을 보완함으로써, 코드에 부합하는 신뢰성 있는 기능 사양서를 생성할 수 있도록 하는, 기능 사양서 생성 장치 및 방법을 제공하는 데 그 목적이 있다.
본 발명의 일 측면에 따른 기능 사양서 생성 장치는, 자동차 시스템의 기능 사양 또는 기능 요구 사항을 저장하는 시스템 기능 사양 저장부; 자동차 시스템에 적용된 소스 코드를 저장하는 소스 코드 저장부; 상기 시스템 기능 사양 저장부에 저장된 시스템 기능 사양 또는 기능 요구 사항을 분석하고, 또한 상기 소스 코드 저장부에 저장된 소스 코드를 분석하여 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하여 상호 매칭시키고, 상기 매칭된 시스템 기능 사양 또는 기능 요구 사항을 정리하여 해당 자동차 시스템에 대응하는 기능 사양서를 생성하는 제어부; 및 상기 제어부가 생성한 기능 사양서를 미리 지정된 형태로 출력하는 기능 사양서 출력부;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 상기 인식한 코드 또는 함수의 기능 사양에 해당하는 의미에 매칭되는 시스템 기능 사양 또는 기능 요구 사항이 없을 경우, 상기 인식한 코드 또는 함수의 기능 사양에 해당하는 의미에 해당하는 시스템 기능 사양 또는 기능 요구 사항을 추가로 생성하여 상기 시스템 기능 사양 저장부에 저장하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 상기 인식한 코드 또는 함수의 기능 사양에 해당하는 의미에 기초하여 매칭된 시스템 기능 사양 또는 기능 요구 사항을 바탕으로 상기 인식한 코드 또는 함수의 상세 기능을 재정의 하고, 상기 재정의 된 코드 또는 함수의 상세 기능을 바탕으로 기 매칭된 시스템 기능 사양 또는 기능 요구 사항을 보완하여 상기 시스템 기능 사양 저장부에 저장하는 것을 특징으로 한다.
본 발명에 있어서, 상기 제어부는, 시스템 기능 사양 또는 기능 요구 사항이 추가로 생성되거나 보완된 경우, 상기 추가로 생성되거나 보완된 시스템 기능 사양 또는 기능 요구 사항을 정리하여 해당 자동차 시스템에 대응하는 새로운 기능 사양서를 생성하는 것을 특징으로 한다.
본 발명에 있어서, 상기 시스템 기능 사양 저장부에 저장되는 기능 사양 또는 기능 요구 사항은, 자동차 시스템의 개발을 위하여 최초에 설계된 기능 사양서의 기능 사양 또는 기능 요구 사항, 및 자동차 시스템의 동작 탐색을 통해 도출한 기능 사양 또는 기능 요구 사항을 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 소스 코드는, 코드의 구조, 함수 명, 및 주석 정보를 포함하는 것을 특징으로 한다.
본 발명의 다른 측면에 따른 기능 사양서 생성 방법은, 제어부가 시스템 기능 사양 또는 기능 요구 사항을 시스템 기능 사양 저장부에 저장하는 단계; 상기 제어부가 소스 코드 저장부에 저장된 소스 코드를 분석하여 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하는 단계; 상기 제어부가 상기 시스템 기능 사양 또는 기능 요구 사항과 상기 인식한 코드 또는 함수의 기능 사양에 해당하는 의미를 바탕으로 시스템 기능 사양 또는 기능 요구 사항과 코드 또는 함수를 매칭시키는 단계; 상기 제어부가 상기 코드나 코드 블록 또는 함수의 구문해석을 수행하고, 상기 매칭된 시스템 기능 사양 또는 기능 요구 사항을 바탕으로 코드나 코드 블록 또는 함수의 시스템적 의미를 상세히 분석하여 상세 기능을 재정의 하는 단계; 및 상기 제어부가 상기 코드나 코드 블록 또는 함수의 정확한 의미에 따라 잘못 연결된 시스템 기능 사양 또는 기능 요구 사항과의 매칭을 수정하고 매칭이 누락된 부분을 완성하는 단계;를 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하기 위하여, 상기 제어부는, 함수 명이나 각 코드에 함께 기재된 주석이나 설명을 통해 함수 혹은 코드 블록의 기능에 대해 대략적인 의미를 파악하는 것을 특징으로 한다.
본 발명에 있어서, 상기 시스템 기능 사양 또는 기능 요구 사항과 코드 또는 함수를 매칭시키는 단계는, 상기 시스템 기능 사양 또는 기능 요구 사항과 대략적인 의미가 파악된 코드 또는 함수를 연결하여 코드 블록 또는 함수에 시스템 기능 사양에 해당하는 의미를 부여하는 과정으로서, 시스템 기능 사양 또는 기능 요구 사항과 코드 블록 또는 함수에 대한 단어의 일치 여부와 기능의 연관성에 의존하여 수행되는 것을 특징으로 한다.
본 발명에 있어서, 상기 시스템 기능 사양 저장부에 저장되는 기능 사양 또는 기능 요구 사항은, 자동차 시스템의 개발을 위하여 최초에 설계된 기능 사양서의 기능 사양 또는 기능 요구 사항, 및 자동차 시스템의 동작 탐색을 통해 도출한 기능 사양 또는 기능 요구 사항을 포함하는 것을 특징으로 한다.
본 발명에 있어서, 상기 소스 코드 저장부에 저장된 소스 코드를 분석하여 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하기 위하여, 상기 제어부는, 먼저 호출 관계 분석 과정을 거쳐 함수의 수행 순서를 나열하고, 다음 개별 함수의 의미를 함수명과 주석을 통해 정의하는 것을 특징으로 한다.
본 발명에 있어서, 상기 시스템 기능 사양 또는 기능 요구 사항과 코드 또는 함수를 매칭시키는 단계는, 상기 제어부가, 시스템 기능 사양 또는 기능 요구 사항과 코드 또는 코드 블록의 의미에 따른 단어나 문자(string) 일치 여부, 기능의 연관성, 및 함수와 기능의 수행 순서를 바탕으로 수행하는 것을 특징으로 한다.
본 발명에 있어서, 상기 코드나 코드 블록 또는 함수의 시스템적 의미를 상세히 분석하여 상세 기능을 재정의 하는 단계는, 상기 제어부가, 상기 코드 블록 또는 함수의 구문해석의 수행을 바탕으로 수행하되, 상기 구문해석은 개별 함수의 데이터 흐름과 제어흐름, 외부와의 인터페이스에 대해 상세히 분석하고, 이전에 코드 블록에 부여된 시스템의 기능을 바탕으로 함수의 의미를 해석하는 것임을 특징으로 한다.
본 발명에 있어서, 상기 잘못 연결된 시스템 기능 사양 또는 기능 요구 사항과의 매칭을 수정하고 매칭이 누락된 부분을 완성하는 단계에서, 상기 제어부는, 기 분석한 코드 블록 또는 함수의 정확한 의미에 따라 잘못 연결된 시스템 기능 사양 또는 기능 요구 사항과의 매칭을 수정하고 매칭이 누락된 부분을 보완하여 완성하는 것을 특징으로 한다.
본 발명의 일 측면에 따르면, 본 발명은 차량용 전장 시스템의 개발 과정에서 필요한 기능 사양서를 생성하기 위하여, 기능 사양서의 기능 요구 사항을 데이터베이스(DB)로 구축하고, 코드 레벨의 각 함수를 분석하여 코드의 대략적인 의미를 파악한 다음, 상기 파악한 코드의 대략적인 의미를 상기 기능 요구 사항과 매칭 시킨 후, 상기 코드를 상세 분석한 결과와 상기 기능 요구 사항과의 매칭을 통해 부여된 기능의 의미를 바탕으로 상기 코드의 기능을 상세하게 재정의 한 다음, 상기 재정의 된 코드의 기능을 바탕으로 상기 기능 사양서의 기능 요구 사항을 보완함으로써, 코드에 부합하는 신뢰성 있는 기능 사양서를 생성할 수 있도록 한다.
도 1은 본 발명의 일 실시예에 따른 기능 사양서 생성 장치의 개략적인 구성을 보인 예시도.
도 2는 본 발명의 일 실시예에 따른 기능 사양서 생성 방법을 설명하기 위한 흐름도.
도 3은 상기 도 2에 있어서, S101 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 4는 상기 도 2에 있어서, S102 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 5는 상기 도 2에 있어서, S103 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 6은 상기 도 2에 있어서, S104 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 7은 상기 도 2에 있어서, S105 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 2는 본 발명의 일 실시예에 따른 기능 사양서 생성 방법을 설명하기 위한 흐름도.
도 3은 상기 도 2에 있어서, S101 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 4는 상기 도 2에 있어서, S102 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 5는 상기 도 2에 있어서, S103 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 6은 상기 도 2에 있어서, S104 단계에 대한 설명을 보완하기 위하여 보인 예시도.
도 7은 상기 도 2에 있어서, S105 단계에 대한 설명을 보완하기 위하여 보인 예시도.
이하, 첨부된 도면을 참조하여 본 발명에 따른 기능 사양서 생성 장치 및 방법의 일 실시예를 설명한다.
이 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.
도 1은 본 발명의 일 실시예에 따른 기능 사양서 생성 장치의 개략적인 구성을 보인 예시도이다.
도 1에 도시된 바와 같이, 본 실시예에 따른 기능 사양서 생성 장치는, 시스템 기능 사양 저장부(110), 소스 코드 저장부(120), 제어부(130), 및 기능 사양서 출력부(140)를 포함한다.
상기 시스템 기능 사양 저장부(110)는, 시스템(예 : 자동차 시스템)의 기능 사양(또는 기능 요구 사항)을 저장한다.
상기 시스템 기능 사양 저장부(110)는 데이터베이스(DB) 형태로 구현된다.
예컨대 상기 시스템 기능 사양 저장부(110)에 저장되는 기능 사양(또는 기능 요구 사항)은 자동차 시스템의 개발을 위하여 최초에 설계된 기능 사양서의 기능 사양(또는 기능 요구 사항)을 포함한다. 또한 상기 시스템 기능 사양 저장부(110)에 저장되는 기능 사양(또는 기능 요구 사항)은 개발된 자동차 시스템의 동작 탐색을 통해 이 동작에 대응하는 기능 사양(또는 기능 요구 사항)이 추가될 수 있다.
상기 소스 코드 저장부(120)는, 개발 완료된 시스템(예 : 자동차 시스템)에 적용된 소스 코드(또는 코드 블록, 함수)를 저장한다.
상기 소스 코드 저장부(120)는 데이터베이스(DB) 형태로 구현된다.
예컨대 상기 소스 코드(또는 코드 블록, 함수)는 코드의 구조, 함수 명, 및 주석 정보를 포함한다. 이 때 본 실시예에서 코드 블록은 단지 코드로 간단히 기재될 수도 있다.
상기 제어부(130)는 상기 시스템 기능 사양 저장부(110)에 저장된 시스템 기능 사양(또는 기능 요구 사항)을 분석하고, 또한 상기 소스 코드 저장부(120)에 저장된 소스 코드를 분석하여 코드(또는 함수)의 의미(즉, 기능 사양에 해당하는 의미)를 인식한다.
또한 상기 제어부(130)는 상기 분석한 시스템 기능 사양(또는 기능 요구 사항)과 상기 인식한 코드(또는 함수)의 의미(즉, 기능 사양에 해당하는 의미)를 바탕으로 시스템 기능 사양(또는 기능 요구 사항)과 코드(또는 함수)를 매칭시킨다.
또한 상기 제어부(130)는 상기 인식한 코드(또는 함수)의 의미(즉, 기능 사양에 해당하는 의미)에 매칭되는 시스템 기능 사양(또는 기능 요구 사항)이 없을 경우, 상기 인식한 코드(또는 함수)의 의미(즉, 기능 사양에 해당하는 의미)에 해당하는 시스템 기능 사양(또는 기능 요구 사항)을 추가로 생성한다.
또한 상기 제어부(130)는 상기 인식한 코드(또는 함수)의 의미(즉, 기능 사양에 해당하는 의미)를 바탕으로 매칭된 시스템 기능 사양(또는 기능 요구 사항)에 기초하여 상기 인식한 코드(또는 함수)의 상세 기능을 재정의 하고, 상기 재정의된 코드(또는 함수)의 상세 기능을 바탕으로 기 매칭된 시스템 기능 사양(또는 기능 요구 사항)을 보완한다.
또한 상기 제어부(130)는 상기 추가로 생성하거나 보완한 시스템 기능 사양(또는 기능 요구 사항)을 정리하여 해당 자동차 시스템에 대응하는 새로운 기능 사양서를 생성한다.
상기 기능 사양서 출력부(140)는 상기 제어부(130)가 생성한 기능 사양서를 미리 지정된 형태(예 : 오피스 문서 형태)로 출력한다.
도 2는 본 발명의 일 실시예에 따른 기능 사양서 생성 방법을 설명하기 위한 흐름도이다.
도 2를 참조하면, 제어부(130)는 시스템 기능 사양(또는 기능 요구 사항)을 시스템 기능 사양 저장부(110)에 저장하되, 최초에 설계된 기능 사양서의 기능 사양(또는 기능 요구 사항)을 포함하고, 탐색적인 방법을 통해 자동차 시스템의 동작을 분석하여 기존 기능 사양서에서 부족하거나 실제 자동차의 동작과 상이한 기능 사양(또는 기능 요구 사항)을 추가하거나 보완한다(S101).
상기 과정을 통해 상기 시스템 기능 사양 저장부(110)에 저장되는 기능 사양(또는 기능 요구 사항)들을 정리할 경우 그 자체로 새로운 기능 사양서가 되지만, 상기 추가하거나 보완한 기능 사양(또는 기능 요구 사항)은 단지 탐색적인 방법을 통해 분석한 내용을 바탕으로 추가하거나 보완한 것이기 때문에 실제 자동차 시스템과 완전히 일치하는 것은 아니며, 누락된 기능이 있을 수 있다.
이에 따라 이후의 과정을 통해 기능 사양(또는 기능 요구 사항)의 추가나 보완이 계속해서 이루어져야 한다.
또한 상기 제어부(130)는 소스 코드 저장부(120)에 저장된 소스 코드를 분석하여 코드(또는 함수)의 의미(즉, 기능 사양에 해당하는 의미)를 인식한다(S102).
예컨대 상기 제어부(130)는 자동차 시스템에 실제 적용된 코드의 구조와 대략적인 의미를 분석한다. 즉, 함수명이나 각 코드에 함께 기재된 주석이나 설명을 통해 함수 혹은 코드 블록의 기능에 대해 대략적인 의미를 파악할 수 있다. 가령, 상기 제어부(130)는 함수명이나 각 코드에 함께 기재된 주석이나 설명을 통해 함수 혹은 코드 블록의 기능이 차선이탈 제어에 관련된 함수인지, 토크 제어에 관련된 함수인지, 마찰력 모니터링에 관련된 함수인지, 또는 속도 모니터링에 관련된 함수인지 파악할 수 있다.
참고로 상기 과정(S102)에서 분석된 코드 블록(또는 함수)의 기능은 주석과 함수 명에 의존한 것으로서, 코드에 해당하는 실제 기능과 상이할 수 있으므로, 이후 보다 상세한 코드 분석을 개선할 수 있다.
또한 상기 제어부(130)는 상기 분석한 시스템 기능 사양(또는 기능 요구 사항)과 상기 인식한 코드(또는 함수)의 의미(즉, 기능 사양에 해당하는 의미)를 바탕으로 시스템 기능 사양(또는 기능 요구 사항)과 코드(또는 함수)를 매칭시킨다(S103).
즉, 상기 과정(S101, S102)를 통해 분석한 시스템 기능 사양(또는 기능 요구 사항)과 대략적인 의미가 파악된 코드(또는 함수) 블록을 연결하여 코드 블록(또는 함수)에 시스템 기능 사양에 해당하는 의미를 부여하는 과정으로서, 시스템 기능 사양(또는 기능 요구 사항)과 코드 블록(또는 함수)에 대한 단어의 일치 여부와 기능의 연관성에 의존하여 수행된다.
참고로 상기 과정(S103)에서 매칭(또는 연결)이 누락되거나 잘못될 가능성이 있으므로, 이후 보다 상세한 코드 분석 결과를 바탕으로 매칭을 수정하거나 보완할 수 있다.
또한 상기 제어부(130)는 상기 코드 블록(또는 함수)의 구문해석을 수행하고, 상기 S103 단계에서 매칭된 시스템 기능 사양(또는 기능 요구 사항)을 바탕으로 코드 블록(또는 함수)의 시스템적 의미를 상세히 분석하여 상세 기능을 재정의 한다(S104).
또한 상기 제어부(130)는 상기 S104 단계를 통해 얻은 코드 블록(또는 함수)의 정확한 의미에 따라 잘못 연결된 시스템 기능 사양(또는 기능 요구 사항)과의 매칭(또는 연결)을 수정하고 매칭(또는 연결)이 누락된 부분을 완성한다(S105).
즉, 상기 재정의된 코드 블록(또는 함수)의 상세 기능을 바탕으로 기 매칭된 시스템 기능 사양(또는 기능 요구 사항)을 보다 구체적으로 보완한다(S105). 이로써 상기 S102 단계의 코드(또는 함수)의 의미 해석이 상이하거나 누락된 부분을 수정하거나 보완할 수 있게 된다.
도 3은 상기 도 2에 있어서, S101 단계에 대한 설명을 보완하기 위하여 보인 예시도이다.
도 3을 참조하면, 상기 시스템 기능 사양 저장부(110)에 저장되는 기능 사양(또는 기능 요구 사항)은, 자동차 시스템의 개발을 위하여 최초에 설계된 기능 사양서의 기능 사양(또는 기능 요구 사항), 및 개발된 자동차 시스템의 동작 탐색을 통해 이 동작에 대응하는 기능 사양(또는 기능 요구 사항)을 포함할 수 있다.
상기 S101 단계는, 과거에 작성된 부정확한 기능 사양서를 분석하고 자동차 시스템의 동작 상태를 탐구하여 시스템을 이해하고 시스템의 기능을 정의하는 과정으로서, 이 S101 단계에서 산출된 기능 사양(또는 기능 요구 사항)은 부정확한 기능 사양서를 통해 도출된 결과이므로 실제 구현된 시스템과 상이할 수 있다. 따라서 이 S101 단계에서 산출된 기능 사양서는 추가적으로 보완될 필요가 있다.
도 4는 상기 도 2에 있어서, S102 단계에 대한 설명을 보완하기 위하여 보인 예시도이다.
도 4를 참조하면, 상기 제어부(130)는 소스 코드 저장부(120)에 저장된 소스 코드를 분석하여 코드(또는 함수)의 의미(즉, 기능 사양에 해당하는 의미)를 인식한다(S102).
이를 위하여, 먼저 호출 관계 분석 과정을 거쳐 함수의 수행 순서(Function call sequence)를 나열한다.
이 때 함수 목록에서 세로축은 함수 수행 순서를 표현하고 가로축은 함수 호출의 깊이(depth)를 표현한다.
다음 개별 함수의 의미를 함수명과 주석을 통해 정의한다.
이 때 의미가 불분명한 함수의 경우에는 주석 자리를 비워두도록 한다. 이와 같이 함수의 의미를 알 수 없는 경우는 호출 관계상 상위 함수의 의미에 포함시킴으로써 하나의 코드 블록으로 그 의미를 정의한다. 가령 하위의 Function3의 기능은 상위의 Function2의 기능 중 일부를 구현하고 있으므로 상위 함수가 코드 블록의 대표 의미를 내포한다는 근거가 될 수 있다.
다만 여기서 개별 함수나 코드 블록의 의미는 구현된 코드가 아닌 함수명과 정확하지 않은 주석에 의해 정의 되므로 정확하지 않을 수 있음을 전제로 한다.
이 S102 단계를 통해 작은 단위의 코드가 갖는 의미를 정의함으로써 앞서 작성된 시스템 기능 요구 사항과 연결 짓고, 분석된 함수들의 수행 순서를 확인함으로써 각 기능의 수행 순서를 파악할 수 있는 기반을 마련하였다
도 5는 상기 도 2에 있어서, S103 단계에 대한 설명을 보완하기 위하여 보인 예시도이다.
상기 S102 단계를 통해 정확하지는 않지만, 시스템 기능 사양(또는 기능 요구 사항)과 작은 단위의 코드 블록에 대한 대략적 의미, 그리고 함수의 수행 순서를 도출하였다. 이에 S103 단계에서는 기능 요구 사항과 이를 구현한 함수 혹은 코드 블록을 연결(매칭)함으로써 작은 단위의 코드 블록에 시스템 기능을 부여하는 과정을 수행한다.
예컨대 시스템 기능 사양(또는 기능 요구 사항)과 코드(또는 코드 블록)의 연결은 시스템 기능 사양(또는 기능 요구 사항)과 코드(또는 코드 블록)의 의미에 따른 단어나 문자(string) 일치 여부, 기능의 연관성 그리고 함수와 기능의 수행 순서 등을 바탕으로 수행할 수 있다.
상기 S103 단계를 통해 작은 단위의 코드 블록이 시스템의 어떠한 기능을 구현하고 있는지 확인함으로써 코드가 구현한 시스템의 기능 범위를 좁힐 수 있게 된다. 다만 시스템 기능 사양(또는 기능 요구 사항)이 모든 시스템의 기능을 정확히 나열하지 못했을 가능성과 작은 단위의 코드 블록에 대한 대략적인 의미가 소스코드가 아닌 불분명한 주석과 함수 명에 의존하여 정확하지 않을 가능성이 있고, 이에 따라 연결이 누락되거나 잘못될 가능성은 있으므로, S104나 S105 단계를 통해 수정이나 보완을 수행해야 할 필요성이 있다.
도 6은 상기 도 2에 있어서, S104 단계에 대한 설명을 보완하기 위하여 보인 예시도이다.
도 6을 참조하면, 상기 제어부(130)는 상기 코드 블록(또는 함수)의 구문해석(예 : 개별 함수의 데이터 흐름과 제어흐름, 외부와의 인터페이스 등에 대해 상세히 분석하고 이전 단계를 통해 코드 블록에 부여된 시스템의 기능을 바탕으로 함수의 의미를 해석)을 수행하고, 상기 S103 단계에서 매칭된 시스템 기능 사양(또는 기능 요구 사항)을 바탕으로 코드 블록(또는 함수)의 시스템적 의미를 상세히 분석하여 상세 기능을 재정의 한다.
상기 S104 단계를 통해 이전 단계에서 정의한 코드 블록의 의미와 실제 코드가 상이하거나 혹은 누락된 부분을 보완한다.
이에 따라 기존에는 개별 함수의 분석 결과를 통해 시스템의 상세 기능을 설명하지 못하고 나아가 전체적인 시스템의 기능에 대해 이해할 수 없었으나, 본 실시예는 코드 블록(또는 함수)에 부여된 시스템의 상세 기능에 의하여 함수 분석 단계에서부터 시스템의 기능에 수렴하는 분석 결과를 도출할 수 있는 효과가 있다.
도 7은 상기 도 2에 있어서, S105 단계에 대한 설명을 보완하기 위하여 보인 예시도이다.
도 7을 참조하면, 상기 제어부(130)는 상기 S104 단계를 통해 얻은 코드 블록(또는 함수)의 정확한 의미에 따라 잘못 연결된 시스템 기능 사양(또는 기능 요구 사항)과의 매칭(또는 연결)을 수정하고 매칭(또는 연결)이 누락된 부분을 완성한다. 즉, 시스템 기능 사양(또는 기능 요구 사항)을 함수의 분석 결과에 따라 정확하게 보완하는 단계이며, 이러한 시스템 기능 사양(또는 기능 요구 사항)의 보완은 다음의 3가지 과정을 통해 달성할 수 있다.
첫 번째, 함수의 의미에 대한 상세 분석 과정을 통해 이전 과정에서 부정확하게 정의 되었던 함수의 기능에 대해 정확하고 상세하게 보완한다.
두 번째, 이전 단계에서 시스템 기능 사양(또는 기능 요구 사항)과 연결(매칭)이 누락된 함수에 대해서도 연결을 추가하고 연결된 시스템 기능 사양(또는 기능 요구 사항)을 수정하거나 보완한다.
세 번째, 자동차 시스템 탐색 과정 중 누락된 시스템 기능 사양(또는 기능 요구 사항)에 대해서도 새로 추가하여 시스템 기능 사양(또는 기능 요구 사항)에서 누락된 기능이 없도록 보완한다.
상기와 같이 본 실시예는 차량 시스템의 개발 완료 후 차량에 적용된 코드에 부합하는 새로운 기능 사양서를 생성함으로써, 차량 시스템의 개발 중 기능 요구 사항이 변경됨에 따라 수정되는 코드와 초기 설계된 기능 사양서의 내용(즉, 기능 요구 사항)간 불일치 문제를 해결할 수 있도록 하는 효과가 있다.
또한 본 실시예는 최초 설계된 기능 사양서의 기능 요구 사항과 코드 분석을 통해 변경된 기능 요구 사항을 보완하여 생성한 기능 사양서를 통해 시스템 재사용성과 유지 보수성을 향상시킬 수 있도록 하며, 최종적으로는 차량용 전장 시스템 개발 비용 및 시간을 절감할 수 있도록 하는 효과가 있다.
이상으로 본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다. 또한 본 명세서에서 설명된 구현은, 예컨대, 방법 또는 프로세스, 장치, 소프트웨어 프로그램, 데이터 스트림 또는 신호로 구현될 수 있다. 단일 형태의 구현의 맥락에서만 논의(예컨대, 방법으로서만 논의)되었더라도, 논의된 특징의 구현은 또한 다른 형태(예컨대, 장치 또는 프로그램)로도 구현될 수 있다. 장치는 적절한 하드웨어, 소프트웨어 및 펌웨어 등으로 구현될 수 있다. 방법은, 예컨대, 컴퓨터, 마이크로프로세서, 집적 회로 또는 프로그래밍 가능한 로직 디바이스 등을 포함하는 프로세싱 디바이스를 일반적으로 지칭하는 프로세서 등과 같은 장치에서 구현될 수 있다. 프로세서는 또한 최종-사용자 사이에 정보의 통신을 용이하게 하는 컴퓨터, 셀 폰, 휴대용/개인용 정보 단말기(personal digital assistant: "PDA") 및 다른 디바이스 등과 같은 통신 디바이스를 포함한다.
110 : 시스템 기능 사양 저장부
120 : 소스 코드 저장부
130 : 제어부
140 : 기능 사양서 출력부
120 : 소스 코드 저장부
130 : 제어부
140 : 기능 사양서 출력부
Claims (14)
- 자동차 시스템의 기능 사양 또는 기능 요구 사항을 저장하는 시스템 기능 사양 저장부;
자동차 시스템에 적용된 소스 코드를 저장하는 소스 코드 저장부;
상기 시스템 기능 사양 저장부에 저장된 시스템 기능 사양 또는 기능 요구 사항을 분석하고, 또한 상기 소스 코드 저장부에 저장된 소스 코드를 분석하여 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하여 상호 매칭시키고, 상기 매칭된 시스템 기능 사양 또는 기능 요구 사항을 정리하여 해당 자동차 시스템에 대응하는 기능 사양서를 생성하는 제어부; 및
상기 제어부가 생성한 기능 사양서를 미리 지정된 형태로 출력하는 기능 사양서 출력부;를 포함하되,
상기 제어부는,
상기 소스 코드 저장부에 저장된 소스 코드를 분석하여 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하기 위하여, 먼저 호출 관계 분석 과정을 거쳐 함수의 수행 순서를 나열하고, 다음 개별 함수의 의미를 함수명과 주석을 통해 정의하는 것을 특징으로 하는 기능 사양서 생성 장치.
- 제 1항에 있어서, 상기 제어부는,
상기 인식한 코드 또는 함수의 기능 사양에 해당하는 의미에 매칭되는 시스템 기능 사양 또는 기능 요구 사항이 없을 경우,
상기 인식한 코드 또는 함수의 기능 사양에 해당하는 의미에 해당하는 시스템 기능 사양 또는 기능 요구 사항을 추가로 생성하여 상기 시스템 기능 사양 저장부에 저장하는 것을 특징으로 하는 기능 사양서 생성 장치.
- 제 1항에 있어서, 상기 제어부는,
상기 인식한 코드 또는 함수의 기능 사양에 해당하는 의미에 기초하여 매칭된 시스템 기능 사양 또는 기능 요구 사항을 바탕으로 상기 인식한 코드 또는 함수의 상세 기능을 재정의 하고,
상기 재정의 된 코드 또는 함수의 상세 기능을 바탕으로 기 매칭된 시스템 기능 사양 또는 기능 요구 사항을 보완하여 상기 시스템 기능 사양 저장부에 저장하는 것을 특징으로 하는 기능 사양서 생성 장치.
- 제 1항에 있어서, 상기 제어부는,
시스템 기능 사양 또는 기능 요구 사항이 추가로 생성되거나 보완된 경우,
상기 추가로 생성되거나 보완된 시스템 기능 사양 또는 기능 요구 사항을 정리하여 해당 자동차 시스템에 대응하는 새로운 기능 사양서를 생성하는 것을 특징으로 하는 기능 사양서 생성 장치.
- 제 1항에 있어서, 상기 시스템 기능 사양 저장부에 저장되는 기능 사양 또는 기능 요구 사항은,
자동차 시스템의 개발을 위하여 최초에 설계된 기능 사양서의 기능 사양 또는 기능 요구 사항, 및
자동차 시스템의 동작 탐색을 통해 도출한 기능 사양 또는 기능 요구 사항을 포함하는 것을 특징으로 하는 기능 사양서 생성 장치.
- 제 1항에 있어서, 상기 소스 코드는,
코드의 구조, 함수 명, 및 주석 정보를 포함하는 것을 특징으로 하는 기능 사양서 생성 장치.
- 제어부가 시스템 기능 사양 또는 기능 요구 사항을 시스템 기능 사양 저장부에 저장하는 단계;
상기 제어부가 소스 코드 저장부에 저장된 소스 코드를 분석하여 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하는 단계;
상기 제어부가 상기 시스템 기능 사양 또는 기능 요구 사항과 상기 인식한 코드 또는 함수의 기능 사양에 해당하는 의미를 바탕으로 시스템 기능 사양 또는 기능 요구 사항과 코드 또는 함수를 매칭시키는 단계;
상기 제어부가 상기 코드나 코드 블록 또는 함수의 구문해석을 수행하고, 상기 매칭된 시스템 기능 사양 또는 기능 요구 사항을 바탕으로 코드나 코드 블록 또는 함수의 시스템적 의미를 상세히 분석하여 상세 기능을 재정의 하는 단계; 및
상기 제어부가 상기 코드나 코드 블록 또는 함수의 정확한 의미에 따라 잘못 연결된 시스템 기능 사양 또는 기능 요구 사항과의 매칭을 수정하고 매칭이 누락된 부분을 완성하는 단계;를 포함하되,
상기 소스 코드 저장부에 저장된 소스 코드를 분석하여 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하기 위하여,
상기 제어부는, 먼저 호출 관계 분석 과정을 거쳐 함수의 수행 순서를 나열하고, 다음 개별 함수의 의미를 함수명과 주석을 통해 정의하는 것을 특징으로 하는 기능 사양서 생성 방법.
- 제 7항에 있어서,
상기 코드 또는 함수의 기능 사양에 해당하는 의미를 인식하기 위하여,
상기 제어부는,
함수 명이나 각 코드에 함께 기재된 주석이나 설명을 통해 함수 혹은 코드 블록의 기능에 대해 대략적인 의미를 파악하는 것을 특징으로 하는 기능 사양서 생성 방법.
- 제 7항에 있어서, 상기 시스템 기능 사양 또는 기능 요구 사항과 코드 또는 함수를 매칭시키는 단계는,
상기 시스템 기능 사양 또는 기능 요구 사항과 대략적인 의미가 파악된 코드 또는 함수를 연결하여 코드 블록 또는 함수에 시스템 기능 사양에 해당하는 의미를 부여하는 과정으로서,
시스템 기능 사양 또는 기능 요구 사항과 코드 블록 또는 함수에 대한 단어의 일치 여부와 기능의 연관성에 의존하여 수행되는 것을 특징으로 하는 기능 사양서 생성 방법.
- 제 7항에 있어서, 상기 시스템 기능 사양 저장부에 저장되는 기능 사양 또는 기능 요구 사항은,
자동차 시스템의 개발을 위하여 최초에 설계된 기능 사양서의 기능 사양 또는 기능 요구 사항, 및 자동차 시스템의 동작 탐색을 통해 도출한 기능 사양 또는 기능 요구 사항을 포함하는 것을 특징으로 하는 기능 사양서 생성 방법.
- 삭제
- 제 7항에 있어서, 상기 시스템 기능 사양 또는 기능 요구 사항과 코드 또는 함수를 매칭시키는 단계는,
상기 제어부가,
시스템 기능 사양 또는 기능 요구 사항과 코드 또는 코드 블록의 의미에 따른 단어나 문자(string) 일치 여부, 기능의 연관성, 및 함수와 기능의 수행 순서를 바탕으로 수행하는 것을 특징으로 하는 기능 사양서 생성 방법.
- 제 7항에 있어서, 상기 코드나 코드 블록 또는 함수의 시스템적 의미를 상세히 분석하여 상세 기능을 재정의 하는 단계는,
상기 제어부가,
상기 코드 블록 또는 함수의 구문해석의 수행을 바탕으로 수행하되,
상기 구문해석은 개별 함수의 데이터 흐름과 제어흐름, 외부와의 인터페이스에 대해 상세히 분석하고, 이전에 코드 블록에 부여된 시스템의 기능을 바탕으로 함수의 의미를 해석하는 것임을 특징으로 하는 기능 사양서 생성 방법.
- 제 7항에 있어서, 상기 잘못 연결된 시스템 기능 사양 또는 기능 요구 사항과의 매칭을 수정하고 매칭이 누락된 부분을 완성하는 단계에서,
상기 제어부는,
기 분석한 코드 블록 또는 함수의 정확한 의미에 따라 잘못 연결된 시스템 기능 사양 또는 기능 요구 사항과의 매칭을 수정하고 매칭이 누락된 부분을 보완하여 완성하는 것을 특징으로 하는 기능 사양서 생성 방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200113641A KR102395927B1 (ko) | 2020-09-07 | 2020-09-07 | 기능 사양서 생성 장치 및 방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020200113641A KR102395927B1 (ko) | 2020-09-07 | 2020-09-07 | 기능 사양서 생성 장치 및 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20220033536A KR20220033536A (ko) | 2022-03-17 |
KR102395927B1 true KR102395927B1 (ko) | 2022-05-10 |
Family
ID=80936402
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020200113641A KR102395927B1 (ko) | 2020-09-07 | 2020-09-07 | 기능 사양서 생성 장치 및 방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR102395927B1 (ko) |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013015958A (ja) * | 2011-07-01 | 2013-01-24 | Hitachi Ltd | ソフトウェア開発成果物間の依存関係評価装置及び評価方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH05197539A (ja) * | 1992-01-17 | 1993-08-06 | Nippon Telegr & Teleph Corp <Ntt> | プログラムソースコードの整合方式 |
JPH0830448A (ja) * | 1994-07-14 | 1996-02-02 | Nec Corp | プログラム仕様整合検査装置 |
-
2020
- 2020-09-07 KR KR1020200113641A patent/KR102395927B1/ko active IP Right Grant
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2013015958A (ja) * | 2011-07-01 | 2013-01-24 | Hitachi Ltd | ソフトウェア開発成果物間の依存関係評価装置及び評価方法 |
Also Published As
Publication number | Publication date |
---|---|
KR20220033536A (ko) | 2022-03-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106528100B (zh) | 用于安全关键软件开发的基于模型的技术和过程的系统和方法 | |
McUmber et al. | A general framework for formalizing UML with formal languages | |
Waters | The programmer's apprentice: A session with KBEmacs | |
US10915422B2 (en) | Automatic setting of multitasking configurations for a code-checking system | |
CN109634600B (zh) | 一种基于安全扩展SysML和AADL模型的代码生成方法 | |
CN104267654A (zh) | 梯形图程序转换成指令表程序及其编译的方法与系统 | |
US10248409B1 (en) | Limiting the effects of source code patches on corresponding native-code patches | |
US20030226131A1 (en) | Method for semantic verification of supporting programming artefacts | |
CN112416337A (zh) | 一种面向航天嵌入式系统的软件架构开发系统 | |
Aichernig et al. | Integration of requirements engineering and test-case generation via OSLC | |
Demers | Generalized left corner parsing | |
CN105183789A (zh) | 基于git源代码冲突的文件合并方法及系统 | |
US7269820B2 (en) | Program code generator and program | |
Ratiu et al. | FASTEN: an extensible platform to experiment with rigorous modeling of safety-critical systems | |
Frehse et al. | A toolchain for verifying safety properties of hybrid automata via pattern templates | |
KR102395927B1 (ko) | 기능 사양서 생성 장치 및 방법 | |
CN114924737A (zh) | 一种电池管理系统源代码集成测试方法、测试装置及电子设备 | |
US8843908B2 (en) | Compiler validation via program verification | |
CN116431603A (zh) | Plc程序的存储和加载方法、装置和电子设备 | |
CN113126998B (zh) | 一种增量源码获取方法、装置、电子设备及存储介质 | |
CN112559359A (zh) | 一种基于s2ml的安全攸关系统分析与验证方法 | |
CN113517992B (zh) | 一种控制器局域网配置的检测方法、装置及电动汽车 | |
CN115542882B (zh) | 一种控制器接口配置方法及装置 | |
US20240037012A1 (en) | Computer-implemented method for verifying a software component of an automated driving function | |
CN113297085B (zh) | 一种基于soc平台的算法验证方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |