KR102094447B1 - Bms sw의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법 - Google Patents

Bms sw의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법 Download PDF

Info

Publication number
KR102094447B1
KR102094447B1 KR1020150169335A KR20150169335A KR102094447B1 KR 102094447 B1 KR102094447 B1 KR 102094447B1 KR 1020150169335 A KR1020150169335 A KR 1020150169335A KR 20150169335 A KR20150169335 A KR 20150169335A KR 102094447 B1 KR102094447 B1 KR 102094447B1
Authority
KR
South Korea
Prior art keywords
source code
configuration
configuration information
information
edited
Prior art date
Application number
KR1020150169335A
Other languages
English (en)
Other versions
KR20170063219A (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 KR1020150169335A priority Critical patent/KR102094447B1/ko
Publication of KR20170063219A publication Critical patent/KR20170063219A/ko
Application granted granted Critical
Publication of KR102094447B1 publication Critical patent/KR102094447B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • HELECTRICITY
    • H02GENERATION; CONVERSION OR DISTRIBUTION OF ELECTRIC POWER
    • H02JCIRCUIT ARRANGEMENTS OR SYSTEMS FOR SUPPLYING OR DISTRIBUTING ELECTRIC POWER; SYSTEMS FOR STORING ELECTRIC ENERGY
    • H02J7/00Circuit arrangements for charging or depolarising batteries or for supplying loads from batteries

Abstract

본 발명은 BMS SW의 컨피그레이션 정보를 기반으로 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법을 개시한다. 본 발명에 따르는 소스 코드 생성 장치는, 본 발명에 따르면, 기존 SW의 프로젝트에 설정된 컨피그레이션(configration) 정보를 로딩하는 컨피그레이션 로딩부; 로딩된 컨피그레이션을 구성하는 개별 항목의 편집 명령을 입력받고, 편집 처리하는 컨피그레이션 편집부; 및 편집이 완료된 컨피그레이션 정보에 대해 소스 코드의 생성 명령을 입력받고, 생성 처리하는 소스 코드 생성부를 포함하는 개발 툴을 실행한다. 본 발명에 따르면, 개발자로부터 기존 SW에 정의된 컨피그레이션 정보에 대해 편집 명령을 받아 새로운 SW의 소스 코드를 생성하고, 생성된 SW의 변경 정보를 관리하여 개발자의 노력과 시간을 줄인다.

Description

BMS SW의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법{Apparatus for generating source code of Battery Management System software and method thereof}
본 발명은 BMS SW의 소스 코드 생성 기술에 관한 것으로서, 보다 상세하게는 기존 BMS SW의 설정 정보를 재사용하여 SW의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법에 관한 것이다.
BMS SW는 개발 툴에 의해 생성될 수 있다. BMS SW는 배터리의 충방전을 제어하는 소프트웨어이다. 개발자는 개발 툴로부터 GUI를 제공받고, BMS SW의 프로젝트를 생성하고, 생성된 프로젝트에 대해 SW의 처리(processing) 및 기능(function) 사항의 항목을 컨피그레이션(configuration) 정보로 설정한다. 개발자가 소스 코드의 생성을 명령하면, 개발 툴은 설정된 컨피그레이션 정보를 기반으로 SW의 소스 코드를 자동으로 생성한다. 개발 툴로 인해 개발자는 직접 코딩하는 수고를 덜 수 있다. 자동 생성된 소스 코드는 컴파일 등을 통해 SW로 생성되고, 생성된 SW는 BMS에 의해 실행된다. 예를 들면, 전기 자동차의 경우, 배터리를 제어하는 HW로서 BMS 보드가 장착된다. BMS 보드는 BMS SW의 이미지 프로그램을 실행하고, 실행된 프로그램은 배터리의 충방전을 제어한다.
여기서, 자동차 제조사(OEM)은 자사 차량의 기능에 최적화된 배터리의 사양(예 : 용량, 전류, 전압, 온도 등)을 요구하기 때문에, 요구되는 배터리 사양을 만족하는 BMS SW의 개발 및 업그레이드가 필요하다.
하지만, 개발 툴은 기존 SW의 컨피그레이션 설정 정보를 재사용하는 것을 지원하지 않는다. 툴 컨피그레이션에는 다양한 항목이 존재하는데, 이중 OS(Operating System) 항목과 관련된 일부 정보가 재사용이 지원된다. 따라서, 개발자는 개발 툴의 개별 프로젝트마다 배터리의 요구 사항에 맞게 툴 컨피그레이션을 다시 설정해주어야 한다. 같은 제조사의 유사 프로젝트 개발을 시작할 경우 및 단순히 기존 SW 소스 파일 내에 하나의 Function을 신규 추가하기 위해서도 기존 SW의 컨피그레이션 설정 정보를 재사용하지 못하여 모든 설정을 다시 해주어야 하는 번거로움이 있었다. 이러한 개발자의 수고와 시간이 소비되는 문제를 해결하기 위해서는 개선 기술이 필요하다.
한국공개특허 10-0103916(2013.09.25.)
본 발명은 상기와 같은 종래 기술의 인식 하에 창출된 것으로서, 본 발명은 BMS SW의 컨피그레이션의 개별 항목 정보를 파일로 저장하고, 저장된 파일의 컨피그레이션 정보의 재사용 및 개발자의 편집을 지원하는 소스 코드 생성 장치 및 소스 코드 생성 방법을 제공하는데 목적이 있다.
본 발명의 다른 목적은 기존 SW의 컨피그레이션 정보를 편집하여 생성되는 새로운 소스 코드에 대해 형상 관리(configuration management)를 제공하고, 개발 이력을 버전별로 관리하는데 있다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 소스 코드 생성 장치는, 개발자에게 GUI 화면을 제공하여 BMS(Battery Management System) SW(Software)의 소스 코드를 자동 생성하는 소스 코드 생성 장치에 있어서, 기존 SW의 프로젝트에 설정된 컨피그레이션(configration) 정보를 로딩하는 컨피그레이션 로딩부; 로딩된 컨피그레이션을 구성하는 개별 항목의 편집 명령을 입력받고, 편집 처리하는 컨피그레이션 편집부; 및 편집이 완료된 컨피그레이션 정보에 대해 소스 코드의 생성 명령을 입력받고, 생성 처리하는 소스 코드 생성부를 포함한다.
본 발명에 있어서, 상기 컨피그레이션 로딩부는, 프로젝트의 생성 명령이 입력될 경우, 초기화된 컨피그레이션 정보를 로딩한다.
여기서, 상기 컨피그레이션 로딩부는, 상기 프로젝트의 파일을 읽어들이고, 읽어들인 컨피그레이션 정보를 대응되는 상기 개별 항목의 값으로 화면에 출력한다.
또한, 상기 컨피그레이션 편집부는, 개별 항목의 생성, 수정 및 삭제를 포함하는 상기 편집 명령을 입력받는다.
본 발명의 일 측면에 따르면, 상기 컨피그레이션 편집부는, 사용자 입력에 의해 편집된 항목의 모듈과 관련되는 타 모듈의 항목을 자동으로 편집 처리하고, 편집 처리된 항목과 관련되어 타 모듈의 변경이 없을 때까지 상기 편집 처리를 반복한다.
바람직하게, 상기 소스 코드 생성 장치는, 상기 컨피그레이션 정보의 저장 명령을 입력받고, 파일로 저장하는 컨피그레이션 저장부를 더 포함한다.
본 발명의 다른 측면에 따르면, 상기 소스 코드 생성 장치는, 기존 컨피그레이션 정보로부터 현재 컨피그레이션 정보의 소스 코드가 생성될 때마다, 기존 컨피그레이션과 현재 컨피그레이션의 정보를 비교하여 변경점을 파일로 저장하고, 프로젝트별로 저장된 변경점을 이용하여 개별 프로젝트의 형상 관리 및 버전별 이력 관리를 수행하는 컨피그레이션 변경 관리부를 더 포함한다.
더욱이, 상기 소스 코드는, 컴파일을 거쳐서 실행 가능한 BMS SW가 된다.
상기 기술적 과제를 해결하기 위한 본 발명에 따른 소스 코드 생성 방법은, 소스 코드 생성 장치가 개발자에게 GUI 화면을 제공하여 BMS(Battery Management System) SW(Software)의 소스 코드를 자동 생성하는 소스 코드 생성 방법에 있어서, (a)기존 SW의 프로젝트에 설정된 컨피그레이션(configration) 정보를 로딩하는 컨피그레이션 로딩 단계; (b)로딩된 컨피그레이션을 구성하는 개별 항목의 편집 명령을 입력받고, 편집 처리하는 컨피그레이션 편집 단계; 및 (c)편집이 완료된 컨피그레이션 정보에 대해 소스 코드의 생성 명령을 입력받고, 생성 처리하는 소스 코드 생성 단계를 포함하는 개발 툴을 실행한다.
본 발명의 일 측면에 따르면, 소스 코드 생성 장치가 BMS SW의 생성에 요구되는 컨피그레이션의 다양한 설정 항목에 대해 기존 SW의 설정 정보를 재사용하는 편집 기능을 개발자에게 제공함으로써 개발자의 수고와 시간을 덜어준다.
또한, 소스 코드 생성 장치가 편집을 통해 생성된 소스 코드의 형상 관리를 수행하여 변경점을 바탕으로 SW의 버전별 형상 관리 및 이력 관리를 제공하여 기존 SW의 재사용율을 높이고 편집 범위를 줄이고 신규 SW의 안정성에 기여한다.
본 명세서에 첨부되는 다음의 도면들은 본 발명의 바람직한 실시예를 예시하는 것이며, 후술한 발명의 상세한 설명과 함께 본 발명의 기술사상을 더욱 이해시키는 역할을 하는 것이므로, 본 발명은 그러한 도면에 기재된 사항에만 한정되어 해석되지 않아야 한다.
도 1은 본 발명의 일 실시예에 따른 소스 코드 생성 장치의 개략적 구성도이다.
도 2는 도 1의 소스 코드 장치의 기능도이다.
도 3은 도 1의 소스 코드 장치의 변경 이력을 관리하는 예시도이다.
도 4는 도 1의 소스 코드 장치가 제공하는 UI 화면의 예시도이다.
도 5는 도 1의 소스 코드 장치가 제공하는 변경 이력 UI의 예시도이다.
도 6은 본 발명의 일 실시예에 따른 소스 코드 생성 방법의 개략적 순서도이다.
이하, 첨부된 도면을 참조하여 본 발명의 바람직한 실시예를 상세히 설명하기로 한다. 이에 앞서, 본 명세서 및 청구 범위에 사용된 용어나 단어는 통상적이거나 사전적인 의미로 한정해서 해석되어서는 아니되며, 발명자는 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합하는 의미와 개념으로 해석되어야만 한다.
따라서, 본 명세서에 기재된 실시예와 도면에 도시된 구성은 본 발명의 가장 바람직한 일 실시예에 불과할 뿐이고 본 발명의 기술적 사상에 모두 대변하는 것은 아니므로, 본 출원 시점에 있어서 이들을 대체할 수 있는 다양한 균등물과 변형예들이 있을 수 있음을 이해하여야 한다.
도 1은 본 발명의 일 실시예에 따른 소스 코드 생성 장치(1)의 개략적 구성도이다.
본 발명의 일 실시예에 따른 소스 코드 생성 장치(1)는 컴퓨터 단말에 해당된다. 소스 코드 생성 장치는 개발 툴을 실행하고, 실행된 개발 툴은 개발자의 컨피그레이션 설계에 따라 소스 코드를 생성한다.
참고로, 소스 코드 생성 장치(1)는 도 1에서와 같이 컴퓨터 단말 단독으로 구현될 수 있으나 이에 한정하는 것은 아니다. 즉, 소스 코드 생성 장치(2)는 서버로 구축되고, 서버가 네트워크를 통해 접속하는 사용자 단말로 소스 코드의 생성 서비스를 제공하여도 무방하다.
본 발명의 일 실시예에 따른 개발 툴은 기존 컨피그레이션 정보를 로딩하는 컨피그레이션 로딩부(11), 개발자의 편집 명령에 따라 항목을 설정받는 컨피그레이션 편집부(12), 편집된 컨피그레이션 정보를 저장하는 컨피그레이션 저장부(13), 개발자의 생성 명령에 따라 소스 코드를 생성하는 소스 코드 생성부(14) 및 생성된 소스 코드의 컨피그레이션 정보에 대한 변경 이력을 관리하는 컨피그레이션 변경 관리부(15)를 포함하여 구성된다.
상기 컨피그레이션 로딩부(11)는 기존 SW의 프로젝트에 설정된 컨피그레이션 정보를 로딩한다. 개발 툴은 개발자로부터 프로젝트 불러오기 명령을 입력받고, 기존 SW의 프로젝트 파일로부터 컨피그레이션 정보를 읽어들인다.
여기서, 컨피그레이션 로딩부(11)는, 프로젝트의 파일로부터 읽어들인 컨피그레이션 정보를 대응되는 상기 개별 항목의 값으로 GUI의 화면에 출력한다.
참고로, GUI 화면을 통해 표시되는 컨피그레이션의 설정 항목은 디바이스 제어, 통신, 운영체제 및 BMS 로직 등의 다양한 항목이 있다. 디바이스 항목은 BMS SW가 제어하는 주변 장치의 항목을 말한다. BMS 로직의 항목은 배터리의 충방전을 제어하는 정보가 설정되는 항목을 말한다. 또한, BMS 로직의 항목에 설정되는 개별 기능은 동작 주기가 설정되어야 한다. 동작 주기는 자동차의 급출발 및 급제동과 같은 조건에서도 배터리가 정상적으로 반응하여 동작되기 위함이다. 개발자는 컨피그레이션의 개별 항목을 선택하고, 항목 값을 설정함으로써 BMS SW를 설계한다.
한편, 컨피그레이션 로딩부(11)가 개발자로부터 GUI 화면을 통해 프로젝트의 생성 명령을 입력받을 경우, 초기화된 컨피그레이션 정보를 로딩한다. 초기화된 컨피그레이션은 개발자가 설계하는 컨피그레이션의 모든 항목에 대해 설정 입력이 요구된다. 물론, 초기화된 컨피그레이션의 입력 설정은 기존 컨피그레이션의 편집 설정에 비해 개발자의 수고와 시간이 소요된다.
상기 컨피그레이션 편집부(12)는 GUI 화면을 통해 개발자로부터 로딩된 컨피그레이션을 구성하는 개별 항목의 편집 명령을 입력받고, 편집 처리한다. 개발자는 배터리 및 BMS의 사양에 따라 변경되는 항목에 대해서만 편집 명령을 내린다.
여기서, 컨피그레이션 편집부(12)는 개별 항목의 생성, 수정 및 삭제를 포함하는 편집 명령을 개발자로부터 입력받고, 대응하는 편집 처리를 수행한다.
특히, 상기 컨피그레이션 편집부(12)는, 사용자 입력에 의해 편집된 항목의 모듈과 관련되는 타 모듈의 항목을 자동으로 편집 처리한다. 예를 들어, 사용자가 A 컴포넌트의 a1 항목에 대해 항목 값을 변경하여 편집한 경우, 컨피그레이션 편집부(12)는 A 컴포넌트, a1 항목 및 항목 값에 의존하는 타 컴포넌트, 타 항목 및 타 항목 값을 자동으로 편집한다. 컨피그레이션 편집부(12)는 편집된 정보와 관련된 정보가 없을 때까지 상기 편집 처리를 반복한다. 즉, 사용자의 편집 입력에 의해 제 1편집이 유발될 수 있고, 제 1편집에 의해 다른 편집이 유발될 수 있는데, 이는 컴포넌트, 항목 및 항목 값의 의존 관계에 따른다. 개발 툴은 상기 의존 관계가 정의된 정보를 보유하고, 컨피그레이션 편집부(12)는 의존 관계의 정보를 참조하여 사용자의 편집 입력 또는 자동으로 편집된 항목에 대해 관련되는 전체 항목을 편집한다. 따라서, 소스 코드 생성 장치(1) 개발자의 수고와 시간을 덜어주고, 자동 편집을 통해 오류없는 BMS SW의 소스 코드를 생성한다.
상기 컨피그레이션 저장부(13)는 컨피그레이션 정보의 저장 명령을 입력받고, 프로젝트 파일로 저장한다. 소스 코드가 생성되는 경우, 컨피그레이션 정보의 저장 이벤트가 자동으로 발생된다. 본 발명은 사용자가 설정한 컨피그레이션 정보를 프로젝트 파일로 저장한다. 때문에, 사용자가 프로젝트 파일을 불러오면, 기 설정된 컨피그레이션 정보의 개별 항목을 기반으로 편집이 가능하다. 참고로, 종래 개발 툴의 경우, 컨피그레이션 정보의 재사용이 거의 불가능하였다. 하지만, 본 발명은 컨피그레이션의 각각의 설정 항목의 정보를 프로젝트 파일로 저장하므로, 저장된 컨피그레이션 정보의 재사용이 가능하다.
상기 소스 코드 생성부(14)는 개발자의 생성 명령을 입력받고, 설정된 컨피그레이션 정보에 대해 소스 코드를 생성하는 처리를 수행한다. 생성된 소스 코드는 개발자의 코드 변경이 필요없고, 컴파일을 거쳐서 실행 가능한 BMS SW가 제작된다.
상기 컨피그레이션 변경 관리부(15)는 기존 컨피그레이션 정보로부터 설정 정보가 편집되어 현재 컨피그레이션 정보의 소스 코드가 생성될 때마다, 변경된 정보를 관리한다.
구체적으로, 컨피그레이션 변경 관리부(15)는 기존 컨피그레이션과 현재 컨피그레이션의 정보를 비교하여 변경점을 파일로 저장한다. 컨피그레이션 변경 관리부(15)는 프로젝트별로 저장된 변경점을 이용하여 개별 프로젝트의 형상 관리 및 버전별 이력 관리를 포함한 변경 관리를 수행한다. 형상 관리는 컨피그레이션 정보의 변경 내용 및 이력의 추적을 수반한다. 이를 통해 SW의 버전별 변경 관리가 가능해진다.
변경 관리를 통해, 컨피그레이션 정보의 재사용은 더욱 정교해진다. 먼저, 컨피그레이션 변경 관리는 개발자의 요청에 따라 변경 관리의 이력을 제공한다. 개발자는 변경 관리의 이력을 조회하여 현재 편집을 위해 요구되는 정확한 SW 버전의 컨피그레이션을 선택할 수 있다. 예를 들어, 1, 2, 3차 버전의 컨피그레이션 정보가 있는 상태에서 개발자가 4차 버전을 개발하는 경우, 3차 버전을 기반으로 4차 버전을 개발하는 것보다 1, 2차 버전을 통해 개발하는 것이 더 효율적일 수 있는 경우가 있다. 예를 들면, 3차 버전에서 추가된 기능이 4차 버전에서 삭제되는 경우이다. 또한, 4차 버전에 요구되는 내용이 3차 버전과 충돌되는 경우, 개발자는 3차 버전의 충돌되는 항목을 삭제하는 편집을 해야 하는데, 2차 버전을 기반으로 4차 버전을 개발할 경우 삭제 편집의 수고를 제거할 수 있다. 따라서, 개발자는 1, 2, 3차 버전별 변경 이력을 조회한 후 4차 버전의 개발에 가장 적합한 이전 버전을 선택할 수 있다. 물론, 개발자에 의해 적합한 버전이 선택되기 때문에 편집 범위도 줄어드는 효과가 기대될 수 있다. 또한, 코드의 최적화된 편집을 지향하기 때문에 BMS SW의 안정성을 기할 수 있다.
도 2는 도 1의 소스 코드 장치(1)의 기능도이다.
기존 SW의 프로젝트 파일(201)은 open 및 read의 처리를 수반하여 컨피그레이션 정보가 메모리에 로딩되고, 컨피그레이션 정보가 GUI 화면으로 통해 출력된다. 개발자는 개발 사항에 맞게 컨피그레이션 정보를 편집한다. 편집된 정보는 신규 프로젝트 파일(202)로 저장된다. 이후, 기존 프로젝트 파일(201)과 신규 프로젝트 파일(202)은 컨피그레이션 정보가 비교되어 변경점 정보가 출력된다.
여기서, 변경점 정보는 기존 컨피그레이션 정보와 대비되는 현재 컨피그레이션 정보가 추가, 수정, 삭제를 포함하는 편집된 위치 및 값들의 정보를 포함한다. 변경점 정보를 확인하는 개발자는 입력으로 편집된 컴포넌트와 의존성(dependancy)을 기반으로 편집된 컴포넌트의 수정 범위 및 영향 범위를 파악할 수 있다. 변경 정도가 % 값으로 산정되면, 개발자는 BMS SW의 안정성에 대비된 잠재적 리스크 정도를 진단할 수 있다.
결론적으로, Project 파일이 저장이 이루어질 때마다 각각의 파일은 변경 이력을 갖고, 형상 관리를 통해 개발 이력으로써의 역할, 추가 개발 요소 및 안정성에 대한 이력 자료로 활용될 수가 있다.
도 3은 도 1의 소스 코드 장치(1)의 변경 이력을 관리하는 예시도이다.
설명의 편의상 버전 1.0.0의 베이스 프로젝트 파일(301)이 있는 것으로 가정한다. 이후, OEM측의 요구 사항 1에 의해 컨피그레이션 편집이 수반된다. 그러면, 요구 사항 1에 의해 컨피그레이션 정보가 편집되어 브랜치 프로젝트로서 버전 1.0.1의 SW가 생성된다. 이후, OEM측의 요구 사항 2에 의해 컨피그레이션 편집이 수반된다. 그러면, 요구 사항 2에 의해 컨피그레이션 정보가 편집되어 브랜치 프로젝트로서 버전 1.0.2의 SW가 생성된다
여기서, 1차 및 2차로 변경된 각각의 버전별 컨피그레이션 정보는 별도로 분리되어 관리된다. 개발자는 필요에 따라 버전별 변경점 정보를 확인하여 그 이력을 참조할 수 있다.
도 4는 도 1의 소스 코드 장치(1)가 제공하는 UI 화면의 예시도이다.
소스 코드 장치(1)가 프로젝트 파일을 오픈하고, 파일의 컨피그레이션 정보를 읽어들인다. 컨피그레이션 정보가 로딩되면, 로딩된 개별 항목 정보는 GUI 화면을 통해 개발자에게 제공된다. 개발자는 화면의 항목(401)에 대하여 편집을 한다. 개발자는 BMS 요구 사항에 맞게 항목의 추가, 삭제 및 변경의 편집을 한다.
편집이 완료되면, 개발자는 코드 생성의 아이콘(402)을 선택한다. 소스 코드 장치(1)는 편집된 컨피그레이션 정보를 이용하여 소스 코드를 생성한다.
여기서, 소스 코드가 생길 때마다, 소스 코드 장치(1)는 버전 관리 객체(403)를 화면에 출력한다. 버전 관리 객체(403)는 개발자가 컨피그레이션의 변경 이력에 접근하는 UI 객체이다. 소스 코드 장치(1)는 이전 버전과 신규 버전의 컨피그레이션 정보에 대한 변경 이력을 기록한다. 소스 코드 장치(1)는 기록된 변경 이력을 GUI 화면을 통해 개발자에게 제공한다.
도 5는 도 1의 소스 코드 장치(1)가 제공하는 변경 이력 UI의 예시도이다.
도 4의 화면에서 개발자는 버전 관리 객체(403)의 버튼을 선택한다. 소스 코드 장치(1)는 버전 관리 정보를 요청한 개발자에게 변경 이력 UI를 제공한다.
변경 이력 UI를 통해, 소스 코드 장치(1)는 버전 정보(501), 컨피그레이션의 변경점 정보(502) 및 소스 코드 비교 정보(503)를 개발자에게 제공한다.
개발자가 조회하고자 하는 버전 관리 객체(403)를 선택하면, 소스 코드 장치(1)는 선택된 BMS SW 버전의 변경 이력 정보를 제공한다.
변경 이력 정보에 해당되는 변경점 정보(502)의 화면 영역은 컨피그레이션 정보에서 변경된 부분에 해당되는 항목 정보, 컴포넌트 정보 등을 개발자에게 제공한다.
또한, 소스 코드 비교 정보(503)의 화면 영역은 변경점으로 인해 변경된 소스 코드를 개발자에게 제공한다.
도 6은 본 발명의 일 실시예에 따른 소스 코드 생성 방법의 개략적 순서도이다.
소스 코드 생성 장치(1)가 개발 툴을 실행한다. 실행된 개발 툴에서, 개발자는 소스 코드 생성을 위해 기존 SW의 프로젝트 파일을 불러온다. 오픈된 프로젝트 파일은 신규 소스 코드 생성을 위해 가장 적합한 파일로서 개발자에 의해 선택된 파일이다. 개발자는 개별 SW별로 변경 이력을 참조하여 새롭게 생성될 SW와 가장 적합한 SW를 선택할 수 있다.
프로젝트 파일의 오픈에 의해, 소스 코드 생성 장치(1)는 파일의 컨피그레이션 정보를 로딩한다(S11). 로딩된 컨피그레이션 정보는 화면의 GUI를 통해 대응되는 각각의 항목으로 제공된다. 컨피그레이션 정보는 다양한 항목들로 구성됨을 기 설명한 바 있다.
컨피그레이션 정보의 각각의 항목들이 GUI 화면에 출력되면, 소스 코드 생성 장치(1)는 개발자로부터 개별 항목의 편집 명령을 받고, 편집 처리한다(S12). 개발자의 편집에 의해 항목의 추가, 변경, 삭제가 발생된다.
항목의 편집이 발생되면, 소스 코드 생성 장치(1)는 편집된 정보의 컴포넌트에 의해 관련된 타 컴포넌트의 변경이 유발되는지 판단한다(S13).
타 컴포넌트의 변경이 요구되는 것으로 판단되면, 소스 코드 생성 장치(1)는 타 컴포넌트를 개발자의 편집 내용과 일치되도록 자동으로 편집한다(S14). 여기서, 소스 코드 생성 장치(1)는 개발자의 편집 및 자동 편집된 컴포넌트에 의해 유발되는 타 컴포넌트의 편집이 완료될 때까지 자동 편집의 처리를 수행한다. 자동 편집의 처리는 컴포넌트들간의 의존성에 기인한다.
개발자에 의해 소스 코드의 생성 명령이 내려지면, 소스 코드 생성 장치(1)는 개발자에 의해 설정된 컨피그레이션 정보를 이용하여 소스 코드를 생성한다(S16). 이후, 생성된 소스 코드는 컴파일을 거쳐 실행이 가능한 SW가 된다.
파일 저장 및 소스 코드 생성 등의 기 정의된 이벤트가 발생할 때마다, 소스 코드 생성 장치(1)는 컨피그레이션의 변경 정보에 해당되는 변경점을 출력하고, 그 변경점의 정보를 이용하여 프로젝트의 변경 이력을 관리한다(S17). 변경 이력의 관리는 이력 정보의 생성 및 조회를 수반한다. 변경 이력의 관리에 의해, 개발자는 기존 SW의 기능 범위를 정확히 확인하여 편집 대상의 SW 프로젝트로 선택할 수 있다. 개발자는 최적의 SW 프로젝트를 선택하여 편집함으로써 편집 범위를 최소화할 수 있고, 최소화된 편집 범위로 인해 충돌 가능성이 배제되는 안정성있는 SW 개발이 가능하다.
저장 이벤트가 발생되면, 소스 코드 생성 장치(1)는 개발자가 편집한 컨피그레이션 정보를 BMS SW의 프로젝트 파일로 저장한다(S18). 저장 이벤트는 사용자의 저장 명령 및 소스 코드 생성 등에 의해 발생될 수 있다. 물론, 저장된 파일은 다음 번 SW 개발시 오픈 기능을 통해 편집 대상이 된다.
상술한 실시예에서, "~부"라는 용어는 소스 코드 생성 장치(1)의 하드웨어적 구분을 의미하는 용어로 사용된 것이 아니다. 따라서 복수의 구성부가 하나의 구성부로 통합될 수도 있고, 하나의 구성부가 복수의 구성부로 분할될 수도 있다. 또한, 구성부는 하드웨어의 구성부를 의미할 수도 있지만, 소프트웨어의 구성부를 의미할 수도 있다. 따라서 본 발명은 "~부"라는 용어에 의해 특별히 한정되지 않음을 이해하여야 할 것이다.
본 발명은 비록 한정된 실시예와 도면에 의해 설명되었으나, 본 발명은 이것에 의해 한정되지 않으며 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자에 의해 본 발명의 기술사상과 아래에 기재될 특허청구범위의 균등범위 내에서 다양한 수정 및 변형이 가능함은 물론이다.
1 : 소스 코드 생성 장치 11 : 컨피그레이션 로딩부
12 : 컨피그레이션 편집부 13 : 컨피그레이션 저장부
14 : 소스 코드 생성부 15: 컨피그레이션 변경 관리부

Claims (16)

  1. 개발자에게 GUI 화면을 제공하여 BMS(Battery Management System) SW(Software)의 소스 코드를 자동 생성하는 소스 코드 생성 장치에 있어서,
    기존 SW의 프로젝트에 설정된 컨피그레이션(configration) 정보를 로딩하는 컨피그레이션 로딩부;
    로딩된 컨피그레이션을 구성하는 개별 항목의 편집 명령을 입력받고, 편집 처리하는 컨피그레이션 편집부;
    편집이 완료된 컨피그레이션 정보에 대해 소스 코드의 생성 명령을 입력받고, 생성 처리하는 소스 코드 생성부; 및
    기존 컨피그레이션 정보로부터 현재 컨피그레이션 정보의 소스 코드가 생성될 때마다, 기존 컨피그레이션과 현재 컨피그레이션의 정보를 비교하여 편집된 위치 및 값들의 정보를 포함하는 변경점을 파일로 저장하고, 프로젝트별로 저장된 변경점을 이용하여 개별 프로젝트의 형상 관리 및 버전별 이력 관리를 수행하는 컨피그레이션 변경 관리부
    를 포함하는 개발 툴을 실행하고,
    상기 컨피그레이션 편집부는,
    컨피그레이션을 구성하는 항목들의 의존 관계의 정보를 참조하여, 사용자 입력에 의해 편집된 항목의 모듈과 관련되는 타 모듈의 항목을 자동으로 편집 처리하고, 편집 처리된 항목과 관련되어 타 모듈의 변경이 없을 때까지 상기 편집 처리를 반복하는 것을 특징으로 하는 소스 코드 생성 장치
  2. 제 1항에 있어서,
    상기 컨피그레이션 로딩부는,
    프로젝트의 생성 명령이 입력될 경우, 초기화된 컨피그레이션 정보를 로딩하는 것을 특징으로 하는 소스 코드 생성 장치.
  3. 제 1항에 있어서,
    상기 컨피그레이션 로딩부는,
    상기 프로젝트의 파일을 읽어들이고, 읽어들인 컨피그레이션 정보를 대응되는 상기 개별 항목의 값으로 화면에 출력하는 것을 특징으로 하는 소스 코드 생성 장치.
  4. 제 1항에 있어서,
    상기 컨피그레이션 편집부는,
    개별 항목의 생성, 수정 및 삭제를 포함하는 상기 편집 명령을 입력받는 것을 특징으로 하는 소스 코드 생성 장치.
  5. 삭제
  6. 제 1항에 있어서,
    상기 소스 코드 생성 장치는,
    상기 편집이 완료된 컨피그레이션 정보의 저장 명령을 입력받고, 파일로 저장하는 컨피그레이션 저장부를 더 포함하는 것을 특징으로 하는 소스 코드 생성 장치.
  7. 삭제
  8. 제 1항에 있어서,
    상기 소스 코드는,
    컴파일을 거쳐서 실행 가능한 BMS SW가 되는 것을 특징으로 하는 소스 코드 생성 장치.
  9. 소스 코드 생성 장치가 개발자에게 GUI 화면을 제공하여 BMS(Battery Management System) SW(Software)의 소스 코드를 자동 생성하는 소스 코드 생성 방법에 있어서,
    (a)기존 SW의 프로젝트에 설정된 컨피그레이션(configration) 정보를 로딩하는 컨피그레이션 로딩 단계;
    (b)로딩된 컨피그레이션을 구성하는 개별 항목의 편집 명령을 입력받고, 편집 처리하는 컨피그레이션 편집 단계;
    (c)편집이 완료된 컨피그레이션 정보에 대해 소스 코드의 생성 명령을 입력받고, 생성 처리하는 소스 코드 생성 단계; 및
    (d)기존 컨피그레이션 정보로부터 현재 컨피그레이션 정보의 소스 코드가 생성될 때마다, 기존 컨피그레이션과 현재 컨피그레이션의 정보를 비교하여 편집된 위치 및 값들의 정보를 포함하는 변경점을 파일로 저장하고, 프로젝트별로 저장된 변경점을 이용하여 개별 프로젝트의 형상 관리 및 버전별 이력 관리를 수행하는 컨피그레이션 변경 관리 단계
    를 포함하는 개발 툴을 실행하되,
    상기 단계(b)는,
    컨피그레이션을 구성하는 항목들의 의존 관계의 정보를 참조하여, 사용자 입력에 의해 편집된 항목의 모듈과 관련되는 타 모듈의 항목을 자동으로 편집 처리하고, 편집 처리된 항목과 관련되어 타 모듈의 변경이 없을 때까지 상기 편집 처리를 반복하는 것을 특징으로 하는 소스 코드 생성 방법.
  10. 제 9항에 있어서,
    상기 단계(a)는,
    프로젝트의 생성 명령이 입력될 경우, 초기화된 컨피그레이션 정보를 로딩하는 단계인 것을 특징으로 하는 소스 코드 생성 방법.
  11. 제 9항에 있어서,
    상기 단계(a)는,
    상기 프로젝트의 파일을 읽어들이고, 읽어들인 컨피그레이션 정보를 대응되는 상기 개별 항목의 값으로 화면에 출력하는 것을 특징으로 하는 소스 코드 생성 방법.
  12. 제 9항에 있어서,
    상기 단계(b)는,
    개별 항목의 생성, 수정 및 삭제를 포함하는 상기 편집 명령을 입력받는 단계인 것을 특징으로 하는 소스 코드 생성 방법.
  13. 삭제
  14. 제 9항에 있어서,
    상기 단계(b) 이후에,
    상기 편집이 완료된 컨피그레이션 정보의 저장 명령을 입력받고, 파일로 저장하는 컨피그레이션 저장 단계를 더 포함하는 것을 특징으로 하는 소스 코드 생성 방법.
  15. 삭제
  16. 제 9항에 있어서,
    상기 소스 코드는,
    컴파일을 거쳐서 실행 가능한 BMS SW가 되는 것을 특징으로 하는 소스 코드 생성 방법.
KR1020150169335A 2015-11-30 2015-11-30 Bms sw의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법 KR102094447B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150169335A KR102094447B1 (ko) 2015-11-30 2015-11-30 Bms sw의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150169335A KR102094447B1 (ko) 2015-11-30 2015-11-30 Bms sw의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법

Publications (2)

Publication Number Publication Date
KR20170063219A KR20170063219A (ko) 2017-06-08
KR102094447B1 true KR102094447B1 (ko) 2020-03-27

Family

ID=59221605

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150169335A KR102094447B1 (ko) 2015-11-30 2015-11-30 Bms sw의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법

Country Status (1)

Country Link
KR (1) KR102094447B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111224181B (zh) * 2019-11-22 2021-08-27 东莞市振华新能源科技有限公司 电池模组管理系统
KR102624727B1 (ko) * 2021-08-12 2024-01-11 주식회사 케이티 컨피그 현행화를 위한 명령어 생성 방법 및 장치

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3968514B2 (ja) 2002-07-05 2007-08-29 ソニー株式会社 無線通信システム、無線通信装置及び無線通信方法、並びにコンピュータ・プログラム
KR101316681B1 (ko) * 2009-12-08 2013-10-10 한국전자통신연구원 모델 기반 맞춤형 에코 시스템 및 설계 방법
KR102060023B1 (ko) * 2012-12-31 2019-12-30 인포뱅크 주식회사 디스플레이 장치 및 그 화면 처리 방법

Also Published As

Publication number Publication date
KR20170063219A (ko) 2017-06-08

Similar Documents

Publication Publication Date Title
US10216509B2 (en) Continuous and automatic application development and deployment
US8910117B2 (en) Customizing and performing policy in version control
US8413134B2 (en) Method, system and computer program for installing software products based on package introspection
CN111198744A (zh) 自动化应用程序容器化和镜像备份发布的方法
US9575735B2 (en) Application template creation and management
CN103809997A (zh) 信息处理装置和网络系统
US20150264198A1 (en) Automatic installation system and method, information processing apparatus, and image forming apparatus
US6948059B1 (en) Component loader for industrial control device providing resource search capabilities
CN110990019A (zh) 一种Java类分析方法、装置、存储介质及电子设备
CN106569863A (zh) 基于资源和代码模块化的安卓app资源更新和修复的方法
CN111309335B (zh) 插件应用的编译方法、装置及计算机可读存储介质
KR102094447B1 (ko) Bms sw의 소스 코드를 생성하는 소스 코드 생성 장치 및 소스 코드 생성 방법
CN102054041A (zh) 元数据升级方法和系统
CN110806891B (zh) 嵌入式设备软件版本的生成方法及装置
US9519470B2 (en) Information processing system, information processing apparatus, device, software installation method, and storage medium for executing software installation
KR102107219B1 (ko) Bms 소프트웨어의 소스 코드를 생성하는 소스 코드 생성 장치
EP2605127B1 (en) Processing Framework For Generating Pre-Configuration Packages
CN112947951A (zh) 一种软件安装方法及相关设备
KR101556831B1 (ko) 애플리케이션 개발을 위한 퍼미션 입력 방법 및 안드로이드 애플리케이션을 제작하는 방법을 실행시키기 위한 프로그램이 기록한 컴퓨터로 읽을 수 있는 기록 매체
CN113608795A (zh) 一种通用的VxWorks下启动并加载应用程序方法
US20050216884A1 (en) Object generation
CN115269562B (zh) 一种数据库管理方法、装置、存储介质及电子设备
JP2008191786A (ja) プログラム管理装置、プログラム管理方法及びプログラム
CN113986284A (zh) 系统应用的升级方法、装置、存储介质及电子设备
CN106528183B (zh) 一种创建控件的方法、装置和计算机程序

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