KR102185290B1 - 소프트웨어 개발 시스템 및 방법 - Google Patents

소프트웨어 개발 시스템 및 방법 Download PDF

Info

Publication number
KR102185290B1
KR102185290B1 KR1020200054438A KR20200054438A KR102185290B1 KR 102185290 B1 KR102185290 B1 KR 102185290B1 KR 1020200054438 A KR1020200054438 A KR 1020200054438A KR 20200054438 A KR20200054438 A KR 20200054438A KR 102185290 B1 KR102185290 B1 KR 102185290B1
Authority
KR
South Korea
Prior art keywords
module
code
development environment
integrated development
main board
Prior art date
Application number
KR1020200054438A
Other languages
English (en)
Other versions
KR20200123034A (ko
Inventor
김민욱
김석중
김채윤
양근호
임찬혁
조성구
Original Assignee
주식회사 엔터핀
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 엔터핀 filed Critical 주식회사 엔터핀
Priority to KR1020200054438A priority Critical patent/KR102185290B1/ko
Publication of KR20200123034A publication Critical patent/KR20200123034A/ko
Application granted granted Critical
Publication of KR102185290B1 publication Critical patent/KR102185290B1/ko

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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • Data Mining & Analysis (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Stored Programmes (AREA)

Abstract

소프트웨어 개발 시스템이 개시된다. 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템은, 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 제공하는 소프트웨어 개발 시스템으로서, 상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 제공부; 상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부; 및 상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공부;를 포함하고, 상기 모듈 선택부에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성한다.

Description

소프트웨어 개발 시스템 및 방법{SOFTWARE DEVELOPMENT SYSTEM AND METHOD}
본 발명은 소프트웨어 개발 시스템 및 방법에 관한 것으로서, 보다 구체적으로는, 하드웨어 장치를 구동하기 위한 소프트웨어 개발 프로그램에서 마이크로컨트롤러와 연결되는 모듈 부품의 구매와 모듈 부품과 연관된 모듈 코드를 구매하여 소프트웨어를 개발하는 소프트웨어 개발 시스템 및 방법에 관한 것이다.
하드웨어 장치를 개발하는 개발 프로젝트를 진행함에 있어서, 개발자는 개발 의도에 따라 메인보드와 호환이 가능하고, 적절한 성능을 가지면서 생산 단가가 저렴한 모듈 부품을 찾기 위해 노력한다. 개발자는 이를 위해 수많은 모듈 부품을 검색하고, 데이터 시트를 검토하며 적절한 모듈 부품을 찾으려 많은 시간을 소모한다. 또한, 하드웨어 장치 구동을 위한 프로그램을 개발을 위해, 각 모듈 부품에 대한 데이터 시트를 연구하고, 시행착오를 겪는다.
이러한 시간적 비용을 소모하더라도, 개발 프로젝트 도중에 메인보드가 교체되면 교체된 마이크로컨트롤러에 호환이 가능하도록 프로그램 코드를 모두 바꿔야 한다. 프로젝트를 처음부터 다시 시작하는 것과 같다. 이때까지 소모한 자원이 그냥 버려지는 것이다. 이러한 하드웨어 장치 개발 단계에서 비효율적으로 낭비되는 자원을 예방할 필요가 있다.
KR 10-0403195 B1 (2003. 10. 14.)
본 발명은 목적은 하드웨어 장치 개발 단계에서 모듈 부품에 대한 모듈 코드를 데이터베이스화하고, 사용자 인터페이스를 통한 간단한 핀 할당만으로 모듈 부품과 메인보드 간의 설정 작업을 자동화하는 것이다.
또한, 메인보드에 따른 호환이 가능한 모듈 부품 및 모듈 부품의 핀만을 선택할 수 있게 하여, 개발 단계에서의 디버깅 시간을 감소시키는 것이다.
또한, 통합 개발 환경에서 모듈 부품 정보를 제공하여 모듈 부품을 검색에 드는 시간을 감소시키는 것이다.
또한, 모듈 코드의 공유 또는 판매로 개발자는 부가 이익을 얻거나 개발 시간을 앞당기고 모듈 부품 판매자는 판촉 방법을 다양화시키는 것이다.
본 발명의 일 실시예에 따른 소프트웨어 개발 시스템은, 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 제공하는 소프트웨어 개발 시스템으로서, 상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 제공부; 상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부; 및 상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공부;를 포함하고, 상기 모듈 선택부에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성할 수 있다.
또한, 상기 모듈 부품 제공부는, 상기 메인보드와 호환가능한 상기 모듈 부품 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 부품에 대한 정보를 상기 통합 개발 환경에서 노출되도록 제공할 수 있다.
또한, 상기 모듈 부품 제공부는, 상기 통합 개발 환경에서 노출되는 상기 모듈 부품의 정렬 기준이 변경되어도, 상기 모듈 부품의 일부는 고정적으로 상위에 노출될 수 있다.
또한, 상기 모듈 부품 제공부는, 상기 메인보드와 상기 호환가능한 상기 모듈 부품 중에서 상기 통합 개발 환경에서 입력된 상기 하드웨어 장치의 종류에 따른 사용 빈도를 기초로 상기 모듈 부품을 추천할 수 있다.
또한, 상기 통합 개발 환경에서 상기 모듈 부품에 대한 구매 정보를 제공하는 부품 구매부를 더 포함할 수 있다.
또한, 상기 구매 정보는, 상기 모듈 부품의 하나 이상의 구매처, 상기 각 구매처에 따른 가격 정보, 구매 수량에 따른 할인율 및 상기 각 구매처에 대한 평판 중 하나 이상을 포함할 수 있다.
또한, 상기 모듈 코드 제공부는, 상기 모듈 부품에 대한 상기 모듈 코드 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 코드 정보를 상기 통합 개발 환경에서 노출되도록 제공할 수 있다.
또한, 상기 모듈 코드는, 사용자 계정에 종속되어 상기 모듈 코드 제공부에 등록한 모듈 코드를 포함할 수 있다.
또한, 상기 모듈 코드 제공부는, 상기 통합 개발 환경이 상기 모듈 코드를 요청하면, 상기 모듈 코드에 관한 수신 권한의 인증을 요청하되, 상기 수신 권한 타입은 무료, 구매, 첨부 및 구독 중 하나이며, 상기 수신 권한 타입 중 첨부는, 상기 모듈 부품에 종속되어 상기 모듈 부품 구매 시 상기 수신 권한 인증이 무료로 변경될 수 있다.
또한, 상기 모듈 코드 제공부는, 상기 수신 권한 인증을 요청한 상기 통합 개발 환경이, 상기 모듈 코드의 수신 권한 인증이 되지 않을 경우, 상기 모듈 코드의 일부분만 조회되도록 할 수 있다.
또한, 상기 모듈 코드 제공부가 수신한 상기 모듈 코드는, 수신한 상기 통합 개발 환경의 고유 코드를 포함하고, 상기 통합 개발 환경은, 상기 수신한 모듈 코드에 포함된 상기 고유 코드에 기초한 상기 통합 개발 환경의 인증 여부에 따라 상기 모듈 코드의 컴파일을 수행 또는 거부할 수 있다.
또한, 상기 통합 개발 환경은, 상기 선택된 상기 모듈 부품에 대한 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인 보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 상기 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당할 수 있다.
또한, 상기 통합 개발 환경은, 상기 선택된 모듈 부품의 핀에 할당된 상기 메인보드의 핀이 변경되면, 변경된 핀 할당에 따라 상기 모듈 코드를 변경할 수 있다.
본 발명의 일 실시예에 따른 소프트웨어 개발 방법은, 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 이용하는 소프트웨어 개발 방법으로서, 상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 정보 제공 단계; 상기 모듈 부품을 선택하는 모듈 선택 단계; 및 상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공 단계;를 포함하고, 상기 모듈 선택 단계에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성할 수 있다.
또한, 상기 통합 개발 환경은, 상기 선택된 상기 모듈 부품에 대한 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인 보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 상기 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당할 수 있다.
또한, 상기 모듈 부품 정보 제공 단계는, 상기 메인보드와 호환가능한 상기 모듈 부품 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 부품에 대한 정보를 상기 개발 프로그램에서 노출되도록 제공할 수 있다.
또한, 상기 모듈 코드 제공 단계는, 상기 통합 개발 환경이 상기 모듈 코드를 요청하는 수신 요청 단계; 상기 통합 개발 환경에 로그인된 계정에 대해 상기 요청된 모듈 코드의 수신 권한 인증을 요청하는 인증 요청 단계; 상기 수신 권한이 무료, 구매, 첨부 및 구독 중 하나로 인증되면, 상기 모듈 코드를 제공하고, 수신 권한이 인증되지 않으면, 상기 모듈 코드의 일부분만 조회되는 단계를 포함할 수 있다.
본 발명에 따른 하드웨어 개발 시스템 및 이를 이용한 개발 방법은 하드웨어 장치 개발 단계에서 모듈 부품에 대한 모듈 코드를 데이터베이스화하고, 사용자 인터페이스를 통한 간단한 핀 할당만으로 모듈 부품과 메인보드 간의 설정 작업을 자동화할 수 있다.
또한, 메인보드에 따른 호환이 가능한 모듈 부품 및 모듈 부품의 핀만을 선택할 수 있게 하여, 개발 단계에서의 디버깅 시간을 감소시킬 수 있다.
또한, 통합 개발 환경에서 모듈 부품 정보를 제공하여 모듈 부품을 검색에 드는 시간을 감소시킬 수 있다.
또한, 모듈 코드의 공유 또는 판매로 개발자는 부가 이익을 얻거나 개발 시간을 앞당기고 모듈 부품 판매자는 판촉 방법을 다양화할 수 있다.
도 1은 본 발명의 일 실시예에 따른 하드웨어 장치의 블록도이다
도 2는 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성을 나타내는 구성도이다.
도 3은 본 발명의 일 실시예에 따른 개발자 단말기에서 실행되는 상기 통합 개발 환경의 사용자 인터페이스를 통해 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 4는 본 발명의 일 실시예에 따른 통합 개발 환경의 사용자 인터페이스를 통해 하드웨어 환경설정을 하는 것을 나타낸 도면이다.
도 5는 본 발명의 일 실시예에 따른 구동 코드를 나타낸 도면이다.
도 6은 본 발명의 일 실시예에 따른 통합 개발 환경이 생성한 구동 코드가 삽입된 구동 코드를 나타낸 도면이다.
도 7은 하드웨어 환경설정 변경에 따른 구동 코드의 변화를 나타낸 도면이다.
도 8은 본 발명의 일 실시예에 따른 도 6의 생성된 구동 코드로 연결된 모듈 코드를 나타낸 도면이다.
도 9는 본 발명의 일 실시예에 따른 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따른 모듈 부품이 추천되는 것을 나타낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 모듈 부품의 일부가 고정적으로 상위에 노출되는 모습을 나타낸 도면이다.
도 12는 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성을 나타낸 구성도이다.
도 13은 본 발명의 일 실시예에 따른 통합 개발 환경의 마켓 인터페이스를 나타낸 도면이다.
도 14는 본 발명의 일 실시예에 따른 모듈 코드와 컴파일 인증 정보 송수신 관계를 나타낸 개념도이다.
도 15는 본 발명의 일 실시예에 따른 소프트웨어 개발 방법의 흐름도이다.
도 16은 본 발명의 일 실시예에 따른 모듈 코드 제공 단계의 세부 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예가 상세하게 설명된다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고, 도면에서 본 발명의 실시예를 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략되었다.
본 명세서에서 사용된 용어는 단지 특정한 실시예를 설명하기 위해 사용된 것으로, 본 발명을 한정하려는 의도로 사용된 것이 아니다. 단수의 표현은 문맥상 명백하게 다르게 뜻하지 않는 한, 복수의 표현을 포함할 수 있다.
본 명세서에서, "포함하다", "가지다" 또는 "구비하다" 등의 용어는 명세서 상에 기재된 특징, 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것이 존재함을 지정하려는 것으로서, 하나 또는 그 이상의 다른 특징들이나 숫자, 단계, 동작, 구성요소, 부품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해될 수 있다.
또한, 본 발명의 실시예에 나타나는 구성부들은 서로 다른 특징적인 기능들을 나타내기 위해 독립적으로 도시되는 것으로, 각 구성부들이 분리된 하드웨어나 하나의 소프트웨어 구성단위로 이루어짐을 의미하지 않는다. 즉, 각 구성부는 설명의 편의상 각각의 구성부로 나열하여 기술되고, 각 구성부 중 적어도 두 개의 구성부가 합쳐져 하나의 구성부로 이루어지거나, 하나의 구성부가 복수 개의 구성부로 나뉘어져 기능을 수행할 수 있다. 이러한 각 구성부의 통합된 실시예 및 분리된 실시예도 본 발명의 본질에서 벗어나지 않는 한 본 발명의 권리 범위에 포함된다.
또한, 이하의 실시예들은 당 업계에서 평균적인 지식을 가진 자에게 보다 명확하게 설명하기 위해서 제공되는 것으로서, 도면에서의 요소들의 형상 및 크기 등은 보다 명확한 설명을 위해 과장될 수 있다.
이하, 첨부된 도면을 참조하여, 본 발명에 따른 바람직한 실시예에 대하여 설명한다.
도 1은 본 발명의 일 실시예에 따른 하드웨어 장치의 블록도이다.
도 1을 참조하면, 본 발명의 일 실시예에 따른 하드웨어 장치(10)는 마이크로컨트롤러(12)가 장착된 메인보드(11)에 하나 또는 하나 이상의 모듈 부품(M1, M2, ... , Mn)이 전기적으로 연결되어, 특정 기능을 수행하는 장치일 수 있다. 하드웨어 장치(10)는 구동 프로그램 또는 제어 프로그램이 탑재될 수 있고, 설계된 특정 기능 또는 특수한 임무를 수행할 수 있다. 이하, 하드웨어 장치(10)를 구동하기 위한 구동 프로그램, 제어 프로그램을 또는 운영 시스템을 장치 소프트웨어라고 한다.
하드웨어 장치(10)는 단순 장치 또는 고수준의 장치일 수 있다. 단순 장치는 메인보드(11)에 저성능 마이크로컨트롤러(12)와 저용량의 메모리가 탑재된 장치일 수 있고, 고수준의 장치는 다양한 기능을 수행하기 위해 비교적 높은 성능의 마이크로컨트롤러(12)와 고용량의 메모리가 탑재된 장치일 수 있다. 하드웨어 장치(10)의 종류는 메인보드(11)에 전기적으로 연결되는 모듈 부품(M1, M2, ... , Mn)의 기능에 따라 다양할 수 있다. 예를 들어, 단순 장치에 해당할 수 있는 하드웨어 장치(10)는 시각이 표시되는 디스플레이 모듈과 스피커 모듈이 장착된 알람이 가능한 전자시계 장치일 수 있고, 무게를 측정할 수 있는 모듈이 장착된 전자저울 장치일 수 있다. 고수준의 장치에 해당할 수 있는 하드웨어 장치(10)는 다양한 복수의 모듈이 장착된 스마트폰, 스마트TV, 의료장비와 같은 장치일 수 있다.
모듈 부품(M1, M2, ... , Mn)은 메인보드(11)에 하나 이상 연결될 수 있다. 메인보드(11)에 모듈 부품(M1, M2, ... , Mn)이 연결된다는 것은 전기적으로 신호 또는 전력을 서로 송수신할 수 있는 것일 수 있다. 또한, 물리적으로 연결되지 않아도 신호를 송수신할 수 있으면 연결되었다고 말할 수 있다. 일례로, 메인보드(11)와 모듈 부품(M1, M2, ... , Mn)이 무선으로 연결되어 신호를 송수신하면 메인보드(11)와 모듈 부품(M1, M2, ... , Mn)은 연결된 것이라 할 수 있다.
모듈 부품(M1, M2, ... , Mn)은 하드웨어 장치(10)에 부가적으로 연결되어, 특정한 기능을 수행할 수 있는 부품일 수 있다. 하드웨어 장치(10)는 적어도 하나 이상의 모듈 부품(M1, M2, ... , Mn)을 포함할 수 있다. 일반적으로 모듈 부품(M1, M2, ... , Mn)은 마이크로컨트롤러(12)와 같은 중앙처리장치가 포함된 보드에 연결되어 하나 이상의 기능이 수행하거나 서로 다른 모듈 부품(M1, M2, ... , Mn)이 상호 작용하여 다양한 기능을 수행할 수 있다. 모듈 부품(M1, M2, ... , Mn)은 마이크로컨트롤러(12)의 제어 신호에 따라 동작할 수 있고, 동작한 결과를 다시 메인보드(11) 또는 마이크로컨트롤러(12)로 회신할 수 있다. 예컨대, 모듈 부품(M1, M2, ... , Mn)은 통신 모듈, 센서 모듈, 오디오 출력 모듈, 데이터 변환 모듈, 보조 기억 모듈, 다양한 기능의 센서 모듈, 정류 소자, 모터, 디스플레이 모듈, 안테나 등일 수 있다.
하드웨어 장치(10)를 구동하기 위한 장치 소프트웨어는 구동 코드 및 모듈 코드로 구분할 수 있다. 여기서 구동 코드는 하드웨어 장치(10)를 직접적으로 제어하기 위한 코드일 수 있다. 모듈 코드는 상기 구동 코드에 종속적으로 포함된 보조 코드일 수 있다. 일반적으로 개발자가 구동 코드를 작성할 때, 어느 하나의 모듈 부품(M1, M2, ... , Mn)에 대해 반복적으로 사용하는 함수 또는 변수와 같은 코드가 포함될 수 있다. 하나의 모듈 부품(M1, M2, ... , Mn)에 대해 반복적으로 사용하는 함수 또는 변수와 같은 코드를 다른 코드 파일로 따로 생성하여, 구동 코드에 연결하여 종속적으로 사용할 수 있다. 모듈 코드는 하나의 모듈 부품에 대해 미리 작성한 코드일 수 있다. 또한, 모듈 코드는 해당 모듈 부품(M1, M2, ... , Mn)에 대한 정보도 포함할 수 있다. 모듈 부품(M1, M2, ... , Mn)의 정보는 모듈 부품(M1, M2, ... , Mn)의 카테고리, 모델, 제조사, 기능, 핀의 개수, 핀의 형태(입력 핀 또는 출력 핀) 등을 포함할 수 있다.
도 2는 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성을 나타내는 구성도이다.
도 2를 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템(100)은 장치 소프트웨어를 개발을 지원하는 통합 개발 환경을 제공할 수 있다. 소프트웨어 개발 시스템(100)은 하드웨어 장치(10)에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품(M1, M2, ... , Mn)에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 제공부(110), 모듈 부품(M1, M2, ... , Mn)을 사용자 인터페이스를 통해 선택하는 모듈 선택부(120) 및 모듈 부품(M1, M2, ... , Mn)과 하드웨어 장치(10)의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공부(130)를 포함할 수 있다.
모듈 선택부(120)에서 선택된 모듈 부품과 모듈 코드를 기초로 장치 소프트웨어를 자동으로 생성할 수 있다. 도 1에서 언급한 구동 코드가 장치 소프트웨어에 포함될 수 있다.
상기 통합 개발 환경은 개발자 단말기에서 실행되고, 하드웨어 장치(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) 중 하나일 수 있으며, 이들에 제한되지 않는다.
소프트웨어 개발 시스템(100)은 네트워크(150)로 개발 지원 서버(140)와 연결되어 데이터를 송수신할 수 있다. 또한, 소프트웨어 개발 시스템(100)의 모듈 부품 제공부(110), 모듈 선택부(120) 및 모듈 코드 제공부(130)는 각각 개발 지원 서버(140)와 네트워크(150)로 연결되어 데이터를 송수신할 수 있다.
네트워크(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) 등 적어도 하나를 포함할 수 있다. 그러나 이에 한정되는 것은 아니며 차후 개발되는 무선 통신의 기술도 포함되는 것이 바람직하다.
모듈 부품 제공부(110)는 개발 지원 서버(140)가 보유하는 모듈 부품(M1, M2, ... , Mn)에 대한 데이터를 수신하여 상기 통합 개발 환경에서 노출되거나 사용되도록 할 수 있다.
모듈 코드 제공부(130)는 개발 지원 서버(140)가 보유하는 모듈 코드에 대한 데이터를 수신하여 상기 통합 개발 환경에서 노출되거나 사용되도록 할 수 있다.
도 3 내지 도 8은 상기 통합 개발 환경에 관해 설명한다.
도 3은 본 발명의 일 실시예에 따른 개발자 단말기에서 실행되는 상기 통합 개발 환경의 사용자 인터페이스를 통해 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 1 및 도 3을 참조하면, 개발자는 메인보드(11)에 연결할 모듈 부품을 상기 통합 개발 환경의 사용자 인터페이스(I100)를 통해 선택할 수 있다. 사용자 인터페이스(I100)에서 나타나는 모듈 부품(M1, M2, ... , Mn)은 상기 통합 개발 환경에 등록된 모듈 부품이다. 등록된 모듈 부품은 해당 모듈 부품의 모듈 코드가 상기 통합 개발 환경에 등록된 것으로, 구동 코드에 해당 모듈 부품의 모듈 코드를 이용할 수 있다는 것일 수 있다.
또한, 상기 통합 개발 환경은 사용자 인터페이스(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)가 다른 메인보드로 교체되면, 선택될 수 있는 모듈 부품이 변경될 수 있다.
종래는 개발자가 의도한 기능을 구현하기 위해 필요한 모듈 부품의 종류를 조사하고 사용할 메인보드(11)와 연결할 모듈 부품이 서로 호환되는지 각각의 데이터 시트를 보고 확인해야 할 시간적 비용이 소모되었다. 그러나 본 발명의 상기 통합 개발 환경은 등록된 모듈 부품에 대해 메인보드(11)와의 호환성 여부를 손쉽게 확인할 수 있고, 호환이 가능한 모듈 부품만 선택할 수 있으므로 언급된 시간적 비용을 줄일 수 있다.
도 4는 본 발명의 일 실시예에 따른 통합 개발 환경의 사용자 인터페이스를 통해 하드웨어 환경설정을 하는 것을 나타낸 도면이다.
도 1 및 도 4를 참조하면, 선택된 모듈 부품에 대한 하드웨어 환경설정은 사용자 인터페이스(I100)를 통해 진행될 수 있다. 상기 하드웨어 환경설정은 선택된 모듈 부품의 각 핀을 메인보드(11) 또는 마이크로컨트롤러(12)의 각 핀에 할당하는 것일 수 있다. 여기서 상기 핀은 신호, 데이터 또는 전력을 송수신할 수 있는 물리적인 접점을 의미할 수 있다.
메인보드(11) 및 모듈 부품(M1, M2, ... , Mn)은 각각의 하드웨어 설계에 따라 신호를 송수신하는 핀이 존재한다. 개발자는 자신의 의도에 따라 메인보드(11) 핀에 모듈 부품(M1, M2, ... , Mn) 핀을 연결하여 메인보드(11)와 모듈 부품(M1, M2, ... , Mn) 간의 신호 경로를 생성할 수 있다. 종래는 이러한 핀 할당은 개발자가 직접 코드를 작성해 할당했었다. 이 경우, 개발자는 메인보드(11) 데이터 시트와 메인보드(11)에 연결한 모듈 부품(M1, M2, ... , Mn)의 데이터 시트를 검토하며 코드를 작성해야만 했다. 메인보드(11)에 연결할 모듈 부품 핀이 몇 개인지, 해당 핀이 아날로그 입력 핀 또는 출력 핀인지, 디지털 입력 핀 또는 출력 핀인지 확인해야 했다. 이렇게 하나의 모듈 부품을 메인보드(11)에 연결하기 위해서는 데이터 시트를 검토하고 확인하는 시간이 필요했으며, 메인보드(11)에 연결할 모듈 부품이 많아질수록 그 시간이 더 늘어날 수밖에 없었다.
그러나 본 발명의 상기 통합 개발 환경에서는 사용자 인터페이스를 이용하여 모듈 부품의 각 핀에 대응하는 메인보드(11) 핀을 할당할 수 있다. 상기 통합 개발 환경은 사용자 인터페이스(I100)를 통한 상기 하드웨어 환경설정은 구동 코드에 자동으로 반영하여 상기 구동 코드를 자동으로 생성할 수 있다.
그리고 상기 하드웨어 환경설정은 모듈 부품(M1, M2, ... , Mn)의 핀을 마이크로컨트롤러(12)의 핀에 할당하는 것을 포함할 수 있다. 일반적으로는, 메인보드(11)에 마이크로컨트롤러(12)가 장착되고 모듈 부품(M1, M2, ... , Mn) 핀은 메인보드(11) 핀과 연결될 수 있다. 그러나 드물게, 모듈 부품(M1, M2, ... , Mn) 핀과 마이크로컨트롤러(12) 핀을 직접 연결하는 경우도 있다. 본 발명의 통합 개발 환경은 모듈 부품(M1, M2, ... , Mn) 핀에 마이크로컨트롤러(12) 핀을 할당하는 것도 포함되므로 다양한 개발 케이스에 대한 개발 효율을 높일 수 있다.
사용자 인터페이스(I100)를 통한 상기 하드웨어 환경설정에 대해 보다 구체적으로 설명하면, 메인보드(11)에 연결할 모듈 부품(M1, M2, ... , Mn)을 선택하면, 선택한 모듈 부품에 따른 구체적인 하드웨어 환경설정이 가능한 사용자 인터페이스(I100)가 나타날 수 있다. 사용자 인터페이스(I100)는 핀 할당을 할 수 있는 영역(I110)과 선택한 모듈 부품의 상세한 정보를 보여주는 영역(I120)을 포함할 수 있다. 핀 할당을 할 수 있는 영역(I110)에는 모듈 부품의 각 핀에 대응하는 메인보드 핀을 지정할 수 있는 인터페이스(I111)를 포함할 수 있다. 선택한 모듈 부품의 상세한 정보를 보여주는 영역(I120)은 선택한 모듈 부품에 대해 카테고리, 모델, 제조사, 기능 또는 구매처 등이 포함될 정보를 포함할 수 있다. 한편, 상세한 정보를 보여주는 영역(I120)을 마우스 등을 통해 클릭하면 해당 모듈 부품에 대한 보다 상세한 데이터 시트가 링크로 연결되어 제공될 수 있다.
또한, 상기 통합 개발 환경은 선택한 모듈 부품 핀에 할당이 가능한 메인보드(11) 또는 마이크로컨트롤러(12)의 핀만 선택되도록 할 수 있다. 예를 들어, 도 4에 도시된 것처럼 ‘Row1’핀을 할당할 때, ‘Row1’은 디지털 출력 핀이므로 메인보드(11) 또는 마이크로컨트롤러(12)의 핀은 디지털 입력 핀만 선택되도록 할 수 있다. VCC, GND 또는 아날로그 핀은 선택되지 않는다. 종래와 같이 데이터 시트를 비교하며 텍스트 형태로 작성하는 방식에서는 디지털 출력 핀 ‘Row1’을 아날로그 입력 핀에 할당하는 실수할 수 있지만, 본 발명은 그러한 가능성은 현저히 줄일 수 있다.
일반적으로 하나의 모듈 부품의 핀의 총 개수보다 메인보드(11) 핀의 총 개수가 많으므로, 선택한 모듈 부품의 한 핀에 대해 메인보드(11)의 총 핀 중 하나를 할당하는 방식으로 진행될 수 있다.
도 5는 본 발명의 일 실시예에 따른 구동 코드를 나타낸 도면이고, 도 6은 본 발명의 일 실시예에 따른 통합 개발 환경이 생성한 구동 코드가 삽입된 구동 코드를 나타낸 도면이다.
도 5에 표기된 구동 코드(200)는 통합 개발 환경에서 메인보드(11)의 종류만 선택하고 모듈 부품을 연결하지 않은 초기 구동 코드(210)이다. 도 6의 구동 코드(200)는 초기 구동 코드(210)와 상기 통합 개발 환경이 생성한 구동 코드(220)가 삽입된 구동 코드(200)이다. 상기 통합 개발 환경은 상기 하드웨어 환경설정이 반영된 구동 코드(220)를 생성할 수 있다.
도 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번 핀에 할당된 것을 가정한다.
생성된 구동 코드(220)는 선택한 모듈 부품(도 4 및 도 6에서 Keypad_4x30)과 관련된 미리 정의된 함수를 사용할 수 있도록 하는 코드도 포함할 수 있다. 도 6의 생성된 구동 코드(220) 중 ‘#include <Keypad_4x3.h>’는 키 패드 모듈 부품과 관련된 모듈 코드에 정의된 함수를 구동 코드(200)에서 이용할 수 있도록 구동 코드(200)와 모듈 코드를 연결하는 코드이다. 상기 통합 개발 환경은 구동 코드(200)에 모듈 코드와 연결하는 코드를 자동으로 생성하여 구동 코드(200)와 모듈 코드를 연결하고, 모듈 코드에서 정의된 함수를 구동 코드(200) 내에서 손쉽게 사용할 수 있도록 할 수 있다.
이러한 상기 통합 개발 환경의 구동 코드(220) 생성은 상기 하드웨어 환경설정의 완료 시 자동으로 진행될 수 있다. 사용자 인터페이스(I100)를 통해 핀 할당을 완료하면 상기 하드웨어 환경설정이 반영된 구동 코드(220)가 자동으로 생성되므로, 개발자는 생성된 구동 코드(220)를 곧바로 확인할 수 있고, 모듈 코드에 포함된 함수를 곧바로 사용할 수 있다.
도 6에서 도시된 상기 통합 개발 환경에 의해 생성된 구동 코드(220)는 도시된 코드에 한정되는 것이 아니라, 모듈 부품(M1, M2, …, Mn)의 특성에 맞도록 수정될 수 있고 더 추가될 수 있다. 또한, 초기 구동 코드(210) 속에 포함되어 생성될 수 있다.
도 7은 하드웨어 환경설정 변경에 따른 구동 코드의 변화를 나타낸 도면이다.
도 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)를 수정할 수 있다.
개발자는 하드웨어 장치(10)를 개발하는 과정에서 수많은 모듈 부품에 대해 설계 및 프로그래밍을 반복하게 된다. 그러한 반복되는 과정에서 매번 데이터 시트를 비교하고, 하드웨어 설정 및 코드 작성을 또한 반복하므로 비효율적인 시간 소모가 매우 크다. 또한, 반복하는 과정에서 코드를 잘못 작성할 가능성도 크다. 보통 디버깅 과정에서 올바르게 수정되지만, 디버깅 시간도 낭비되는 경우가 많다. 본 발명은 이런 하드웨어 장치(10) 개발 과정에서의 비효율적인 자원 소모를 방지할 수 있다.
또한, 본 발명은 단지 코드를 생성하는 것이 아닌 메인보드(11)의 종류에 따라 서로 다른 모듈 부품(M1, M2, …, Mn)에 대한 정보, 기본적인 하드웨어 설정 및 자주 사용되는 코드인 모듈 코드가 통합 개발 환경에 저장되고, 개발자는 사용자 인터페이스를 통해 간단하게 하드웨어 환경설정을 할 수 있다. 상기 하드웨어 환경설정은 구동 코드에 자동으로 반영되어 개발자가 손쉽게 모듈 부품에 대한 함수를 이용하게 하므로, 모듈 교체에 따른 수정 시간 자원도 절약할 수 있다.
도 8은 본 발명의 일 실시예에 따른 도 6의 생성된 구동 코드로 연결된 모듈 코드를 나타낸 도면이다.
도 8을 참조하면, 모듈 코드(300)는 연결할 모듈 부품을 제어하기 위한 코드(변수, 함수 또는 자료형 타입 정의 및 선언)를 구동 코드 내에서 사용이 용이하도록 미리 작성해둔 코드일 수 있다. 도 6의 도시된 상기 통합 개발 환경이 생성한 구동 코드(220) 중 ‘#include <keypad_4x3.h>’으로 연결된 모듈 코드가 도 8에 도시되어 있다. 도 6 및 도 8에 도시된 바와 같이, 생성된 구동 코드(220)로 인해, Keypad_4x3의 클래스를 이용할 수 있고, 모듈 코드(300)에 정의된 ‘getKey()’함수(310)를 구동 코드(200)에서 곧바로 이용할 수 있다. 또한, 모듈 코드(300) 내에도 연속되어 연결된 또 다른 모듈 코드(320)가 존재할 수 있다. 모듈 코드 내에서의 종속적으로 연결된 또 다른 모듈 코드(320)로 인해, 간단한 하드웨어 환경설정으로 생성된 구동 코드(220)만으로 해당하는 모듈 부품을 제어하는 모든 함수를 이용할 수 있도록 한다.
이러한 모듈 코드(300)는 해당 모듈 부품을 개발자가 각각의 모듈 부품을 이용하기 위해 각각 따로 작성하는 것을 방지하여 개발 자원 낭비를 줄일 수 있다. 모듈 코드는 도 8에 도시된 코드만으로 한정되는 것은 아니며, 다른 다양한 코드도 모듈 코드로 포함될 수 있다. 예를 들어, 모듈 부품의 정보를 JSON(JavaScript Object Notation)의 형태로 저장하고, 하드웨어 환경설정에서 상기 모듈 부품의 정보를 나타나게 할 수 있다. 따라서 모듈 코드는 프로그래밍 영역에서 사용되는 모듈화 프로그래밍의 영역보다 더 넓은 의미를 지니며, 모듈 부품을 해당 메인보드(11)에서 사용하고, 이용할 수 있도록 하는 모든 파일 또는 코드를 포함할 수 있다.
도 9는 본 발명의 일 실시예에 따른 모듈 부품을 선택하는 것을 나타낸 도면이다.
도 9를 참조하면, 도 3에서 언급한 것과 같이 개발자는 메인보드(11)에 연결할 모듈 부품을 상기 통합 개발 환경의 사용자 인터페이스(I100)를 통해 선택할 수 있다. 이때, 사용자 인터페이스(I100)에는 상기 통합 개발 환경에 등록된 모듈 부품(M1, M2, M3)뿐만 아니라, 상기 통합 개발 환경에 등록되지 않은 모듈 부품(M4, M5)도 나타나고 선택할 수 있다.
상기 통합 개발 환경에 등록되지 않은 모듈 부품(M4, M5)은 도 2의 개발 지원 서버(140)에 등록되고 모듈 부품 제공부(110)가 수신한 모듈 부품일 수 있다. 소프트웨어 개발 시스템(100)가 모듈 부품 제공부(110)와 네트워크(150)로 연결되면, 상기 통합 개발 환경은 개발 지원 서버(140)에 등록된 모듈 부품에 대한 데이터를 모듈 부품 제공부(110)가 수신하여, 사용자 인터페이스(I100)에 수신한 모듈 부품(M4, M5)이 나타나도록 할 수 있다. 상기 통합 개발 환경에 나타나는 모듈 부품 제공부(110)의 모듈 부품은 개발 지원 서버(140)에 등록된 모든 모듈 부품이 노출될 수 있다. 다만, 개발자의 사용자 편의를 위해 소정의 기준에 의해 노출될 수 있다. 상기 소정의 기준은 메인보드(11)와의 호환성, 사용 빈도수 등일 수 있다.
즉, 모듈 부품 제공부(110)는 메인보드(11)와 호환 가능한 모듈 부품 중 상기 통합 개발 환경에 등록되지 않은 모듈 부품에 대한 정보를 개발 지원 서버(140)에서 수신하여 상기 통합 개발 환경에 노출되도록 제공할 수 있다. 개발자는 상기 통합 개발 환경에 등록되어 있지 않아도, 개발 지원 서버(140)의 모듈 부품 데이터베이스를 통해 상용되는 모듈 부품 정보를 획득하거나 사용할 수 있으므로 모듈 부품 정보를 검색하기 위한 시간이 절약될 수 있다. 또한, 모듈 부품 정보를 통합 개발 환경에서 제공하므로, 개발 과정이 더 효율적일 수 있다.
이하, 상기 통합 개발 환경에 등록되지 않고, 모듈 부품 제공부(110)가 개발 지원 서버(140)에서 수신하여 사용자 인터페이스(I100)에 노출시키는 모듈 부품을 클라우드 모듈 부품이라 한다.
도 10은 본 발명의 일 실시예에 따른 모듈 부품이 추천되는 것을 나타낸 도면이다.
도 10을 참조하면, 모듈 부품 제공부는 메인보드와 호환 가능한 모듈 부품 중에서 상기 통합 개발 환경에서 입력된 하드웨어 장치의 종류에 따라 사용 빈도가 높은 모듈 부품을 추천할 수 있다. 보다 자세히 설명하면, 상기 모듈 부품 제공부는 개발자가 제작하려는 하드웨어 장치의 종류에 따라, 상기 종류의 하드웨어 장치를 제작할 때, 자주 이용되는 모듈 부품을 추천할 수 있다. 추천되는 모듈 부품(M6, M7, M8)은 상기 통합 개발 환경의 사용자 인터페이스(I100)를 통해 노출될 수 있다. 추천되는 모듈 부품(M6, M7, M8)은 클라우드 모듈 부품(M7, M8)일 수 있거나 상기 통합 개발 환경에 등록된 모듈 부품(M7)일 수 있다. 상기 모듈 부품 제공부가 하드웨어 장치의 종류에 따라 사용 빈도수가 높은 모듈 부품을 추천하는 것은 개발자가 개발하려는 하드웨어 장치의 개발 경험이 없더라도 추천되는 모듈 부품에 대한 선제적 사용이 가능하므로 개발 기간 중의 시행착오를 줄일 수 있다.
도 11은 본 발명의 일 실시예에 따른 모듈 부품의 일부가 고정적으로 상위에 노출되는 모습을 나타낸 도면이다.
도 11을 참조하면, 모듈 부품 제공부는 통합 개발 환경에서 노출되는 모듈 부품의 정렬 기준이 변경되어도, 상기 모듈 부품의 일부는 고정적으로 상위에 노출되도록 할 수 있다. 보다 자세히 설명하면, 사용자 인터페이스(I100)에 노출되는 모듈 부품은 언급한 것과 같이 소정의 기준에 따라 정렬될 수 있다. 예컨대, 소정의 기준은 모듈 부품의 사용 빈도수, 모듈 부품의 단가, 타 개발자가 등록한 점수 등일 수 있다. 정해진 정렬 기준을 변경하게 되면, 변경된 기준에 따라 클라우드 모듈 부품의 정렬 기준이 변경될 수 있다. 이때, 클라우드 모듈 부품 중 일부는 고정적으로 최상위에 노출되도록 그 정렬 순위가 고정될 수 있다. 도 11에서 (A) 및 (B)는 각기 다른 정렬 기준으로 모듈 부품이 정렬된 것을 나타낸 것이다. 도 11의 (A)에서 정렬 기준으로 정렬된 모듈 부품은 M12, M13, M14이며, 최상위에 노출되도록 고정된 모듈 부품은 M9, M10, M11이다. 도 11의 (B)에서는 다른 정렬 기준으로 정렬된 모듈 부품은 M15, M12, M14이며, 최상위에 노출되도록 고정된 모듈 부품은 M9, M10, M11이다.
고정적으로 노출되기 위해서는 자격이 필요할 수 있다. 상기 자격은 그 모듈 부품을 등록한 개발자가 소정의 재화를 지불하여 획득할 수 있고, 상기 자격은 일정 기간 동안 유지될 수 있다. 기한이 경과되면, 다시 재화를 지불하여 상기 자격을 재획득할 수 있다.
상기 모듈 부품을 판매하는 판매자는 상기 자격을 이용하여, 상기 모듈 부품을 노출되는 리스트의 최상단 위치시켜 보다 많은 사람이 상기 모듈 부품을 조회하고, 구매하도록 유도할 수 있다.
도 12는 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템의 개략적인 구성을 나타낸 구성도이고, 도 13은 본 발명의 일 실시예에 따른 통합 개발 환경의 마켓 인터페이스를 나타낸 도면이다.
도 12 및 도 13을 참조하면, 본 발명의 일 실시예에 따른 소프트웨어 개발 시스템(100)은 통합 개발 환경에서 모듈 부품에 대한 구매 정보를 제공하는 부품 구매 서버(160)를 더 포함할 수 있다. 부품 구매 서버(160)는 네트워크(150)에 연결되어 소프트웨어 개발 시스템(100)와 상기 구매 정보와 관련된 데이터를 송수신할 수 있다. 상기 구매 정보는 상기 모듈 부품의 하나 이상의 구매처, 상기 각 구매처에 따른 가격 정보, 구매 수량에 따른 할인율 및 상기 각 구매처에 대한 평판 중 하나 이상일 수 있고, 상기 통합 개발 환경의 마켓 인터페이스(I200)에 나타날 수 있다.
일 실시예에서, 마켓 인터페이스(I200)는 도 9 내지 도 11의 클라우드 모듈 부품을 선택하면 나타날 수 있다. 마켓 인터페이스(I200)는 개발자가 선택한 클라우드 모듈 부품 또는 상기 선택한 클라우드 모듈 부품의 모듈 코드를 구매할 수 있는 인터페이스일 수 있다. 마켓 인터페이스(I200)에는 모듈 부품에 대한 상기 모듈 코드 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 코드 정보가 노출될 수 있다. 상기 모듈 코드 정보는 개발 지원 서버(140)에서 상기 모듈 코드 정보를 수신한 모듈 코드 제공부(130)가 제공할 수 있다.
개발 지원 서버(140)에는 서로 다른 각각의 개발자가 개발한 모듈 코드들이 업로드될 수 있다. 업로드된 상기 모듈 코드는 각각의 개발자의 계정에 종속될 수 있다. 모듈 코드가 상기 개발자 계정에 종속된다는 것은 상기 모듈 코드의 배포 권한이 상기 개발자 계정에 부여되는 것일 수 있다. 모듈 코드 제공부(130)는 인증된 상기 개발자 계정의 신호에 따라 업로드된 상기 모듈 코드는 판매되거나 공유로 배포할 수 있다. 예컨대, 배포되는 모듈 코드는 도 13과 같이 모듈 부품의 마켓 인터페이스(I200)에 노출되어 판매되거나, 게시판에서 첨부파일로 공유될 수 있다.
배포되는 상기 모듈 코드를 수신하기 위해서 상기 통합 개발 환경은 모듈 코드 제공부(130)에 수신 요청을 할 수 있다. 모듈 코드 제공부(130)는 상기 통합 개발 환경이 상기 모듈 코드를 요청하면, 상기 모듈 코드에 관한 수신 권한 인증을 요청할 수 있다. 상기 수신 권한 타입은 무료, 구매, 첨부 및 구독 중 하나일 수 있다. 상기 수신 권한은 상기 모듈 코드를 수신 요청한 상기 통합 개발 환경에 로그인된 계정 정보를 개발 지원 서버(140)가 확인하여 인증될 수 있다. 또한, 상기 수신 권한 타입은 배포하는 개발자 계정 권한을 이용하여 지정될 수 있다.
상기 수신 권한 타입 중 무료는 상기 모듈 코드 수신에 자격 제한 없이 누구나 수신할 수 있는 타입일 수 있다. 무료로 지정된 상기 모듈 코드는 자격 제한이 없으므로 수신 권한 인증 없이 수신을 요청한 개발자 단말기로 전송될 수 있다.
상기 수신 권한 타입 중 구매는 소정의 재화를 지불하여 배포되는 상기 모듈 코드의 구매 시점의 버전의 모듈 코드의 수신 권한을 획득하는 것일 수 있다. 상기 구매 타입으로 수신 권한을 획득하면, 구매 시점 이후에 배포되는 최신 버전의 상기 모듈 코드를 수신하기 위해서는 다시 재화를 지불하여 수신 권한을 재획득해야 할 수 있다.
상기 수신 권한 타입 중 첨부는 상기 모듈 부품에 종속되어 상기 모듈 부품 구매 시 상기 수신 권한 인증이 무료로 변경되는 것일 수 있다. 예를 들면, 도 13의 모듈 부품(M20)을 구매하면, 모듈 부품(M20)에 대한 수신 권한 타입이 판매로 지정된 모듈 코드가 모듈 부품(M20)을 구매한 상기 계정에 대해 수신 권한 타입이 무료로 변경될 수 있다. 무료로 변경되는 상기 모듈 코드는 모듈 부품(M20)을 제조한 제조사에서 작성한 모듈 코드일 수 있거나, 타 개발자가 개별적으로 작성한 모듈 코드일 수 있다. 무료로 변경되는 모듈 코드는 서비스제공자와 코드를 작성한 개발자 또는 상기 제조사의 협의에 따라 지정될 수 있다.
상기 수신 권한 타입 중 구독은 상기 모듈 코드를 배포하는 계정에 대한 구독일 수 있다. 보다 자세히 설명하면, 상기 계정에 대한 구독은 재화를 지불하여 소정의 기간에는 상기 계정에서 배포하는 상기 모듈 코드의 수신 권한을 무료로 변경하는 것일 수 있다. 예를 들어, ‘A’라는 계정을 구독하면, 구독하는 기간에는 ‘A’ 계정에서 배포하는 모듈 코드를 제한 없이 수신할 수 있다. 또한, 상기 계정에 한정되지 않는 구독일 수 있다. 상기 계정에 한정되지 않은 구독은 글로벌 구독일 수 있다. 상기 글로벌 구독을 하면, 개발 지원 서버(140)에 등록된 모듈 코드를 구독하는 기간 동안 계정 상관없이 무제한으로 수신할 수 있다.
모듈 코드 제공부(130)는 상기 수신 권한 인증을 요청한 상기 통합 개발 환경이, 상기 모듈 코드의 수신 권한 인증이 되지 않을 경우, 상기 모듈 코드의 일부분만 조회되도록 할 수 있다.
상기 모듈 코드를 개발한 개발자는 복수의 타 개발자에게 개발한 상기 모듈 코드를 공유하여 상기 모듈 코드를 더 발전시킬 수 있거나, 상기 모듈 코드를 판매하여 이익을 얻을 수 있다. 또한, 상기 모듈 코드를 구매 또는 구독하는 개발자는 구매 옵션을 선택할 수 있으므로, 개발 상황에 따라 결정할 수 있으며, 하드웨어 장치에 사용되는 모듈 부품의 모듈 코드를 전체를 구매하여, 개발 시간을 크게 앞당길 수도 있다. 모듈 부품을 판매하는 판매자는 모듈 부품과 필수적으로 연계되는 상기 모듈 코드를 상기 모듈 부품과 묶음으로 판매할 수 있으므로 판매 전략이 다양화될 수 있다.
도 14는 본 발명의 일 실시예에 따른 모듈 코드와 컴파일 인증 정보 송수신 관계를 나타낸 개념도이다.
도 14를 참조하면, 일 실시예에서, 모듈 코드 제공부(130)에서 수신되는 모듈 코드(C1)는 수신한 상기 통합 개발 환경의 고유 코드를 포함할 수 있다. 여기서, 상기 고유 코드는 일례로 개발자 단말기의 제어장치 식별코드, 통합 개발 환경의 시리얼 넘버, 개발자 단말기의 메인보드 시리얼 넘버일 수 있다. 그러나, 이에 한정되는 것은 아니고, 상기 통합 개발 환경이 실행되는 개발자 단말기를 식별할 수 있는 다른 고유값일 수 있다.
개발자 단말기에서 실행되는 통합 개발 환경은 상기 수신한 모듈 코드에 포함된 상기 고유 코드를 기초한 상기 통합 개발 환경의 인증 여부에 따라 상기 모듈 코드의 컴파일을 수행 또는 거부할 수 있다. 상기 컴파일 인증 정보가 일치라면, 상기 통합 개발 환경은 수신한 모듈 코드(C1)를 컴파일할 수 있다. 그러나 상기 컴파일 인증 정보가 불일치일 경우 상기 통합 개발 환경은 수신한 모듈 코드(C1)의 컴파일을 거부할 수 있다. 상기 통합 개발 환경의 인증 여부는, 모듈 코드 제공부(130)가 모듈 코드(C1)의 제공을 요청한 상기 통합 개발 환경의 고유 코드(C2)와 상기 수신한 모듈 코드에 대해 컴파일을 수행하려는 상기 통합 개발 환경의 고유 코드의 일치 또는 불일치일 수 있다.
예를 들어, 제1 개발자 단말기에서 실행되는 통합 개발 환경에서 모듈 코드 제공부(130)로 모듈 코드 제공을 요청할 때, 제1 개발자 단말기는 상기 통합 개발 환경의 고유 코드(C2)를 모듈 코드 제공부(130)로 제공할 수 있다. 모듈 코드 제공부(130)는 수신 권한 인증 확인 후, 제1 개발자 단말기로 모듈 코드(C1)를 제공할 때, 모듈 코드(C1)에 제1 개발자 단말기의 상기 통합 개발 환경의 고유 코드(C2) 정보를 포함해 제공할 수 있다. 제1 개발자 단말기의 상기 통합 개발 환경은 수신한 모듈 코드(C1)를 컴파일할 때, 모듈 코드(C1)에 포함된 고유 코드(C2)와 자신의 고유 코드를 비교하여 일치 또는 불일치를 확인할 수 있다.
한편, 제1 개발자 단말기에서 모듈 코드 제공부(130)로 상기 제공 요청을 통해 제공된 모듈 코드(C1)를 제2 개발자 단말기에서 컴파일하면 모듈 코드(C1)에 포함된 고유 코드(C2)와 제2 개발자 단말기에서 실행되는 상기 통합 개발 환경의 고유 코드가 다르므로, 컴파일 인증 정보는 불일치가 되고, 상기 통합 개발 환경은 모듈 코드(C1)의 컴파일을 거부할 수 있다.
또한, 상기 통합 개발 환경은 상기 수신된 모듈 코드의 미리 정해진 컴파일 수행의 횟수를 초과하면 상기 모듈 코드 제공부에 인증을 재요청할 수 있다. 최초 컴파일 인증이 수행되어도 미리 정해진 컴파일 횟수를 초과하면, 상기 통합 개발 환경은 컴파일을 거부하고 모듈 코드 제공부(130)의 재인증을 요청할 수 있다. 상기 최초 컴파일 인증이 해킹 또는 툴을 이용한 가짜 인증일 수 있으므로 재인증을 요청할 수 있다.
상기 통합 개발 환경의 컴파일 인증은 모듈 코드의 불법 유통을 방지할 수 있다.
이하, 본 발명의 일 실시예에 따른 소프트웨어 개발 방법에 관해서 설명하기로 한다. 상기 소프트웨어 개발 방법은 가변식 스티어링 휠 시스템과 유사하므로 간략히 언급하기로 한다.
도 15는 본 발명의 일 실시예에 따른 소프트웨어 개발 방법의 흐름도이다.
도 15를 참조하면, 본 발명의 일 실시예에 따른 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 이용하는 소프트웨어 개발 방법은 상기 하드웨어 장치에 장착하여 전기적으로 연결 가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 정보 제공 단계(S110), 상기 모듈 부품을 선택하는 모듈 선택 단계(S120) 및 상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공 단계(S130)를 포함할 수 있다.
모듈 선택 단계(S120)에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성할 수 있다.
상기 통합 개발 환경은 상기 선택된 상기 모듈 부품에 대한 핀 정보를 이용하여 상기 모듈 부품의 각 핀에 대하여 상기 메인 보드 또는 상기 마이크로컨트롤러의 연결가능한 각 핀을 상기 사용자 인터페이스를 통하여 리스팅하고 상기 사용자 입력에 의해 할당할 수 있다.
모듈 부품 정보 제공 단계(S110)는 상기 메인보드와 호환 가능한 상기 모듈 부품 중 상기 통합 개발 환경에 등록되지 않은 상기 모듈 부품에 대한 정보를 상기 개발 프로그램에서 노출되도록 제공하는 것일 수 있다.
도 16은 본 발명의 일 실시예에 따른 모듈 코드 제공 단계의 세부 흐름도이다.
도 16을 참조하면, 모듈 코드 제공 단계(S120)는 상기 통합 개발 환경이 상기 모듈 코드를 요청하는 수신 요청 단계(S121), 상기 통합 개발 환경에 로그인된 계정에 대해 상기 요청된 모듈 코드의 수신 권한 인증을 요청하는 인증 요청 단계(S122)를 포함할 수 있다. 그리고 상기 수신 권한을 인증 또는 확인하는 단계(S123) 이후, 무료, 구매, 첨부 및 구독 중 하나로 인증되면, 상기 모듈 코드를 제공(S123)하고, 수신 권한이 인증되지 않으면, 상기 모듈 코드의 일부분만 조회되는 단계(S125)를 포함할 수 있다.
본 명세서에 기재된 다양한 실시예들은 하드웨어, 미들웨어, 마이크로코드, 소프트웨어 및/또는 이들의 조합에 의해 구현될 수 있다. 예를 들어, 다양한 실시예들은 하나 이상의 주문형 반도체(ASIC)들, 디지털 신호 프로세서(DSP)들, 디지털 신호 프 로세싱 디바이스(DSPD)들, 프로그램어블 논리 디바이스(PLD)들, 필드 프로그램어블 게이트 어레이(FPGA)들, 프로세서들, 컨트롤러들, 마이크로컨트롤러들, 마이크로프로세서들, 여기서 제시되는 기능들을 수행하도록 설계되는 다른 전자 유닛들 또는 이들의 조합 내에서 구현될 수 있다.
또한, 예를 들어, 다양한 실시예들은 명령들을 포함하는 컴퓨터-판독가능한 매체에 수록되거나 인코딩될 수 있다. 컴퓨터-판독가능한 매체에 수록 또는 인코딩된 명령들은 프로그램 가능한 프로세서 또는 다른 프로세서로 하여금 예컨대, 명령들이 실행될 때 방법을 수행하게끔 할 수 있다. 컴퓨터-판독가능한 매체는 컴퓨터 저장 매체 및 하나의 장소로부터 다른 장소로 컴퓨터 프로그램의 이송을 용이하게 하는 임의의 매체를 포함하는 통신 매체 모두를 포함한다. 저장 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수도 있다. 예를 들어, 이러한 컴퓨터-판독가능한 매체는 RAM, ROM, EEPROM, CD-ROM 또는 기타 광학디스크 저장 매체, 자기 디스크 저장 매체 또는 기타 자기 저장 디바이스 또는 원하는 프로그램 코드를 컴퓨터에 의해 액세스가능한 명령들 또는 데이터 구조들의 형태로 반송하거나 저장하는데 이용될 수 있는 임의의 다른 매체를 포함할 수 있다.
이러한 하드웨어, 소프트웨어, 펌웨어 등은 본 명세서에 기술된 다양한 동작들 및 기능들을 지원하도록 동일한 디바이스 내에서 또는 개별 디바이스들 내에서 구현될 수 있다. 추가적으로, 본 발명에서 "~부"로 기재된 구성요소들, 유닛들, 모듈들, 컴포넌트들 등은 함께 또는 개별적이지만 상호 운용가능한 로직 디바이스들로서 개별적으로 구현될 수 있다. 모듈들, 유닛들 등에 대한 서로 다른 특징들의 묘사는 서로 다른 기능적 실시예들을 강조하기 위해 의도된 것이며, 이들이 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 실현되어야만 함을 필수적으로 의미하지 않는다. 오히려, 하나 이상의 모듈들 또는 유닛들과 관련된 기능은 개별 하드웨어 또는 소프트웨어 컴포넌트들에 의해 수행되거나 또는 공통의 또는 개별의 하드웨어 또는 소프트웨어 컴포넌트들 내에 통합될 수 있다.
특정한 순서로 동작들이 도면에 도시되어 있지만, 이러한 동작들이 원하는 결과를 달성하기 위해 도시된 특정한 순서, 또는 순차적인 순서로 수행되거나, 또는 모든 도시된 동작이 수행되어야 할 필요가 있는 것으로 이해되지 말아야 한다. 임의의 환경에서는, 멀티태스킹 및 병렬 프로세싱이 유리할 수 있다. 더욱이, 상술한 실시예에서 다양한 구성요소들의 구분은 모든 실시예에서 이러한 구분을 필요로 하는 것으로 이해되어서는 안되며, 기술된 구성요소들이 일반적으로 단일 소프트웨어 제품으로 함께 통합되거나 다수의 소프트웨어 제품으로 패키징될 수 있다는 것이 이해되어야 한다.
본 발명은 도면에 도시된 실시예를 참고로 설명되었으나 이는 예시적인 것에 불과하며, 본 기술 분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 다른 실시 예가 가능하다는 점을 이해할 것이다. 따라서, 본 발명의 진정한 기술적 보호 범위는 첨부된 특허청구범위의 기술적 사상에 의해서 정해져야 할 것이다.
10: 하드웨어 장치 11: 메인보드
12: 마이크로컨트롤러 100: 소프트웨어 개발 시스템
110: 모듈 부품 제공부 120: 모듈 선택부
130: 모듈 코드 제공부 140: 개발 지원 서버
150: 네트워크 160: 부품 구매 서버

Claims (5)

  1. 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 제공하는 소프트웨어 개발 시스템에 있어서,
    상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 제공부;
    상기 모듈 부품을 사용자 인터페이스를 통해 선택하는 모듈 선택부; 및
    상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공부;를 포함하고,
    상기 모듈 선택부에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성하며,
    상기 모듈 코드 제공부는,
    상기 통합 개발 환경이 상기 모듈 코드를 요청하면, 상기 모듈 코드에 관한 수신 권한의 인증을 요청하되, 상기 수신 권한 타입은 무료, 구매, 첨부 및 구독 중 하나이며,
    상기 수신 권한 타입 중 첨부는, 상기 모듈 부품에 종속되어 상기 모듈 부품 구매 시 상기 수신 권한 인증이 무료로 변경되는 것인 소프트웨어 개발 시스템.
  2. 제1항에 있어서,
    상기 통합 개발 환경에서 상기 모듈 부품에 대한 구매 정보를 제공하는 부품 구매부를 더 포함하는 것인 소프트웨어 개발 시스템.
  3. 제1항에 있어서,
    상기 모듈 코드 제공부는,
    상기 수신 권한 인증을 요청한 상기 통합 개발 환경이, 상기 모듈 코드의 수신 권한 인증이 되지 않을 경우, 상기 모듈 코드의 일부분만 조회되도록 하는 소프트웨어 개발 시스템.
  4. 제1항에 있어서,
    상기 모듈 코드 제공부가 수신한 상기 모듈 코드는, 수신한 상기 통합 개발 환경의 고유 코드를 포함하고,
    상기 통합 개발 환경은, 상기 수신한 모듈 코드에 포함된 상기 고유 코드에 기초한 상기 통합 개발 환경의 인증 여부에 따라 상기 모듈 코드의 컴파일을 수행 또는 거부하는 것인 소프트웨어 개발 시스템.
  5. 마이크로컨트롤러가 장착된 메인보드를 포함하는 하드웨어 장치를 구동하기 위한 장치 소프트웨어의 개발을 지원하는 통합 개발 환경을 이용하는 소프트웨어 개발 방법에 있어서,
    상기 하드웨어 장치에 장착하여 전기적으로 연결가능한 하나 이상의 모듈 부품에 대한 정보를 상기 통합 개발 환경을 통해 제공하는 모듈 부품 정보 제공 단계;
    상기 모듈 부품을 선택하는 모듈 선택 단계; 및
    상기 모듈 부품과 상기 하드웨어 장치의 메인 보드가 상호 작용하도록 작성된 모듈 코드를 상기 통합 개발 환경을 통해 제공하는 모듈 코드 제공 단계;를 포함하고,
    상기 모듈 선택 단계에서 선택된 상기 모듈 부품과 상기 모듈 코드를 기초로 상기 장치 소프트웨어를 자동으로 생성하며,
    상기 모듈 코드 제공 단계는,
    상기 통합 개발 환경이 상기 모듈 코드를 요청하면, 상기 모듈 코드에 관한 수신 권한의 인증을 요청하되, 상기 수신 권한 타입은 무료, 구매, 첨부 및 구독 중 하나이며,
    상기 수신 권한 타입 중 첨부는, 상기 모듈 부품에 종속되어 상기 모듈 부품 구매 시 상기 수신 권한 인증이 무료로 변경되는 것인 소프트웨어 개발 방법.
KR1020200054438A 2020-05-07 2020-05-07 소프트웨어 개발 시스템 및 방법 KR102185290B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020200054438A KR102185290B1 (ko) 2020-05-07 2020-05-07 소프트웨어 개발 시스템 및 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020200054438A KR102185290B1 (ko) 2020-05-07 2020-05-07 소프트웨어 개발 시스템 및 방법

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020190046114A Division KR102131918B1 (ko) 2019-04-19 2019-04-19 소프트웨어 개발 시스템 및 방법

Publications (2)

Publication Number Publication Date
KR20200123034A KR20200123034A (ko) 2020-10-28
KR102185290B1 true KR102185290B1 (ko) 2020-12-01

Family

ID=73018457

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020200054438A KR102185290B1 (ko) 2020-05-07 2020-05-07 소프트웨어 개발 시스템 및 방법

Country Status (1)

Country Link
KR (1) KR102185290B1 (ko)

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100403195B1 (ko) 2001-06-27 2003-10-23 (주)바이탈즈시스템 웹 기반 인서킷 에뮬레이터, 이를 이용한 타겟 임베디드시스템의 웹 기반 개발 시스템 및 방법
CN106170764B (zh) * 2014-01-10 2019-12-10 西安姆贝拉有限公司 用于自动设备程序生成的方法和装置
KR101906823B1 (ko) * 2016-03-07 2018-12-05 주식회사 럭스로보 멀티 모듈 컴파일 시스템 및 멀티 모듈 컴파일 방법, 그리고 컴파일러 프로그램을 갖는 컴퓨터 판독가능 저장매체

Also Published As

Publication number Publication date
KR20200123034A (ko) 2020-10-28

Similar Documents

Publication Publication Date Title
US20110246331A1 (en) Online Custom Circuit Marketplace
CN103842961A (zh) 用于创建个人化和定制的移动设备的系统
CN104350497A (zh) 通过开放的动作和/或提供者市场实现的用户任务完成
CN108628687A (zh) 提供产品信息的系统及其方法
CN105339975A (zh) 用于第三方产品的跨商店许可
CN105763580A (zh) 一种数据信息分享方法及装置
US20140032376A1 (en) Method and system for facilitating electronic commerce
CN109977338A (zh) 一种页面显示方法、装置、电子设备及存储介质
CN106157084A (zh) 具有分润机制的网络购物系统及其实施方法
CN108694572A (zh) 基于共享电子交易购物车的用于代理支付的系统及方法
CN106998314B (zh) 账户交互方法及装置
US9760931B2 (en) System and method of communicating with distributed marketplaces
CN107590682B (zh) 广告投放方法、服务器、热点设备和系统
CN107492017B (zh) 一种基于电商类PaaS平台的订单拆分系统及其实现方法
CN105100132A (zh) 终端设备、识别终端设备的方法及系统
KR102131918B1 (ko) 소프트웨어 개발 시스템 및 방법
KR102185290B1 (ko) 소프트웨어 개발 시스템 및 방법
KR102185291B1 (ko) 소프트웨어 개발 시스템 및 방법
KR102185289B1 (ko) 소프트웨어 개발 시스템 및 방법
KR102185292B1 (ko) 소프트웨어 개발 시스템 및 방법
CN102930401A (zh) 从客户关系管理客户端应用提供企业资源规划功能的技术
US20170286909A1 (en) Configure-Price-Quote Systems For Partner Networks
US20120109783A1 (en) Product information search
US10382541B2 (en) Server and method for providing design data for application and system for generating application
KR102432066B1 (ko) 표준화된 bom에 관한 매칭 테이블을 이용하여 고객 호환성을 갖는 웹 서비스를 제공하는 방법 및 서버

Legal Events

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