KR20160112755A - 임베디드 소프트웨어의 자가 적응형 설계 방법 - Google Patents

임베디드 소프트웨어의 자가 적응형 설계 방법 Download PDF

Info

Publication number
KR20160112755A
KR20160112755A KR1020150039014A KR20150039014A KR20160112755A KR 20160112755 A KR20160112755 A KR 20160112755A KR 1020150039014 A KR1020150039014 A KR 1020150039014A KR 20150039014 A KR20150039014 A KR 20150039014A KR 20160112755 A KR20160112755 A KR 20160112755A
Authority
KR
South Korea
Prior art keywords
metadata
performance
embedded
software
design
Prior art date
Application number
KR1020150039014A
Other languages
English (en)
Other versions
KR102074387B1 (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 KR1020150039014A priority Critical patent/KR102074387B1/ko
Publication of KR20160112755A publication Critical patent/KR20160112755A/ko
Application granted granted Critical
Publication of KR102074387B1 publication Critical patent/KR102074387B1/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/20Software design
    • G06F8/22Procedural

Landscapes

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

Abstract

본 발명의 실시 예에 따른 임베디드 시스템에서 구동되는 자가 적응형 임베디드 소프트웨어의 설계 방법은, 상기 임베디드 시스템을 속성에 대응하는 복수의 메타 데이터들로부터 성능 목표에 대응하는 카테고리의 메타 데이터를 선택하여 아키텍처로 구성하는 단계, 상기 선택된 메타 데이터에 대해 상기 임베디드 시스템의 동작 환경 또는 구동 소프트웨어의 성능에 따라 가변되는 메타 데이터를 선택하여 목표 설계 요소들을 결정하는 단계, 그리고 상기 결정된 목표 설계 요소들에 대한 검증된 설계 패턴을 할당하거나 조정하는 단계를 포함한다.

Description

임베디드 소프트웨어의 자가 적응형 설계 방법{METHOD OF SELF-ADAPTIVE DESIGN OF EMBEDDED SOFTWARE}
본 발명은 임베디드 시스템에 관한 것으로, 좀 더 구체적으로는 다양한 시스템의 변화 요소들을 반영한 임베디드 소프트웨어의 설계 방법에 관한 것이다.
특정 산업용 기기의 제어를 위해 사용되던 임베디드 시스템은 유무선 통신 네트워크와의 접목으로 디지털 정보가전, 의료, 항공, 군사 등 전 산업 분야로 그 적용 범위가 급격히 확대되고 있다. 이와 같은 임베디드 시스템은 실시간 처리, 저전력 등의 물리적 특성과 하드웨어(Hardware)와 소프트웨어(Software)의 동시 설계, 리소스의 절제된 사용 등의 특성을 반영해야 하므로, 시스템 개발 전 과정에서 이러한 특성을 만족시키는 개발 체계를 구축하는 것이 무엇보다 중요하다.
자가 적응형 소프트웨어(Self adaptive software)는 복잡해지는 하드웨어 구조, 예측이 어려운 소프트웨어 동작 환경과 성능 변화에 대해 소프트웨어 컨텍스트(Software context)에 맞게 상황을 판단하고 대처에 필요한 행위들을 취할 수 있는 소프트웨어를 말한다. 이러한 자가 적응형 소프트웨어 기법이 가장 필요한 분야가 바로 임베디드 소프트웨어 분야이다. 임베디드 소프트웨어는 하드웨어 제어 기능이 많고 주변 환경 및 시스템 내부 요소 변화가 빈번하여 성능 목표에 민감하게 영향을 끼친다.
예를 들어, 동일한 코드와 설정의 임베디드 소프트웨어가 단지 운영 환경의 미세한 변화에도 구동 자체가 불가능해질 수 있다. 뿐만 아니라, 임베디드 소프트웨어는 운영 환경의 미세한 변화에 따라서 큰 성능 차이를 야기시킬 수 있다. 따라서, 임베디드 소프트웨어는 능숙한 개발자들에 의해서 개발 및 유지 보수될때, 일정 수준의 성능을 유지 또는 제공할 수 있다. 이런 이유로 임베디드 소프트웨어의 개발은 고난이도의 과정으로, 초급 개발자들이 변화하는 환경에 따른 능동적으로 대처하기에는 매우 어려운 작업이다.
현재, 대부분의 임베디드 소프트웨어는 변화성에 대한 대처를 개발자의 경험적인 의사 결정에 전적으로 의존하고 있다. 임베디드 소프트웨어의 개발자나 유지 보수자가 변경되거나, 또는 새로운 기능이나 하드웨어 인터페이스가 추가되는 경우, 임베디드 소프트웨어는 변경 이전의 성능을 제대로 발휘하기 어려운 실정이다. 따라서, 미미한 환경의 변경에 불구하고 임베디드 소프트웨어를 새롭게 개발하는 경우가 허다하다.
이러한 이유로 임베디드 소프트웨어의 개발이나 설계시에 환경의 변화에 용이하게 적응할 수 있는 임베디드 소프트웨어의 개발 또는 설계 방법이 필요한 실정이다. 특히, 임베디드 소프트웨어의 메타 데이터(Meta data)를 이용한 아키텍처 기반의 모듈화를 통한 보다 추상적인 접근 방식으로 개발의 용이성을 높이는 설계 방법은 거의 전무한 실정이다.
본 발명의 목적은 임베디드 소프트웨어들이 가지는 가변성에 대한 메타 데이터의 수집을 통해 축적된 가변 요소들의 후보군들 중에서 개별 응용에 맞는 최적의 가변 요소들을 제안하기 위한 것이다. 더불어, 목표로 하는 적응형의 타깃 아키텍처를 구축한 뒤, 원하는 성능을 충족시킬 수 있는 설계 요소들을 개발자와의 반복적인 의견 공유를 통해 설정하기 위한 것이다. 게다가, 설계 패턴을 이용하여 구체화하는 일련의 과정을 통하여 임베디드 소프트웨어의 자가 적응형 설계를 달성하기 위한 것이다.
더불어, 임베디드 소프트웨어의 다양성에 의해 발생하는 복잡도 처리가 모델 중심으로 완화됨으로써 기존 임베디드 소프트웨어의 활용과 유지보수의 용이성 및 점진적인 개발 진화 과정의 융통성을 확대시키기 위한 것이다.
가변성이 빈번하거나 사용자의 의사 참여가 불가피한 임베디드 소프트웨어의 개발자 및 사용자의 관점에서 동작 환경과 하드웨어의 변화를 모델에 기반하여 융통성 있는 설계를 구성하고 조정가능하도록 함으로써 개발의 효율성 및 오류 없이 성능 목표를 달성하는 임베디드 소프트웨어으로의 확장을 보장하는데 목적이 있다.
상기 목적을 달성하기 위한 본 발명의 실시 예에 따른 임베디드 시스템에서 구동되는 자가 적응형 임베디드 소프트웨어의 설계 방법은, 상기 임베디드 시스템을 속성에 대응하는 복수의 메타 데이터들로부터 성능 목표에 대응하는 카테고리의 메타 데이터를 선택하여 아키텍처로 구성하는 단계, 상기 선택된 메타 데이터에 대해 상기 임베디드 시스템의 동작 환경 또는 구동 소프트웨어의 성능에 따라 가변되는 메타 데이터를 선택하여 목표 설계 요소들을 결정하는 단계, 그리고 상기 결정된 목표 설계 요소들에 대한 검증된 설계 패턴을 할당하거나 조정하는 단계를 포함한다.
이상과 같이 가변성이 많은 임베디드 소프트웨어가 성능 목표를 유지하기 위한 자가 적응형 설계 방법이 제안되었다. 이러한 설계 방법에 따르면, 다양한 변경 요소들에 대한 정보를 메타 데이터를 통해 기록하고 환경의 맞는 최적의 가변성 적응 히스토리를 보유할 수 있게 하여, 변경된 환경에 융통성 있게 대처할 수 있도록 할뿐더러, 경험이 적은 개발자들에게도 개발의 용이성을 제공할 수 있다.
또한, 고품질의 성능 목표들의 달성과 유지를 위한 복잡성을 모델 수준에서 모듈 형태의 메타 데이터와 아키텍처, 그리고 설계 패턴을 활용하여 효과적으로 해결할 수 있다. 따라서, 임베디드 소프트웨어의 다양성에 의해 발생하는 복잡도 처리가 모델 중심으로 완화됨으로써 기존 임베디드 소프트웨어의 활용과 유지 보수의 용이성 및 점진적인 개발 진화 과정의 융통성을 확대시킬 수 있다.
궁극적으로 가변성이 빈번하거나 사용자의 의사 참여가 불가피한 임베디드 소프트웨어의 개발자 및 사용자의 관점에서, 동작 환경과 하드웨어의 변화에 기반하여 융통성 있게 설계를 구성하고 조정가능하도록 함으로써 개발의 효율성 및 오류 없이 성능 목표를 달성할 수 있는 신뢰성을 향상 시킬 수 있다.
도 1은 본 발명의 실시 예에 따른 임베디드 시스템을 간략히 보여주는 블록도이다.
도 2는 도 1의 임베디드 소프트웨어(125)의 성능을 결정하는 가변 속성을 분류한 표이다.
도 3은 본 발명의 실시 예에 따른 자가 적응형 임베디드 소프트웨어의 설계 방법을 개략적으로 도시한 순서도이다.
도 4는 도 3의 자가 적응형 임베디드 소프트웨어의 설계 방법을 구체적으로 설명하는 순서도이다.
도 5는 본 발명의 자가 적응형 임베디드 소프트웨어의 구조를 보여주는 도면이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 실시 예를 첨부된 도면을 참조하여 설명하기로 한다. 동일한 구성 요소들은 동일한 참조번호를 이용하여 인용될 것이다. 유사한 구성 요소들은 유사한 참조번호들을 이용하여 인용될 것이다. 아래에서 설명될 본 발명에 따른 모바일 장치 또는 프로세서에 의해 수행되는 동작은 예를 들어 설명한 것에 불과하며, 본 발명의 기술적 사상을 벗어나지 않는 범위 내에서 다양한 변화 및 변경이 가능하다.
본 발명은 다른 실시 예들을 통해 구현되거나 적용될 수 있을 것이다. 게다가, 상세한 설명은 본 발명의 범위, 기술적 사상 그리고 다른 목적으로부터 상당히 벗어나지 않고 관점 및 응용에 따라 수정되거나 변경될 수 있다. 이하, 본 발명에 따른 실시 예를 첨부된 도면을 참조하여 상세히 설명한다.
도 1은 본 발명의 실시 예에 따른 임베디드 시스템을 간략히 보여주는 블록도이다. 도 1을 참조하면, 임베디드 시스템(100)은 프로세서(110), 워킹 메모리(120), 네트워크 어뎁터(130), 저장 장치(140) 등을 포함할 수 있다. 임베디드 시스템(100)의 구성 요소들은 도시된 구성 요소들에 국한되지 않음은 잘 이해될 것이다.
프로세서(110)는 임베디드 시스템(100)에서 수행될 임베디드 소프트웨어(125)를 실행한다. 임베디드 소프트웨어(125)는 롬(미도시됨)이나 저장 장치(140)로부터 워킹 메모리(120)에 로드될 것이다. 프로세서(110)는 규모나 성능에 따라 마이크로 컨트롤 유닛(MCU)이나 중앙처리장치(CPU) 등으로 구현될 수도 있음은 잘 이해될 것이다. 프로세서(110)는 운영 체제(OS) 기반에서 구동될 다양한 임베디드 소프트웨어를 실행할 수 있을 것이다. 프로세서(110)는 멀티-코어로 구현될 수도 있다.
워킹 메모리(120)에는 부팅시에 운영 체제(OS)나 기본 응용 프로그램들(Application Program)이 로드될 것이다. 예를 들면, 임베디드 시스템(100)의 부팅시에 롬이나 저장 장치(140)에 저장된 OS 이미지가 부팅 시퀀스에 의거하여 워킹 메모리(120)로 로드된다. 운영 체제(OS)에 의해서 임베디드 시스템(100)의 제반 입출력 동작들이 지원될 수 있다. 마찬가지로, 사용자의 의하여 선택되거나 기본적인 서비스 제공을 위해서 임베디드 소프트웨어 프로그램들이 워킹 메모리(120)에 로드될 수 있다.
네트워크 어뎁터(130)는 네트워크(200)와 임베디드 시스템(100) 간의 인터페이싱을 제공한다. 예를 들면, 네트워크 어뎁터(130)는 이더넷 카드나 또는 와이파이와 같은 유선 또는 무선 이더넷 카드로 제공될 수 있다. 또는, 다양한 로컬 네트워크, 유무선 통신, 블루투스 등의 채널을 사용하기 위한 네트워크 어뎁터(130)가 제공될 수도 있을 것이다.
저장 장치(140)는 임베디드 시스템(100)의 저장 매체(Storage Medium)로서 제공된다. 저장 장치(140)는 응용 프로그램들(Application Program), 운영 체제 이미지(OS Image) 및 각종 데이터를 저장할 수 있다. 저장 장치(140)는 메모리 카드(MMC, eMMC, SD, MicroSD 등)로 제공될 수도 있다. 저장 장치(140)는 대용량의 저장 능력을 가지는 낸드 플래시 메모리(NAND-type Flash memory)를 포함할 수 있다. 또는, 저장 장치(140)는 PRAM, MRAM, ReRAM, FRAM 등의 차세대 불휘발성 메모리나 NOR 플래시 메모리를 포함할 수도 있다. 본 발명의 다른 실시 예에서는 저장 장치(140)는 시스템 온 칩(SoC)의 내부에 구비되는 내장 메모리일 수 있다.
이상의 설명에 따르면, 본 발명의 임베디드 시스템(100)은 특정 목적을 가진 임베디드 소프트웨어(125)에 의해서 구동되고, 사용자가 요청한 기능을 수행할 수 있다. 하지만, 임베디드 소프트웨어(125)는 실시간 처리, 저전력 등의 물리적 특성과 하드웨어(HW)와 소프트웨어(SW)의 동시 설계, 리소스의 절제된 사용 등의 특성을 반영해야 한다. 따라서, 시스템 개발의 전과정에서 이러한 특성을 만족시키는 개발 체계를 구축하는 것이 무엇보다 중요하다.
본 발명은 임베디드 소프트웨어(125)의 특성 중 하나인 가변성을 고려하여, 사용자의 요구 사항이나 동작 환경에 따라 빈번하게 변경되는 소프트웨어 속성들을 식별하고 이를 시스템에 정적 및 동적으로 적응할 수 있는 메타 데이터로 정의할 수 있다. 특히, 제한된 자원 하에서는 상반 관계의 속성들 사이의 선택의 문제가 가장 중요하므로, 이를 기록하고 히스토리로 잘 활용하기 위해서는 메타 데이터로의 정리가 필요하다.
도 2는 도 1의 임베디드 소프트웨어(125)의 성능을 결정하는 가변 속성을 분류한 표이다. 도 2를 참조하면, 아키텍처 레벨의 모듈화를 위해, 임베디드 소프트웨어(125)의 성능을 결정하는 가변 속성은 적어도 2개의 카테고리로 분류될 수 있다. 즉, 임베디드 소프트웨어(125)가 구동되는 임베디드 시스템(100)과 네트워크(200) 등의 동작 환경 등은 속성별로 체계화되고 분류될 수 있다.
먼저, 임베디드 시스템(100)의 구동 성능을 결정하는 자원(Resource, 300)이 가변 속성의 카테고리로 분류될 수 있다. 자원(300)은 실제로 임베디드 소프트웨어(125)가 실행되는 임베디드 시스템(100)의 하드웨어 또는 소프트웨어적인 속성을 나타낸다. 이러한 자원(300)은 임베디드 시스템(100)의 종류나 동작 환경에 따라 가변적이다.
가변 속성으로서의 자원(300)은 먼저 프로세서(Processor, 110)의 속성을 포함할 수 있다. 프로세서(110)의 속성으로는 코어의 숫자(Number), 동작 속도(Speed)나 구동 클록의 주파수(frequency), 그리고 코어 내부의 캐시의 크기와 같은 응답 시간(Response time) 등이 포함될 수 있다. 그리고, 특정 임베디드 소프트웨어와 관련된 프로세서(110)의 속성이 더 추가될 수 있다. 여기서는, 이러한 특정 속성을 예비 속성(Other)으로 표현하고, 추가할 수 있도록 하였다.
자원(300)의 가변 속성으로서의 메모리(Memory)를 포함할 수 있다. 예를 들면, 메모리(120, 도 1 참조)의 사이즈(Size), 캐시 기능 여부(Cache or Not), 공유 여부(Shared or Not) 등이 포함될 수 있다. 더불어, 메모리(120)의 성능을 결정하는 추가적인 속성들이 더 추가될 수 있음은 잘 이해될 것이다. 마찬가지로, 특정 임베디드 소프트웨어와 관련된 메모리(120)의 속성으로 예비 속성(Other)이 추가될 수 있다.
자원(300)의 또 다른 가변 속성으로 전력(Power)이 포함될 수 있다. 전력(Power)의 속성으로 동적 코어 및 주파수 스케일링(Dynamic Core and Frequency Scaling: 이하, DCFS) 특성, 그리고 주파수(Frequency) 특성 등이 포함될 수 있다. 즉, 멀티-코어의 구동 주파수에 따른 코어 수의 변화 특성을 나타내는 DCFS를 하나의 가변 속성으로 나타낼 수 있다. 더불어, 멀티-코어의 구동 주파수에 따른 프로세서의 구동 전압 특성(DVFS)을 전력의 가변 속성으로 더 포함할 수 있다. 마찬가지로, 특정 임베디드 소프트웨어와 관련된 전력의 속성으로 예비 속성(Other)이 추가될 수 있다.
더불어, 메타 데이터로 취합하기 위한 가변 속성으로서 네트워크(200)의 속성(400)이 복수의 카테고리로 분류될 수 있다. 먼저, 네트워크 속성(400)으로 하드웨어 채널(HW Channel), 네트워크 토폴로지(Network Topology), 그리고 네트워크 성능(Capability)을 포함할 수 있다.
하드웨어 채널(HW Channel)은 와이파이(Wifi)나 블루투스와 같은 무선망(Wireless)인지 또는 이더넷 카드를 사용하는 유선 케이블망(Cable)인지에 대한 속성을 포함할 수 있다. 그리고 특정 임베디드 소프트웨어와 관련된 네트워크의 속성으로 예비 속성(Other)이 추가될 수 있다.
네트워크 토폴로지(Topology)는 임베디드 시스템(100)이 망내에서 연결되는 방식을 정의할 수 있다. 예를 들면, 네트워크 토폴로지(Topology)는 복수의 임베디드 시스템(100)이 구성하는 노드들이 그물 방식(Mesh), 별 방식(Star), 점대점 방식(P2P), 버스 방식(Bus)인지를 정의할 수 있다. 더불어, 특정 임베디드 소프트웨어와 관련된 네트워크의 토폴로지(Topology) 속성으로 예비 속성(Other)이 추가될 수 있다.
네트워크 성능(Capability)은 임베디드 시스템(100)이 망내에서 정보를 교환하기 위한 채널의 성능을 정의한다. 예를 들면, 네트워크 성능(Capability)으로 채널의 대역폭(Bandwidth), 지연(Delay), 에러율(Error rate), 노드들의 메모리 사이즈(Node storage size) 등을 포함할 수 있다. 특정 임베디드 소프트웨어와 관련된 네트워크의 성능으로 예비 속성(Other)이 추가될 수 있다.
이상에서는 하나의 임베디드 시스템(100)과 그에 연결되는 네트워크에 대한 속성이 메타 데이터로 정의되기 위한 속성들이 설명되었다. 일반적으로, 실시간성과 자원 활용의 병렬성을 강조하는 임베디드 소프트웨어의 성능을 결정하는 품질 요소들은 상술한 자원과 네트워크의 속성에 크게 의존한다. 따라서, 상술한 메타 데이터 중에서 성능 목표에 맞는 메타 데이터를 선택 및 획득하여 설계하고자 하는 소프트웨어의 아키텍처를 구성할 수 있다.
도 3은 본 발명의 실시 예에 따른 자가 적응형 임베디드 소프트웨어의 설계 방법을 개략적으로 도시한 순서도이다. 도 3을 참조하면, 설계 대상 임베디드 소프트웨어에 대한 도 2의 메타 데이터가 입력되면, 설계 시스템에서는 본 발명의 설계 절차를 진행한다.
S110 단계에서, 입력된 메타 데이터 및 목표 성능에 응답하여 자가 적응형의 최적 메타 데이터가 선택된다. 그리고 선택된 자가 적응형 메타 데이터에 기초하여 목표하는 임베디드 소프트웨어의 아키텍처가 구성될 것이다.
S120 단계에서, 타깃 아키텍처에 기반하여 임베디드 소프트웨어의 성능이나 임베디드 시스템(100)이 동작하는 환경의 변화에 따라 가변되는 속성들에 대한 최적화가 수행된다. 예를 들면, 도 2에 포함되는 속성들에 대한 개발자 또는 사용자의 선택이 수행된다. 즉, 가변되는 속성들에 대한 다양한 케이스에 대한 후보군을 구성한 후, 개발자의 선택이 수행될 수 있다. 그리고 선택된 속성들에 대응하는 설계 요소들이 결정될 것이다.
S130 단계에서, 결정된 목표 설계 요소들을 자가 적응형 임베디드 소프트웨어로 전개한다. 예를 들면, 결정된 목표 설계 요소들에 대해 기존의 설계 패턴의 할당, 배치 및 조정을 통해서 소프트웨어 설계를 완성한다.
이상에서는 본 발명의 자가 적응형 임베디드 소프트웨어의 설계 방법이 간략히 설명되었다. 이러한 설계 기법을 통해서 다양한 변경 요소들에 대응하는 정보를 메타 데이터를 통해서 입력받고, 입력받은 메타 데이터를 사용하여 변경된 환경에 융통성 있게 대처할 수 있는 자료로 사용할 수 있다. 더불어, 개발 경험이 적은 개발자들에게도 이러한 절차를 통해서 개발의 용이성을 제공할 수 있다.
도 4는 도 3의 자가 적응형 임베디드 소프트웨어의 설계 방법을 구체적으로 설명하는 순서도이다. 도 4를 참조하면, 설계 시스템에 아키텍처 레벨의 소프트웨어 설계를 위한 메타 데이터와 목표 성능치가 입력되고, 다양한 메타 데이터들의 셋들 중에서 최적 성능을 제공하는 값이 선택될 수 있다. 그러면, 사용자에 의해서 최적 변경 요소들이 선택되고, 검증된 설계 패턴을 적용하여 목표하는 소프트웨어가 완성될 수 있다.
S210 단계에서, 설계 시스템에 설계 대상이 되는 소프트웨어의 가변성을 가지는 메타 데이터와 설계 대상 소프트웨어의 목표 성능치가 입력될 것이다. 그리고 입력된 메타 데이터와 설계 대상 소프트웨어의 목표 성능치는 설계 시스템의 서버나 임의의 스토리지로 구성되는 저장소(500)에 전송될 것이다. 저장소(500)는 메타 데이터를 데이터 베이스로 구축한 서버일 수도 있다.
S220 단계에서, 저장소(500)에 전달된 메타 데이터와 목표 성능치에 대응하여, 저장소(500)는 다양한 임베디드 소프트웨어의 메타 데이터들의 수집을 통해서 축적된 가변 속성들의 후보군들 중에서 대상 임베디드 소프트웨어에 맞는 최적의 가변 속성을 제안할 것이다. 최적의 가변 속성은 설계 시스템에서 수신된다.
S230 단계에서, 설계 시스템은 최적의 가변 속성을 반영한 소프트웨어 아키텍처를 구축할 것이다. 이상의 S210 단계 내지 S230 단계는 앞서 설명된 도 3의 S110에 대응한다.
S240 단계에서, 설계 시스템은 저장소로부터 제공된 가변적인 설계 속성들을 수신한다. 최초 루프에서는 S220 단계에서의 동작에 대응한다.
S250 단계에서, 설계 시스템은 가변 속성들에 대한 설정한다.
S260 단계에서, 설계 시스템은 설정된 가변 속성들 각각에 대한 사용자 또는 개발자의 만족 여부를 검토한다. 만일, 사용자나 설계자가 만족하는 경우, 절차는 S280 단계로 이동한다. 하지만, 사용자나 설계자가 현재 설정된 가변 속성들에 대해 만족하지 않는 경우, 절차는 S265 단계로 이동할 것이다.
S270 단계에서, 설계 시스템은 메타 데이터를 새롭게 설정하고 이러한 설정을 저장소(500)로 전송한다. 그러면, 저장소(500)에서는 또다른 적응형 메타 데이터 셋을 구성하여 설계 시스템으로 전송할 것이다. 이렇게 사용자나 설계자가 만족할 때까지 적응형 메타 데이터 셋이 설정될 것이다.
S280 단계에서, 설계 시스템은 사용자나 설계자에 의해서 결정된 목표 설계 요소들을 자가 적응형 임베디드 소프트웨어로 전개시킨다. 즉, 결정된 목표 설계 요소들에 대해 기존의 설계 패턴의 할당, 배치 및 조정을 통해서 소프트웨어 설계를 완성한다.
S290 단계에서, 설계 시스템은 완성된 적응형 임베디드 소프트웨어 아키텍처를 인스턴스화한다. 즉, 설계 시스템은 완성된 적응형 임베디드 소프트웨어 아키텍처를 기존의 설계 패턴들과 대체하여, 설계를 완성할 것이다.
도 5는 본 발명의 자가 적응형 임베디드 소프트웨어의 구조를 보여주는 도면이다. 도 5를 참조하면, 자가 적응형 임베디드 소프트웨어(600)는 본 발명의 메타 데이터의 조작을 위한 자가 적응형 제어부(630)를 포함한다. 일반적인 임베디드 소프트웨어의 경우, 인터페이스부(610), 제어부(620), 기능부(641~644), 장치 관리부(651~654)를 포함한다. 하지만, 본 발명의 자가 적응형 임베디드 소프트웨어는 적응적으로 조정되도록 메타 데이터를 관리하기 위한 자가 적응형 제어부(630) 모듈이 더 포함될 것이다.
임베디드 소프트웨어를 제어할 때, 자가 적응형 가변 속성들을 반영할 수 있는 메타 데이터의 전달과 수신을 자가 적응형 제어부(630)가 담당한다. 그리고 의존 관계의 기능성 패키지 및 연관된 하드웨어 장치의 속성을 설정하는데 기여하게 된다.
이상에서와 같이 도면과 명세서에서 실시 예가 개시되었다. 여기서 특정한 용어들이 사용되었으나, 이는 단지 본 발명을 설명하기 위한 목적에서 사용된 것이지 의미 한정이나 특허 청구범위에 기재된 본 발명의 범위를 제한하기 위하여 사용된 것은 아니다. 그러므로 본 기술분야의 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시 예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 진정한 기술적 보호 범위는 첨부된 특허 청구범위의 기술적 사상에 의해 정해져야 할 것이다.

Claims (9)

  1. 임베디드 소프트웨어의 설계 방법에 있어서:
    임베디드 시스템을 속성에 대응하는 복수의 메타 데이터들로부터 성능 목표에 대응하는 카테고리의 메타 데이터를 선택하여 아키텍처로 구성하는 단계;
    상기 선택된 메타 데이터에 대해 상기 임베디드 시스템의 동작 환경 또는 구동 소프트웨어의 성능에 따라 가변되는 메타 데이터를 선택하여 목표 설계 요소들을 결정하는 단계; 그리고
    상기 결정된 목표 설계 요소들에 대한 검증된 설계 패턴을 할당하거나 조정하는 단계를 포함하는 설계 방법.
  2. 제 1 항에 있어서;
    상기 임베디드 시스템의 성능을 결정하는 가변 속성들을 상기 임베디드 시스템의 메타 데이터로 제공하는 단계를 더 포함하는 설계 방법.
  3. 제 2 항에 있어서,
    상기 메타 데이터는 상기 임베디드 시스템의 자원 및 네트워크의 속성을 포함하는 설계 방법.
  4. 제 1 항에 있어서,
    상기 목표 설계 요소를 결정하는 단계에서, 상기 임베디드 시스템의 동작 환경 또는 구동 소프트웨어의 성능에 따라 가변되는 메타 데이터 속성들 중에서 사용자나 개발자가 선택한 속성들이 상기 목표 설계 요소들로 결정되는 설계 방법.
  5. 제 1 항에 있어서,
    다양한 상기 성능 목표에 대응하는 복수의 메타 데이터 셋을 저장소에 데이터 베이스로 구성하는 단계를 더 포함하는 설계 방법.
  6. 제 5 항에 있어서,
    상기 성능 목표에 대응하는 메타 데이터는 상기 데이터 베이스에 존재하는 복수의 값들 중에서 선택되는 설계 방법.
  7. 제 1 항에 있어서,
    상기 목표 설계 요소들을 결정하는 단계에서, 사용자 또는 개발자의 선택 여부에 따라 상기 메타 데이터를 확정하는 설계 방법.
  8. 제 7 항에 있어서,
    상기 목표 설계 요소들이 선택되지 않은 경우, 상기 메타 데이터들을 새롭게 설정하는 단계를 더 포함하는 설계 방법.
  9. 제 1 항에 있어서,
    상기 임베디드 소프트웨어는 인터페이스부, 제어부, 기능부, 장치 관리부, 그리고 상기 제어부와 상기 기능부 사이에서 상기 메타 데이터의 전달과 수신을 수행하는 자가 적응형 제어부를 포함하는 설계 방법.
KR1020150039014A 2015-03-20 2015-03-20 임베디드 소프트웨어의 자가 적응형 설계 방법 KR102074387B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150039014A KR102074387B1 (ko) 2015-03-20 2015-03-20 임베디드 소프트웨어의 자가 적응형 설계 방법

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150039014A KR102074387B1 (ko) 2015-03-20 2015-03-20 임베디드 소프트웨어의 자가 적응형 설계 방법

Publications (2)

Publication Number Publication Date
KR20160112755A true KR20160112755A (ko) 2016-09-28
KR102074387B1 KR102074387B1 (ko) 2020-02-06

Family

ID=57102076

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150039014A KR102074387B1 (ko) 2015-03-20 2015-03-20 임베디드 소프트웨어의 자가 적응형 설계 방법

Country Status (1)

Country Link
KR (1) KR102074387B1 (ko)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190044359A (ko) * 2017-10-20 2019-04-30 두산중공업 주식회사 인공지능을 이용한 자가 설계 모델링 시스템 및 방법
CN111061460A (zh) * 2019-12-13 2020-04-24 杭州中恒电气股份有限公司 基于嵌入式系统的通用软件开发平台
CN115758789A (zh) * 2022-12-01 2023-03-07 金航数码科技有限责任公司 一种复杂实时嵌入式系统的软件架构设计与架构传递方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070058954A (ko) * 2005-12-05 2007-06-11 한국전자통신연구원 임베디드 시스템 프로토타입 개발 지원 장치 및 방법
KR101255696B1 (ko) * 2011-11-04 2013-04-16 홍익대학교 산학협력단 Mof기반 hcml을 이용한 하드웨어 정보의 구조화 방법

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20070058954A (ko) * 2005-12-05 2007-06-11 한국전자통신연구원 임베디드 시스템 프로토타입 개발 지원 장치 및 방법
KR101255696B1 (ko) * 2011-11-04 2013-04-16 홍익대학교 산학협력단 Mof기반 hcml을 이용한 하드웨어 정보의 구조화 방법

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20190044359A (ko) * 2017-10-20 2019-04-30 두산중공업 주식회사 인공지능을 이용한 자가 설계 모델링 시스템 및 방법
CN111061460A (zh) * 2019-12-13 2020-04-24 杭州中恒电气股份有限公司 基于嵌入式系统的通用软件开发平台
CN111061460B (zh) * 2019-12-13 2023-09-29 杭州中恒电气股份有限公司 基于嵌入式系统的通用软件开发平台
CN115758789A (zh) * 2022-12-01 2023-03-07 金航数码科技有限责任公司 一种复杂实时嵌入式系统的软件架构设计与架构传递方法
CN115758789B (zh) * 2022-12-01 2023-11-17 金航数码科技有限责任公司 一种复杂实时嵌入式系统的软件架构设计与架构传递方法

Also Published As

Publication number Publication date
KR102074387B1 (ko) 2020-02-06

Similar Documents

Publication Publication Date Title
US11018979B2 (en) System and method for network slicing for service-oriented networks
Yang et al. A framework for partitioning and execution of data stream applications in mobile cloud computing
JP2020521263A (ja) 畳み込み効率を向上させる方法、システム、及び装置
CN104360903A (zh) Spark作业调度系统中实现任务数据解耦的方法
Reijers et al. Design of an Intelligent Middleware for Flexible Sensor Configuration in M2M Systems.
Mechalikh et al. PureEdgeSim: A simulation framework for performance evaluation of cloud, edge and mist computing environments
TW201717066A (zh) 叢集運算架構的資源規劃方法、系統及裝置
JP6892424B2 (ja) ハイパーパラメータチューニング方法、装置及びプログラム
CN116991560B (zh) 针对语言模型的并行调度方法、装置、设备及存储介质
CN105940636B (zh) 用于为数据中心的工作负荷生成分析模型的方法及服务器
KR102074387B1 (ko) 임베디드 소프트웨어의 자가 적응형 설계 방법
US20210141675A1 (en) Hotpluggable runtime
US20220300323A1 (en) Job Scheduling Method and Job Scheduling Apparatus
US8863060B2 (en) Programmable intelligent storage architecture based on application and business requirements
CN111830390A (zh) 一种测试方法及相关产品
JPWO2018181961A1 (ja) 仮想ネットワーク機能管理装置、仮想インフラストラクチャ管理装置、及び仮想ネットワーク機能構築方法
CN105045873A (zh) 一种数据文件的推送方法、装置及系统
CN113992520B (zh) 一种虚拟网络资源的部署方法和系统
CN111143033B (zh) 基于可伸缩操作系统的操作执行方法及装置
JP5907607B2 (ja) 処理配置方法及びプログラム
JP2020198135A (ja) ハイパーパラメータチューニング方法、装置及びプログラム
Zykov et al. Application of information processes applicative modelling to virtual machines auto configuration
US11693640B2 (en) Method and system for changing the behavior of a connected field device
CN116910568B (zh) 图神经网络模型的训练方法及装置、存储介质及电子装置
KR102014721B1 (ko) 어플리케이션과 비즈니스 요구에 기반한 프로그램 가능한 지능적 스토리지 아키텍처

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right