KR101912931B1 - 객체 지향적 블록 기반 프로그래밍을 위한 소프트웨어 개발 방법, 장치 및 컴퓨터 판독가능 매체 - Google Patents
객체 지향적 블록 기반 프로그래밍을 위한 소프트웨어 개발 방법, 장치 및 컴퓨터 판독가능 매체 Download PDFInfo
- Publication number
- KR101912931B1 KR101912931B1 KR1020150175317A KR20150175317A KR101912931B1 KR 101912931 B1 KR101912931 B1 KR 101912931B1 KR 1020150175317 A KR1020150175317 A KR 1020150175317A KR 20150175317 A KR20150175317 A KR 20150175317A KR 101912931 B1 KR101912931 B1 KR 101912931B1
- Authority
- KR
- South Korea
- Prior art keywords
- block
- area
- sub
- attribute
- blocks
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09B—EDUCATIONAL OR DEMONSTRATION APPLIANCES; APPLIANCES FOR TEACHING, OR COMMUNICATING WITH, THE BLIND, DEAF OR MUTE; MODELS; PLANETARIA; GLOBES; MAPS; DIAGRAMS
- G09B19/00—Teaching not covered by other main groups of this subclass
- G09B19/0053—Computers, e.g. programming
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Computer Hardware Design (AREA)
- Entrepreneurship & Innovation (AREA)
- Physics & Mathematics (AREA)
- Educational Administration (AREA)
- Educational Technology (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Stored Programmes (AREA)
Abstract
객체 지향적 블록 기반 프로그래밍 개발 방법은 하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받는 단계, 상기 선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시하는 단계, 상기 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 상기 하나 이상의 서브 콤포넌트 블록 각각과 연관되는 하나 이상의 메소드(methods) 블록 및 하나 이상의 속성(attributes) 블록으로부터 적어도 하나를 선택받는 단계, 상기 선택된 서브 콤포넌트 블록, 메소드 블록 및 속성 블록을 상기 제 1 영역의 제 2 서브 영역에 표시하는 단계, 상기 제 1 영역의 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시하는 단계, 상기 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받는 단계 및 상기 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 단계를 포함한다.
Description
본 발명은 객체 지향적 블록 기반 프로그래밍을 위한 소프트웨어 개발 방법, 장치 및 컴퓨터 판독가능 매체에 관한 것이다.
프로그래밍 언어는 기계어만을 이해하는 컴퓨터와 자연어를 구사하는 인간 사이의 의사소통 수단으로서, 컴퓨터를 이용하여 문제를 해결하기 위해서는 프로그래밍이라는 과정을 거쳐야 한다. 프로그래밍 언어의 종류로서 저급 언어에는 어셈블리어가 대표적이며, 고급 언어에는 알골(ALGOL:ALGOrithmic Language), 코볼(COBOL:Common Business Oriented Language) 등이 있다.
한편, C 언어, 파스칼(Pascal), 베이직(BASIC) 등과 같은 절차형 언어가 크고 복잡한 프로그램을 구축하기 어렵다는 문제점을 해결하기 위하여 객체 지향 프로그래밍(Object-oriented Programming)이 도입되었고, 이에 따라 C++ 를 위시하여 Java, C# 등과 같은 객체 지향 프로그래밍 언어가 등장하였다. 객체 지향 프로그래밍은 실세계의 현상을 컴퓨터상에 객체로 실현함으로써 컴퓨터를 자연스러운 형태로 사용하여 다양한 문제를 해결하기 위해 정의된 프로그래밍 패러다임으로서, 여기에서 객체는 실체(Object)와 그 실체와 관련되는 동작(Methods) 및 속성(Attributes)을 모두 포함한다. 객체는 언어와 방법론에 따라 다양한 형태와 기법으로 구현될 수 있고, 그 중 콤포넌트(Component)와 콤포넌트 기반 개발(Component-based Development) 기법은 이러한 객체 지향 프로그래밍 패러다임을 가장 잘 반영한 표본이라 할 수 있다.
최근, 소프트웨어 산업은 하드웨어 산업의 시장 규모를 넘어섰고, 그 차이는 점점 더 벌어지고 있다. 또한, 소프트웨어 산업은 하드웨어 산업 등 다른 분야에 비해 월등히 높은 부가 가치율을 가지는 고부가 가치 산업으로서, 그 중요성이 부각되고 있다. 이에 따라, 학교 또는 일부 사교육에서 초등학생 또는 중학생을 대상으로 하는 프로그래밍 교육을 일부 실시하고 있다.
하지만, 종래의 프로그래밍 교육은 이론 및 간단한 논리를 체험하는 정도에 그쳐 소프트웨어적으로 무한한 창조력을 갖춘 디지털 정보 세대의 관심, 흥미, 욕구를 충족시키지 못하고 있다. 특히, 국내에서는 공교육으로서 프로그래밍 교육에 근접한 정보 과목이 있으나 컴퓨터 기기 및 프로그램 활용 중심의 교육과 일부 소프트웨어 기초 교육이 전부인 실정이다.
한편, 일부 사교육에서도 프로그래밍 교육을 시도하고 있으나 그 수단이나 방법이 초등학생 대상의 교육에 편중되어 있어 학생의 발달 단계에 적합한 체계적인 교육으로서는 한계가 있고, 해외에서 실험 모델로서 제작된, 객체의 특성과 구분이 명확하지 않은 교육 도구나 그것을 모방하여 만들어진 도구를 통해 교육을 하기 때문에 학생들이 현대 프로그래밍에서 중요시되고 있는 객체 지향 프로그래밍의 개념을 쉽고 명확하게 이해하기는 힘들다.
이와 관련하여, 공개특허공보 제 2010-0054330 호는 직관적 사용자 인터페이스를 이용한 프로그램 저작 방법 및 저작 도구에 관한 기술을 개시하고 있다.
또한, 등록특허공보 제 0633478 호는 비즈니스용 전문 운영 체제에 기반하는 소프트웨어 개발 시스템 및 그 개발 방법에 관한 기술을 개시하고 있다.
선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시하고, 선택된 서브 콤포넌트 블록, 메소드 블록 및 속성 블록을 상기 제 1 영역의 제 2 서브 영역에 표시하고, 제 1 영역의 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시하는 방법, 장치 및 컴퓨터 판독가능 매체를 제공하고자 한다.
또한, 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받고, 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 방법, 장치 및 컴퓨터 판독가능 매체를 제공하고자 한다. 다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제들로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.
상술한 기술적 과제를 달성하기 위한 기술적 수단으로서, 본 발명의 일 실시예는 하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받는 단계, 상기 선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시하는 단계, 상기 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 상기 하나 이상의 서브 콤포넌트 블록 각각과 연관되는 하나 이상의 메소드(methods) 블록 및 하나 이상의 속성(attributes) 블록으로부터 적어도 하나를 선택받는 단계, 상기 선택된 서브 콤포넌트 블록, 메소드 블록 및 속성 블록을 상기 제 1 영역의 제 2 서브 영역에 표시하는 단계, 상기 제 1 영역의 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시하는 단계, 상기 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받는 단계 및 상기 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 단계를 포함하는 객체 지향적 블록 기반 프로그래밍 개발 방법을 제공할 수 있다.
또한, 본 발명의 다른 실시예는 하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받고, 상기 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 상기 하나 이상의 서브 콤포넌트 블록 각각과 연관되는 하나 이상의 메소드(methods) 블록 및 하나 이상의 속성(attributes) 블록으로부터 적어도 하나를 선택받는 블록 선택부, 상기 선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시하고, 상기 선택된 서브 콤포넌트 블록, 메소드 블록 및 속성 블록을 상기 제 1 영역의 제 2 서브 영역에 표시하고, 상기 제 1 영역의 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시하는 표시부, 상기 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받는 입력부; 및 상기 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 코드 생성부를 포함하는 객체 지향적 블록 기반 프로그래밍 개발 장치를 제공할 수 있다.
또한, 본 발명의 또 다른 실시예는 객체 지향적 블록에 기반하여 프로그래밍을 개발하는 명령어들의 시퀀스를 포함하는 컴퓨터 판독가능 매체로서, 컴퓨팅 장치에 의해 실행될 때, 상기 컴퓨팅 장치가 하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받고, 상기 선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시하고, 상기 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 상기 하나 이상의 서브 콤포넌트 블록 각각과 연관되는 하나 이상의 메소드(methods) 블록 및 하나 이상의 속성(attributes) 블록으로부터 적어도 하나를 선택받고, 상기 선택된 서브 콤포넌트 블록, 메소드 블록 및 속성 블록을 상기 제 1 영역의 제 2 서브 영역에 표시하고, 상기 제 1 영역의 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시하고, 상기 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받고, 상기 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 컴퓨터 판독가능 매체를 제공할 수 있다.
전술한 본 발명의 과제 해결 수단 중 어느 하나에 의하면, 선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시하고, 선택된 서브 콤포넌트 블록, 메소드 블록 및 속성 블록을 상기 제 1 영역의 제 2 서브 영역에 표시하고, 제 1 영역의 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시하는 방법, 장치 및 컴퓨터 판독가능 매체를 제공할 수 있다.
또한, 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받고, 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 방법, 장치 및 컴퓨터 판독가능 매체를 제공할 수 있다.
또한, 생성된 프로그래밍 코드가 다양한 환경에서의 시뮬레이션에 적용될 수 있는 방법, 장치 및 컴퓨터 판독가능 매체를 제공할 수 있다.
또한, 현대 프로그래밍에서의 객체와 컴포넌트 개념을 적용하여 학생들이 현대 프로그래밍에서 중요시되는 객체 지향 프로그래밍의 개념을 쉽게 이해하도록 할 수 있다. 또한, 각각의 블록에 대한 부분 코드를 확인하고 작성할 수 있게 함으로써 심화학습에 대한 욕구를 충족시킬 수 있다. 또한, 실전에서 쓰이는 흐름도에 기반한 프로그래밍 개발 방법을 제시하여, 논리적인 사고를 바탕으로 한 설계를 경험할 수 있다.
도 1은 본 발명의 일 실시예에 따른 객체 지향적 블록 기반 프로그래밍 개발 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 콤포넌트 블록, 서브 콤포넌트 블록, 메소드 블록 및 속성 블록의 예시를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 제 1 영역, 제 2 영역 및 제 3 영역의 예시를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 콤포넌트 블록이 선택되고 선택된 콤포넌트 블록이 제 1 영역의 제 1 서브 영역에 표시되는 것을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 서브 콤포넌트 블록, 메소드 블록 및 속성 블록이 선택되고 선택된 블록이 제 1 영역의 제 2 서브 영역에 표시되는 것을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 메소드 블록 및 속성 블록이 제 2 영역에 표시되는 것을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 메소드 블록 및 속성 블록과 논리적 판단 블록간의 연결 관계 및 논리적 판단 블록 간의 연결 관계가 제 2 영역에 표시되는 것을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 제 2 영역에 표시된 블록 각각에 해당하는 부분 코드 및 전체 코드의 예시를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 객체 지향적 블록 기반 프로그래밍 개발 방법을 나타낸 흐름도이다.
도 2는 본 발명의 일 실시예에 따른 콤포넌트 블록, 서브 콤포넌트 블록, 메소드 블록 및 속성 블록의 예시를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 제 1 영역, 제 2 영역 및 제 3 영역의 예시를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 콤포넌트 블록이 선택되고 선택된 콤포넌트 블록이 제 1 영역의 제 1 서브 영역에 표시되는 것을 설명하기 위한 도면이다.
도 5는 본 발명의 일 실시예에 따른 서브 콤포넌트 블록, 메소드 블록 및 속성 블록이 선택되고 선택된 블록이 제 1 영역의 제 2 서브 영역에 표시되는 것을 설명하기 위한 도면이다.
도 6은 본 발명의 일 실시예에 따른 메소드 블록 및 속성 블록이 제 2 영역에 표시되는 것을 설명하기 위한 도면이다.
도 7은 본 발명의 일 실시예에 따른 메소드 블록 및 속성 블록과 논리적 판단 블록간의 연결 관계 및 논리적 판단 블록 간의 연결 관계가 제 2 영역에 표시되는 것을 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 제 2 영역에 표시된 블록 각각에 해당하는 부분 코드 및 전체 코드의 예시를 도시한 도면이다.
도 9는 본 발명의 일 실시예에 따른 객체 지향적 블록 기반 프로그래밍 개발 방법을 나타낸 흐름도이다.
아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.
명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.
본 명세서에 있어서 '부(部)'란, 하드웨어에 의해 실현되는 유닛(unit), 소프트웨어에 의해 실현되는 유닛, 양방을 이용하여 실현되는 유닛을 포함한다. 또한, 1 개의 유닛이 2 개 이상의 하드웨어를 이용하여 실현되어도 되고, 2 개 이상의 유닛이 1 개의 하드웨어에 의해 실현되어도 된다.
본 명세서에 있어서 단말 또는 디바이스가 수행하는 것으로 기술된 동작이나 기능 중 일부는 해당 단말 또는 디바이스와 연결된 서버에서 대신 수행될 수도 있다. 이와 마찬가지로, 서버가 수행하는 것으로 기술된 동작이나 기능 중 일부도 해당 서버와 연결된 단말 또는 디바이스에서 수행될 수도 있다.
이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.
도 1은 본 발명의 일 실시예에 따른 객체 지향적 블록 기반 프로그래밍 개발 장치의 블록도이다. 도 1을 참조하면, 객체 지향적 블록 기반 프로그래밍 개발 장치(1)는 선택부(100), 표시부(110), 입력부(120) 및 코드 생성부(130)를 포함할 수 있다.
선택부(100)는 하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받을 수 있다. 또한, 선택부(100)는 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 하나 이상의 서브 콤포넌트 블록 각각과 연관되는 하나 이상의 메소드(methods) 블록 및 하나 이상의 속성(attributes) 블록으로부터 적어도 하나를 선택받을 수 있다.
표시부(110)는 선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시할 수 있다. 또한, 표시부(110)는 선택된 서브 콤포넌트 블록, 메소드 블록 및 속성 블록을 제 1 영역의 제 2 서브 영역에 표시하고, 제 1 영역의 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시할 수 있다.
표시부(110)는 입력부(120)가 제 2 영역에 표시된 메소드 블록 간의 논리적 판단을 입력받는 논리적 판단 블록을 선택받고, 메소드 블록 및 논리적 판단 블록 간의 연결 관계를 입력받은 경우, 논리적 판단 블록 및 연결 관계를 제 2 영역에 표시할 수 있다.
입력부(120)는 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받을 수 있다. 입력부(120)는 제 2 영역에 표시된 메소드 블록 간의 논리적 판단을 입력받는 논리적 판단 블록을 선택받고, 메소드 블록 및 논리적 판단 블록 간의 연결 관계를 입력받을 수 있다.
입력부(120)는 제 2 영역에 표시된 메소드 블록 및 논리적 판단 블록 중 연결하고자 하는 두 블록을 선택하되, 하나의 블록의 특정 포인트를 선택하여 다른 하나의 블록의 특정 포인트로 연결함으로써 연결 관계를 입력받을 수 있다.
코드 생성부(130)는 입력부(120)가 입력받은 논리적 흐름에 기초하여, 프로그래밍 코드를 생성할 수 있다. 코드 생성부(130)는 제 2 영역에 표시된 메소드 블록, 속성 블록 및 논리적 판단 블록 각각에 해당하는 부분 코드를 생성하고, 입력부(120)가 입력받은 연결 관계 및 블록 각각에 해당하는 부분 코드에 기초하여 전체 코드를 생성할 수 있다.
도 2는 본 발명의 일 실시예에 따른 콤포넌트 블록, 서브 콤포넌트 블록, 메소드 블록 및 속성 블록의 예시를 도시한 도면이다. 도 2를 참조하면, 객체 지향 프로그래밍의 클래스(Classes), 속성(Attributes) 및 함수(Methods)의 개념은 이해하기 쉬운 블록으로 표현될 수 있다. 이러한 클래스, 속성 및 함수의 개념은 심볼 생성기를 통해 심볼화된 기능 블록들로 추상화될 수 있다. 예를 들면, 클래스의 개념은 콤포넌트 블록(210) 및 서브 콤포넌트 블록(220)으로 표현될 수 있고, 변수 및 함수의 개념은 메소드(methods) 블록(230) 및 속성(attributes) 블록(240)으로 표현될 수 있다.
콤포넌트 블록은 서브 콤포넌트 블록의 상위 개념일 수 있다. 또한, 서브 콤포넌트 블록은 콤포넌트 블록에 포함될 수 있다. 예를 들면, 얼굴 모양의 콤포넌트 블록(250)은 눈 모양의 서브 콤포넌트 블록(260)의 상위 개념이며, 눈 모양의 서브 콤포넌트 블록(260)은 얼굴 모양의 콤포넌트 블록(250)에 포함될 수 있다.
메소드 블록 및 속성 블록은 서브 콤포넌트 블록과 연관될 수 있다. 또한, 속성 블록은 메소드 블록과 연관될 수도 있다. 예를 들면, 눈 모양의 서브 콤포넌트 블록(260)은 객체 탐색 블록(270)을 포함할 수 있다. 또한, 서브 콤포넌트 블록(220)은 객체 탐색 블록(270)이 상자 블록(280)으로 표현된 특정 객체를 지정할 수도 있다.
도 3은 본 발명의 일 실시예에 따른 제 1 영역, 제 2 영역 및 제 3 영역의 예시를 도시한 도면이다. 도 3을 참조하면, 제 1 영역(300)은 복수의 블록을 표시하는 자원부일 수 있다. 또한, 제 2 영역(310)은 복수의 블록 및 연결 관계를 표시하는 논리 구현부일 수 있다. 또한, 제 3 영역(320)은 복수의 블록을 관리하는 자원 관리자일 수 있다.
제 1 영역(300)에는 콤포넌트 블록, 서브 콤포넌트 블록, 속성 블록 및 메소드 블록이 표시될 수 있다. 예를 들면, 제 1 영역(300)의 제 1 서브 영역(330)에는 콤포넌트 블록이 표시될 수 있다. 또한, 제 1 영역의 제 1 서브 영역(330)에는 콤포넌트 블록, 콤포넌트 블록과 연관되는 메소드 블록 및 속성 블록이 표시될 수 있다.
또한, 제 1 영역(300)의 제 2 서브 영역(340)에는 서브 콤포넌트 블록, 속성 블록 및 메소드 블록이 표시될 수 있다. 제 1 영역(300)의 제 2 서브 영역(340)은 제 1 서브 영역(330)이 제 2 서브 영역(340)으로 분기되어 구체화되는 것과 마찬가지로 제 3 서브 영역 등으로 세분화될 수 있다.
콤포넌트 블록은 콤포넌트(Components) 또는 클래스를 표현할 수 있고, 서브 콤포넌트 블록은 클래스를 표현할 수 있다. 또한, 메소드 블록은 클래스에 포함된 멤버 함수를 표현할 수 있고, 속성 블록은 클래스 또는 함수에 포함된 멤버 변수를 표현할 수 있다.
제 2 영역(310)에는 제 1 영역(300)에 표시된 서브 콤포넌트 블록, 속성 블록 및 메소드 블록이 표시될 수 있다. 또한, 제 2 영역(310)에는 논리적 판단 블록 및 메소드 블록과 논리적 판단 블록 간의 연결 관계가 표시될 수 있다. 연결 관계는 제 2 영역에 표시된 메소드 블록 및 논리적 판단 블록 중 연결하고자 하는 두 블록을 선택하되, 하나의 블록의 특정 포인트를 선택하여 다른 하나의 블록의 특정 포인트로 연결함으로써 표시될 수 있다.
제 3 영역(320)은 하나 이상의 콤포넌트 블록, 하나 이상의 서브 콤포넌트 블록, 하나 이상의 메소드 블록 및 하나 이상의 속성 블록을 표시할 수 있다. 예를 들면, 제 3 영역(320)은 먼저 하나 이상의 콤포넌트 블록을 표시하고, 하나 이상의 콤포넌트 블록 중 어느 하나가 선택된 경우 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 하나 이상의 서브 콤포넌트 블록과 연관된 하나 이상의 메소드 블록 및 하나 이상의 속성 블록을 표시할 수 있다.
또한, 제 3 영역(320)은 먼저 하나 이상의 콤포넌트 블록을 표시하고, 하나 이상의 콤포넌트 블록 중 어느 하나가 선택된 경우 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 속성 블록 및 메소드 블록을 표시할 수 있다. 또한, 하나 이상의 서브 콤포넌트 블록 중 어느 하나가 선택된 경우 선택된 서브 콤포넌트 블록과 연관되는 하나 이상의 메소드 블록 및 하나 이상의 속성 블록을 표시할 수도 있다.
도 4는 본 발명의 일 실시예에 따른 콤포넌트 블록이 선택되고 선택된 콤포넌트 블록이 제 1 영역의 제 1 서브 영역에 표시되는 것을 설명하기 위한 도면이다. 도 4를 참조하면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 제 3 영역(400)에 표시된 하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받을 수 있다. 예를 들면, 제 3 영역(400)에 표시된 얼굴 모양의 콤포넌트 블록(410)은 제 3 영역(400)에서 선택된 후 제 1 영역의 제 1 서브 영역(420)으로 이동될 수 있다. 또한, 제 3 영역(400)에 표시된 얼굴 모양의 콤포넌트 블록(410)은 해당 블록의 속성 메뉴를 통해 자원 부 또는 제 1 영역의 제 1 서브 영역(420)으로 이동하도록 선택됨으로써, 제 1 영역의 제 1 서브 영역(420)으로 이동될 수 있다. 블록의 속성 메뉴는 블록 자체적으로 확장되는 방법, 별도의 팝업(Pop-up) 창을 이용하는 방법 등을 통해 생성될 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 선택된 하나 이상의 콤포넌트 블록을 제 1 영역의 제 1 서브 영역(420)에 표시할 수 있다.
제 3 영역(400)은 제 1 영역의 제 1 서브 영역(420)에 표시된 콤포넌트 블록이 선택됨으로써 콤포넌트 블록에 포함되는 속성 블록 및 메소드 블록을 표시할 수 있다. 도 3에 도시하지는 않았지만 제 3 영역(400)에 표시되는 콤포넌트 블록에 포함되는 속성 블록 및 메소드 블록이 선택된 경우 콤포넌트 블록이 표시된 제 1 영역의 제 1 서브 영역(420)에 선택된 속성 블록 및 메소드 블록이 함께 표시될 수도 있다.
또한, 제 3 영역(400)은 선택된 콤포넌트 블록(410)에 포함되는 하나 이상의 서브 콤포넌트 블록, 속성 블록 및 메소드 블록을 자동으로 표시할 수도 있다.
제 1 영역은 콤포넌트 블록이 선택됨으로써 제 1 서브 영역(420) 및 제 2 영역으로 나뉘어질 수 있다. 예를 들면, 콤포넌트 블록을 선택하기 전에는 제 1 영역은 하나의 영역일 수 있다. 콤포넌트 블록이 선택된 경우 제 1 영역은 제 1 서브 영역(420)과 제 2 서브 영역으로 나뉘어질 수 있고 제 1 영역에 하나의 행을 추가하여 표시할 수 있다. 선택된 콤포넌트 블록은 제 1 영역의 제 1 서브 영역(420)에 표시될 수 있다.
콤포넌트 블록을 선택함으로써 추가된 행, 열은 빈 공간일 수 있고, 빈 공간을 클릭하면 제 3 영역(400)은 새로운 콤포넌트 블록 및 서브 콤포넌트 블록을 표시할 수 있다.
도 5는 본 발명의 일 실시예에 따른 서브 콤포넌트 블록, 메소드 블록 및 속성 블록이 선택되고 선택된 블록이 제 1 영역의 제 2 서브 영역에 표시되는 것을 설명하기 위한 도면이다.
도 5를 참조하면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받고, 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 하나 이상의 서브 콤포넌트 블록 각각과 연관되는 하나 이상의 메소드 블록 및 하나 이상의 속성 블록으로부터 하나 이상 선택 받을 수 있다. 또한, 논리 구현부에서 사용할 메소드 블록과 속성 블록 없을 경우 선택 받지 않을 수도 있다.
도 5에 도시한 도면은 본 발명의 일 실시예에 해당하므로 이에 한정되지 않는다. 예를 들면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록만을 먼저 선택받을 수 있고, 서브 콤포넌트 블록이 선택된 경우 선택된 서브 콤포넌트 블록과 연관되는 하나 이상의 메소드 블록 및 하나 이상의 속성 블록으로부터 적어도 하나를 선택 받거나 생략할 수 있다.
제 3 영역(500)으로부터 얼굴 모양의 콤포넌트 블록(510)이 선택되어 제 1 영역의 제 1 서브 영역(520)에 얼굴 모양의 콤포넌트 블록(510)이 표시된 경우, 객체 지향적 블록 기반 프로그래밍 개발 장치는 제 3 영역(500)을 통해 얼굴 모양의 콤포넌트 블록(510)에 포함되는 하나 이상의 서브 콤포넌트 블록, 하나 이상의 서브 콤포넌트 블록 각각과 연관되는 하나 이상의 메소드 블록 및 하나 이상의 속성 블록 중 적어도 하나를 선택받을 수 있다.
예를 들면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 눈 모양의 서브 콤포넌트 블록(530), 상자 블록(540) 및 객체 탐색 블록(550)이 선택된 경우, 제 1 영역의 제 2 서브 영역(560)에 선택된 눈 모양의 서브 콤포넌트 블록(530), 상자 블록(540) 및 객체 탐색 블록(550)을 표시할 수 있다.
도 5에 도시하지는 않았지만, 서브 콤포넌트가 선택된 경우 제 1 영역의 제 2 서브 영역(560)은 하나의 열을 추가하여 제 2 서브 영역(560)과 제 3 서브 영역으로 나뉘어질 수 있다.
서브 콤포넌트 블록을 선택함으로써 추가된 열은 빈 공간일 수 있고, 빈 공간을 클릭함으로써 제 3 영역(500)은 새로운 서브 콤포넌트 블록을 표시할 수 있다. 서브 콤포넌트를 추가함에 따라 제 4 서브 영역, 제 5 서브 영역 등이 계속해서 분기될 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 콤포넌트 블록, 서브 콤포넌트 블록, 속성 블록 및 메소드 블록을 편집하는 인터페이스를 제공할 수 있다. 또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 콤포넌트 블록이 삭제된 경우, 콤포넌트 블록에 포함되는 속성 블록, 메소드 블록, 서브 콤포넌트 블록, 서브 콤포넌트 블록에 포함되는 속성 블록 및 메소드 블록을 함께 삭제할 수 있다. 또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 서브 콤포넌트 블록이 삭제된 경우, 서브 콤포넌트 블록에 포함되는 속성 블록 및 메소드 블록을 함께 삭제할 수 있다.
도 6은 본 발명의 일 실시예에 따른 메소드 블록 및 속성 블록이 제 2 영역에 표시되는 것을 설명하기 위한 도면이다. 도 6을 참조하면, 객체 지향적 블록 기반 프로그래밍 개발 장치 제 1 영역의 제 1 서브 영역(600)에 콤포넌트 블록을 표시할 수 있다. 또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 제 1 영역의 제 2 서브 영역(610)에 서브 콤포넌트 블록을 표시할 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 제 1 영역의 제 2 서브 영역(610)에 표시된 메소드 블록 및 속성 블록을 제 2 영역(620)에 표시할 수 있다.
제 2 영역(620)에 표시되는 메소드 블록 및 속성 블록은 메소드 블록 및 속성 블록이 제 3 영역으로부터 선택되는 동시에 제 2 영역에 표시될 수 있고, 메소드 블록 및 속성 블록이 제 3 영역으로부터 선택되고 특정 입력 신호를 수신한 후 제 2 영역에 표시될 수도 있다.
제 1 서브 영역(600)은 선택된 콤포넌트 블록 별로 하나 이상의 영역으로 나누어질 수 있다. 예를 들면, 제 1 서브 영역(600)은 얼굴 모양의 콤포넌트 블록(630) 및 다리 모양의 콤포넌트 블록(640)에 의해 두 개의 영역으로 나누어질 수 있다.
제 2 영역(620)은 선택된 서브 콤포넌트 블록 별로 하나 이상의 영역으로 나누어질 수 있다. 예를 들면, 제 2 영역(620)은 얼굴 모양의 콤포넌트 블록(630)에 포함되는 서브 콤포넌트로서, 눈 모양의 서브 콤포넌트 블록(650) 및 입 모양의 서브 콤포넌트 블록(660)에 의해 두 개의 영역으로 나누어질 수 있다.
제 1 영역에 표시되는 속성 블록 및 메소드 블록은 속성 블록 및 메소드 블록이 위치한 제 1 영역의 행에 해당하는 제 2 영역(620)에 표시될 수 있다.
제 2 영역(620)에 표시되는 메소드 블록 및 속성 블록 중 적어도 하나는 입력을 의미하는 기호(670) 또는 출력을 의미하는 기호(680)를 포함할 수 있다. 예를 들면, 입력을 의미하는 기호(670)는 블록의 왼쪽에 위치한 화살표 기호일 수 있고, 출력을 의미하는 기호(680)는 블록의 오른쪽에 위치한 화살표 기호일 수 있다.
도 7은 본 발명의 일 실시예에 따른 메소드 블록 및 속성 블록과 논리적 판단 블록간의 연결 관계 및 논리적 판단 블록 간의 연결 관계가 제 2 영역에 표시되는 것을 설명하기 위한 도면이다. 도 7을 참조하면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받을 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 제 2 영역에 표시된 메소드 블록 및 속성 블록 간의 논리적 판단을 입력받는 논리적 판단 블록(700)을 표시할 수 있다. 논리적 판단 블록(700)은 제어 흐름, 속성, 수식, 값, 이벤트 중 적어도 하나를 나타내는 것일 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 논리적 흐름의 시작과 끝을 나타내는 이벤트 블록을 선택하고 이벤트 블록을 제 2 영역에 표시할 수 있다. 이벤트 블록이 표시되는 영역은 제 2 영역의 보조 영역일 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 논리적 판단 블록이 논리적 판단에 이용할 형식 블록을 선택받을 수 있다. 또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 형식 블록을 상기 제 2 영역에 표시할 수 있다.
예를 들면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 함수 블록으로서 객체 탐색 블록(710)을 포함하는 논리적 판단 블록(700)에 의해 객체 탐색 블록(710)이 상자 블록으로 표현된 특정 객체(720)를 발견하였는지 판단할 수 있다.
*또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 종료 메시지가 포함된 논리적 판단 블록(730)에 의해 프로그램이 종료될 것인지 판단할 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 메소드 블록 및 논리적 판단 블록 간의 연결 관계를 입력받을 수 있다. 또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 제 2 영역에 표시된 속성 블록, 메소드 블록 및 논리적 판단 블록 중 적어도 하나 이상의 블록의 출력 포트에서 적어도 하나 이상의 블록을 제외한 어느 하나의 블록의 입력 포트로 연결할 수 있다. 또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 입력 포트로 연결된 어느 블록의 입력 포트에 연결시킬 형식 블록을 선택받고, 선택받은 형식 블록을 상기 블록의 입력 포트에 연결시킬 수 있다.
예를 들면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 객체 탐색 블록(710)이 객체 탐색 블록(710)을 포함하는 논리적 판단 블록(700)과 연결되도록 연결 관계를 입력받을 수 있다.
연결 관계는 제 2 영역에 표시된 메소드 블록 및 논리적 판단 블록 중 연결하고자 하는 두 블록을 선택하되, 하나의 블록의 특정 포인트를 선택하여 다른 하나의 블록의 특정 포인트로 연결함으로써 입력될 수 있다.
도 8은 본 발명의 일 실시예에 따른 제 2 영역에 표시된 블록 각각에 해당하는 부분 코드 및 전체 코드의 예시를 도시한 도면이다. 도 8을 참조하면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 입력받은 논리적 흐름에 기초하여, 프로그래밍 코드를 생성할 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 제 2 영역에 표시된 메소드 블록, 속성 블록 및 논리적 판단 블록 각각에 해당하는 부분 코드를 생성할 수 있다. 예를 들면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 메소드 블록(800)에 기초하여 사물을 발견한 경우 발견한 사물을 말하도록 부분 코드(810)를 생성할 수 있다. 또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 제 2 영역에 표시된 연결 관계 및 복수의 부분 코드에 기초하여, 전체 코드(820)를 생성할 수 있다.
또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 생성된 전체 코드(820)에 기초하여, 프로그래밍 결과와 시뮬레이션이 융합되도록 할 수 있다.
객체 지향적 블록 기반 프로그래밍 개발 장치는 시뮬레이션 결과를 시뮬레이션에 적용 가능하도록 구체화된 오브젝트로 가시화시킬 수 있다. 또한, 객체 지향적 블록 기반 프로그래밍 개발 장치는 프로그래밍 결과에 기초하여 구체화된 오브젝트가 다양한 환경에서 시뮬레이션으로 구체화되어 실행되도록 할 수 있다.
예를 들면, 객체 지향적 블록 기반 프로그래밍 개발 장치는 구체화된 오브젝트가 문제 해결, 스포츠, 미션 수행 등의 다양한 환경의 시뮬레이션을 수행하도록 할 수 있다.
예를 들면, 도 8의 전체 코드(820)에 의할 때, 객체 지향적 블록 기반 프로그래밍 개발 장치는 로봇이 사물을 발견한 경우 발견한 사물을 말하고, 전방으로 이동하다가 막혀 있음이 감지되면 정지해서 다른 길을 찾아가도록 할 수 있다.
도 9는 본 발명의 일 실시예에 따른 객체 지향적 블록 기반 프로그래밍 개발 방법을 나타낸 흐름도이다. 도 9에 도시된 일 실시예에 따른 객체 지향적 블록 기반 프로그래밍 개발 방법은 도 1에 도시된 객체 지향적 블록 기반 프로그래밍 개발 장치에서 시계열적으로 처리되는 단계들을 포함한다. 따라서, 이하 생략된 내용이라고 하더라도 도 9에 도시된 일 실시예에 따라 수행되는 객체 지향적 블록 기반 프로그래밍 개발 방법에도 적용된다.
도 9를 참조하면, 단계 S900에서 객체 지향적 블록 기반 프로그래밍 개발 장치는 하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택하는 신호를 수신할 수 있다.
단계 S910에서 객체 지향적 블록 기반 프로그래밍 개발 장치는 선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시할 수 있다.
단계 S920에서 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록, 하나 이상의 서브 콤포넌트 블록 각각과 연관되는 하나 이상의 메소드 블록 및 하나 이상의 속성 블록으로부터 적어도 하나를 선택하는 신호를 수신할 수 있다.
단계 S930에서 선택된 서브 콤포넌트 블록, 메소드 블록 및 속성 블록을 제 1 영역의 제 2 서브 영역에 표시할 수 있다.
단계 S940에서 제 1 영역의 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시할 수 있다.
단계 S950에서 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력하는 신호를 수신할 수 있다.
단계 S960에서 논리적 흐름에 기초하여, 프로그래밍 코드를 생성할 수 있다.
도 9를 통해 설명된 객체 지향적 블록 기반 프로그래밍 개발 방법은 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체 및 통신 매체를 모두 포함할 수 있다. 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다. 통신 매체는 전형적으로 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈, 또는 반송파와 같은 변조된 데이터 신호의 기타 데이터, 또는 기타 전송 메커니즘을 포함하며, 임의의 정보 전달 매체를 포함한다.
전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.
본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.
1: 객체 지향적 블록 기반 프로그래밍 개발 장치
210: 콤포넌트 블록
220: 서브 콤포넌트 블록
230: 속성 블록
240: 메소드 블록
300: 제 1 영역
310: 제 2 영역
320: 제 3 영역
330: 제 1 영역의 제 1 서브 영역
340: 제 1 영역의 제 2 서브 영역
210: 콤포넌트 블록
220: 서브 콤포넌트 블록
230: 속성 블록
240: 메소드 블록
300: 제 1 영역
310: 제 2 영역
320: 제 3 영역
330: 제 1 영역의 제 1 서브 영역
340: 제 1 영역의 제 2 서브 영역
Claims (14)
- 객체 지향적 블록 기반 프로그래밍 개발 방법에 있어서,
하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받는 단계;
상기 적어도 하나의 콤포넌트 블록이 선택된 경우, 제 1 영역을 제 1 서브 영역 및 제 2 서브 영역으로 분할하는 단계;
상기 선택된 콤포넌트 블록을 상기 제 1 영역의 상기 제 1 서브 영역에 표시하는 단계;
상기 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록을 선택받고, 상기 선택된 하나 이상의 서브 콤포넌트 블록 각각과 연관되고, 클래스에 포함된 멤버 함수를 표현하는 하나 이상의 메소드(methods) 블록 중 어느 하나 및 상기 선택된 하나 이상의 서브 콤포넌트 블록 각각과 연관되고, 클래스 또는 멤버 함수에 포함된 멤버 변수를 표현하는 하나 이상의 속성(attributes) 블록 중 어느 하나를 선택받는 단계;
상기 하나 이상의 서브 콤포넌트 블록이 선택된 경우, 상기 제 2 서브 영역이 나뉘어짐으로써, 제 3 서브 영역을 추가하는 단계;
상기 제 1 영역의 상기 제 2 서브 영역에, 상기 선택된 서브 콤포넌트 블록, 상기 선택된 메소드 블록 및 상기 선택된 속성 블록을 표시하는 단계;
상기 제 1 영역의 상기 제 2 서브 영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시하는 단계;
상기 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받는 단계; 및
상기 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 단계
를 포함하고,
상기 논리적 흐름을 입력받는 단계는,
상기 제 2 영역에 표시된 메소드 블록 및 속성 블록 중 적어도 하나에 대한 제어 흐름, 속성, 수식, 값, 이벤트 중 적어도 하나를 나타내는 논리적 판단 블록을 선택받는 단계;
상기 선택된 논리적 판단 블록을 상기 제 2 영역에 표시하는 단계; 및
상기 제 2 영역에 표시된 상기 메소드 블록 및 속성 블록 중 적어도 하나와 상기 논리적 판단 블록 간의 연결 관계를 입력받는 단계
를 포함하고,
상기 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 단계는,
상기 제 2 영역에 표시된 상기 메소드 블록, 속성 블록 및 상기 논리적 판단 블록 각각에 해당하는 부분 코드를 생성하는 단계; 및
상기 연결 관계 및 상기 부분 코드에 기초하여, 전체 코드를 생성하는 단계를 포함하는, 프로그래밍 개발 방법. - 제 1 항에 있어서,
상기 하나 이상의 콤포넌트 블록, 상기 하나 이상의 서브 콤포넌트 블록, 상기 하나 이상의 메소드 블록 및 상기 하나 이상의 속성 블록은 제 3 영역에 표시되는 것인, 프로그래밍 개발 방법. - 제 1 항에 있어서,
상기 제 1 서브 영역은 상기 선택된 콤포넌트 블록 별로 하나 이상의 영역으로 나누어지는 것인, 프로그래밍 개발 방법. - 제 1 항에 있어서,
상기 제 2 서브 영역은 상기 선택된 서브 콤포넌트 블록 별로 하나 이상의 영역으로 나누어지는 것인, 프로그래밍 개발 방법. - 삭제
- 삭제
- 제 1 항에 있어서,
상기 제 2 영역에 표시된 상기 메소드 블록 및 속성 블록 중 적어도 하나와 상기 논리적 판단 블록은 입력을 의미하는 기호 또는 출력을 의미하는 기호를 포함하는 것인, 프로그래밍 개발 방법. - 제 1 항에 있어서,
상기 제 2 영역은 상기 선택된 콤포넌트 블록 및 서브 콤포넌트 블록 별로 하나 이상의 영역으로 나누어지는 것인, 프로그래밍 개발 방법. - 객체 지향적 블록 기반 프로그래밍 개발 장치에 있어서,
하나 이상의 콤포넌트 블록으로부터 적어도 하나를 선택받고, 상기 선택된 콤포넌트 블록에 포함되는 하나 이상의 서브 콤포넌트 블록을 선택받고, 상기 선택된 하나 이상의 서브 콤포넌트 블록 각각과 연관되고, 클래스에 포함된 멤버 함수를 표현하는 하나 이상의 메소드(methods) 블록 중 어느 하나 및 상기 선택된 하나 이상의 서브 콤포넌트 블록 각각과 연관되고, 클래스 또는 멤버 함수에 포함된 멤버 변수를 표현하는 하나 이상의 속성(attributes) 블록 중 어느 하나를 선택받는 블록 선택부;
상기 선택된 콤포넌트 블록을 제 1 영역의 제 1 서브 영역에 표시하고, 상기 제 1 영역의 제 2 서브 영역에, 상기 선택된 서브 콤포넌트 블록, 상기 선택된 메소드 블록 및 상기 선택된 속성 블록을 표시하고, 상기 제 1 영역의 제 2 서브영역에 표시된 메소드 블록 및 속성 블록을 제 2 영역에 표시하는 표시부;
상기 제 2 영역에 표시된 메소드 블록 및 속성 블록에 대한 논리적 흐름을 입력받는 입력부; 및
상기 논리적 흐름에 기초하여, 프로그래밍 코드를 생성하는 코드 생성부
를 포함하고,
상기 표시부는,
상기 적어도 하나의 콤포넌트 블록이 선택된 경우, 상기 제 1 영역을 상기 제 1 서브 영역 및 상기 제 2 서브 영역으로 분할하고,
상기 하나 이상의 서브 콤포넌트 블록이 선택된 경우, 상기 제 2 서브 영역이 나뉘어짐으로써, 제 3 서브 영역을 추가하고,
상기 입력부는,
상기 제 2 영역에 표시된 메소드 블록 및 속성 블록 중 적어도 하나에 대한 제어 흐름, 속성, 수식, 값, 이벤트 중 적어도 하나를 나타내는 논리적 판단 블록을 선택받고,
상기 선택된 논리적 판단 블록을 상기 제 2 영역에 표시하고,
상기 제 2 영역에 표시된 상기 메소드 블록 및 속성 블록 중 적어도 하나와 상기 논리적 판단 블록 간의 연결 관계를 입력받고,
상기 코드 생성부는,
상기 제 2 영역에 표시된 상기 메소드 블록, 속성 블록 및 상기 논리적 판단 블록 각각에 해당하는 부분 코드를 생성하고,
상기 연결 관계 및 상기 부분 코드에 기초하여, 전체 코드를 생성하는, 프로그래밍 개발 장치. - 제 9 항에 있어서,
상기 제 1 서브 영역은 상기 선택된 콤포넌트 블록 별로 하나 이상의 영역으로 나누어지는 것인, 프로그래밍 개발 장치. - 제 9 항에 있어서,
상기 제 2 서브 영역은 상기 선택된 서브 콤포넌트 블록 별로 하나 이상의 영역으로 나누어지는 것인, 프로그래밍 개발 장치. - 삭제
- 삭제
- 제 9 항에 있어서,
상기 제 2 영역은 상기 선택된 콤포넌트 블록 및 서브 콤포넌트 블록 별로 하나 이상의 영역으로 나누어지는 것인, 프로그래밍 개발 장치.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020140104865 | 2014-08-13 | ||
KR20140104865 | 2014-08-13 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020140170665 Division | 2014-12-02 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160020388A KR20160020388A (ko) | 2016-02-23 |
KR101912931B1 true KR101912931B1 (ko) | 2018-10-29 |
Family
ID=55449265
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020150175317A KR101912931B1 (ko) | 2014-08-13 | 2015-12-09 | 객체 지향적 블록 기반 프로그래밍을 위한 소프트웨어 개발 방법, 장치 및 컴퓨터 판독가능 매체 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR101912931B1 (ko) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
PL417869A1 (pl) * | 2016-07-06 | 2018-01-15 | Michał Dziedziniewicz | Urządzenie do generowania programów komputerowych i metoda generowania programów komputerowych |
KR101843831B1 (ko) * | 2017-02-10 | 2018-03-30 | 주식회사 씨앤알테크 | 쪼물락 코딩 블록 |
KR101966597B1 (ko) * | 2018-09-27 | 2019-08-13 | 정은영 | 놀이형 코딩교육 방법 |
-
2015
- 2015-12-09 KR KR1020150175317A patent/KR101912931B1/ko active IP Right Grant
Also Published As
Publication number | Publication date |
---|---|
KR20160020388A (ko) | 2016-02-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108958736B (zh) | 页面生成方法、装置、电子设备及计算机可读介质 | |
CN108228287B (zh) | 基于qt的用户界面控件的生成方法及装置 | |
US9734556B2 (en) | Generating a tree map | |
US20170242780A1 (en) | Graphical Sequence Builder | |
US10607391B2 (en) | Automated virtual artifact generation through natural language processing | |
KR101912931B1 (ko) | 객체 지향적 블록 기반 프로그래밍을 위한 소프트웨어 개발 방법, 장치 및 컴퓨터 판독가능 매체 | |
US20180189033A1 (en) | Graphical software meta-development tool | |
CN104407779A (zh) | 图形界面的排列显示方法及装置 | |
CN114416069A (zh) | 应用开发平台、微程序生成方法、设备及存储介质 | |
US9886168B2 (en) | Method and system for scenario-driven standard-compliant user interface design and development for effort estimation | |
US8140581B2 (en) | Configurable view on data models | |
CN114416068A (zh) | 应用开发平台、微程序生成方法、设备及存储介质 | |
CN114168853A (zh) | 一种数据可视化展示方法、装置、介质及电子设备 | |
CN106528115A (zh) | 界面的可视化开发方法及装置 | |
Sottet et al. | Model transformation configuration and variability management for user interface design | |
CN108279962B (zh) | 一种创建可视化数据显示界面的方法及装置 | |
CN112748917B (zh) | 图表显示方法及装置 | |
CN114443022A (zh) | 生成页面搭建区块的方法及电子设备 | |
Jakšić et al. | Evaluating the usability of a visual feature modeling notation | |
US20150302640A1 (en) | Functional Visualization in System-level Multi-Domain Simulators | |
CN111026395B (zh) | 一种基于积木编程的多页面交互方法、装置、终端及存储介质 | |
CN112579082A (zh) | 交互状态数据的建立方法、装置、存储介质及电子设备 | |
Fadhlillah et al. | Generating adaptable user interface in SPLE: using delta-oriented programming and interaction flow modeling language | |
KR101533760B1 (ko) | 퀴즈생성방법 및 그 시스템 | |
CN115640044B (zh) | 基于Unity的三维软件开发方法、装置、设备及介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A107 | Divisional application of patent | ||
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E90F | Notification of reason for final refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |