KR102185289B1 - Software development system and method - Google Patents

Software development system and method Download PDF

Info

Publication number
KR102185289B1
KR102185289B1 KR1020200054437A KR20200054437A KR102185289B1 KR 102185289 B1 KR102185289 B1 KR 102185289B1 KR 1020200054437 A KR1020200054437 A KR 1020200054437A KR 20200054437 A KR20200054437 A KR 20200054437A KR 102185289 B1 KR102185289 B1 KR 102185289B1
Authority
KR
South Korea
Prior art keywords
module
code
development environment
integrated development
main board
Prior art date
Application number
KR1020200054437A
Other languages
Korean (ko)
Other versions
KR20200123033A (en
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 KR1020200054437A priority Critical patent/KR102185289B1/en
Publication of KR20200123033A publication Critical patent/KR20200123033A/en
Application granted granted Critical
Publication of KR102185289B1 publication Critical patent/KR102185289B1/en

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management

Abstract

소프트웨어 개발 시스템이 개시된다. 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템은, 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 제공하는 소프트웨어 개발 시스템으로서, 상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 제공부; 상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부; 및 상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공부;를 포함하고, 상기 모듈 선택부에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성한다.A software development system is disclosed. A software development system according to an embodiment of the present invention is a software development system that provides an integrated development environment supporting the development of device software for driving a hardware device including a main board equipped with a microcontroller, the hardware device A module component providing unit that provides information on one or more module components mounted on and electrically connectable through the integrated development environment; A module selection unit that selects the module component through a user interface; And a module code providing unit configured to provide a module code written so that the module component and the main board of the hardware device interact through the integrated development environment, and includes the module component and the module code selected from the module selection unit. The device software is automatically generated on the basis.

Description

소프트웨어 개발 시스템 및 방법{SOFTWARE DEVELOPMENT SYSTEM AND METHOD}Software development system and method {SOFTWARE DEVELOPMENT SYSTEM AND METHOD}

본 발명은 소프트웨어 개발 시스템 및 방법에 관한 것으로서, 보다 구체적으로는, 하드웨어 장치를 구동하기 위한 소프트웨어 개발 프로그램에서 마이크로컨트롤러와 연결되는 모듈 부품의 구매와 모듈 부품과 연관된 모듈 코드를 구매하여 소프트웨어를 개발하는 소프트웨어 개발 시스템 및 방법에 관한 것이다.The present invention relates to a software development system and method, and more specifically, to develop software by purchasing a module component connected to a microcontroller and a module code associated with the module component in a software development program for driving a hardware device. It relates to a software development system and method.

하드웨어 장치를 개발하는 개발 프로젝트를 진행함에 있어서, 개발자는 개발 의도에 따라 메인보드와 호환이 가능하고, 적절한 성능을 가지면서 생산 단가가 저렴한 모듈 부품을 찾기 위해 노력한다. 개발자는 이를 위해 수많은 모듈 부품을 검색하고, 데이터 시트를 검토하며 적절한 모듈 부품을 찾으려 많은 시간을 소모한다. 또한, 하드웨어 장치 구동을 위한 프로그램을 개발을 위해, 각 모듈 부품에 대한 데이터 시트를 연구하고, 시행착오를 겪는다.In progressing a development project for developing a hardware device, the developer tries to find a module component that is compatible with the main board according to the development intention, has adequate performance, and has a low production cost. To do this, developers spend a lot of time searching through numerous module parts, reviewing data sheets, and looking for suitable module parts. In addition, in order to develop a program for driving a hardware device, a data sheet for each module component is studied, and trial and error are performed.

이러한 시간적 비용을 소모하더라도, 개발 프로젝트 도중에 메인보드가 교체되면 교체된 마이크로컨트롤러에 호환이 가능하도록 프로그램 코드를 모두 바꿔야 한다. 프로젝트를 처음부터 다시 시작하는 것과 같다. 이때까지 소모한 자원이 그냥 버려지는 것이다. 이러한 하드웨어 장치 개발 단계에서 비효율적으로 낭비되는 자원을 예방할 필요가 있다.Even if such time cost is consumed, if the main board is replaced during the development project, all program codes must be changed to be compatible with the replaced microcontroller. It's like starting a project from scratch. The resources consumed up to this point are just thrown away. In such a hardware device development stage, it is necessary to prevent inefficiently wasted resources.

KR 10-0403195 B1 (2003. 10. 14.)KR 10-0403195 B1 (2003. 10. 14.)

본 발명은 목적은 하드웨어 장치 개발 단계에서 모듈 부품에 대한 모듈 코드를 데이터베이스화하고, 사용자 인터페이스를 통한 간단한 핀 할당만으로 모듈 부품과 메인보드 간의 설정 작업을 자동화하는 것이다.An object of the present invention is to create a database of module codes for module parts in the hardware device development stage, and to automate the setting work between the module parts and the main board only by simple pin assignment through a user interface.

또한, 메인보드에 따른 호환이 가능한 모듈 부품 및 모듈 부품의 핀만을 선택할 수 있게 하여, 개발 단계에서의 디버깅 시간을 감소시키는 것이다.In addition, it is possible to select only the module components compatible with the main board and the pins of the module components, thereby reducing the debugging time in the development stage.

또한, 통합 개발 환경에서 모듈 부품 정보를 제공하여 모듈 부품을 검색에 드는 시간을 감소시키는 것이다.In addition, module parts information is provided in the integrated development environment to reduce the time required to search for module parts.

또한, 모듈 코드의 공유 또는 판매로 개발자는 부가 이익을 얻거나 개발 시간을 앞당기고 모듈 부품 판매자는 판촉 방법을 다양화시키는 것이다.In addition, by sharing or selling the module code, the developer gains additional profit or accelerates the development time, and the module component seller diversifies the promotion method.

본 발명의 일 실시예에 따른 소프트웨어 개발 시스템은, 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 제공하는 소프트웨어 개발 시스템으로서, 상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 제공부; 상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부; 및 상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공부;를 포함하고, 상기 모듈 선택부에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성할 수 있다.A software development system according to an embodiment of the present invention is a software development system that provides an integrated development environment supporting the development of device software for driving a hardware device including a main board equipped with a microcontroller, the hardware device A module component providing unit that provides information on one or more module components mounted on and electrically connectable through the integrated development environment; A module selection unit that selects the module component through a user interface; And a module code providing unit configured to provide a module code written so that the module component and the main board of the hardware device interact through the integrated development environment, and includes the module component and the module code selected from the module selection unit. The device software can be automatically generated on the basis.

또한, 상기 모듈 부품 제공부는, 상기 메인보드와 호환가능한 상기 모듈 부품 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 부품에 대한 정보를 상기 통합 개발 환경에서 노출되도록 제공할 수 있다.In addition, the module component providing unit may provide information on the module component not registered in the integrated development environment among the module components compatible with the main board to be exposed in the integrated development environment.

또한, 상기 모듈 부품 제공부는, 상기 통합 개발 환경에서 노출되는 상기 모듈 부품의 정렬 기준이 변경되어도, 상기 모듈 부품의 일부는 고정적으로 상위에 노출될 수 있다.In addition, even if the alignment standard of the module components exposed in the integrated development environment is changed, the module component providing unit may be fixedly exposed to the upper part of the module component.

또한, 상기 모듈 부품 제공부는, 상기 메인보드와 상기 호환가능한 상기 모듈 부품 중에서 상기 통합 개발 환경에서 입력된 상기 하드웨어 장치의 종류에 따른 사용 빈도를 기초로 상기 모듈 부품을 추천할 수 있다.In addition, the module component providing unit may recommend the module component based on a frequency of use according to the type of the hardware device input from the integrated development environment among the module components compatible with the main board.

또한, 상기 통합 개발 환경에서 상기 모듈 부품에 대한 구매 정보를 제공하는 부품 구매부를 더 포함할 수 있다.In addition, the integrated development environment may further include a parts purchase unit that provides purchase information on the module parts.

또한, 상기 구매 정보는, 상기 모듈 부품의 하나 이상의 구매처, 상기 각 구매처에 따른 가격 정보, 구매 수량에 따른 할인율 및 상기 각 구매처에 대한 평판 중 하나 이상을 포함할 수 있다.In addition, the purchase information may include one or more of a purchase place of the module component, price information according to each purchase place, a discount rate according to a purchase quantity, and a reputation for each purchase place.

또한, 상기 모듈 코드 제공부는, 상기 모듈 부품에 대한 상기 모듈 코드 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 코드 정보를 상기 통합 개발 환경에서 노출되도록 제공할 수 있다.In addition, the module code providing unit may provide the module code information not registered in the integrated development environment among the module codes for the module component to be exposed in the integrated development environment.

또한, 상기 모듈 코드는, 사용자 계정에 종속되어 상기 모듈 코드 제공부에 등록한 모듈 코드를 포함할 수 있다.In addition, the module code may include a module code registered in the module code providing unit as being subordinate to a user account.

또한, 상기 모듈 코드 제공부는, 상기 통합 개발 환경이 상기 모듈 코드를 요청하면, 상기 모듈 코드에 관한 수신 권한의 인증을 요청하되, 상기 수신 권한 타입은 무료, 구매, 첨부 및 구독 중 하나이며, 상기 수신 권한 타입 중 첨부는, 상기 모듈 부품에 종속되어 상기 모듈 부품 구매 시 상기 수신 권한 인증이 무료로 변경될 수 있다.In addition, the module code providing unit, when the integrated development environment requests the module code, requests authentication of the receiving authority for the module code, but the receiving authority type is one of free, purchase, attachment, and subscription, and the Among the types of receiving rights, the attachment is dependent on the module part, and the receiving authority authentication may be changed for free when the module part is purchased.

또한, 상기 모듈 코드 제공부는, 상기 수신 권한 인증을 요청한 상기 통합 개발 환경이, 상기 모듈 코드의 수신 권한 인증이 되지 않을 경우, 상기 모듈 코드의 일부분만 조회되도록 할 수 있다.In addition, the module code providing unit may allow only a part of the module code to be inquired when the integrated development environment for which the reception right authentication is requested is not authenticated with the reception right for the module code.

또한, 상기 모듈 코드 제공부가 수신한 상기 모듈 코드는, 수신한 상기 통합 개발 환경의 고유 코드를 포함하고, 상기 통합 개발 환경은, 상기 수신한 모듈 코드에 포함된 상기 고유 코드에 기초한 상기 통합 개발 환경의 인증 여부에 따라 상기 모듈 코드의 컴파일을 수행 또는 거부할 수 있다.In addition, the module code received by the module code providing unit includes a unique code of the received integrated development environment, and the integrated development environment is the integrated development environment based on the unique code included in the received module code. Compilation of the module code can be performed or rejected depending on whether or not is authenticated.

또한, 상기 통합 개발 환경은, 상기 선택된 상기 모듈 부품에 대한 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인 보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 상기 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당할 수 있다.In addition, the integrated development environment lists each pin connectable of the main board or the microcontroller for each pin of the module part through the user interface using pin information on the selected module part, and the user Can be assigned by input.

또한, 상기 통합 개발 환경은, 상기 선택된 모듈 부품의 핀에 할당된 상기 메인보드의 핀이 변경되면, 변경된 핀 할당에 따라 상기 모듈 코드를 변경할 수 있다.In addition, the integrated development environment may change the module code according to the changed pin assignment when the pin of the main board allocated to the pin of the selected module component is changed.

본 발명의 일 실시예에 따른 소프트웨어 개발 방법은, 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 이용하는 소프트웨어 개발 방법으로서, 상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 정보 제공 단계; 상기 모듈 부품을 선택하는 모듈 선택 단계; 및 상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공 단계;를 포함하고, 상기 모듈 선택 단계에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성할 수 있다. A software development method according to an embodiment of the present invention is a software development method using an integrated development environment that supports the development of device software for driving a hardware device including a main board equipped with a microcontroller, wherein the hardware device A module part information providing step of providing information on one or more module parts that can be mounted and electrically connected through the integrated development environment; A module selection step of selecting the module component; And a module code providing step of providing a module code written so that the module part and the main board of the hardware device interact through the integrated development environment; including, the module part and the module code selected in the module selection step. The device software can be automatically generated on the basis.

또한, 상기 통합 개발 환경은, 상기 선택된 상기 모듈 부품에 대한 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인 보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 상기 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당할 수 있다.In addition, the integrated development environment lists each pin connectable of the main board or the microcontroller for each pin of the module part through the user interface using pin information on the selected module part, and the user Can be assigned by input.

또한, 상기 모듈 부품 정보 제공 단계는, 상기 메인보드와 호환가능한 상기 모듈 부품 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 부품에 대한 정보를 상기 개발 프로그램에서 노출되도록 제공할 수 있다.In addition, in the providing of the module part information, information on the module part not registered in the integrated development environment among the module parts compatible with the main board may be provided to be exposed in the development program.

또한, 상기 모듈 코드 제공 단계는, 상기 통합 개발 환경이 상기 모듈 코드를 요청하는 수신 요청 단계; 상기 통합 개발 환경에 로그인된 계정에 대해 상기 요청된 모듈 코드의 수신 권한 인증을 요청하는 인증 요청 단계; 상기 수신 권한이 무료, 구매, 첨부 및 구독 중 하나로 인증되면, 상기 모듈 코드를 제공하고, 수신 권한이 인증되지 않으면, 상기 모듈 코드의 일부분만 조회되는 단계를 포함할 수 있다.In addition, the providing of the module code may include: a reception request step of requesting the module code by the integrated development environment; An authentication requesting step of requesting authentication of receiving permission of the requested module code for an account logged in to the integrated development environment; If the receiving authority is authenticated as one of free, purchase, attachment, and subscription, the module code is provided, and if the receiving authority is not authenticated, only a part of the module code is inquired.

본 발명에 따른 하드웨어 개발 시스템 및 이를 이용한 개발 방법은 하드웨어 장치 개발 단계에서 모듈 부품에 대한 모듈 코드를 데이터베이스화하고, 사용자 인터페이스를 통한 간단한 핀 할당만으로 모듈 부품과 메인보드 간의 설정 작업을 자동화할 수 있다.The hardware development system and the development method using the same according to the present invention can automate the setting task between the module component and the main board only by converting the module code for the module component into a database in the hardware device development stage, and simply assigning pins through the user interface. .

또한, 메인보드에 따른 호환이 가능한 모듈 부품 및 모듈 부품의 핀만을 선택할 수 있게 하여, 개발 단계에서의 디버깅 시간을 감소시킬 수 있다.In addition, it is possible to select only the module components compatible with the main board and the pins of the module components, thereby reducing the debugging time in the development stage.

또한, 통합 개발 환경에서 모듈 부품 정보를 제공하여 모듈 부품을 검색에 드는 시간을 감소시킬 수 있다.In addition, it is possible to reduce the time required to search for module parts by providing module part information in the integrated development environment.

또한, 모듈 코드의 공유 또는 판매로 개발자는 부가 이익을 얻거나 개발 시간을 앞당기고 모듈 부품 판매자는 판촉 방법을 다양화할 수 있다.In addition, by sharing or selling module codes, developers can obtain additional profits or accelerate development time, and module component sellers can diversify promotion methods.

도 1은 본 발명의 일 실시예에 따른 하드웨어 장치의 블록도이다
도 2는 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성을 나타내는 구성도이다.
도 3은 본 발명의 일 실시예에 따른 개발자 단말기에서 실행되는 상기 통합 개발 환경의 사용자 인터페이스를 통해 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 통합 개발 환경의 사용자 인터페이스를 통해 하드웨어 환경설정을 하는 것을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 구동 코드를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 통합 개발 환경이 생성한 구동 코드가 삽입된 구동 코드를 나타낸 도면이다.
도 7은 하드웨어 환경설정 변경에 따른 구동 코드의 변화를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 도 6의 생성된 구동 코드로 연결된 모듈 코드를 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 모듈 부품이 추천되는 것을 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 모듈 부품의 일부가 고정적으로 상위에 노출되는 모습을 나타낸 도면이다.
도 12는 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성을 나타낸 구성도이다.
도 13은 본 발명의 일 실시예에 따른 통합 개발 환경의 마켓 인터페이스를 나타낸 도면이다.
도 14는 본 발명의 일 실시예에 따른 모듈 코드와 컴파일 인증 정보 송수신 관계를 나타낸 개념도이다.
도 15는 본 발명의 일 실시예에 따른 소프트웨어 개발 방법의 흐름도이다.
도 16은 본 발명의 일 실시예에 따른 모듈 코드 제공 단계의 세부 흐름도이다.
1 is a block diagram of a hardware device according to an embodiment of the present invention
2 is a block diagram showing a schematic configuration of a software development system according to an embodiment of the present invention.
3 is a diagram illustrating selection of a module component through a user interface of the integrated development environment executed in a developer terminal according to an embodiment of the present invention.
4 is a diagram illustrating setting of a hardware environment through a user interface of an integrated development environment according to an embodiment of the present invention.
5 is a diagram showing a driving code according to an embodiment of the present invention.
6 is a diagram illustrating a driving code into which a driving code generated by an integrated development environment according to an embodiment of the present invention is inserted.
7 is a diagram showing a change in a driving code according to a hardware environment setting change.
8 is a diagram illustrating a module code connected by the generated driving code of FIG. 6 according to an embodiment of the present invention.
9 is a view showing selection of a module component according to an embodiment of the present invention.
10 is a view showing that a module component is recommended according to an embodiment of the present invention.
11 is a view showing a state in which a part of a module component according to an embodiment of the present invention is fixedly exposed to an upper portion.
12 is a block diagram showing a schematic configuration of a software development system according to an embodiment of the present invention.
13 is a diagram showing a market interface of an integrated development environment according to an embodiment of the present invention.
14 is a conceptual diagram illustrating a relationship between transmission and reception of module code and compilation authentication information according to an embodiment of the present invention.
15 is a flowchart of a software development method according to an embodiment of the present invention.
16 is a detailed flowchart of a module code providing step according to an embodiment of the present invention.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예가 상세하게 설명된다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명의 실시예를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략되었다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those of ordinary skill in the art can easily implement the present invention. However, the present invention may be implemented in various different forms and is not limited to the embodiments described herein. In addition, in the drawings, parts not related to the description are omitted in order to clearly describe the embodiments of the present invention.

본 명세서에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도로 사용된 것이 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.The terms used in this specification are used only to describe specific embodiments, and are not intended to limit the present invention. Singular expressions may include plural expressions unless the context clearly indicates otherwise.

본 명세서에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로서, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해될 수 있다.In the present specification, terms such as "comprise", "have", or "include" are intended to designate the presence of features, numbers, steps, actions, components, parts, or a combination thereof described in the specification. It may be understood that the presence or addition of other features, numbers, steps, actions, components, parts, or combinations thereof, or further features, are not excluded in advance.

또한, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.In addition, the components shown in the embodiments of the present invention are shown independently to represent different characteristic functions, and it does not mean that each component is formed of separate hardware or a single software component. That is, each constituent unit is described as being listed as a respective constituent unit for convenience of explanation, and at least two constituent units of each constituent unit are combined to form one constituent unit, or one constituent unit may be divided into a plurality of constituent units to perform a function. Integrated embodiments and separate embodiments of each of these components are also included in the scope of the present invention unless departing from the essence of the present invention.

또한, 이하의 실시예들은 당 업계에서 평균적인 지식을 가진 자에게 보다 명확하게 설명하기 위해서 제공되는 것으로서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.In addition, the following embodiments are provided to more clearly describe to those with average knowledge in the art, and the shape and size of elements in the drawings may be exaggerated for clearer explanation.

이하, 첨부된 도면을 참조하여, 본 발명에 따른 바람직한 실시예에 대하여 설명한다.Hereinafter, a preferred embodiment according to the present invention will be described with reference to the accompanying drawings.

도 1은 본 발명의 일 실시예에 따른 하드웨어 장치의 블록도이다.1 is a block diagram of a hardware device according to an embodiment of the present invention.

도 1을 참조하면, 본 발명의 일 실시예에 따른 하드웨어 장치(10)는 마이크로컨트롤러(12)가 장착된 메인보드(11)에 하나 또는 하나 이상의 모듈 부품(M1, M2, ... , Mn)이 전기적으로 연결되어, 특정 기능을 수행하는 장치일 수 있다. 하드웨어 장치(10)는 구동 프로그램 또는 제어 프로그램이 탑재될 수 있고, 설계된 특정 기능 또는 특수한 임무를 수행할 수 있다. 이하, 하드웨어 장치(10)를 구동하기 위한 구동 프로그램, 제어 프로그램을 또는 운영 시스템을 장치 소프트웨어라고 한다.Referring to FIG. 1, the hardware device 10 according to an embodiment of the present invention includes one or more module parts (M1, M2, ..., Mn) on the main board 11 on which the microcontroller 12 is mounted. ) May be a device that is electrically connected to perform a specific function. The hardware device 10 may be equipped with a driving program or a control program, and may perform a designed specific function or a special task. Hereinafter, a driving program, a control program, or an operating system for driving the hardware device 10 is referred to as device software.

하드웨어 장치(10)는 단순 장치 또는 고수준의 장치일 수 있다. 단순 장치는 메인보드(11)에 저성능 마이크로컨트롤러(12)와 저용량의 메모리가 탑재된 장치일 수 있고, 고수준의 장치는 다양한 기능을 수행하기 위해 비교적 높은 성능의 마이크로컨트롤러(12)와 고용량의 메모리가 탑재된 장치일 수 있다. 하드웨어 장치(10)의 종류는 메인보드(11)에 전기적으로 연결되는 모듈 부품(M1, M2, ... , Mn)의 기능에 따라 다양할 수 있다. 예를 들어, 단순 장치에 해당할 수 있는 하드웨어 장치(10)는 시각이 표시되는 디스플레이 모듈과 스피커 모듈이 장착된 알람이 가능한 전자시계 장치일 수 있고, 무게를 측정할 수 있는 모듈이 장착된 전자저울 장치일 수 있다. 고수준의 장치에 해당할 수 있는 하드웨어 장치(10)는 다양한 복수의 모듈이 장착된 스마트폰, 스마트TV, 의료장비와 같은 장치일 수 있다.The hardware device 10 may be a simple device or a high-level device. The simple device may be a device in which a low-performance microcontroller 12 and a low-capacity memory are mounted on the main board 11, and a high-level device is a device having a relatively high performance microcontroller 12 and a high capacity to perform various functions. It may be a device equipped with a memory. The type of the hardware device 10 may vary according to the function of the module components M1, M2, ..., Mn electrically connected to the main board 11. For example, the hardware device 10, which may correspond to a simple device, may be an alarm-capable electronic clock device equipped with a display module for displaying time and a speaker module, and an electronic clock device equipped with a module capable of measuring weight. It can be a scale device. The hardware device 10 that may correspond to a high-level device may be a device such as a smart phone, a smart TV, or a medical device equipped with a plurality of modules.

모듈 부품(M1, M2, ... , Mn)은 메인보드(11)에 하나 이상 연결될 수 있다. 메인보드(11)에 모듈 부품(M1, M2, ... , Mn)이 연결된다는 것은 전기적으로 신호 또는 전력을 서로 송수신할 수 있는 것일 수 있다. 또한, 물리적으로 연결되지 않아도 신호를 송수신할 수 있으면 연결되었다고 말할 수 있다. 일례로, 메인보드(11)와 모듈 부품(M1, M2, ... , Mn)이 무선으로 연결되어 신호를 송수신하면 메인보드(11)와 모듈 부품(M1, M2, ... , Mn)은 연결된 것이라 할 수 있다.One or more module components M1, M2, ..., Mn may be connected to the main board 11. That the module components M1, M2, ..., Mn are connected to the main board 11 may be capable of transmitting and receiving electrical signals or power to each other. In addition, it can be said that it is connected if it can transmit and receive signals even if it is not physically connected. For example, when the main board 11 and the module parts (M1, M2, ..., Mn) are wirelessly connected to transmit and receive signals, the main board 11 and the module parts (M1, M2, ..., Mn) Can be said to be connected.

모듈 부품(M1, M2, ... , Mn)은 하드웨어 장치(10)에 부가적으로 연결되어, 특정한 기능을 수행할 수 있는 부품일 수 있다. 하드웨어 장치(10)는 적어도 하나 이상의 모듈 부품(M1, M2, ... , Mn)을 포함할 수 있다. 일반적으로 모듈 부품(M1, M2, ... , Mn)은 마이크로컨트롤러(12)와 같은 중앙처리장치가 포함된 보드에 연결되어 하나 이상의 기능이 수행하거나 서로 다른 모듈 부품(M1, M2, ... , Mn)이 상호 작용하여 다양한 기능을 수행할 수 있다. 모듈 부품(M1, M2, ... , Mn)은 마이크로컨트롤러(12)의 제어 신호에 따라 동작할 수 있고, 동작한 결과를 다시 메인보드(11) 또는 마이크로컨트롤러(12)로 회신할 수 있다. 예컨대, 모듈 부품(M1, M2, ... , Mn)은 통신 모듈, 센서 모듈, 오디오 출력 모듈, 데이터 변환 모듈, 보조 기억 모듈, 다양한 기능의 센서 모듈, 정류 소자, 모터, 디스플레이 모듈, 안테나 등일 수 있다.The module parts M1, M2, ..., Mn may be additionally connected to the hardware device 10 and may be parts capable of performing a specific function. The hardware device 10 may include at least one module component (M1, M2, ..., Mn). In general, module parts (M1, M2, ..., Mn) are connected to a board including a central processing unit such as a microcontroller 12 to perform one or more functions or different module parts (M1, M2, .. ., Mn) can interact to perform various functions. Module components (M1, M2, ..., Mn) can operate according to the control signal of the microcontroller 12, and the operation result can be returned to the main board 11 or the microcontroller 12. . For example, module parts (M1, M2, ..., Mn) are communication modules, sensor modules, audio output modules, data conversion modules, auxiliary memory modules, sensor modules of various functions, rectifiers, motors, display modules, antennas, etc. I can.

하드웨어 장치(10)를 구동하기 위한 장치 소프트웨어는 구동 코드 및 모듈 코드로 구분할 수 있다. 여기서 구동 코드는 하드웨어 장치(10)를 직접적으로 제어하기 위한 코드일 수 있다. 모듈 코드는 상기 구동 코드에 종속적으로 포함된 보조 코드일 수 있다. 일반적으로 개발자가 구동 코드를 작성할 때, 어느 하나의 모듈 부품(M1, M2, ... , Mn)에 대해 반복적으로 사용하는 함수 또는 변수와 같은 코드가 포함될 수 있다. 하나의 모듈 부품(M1, M2, ... , Mn)에 대해 반복적으로 사용하는 함수 또는 변수와 같은 코드를 다른 코드 파일로 따로 생성하여, 구동 코드에 연결하여 종속적으로 사용할 수 있다. 모듈 코드는 하나의 모듈 부품에 대해 미리 작성한 코드일 수 있다. 또한, 모듈 코드는 해당 모듈 부품(M1, M2, ... , Mn)에 대한 정보도 포함할 수 있다. 모듈 부품(M1, M2, ... , Mn)의 정보는 모듈 부품(M1, M2, ... , Mn)의 카테고리, 모델, 제조사, 기능, 핀의 개수, 핀의 형태(입력 핀 또는 출력 핀) 등을 포함할 수 있다.Device software for driving the hardware device 10 may be classified into a driving code and a module code. Here, the driving code may be a code for directly controlling the hardware device 10. The module code may be an auxiliary code subordinately included in the driving code. In general, when a developer writes a driving code, a code such as a function or variable that is repeatedly used for any one module part (M1, M2, ..., Mn) may be included. Codes such as functions or variables that are repeatedly used for one module part (M1, M2, ..., Mn) can be separately generated as other code files, and can be used subordinately by connecting them to the driving code. The module code may be a code previously written for one module part. In addition, the module code may include information on the corresponding module parts (M1, M2, ..., Mn). The information of module parts (M1, M2, ..., Mn) is the category, model, manufacturer, function, number of pins, pin type (input pin or output) of the module part (M1, M2, ..., Mn). Pin), and the like.

도 2는 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성을 나타내는 구성도이다.2 is a block diagram showing a schematic configuration of a software development system according to an embodiment of the present invention.

도 2를 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템(100)은 장치 소프트웨어를 개발을 지원하는 통합 개발 환경을 제공할 수 있다. 소프트웨어 개발 시스템(100)은 하드웨어 장치(10)에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품(M1, M2, ... , Mn)에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 제공부(110), 모듈 부품(M1, M2, ... , Mn)을 사용자 인터페이스를 통해 선택하는 모듈 선택부(120) 및 모듈 부품(M1, M2, ... , Mn)과 하드웨어 장치(10)의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공부(130)를 포함할 수 있다.Referring to FIG. 2, the software development system 100 according to an embodiment of the present invention may provide an integrated development environment supporting device software development. The software development system 100 is a module part providing unit that provides information on one or more module parts (M1, M2, ..., Mn) that can be electrically connected by being mounted on the hardware device 10 through the integrated development environment. (110), a module selection unit 120 for selecting module parts (M1, M2, ..., Mn) through a user interface, and module parts (M1, M2, ..., Mn) and a hardware device (10) It may include a module code providing unit 130 that provides the module code written to interact with the main board of the integrated development environment.

모듈 선택부(120)에서 선택된 모듈 부품과 모듈 코드를 기초로 장치 소프트웨어를 자동으로 생성할 수 있다. 도 1에서 언급한 구동 코드가 장치 소프트웨어에 포함될 수 있다.Device software may be automatically generated based on the module component and the module code selected by the module selection unit 120. The driving code mentioned in FIG. 1 may be included in the device software.

상기 통합 개발 환경은 개발자 단말기에서 실행되고, 하드웨어 장치(10)를 위한 상기 장치 소프트웨어를 개발하는 프로그램일 수 있다. 상기 개발자 단말기는 사용자의 입출력 조작에 따라 네트워크(150)를 경유하여 각종 데이터 등을 수신 및 처리하고, 디스플레이할 수 있는 단말기일 수 있으며, 예컨대 스마트폰(Smartphone), 태블릿(Tablet) 컴퓨터, 데스크탑(Desktop) 컴퓨터, 랩톱(Laptop) 컴퓨터, 노트북, 워크스테이션(Workstation), PDA (Personal Digital Assistants), 포터블(Portable) 컴퓨터, 무선 전화기(Wireless phone), 모바일 폰(Mobile phone), e-북(e-book), PMP(Portable Multimedia Player), 휴대용 게임기, 내비게이션(Navigation) 장치, 블랙박스(Black box), 디지털카메라(Digital camera), 텔레비전(Television), 웨어러블 디바이스(Wearable device) 중 하나일 수 있으며, 이들에 제한되지 않는다.The integrated development environment may be a program that runs on a developer terminal and develops the device software for the hardware device 10. The developer terminal may be a terminal capable of receiving, processing, and displaying various data, etc. through the network 150 according to the user's input/output operation. For example, a smartphone, a tablet computer, a desktop ( Desktop) Computer, Laptop Computer, Notebook, Workstation, PDA (Personal Digital Assistants), Portable Computer, Wireless phone, Mobile phone, e-book -book), PMP (Portable Multimedia Player), portable game console, navigation device, black box, digital camera, television, and wearable device. , Not limited to these.

소프트웨어 개발 시스템(100)은 네트워크(150)로 개발 지원 서버(140)와 연결되어 데이터를 송수신할 수 있다. 또한, 소프트웨어 개발 시스템(100)의 모듈 부품 제공부(110), 모듈 선택부(120) 및 모듈 코드 제공부(130)는 각각 개발 지원 서버(140)와 네트워크(150)로 연결되어 데이터를 송수신할 수 있다.The software development system 100 is connected to the development support server 140 through the network 150 to transmit and receive data. In addition, the module component providing unit 110, the module selection unit 120, and the module code providing unit 130 of the software development system 100 are respectively connected to the development support server 140 and the network 150 to transmit and receive data. can do.

네트워크(150)는 대용량, 장거리 음성 및 데이터 서비스가 가능한 대형 통신망의 고속 기간망인 통신망일 수 있으며, 인터넷(Internet) 또는 고속의 멀티미디어 서비스를 제공하기 위한 차세대 유선 및 무선망일 수 있다. 네트워크(150)가 무선 통신망일 경우, 셀룰러 통신 또는 근거리 통신을 포함할 수 있다. 예컨대, 셀룰러 통신은 LTE(Long-Term Evolution), LTE-A(LTE Advance), CDMA(Code Division Multiple Access), WCDMA(Wideband CDMA), UMTS(Universal Mobile Telecommunications System), WiBro(Wireless Broadband), 또는 GSM(Global System for Mobile Communications) 등 중 적어도 하나를 포함할 수 있다. 그리고 근거리 통신은 Wi-Fi(Wireless Fidelity), 블루투스(Bluetooth) 또는 NFC(Near Field Communication) 등 적어도 하나를 포함할 수 있다. 그러나 이에 한정되는 것은 아니며 차후 개발되는 무선 통신의 기술도 포함되는 것이 바람직하다.The network 150 may be a communication network that is a high-speed backbone network of a large communication network capable of large-capacity, long-distance voice and data services, and may be a next-generation wired or wireless network for providing Internet or high-speed multimedia services. When the network 150 is a wireless communication network, cellular communication or short-range communication may be included. For example, cellular communication is LTE (Long-Term Evolution), LTE-A (LTE Advance), CDMA (Code Division Multiple Access), WCDMA (Wideband CDMA), UMTS (Universal Mobile Telecommunications System), WiBro (Wireless Broadband), or It may include at least one of Global System for Mobile Communications (GSM) and the like. In addition, short-range communication may include at least one such as Wireless Fidelity (Wi-Fi), Bluetooth, or Near Field Communication (NFC). However, the present invention is not limited thereto, and it is preferable that a wireless communication technology to be developed later is included.

모듈 부품 제공부(110)는 개발 지원 서버(140)가 보유하는 모듈 부품(M1, M2, ... , Mn)에 대한 데이터를 수신하여 상기 통합 개발 환경에서 노출되거나 사용되도록 할 수 있다.The module component providing unit 110 may receive data on module components (M1, M2, ..., Mn) held by the development support server 140 to be exposed or used in the integrated development environment.

모듈 코드 제공부(130)는 개발 지원 서버(140)가 보유하는 모듈 코드에 대한 데이터를 수신하여 상기 통합 개발 환경에서 노출되거나 사용되도록 할 수 있다.The module code providing unit 130 may receive data on the module code held by the development support server 140 to be exposed or used in the integrated development environment.

도 3 내지 도 8은 상기 통합 개발 환경에 관해 설명한다.3 to 8 describe the integrated development environment.

도 3은 본 발명의 일 실시예에 따른 개발자 단말기에서 실행되는 상기 통합 개발 환경의 사용자 인터페이스를 통해 모듈 부품을 선택하는 것을 나타낸 도면이다.3 is a diagram illustrating selection of a module component through a user interface of the integrated development environment executed in a developer terminal according to an embodiment of the present invention.

도 1 및 도 3을 참조하면, 개발자는 메인보드(11)에 연결할 모듈 부품을 상기 통합 개발 환경의 사용자 인터페이스(I100)를 통해 선택할 수 있다. 사용자 인터페이스(I100)에서 나타나는 모듈 부품(M1, M2, ... , Mn)은 상기 통합 개발 환경에 등록된 모듈 부품이다. 등록된 모듈 부품은 해당 모듈 부품의 모듈 코드가 상기 통합 개발 환경에 등록된 것으로, 구동 코드에 해당 모듈 부품의 모듈 코드를 이용할 수 있다는 것일 수 있다. 1 and 3, a developer may select a module component to be connected to the main board 11 through the user interface I100 of the integrated development environment. Module parts M1, M2, ..., Mn appearing in the user interface I100 are module parts registered in the integrated development environment. The registered module component may mean that the module code of the corresponding module component is registered in the integrated development environment, and the module code of the module component can be used as the driving code.

또한, 상기 통합 개발 환경은 사용자 인터페이스(I100)를 통해 모듈 부품(M1, M2, ... , Mn)을 선택받을 때, 사용자 인터페이스(I100)에 나타나는 모듈 부품(M1, M2, ... , Mn)은 도 1의 메인보드(11)와 호환 가능한 모듈 부품만 나타날 수 있다. 예를 들면, 상기 통합 개발 환경에 등록된 모듈 부품이 M1부터 M10이라면, 메인보드(11)와 호환이 가능한 모듈 부품인 M1, M3, M10만 사용자 인터페이스(I100)에 나타날 수 있다. 메인보드(11)를 다른 메인보드로 교체되면, 교체된 메인보드에 호환되는 M2, M4, M6만 나타날 수 있다. 또는 상기 통합 개발 환경에 등록된 모든 모듈 부품(M1, M2, ... , Mn)이 나타나되, 메인보드(11)와 호환 가능한 모듈 부품만 선택될 수 있다. 예를 들면, 위와 같이 상기 통합 개발 환경에 등록된 모듈 부품이 M1부터 M10이라면, 사용자 인터페이스(I100)에 M1부터 M10까지 모두 나타나되, 메인보드(11)와 호환 가능한 M1, M3, M10만 선택될 수 있다. 여기서 메인보드(11)가 다른 메인보드로 교체되면, 선택될 수 있는 모듈 부품이 변경될 수 있다.In addition, the integrated development environment, when module parts (M1, M2, ..., Mn) are selected through the user interface (I100), the module parts (M1, M2, ... ,) appearing in the user interface (I100). Mn) may appear only module components compatible with the main board 11 of FIG. 1. For example, if the module parts registered in the integrated development environment are M1 to M10, only the module parts M1, M3, and M10 compatible with the main board 11 may appear in the user interface I100. When the main board 11 is replaced with another main board, only compatible M2, M4 and M6 may appear on the replaced main board. Alternatively, all module parts (M1, M2, ..., Mn) registered in the integrated development environment are displayed, but only module parts compatible with the main board 11 may be selected. For example, if the module parts registered in the integrated development environment as above are M1 to M10, all M1 to M10 are displayed on the user interface (I100), but only M1, M3, and M10 compatible with the main board 11 are selected. Can be. Here, when the main board 11 is replaced with another main board, the module parts that can be selected may be changed.

종래는 개발자가 의도한 기능을 구현하기 위해 필요한 모듈 부품의 종류를 조사하고 사용할 메인보드(11)와 연결할 모듈 부품이 서로 호환되는지 각각의 데이터 시트를 보고 확인해야 할 시간적 비용이 소모되었다. 그러나 본 발명의 상기 통합 개발 환경은 등록된 모듈 부품에 대해 메인보드(11)와의 호환성 여부를 손쉽게 확인할 수 있고, 호환이 가능한 모듈 부품만 선택할 수 있으므로 언급된 시간적 비용을 줄일 수 있다.In the related art, time cost was consumed to examine the types of module components required to implement the intended function by the developer, and to check each data sheet to see if the main board 11 to be used and the module components to be connected are compatible with each other. However, in the integrated development environment of the present invention, it is possible to easily check whether the registered module parts are compatible with the main board 11, and only compatible module parts can be selected, thereby reducing the mentioned time cost.

도 4는 본 발명의 일 실시예에 따른 통합 개발 환경의 사용자 인터페이스를 통해 하드웨어 환경설정을 하는 것을 나타낸 도면이다.4 is a diagram illustrating setting of a hardware environment through a user interface of an integrated development environment according to an embodiment of the present invention.

도 1 및 도 4를 참조하면, 선택된 모듈 부품에 대한 하드웨어 환경설정은 사용자 인터페이스(I100)를 통해 진행될 수 있다. 상기 하드웨어 환경설정은 선택된 모듈 부품의 각 핀을 메인보드(11) 또는 마이크로컨트롤러(12)의 각 핀에 할당하는 것일 수 있다. 여기서 상기 핀은 신호, 데이터 또는 전력을 송수신할 수 있는 물리적인 접점을 의미할 수 있다.Referring to FIGS. 1 and 4, hardware environment setting for a selected module component may be performed through a user interface I100. The hardware configuration may be to allocate each pin of the selected module component to each pin of the main board 11 or the microcontroller 12. Here, the pin may mean a physical contact through which signals, data, or power can be transmitted and received.

메인보드(11) 및 모듈 부품(M1, M2, ... , Mn)은 각각의 하드웨어 설계에 따라 신호를 송수신하는 핀이 존재한다. 개발자는 자신의 의도에 따라 메인보드(11) 핀에 모듈 부품(M1, M2, ... , Mn) 핀을 연결하여 메인보드(11)와 모듈 부품(M1, M2, ... , Mn) 간의 신호 경로를 생성할 수 있다. 종래는 이러한 핀 할당은 개발자가 직접 코드를 작성해 할당했었다. 이 경우, 개발자는 메인보드(11) 데이터 시트와 메인보드(11)에 연결한 모듈 부품(M1, M2, ... , Mn)의 데이터 시트를 검토하며 코드를 작성해야만 했다. 메인보드(11)에 연결할 모듈 부품 핀이 몇 개인지, 해당 핀이 아날로그 입력 핀 또는 출력 핀인지, 디지털 입력 핀 또는 출력 핀인지 확인해야 했다. 이렇게 하나의 모듈 부품을 메인보드(11)에 연결하기 위해서는 데이터 시트를 검토하고 확인하는 시간이 필요했으며, 메인보드(11)에 연결할 모듈 부품이 많아질수록 그 시간이 더 늘어날 수밖에 없었다.The main board 11 and module components M1, M2, ..., Mn have pins for transmitting and receiving signals according to their respective hardware design. The developer connects the pins of the module parts (M1, M2, ..., Mn) to the pins of the main board (11) according to their own intention, and the main board (11) and the module parts (M1, M2, ..., Mn) Can create a signal path between. In the past, these pin assignments were assigned by the developer by writing their own code. In this case, the developer had to write a code while reviewing the data sheet of the main board 11 and the data sheet of the module parts (M1, M2, ..., Mn) connected to the main board 11. It was necessary to check how many module component pins to be connected to the main board 11, whether the corresponding pin is an analog input pin or an output pin, or a digital input pin or an output pin. In order to connect one module component to the main board 11 in this way, it took time to review and confirm the data sheet, and the more module parts to be connected to the main board 11, the longer the time.

그러나 본 발명의 상기 통합 개발 환경에서는 사용자 인터페이스를 이용하여 모듈 부품의 각 핀에 대응하는 메인보드(11) 핀을 할당할 수 있다. 상기 통합 개발 환경은 사용자 인터페이스(I100)를 통한 상기 하드웨어 환경설정은 구동 코드에 자동으로 반영하여 상기 구동 코드를 자동으로 생성할 수 있다.However, in the integrated development environment of the present invention, pins of the main board 11 corresponding to each pin of a module component may be allocated using a user interface. The integrated development environment may automatically generate the driving code by automatically reflecting the hardware environment setting through the user interface I100 to a driving code.

그리고 상기 하드웨어 환경설정은 모듈 부품(M1, M2, ... , Mn)의 핀을 마이크로컨트롤러(12)의 핀에 할당하는 것을 포함할 수 있다. 일반적으로는, 메인보드(11)에 마이크로컨트롤러(12)가 장착되고 모듈 부품(M1, M2, ... , Mn) 핀은 메인보드(11) 핀과 연결될 수 있다. 그러나 드물게, 모듈 부품(M1, M2, ... , Mn) 핀과 마이크로컨트롤러(12) 핀을 직접 연결하는 경우도 있다. 본 발명의 통합 개발 환경은 모듈 부품(M1, M2, ... , Mn) 핀에 마이크로컨트롤러(12) 핀을 할당하는 것도 포함되므로 다양한 개발 케이스에 대한 개발 효율을 높일 수 있다.In addition, the hardware configuration may include allocating pins of the module components M1, M2, ..., Mn to the pins of the microcontroller 12. In general, the microcontroller 12 is mounted on the main board 11 and the module component (M1, M2, ..., Mn) pins may be connected to the main board 11 pins. However, in rare cases, the module component (M1, M2, ..., Mn) pin and the microcontroller 12 pin are connected directly. Since the integrated development environment of the present invention includes allocating pins of the microcontroller 12 to pins of module parts (M1, M2, ..., Mn), development efficiency for various development cases can be improved.

사용자 인터페이스(I100)를 통한 상기 하드웨어 환경설정에 대해 보다 구체적으로 설명하면, 메인보드(11)에 연결할 모듈 부품(M1, M2, ... , Mn)을 선택하면, 선택한 모듈 부품에 따른 구체적인 하드웨어 환경설정이 가능한 사용자 인터페이스(I100)가 나타날 수 있다. 사용자 인터페이스(I100)는 핀 할당을 할 수 있는 영역(I110)과 선택한 모듈 부품의 상세한 정보를 보여주는 영역(I120)을 포함할 수 있다. 핀 할당을 할 수 있는 영역(I110)에는 모듈 부품의 각 핀에 대응하는 메인보드 핀을 지정할 수 있는 인터페이스(I111)를 포함할 수 있다. 선택한 모듈 부품의 상세한 정보를 보여주는 영역(I120)은 선택한 모듈 부품에 대해 카테고리, 모델, 제조사, 기능 또는 구매처 등이 포함될 정보를 포함할 수 있다. 한편, 상세한 정보를 보여주는 영역(I120)을 마우스 등을 통해 클릭하면 해당 모듈 부품에 대한 보다 상세한 데이터 시트가 링크로 연결되어 제공될 수 있다.When the hardware environment setting through the user interface (I100) is described in more detail, when a module component (M1, M2, ..., Mn) to be connected to the main board 11 is selected, specific hardware according to the selected module component is selected. A user interface I100 in which environment setting is possible may appear. The user interface I100 may include an area I110 in which pin assignment is possible and an area I120 showing detailed information of a selected module component. The pin assignment area I110 may include an interface I111 for designating a mainboard pin corresponding to each pin of a module component. The area I120 showing detailed information of the selected module component may include information to include a category, model, manufacturer, function, or place of purchase for the selected module component. On the other hand, when the area I120 showing detailed information is clicked with a mouse or the like, a more detailed data sheet for a corresponding module component may be linked and provided.

또한, 상기 통합 개발 환경은 선택한 모듈 부품 핀에 할당이 가능한 메인보드(11) 또는 마이크로컨트롤러(12)의 핀만 선택되도록 할 수 있다. 예를 들어, 도 4에 도시된 것처럼 ‘Row1’핀을 할당할 때, ‘Row1’은 디지털 출력 핀이므로 메인보드(11) 또는 마이크로컨트롤러(12)의 핀은 디지털 입력 핀만 선택되도록 할 수 있다. VCC, GND 또는 아날로그 핀은 선택되지 않는다. 종래와 같이 데이터 시트를 비교하며 텍스트 형태로 작성하는 방식에서는 디지털 출력 핀 ‘Row1’을 아날로그 입력 핀에 할당하는 실수할 수 있지만, 본 발명은 그러한 가능성은 현저히 줄일 수 있다.In addition, in the integrated development environment, only pins of the main board 11 or the microcontroller 12 that can be assigned to the selected module component pins can be selected. For example, when the'Row1' pin is assigned as shown in FIG. 4, since'Row1' is a digital output pin, only the digital input pin can be selected as the pin of the main board 11 or the microcontroller 12. No VCC, GND or analog pins are selected. In the conventional method of comparing data sheets and writing in text form, it is possible to make a mistake in allocating the digital output pin “Row1” to the analog input pin, but the present invention can significantly reduce such a possibility.

일반적으로 하나의 모듈 부품의 핀의 총 개수보다 메인보드(11) 핀의 총 개수가 많으므로, 선택한 모듈 부품의 한 핀에 대해 메인보드(11)의 총 핀 중 하나를 할당하는 방식으로 진행될 수 있다.In general, since the total number of pins on the main board 11 is larger than the total number of pins of one module component, it can be proceeded by allocating one of the total pins of the main board 11 to one pin of the selected module component. have.

도 5는 본 발명의 일 실시예에 따른 구동 코드를 나타낸 도면이고, 도 6은 본 발명의 일 실시예에 따른 통합 개발 환경이 생성한 구동 코드가 삽입된 구동 코드를 나타낸 도면이다.5 is a diagram illustrating a driving code according to an embodiment of the present invention, and FIG. 6 is a diagram illustrating a driving code into which a driving code generated by an integrated development environment according to an embodiment of the present invention is inserted.

도 5에 표기된 구동 코드(200)는 통합 개발 환경에서 메인보드(11)의 종류만 선택하고 모듈 부품을 연결하지 않은 초기 구동 코드(210)이다. 도 6의 구동 코드(200)는 초기 구동 코드(210)와 상기 통합 개발 환경이 생성한 구동 코드(220)가 삽입된 구동 코드(200)이다. 상기 통합 개발 환경은 상기 하드웨어 환경설정이 반영된 구동 코드(220)를 생성할 수 있다.The driving code 200 shown in FIG. 5 is an initial driving code 210 in which only the type of the main board 11 is selected and module parts are not connected in the integrated development environment. The driving code 200 of FIG. 6 is the driving code 200 into which the initial driving code 210 and the driving code 220 generated by the integrated development environment are inserted. The integrated development environment may generate the driving code 220 reflecting the hardware environment setting.

도 4 및 도 6을 참조하여 설명한다. 상기 통합 개발 환경은 선택된 모듈 부품에 대한 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인 보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당할 수 있다. 도 4의 상기 하드웨어 환경설정에서 키 패드 모듈(Keypad_4x30)의 Row1, Row2, Row3, Row4, Col1, Col2, Col3의 핀을 각각 메인보드(11)의 5, 4, 3, 2, 8, 7, 6번 핀을 할당하면 상기 통합 개발 환경은 상기 하드웨어 환경설정이 반영된 구동 코드(220)를 생성할 수 있다. 도 4에는 사용자 인터페이스(I100)의 크기로 인해 상기 키 패드 모듈(Keypad_4x30)의 Row1, Row2, Row3이 각각 메인보드(11)의 5, 4, 3번 핀에 할당된 부분만 표기되어 있지만, 상기 키 패드 모듈(Keypad_4x30)의 Row4, Col1, Col2, Col3이 각각 메인보드(11)의 2, 8, 7, 6번 핀에 할당된 것을 가정한다.This will be described with reference to FIGS. 4 and 6. The integrated development environment lists each pin of the main board or the microcontroller that can be connected to each pin of the module part through a user interface using pin information on the selected module part, and assigns it by the user input. have. In the hardware configuration of FIG. 4, the pins of Row1, Row2, Row3, Row4, Col1, Col2, and Col3 of the keypad module (Keypad_4x30) are set to 5, 4, 3, 2, 8, 7 of the main board 11, respectively. If pin 6 is assigned, the integrated development environment may generate the driving code 220 reflecting the hardware environment setting. In FIG. 4, only portions of Row1, Row2, and Row3 of the keypad module (Keypad_4x30) are indicated on pins 5, 4, and 3 of the main board 11, respectively, due to the size of the user interface I100. It is assumed that Row4, Col1, Col2, and Col3 of the keypad module (Keypad_4x30) are assigned to pins 2, 8, 7, and 6 of the main board 11, respectively.

생성된 구동 코드(220)는 선택한 모듈 부품(도 4 및 도 6에서 Keypad_4x30)과 관련된 미리 정의된 함수를 사용할 수 있도록 하는 코드도 포함할 수 있다. 도 6의 생성된 구동 코드(220) 중 ‘#include <Keypad_4x3.h>’는 키 패드 모듈 부품과 관련된 모듈 코드에 정의된 함수를 구동 코드(200)에서 이용할 수 있도록 구동 코드(200)와 모듈 코드를 연결하는 코드이다. 상기 통합 개발 환경은 구동 코드(200)에 모듈 코드와 연결하는 코드를 자동으로 생성하여 구동 코드(200)와 모듈 코드를 연결하고, 모듈 코드에서 정의된 함수를 구동 코드(200) 내에서 손쉽게 사용할 수 있도록 할 수 있다.The generated driving code 220 may also include a code that enables a predefined function related to the selected module component (Keypad_4x30 in FIGS. 4 and 6) to be used. In the generated driving code 220 of FIG. 6,'#include <Keypad_4x3.h>' refers to the driving code 200 and the module so that the function defined in the module code related to the keypad module part can be used by the driving code 200. This is the code that connects the code. The integrated development environment automatically generates a code connecting the module code in the driving code 200 to connect the driving code 200 and the module code, and easily use the function defined in the module code within the driving code 200. You can do it.

이러한 상기 통합 개발 환경의 구동 코드(220) 생성은 상기 하드웨어 환경설정의 완료 시 자동으로 진행될 수 있다. 사용자 인터페이스(I100)를 통해 핀 할당을 완료하면 상기 하드웨어 환경설정이 반영된 구동 코드(220)가 자동으로 생성되므로, 개발자는 생성된 구동 코드(220)를 곧바로 확인할 수 있고, 모듈 코드에 포함된 함수를 곧바로 사용할 수 있다.The generation of the driving code 220 of the integrated development environment may be automatically performed upon completion of the hardware environment setting. When the pin assignment is completed through the user interface I100, the drive code 220 reflecting the hardware environment setting is automatically generated, so that the developer can immediately check the generated drive code 220, and a function included in the module code Can be used immediately.

도 6에서 도시된 상기 통합 개발 환경에 의해 생성된 구동 코드(220)는 도시된 코드에 한정되는 것이 아니라, 모듈 부품(M1, M2, …, Mn)의 특성에 맞도록 수정될 수 있고 더 추가될 수 있다. 또한, 초기 구동 코드(210) 속에 포함되어 생성될 수 있다.The driving code 220 generated by the integrated development environment shown in FIG. 6 is not limited to the illustrated code, but can be modified to suit the characteristics of the module parts (M1, M2, ..., Mn) and further added. Can be. In addition, it may be generated by being included in the initial driving code 210.

도 7은 하드웨어 환경설정 변경에 따른 구동 코드의 변화를 나타낸 도면이다.7 is a diagram showing a change in a driving code according to a hardware environment setting change.

도 7을 참조하면, 본 발명의 일 실시예에 따른 상기 통합 개발 환경은 상기 하드웨어 환경설정을 변경하면 변경된 내용이 생성된 구동 코드(220)에 반영될 수 있다. 보다 구체적으로 설명하면, 도 4의 최초 하드웨어 환경설정에 따른 핀 할당은 키 패드 모듈(Keypad_4x30)의 Row1, Row2, Row3, Row4, Col1, Col2, Col3 핀에 대하여 각각 메인보드(11)의 5, 4, 3, 2, 8, 7, 6번 핀으로 할당되었다. 이에 따라 도 6의 생성된 상기 최초 하드웨어 환경설정이 반영되어 생성된 구동 코드(220)도 5, 4, 3, 2, 8, 7, 6번 핀으로 핀 할당되었다. 추후 도 7에 도시된 것과 같이 사용자 인터페이스(I110)를 통해 키 패드 모듈(Keypad_4x30)의 Row1 및 Row2 핀을 메인보드(11)의 10, 11번 핀으로 핀 할당을 변경하면, 상기 통합 개발 환경은 변경된 핀 할당이 반영되도록 구동 코드(221)를 수정할 수 있다.Referring to FIG. 7, in the integrated development environment according to an embodiment of the present invention, when the hardware environment setting is changed, the changed content may be reflected in the generated driving code 220. More specifically, the pin assignment according to the initial hardware configuration of FIG. 4 is 5 of the main board 11, respectively, for the Row1, Row2, Row3, Row4, Col1, Col2, and Col3 pins of the keypad module (Keypad_4x30). It is assigned to pins 4, 3, 2, 8, 7, and 6. Accordingly, the driving code 220 generated by reflecting the generated initial hardware configuration of FIG. 6 is also pin assigned to pins 5, 4, 3, 2, 8, 7, and 6. Later, if the pin assignment of the Row1 and Row2 pins of the keypad module (Keypad_4x30) to pins 10 and 11 of the main board 11 through the user interface I110 as shown in FIG. 7 is changed, the integrated development environment is The driving code 221 may be modified to reflect the changed pin assignment.

개발자는 하드웨어 장치(10)를 개발하는 과정에서 수많은 모듈 부품에 대해 설계 및 프로그래밍을 반복하게 된다. 그러한 반복되는 과정에서 매번 데이터 시트를 비교하고, 하드웨어 설정 및 코드 작성을 또한 반복하므로 비효율적인 시간 소모가 매우 크다. 또한, 반복하는 과정에서 코드를 잘못 작성할 가능성도 크다. 보통 디버깅 과정에서 올바르게 수정되지만, 디버깅 시간도 낭비되는 경우가 많다. 본 발명은 이런 하드웨어 장치(10) 개발 과정에서의 비효율적인 자원 소모를 방지할 수 있다.In the process of developing the hardware device 10, the developer repeats design and programming for numerous module components. In such a repetitive process, data sheets are compared each time, hardware configuration and code writing are also repeated, so inefficient time consumption is very large. In addition, there is a high possibility that the code is incorrectly written in the iterative process. It is usually corrected during the debugging process, but debugging time is often wasted. The present invention can prevent inefficient resource consumption in the development process of the hardware device 10.

또한, 본 발명은 단지 코드를 생성하는 것이 아닌 메인보드(11)의 종류에 따라 서로 다른 모듈 부품(M1, M2, …, Mn)에 대한 정보, 기본적인 하드웨어 설정 및 자주 사용되는 코드인 모듈 코드가 통합 개발 환경에 저장되고, 개발자는 사용자 인터페이스를 통해 간단하게 하드웨어 환경설정을 할 수 있다. 상기 하드웨어 환경설정은 구동 코드에 자동으로 반영되어 개발자가 손쉽게 모듈 부품에 대한 함수를 이용하게 하므로, 모듈 교체에 따른 수정 시간 자원도 절약할 수 있다.In addition, the present invention does not simply generate a code, but according to the type of the main board 11, information on different module parts (M1, M2, ..., Mn), basic hardware settings, and module codes, which are frequently used codes, are provided. It is stored in the integrated development environment, and the developer can simply configure the hardware environment through the user interface. Since the hardware environment setting is automatically reflected in the driving code so that the developer can easily use the function for the module part, it is possible to save the modification time resource according to the module replacement.

도 8은 본 발명의 일 실시예에 따른 도 6의 생성된 구동 코드로 연결된 모듈 코드를 나타낸 도면이다.8 is a diagram illustrating a module code connected by the generated driving code of FIG. 6 according to an embodiment of the present invention.

도 8을 참조하면, 모듈 코드(300)는 연결할 모듈 부품을 제어하기 위한 코드(변수, 함수 또는 자료형 타입 정의 및 선언)를 구동 코드 내에서 사용이 용이하도록 미리 작성해둔 코드일 수 있다. 도 6의 도시된 상기 통합 개발 환경이 생성한 구동 코드(220) 중 ‘#include <keypad_4x3.h>’으로 연결된 모듈 코드가 도 8에 도시되어 있다. 도 6 및 도 8에 도시된 바와 같이, 생성된 구동 코드(220)로 인해, Keypad_4x3의 클래스를 이용할 수 있고, 모듈 코드(300)에 정의된 ‘getKey()’함수(310)를 구동 코드(200)에서 곧바로 이용할 수 있다. 또한, 모듈 코드(300) 내에도 연속되어 연결된 또 다른 모듈 코드(320)가 존재할 수 있다. 모듈 코드 내에서의 종속적으로 연결된 또 다른 모듈 코드(320)로 인해, 간단한 하드웨어 환경설정으로 생성된 구동 코드(220)만으로 해당하는 모듈 부품을 제어하는 모든 함수를 이용할 수 있도록 한다.Referring to FIG. 8, the module code 300 may be a code prepared in advance to facilitate use of a code (variable, function, or data type type definition and declaration) for controlling a module component to be connected in the driving code. In FIG. 8, a module code connected with “#include <keypad_4x3.h>” among the driving codes 220 generated by the integrated development environment shown in FIG. 6 is shown in FIG. 6 and 8, due to the generated driving code 220, the class of Keypad_4x3 can be used, and the'getKey()' function 310 defined in the module code 300 is used as the driving code ( 200) can be used immediately. In addition, another module code 320 connected in series may also exist in the module code 300. Due to another module code 320 that is subordinately connected in the module code, all functions for controlling the corresponding module parts can be used only with the driving code 220 generated by simple hardware configuration.

이러한 모듈 코드(300)는 해당 모듈 부품을 개발자가 각각의 모듈 부품을 이용하기 위해 각각 따로 작성하는 것을 방지하여 개발 자원 낭비를 줄일 수 있다. 모듈 코드는 도 8에 도시된 코드만으로 한정되는 것은 아니며, 다른 다양한 코드도 모듈 코드로 포함될 수 있다. 예를 들어, 모듈 부품의 정보를 JSON(JavaScript Object Notation)의 형태로 저장하고, 하드웨어 환경설정에서 상기 모듈 부품의 정보를 나타나게 할 수 있다. 따라서 모듈 코드는 프로그래밍 영역에서 사용되는 모듈화 프로그래밍의 영역보다 더 넓은 의미를 지니며, 모듈 부품을 해당 메인보드(11)에서 사용하고, 이용할 수 있도록 하는 모든 파일 또는 코드를 포함할 수 있다.The module code 300 prevents a developer from separately writing a corresponding module component to use each module component, thereby reducing development resource waste. The module code is not limited to the code shown in FIG. 8, and various other codes may be included as module codes. For example, it is possible to store the module component information in the form of JSON (JavaScript Object Notation) and display the module component information in the hardware environment setting. Accordingly, the module code has a broader meaning than the area of modular programming used in the programming area, and may include all files or codes that allow the module component to be used and used by the corresponding main board 11.

도 9는 본 발명의 일 실시예에 따른 모듈 부품을 선택하는 것을 나타낸 도면이다.9 is a view showing selection of a module component according to an embodiment of the present invention.

도 9를 참조하면, 도 3에서 언급한 것과 같이 개발자는 메인보드(11)에 연결할 모듈 부품을 상기 통합 개발 환경의 사용자 인터페이스(I100)를 통해 선택할 수 있다. 이때, 사용자 인터페이스(I100)에는 상기 통합 개발 환경에 등록된 모듈 부품(M1, M2, M3)뿐만 아니라, 상기 통합 개발 환경에 등록되지 않은 모듈 부품(M4, M5)도 나타나고 선택할 수 있다.Referring to FIG. 9, as mentioned in FIG. 3, a developer can select a module component to be connected to the main board 11 through the user interface I100 of the integrated development environment. At this time, in the user interface I100, not only module parts M1, M2, and M3 registered in the integrated development environment, but also module parts M4 and M5 that are not registered in the integrated development environment may be displayed and selected.

상기 통합 개발 환경에 등록되지 않은 모듈 부품(M4, M5)은 도 2의 개발 지원 서버(140)에 등록되고 모듈 부품 제공부(110)가 수신한 모듈 부품일 수 있다. 소프트웨어 개발 시스템(100)가 모듈 부품 제공부(110)와 네트워크(150)로 연결되면, 상기 통합 개발 환경은 개발 지원 서버(140)에 등록된 모듈 부품에 대한 데이터를 모듈 부품 제공부(110)가 수신하여, 사용자 인터페이스(I100)에 수신한 모듈 부품(M4, M5)이 나타나도록 할 수 있다. 상기 통합 개발 환경에 나타나는 모듈 부품 제공부(110)의 모듈 부품은 개발 지원 서버(140)에 등록된 모든 모듈 부품이 노출될 수 있다. 다만, 개발자의 사용자 편의를 위해 소정의 기준에 의해 노출될 수 있다. 상기 소정의 기준은 메인보드(11)와의 호환성, 사용 빈도수 등일 수 있다.Module parts M4 and M5 that are not registered in the integrated development environment may be module parts registered in the development support server 140 of FIG. 2 and received by the module part providing unit 110. When the software development system 100 is connected to the module parts providing unit 110 and the network 150, the integrated development environment provides the module parts providing unit 110 with data on the module parts registered in the development support server 140. Is received, the received module parts M4 and M5 may be displayed on the user interface I100. All module parts registered in the development support server 140 may be exposed as module parts of the module part providing unit 110 appearing in the integrated development environment. However, it may be exposed according to a predetermined standard for the developer's user convenience. The predetermined criterion may be compatibility with the main board 11 and a frequency of use.

즉, 모듈 부품 제공부(110)는 메인보드(11)와 호환 가능한 모듈 부품 중 상기 통합 개발 환경에 등록되지 않은 모듈 부품에 대한 정보를 개발 지원 서버(140)에서 수신하여 상기 통합 개발 환경에 노출되도록 제공할 수 있다. 개발자는 상기 통합 개발 환경에 등록되어 있지 않아도, 개발 지원 서버(140)의 모듈 부품 데이터베이스를 통해 상용되는 모듈 부품 정보를 획득하거나 사용할 수 있으므로 모듈 부품 정보를 검색하기 위한 시간이 절약될 수 있다. 또한, 모듈 부품 정보를 통합 개발 환경에서 제공하므로, 개발 과정이 더 효율적일 수 있다.That is, the module component providing unit 110 receives information on the module component not registered in the integrated development environment among module components compatible with the main board 11 from the development support server 140 and exposes it to the integrated development environment. It can be provided if possible. Even if the developer is not registered in the integrated development environment, since the developer can obtain or use the commonly used module part information through the module part database of the development support server 140, time for searching for module part information can be saved. In addition, since module part information is provided in the integrated development environment, the development process may be more efficient.

이하, 상기 통합 개발 환경에 등록되지 않고, 모듈 부품 제공부(110)가 개발 지원 서버(140)에서 수신하여 사용자 인터페이스(I100)에 노출시키는 모듈 부품을 클라우드 모듈 부품이라 한다.Hereinafter, a module component that is not registered in the integrated development environment and is received by the module component provider 110 from the development support server 140 and exposed to the user interface I100 is referred to as a cloud module component.

도 10은 본 발명의 일 실시예에 따른 모듈 부품이 추천되는 것을 나타낸 도면이다.10 is a view showing that a module component is recommended according to an embodiment of the present invention.

도 10을 참조하면, 모듈 부품 제공부는 메인보드와 호환 가능한 모듈 부품 중에서 상기 통합 개발 환경에서 입력된 하드웨어 장치의 종류에 따라 사용 빈도가 높은 모듈 부품을 추천할 수 있다. 보다 자세히 설명하면, 상기 모듈 부품 제공부는 개발자가 제작하려는 하드웨어 장치의 종류에 따라, 상기 종류의 하드웨어 장치를 제작할 때, 자주 이용되는 모듈 부품을 추천할 수 있다. 추천되는 모듈 부품(M6, M7, M8)은 상기 통합 개발 환경의 사용자 인터페이스(I100)를 통해 노출될 수 있다. 추천되는 모듈 부품(M6, M7, M8)은 클라우드 모듈 부품(M7, M8)일 수 있거나 상기 통합 개발 환경에 등록된 모듈 부품(M7)일 수 있다. 상기 모듈 부품 제공부가 하드웨어 장치의 종류에 따라 사용 빈도수가 높은 모듈 부품을 추천하는 것은 개발자가 개발하려는 하드웨어 장치의 개발 경험이 없더라도 추천되는 모듈 부품에 대한 선제적 사용이 가능하므로 개발 기간 중의 시행착오를 줄일 수 있다.Referring to FIG. 10, the module component providing unit may recommend a module component having a high frequency of use according to a type of a hardware device input from the integrated development environment among module components compatible with the main board. In more detail, the module component providing unit may recommend module components that are frequently used when manufacturing the hardware device according to the type of hardware device the developer intends to manufacture. The recommended module components M6, M7, and M8 may be exposed through the user interface I100 of the integrated development environment. The recommended module parts M6, M7, M8 may be cloud module parts M7, M8, or may be module parts M7 registered in the integrated development environment. The module component provider recommends module parts with a high frequency of use according to the type of hardware device, so that the developer can preemptively use the recommended module parts even if the developer does not have development experience of the hardware device to be developed, trial and error during the development period are avoided. Can be reduced.

도 11은 본 발명의 일 실시예에 따른 모듈 부품의 일부가 고정적으로 상위에 노출되는 모습을 나타낸 도면이다. 11 is a view showing a state in which a part of a module component according to an embodiment of the present invention is fixedly exposed to an upper portion.

도 11을 참조하면, 모듈 부품 제공부는 통합 개발 환경에서 노출되는 모듈 부품의 정렬 기준이 변경되어도, 상기 모듈 부품의 일부는 고정적으로 상위에 노출되도록 할 수 있다. 보다 자세히 설명하면, 사용자 인터페이스(I100)에 노출되는 모듈 부품은 언급한 것과 같이 소정의 기준에 따라 정렬될 수 있다. 예컨대, 소정의 기준은 모듈 부품의 사용 빈도수, 모듈 부품의 단가, 타 개발자가 등록한 점수 등일 수 있다. 정해진 정렬 기준을 변경하게 되면, 변경된 기준에 따라 클라우드 모듈 부품의 정렬 기준이 변경될 수 있다. 이때, 클라우드 모듈 부품 중 일부는 고정적으로 최상위에 노출되도록 그 정렬 순위가 고정될 수 있다. 도 11에서 (A) 및 (B)는 각기 다른 정렬 기준으로 모듈 부품이 정렬된 것을 나타낸 것이다. 도 11의 (A)에서 정렬 기준으로 정렬된 모듈 부품은 M12, M13, M14이며, 최상위에 노출되도록 고정된 모듈 부품은 M9, M10, M11이다. 도 11의 (B)에서는 다른 정렬 기준으로 정렬된 모듈 부품은 M15, M12, M14이며, 최상위에 노출되도록 고정된 모듈 부품은 M9, M10, M11이다. Referring to FIG. 11, even if the alignment standard of module components exposed in the integrated development environment is changed, the module component providing unit may allow some of the module components to be fixedly exposed to the upper part. In more detail, module components exposed to the user interface I100 may be aligned according to a predetermined standard as mentioned above. For example, the predetermined criterion may be a frequency of use of module parts, a unit price of module parts, and scores registered by other developers. When the predetermined alignment criteria are changed, the alignment criteria of the cloud module components may be changed according to the changed criteria. At this time, some of the cloud module parts may be fixed in order of alignment so that they are exposed to the highest level. In FIG. 11, (A) and (B) show that the module parts are arranged according to different alignment criteria. In (A) of FIG. 11, the module parts arranged according to the alignment criteria are M12, M13, and M14, and the module parts fixed to be exposed at the top are M9, M10, and M11. In (B) of FIG. 11, the module parts arranged according to different alignment criteria are M15, M12, and M14, and the module parts fixed to be exposed at the top are M9, M10, and M11.

고정적으로 노출되기 위해서는 자격이 필요할 수 있다. 상기 자격은 그 모듈 부품을 등록한 개발자가 소정의 재화를 지불하여 획득할 수 있고, 상기 자격은 일정 기간 동안 유지될 수 있다. 기한이 경과되면, 다시 재화를 지불하여 상기 자격을 재획득할 수 있다.Qualifications may be required to be exposed to a fixed level. The qualification can be obtained by a developer who registers the module part by paying a predetermined product, and the qualification can be maintained for a certain period. When the deadline has elapsed, the above qualification can be reacquired by paying the goods again.

상기 모듈 부품을 판매하는 판매자는 상기 자격을 이용하여, 상기 모듈 부품을 노출되는 리스트의 최상단 위치시켜 보다 많은 사람이 상기 모듈 부품을 조회하고, 구매하도록 유도할 수 있다.A seller who sells the module parts may use the qualification to place the module parts at the top of the exposed list to induce more people to inquire and purchase the module parts.

도 12는 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성을 나타낸 구성도이고, 도 13은 본 발명의 일 실시예에 따른 통합 개발 환경의 마켓 인터페이스를 나타낸 도면이다.12 is a block diagram showing a schematic configuration of a software development system according to an embodiment of the present invention, and FIG. 13 is a view showing a market interface of an integrated development environment according to an embodiment of the present invention.

도 12 및 도 13을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템(100)은 통합 개발 환경에서 모듈 부품에 대한 구매 정보를 제공하는 부품 구매 서버(160)를 더 포함할 수 있다. 부품 구매 서버(160)는 네트워크(150)에 연결되어 소프트웨어 개발 시스템(100)와 상기 구매 정보와 관련된 데이터를 송수신할 수 있다. 상기 구매 정보는 상기 모듈 부품의 하나 이상의 구매처, 상기 각 구매처에 따른 가격 정보, 구매 수량에 따른 할인율 및 상기 각 구매처에 대한 평판 중 하나 이상일 수 있고, 상기 통합 개발 환경의 마켓 인터페이스(I200)에 나타날 수 있다.12 and 13, the software development system 100 according to an embodiment of the present invention may further include a parts purchase server 160 that provides purchase information on module parts in an integrated development environment. The parts purchase server 160 is connected to the network 150 to transmit and receive data related to the purchase information with the software development system 100. The purchase information may be one or more of one or more purchase places of the module parts, price information according to each purchase place, a discount rate according to a purchase quantity, and a reputation for each purchase place, and appear on the market interface I200 of the integrated development environment. I can.

일 실시예에서, 마켓 인터페이스(I200)는 도 9 내지 도 11의 클라우드 모듈 부품을 선택하면 나타날 수 있다. 마켓 인터페이스(I200)는 개발자가 선택한 클라우드 모듈 부품 또는 상기 선택한 클라우드 모듈 부품의 모듈 코드를 구매할 수 있는 인터페이스일 수 있다. 마켓 인터페이스(I200)에는 모듈 부품에 대한 상기 모듈 코드 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 코드 정보가 노출될 수 있다. 상기 모듈 코드 정보는 개발 지원 서버(140)에서 상기 모듈 코드 정보를 수신한 모듈 코드 제공부(130)가 제공할 수 있다.In an embodiment, the market interface I200 may appear when a cloud module component of FIGS. 9 to 11 is selected. The market interface I200 may be an interface for purchasing a cloud module component selected by a developer or a module code of the selected cloud module component. The module code information not registered in the integrated development environment among the module codes for module parts may be exposed on the market interface I200. The module code information may be provided by the module code providing unit 130 receiving the module code information from the development support server 140.

개발 지원 서버(140)에는 서로 다른 각각의 개발자가 개발한 모듈 코드들이 업로드될 수 있다. 업로드된 상기 모듈 코드는 각각의 개발자의 계정에 종속될 수 있다. 모듈 코드가 상기 개발자 계정에 종속된다는 것은 상기 모듈 코드의 배포 권한이 상기 개발자 계정에 부여되는 것일 수 있다. 모듈 코드 제공부(130)는 인증된 상기 개발자 계정의 신호에 따라 업로드된 상기 모듈 코드는 판매되거나 공유로 배포할 수 있다. 예컨대, 배포되는 모듈 코드는 도 13과 같이 모듈 부품의 마켓 인터페이스(I200)에 노출되어 판매되거나, 게시판에서 첨부파일로 공유될 수 있다.Module codes developed by different developers may be uploaded to the development support server 140. The uploaded module code may be dependent on each developer's account. The fact that the module code is subordinate to the developer account may mean that the distribution authority of the module code is granted to the developer account. The module code providing unit 130 may sell or distribute the uploaded module code according to the signal of the authenticated developer account. For example, the distributed module code may be exposed to the market interface I200 of the module component and sold as shown in FIG. 13, or may be shared as an attachment on a bulletin board.

배포되는 상기 모듈 코드를 수신하기 위해서 상기 통합 개발 환경은 모듈 코드 제공부(130)에 수신 요청을 할 수 있다. 모듈 코드 제공부(130)는 상기 통합 개발 환경이 상기 모듈 코드를 요청하면, 상기 모듈 코드에 관한 수신 권한 인증을 요청할 수 있다. 상기 수신 권한 타입은 무료, 구매, 첨부 및 구독 중 하나일 수 있다. 상기 수신 권한은 상기 모듈 코드를 수신 요청한 상기 통합 개발 환경에 로그인된 계정 정보를 개발 지원 서버(140)가 확인하여 인증될 수 있다. 또한, 상기 수신 권한 타입은 배포하는 개발자 계정 권한을 이용하여 지정될 수 있다.In order to receive the distributed module code, the integrated development environment may make a reception request to the module code providing unit 130. When the integrated development environment requests the module code, the module code providing unit 130 may request authentication of receiving authority for the module code. The type of receiving permission may be one of free, purchase, attachment, and subscription. The reception right may be authenticated by checking account information logged in to the integrated development environment for which the module code is requested to be received by the development support server 140. In addition, the type of reception authority may be designated using the developer account authority to be distributed.

상기 수신 권한 타입 중 무료는 상기 모듈 코드 수신에 자격 제한 없이 누구나 수신할 수 있는 타입일 수 있다. 무료로 지정된 상기 모듈 코드는 자격 제한이 없으므로 수신 권한 인증 없이 수신을 요청한 개발자 단말기로 전송될 수 있다.The free of charge type may be a type that anyone can receive without a qualification limit for receiving the module code. Since the module code designated for free is not subject to qualification restrictions, it can be transmitted to a developer terminal that has requested reception without receiving authorization authentication.

상기 수신 권한 타입 중 구매는 소정의 재화를 지불하여 배포되는 상기 모듈 코드의 구매 시점의 버전의 모듈 코드의 수신 권한을 획득하는 것일 수 있다. 상기 구매 타입으로 수신 권한을 획득하면, 구매 시점 이후에 배포되는 최신 버전의 상기 모듈 코드를 수신하기 위해서는 다시 재화를 지불하여 수신 권한을 재획득해야 할 수 있다.Among the types of the right to receive, the purchase may be to acquire the right to receive the module code of the version at the time of purchase of the module code distributed by paying a predetermined product. When the right to receive the purchase type is acquired, in order to receive the latest version of the module code distributed after the point of purchase, it may be necessary to pay the goods again to reacquire the right to receive.

상기 수신 권한 타입 중 첨부는 상기 모듈 부품에 종속되어 상기 모듈 부품 구매 시 상기 수신 권한 인증이 무료로 변경되는 것일 수 있다. 예를 들면, 도 13의 모듈 부품(M20)을 구매하면, 모듈 부품(M20)에 대한 수신 권한 타입이 판매로 지정된 모듈 코드가 모듈 부품(M20)을 구매한 상기 계정에 대해 수신 권한 타입이 무료로 변경될 수 있다. 무료로 변경되는 상기 모듈 코드는 모듈 부품(M20)을 제조한 제조사에서 작성한 모듈 코드일 수 있거나, 타 개발자가 개별적으로 작성한 모듈 코드일 수 있다. 무료로 변경되는 모듈 코드는 서비스제공자와 코드를 작성한 개발자 또는 상기 제조사의 협의에 따라 지정될 수 있다.The attachment among the types of the right to receive is subordinate to the module component, and thus the authentication of the right to receive is changed for free when the module component is purchased. For example, when the module part M20 of FIG. 13 is purchased, the module code designated as sale for the module part M20 is provided with the receiving authority type free for the account that purchased the module part M20. Can be changed to. The module code, which is changed for free, may be a module code written by a manufacturer who manufactured the module part M20, or may be a module code individually written by another developer. The module code that is changed for free may be designated according to an agreement between the service provider and the developer who wrote the code or the manufacturer.

상기 수신 권한 타입 중 구독은 상기 모듈 코드를 배포하는 계정에 대한 구독일 수 있다. 보다 자세히 설명하면, 상기 계정에 대한 구독은 재화를 지불하여 소정의 기간에는 상기 계정에서 배포하는 상기 모듈 코드의 수신 권한을 무료로 변경하는 것일 수 있다. 예를 들어, ‘A’라는 계정을 구독하면, 구독하는 기간에는 ‘A’ 계정에서 배포하는 모듈 코드를 제한 없이 수신할 수 있다. 또한, 상기 계정에 한정되지 않는 구독일 수 있다. 상기 계정에 한정되지 않은 구독은 글로벌 구독일 수 있다. 상기 글로벌 구독을 하면, 개발 지원 서버(140)에 등록된 모듈 코드를 구독하는 기간 동안 계정 상관없이 무제한으로 수신할 수 있다.Among the types of receiving rights, a subscription may be a subscription to an account that distributes the module code. In more detail, the subscription to the account may be to change the right to receive the module code distributed by the account for free during a predetermined period by paying for goods. For example, if you subscribe to an account called'A', you can receive module codes distributed from the account'A' without restrictions during the subscription period. In addition, it may be a subscription that is not limited to the account. Subscriptions that are not limited to the account may be global subscriptions. When the global subscription is made, the module code registered in the development support server 140 can be received indefinitely regardless of the account during the subscription period.

모듈 코드 제공부(130)는 상기 수신 권한 인증을 요청한 상기 통합 개발 환경이, 상기 모듈 코드의 수신 권한 인증이 되지 않을 경우, 상기 모듈 코드의 일부분만 조회되도록 할 수 있다. The module code providing unit 130 may allow only a part of the module code to be inquired when the integrated development environment for which the reception right authentication is requested is not authenticated for the reception right for the module code.

상기 모듈 코드를 개발한 개발자는 복수의 타 개발자에게 개발한 상기 모듈 코드를 공유하여 상기 모듈 코드를 더 발전시킬 수 있거나, 상기 모듈 코드를 판매하여 이익을 얻을 수 있다. 또한, 상기 모듈 코드를 구매 또는 구독하는 개발자는 구매 옵션을 선택할 수 있으므로, 개발 상황에 따라 결정할 수 있으며, 하드웨어 장치에 사용되는 모듈 부품의 모듈 코드를 전체를 구매하여, 개발 시간을 크게 앞당길 수도 있다. 모듈 부품을 판매하는 판매자는 모듈 부품과 필수적으로 연계되는 상기 모듈 코드를 상기 모듈 부품과 묶음으로 판매할 수 있으므로 판매 전략이 다양화될 수 있다.A developer who has developed the module code may further develop the module code by sharing the developed module code with a plurality of other developers, or may obtain a profit by selling the module code. In addition, since the developer who purchases or subscribes to the module code can select a purchase option, it can be determined according to the development situation, and can greatly accelerate the development time by purchasing the entire module code of the module component used in the hardware device. . A seller who sells module parts may sell the module code essentially linked to the module part in bundles with the module parts, so that a sales strategy may be diversified.

도 14는 본 발명의 일 실시예에 따른 모듈 코드와 컴파일 인증 정보 송수신 관계를 나타낸 개념도이다.14 is a conceptual diagram illustrating a relationship between transmission and reception of module code and compilation authentication information according to an embodiment of the present invention.

도 14를 참조하면, 일 실시예에서, 모듈 코드 제공부(130)에서 수신되는 모듈 코드(C1)는 수신한 상기 통합 개발 환경의 고유 코드를 포함할 수 있다. 여기서, 상기 고유 코드는 일례로 개발자 단말기의 제어장치 식별코드, 통합 개발 환경의 시리얼 넘버, 개발자 단말기의 메인보드 시리얼 넘버일 수 있다. 그러나, 이에 한정되는 것은 아니고, 상기 통합 개발 환경이 실행되는 개발자 단말기를 식별할 수 있는 다른 고유값일 수 있다.Referring to FIG. 14, in an embodiment, the module code C1 received from the module code providing unit 130 may include a unique code of the received integrated development environment. Here, the unique code may be, for example, a control device identification code of a developer terminal, a serial number of an integrated development environment, and a serial number of a main board of the developer terminal. However, the present invention is not limited thereto, and may be another unique value capable of identifying a developer terminal on which the integrated development environment is executed.

개발자 단말기에서 실행되는 통합 개발 환경은 상기 수신한 모듈 코드에 포함된 상기 고유 코드를 기초한 상기 통합 개발 환경의 인증 여부에 따라 상기 모듈 코드의 컴파일을 수행 또는 거부할 수 있다. 상기 컴파일 인증 정보가 일치라면, 상기 통합 개발 환경은 수신한 모듈 코드(C1)를 컴파일할 수 있다. 그러나 상기 컴파일 인증 정보가 불일치일 경우 상기 통합 개발 환경은 수신한 모듈 코드(C1)의 컴파일을 거부할 수 있다. 상기 통합 개발 환경의 인증 여부는, 모듈 코드 제공부(130)가 모듈 코드(C1)의 제공을 요청한 상기 통합 개발 환경의 고유 코드(C2)와 상기 수신한 모듈 코드에 대해 컴파일을 수행하려는 상기 통합 개발 환경의 고유 코드의 일치 또는 불일치일 수 있다.The integrated development environment executed in the developer terminal may perform or reject compilation of the module code according to whether the integrated development environment is authenticated based on the unique code included in the received module code. If the compilation authentication information matches, the integrated development environment may compile the received module code C1. However, when the compilation authentication information is inconsistent, the integrated development environment may refuse to compile the received module code C1. Whether or not the integrated development environment is authenticated is determined by the module code providing unit 130, the unique code C2 of the integrated development environment for which the module code C1 has been requested, and the integration of the received module code to be compiled. It may be a match or inconsistency of the unique code of the development environment.

예를 들어, 제1 개발자 단말기에서 실행되는 통합 개발 환경에서 모듈 코드 제공부(130)로 모듈 코드 제공을 요청할 때, 제1 개발자 단말기는 상기 통합 개발 환경의 고유 코드(C2)를 모듈 코드 제공부(130)로 제공할 수 있다. 모듈 코드 제공부(130)는 수신 권한 인증 확인 후, 제1 개발자 단말기로 모듈 코드(C1)를 제공할 때, 모듈 코드(C1)에 제1 개발자 단말기의 상기 통합 개발 환경의 고유 코드(C2) 정보를 포함해 제공할 수 있다. 제1 개발자 단말기의 상기 통합 개발 환경은 수신한 모듈 코드(C1)를 컴파일할 때, 모듈 코드(C1)에 포함된 고유 코드(C2)와 자신의 고유 코드를 비교하여 일치 또는 불일치를 확인할 수 있다.For example, when requesting to provide a module code to the module code providing unit 130 in the integrated development environment executed in the first developer terminal, the first developer terminal provides the module code providing unit with the unique code C2 of the integrated development environment. It can be provided as (130). When the module code providing unit 130 checks the reception authority authentication, and provides the module code C1 to the first developer terminal, the module code C1 contains a unique code C2 of the integrated development environment of the first developer terminal. You can provide it with information. When compiling the received module code C1, the integrated development environment of the first developer terminal may compare the unique code C2 included in the module code C1 with its own code to check match or inconsistency. .

한편, 제1 개발자 단말기에서 모듈 코드 제공부(130)로 상기 제공 요청을 통해 제공된 모듈 코드(C1)를 제2 개발자 단말기에서 컴파일하면 모듈 코드(C1)에 포함된 고유 코드(C2)와 제2 개발자 단말기에서 실행되는 상기 통합 개발 환경의 고유 코드가 다르므로, 컴파일 인증 정보는 불일치가 되고, 상기 통합 개발 환경은 모듈 코드(C1)의 컴파일을 거부할 수 있다.On the other hand, when the module code (C1) provided through the supply request from the first developer terminal to the module code providing unit 130 is compiled in the second developer terminal, the unique code (C2) included in the module code (C1) and the second Since the unique code of the integrated development environment executed in the developer terminal is different, the compilation authentication information becomes inconsistent, and the integrated development environment may reject the compilation of the module code C1.

또한, 상기 통합 개발 환경은 상기 수신된 모듈 코드의 미리 정해진 컴파일 수행의 횟수를 초과하면 상기 모듈 코드 제공부에 인증을 재요청할 수 있다. 최초 컴파일 인증이 수행되어도 미리 정해진 컴파일 횟수를 초과하면, 상기 통합 개발 환경은 컴파일을 거부하고 모듈 코드 제공부(130)의 재인증을 요청할 수 있다. 상기 최초 컴파일 인증이 해킹 또는 툴을 이용한 가짜 인증일 수 있으므로 재인증을 요청할 수 있다.In addition, the integrated development environment may request the module code providing unit for authentication again when the number of times the received module code is compiled exceeds a predetermined number of times. Even if the initial compilation authentication is performed, if a predetermined number of compilations is exceeded, the integrated development environment may reject compilation and request reauthentication of the module code providing unit 130. Since the initial compilation authentication may be hacking or fake authentication using a tool, re-authentication may be requested.

상기 통합 개발 환경의 컴파일 인증은 모듈 코드의 불법 유통을 방지할 수 있다.Compilation authentication of the integrated development environment can prevent illegal distribution of module codes.

이하, 본 발명의 일 실시예에 따른 소프트웨어 개발 방법에 관해서 설명하기로 한다. 상기 소프트웨어 개발 방법은 가변식 스티어링 휠 시스템과 유사하므로 간략히 언급하기로 한다.Hereinafter, a software development method according to an embodiment of the present invention will be described. Since the software development method is similar to the variable steering wheel system, it will be briefly mentioned.

도 15는 본 발명의 일 실시예에 따른 소프트웨어 개발 방법의 흐름도이다.15 is a flowchart of a software development method according to an embodiment of the present invention.

도 15를 참조하면, 본 발명의 일 실시예에 따른 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 이용하는 소프트웨어 개발 방법은 상기 하드웨어 장치에 장착하여 전기적으로 연결 가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 정보 제공 단계(S110), 상기 모듈 부품을 선택하는 모듈 선택 단계(S120) 및 상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공 단계(S130)를 포함할 수 있다. Referring to FIG. 15, a software development method using an integrated development environment supporting the development of device software for driving a hardware device including a main board equipped with a microcontroller according to an embodiment of the present invention is provided in the hardware device. Module part information providing step (S110) of providing information on one or more module parts that can be mounted and electrically connected through the integrated development environment, a module selection step of selecting the module part (S120), and the module part and the hardware It may include a module code providing step (S130) of providing a module code written so that the main board of the device interacts through the integrated development environment.

모듈 선택 단계(S120)에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성할 수 있다.The device software may be automatically generated based on the module component and the module code selected in the module selection step S120.

상기 통합 개발 환경은 상기 선택된 상기 모듈 부품에 대한 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인 보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 상기 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당할 수 있다.The integrated development environment lists each pin connectable of the main board or the microcontroller with respect to each pin of the module component through the user interface using pin information on the selected module component, and by the user input Can be assigned.

모듈 부품 정보 제공 단계(S110)는 상기 메인보드와 호환 가능한 상기 모듈 부품 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 부품에 대한 정보를 상기 개발 프로그램에서 노출되도록 제공하는 것일 수 있다.The module component information providing step (S110) may be to provide information on the module component not registered in the integrated development environment among the module components compatible with the main board to be exposed in the development program.

도 16은 본 발명의 일 실시예에 따른 모듈 코드 제공 단계의 세부 흐름도이다.16 is a detailed flowchart of a module code providing step according to an embodiment of the present invention.

도 16을 참조하면, 모듈 코드 제공 단계(S120)는 상기 통합 개발 환경이 상기 모듈 코드를 요청하는 수신 요청 단계(S121), 상기 통합 개발 환경에 로그인된 계정에 대해 상기 요청된 모듈 코드의 수신 권한 인증을 요청하는 인증 요청 단계(S122)를 포함할 수 있다. 그리고 상기 수신 권한을 인증 또는 확인하는 단계(S123) 이후, 무료, 구매, 첨부 및 구독 중 하나로 인증되면, 상기 모듈 코드를 제공(S123)하고, 수신 권한이 인증되지 않으면, 상기 모듈 코드의 일부분만 조회되는 단계(S125)를 포함할 수 있다.Referring to Figure 16, the module code providing step (S120) is a reception request step (S121) in which the integrated development environment requests the module code, the right to receive the requested module code for an account logged into the integrated development environment It may include an authentication request step (S122) of requesting authentication. And after the step of authenticating or confirming the reception right (S123), if one of free, purchase, attachment, and subscription is authenticated, the module code is provided (S123). It may include an inquiry step (S125).

본 명세서에 기재된 다양한 실시예들은 하드웨어, 미들웨어, 마이크로코드, 소프트웨어 및/또는 이들의 조합에 의해 구현될 수 있다. 예를 들어, 다양한 실시예들은 하나 이상의 주문형 반도체(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 프 로세싱 디바이스(DSPD)들, 프로그램어블 논리 디바이스(PLD)들, 필드 프로그램어블 게이트 어레이(FPGA)들, 프로세서들, 컨트롤러들, 마이크로컨트롤러들, 마이크로프로세서들, 여기서 제시되는 기능들을 수행하도록 설계되는 다른 전자 유닛들 또는 이들의 조합 내에서 구현될 수 있다. Various embodiments described herein may be implemented by hardware, middleware, microcode, software, and/or a combination thereof. For example, various embodiments include one or more application specific semiconductors (ASICs), digital signal processors (DSPs), digital signal processing devices (DSPDs), programmable logic devices (PLDs), field programmable gate arrays. (FPGAs), processors, controllers, microcontrollers, microprocessors, other electronic units designed to perform the functions presented herein, or a combination thereof.

또한, 예를 들어, 다양한 실시예들은 명령들을 포함하는 컴퓨터-판독가능한 매체에 수록되거나 인코딩될 수 있다. 컴퓨터-판독가능한 매체에 수록 또는 인코딩된 명령들은 프로그램 가능한 프로세서 또는 다른 프로세서로 하여금 예컨대, 명령들이 실행될 때 방법을 수행하게끔 할 수 있다. 컴퓨터-판독가능한 매체는 컴퓨터 저장 매체 및 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 이송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 예를 들어, 이러한 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학디스크 저장 매체, 자기 디스크 저장 매체 또는 기타 자기 저장 디바이스 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스가능한 명령들 또는 데이터 구조들의 형태로 반송하거나 저장하는데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다.Further, for example, various embodiments may be embodied or encoded on a computer-readable medium containing instructions. Instructions embodied or encoded on a computer-readable medium may cause a programmable processor or other processor to perform a method, eg, when the instructions are executed. Computer-readable media includes both computer storage media and communication media including any medium that facilitates transfer of a computer program from one place to another. The storage medium may be any available medium that can be accessed by a computer. For example, such computer-readable media may include RAM, ROM, EEPROM, CD-ROM or other optical disk storage medium, magnetic disk storage medium or other magnetic storage device, or instructions or data accessible by the computer to the desired program code. It may include any other medium that can be used to transport or store in the form of structures.

이러한 하드웨어, 소프트웨어, 펌웨어 등은 본 명세서에 기술된 다양한 동작들 및 기능들을 지원하도록 동일한 디바이스 내에서 또는 개별 디바이스들 내에서 구현될 수 있다. 추가적으로, 본 발명에서 "~부"로 기재된 구성요소들, 유닛들, 모듈들, 컴포넌트들 등은 함께 또는 개별적이지만 상호 운용가능한 로직 디바이스들로서 개별적으로 구현될 수 있다. 모듈들, 유닛들 등에 대한 서로 다른 특징들의 묘사는 서로 다른 기능적 실시예들을 강조하기 위해 의도된 것이며, 이들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야만 함을 필수적으로 의미하지 않는다. 오히려, 하나 이상의 모듈들 또는 유닛들과 관련된 기능은 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 수행되거나 또는 공통의 또는 개별의 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수 있다.Such hardware, software, firmware, and the like may be implemented within the same device or within separate devices to support the various operations and functions described herein. Additionally, components, units, modules, components, and the like described as "units" in the present invention may be implemented together or separately as interoperable logic devices. The description of different features for modules, units, etc. is intended to highlight different functional embodiments, and does not necessarily imply that they must be realized by separate hardware or software components. Rather, functionality associated with one or more modules or units may be performed by separate hardware or software components or may be integrated within common or separate hardware or software components.

특정한 순서로 동작들이 도면에 도시되어 있지만, 이러한 동작들이 원하는 결과를 달성하기 위해 도시된 특정한 순서, 또는 순차적인 순서로 수행되거나, 또는 모든 도시된 동작이 수행되어야 할 필요가 있는 것으로 이해되지 말아야 한다. 임의의 환경에서는, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 구성요소들의 구분은 모든 실시예에서 이러한 구분을 필요로 하는 것으로 이해되어서는 안되며, 기술된 구성요소들이 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있다는 것이 이해되어야 한다.Although the operations are shown in the figures in a specific order, it should not be understood that these operations are performed in the specific order shown, or in a sequential order, or that all illustrated operations need to be performed to achieve the desired result. . In any environment, multitasking and parallel processing can be advantageous. Moreover, the division of various components in the above-described embodiments should not be understood as requiring such division in all embodiments, and the described components are generally integrated together into a single software product or packaged into multiple software products. It should be understood that you can.

본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.The present invention has been described with reference to the embodiments shown in the drawings, but these are only exemplary, and those of ordinary skill in the art will appreciate that various modifications and equivalent other embodiments are possible therefrom. Therefore, the true technical protection scope of the present invention should be determined by the technical spirit of the appended claims.

10: 하드웨어 장치 11: 메인보드
12: 마이크로컨트롤러 100: 소프트웨어 개발 시스템
110: 모듈 부품 제공부 120: 모듈 선택부
130: 모듈 코드 제공부 140: 개발 지원 서버
150: 네트워크 160: 부품 구매 서버
10: hardware device 11: mainboard
12: microcontroller 100: software development system
110: module component providing unit 120: module selection unit
130: module code provider 140: development support server
150: network 160: parts purchasing server

Claims (5)

마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 제공하는 소프트웨어 개발 시스템에 있어서,
상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 제공부;
상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부; 및
상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공부;를 포함하고,
상기 모듈 선택부에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성하며,
상기 모듈 코드 제공부는, 상기 모듈 부품에 대한 상기 모듈 코드 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 코드 정보를 상기 통합 개발 환경에서 노출되도록 제공하는 것인 소프트웨어 개발 시스템.
In a software development system that provides an integrated development environment that supports the development of device software for driving a hardware device including a main board equipped with a microcontroller,
A module component providing unit mounted on the hardware device and providing information on one or more module components electrically connectable through the integrated development environment;
A module selection unit that selects the module component through a user interface; And
Including; a module code providing unit that provides a module code written so that the module component and the main board of the hardware device interact through the integrated development environment,
Automatically generate the device software based on the module component and the module code selected by the module selection unit,
The module code providing unit provides the module code information not registered in the integrated development environment among the module codes for the module part to be exposed in the integrated development environment.
제1항에 있어서,
상기 통합 개발 환경에서 상기 모듈 부품에 대한 구매 정보를 제공하는 부품 구매부를 더 포함하는 것인 소프트웨어 개발 시스템.
The method of claim 1,
The software development system further comprising a parts purchase unit for providing purchase information on the module parts in the integrated development environment.
제1항에 있어서,
상기 모듈 코드는,
사용자 계정에 종속되어 상기 모듈 코드 제공부에 등록한 모듈 코드를 포함하는 것인 소프트웨어 개발 시스템.
The method of claim 1,
The module code,
A software development system comprising a module code that is subordinate to a user account and registered in the module code providing unit.
제1항에 있어서,
상기 모듈 코드 제공부는,
상기 통합 개발 환경이 상기 모듈 코드를 요청하면, 상기 모듈 코드에 관한 수신 권한의 인증을 요청하되, 상기 수신 권한 타입은 무료, 구매, 첨부 및 구독 중 하나이며,
상기 수신 권한 타입 중 첨부는, 상기 모듈 부품에 종속되어 상기 모듈 부품 구매 시 상기 수신 권한 인증이 무료로 변경되는 것인 소프트웨어 개발 시스템.
The method of claim 1,
The module code providing unit,
When the integrated development environment requests the module code, it requests authentication of the receiving authority for the module code, and the receiving authority type is one of free, purchase, attachment, and subscription,
The attachment of the type of receiving authority is subordinate to the module part, and the receiving authority authentication is changed for free when the module part is purchased.
마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 이용하는 소프트웨어 개발 방법에 있어서,
상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 정보 제공 단계;
상기 모듈 부품을 선택하는 모듈 선택 단계; 및
상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공 단계;를 포함하고,
상기 모듈 선택 단계에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성하며,
상기 모듈 코드 제공 단계는, 상기 모듈 부품에 대한 상기 모듈 코드 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 코드 정보를 상기 통합 개발 환경에서 노출되도록 제공하는 것인 소프트웨어 개발 방법.
In the software development method using an integrated development environment that supports the development of device software for driving a hardware device including a main board equipped with a microcontroller,
A module part information providing step of providing information on one or more module parts mounted on the hardware device and electrically connectable through the integrated development environment;
A module selection step of selecting the module component; And
A module code providing step of providing a module code written so that the module component and the main board of the hardware device interact through the integrated development environment; and
Automatically generating the device software based on the module part and the module code selected in the module selection step,
In the providing of the module code, the module code information not registered in the integrated development environment among the module codes for the module part is provided to be exposed in the integrated development environment.
KR1020200054437A 2020-05-07 2020-05-07 Software development system and method KR102185289B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200054437A KR102185289B1 (en) 2020-05-07 2020-05-07 Software development system and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200054437A KR102185289B1 (en) 2020-05-07 2020-05-07 Software development system and method

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190046114A Division KR102131918B1 (en) 2019-04-19 2019-04-19 Software development system and method

Publications (2)

Publication Number Publication Date
KR20200123033A KR20200123033A (en) 2020-10-28
KR102185289B1 true KR102185289B1 (en) 2020-12-01

Family

ID=73017990

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200054437A KR102185289B1 (en) 2020-05-07 2020-05-07 Software development system and method

Country Status (1)

Country Link
KR (1) KR102185289B1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101045017B1 (en) 2009-10-14 2011-06-30 주식회사 다나와 Method of selecting and supplying pc parts and system thereof

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100403195B1 (en) 2001-06-27 2003-10-23 (주)바이탈즈시스템 In circuit emulator based on the web, development system and method based on the web of target embedded system using it
CA2931512C (en) * 2014-01-10 2020-12-08 Ciambella Ltd. Method and apparatus for automatic device program generation
KR101906823B1 (en) * 2016-03-07 2018-12-05 주식회사 럭스로보 Multi-module compilation system, multi-module compilation method, and non-transitory computer-readable storage medium

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101045017B1 (en) 2009-10-14 2011-06-30 주식회사 다나와 Method of selecting and supplying pc parts and system thereof

Also Published As

Publication number Publication date
KR20200123033A (en) 2020-10-28

Similar Documents

Publication Publication Date Title
US20020002527A1 (en) Method for trading goods or services over a network
US20110246331A1 (en) Online Custom Circuit Marketplace
CN108628687A (en) The system and method for product information are provided
CN105339975A (en) Cross-store licensing for third party products
US20140032376A1 (en) Method and system for facilitating electronic commerce
CN109977338A (en) A kind of page display method, device, electronic equipment and storage medium
CN106157084A (en) There is networked shopping system and the implementation thereof of the mechanism of sharing in the benefit
CN108694572A (en) The system and method for proxy payment based on shared electronic transaction shopping cart
CN107590682B (en) Advertisement putting method, server, hotspot device and system
US9760931B2 (en) System and method of communicating with distributed marketplaces
CN106998314B (en) Account interaction method and device
CN107492017B (en) Order splitting system based on E-commerce PaaS platform and implementation method thereof
CN105100132A (en) Terminal device and terminal device identification method and system
KR102131918B1 (en) Software development system and method
KR102185289B1 (en) Software development system and method
KR102185292B1 (en) Software development system and method
KR102185291B1 (en) Software development system and method
KR102185290B1 (en) Software development system and method
CN102930401B (en) Technology providing enterprise resource planning (ERP) function from customer relation management (CRM) client side application
US20120246012A1 (en) Open mobile media marketplace
US20120109783A1 (en) Product information search
US10382541B2 (en) Server and method for providing design data for application and system for generating application
KR102432067B1 (en) Method and Server for Providing Web Service with Customer Compatibility using Matching Table related to Standardized Bill of Material
US9710845B2 (en) E-commerce purchase portal
KR102432068B1 (en) Method and Server for Providing Web Service with Customer Compatibility using Matching Table related to Standardized Bill of Material

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant