[go: up one dir, main page]

KR101636455B1 - Apparatus and method for development of software using data oriented programming model - Google Patents

Apparatus and method for development of software using data oriented programming model Download PDF

Info

Publication number
KR101636455B1
KR101636455B1 KR1020150056198A KR20150056198A KR101636455B1 KR 101636455 B1 KR101636455 B1 KR 101636455B1 KR 1020150056198 A KR1020150056198 A KR 1020150056198A KR 20150056198 A KR20150056198 A KR 20150056198A KR 101636455 B1 KR101636455 B1 KR 101636455B1
Authority
KR
South Korea
Prior art keywords
identifier
data object
data
list
execution
Prior art date
Legal status (The legal status 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 status listed.)
Active
Application number
KR1020150056198A
Other languages
Korean (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 KR1020150056198A priority Critical patent/KR101636455B1/en
Application granted granted Critical
Publication of KR101636455B1 publication Critical patent/KR101636455B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • G06F8/315Object-oriented languages
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F9/4428

Landscapes

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

Abstract

본 발명은 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치 및 방법에 관한 것으로, 사용자의 입력에 응답하여 데이터 객체를 생성하는 데이터 객체 생성부, 상기 데이터 객체의 이동, 조합 및 소멸 중 적어도 하나를 수행하는 데이터 객체 관리부, 상기 데이터 객체에 대한 수행 정보를 생성 및 관리하는 수행 코드 관리부, 사용자로부터 상기 데이터 객체의 생성, 이동, 조합, 소멸 및 수행 코드의 편집 중 적어도 하나와 관련된 정보를 입력받고 사용자에게 상기 데이터 코드 및 상기 데이터 코드, 수행 코드 및 수행 코드의 실행 결과 중 적어도 하나를 출력하는 입출력부 및 상기 데이터 코드 및 수행 코드를 저장하는 저장부 및 상기 수행 코드를 실행하는 실행부를 포함하며, 소프트웨어에 포함되는 데이터 인스턴스 각각에 대하여 데이터 객체를 독립적으로 생성, 소멸, 이동, 조합 및 편집이 가능한 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어를 개발함으로써, 실제 세계의 사물의 행동을 용이하게 모델링할 수 있고, 각 데이터 인스턴스를 개별적으로 조작할 수 있으므로 클래스의 상속 또는 변형상속이 불필요할 뿐더러 필요에 따라 객체의 개별적 변형과 일괄적 변형을 선택할 수 있으며, 각 데이터 인스턴스별로 필요에 따라 수행 코드를 변형할 수 있어 보다 병렬 처리가 용이하고 실제 세계와 직관적으로 유사한 소프트웨어 모델링이 가능하며 소프트웨어 개발을 용이하게 할 수 있다.The present invention relates to a software development apparatus and method using a data-based programming model, comprising: a data object generation unit for generating a data object in response to a user's input; data for performing at least one of movement, An object management unit, an execution code management unit for generating and managing execution information for the data object, and a control unit for receiving information related to at least one of creation, movement, combination, An input / output unit for outputting at least one of a code and an execution result of the data code, the execution code and the execution code, a storage unit for storing the data code and the execution code, and an execution unit for executing the execution code, For each instance of data, By developing software that uses a data-driven programming model that allows objects to be created, destroyed, moved, combined, and edited independently, the behavior of real-world objects can be easily modeled and each data instance can be manipulated individually Inheritance of class or inheritance of transformation is unnecessary, and it is possible to select individual transformation and batch transformation of object as needed. Modification of execution code as required for each data instance makes parallel processing easier, Can be used for similar software modeling and software development can be facilitated.

Description

데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치 및 방법{APPARATUS AND METHOD FOR DEVELOPMENT OF SOFTWARE USING DATA ORIENTED PROGRAMMING MODEL} [0001] APPARATUS AND METHOD FOR DEVELOPMENT OF SOFTWARE USING DATA ORIENTED PROGRAMMING MODEL [0002]

본 발명은 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치 및 방법에 관한 것으로, 보다 상세하게는 소프트웨어에 포함되는 데이터 인스턴스 각각에 대하여 독립적으로 생성, 소멸, 이동, 조합 및 편집이 가능한 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치 및 방법에 관한 것이다.
The present invention relates to a software development apparatus and method using a data-based programming model, and more particularly, to a software development apparatus and method using a data-based programming model that can independently generate, And a software development apparatus and method.

현재까지 소프트웨어 개발을 위한 프로그래밍 방법론의 패러다임으로는 명령형 프로그래밍(Imperative Programming), 함수형 프로그래밍(Functional Programming) 및 객체 지향 프로그래밍(Object Oriented Programming) 등이 대두되고 있다. 이러한 프로그래밍 방법론들은 모두 컴퓨터에 의한 프로그램의 실행(Execution)을 나타내는 동작 의미론(Operational Semantics)을 직접적으로 프로그램이 규정한다는 점에서 공통되어 있으며, 동작 의미론은 궁극적으로 프로그램에 의하여 컴퓨터가 주어지는 데이터에 대하여 동작을 수행하는 프로세스(Process)를 규정하므로, 상술한 프로그램 방법론들은 프로세스에 의하여 데이터를 처리하는 방법을 프로그램이 기술한다는 점에서 공통되어 있다.Imperative Programming, Functional Programming, and Object Oriented Programming are emerging paradigms for programming methodology for software development. All of these programming methodologies are common in that programs directly define operational semantics that represent the execution of programs by a computer, and the semantics of operations are ultimately determined by the program, The above program methodologies are common in that the program describes how to process data by a process.

그러나 실제 세계에서 사물의 행동을 관찰하면, 각각의 사물은 서로 독립적으로 행동하고, 따라서 각 사물에 대한 정보에 대응하는 각각의 데이터 객체 또는 데이터 인스턴스들이 서로 독립적으로 동작하며, 이러한 데이터 객체의 조합과 운동에 의하여 정보 처리가 실현된다. 즉, 실제 세계에서 사물의 행동에 의하여 실현되는 정보 처리는 현재의 프로그래밍 방법론에 대응하는 프로세스에 의한 계산의 입력 및 결과로서의 데이터보다는 서로 독립적으로 동작하는 데이터 인스턴스들의 생성, 결합 및 이동에 의하여 더 자연스럽게 모델링될 수 있다.However, when observing the behavior of objects in the real world, each object acts independently of each other, so that each data object or data instance corresponding to information about each object operates independently of each other, Information processing is realized by motion. That is, the information processing realized by the behavior of objects in the real world is more natural by the generation, combination and movement of data instances operating independently of each other, rather than input of computation by the process corresponding to the current programming methodology and resultant data Can be modeled.

이에 따라, 소프트웨어의 개발을 상술한 바와 같이 서로 독립적으로 동작하는 데이터 인스턴스에 기반하여 수행한다면, 실제 세계의 사물의 행동을 용이하게 모델링할 수 있고, 각 데이터 인스턴스를 개별적으로 조작할 수 있으므로 클래스의 상속 또는 변형상속이 불필요할 뿐더러 필요에 따라 객체의 개별적 변형과 일괄적 변형을 선택할 수 있으며, 각 데이터 인스턴스별로 필요에 따라 수행 코드를 변형할 수 있어 보다 병렬 처리가 용이하고 실제 세계와 직관적으로 유사한 소프트웨어 모델링이 가능하며 소프트웨어 개발을 용이하게 할 수 있으리라 기대된다.
Accordingly, if software development is performed based on data instances that operate independently of each other as described above, the behavior of objects in the real world can be easily modeled, and each data instance can be manipulated individually, Inheritance or transformation inheritance is unnecessary, and individual transformations and batch transformations of objects can be selected according to need, and execution codes can be modified as needed for each data instance, making parallel processing easier and intuitively similar to the real world It is expected that software modeling will be possible and software development will be easy.

한국등록특허 제0150260호(등록일: 1998.06.12., 발명의 명칭 : 객체지향 기능 규격 및 기능 설명서 개발환경 통합시스템을 위한 메타모델 시스템 및 그 운용 방법, 청구범위 제1항)가 있다.Korean Registered Patent No. 0150260 (filed on Jun. 12, 1998, entitled META MODEL SYSTEM AND OPERATION METHOD FOR OBJECT-ORIENTED FUNCTIONALITY AND FUNCTIONAL MANAGEMENT DEVELOPMENT ENVIRONMENT SYSTEM, Claims Clause 1).

본 발명은, 소프트웨어에 포함되는 데이터 인스턴스 각각에 대하여 독립적으로 생성, 소멸, 이동, 조합 및 편집이 가능한 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치 및 방법을 제공하는 데 그 목적이 있다.
An object of the present invention is to provide a software development apparatus and method using a data-based programming model capable of independently generating, destroying, moving, combining, and editing each data instance included in software.

본 발명의 일 측면에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치는 사용자의 입력에 응답하여 데이터 객체를 생성하는 데이터 객체 생성부, 상기 데이터 객체의 이동, 조합 및 소멸 중 적어도 하나를 수행하는 데이터 객체 관리부, 상기 데이터 객체에 대한 수행 정보를 생성 및 관리하는 수행 코드 관리부, 사용자로부터 상기 데이터 객체의 생성, 이동, 조합, 소멸 및 수행 코드의 편집 중 적어도 하나와 관련된 정보를 입력받고 사용자에게 상기 데이터 코드 및 상기 데이터 코드, 수행 코드 및 수행 코드의 실행 결과 중 적어도 하나를 출력하는 입출력부 및 상기 데이터 코드 및 수행 코드를 저장하는 저장부 및 상기 수행 코드를 실행하는 실행부를 포함하되, 상기 데이터 객체는 제1 이름 정보, 제2 이름 정보 및 제3 이름 정보를 포함하여 이루어지고, 상기 각 이름 정보는, 객체 식별자, 데이터 타입, 수행 코드 식별자, 수행 코드, 기억 장소, 변동 식별자, 관계 객체 식별자, 반환값, 메시지 및 null 중 하나이며, 상기 객체 식별자는 상기 각 이름 정보가 포함되어 있는 데이터 객체를 지칭하는 식별자이고, 상기 관계 객체 식별자는 상기 객체 식별자가 지칭하는 데이터 객체가 아닌 데이터 객체를 지칭하는 식별자이며, 상기 변동 식별자는 현재 식별자와 이전 식별자의 쌍으로 이루어지는 것을 특징으로 한다.A software development apparatus using a data-based programming model according to an aspect of the present invention includes a data object generation unit for generating a data object in response to a user's input, a data object for performing at least one of moving, An execution code management unit for generating and managing execution information on the data object, information on at least one of creation, movement, combination, destruction and execution of the data object from the user is input from the user, An input / output unit for outputting at least one of the data code, the execution code and the execution result of the execution code, a storage unit for storing the data code and the execution code, and an execution unit for executing the execution code, 1 name information, second name information, and third name information Wherein each name information is one of an object identifier, a data type, an execution code identifier, an execution code, a storage location, a variation identifier, a relational object identifier, a return value, a message and null, Wherein the object identifier is an identifier indicating a data object that is not a data object referred to by the object identifier, and the variable identifier is a pair of a current identifier and a previous identifier .

바람직하게는, 상기 데이터 객체 관리부는 하나 이상의 데이터 객체가 연결된 리스트를, 상기 리스트 상의 각 제1 데이터 객체에 대하여, 제1 이름 정보가 상기 리스트에서 상기 제1 데이터 객체의 직전 데이터 객체의 객체 식별자이고, 제2 이름 정보가 상기 제1 데이터 객체의 객체 식별자이며, 제3 이름 정보가 상기 리스트에서 상기 제1 데이터 객체의 직후 데이터 객체의 객체 식별자인 데이터 객체를 생성함으로써 표현하되, 상기 제1 데이터 객체가 상기 리스트의 최초 데이터 객체인 경우 제1 이름 정보가 null이고, 상기 제1 데이터 객체가 상기 리스트의 최후 데이터 객체인 경우 제3 이름 정보가 null이다.Preferably, the data object management unit is operable to determine, for each first data object on the list, a list to which one or more data objects are linked, wherein the first name information is an object identifier of a data object immediately preceding the first data object The first data object is an object identifier of the first data object, the second name information is an object identifier of the first data object, and the third name information is an object identifier of a data object immediately after the first data object in the list, The first name information is null if the first data object is the first data object of the list and the third name information is null if the first data object is the last data object of the list.

바람직하게는, 상기 수행 코드 관리부는 제1 데이터 객체에 대한 수행 코드를, 상기 제1 데이터 객체로 시작되는 데이터 객체의 리스트와 변동 식별자의 쌍으로 표현되는 수행 정보를 생성하여 나타낸다.Preferably, the execution code management unit generates performance information representing a performance code for the first data object, the performance information being represented by a pair of a data object starting with the first data object and a variation identifier.

바람직하게는, 상기 수행 정보를 표현하는 쌍에 포함되는 데이터 객체의 리스트는 적어도 하나의 수행 코드 식별자를 포함한다.Advantageously, the list of data objects contained in the pair representing the performance information comprises at least one performance code identifier.

바람직하게는, 상기 수행 정보를 표현하는 쌍에 포함되는 데이터 객체의 리스트는 적어도 하나의 반환값을 포함한다.Advantageously, the list of data objects contained in the pair representing the performance information comprises at least one return value.

바람직하게는, 상기 수행 코드 관리부는, 제1 변동 식별자 및 제1 리스트의 쌍으로 이루어지는 수행 정보에 대하여, 상기 제1 변동 식별자의 현재 식별자를 이전 식별자로 하는 제2 변동 식별자와 상기 제1 리스트의 쌍으로 이루어지는 변형 수행 정보를 생성한다.Preferably, the execution code managing unit is configured to perform, for the performance information including the first variation identifier and the first list, a second variation identifier having the current identifier of the first variation identifier as a previous identifier, And generates deformation performance information consisting of a pair.

바람직하게는, 상기 데이터 객체 관리부는, 제1 리스트를 시작하는 제1 데이터 객체 및 제2 리스트를 시작하는 제2 데이터 객체에 대하여, 상기 제1 리스트와 쌍을 이루는 제1 변동 식별자의 현재 식별자를 이전 식별자로 하고 상기 제1 및 제2 데이터 객체의 객체 식별자를 조합하여 생성한 현재 식별자를 가지는 제3 변동 식별자 및, 제1 데이터 객체와 제2 데이터 객체로 이루어지는 제3 리스트의 쌍으로 이루어지는 제1 수행 정보 및 상기 제2 리스트와 쌍을 이루는 제2 변동 식별자의 현재 식별자를 이전 식별자로 하고 상기 제1 및 제2 데이터 객체의 객체 식별자를 조합하여 생성한 현재 식별자를 가지는 제4 변동 식별자 및, 상기 제3 리스트의 쌍으로 이루어지는 제2 수행 정보 중 적어도 하나를 생성한다.Advantageously, the data object management unit is operable to determine, for a first data object starting a first list and a second data object starting a second list, a current identifier of a first variation identifier paired with the first list A third variable identifier having a current identifier generated by combining the object identifiers of the first and second data objects with a previous identifier and a third variable identifier having a current identifier generated by combining the object identifiers of the first and second data objects, A fourth variation identifier having a current identifier generated by combining performance information and a current identifier of a second variation identifier paired with the second list as a previous identifier and an object identifier of the first and second data objects, And second performance information that is a pair of the third list.

바람직하게는, 상기 데이터 객체 관리부는, 상기 제1 리스트에서 상기 제1 데이터 객체의 직후 데이터 객체를 제3 데이터 객체로 대체한 제1 부분 리스트 뒤에 상기 제1 데이터 객체를 덧붙인 제4 리스트 및 상기 제2 리스트에서 상기 제2 데이터 객체의 직후 데이터 객체를 제4 데이터 객체로 대체한 제2 부분 리스트 뒤에 상기 제2 데이터 객체를 덧붙인 제5 리스트 중 적어도 하나를 생성하고, 상기 제3 변동 식별자와 상기 제4 리스트의 쌍으로 이루어지는 제3 수행 정보 및 상기 제4 변동 식별자와 상기 제5 리스트의 쌍으로 이루어지는 제5 수행 정보 중 적어도 하나를 생성한다.Preferably, the data object management unit includes a fourth list in which the first data object is added to the first list after a first partial list in which the data object immediately after the first data object is replaced with a third data object in the first list, 2 list, a fifth list in which the second data object is added after the second partial list in which the data object immediately after the second data object is replaced with the fourth data object, and the third variation identifier and the third variation identifier 4th list, and fifth performance information that is a pair of the fourth variation identifier and the fifth list.

본 발명의 다른 측면에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 방법은 데이터 객체 생성부가 사용자의 입력에 응답하여 데이터 객체를 생성하는 단계, 데이터 객체 관리부가 사용자의 입력에 응답하여 상기 데이터 객체의 이동, 조합 및 소멸 중 적어도 하나를 수행하는 단계, 수행 코드 관리부가 상기 데이터 객체에 대한 수행 정보에 포함되는 수행 코드를 편집하는 단계 및 사용자의 입력에 응답하여 실행부가 상기 수행 코드를 실행하는 단계를 포함하되, 상기 데이터 객체는 제1 이름 정보, 제2 이름 정보 및 제3 이름 정보를 포함하여 이루어지고, 상기 각 이름 정보는, 객체 식별자, 데이터 타입, 수행 코드 식별자, 수행 코드, 기억 장소, 변동 식별자, 관계 객체 식별자, 반환값, 메시지 및 null 중 하나이며, 상기 객체 식별자는 상기 각 이름 정보가 포함되어 있는 데이터 객체를 지칭하는 식별자이고, 상기 관계 객체 식별자는 상기 객체 식별자가 지칭하는 데이터 객체가 아닌 데이터 객체를 지칭하는 식별자이며, 상기 변동 식별자는 현재 식별자와 이전 식별자의 쌍으로 이루어진다.
According to another aspect of the present invention, there is provided a software development method using a data-based programming model, the method comprising: a data object generation unit generating a data object in response to a user's input; Combining and disposing of the data object; editing an execution code included in execution information for the data object by the execution code management unit; and executing the execution code by the execution unit in response to a user's input, Wherein the data object includes a first name information, a second name information, and a third name information, wherein each name information includes an object identifier, a data type, an execution code identifier, an execution code, a storage location, A relational object identifier, a return value, a message, and null, and the object identifier is Wherein the relational identifier is an identifier indicating a data object that is not a data object referred to by the object identifier, and the variable identifier is a pair of a current identifier and a previous identifier Lt; / RTI >

본 발명에 따르면, 소프트웨어에 포함되는 데이터 인스턴스 각각에 대하여 데이터 객체를 독립적으로 생성, 소멸, 이동, 조합 및 편집이 가능한 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어를 개발함으로써, 실제 세계의 사물의 행동을 용이하게 모델링할 수 있고, 각 데이터 인스턴스를 개별적으로 조작할 수 있으므로 클래스의 상속 또는 변형상속이 불필요할 뿐더러 필요에 따라 객체의 개별적 변형과 일괄적 변형을 선택할 수 있으며, 각 데이터 인스턴스별로 필요에 따라 수행 코드를 변형할 수 있어 보다 병렬 처리가 용이하고 실제 세계와 직관적으로 유사한 소프트웨어 모델링이 가능하며 소프트웨어 개발을 용이하게 할 수 있다.
According to the present invention, by developing software that uses a data-based programming model capable of independently creating, destroying, moving, combining, and editing data objects for each data instance included in software, You can model and manipulate each data instance individually, so you do not need inheritance or inheritance of classes, and you can choose individual transformations and batch transformations of objects as needed. It is possible to perform software modeling that is intuitively similar to the real world, and software development can be facilitated.

도 1은 본 발명의 일 실시예에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치의 블록도이다.
도 2는 본 발명의 일 실시예에 따른 데이터 객체 및 데이터 객체의 리스트의 예를 도시한 도면이다.
도 3은 본 발명의 일 실시예에 따른 수행 정보의 예를 도시한 도면이다.
도 4는 본 발명의 일 실시예에 따른 변형 수행 정보의 예를 도시한 도면이다.
도 5는 본 발명의 일 실시예에 따른 데이터 객체의 조합의 예를 도시한 도면이다.
도 6은 본 발명의 다른 실시예에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 방법의 동작을 도시한 순서도이다.
1 is a block diagram of a software development apparatus that utilizes a data-based programming model in accordance with one embodiment of the present invention.
2 is a diagram illustrating an example of a list of data objects and data objects according to an embodiment of the present invention.
3 is a diagram illustrating an example of performance information according to an embodiment of the present invention.
4 is a diagram illustrating an example of deformation performance information according to an embodiment of the present invention.
5 is a diagram illustrating an example of a combination of data objects according to an embodiment of the present invention.
FIG. 6 is a flowchart illustrating the operation of a software development method using a data-based programming model according to another embodiment of the present invention.

이하에서는 본 발명에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치 및 방법을 첨부된 도면들을 참조하여 상세하게 설명한다. 이러한 과정에서 도면에 도시된 선들의 두께나 구성요소의 크기 등은 설명의 명료성과 편의상 과장되게 도시되어 있을 수 있다. 또한, 후술되는 용어들은 본 발명에서의 기능을 고려하여 정의된 용어들로서 이는 사용자, 운용자의 의도 또는 관례에 따라 달라질 수 있다. 그러므로, 이러한 용어들에 대한 정의는 본 명세서 전반에 걸친 내용을 토대로 내려져야 할 것이다.Hereinafter, a software development apparatus and method using a data-based programming model according to the present invention will be described in detail with reference to the accompanying drawings. In this process, the thicknesses of the lines and the sizes of the components shown in the drawings may be exaggerated for clarity and convenience of explanation. In addition, the terms described below are defined in consideration of the functions of the present invention, which may vary depending on the intention or custom of the user, the operator. Therefore, definitions of these terms should be made based on the contents throughout this specification.

도 1은 본 발명의 일 실시예에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치의 블록도이다.1 is a block diagram of a software development apparatus that utilizes a data-based programming model in accordance with one embodiment of the present invention.

도 1에 도시된 바와 같이, 본 발명의 일 실시예에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치는, 데이터 객체 생성부(110), 데이터 객체 관리부(120), 수행 코드 관리부(130), 실행부(140), 저장부(200) 및 입출력부(300)를 포함하여 이루어질 수 있다.1, a software development apparatus using a data-based programming model according to an embodiment of the present invention includes a data object generation unit 110, a data object management unit 120, an execution code management unit 130, A storage unit 200, and an input / output unit 300, as shown in FIG.

데이터 객체 생성부(110)는 사용자의 입력에 응답하여 데이터 객체를 생성한다. 데이터 객체는 데이터의 구성을 규정하는 이름 정보와 데이터들의 관계를 규정하는 관계 정보의 측면에서 규정될 수 있다. 이 때, 각 이름 정보는, 객체 식별자, 데이터 타입, 수행 코드 식별자, 수행 코드, 기억 장소, 변동 식별자, 관계 객체 식별자, 반환값, 메시지 및 null 중 하나일 수 있다. 객체 식별자는 하나의 데이터 객체에 고유한 이름이다. 이 때, 다른 모든 이름과 다른 보존된 값(Reserved Value)으로 null을 준비하여, 데이터 객체의 초기화 및 데이터 객체의 리스트의 끝을 표현할 수 있다. 데이터 타입은 일반적인 프로그래밍 언어에서와 같은 데이터의 형태를 정의하는 정보이다. 예컨대 데이터 타입은 정수, 스트링, 실수, 정수나 실수의 경우 그 자리수에 대한 정보를 포함할 수 있다. 기억 장소는 데이터 객체에 대응되는 수행 코드가 사용하는 메모리이다. 이 때, 기억 장소는 구체적인 메모리 공간을 추상화하여 나타내는 기호로 표현될 수도 있으며, 메모리 어드레스에 대한 포인터일 수도 있다. 수행 코드 식별자는 데이터 객체가 수행하는 수행 코드를 가리키는 이름이며, 수행 코드가 실행하는 구체적인 명령을 내용으로 가지는 하위 데이터 객체와 연결하기 위하여 사용될 수 있다. 수행 코드는 데이터 객체가 수행하는 구체적인 명령어이다. 후술하듯이 수행 코드는 일반적인 명령형 프로그래밍 언어와 유사한 명령어 집합을 포함한다. 변동 식별자는 데이터 객체의 조합이 일어날 때, 또는 데이터 객체를 다른 의미로 사용할 경우 부여하는 고유한 이름이다. 관계 객체 식별자는 수행 코드를 관리할 때 수행 코드에 의하여 형성된 이름을 가리키는 이름이다. 반환값은 수행 코드에 의하여 산출되는 데이터 객체의 값을 지칭하는 이름이다. 메시지는 수행 코드를 관리하거나 실행하는 도중 발생하는 에러 메시지 또는 예외 상황 등을 지칭하는 이름이다.The data object generation unit 110 generates a data object in response to a user's input. A data object may be defined in terms of name information that defines the composition of the data and relationship information that defines the relationship of the data. At this time, each name information may be one of an object identifier, a data type, an execution code identifier, an execution code, a storage location, a variable identifier, a relational object identifier, a return value, a message, and null. An object identifier is a unique name for a data object. At this time, you can initialize the data object and represent the end of the list of data objects by preparing null for all other names and different reserved values (Reserved Value). Data types are information that defines the type of data, such as in a common programming language. For example, a data type may contain information about an integer, a string, a real number, and a digit for an integer or a real number. The memory location is the memory used by the execution code corresponding to the data object. At this time, the memory location may be represented by a symbol representing an abstract concrete memory space, or may be a pointer to a memory address. The execution code identifier is a name indicating the execution code executed by the data object, and can be used to connect with a lower data object having a specific instruction executed by the execution code as contents. Execution code is a concrete instruction executed by the data object. As will be described later, execution code includes a set of instructions similar to a general imperative programming language. Variable identifiers are unique names given when a combination of data objects occurs, or when a data object is used in a different sense. The relational object identifier is a name that indicates the name formed by the execution code when managing the execution code. The return value is a name that refers to the value of the data object produced by the execution code. A message is a name that refers to an error message or an exceptional situation that occurs during execution or execution of an execution code.

이 때, 데이터 객체 사이의 연결을 표시하기 위하여 데이터 객체는 제1 이름 정보, 제2 이름 정보 및 제3 이름 정보를 포함하여 이루어질 수 있으며, 제1 내지 제3 이름 정보는 각각 상술한 10가지 정보 중 하나일 수 있다. 즉, 데이터 객체 생성부가 생성하는 새로운 정보를 포함하는 데이터 객체는 (null, Name, null)의 형식을 가질 수 있으며, 제1 및 제3 이름 정보가 null 이고 제2 이름 정보는 null을 제외한 9가지 정보 중 하나일 수 있다.In this case, the data object may include first name information, second name information, and third name information in order to display a connection between data objects, and the first to third name information may include information on each of the above- ≪ / RTI > That is, the data object including the new information generated by the data object generating unit may have a format of (null, Name, null), and the first and third name information are null and the second name information includes nine Information.

여기에서 데이터 객체 관리부(120)는 하나 이상의 데이터 객체가 연결된 리스트를, 리스트 상의 각 제1 데이터 객체에 대하여, 제1 이름 정보가 리스트에서 제1 데이터 객체의 직전 데이터 객체의 객체 식별자이고, 제2 이름 정보가 제1 데이터 객체의 객체 식별자이며, 제3 이름 정보가 리스트에서 제1 데이터 객체의 직후 데이터 객체의 객체 식별자인 데이터 객체를 생성함으로써 표현할 수 있다. 이 때, 제1 데이터 객체가 상기 리스트의 최초 데이터 객체인 경우 제1 이름 정보가 null이고, 제1 데이터 객체가 상기 리스트의 최후 데이터 객체인 경우 제3 이름 정보가 null일 수 있다. 도 2는 본 발명의 일 실시예에 따른 데이터 객체 및 데이터 객체의 리스트의 예를 도시한 도면이다.Here, for each first data object on the list, the first object information is the object identifier of the immediately preceding data object in the list, and the second object information is the object identifier of the second data object in the list. The name information is the object identifier of the first data object and the third name information is the object identifier of the data object immediately after the first data object in the list. In this case, if the first data object is the first data object of the list, the first name information is null, and if the first data object is the last data object of the list, the third name information may be null. 2 is a diagram illustrating an example of a list of data objects and data objects according to an embodiment of the present invention.

즉, 도 2에 도시된 바와 같이 [A, B, C, D] 와 같은 리스트는 {(null, A, B) , (A, B, C) , (B, C, D), (C, D, null)} 과 같이 리스트에 포함된 4개의 데이터 객체에 대응하는 4 쌍의 이름 정보의 3터플(Tuple)로 표현될 수 있으며, 이러한 3터플의 집합은 4개의 데이터 객체의 집합일 수 있다. 이 때 이러한 리스트를 리스트의 최초 객체의 직전 데이터 객체 및 최후 객체의 직후 데이터 객체를 null 로 표현하여 (null - A - B - C - D - null)과 같이 표현할 수도 있다. 또한 동일한 이름을 가지는 데이터 객체를 공유하는 리스트를 여러 개 사용하여 일반적인 임의의 그래프를 표현할 수 있다. 도 2에 도시된 예는 하나의 데이터 객체에 연결되는 데이터 타입 및 수행 코드가 이러한 리스트를 통하여 어떻게 구성되는지 보여주는 예이다. 도 2 하단의 도면에서, '이름'은 객체 식별자를, '생김새'는 데이터 타입을, '부림값 골라내기'는 반환값을, '다룸말'은 수행 코드 식별자를, '긔걸'은 수행 코드를, '다룸값 골라내기'는 관계 객체 식별자를, '일말'은 객체 식별자 내부의 수행 코드가 사용하는 임시 기억 장소를, '뒷말'은 '다룸말'과 연결된 데이터 객체를 나타낼 수 있다..(A, B, C), (B, C, D), (C, D) D, null)}, and the set of three tuples may be a set of four data objects (e.g., a set of four data objects) . This list can be expressed as null (A - B - C - D - null) by representing the data object immediately before the first object in the list and the data object immediately after the last object in the list. You can also use any number of lists that share data objects with the same name to represent a typical arbitrary graph. The example shown in Fig. 2 is an example showing how data types and execution codes connected to one data object are configured through this list. In the drawing at the bottom of FIG. 2, 'name' indicates an object identifier, 'appearance' indicates a data type, 'borrow value selection' indicates a return value, 'comment' indicates an execution code identifier, , 'Relative value' indicates the relational object identifier, 'Illegally' indicates the temporary storage location used by the execution code inside the object identifier, and 'Behind' indicates the data object connected with 'Relay statement'.

이 때, 상술한 바와 같이 이름 정보의 3터플로 구성되는 데이터 객체는 다음과 같이 63가지의 유형 중 하나일 수 있다.
At this time, as described above, a data object composed of three tuples of name information can be one of 63 types as follows.

제1 이름 정보 제2 이름 정보 제3 이름 정보First name information Second name information Third name information

관계 객체 식별자 반환값 관계 객체 식별자Relational object identifier Return value Relational object identifier

수행 코드 식별자 수행 코드 반환값Execution code identifier Execution code Return value

수행 코드 반환값 관계 객체 식별자Execution code Return value Relation object identifier

null 객체 식별자 일말The null object identifier

반환값 수행 코드 반환값Return Value Execution Code Return Value

반환값 수행 코드 nullReturn Value

null 객체 식별자 객체 식별자null object identifier object identifier

null 수행 코드 식별자 nullnull implementation code identifier null

객체 식별자 수행 코드 식별자 수행 코드 식별자Object Identifier Execution Code Identifier Execution Code Identifier

수행 코드 식별자 수행 코드 식별자 nullAction code identifier Action code identifier null

null 변동 식별자 nullthe null variation identifier null

null 객체 식별자 nullthe null object identifier null

null 데이터 타입 nullnull data type null

객체 식별자 반환값 반환값Object identifier Return value Return value

데이터 타입 수행 코드 식별자 nullData type implementation code identifier null

수행 코드 식별자 수행 코드 관계 객체 식별자Execution code identifier Execution code Relation object identifier

수행 코드 관계 객체 식별자 관계 객체 식별자Execution code Relation object identifier Relation object identifier

관계 객체 식별자 관계 객체 식별자 관계 객체 식별자Relational Object Identifier Relational Object Identifier Relational Object Identifier

관계 객체 식별자 수행 코드 nullRelative object identifier Perform code null

관계 객체 식별자 수행 코드 관계 객체 식별자Relational Object Identifier Perform Code Relational Object Identifier

수행 코드 식별자 수행 코드 nullAction code identifier Action code null

수행 코드 식별자 수행 코드 식별자 수행 코드Execution Code Identifier Execution Code Identifier Execution Code

수행 코드 수행 코드 nullPerform code Execute code null

반환값 반환값 nullReturn ValueReturn Value

null 수행 코드 nullthe null performing code null

수행 코드 수행 코드 식별자 nullPerform code Execute code identifier null

수행 코드 수행 코드 식별자 수행 코드Execution Code Execution Code Identifier Execution Code

null 객체 식별자 뒷말The end of the null object identifier

null 뒷말 nullnull trailing null

null 일말 nullnull null

수행 코드 수행 코드 반환값Execution code Execution code Return value

관계 객체 식별자 수행 코드 반환값Relative object identifier Execution code Return value

수행 코드 반환값 반환값Action Code Return Value Return Value

수행 코드 반환값 수행 코드Execution code Return value Execution code

수행 코드 반환값 nullAction Code Return Value null

객체 식별자 일말 nullObject identifier null

반환값 수행 코드 수행 코드 식별자Return Value Execution code Execution code identifier

반환값 수행 코드 수행 코드Return Value Execution Code Execution Code

반환값 수행 코드 관계 객체 식별자Return Value Execution code Relation object identifier

객체 식별자 객체 식별자 객체 식별자Object Identifier Object Identifier Object Identifier

null 객체 식별자 수행 코드 식별자null object identifier execution code identifier

객체 식별자 객체 식별자 nullObject identifier Object identifier null

객체 식별자 수행 코드 식별자 nullObject identifier Perform code identifier null

수행 코드 식별자 수행 코드 식별자 수행 코드 식별자Execution code identifier Execution code identifier Execution code identifier

null 객체 식별자 반환값null object identifier Return Value

객체 식별자 반환값 nullObject identifier Returns null

객체 식별자 수행 코드 식별자 수행 코드Object identifier Execution code Identifier Execution code

수행 코드 관계 객체 식별자 수행 코드Execution code Relation object identifier Execution code

관계 객체 식별자 수행 코드 수행 코드Relative object identifier Execution code Execution code

관계 객체 식별자 수행 코드 수행 코드 식별자Relative object identifier Execution code Execution code identifier

관계 객체 식별자 반환값 수행 코드Relation object identifier Return value Execution code

반환값 관계 객체 식별자 수행 코드Return value Relation object identifier Execution code

객체 식별자 뒷말 nullObject identifier ending null

수행 코드 식별자 수행 코드 수행 코드Execution code identifier Execution code Execution code

수행 코드 식별자 수행 코드 수행 코드 식별자Execution code identifier Execution code Execution code identifier

수행 코드 수행 코드 수행 코드Execution Code Execution Code Execution Code

수행 코드 수행 코드 수행 코드 식별자Execution Code Execution Code Execution Code Identifier

수행 코드 수행 코드 식별자 수행 코드 식별자Perform Code Execution Code Identifier Execution Code Identifier

null 데이터 타입 수행 코드 식별자null data type implementation code identifier

데이터 타입 수행 코드 식별자 수행 코드 식별자Data Type Execution Code Identifier Execution Code Identifier

데이터 타입 수행 코드 식별자 수행 코드Data Type Execution Code Identifier Execution Code

관계 객체 식별자 관계 객체 식별자 수행 코드Relation object identifier Relation object identifier Execution code

반환값 반환값 반환값
Return Value Return ValueReturn Value

즉, 객체 식별자는 각 이름 정보가 포함되어 있는 데이터 객체를 지칭하는 식별자이고, 관계 객체 식별자는 객체 식별자가 지칭하는 데이터 객체가 아닌 다른 데이터 객체를 지칭하는 식별자일 수 있다. 또한, 변동 식별자는 현재 식별자와 이전 식별자의 쌍으로 이루어질 수 있다. 즉, 변동 식별자는 현재식별자_이전식별자 와 같이 표현될 수 있으며, 이는 데이터 객체의 동작을 통하여 이전 식별자에 새로운 식별자인 현재 식별자가 부여됨을 나타낼 수 있다. That is, the object identifier is an identifier indicating a data object in which each name information is included, and the relational object identifier may be an identifier indicating a data object other than the data object referred to by the object identifier. Also, the variable identifier may be a pair of the current identifier and the previous identifier. That is, the variable identifier may be represented as the current identifier_previous identifier, which indicates through the operation of the data object that the current identifier as a new identifier is assigned to the previous identifier.

수행 코드 관리부(130)는 데이터 객체에 대한 수행 정보를 생성 및 관리한다. 이 때, 수행 코드 관리부(130)는 제1 데이터 객체에 대한 수행 코드를, 제1 데이터 객체로 시작되는 데이터 객체의 리스트와 변동 식별자의 쌍으로 표현되는 수행 정보를 생성하여 나타낼 수 있다. 또한 수행 정보를 표현하는 쌍에 포함되는 데이터 객체의 리스트는 적어도 하나의 수행 코드 식별자를 포함할 수 있다. 또는 수행 정보를 표현하는 쌍에 포함되는 데이터 객체의 리스트는 적어도 하나의 반환값을 포함할 수 있다. 이 때, 리스트에 포함된 데이터 객체의 구성에 따라, 반환값이 리스트에 포함될 수도 있고, 데이터 객체에 포함된 수행 코드가 반환값을 반환하지 않는 경우 리스트에 포함되지 않을 수도 있으며, 수행 코드 식별자와 연결된 다른 리스트에 포함되어 수행 코드 식별자의 하위 데이터 객체에 포함될 수도 있다.The execution code management unit 130 generates and manages performance information on the data object. At this time, the execution code managing unit 130 may generate execution information represented by a pair of a variable identifier and a list of data objects starting with the first data object, and generate execution codes for the first data object. The list of data objects included in the pair representing the performance information may also include at least one performance code identifier. Or a list of data objects included in a pair representing performance information may include at least one return value. In this case, depending on the configuration of the data object included in the list, the return value may be included in the list, or the execution code included in the data object may not be included in the list if the return value is not returned. It may be included in the linked other list and included in the lower data object of the execution code identifier.

도 3은 본 발명의 일 실시예에 따른 수행 정보의 예를 도시한 도면이다. 도 3의 예는 '이름1'이라는 객체 식별자로 표시되는 이름 정보와 '다룸말1' 이라는 수행 코드 식별자로 이루어지는 리스트와 null_null 로 표시되는 변동 식별자의 쌍으로 이루어지는 수행 정보를 나타내며, 이러한 수행 정보는 '이름 1' 객체 식별자에 '다룸말1' 이라는 수행 코드 식별자가 표시하는 수행 코드가 대응됨을 나타낼 수 있다. 이 때 상술한 리스트는 수행 코드 식별자를 포함하는 리스트이다. 이 때 수행 코드 식별자가 아닌 반환값을 리스트가 포함하면 해당 수행 정보는 '다룸말1' 데이터 객체에 대응하는 수행 코드의 실행 결과 값을 나타낼 수 있다. 또한 도 3은 '이름1'로 표시되는 데이터 객체와 '생김새'로 표시되는 데이터 타입으로 이루어지는 리스트를 표시하며, 이는 데이터 객체 '이름1'이 '생김새' 타입의 데이터를 표시함을 나타낼 수 있다. 3 is a diagram illustrating an example of performance information according to an embodiment of the present invention. The example of FIG. 3 shows performance information consisting of a pair of name information represented by an object identifier of 'name 1' and a variable identifier indicated by null_null, which is composed of a list consisting of an execution code identifier called 'Reply 1' It may indicate that the execution code indicated by the execution code identifier 'talk 1' corresponds to the 'name 1' object identifier. The above-mentioned list is a list including an execution code identifier. At this time, if the list includes a return value that is not an execution code identifier, the execution information may indicate the execution result value of the execution code corresponding to the 'data 1' data object. In addition, FIG. 3 shows a data object represented by 'name 1' and a data type represented by 'appearance', indicating that the data object 'name 1' displays data of 'appearance type' .

또한 수행 코드 관리부(130)는, 제1 변동 식별자 및 제1 리스트의 쌍으로 이루어지는 수행 정보에 대하여, 제1 변동 식별자의 현재 식별자를 이전 식별자로 하는 제2 변동 식별자와 제1 리스트의 쌍으로 이루어지는 변형 수행 정보를 생성할 수 있다. 도 4는 본 발명의 일 실시예에 따른 변형 수행 정보의 예를 도시한 도면이다. 도 4에 도시된 바와 같이, 'null_null' 변동 식별자 및 '이름1 - 다룸말1'리스트의 쌍으로 이루어지는 수행 정보가 구체적인 데이터 객체의 내용 변화 없이 변동 식별자에 '이름패1' 현재 식별자를 부여할 수 있으며, 이 때 새로운 변동 식별자는 '이름패1_null'이 된다. 이 때, 이전의 변동 식별자 'null_null'에 대응하는 수행 코드 식별자가 '다룸말1'이며, '이름패1_null' 변동 식별자에 대응하는 수행 코드 식별자가 '다룸말2'이고, '다룸말2'의 직후 객체로 '다룸말1'이 연결되어 '이름1 - 다룸말2 - 다룸말1' 리스트를 형성할 수 있다. 이에 따라 현재의 수행 코드 뿐 아니라 과거의 수행 코드 역시 현재의 수행 정보를 통하여 접근할 수 있다.Also, the execution code managing unit 130 may be configured to perform, for the performance information consisting of the first variation identifier and the first list, a second variation identifier having the current identifier of the first variation identifier as the previous identifier, It is possible to generate deformation performance information. 4 is a diagram illustrating an example of deformation performance information according to an embodiment of the present invention. As shown in FIG. 4, performance information composed of a pair of a 'null_null' variation identifier and a 'name 1 - list 1' list can be assigned a 'current name 1' current identifier to a variable identifier without changing the contents of a specific data object , Where the new variable identifier is 'name1_null'. At this time, the execution code identifier corresponding to the previous variable identifier 'null_null' is 'Reply 1', the execute code identifier corresponding to the 'Name 1_null' variable identifier is 'Reply 2' Immediately afterwards, the 'Talking 1' is linked to the 'Name 1 - Talking 2 - Talking 1' list. Accordingly, past execution codes as well as current execution codes can be accessed through current execution information.

데이터 객체 관리부(120)는 데이터 객체의 이동, 조합 및 소멸 중 적어도 하나를 수행한다. 도 5는 본 발명의 일 실시예에 따른 데이터 객체의 조합의 예를 도시한 도면이다.The data object management unit 120 performs at least one of moving, combining, and destroying data objects. 5 is a diagram illustrating an example of a combination of data objects according to an embodiment of the present invention.

예컨대, 데이터 객체 관리부(120)는 제1 리스트를 시작하는 제1 데이터 객체 및 제2 리스트를 시작하는 제2 데이터 객체에 대하여, 제1 리스트와 쌍을 이루는 제1 변동 식별자의 현재 식별자를 이전 식별자로 하는 제3 변동 식별자 및, 제1 데이터 객체와 제2 데이터 객체로 이루어지는 제3 리스트의 쌍으로 이루어지는 제1 수행 정보 및 제2 리스트와 쌍을 이루는 제2 변동 식별자의 현재 식별자를 이전 식별자로 하는 제4 변동 식별자 및, 제3 리스트의 쌍으로 이루어지는 제2 수행 정보를 생성할 수 있다. For example, the data object manager 120 may store, for a first data object that starts a first list and a second data object that starts a second list, a current identifier of a first variation identifier paired with the first list, And a third list consisting of a first data object and a second data object and a second variable identifier paired with the second list as the previous identifier The fourth variation identifier, and the second performance information that is a pair of the third list.

도 5의 예에서 제1 데이터 객체는 '이름1'이고, 제2 데이터 객체는 '이름2'이며, 두 데이터 객체를 조합하는 결과 데이터 객체의 리스트 '이름1 - 이름2'이 제3 리스트로 생성될 수 있다. 또한 이 때, 제1 데이터 객체와 쌍을 이루는 변동 식별자 (이름패1_null)는 새로운 현재 식별자 이름패4에 의하여 제3 변동 식별자 (이름패4_이름패1)로 변동되며, 제2 데이터 객체와 쌍을 이루는 변동 식별자(null_null)은 제4 변동 식별자 (이름패4_null)로 변동될 수 있다. 따라서 제1 수행 정보는 (이름패4_이름패1)_이름1-이름2 가 되며, 제2 수행 정보는 (이름패4_null)_이름1-이름2가 된다. In the example of FIG. 5, the first data object is 'Name 1', the second data object is 'Name 2', and the list of result data objects 'Name 1 - Name 2' Lt; / RTI > Also, at this time, the variable identifier (name name 1_null) that is paired with the first data object is changed to the third variable identifier (nameplate 4_namespace 1) by the new current identifier name 4, The identifier (null_null) may be changed to the fourth variation identifier (nameplate 4_null). Therefore, the first performance information is (Name 4_Name1) _Name1-Name2, and the second performance information is (Name4_null) _Name1-Name2.

또한 이 때, 조합되는 데이터 객체와 연결되어 있던 수행 코드 식별자에 따른 리스트를 새로이 생성할 수도 있다. 즉, 제1 리스트에서 제1 데이터 객체의 직후 데이터 객체를 제3 데이터 객체로 대체한 제1 부분 리스트 뒤에 제1 데이터 객체를 덧붙인 제4 리스트 및 제2 리스트에서 제2 데이터 객체의 직후 데이터 객체를 제4 데이터 객체로 대체한 제2 부분 리스트 뒤에 제2 데이터 객체를 덧붙인 제5 리스트 중 적어도 하나를 생성하고, 제3 변동 식별자와 제4 리스트의 쌍으로 이루어지는 제3 수행 정보 및 제4 변동 식별자와 제5 리스트의 쌍으로 이루어지는 제5 수행 정보 중 적어도 하나를 생성할 수 있다. 도 5의 예에서 예컨대, '이름1 - 다룸말2'인 제1 리스트에서 다룸말2를 다룸말5로 대체하고 다룸말2를 덧붙인 제4 리스트 '이름1 - 다룸말5 - 다룸말2'와 제3 변동 식별자 (이름패4_이름패1)의 쌍으로 이루어지는 제3 수행 정보가 생성될 수 있다. 이 때 제4 리스트에 포함된 '다룸말5'의 뒷쪽에는 수행 코드의 리스트인 '긔걸들'이 덧붙여질 수 있다. 유사한 방법으로 제5리스트 '이름2 - 다룸말6 - 다룸말3'와 제4 변동 식별자 (이름패4_null)의 쌍으로 이루어지는 제4 수행 정보가 생성될 수 있다. At this time, a list according to the execution code identifier linked to the data object to be combined may be newly generated. That is, in the first list, a fourth list in which a first data object is added after a first partial list in which a data object immediately after the first data object is replaced with a third data object, and a fourth list in which a data object immediately after the second data object in the second list A fifth list in which a second data object is added after a second partial list replaced by a fourth data object, and third performance information consisting of a third variation identifier and a fourth list and a fourth variation identifier And fifth performance information that is a pair of the fifth lists. In the example of FIG. 5, for example, in a first list of 'name 1 - verbal utterance 2', a fourth list 'name 1 - verbal utterance 5 - verbal utterance 2' And the third variation identifier (nameplate 4_ nameplate 1) may be generated. At this time, a list of execution codes, 'hangers', can be added to the back of the 'commentary 5' included in the fourth list. In a similar manner, fourth performance information may be generated, which is a pair of a fifth list 'name 2 - verbal utterance 6 - verbal utterance 3' and a fourth variation identifier (name 4 - null).

또한 이 때 '다룸말5'는 코드 식별자인 '다룸말2' 및 '다룸말3'의 정보를 조합하여 생성되는 새로운 코드 식별자일 수 있으며, 같은 방식으로 '다룸말6'도 코드 식별자인 '다룸말2' 및 '다룸말3'의 정보를 조합하여 생성되는 새로운 코드 식별자일 수 있다. 이렇게 '다룸말5' 또는 '다룸말6' 즉, 제3 데이터 객체 또는 제4 데이터 객체에 해당하는 코드 식별자를 각자 제1 리스트 및 제2 리스트에 포함되어 있던 코드 식별자의 정보를 모두 포함하게 생성함으로써, 제1 리스트 및 제2 리스트를 조합하여 생성되는 제3 리스트 도는 제4 리스트에 포함된 코드 식별자가 조합 이전의 각 리스트에 포함되어 있던 코드 식별자를 모두 식별 및 탐색할 수 있도록 할 수 있다.In this case, the 'reply message 5' may be a new code identifier generated by combining the information of the code identifiers 'reply message 2' and 'reply message 3'. In the same manner, 'reply message 6' And a new code identifier generated by combining the information of the commentary 2 'and the commentary 3'. In other words, a code identifier corresponding to the third data object or the fourth data object is generated so as to include all of the code identifiers included in the first list and the second list, The third list generated by combining the first list and the second list and the code identifier included in the fourth list can be identified and searched for all the code identifiers included in each list before the combination.

상술한 바와 같은 두 데이터 객체의 조합은 조합되는 데이터 객체와 쌍을 이루는 수행 코드 식별자가 (null_null) 인 초기 수행 코드 식별자인 경우에도 같은 방법으로 적용될 수 있으며, 이는 도 5의 하단의 예에 도시된 바와 같다.The combination of the two data objects as described above can be applied in the same way even when the combination of the data objects is an initial execution code identifier that is a pair of an execution code identifier null_null, Same as.

이상과 같은 방법으로 데이터 객체의 정의로부터 데이터 객체를 생성 및 조합할 수 있으며, 모든 데이터 객체를 상술한 생성 및 조합 방법에 의하여 구성되는 리스트를 통하여 방문할 수 있으므로 반복 또는 재귀적인 방법으로 데이터 객체의 소멸 역시 가능하다. 또한 기 존재하는 데이터 객체의 소멸 및 기 존재하는 데이터 객체와 동일한 데이터를 저장하되 타 데이터 객체와의 연결관계가 다른 새로운 객체의 생성을 수행함으로써 데이터 객체의 이동을 표현하는 것 역시 가능하다.Since data objects can be created and assembled from the definition of data objects in the same manner as described above and all data objects can be visited through a list formed by the above-described generation and combination methods, Destruction is also possible. It is also possible to express the movement of a data object by destroying the existing data object and storing the same data as the existing data object but creating a new object having a different connection relation with the other data object.

실행부(140)는 수행 코드를 실행한다. 이 때 수행 코드를 이름 정보로 하는 각 데이터 객체는 하나 이상의 명령어를 표현할 수 있으며, 따라서 데이터 객체의 리스트가 수행 코드의 리스트, 즉 데이터 객체에 대하여 실행되는 프로그램을 표현할 수 있다. 수행 코드는 일반적인 명령형 프로그래밍 언어와 유사하게 정의될 수 있다. 예컨대 수행 코드는 이하 표 1에 열거되는 명령어를 표현할 수 있다.
The execution unit 140 executes the execution code. At this time, each data object having the execution code as the name information can represent one or more instructions, so that a list of data objects can represent a list of execution codes, that is, a program executed on the data object. Execution code can be defined similar to a general imperative programming language. For example, the execution code may represent the commands listed in Table 1 below.

수행 코드Execution code 설명Explanation THEN THEN IFTHENELSEENDIF구문중 THEN 처리 구문.THEN processing syntax in IFTHENELSEENDIF syntax. SEdelSEdel 해당 실행 코드 식별자를 소유한 데이터 객체의 생성객체값 중에서 선택한 객체의 삭제처리 (datadelete처리) 화면처리.(Datadelete processing) screen processing of the object selected from the generated object values of the data object having the corresponding execution code identifier. (( (.(. )) ).). upYRupYR 지정한데이터 객체또는조합 연결객체의 특정 데이터 객체등을 조건으로 주고 검색하여 해당데이터 객체또는 조합 연결객체자료를 찾아내고 지정한 특정 데이터 객체 값을 기록.The specified data object, or a specific data object of the combination connection object, is retrieved and retrieved to find the corresponding data object or combination connection object data, and records the specified specific data object value. fdYRfdYR 지정한데이터 객체또는조합 연결객체의 특정 데이터 객체등을 조건으로 주고 검색하여 해당데이터 객체또는 조합 연결객체자료를 찾아내고 지정한 특정 데이터 객체 값을 찾음 찾은값은 스택에 기록.
(파리미터 마지막은 객체개수)
The specified data object, or a specific data object of the combination connection object, and so on, to find the corresponding data object or combination connection object data, and to find the specified specific data object value.
(Parameter end is the number of objects)
sdYCsdYC 현재처리중인 변동 식별자와 이름 각각의 명칭 화면에 표시.Variable identifier and name currently being processed. ssYAssya 다이얼로그화면처리 이름객체에서특정값 선택.Select a specific value from the dialog object. pwNWpwNW 해당하위 실행 코드 식별자의 데이터 객체의 선택하거나 신규 입력된 값들을 찾아내어 해당데이터 객체의 값을 생성.Selects a data object of the lower executable code identifier or newly found values, and generates a value of the corresponding data object. >> 이항비교문.Binary comparison. !! 일항비교문.Comparisons. ** 이항연산 곱.Binary arithmetic product. // 이항연산 나누기.Division of binary operations. <=<= 이항비교문.Binary comparison. >=> = 이항비교문.Binary comparison. NullProcessNullProcess 해당 처리 없음. 예를들면 비교문 THEN에서 처리할 내역 없을 경우.No such processing. For example, if there is no statement to process in the comparative statement THEN. wrPRwrPR 최종스택에 저장된 값을 실행 코드 식별자를 소유한 객체 식별자에 기록. Record the value stored in the last stack in the object identifier that owns the execution code identifier. ELSEELSE IF비교문의 ELSE.IF comparison statement ELSE. SEstackSEstack 다이얼로그화면처리 해당 실행 코드 식별자의 특정데이터 값을 화면을 통해서 찾아 해당 값을 return.Dialogue screen processing Find the specific data value of the corresponding execution code identifier through the screen and return the corresponding value. IFIF 비교문의 IF.Contact IF. nullnull null 값.A null value. LOOPLOOP LOOP ENDLOOP 문중 LOOP 시작구문.LOOP ENDLOOP statement LOOP startup syntax. CreWkCreWk 해당객체 식별자 에 일말을 찾아 해당 일말의 존재 여부를 확인한후 임시 처리 스택에 일말 명칭 등록.Find the end of the line in the object identifier, check whether the end of the line is present, and register the name of the end of the line in the temporary processing stack. WwSrWwSr 스택에 저장되어 있은 값을 파리미터에 있는 일말에 기록.Record the value stored in the stack at the end of the parameter. %% 이항연산 몫.Binary operations. << 이항비교문.Binary comparison. &&&& 이항연산 AND.Binary operation AND. |||| 이항연산 OR.Binary operation OR. ;; 명령어 종료점.Command endpoint. Use_LoopUse_Loop fdYR의 파라미터의 종류로 fdYR 결과 값을 loop스택에저장.Save the result of fdYR to the loop stack by the type of parameter of fdYR. keykey 파미미터 종류로 검색 값을 key,value 중 결정 파마미터 값.The search value is determined by the type of the micrometer. fdWKfdWK 현재 실행 코드 식별자를 소유한 객체식별자 중에 지정한 객체식별자를 찾아
스택에 저장하는 처리.
Find the object identifier specified in the object identifier that owns the current executable code identifier
Processing to store on the stack.
dcWSdcWS 다이얼로그화면처리 객체 식별자를 신규생성이나 선택을 결정하는 화면.Dialogue Screen The screen that determines the creation or selection of a new object identifier. rsYArsya 실행 코드 식별자를 소유한 객체식별자에 선택된 값을 기록.Record the selected value in the object identifier that owns the executable code identifier. swYRswYR 다이얼로그화면처리로 객체식별자 값을 신규 입력하거나 선택하는 화면.Screen for inputting or selecting new object identifier value through dialog screen processing. rwYRrwYR swYR 다이얼로그화면 처리에서 신규로 처리한 경우 객체 식별자를 기록. swYR Record the object identifier for new processing in dialog screen processing. ++ 이항연산 합.Binomial operations. Ip_valueIp_value 변수값.Variable value. WrSwWrSw 일말을 읽어 스택에 저장.Read the last word and save it on the stack. TempWrSTempWrS 최종 처리자료 임시저장소에서 스택으로 이동저장.Move from the temporary storage to the stack to save the final processing data. datadata 파라미터 변수.Parameter variable. data_datadata_data 파라미터 변수.Parameter variable. nonenone 파라미터 변수.Parameter variable. delKeydelKey 스택변수에 주어진 객체 식별자 key로 삭제.Deletes with the object identifier key given to the stack variable. ENDIFENDIF IFTHENELSEENDIF구문 중 ENDIF 종료.IFTHENELSE ENDIF End of ENDIF statement. SEbrSEbr 실행 코드 식별자가 소속된 객체 식별자에 기록.Write to the object identifier to which the executable code identifier belongs. -- 이항연산 차.Binary operation car. ENDLOOPENDLOOP LOOP ENDLOOP문.LOOP ENDLOOP statement. n/an / a 파라미터 변수 없음.No parameter parameter. MessageMessage 객체 식별자가 소유한 메시지를 메세지창으로 화면에 표시.Display messages owned by object identifiers in a message window.

입출력부(300)는 사용자로부터 상기 데이터 객체의 생성, 이동, 조합, 소멸 및 수행 코드의 편집 중 적어도 하나와 관련된 정보를 입력받고 사용자에게 상기 데이터 코드 및 상기 데이터 코드, 수행 코드 및 수행 코드의 실행 결과 중 적어도 하나를 출력하고, 저장부(200)는 데이터 코드 및 수행 코드를 저장한다.The input / output unit 300 receives information related to at least one of creation, movement, combination, and destruction of the data object from the user and editing of the execution code and outputs the data code, the execution code, Outputs at least one of the results, and the storage unit 200 stores the data code and the execution code.

도 6은 본 발명의 다른 실시예에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 방법의 동작을 도시한 순서도이다. 이를 참조하여 본 발명의 다른 실시예에 따른 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 방법을 설명한다.FIG. 6 is a flowchart illustrating the operation of a software development method using a data-based programming model according to another embodiment of the present invention. A software development method using a data-based programming model according to another embodiment of the present invention will be described with reference to the drawings.

먼저 데이터 객체 생성부(110)가 사용자의 입력에 응답하여 데이터 객체를 생성한다(S110). 이 때, 상술한 바와 같이 상기 데이터 객체는 제1 이름 정보, 제2 이름 정보 및 제3 이름 정보를 포함하여 이루어지고, 각 이름 정보는, 객체 식별자, 데이터 타입, 수행 코드 식별자, 수행 코드, 기억 장소, 변동 식별자, 관계 객체 식별자, 반환값, 메시지 및 공백 중 하나이며, 객체 식별자는 각 이름 정보가 포함되어 있는 데이터 객체를 지칭하는 식별자이고, 관계 객체 식별자는 객체 식별자가 지칭하는 데이터 객체가 아닌 데이터 객체를 지칭하는 식별자이며, 변동 식별자는 현재 식별자와 이전 식별자의 쌍으로 이루어질 수 있다.First, the data object generating unit 110 generates a data object in response to a user's input (S110). In this case, as described above, the data object includes first name information, second name information, and third name information, and each name information includes an object identifier, a data type, an execution code identifier, A relational object identifier, a return value, a message, and a blank. The object identifier is an identifier indicating a data object containing each name information. The relational object identifier is not a data object referred to by the object identifier Is an identifier that refers to a data object, and the variable identifier may be a pair of a current identifier and a previous identifier.

이어서 데이터 객체 관리부(120)가 사용자의 입력에 응답하여 상기 데이터 객체의 이동, 조합 및 소멸 중 적어도 하나를 수행한다(S120). 이 때, 데이터 객체의 조합은 상기 도 5와 관련하여 상술한 바와 같이 이루어질 수 있다. 즉, 데이터 객체 관리부(120)는 하나 이상의 데이터 객체가 연결된 리스트를, 리스트 상의 각 제1 데이터 객체에 대하여, 제1 이름 정보가 상기 리스트에서 제1 데이터 객체의 직전 데이터 객체의 객체 식별자이고, 제2 이름 정보가 제1 데이터 객체의 객체 식별자이며, 제3 이름 정보가 리스트에서 제1 데이터 객체의 직후 데이터 객체의 객체 식별자인 데이터 객체를 생성함으로써 표현하되, 제1 데이터 객체가 리스트의 최초 데이터 객체인 경우 상기 직전 데이터 객체의 객체 식별자가 Null이고, 제1 데이터 객체가 리스트의 최후 데이터 객체인 경우 직후 데이터 객체의 객체 식별자가 Null일 수 있다. Then, the data object management unit 120 performs at least one of moving, combining, and destroying the data object in response to a user input (S120). At this time, the combination of the data objects can be made as described above with reference to FIG. That is, for each first data object on the list, the first object information is an object identifier of a data object immediately before the first data object in the list, 2 &lt; / RTI &gt; name information is an object identifier of a first data object and the third name information is an object identifier of a data object immediately after the first data object in the list, , The object identifier of the data object may be Null immediately after the object identifier of the immediately preceding data object is null and the first data object is the last data object of the list.

또한, 데이터 객체 관리부(120)는, 제1 리스트를 시작하는 제1 데이터 객체 및 제2 리스트를 시작하는 제2 데이터 객체에 대하여, 제1 리스트와 쌍을 이루는 제1 변동 식별자의 현재 식별자를 이전 식별자로 하는 제3 변동 식별자 및, 제1 데이터 객체와 제2 데이터 객체로 이루어지는 제3 리스트의 쌍으로 이루어지는 제1 수행 정보 및 제2 리스트와 쌍을 이루는 제2 변동 식별자의 현재 식별자를 이전 식별자로 하는 제4 변동 식별자 및, 제3 리스트의 쌍으로 이루어지는 제2 수행 정보를 생성할 수 있다. Also, the data object management unit 120 may update the current identifier of the first variation identifier paired with the first list, for the first data object that starts the first list and the second data object that starts the second list, A first variable length identifier, a third variable identifier as an identifier, and a third identifier consisting of a first data object and a third data object; and a second identifier, And a second performance information that is a pair of the third list.

아울러 데이터 객체 관리부(120)는, 제1 리스트에서 제1 데이터 객체를 제3 데이터 객체로 대체한 제1 부분 리스트 뒤에 제1 데이터 객체를 덧붙인 제4 리스트 및 제2 리스트에서 제2 데이터 객체를 제4 데이터 객체로 대체한 제2 부분 리스트 뒤에 제2 데이터 객체를 덧붙인 제5 리스트 중 적어도 하나를 생성하고, 제3 변동 식별자와 제4 리스트의 쌍으로 이루어지는 제3 수행 정보 및 제4 변동 식벼자와 제5 리스트의 쌍으로 이루어지는 제5 수행 정보 중 적어도 하나를 생성할 수 있다.In addition, the data object management unit 120 may include a fourth list in which a first data object is added after a first partial list in which a first data object is replaced with a third data object in the first list, and a fourth list, 4 data object and a second data object after the second data object is replaced with a third data object and a fourth data list; And fifth performance information that is a pair of the fifth lists.

이후 수행 코드 관리부(130)가 상기 데이터 객체에 대한 수행 정보에 포함되는 수행 코드를 편집한다. 이 때, 수행 정보의 관리 및 수행 코드의 편집은 도 3과 관련하여 상술한 바와 같이 이루어질 수 있다. 예컨대, 수행 코드 관리부(130)는 제1 데이터 객체에 대한 수행 코드를, 제1 데이터 객체로 시작되는 데이터 객체의 리스트와 변동 식별자의 쌍으로 표현되는 수행 정보를 생성하여 나타낼 수 있다. 또한 수행 정보를 표현하는 쌍에 포함되는 데이터 객체의 리스트는 적어도 하나의 수행 코드 식별자를 포함할 수 있다. 또는 수행 정보를 표현하는 쌍에 포함되는 데이터 객체의 리스트는 적어도 하나의 반환값을 포함할 수 있다. 또한 수행 코드는 예컨대 상기 표 1에 예시된 바와 같이 일반적인 명령형 프로그래밍 언어와 유사하게 규정될 수 있다.The execution code managing unit 130 edits the execution code included in the execution information on the data object. At this time, the management of the performance information and the editing of the execution code can be performed as described above with reference to FIG. For example, the execution code managing unit 130 may generate execution information represented by a pair of a variable identifier and a list of data objects starting with the first data object, and generate execution codes for the first data object. The list of data objects included in the pair representing the performance information may also include at least one performance code identifier. Or a list of data objects included in a pair representing performance information may include at least one return value. The execution code can also be defined similar to a general imperative programming language, for example as illustrated in Table 1 above.

이후, 입출력부(300)가 수행 코드를 실행하라는 명령이 입력되었는지 판단한다(S140). 만일 단계(S140)에서 수행 코드를 실행하라는 명령이 입력되었으면 실행부(140)가 사용자의 입력에 응답하여 상기 수행 코드를 실행하고(S150), 만일 수행 코드를 실행하라는 명령이 입력되지 않았으면 프로세스는 단계(S160)으로 진행한다. Then, the input / output unit 300 determines whether an instruction to execute the execution code is input (S140). If an instruction to execute the execution code is input in step S140, the execution unit 140 executes the execution code in response to the user's input (S150). If the instruction to execute the execution code is not input, The process proceeds to step S160.

이어서, 수행 코드 관리부(130)가 데이터 객체 관리 및 수행 코드의 편집이 종료되었는지 여부를 판단한다(S160). 만일 단계(S160)에서 데이터 객체 관리 및 수행 코드의 편집이 종료되지 않았다고 판단한다면 프로세스는 단계(S110) 내지 S(150)을 반복하여 데이터 객체의 생성 및 관리와 수행 코드의 편집 및 관리를 계속한다. 만일 단계(S160)에서 데이터 객체 관리 및 수행 코드의 편집이 종료되었다고 판단한다면 프로세스를 종료한다. 이 때 종료 여부의 판단은 사용자의 입력에 따를 수도 있고, 실행부(140)가 수행 코드를 무사히 끝까지 실행하였는지 여부에 따를 수도 있다.Then, the execution code managing unit 130 determines whether the data object management and editing of the execution code are completed (S160). If it is determined in step S160 that the data object management and editing of the execution code have not been completed, the process repeats steps S110 to S 150 to continue the creation and management of the data object and the editing and management of the execution code . If it is determined in step S160 that the data object management and editing of the execution code are completed, the process is terminated. At this time, the determination of termination may be based on the input of the user, or may depend on whether the execution unit 140 has successfully executed the execution code to the end.

이상 살펴본 바와 같이 본 발명에 따르면, 소프트웨어에 포함되는 데이터 인스턴스 각각에 대하여 데이터 객체를 독립적으로 생성, 소멸, 이동, 조합 및 편집이 가능한 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어를 개발함으로써, 실제 세계의 사물의 행동을 용이하게 모델링할 수 있고, 각 데이터 인스턴스를 개별적으로 조작할 수 있으므로 클래스의 상속 또는 변형상속이 불필요할 뿐더러 필요에 따라 객체의 개별적 변형과 일괄적 변형을 선택할 수 있으며, 각 데이터 인스턴스별로 필요에 따라 수행 코드를 변형할 수 있어 보다 병렬 처리가 용이하고 실제 세계와 직관적으로 유사한 소프트웨어 모델링이 가능하며 소프트웨어 개발을 용이하게 할 수 있다.As described above, according to the present invention, by developing software that uses a data-based programming model capable of independently creating, destroying, moving, combining, and editing data objects for each data instance included in software, Behavior can be easily modeled, and each data instance can be manipulated independently, eliminating the need for class inheritance or transformation inheritance, as well as selecting individual transformations and batch transformations of objects as needed. It is possible to modify the execution code in accordance with the present invention. Therefore, parallel processing is easy, software modeling is intuitively similar to the real world, and software development can be facilitated.

본 발명은 도면에 도시된 실시예를 참고로 하여 설명되었으나, 이는 예시적인 것에 불과하며, 당해 기술이 속하는 분야에서 통상의 지식을 가진 자라면 이로부터 다양한 변형 및 균등한 타 실시예가 가능하다는 점을 이해할 것이다. 따라서 본 발명의 기술적 보호범위는 아래의 특허청구범위에 의해서 정하여져야 할 것이다.
While the present invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those of ordinary skill in the art that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined by the appended claims. I will understand. Accordingly, the technical scope of the present invention should be defined by the following claims.

110 : 데이터 객체 생성부 120 : 데이터 객체 관리부
130 : 수행 코드 관리부 140 : 실행부
200 : 저장부 300 : 입출력부
110: Data object generation unit 120: Data object management unit
130: Execution code management unit 140: Execution unit
200: storage unit 300: input /

Claims (10)

사용자의 입력에 응답하여 데이터 객체를 생성하는 데이터 객체 생성부;
상기 데이터 객체의 이동, 조합 및 소멸 중 적어도 하나를 수행하는 데이터 객체 관리부;
상기 데이터 객체에 대한 수행 정보를 생성 및 관리하는 수행 코드 관리부;
사용자로부터 상기 데이터 객체의 생성, 이동, 조합, 소멸 및 수행 코드의 편집 중 적어도 하나와 관련된 정보를 입력받고 사용자에게 상기 데이터 객체, 수행 코드 및 수행 코드 실행 결과 중 적어도 하나를 출력하는 입출력부; 및
상기 데이터 객체 및 수행 코드를 저장하는 저장부 및 상기 수행 코드를 실행하는 실행부를 포함하되,
상기 데이터 객체는 제1 이름 정보, 제2 이름 정보 및 제3 이름 정보를 포함하여 이루어지고, 상기 각 이름 정보는, 객체 식별자, 데이터 타입, 수행 코드 식별자, 수행 코드, 기억 장소, 변동 식별자, 관계 객체 식별자, 반환값, 메시지 및 null 중 하나이며, 상기 객체 식별자는 상기 각 이름 정보가 포함되어 있는 데이터 객체를 지칭하는 식별자이고, 상기 관계 객체 식별자는 상기 객체 식별자가 지칭하는 데이터 객체가 아닌 데이터 객체를 지칭하는 식별자이며, 상기 변동 식별자는 현재 식별자와 이전 식별자의 쌍으로 이루어지는 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치.
A data object generation unit for generating a data object in response to a user input;
A data object manager for performing at least one of moving, combining, and destroying the data object;
An execution code manager for generating and managing execution information for the data object;
An input / output unit receiving information related to at least one of creation, movement, combination, destruction and editing of a data object from a user and outputting at least one of the data object, execution code and execution code execution result to the user; And
A storage unit for storing the data object and execution code, and an execution unit for executing the execution code,
Wherein the data object includes a first name information, a second name information and a third name information, wherein each name information includes at least one of an object identifier, a data type, an execution code identifier, an execution code, a storage location, Wherein the object identifier is an identifier indicating a data object in which each name information is included and the relational object identifier is a data object that is not a data object referred to by the object identifier, Wherein the variable identifier comprises a pair of a current identifier and a previous identifier, wherein the variable identifier is a pair of a current identifier and a previous identifier.
제 1항에 있어서,
상기 데이터 객체 관리부는 하나 이상의 데이터 객체가 연결된 리스트를, 상기 리스트 상의 각 제1 데이터 객체에 대하여, 제1 이름 정보가 상기 리스트에서 상기 제1 데이터 객체의 직전 데이터 객체의 객체 식별자이고, 제2 이름 정보가 상기 제1 데이터 객체의 객체 식별자이며, 제3 이름 정보가 상기 리스트에서 상기 제1 데이터 객체의 직후 데이터 객체의 객체 식별자인 데이터 객체를 생성함으로써 표현하되, 상기 제1 데이터 객체가 상기 리스트의 최초 데이터 객체인 경우 제1 이름 정보가 null이고, 상기 제1 데이터 객체가 상기 리스트의 최후 데이터 객체인 경우 제3 이름 정보가 null인 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치.
The method according to claim 1,
Wherein the data object management unit is operable to list, for each first data object on the list, one or more data object linked lists, wherein the first name information is an object identifier of a data object immediately preceding the first data object in the list, Wherein the first data object is an object identifier of the first data object and the third name information is an object identifier of a data object immediately after the first data object in the list, Wherein the first name information is null for the first data object and the third name information is null if the first data object is the last data object of the list.
제 1항에 있어서,
상기 수행 코드 관리부는 제1 데이터 객체에 대한 수행 코드를, 상기 제1 데이터 객체로 시작되는 데이터 객체의 리스트와 변동 식별자의 쌍으로 표현되는 수행 정보를 생성하여 나타내는 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치.
The method according to claim 1,
Wherein the execution code management unit generates execution codes represented by a pair of a list of data objects and a variable identifier starting with the first data object and indicates execution codes for the first data object, Software development device to use.
제 3항에 있어서,
상기 수행 정보를 표현하는 쌍에 포함되는 데이터 객체의 리스트는 적어도 하나의 수행 코드 식별자를 포함하는 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치.
The method of claim 3,
Wherein the list of data objects included in the pair representing the performance information comprises at least one execution code identifier.
제 3항에 있어서,
상기 수행 정보를 표현하는 쌍에 포함되는 데이터 객체의 리스트는 적어도 하나의 반환값을 포함하는 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치.
The method of claim 3,
Wherein the list of data objects included in the pair representing the performance information includes at least one return value.
제 1항에 있어서,
상기 수행 코드 관리부는,
제1 변동 식별자 및 제1 리스트의 쌍으로 이루어지는 수행 정보에 대하여, 상기 제1 변동 식별자의 현재 식별자를 이전 식별자로 하는 제2 변동 식별자와 상기 제1 리스트의 쌍으로 이루어지는 변형 수행 정보를 생성하는 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치.
The method according to claim 1,
The execution code management unit,
Generating second variation identifier having the current identifier of the first variation identifier as a previous identifier and deformation performance information comprising a pair of the first list with respect to performance information including a pair of the first variation identifier and the first list A software development device that utilizes a data-driven programming model.
제 1항에 있어서,
상기 데이터 객체 관리부는,
제1 리스트를 시작하는 제1 데이터 객체 및 제2 리스트를 시작하는 제2 데이터 객체에 대하여,
상기 제1 리스트와 쌍을 이루는 제1 변동 식별자의 현재 식별자를 이전 식별자로 하고 상기 제1 및 제2 데이터 객체의 객체 식별자를 조합하여 생성한 현재 식별자를 가지는 제3 변동 식별자 및, 제1 데이터 객체와 제2 데이터 객체로 이루어지는 제3 리스트의 쌍으로 이루어지는 제1 수행 정보; 및
상기 제2 리스트와 쌍을 이루는 제2 변동 식별자의 현재 식별자를 이전 식별자로 하고 상기 제1 및 제2 데이터 객체의 객체 식별자를 조합하여 생성한 현재 식별자를 가지는 제4 변동 식별자 및, 상기 제3 리스트의 쌍으로 이루어지는 제2 수행 정보 중 적어도 하나를 생성하는 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치.
The method according to claim 1,
Wherein the data object management unit comprises:
For a first data object starting a first list and a second data object starting a second list,
A third variable identifier having a current identifier generated by combining a current identifier of a first variable identifier paired with the first list as a previous identifier and an object identifier of the first and second data objects, And a third list consisting of a first data object and a second data object; And
A fourth variation identifier having a current identifier generated by combining a current identifier of a second variation identifier paired with the second list as a previous identifier and an object identifier of the first and second data objects, And a second execution information that is a pair of the first execution information and the second execution information.
제 7항에 있어서,
상기 데이터 객체 관리부는,
상기 제1 리스트에서 상기 제1 데이터 객체의 직후 데이터 객체를 제3 데이터 객체로 대체한 제1 부분 리스트 뒤에 상기 제1 데이터 객체를 덧붙인 제4 리스트; 및
상기 제2 리스트에서 상기 제2 데이터 객체의 직후 데이터 객체를 제4 데이터 객체로 대체한 제2 부분 리스트 뒤에 상기 제2 데이터 객체를 덧붙인 제5 리스트 중 적어도 하나를 생성하고,
상기 제3 변동 식별자와 상기 제4 리스트의 쌍으로 이루어지는 제3 수행 정보 및 상기 제4 변동 식별자와 상기 제5 리스트의 쌍으로 이루어지는 제5 수행 정보 중 적어도 하나를 생성하는 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치.
8. The method of claim 7,
Wherein the data object management unit comprises:
A fourth list in which the first data object is added to the first list after a first partial list in which a data object immediately after the first data object is replaced with a third data object; And
Generating a second list in which a second data object is added to a second partial list obtained by replacing a data object immediately after the second data object with a fourth data object in the second list,
And third performance information comprising a pair of the third variation identifier and the fourth list, and fifth performance information comprising a pair of the fourth variation identifier and the fifth list. Software development device using model.
데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치를 이용한 방법에 있어서,
(a) 상기 소프트웨어 개발 장치가 사용자의 입력에 응답하여 데이터 객체 생성부를 통해 데이터 객체를 생성하도록 하는 단계;
(b) 상기 소프트웨어 개발 장치가 사용자의 입력에 응답하여 데이터 객체 관리부를 통해 상기 데이터 객체의 이동, 조합 및 소멸 중 적어도 하나를 수행하도록 하는 단계;
(c) 상기 소프트웨어 개발 장치가 상기 데이터 객체에 대한 수행 정보에 포함되는 수행 코드를 수행 코드 관리부로 편집하도록 하는 단계; 및
(d) 상기 소프트웨어 개발 장치가 사용자의 입력에 응답하여 실행부를 통해 상기 수행 코드를 실행하도록 하는 단계;를 포함하되,
상기 데이터 객체는 제1 이름 정보, 제2 이름 정보 및 제3 이름 정보를 포함하여 이루어지고, 상기 각 이름 정보는, 객체 식별자, 데이터 타입, 수행 코드 식별자, 수행 코드, 기억 장소, 변동 식별자, 관계 객체 식별자, 반환값, 메시지 및 null 중 하나이며, 상기 객체 식별자는 상기 각 이름 정보가 포함되어 있는 데이터 객체를 지칭하는 식별자이고, 상기 관계 객체 식별자는 상기 객체 식별자가 지칭하는 데이터 객체가 아닌 데이터 객체를 지칭하는 식별자이며, 상기 변동 식별자는 현재 식별자와 이전 식별자의 쌍으로 이루어지는 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치를 이용한 방법.
A method of using a software development apparatus using a data-based programming model,
(a) causing the software development apparatus to generate a data object through a data object creation unit in response to a user input;
(b) causing the software development device to perform at least one of moving, combining, and destroying the data object through the data object manager in response to a user input;
(c) causing the software development apparatus to edit an execution code included in execution information on the data object to an execution code management unit; And
(d) causing the software development apparatus to execute the execution code via an execution unit in response to a user's input,
Wherein the data object includes a first name information, a second name information and a third name information, wherein each name information includes at least one of an object identifier, a data type, an execution code identifier, an execution code, a storage location, Wherein the object identifier is an identifier indicating a data object in which each name information is included and the relational object identifier is a data object that is not a data object referred to by the object identifier, Wherein the variable identifier is a pair of a current identifier and a previous identifier, wherein the variable identifier is a pair of a current identifier and a previous identifier.
제 9항에 있어서,
상기 제 (b) 단계는,
(b-1) 상기 소프트웨어 개발 장치가 사용자의 입력에 응답하여 데이터 객체 관리부를 통해 상기 데이터 객체의 이동, 조합 및 소멸 중 적어도 하나를 수행하도록 하되,
상기 데이터 객체 관리부는 하나 이상의 데이터 객체가 연결된 리스트 상의 각 제1 데이터 객체에 대하여, 제1 이름 정보가 상기 리스트에서 상기 제1 데이터 객체의 직전 데이터 객체의 객체 식별자이고, 제2 이름 정보가 상기 제1 데이터 객체의 객체 식별자이며, 제3 이름 정보가 상기 리스트에서 상기 제1 데이터 객체의 직후 데이터 객체의 객체 식별자인 데이터 객체를 생성하며,
상기 제1 데이터 객체가 상기 리스트의 최초 데이터 객체인 경우 제1 이름 정보가 null이고, 상기 제1 데이터 객체가 상기 리스트의 최후 데이터 객체인 경우 제3 이름 정보가 null인 것을 특징으로 하는 데이터 기반 프로그래밍 모델을 이용하는 소프트웨어 개발 장치를 이용한 방법.
10. The method of claim 9,
The step (b)
(b-1) causing the software development apparatus to perform at least one of moving, combining, and destroying the data object through the data object management unit in response to a user's input,
Wherein the data object management unit is operable, for each first data object on the list to which one or more data objects are linked, that the first name information is an object identifier of a data object immediately preceding the first data object in the list, 1 &lt; / RTI &gt; data object, the third name information being an object identifier of a data object immediately after the first data object in the list,
Wherein the first name information is null if the first data object is the first data object of the list and the third name information is null if the first data object is the last data object of the list. A method using a software development device using a model.
KR1020150056198A 2015-04-21 2015-04-21 Apparatus and method for development of software using data oriented programming model Active KR101636455B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020150056198A KR101636455B1 (en) 2015-04-21 2015-04-21 Apparatus and method for development of software using data oriented programming model

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150056198A KR101636455B1 (en) 2015-04-21 2015-04-21 Apparatus and method for development of software using data oriented programming model

Publications (1)

Publication Number Publication Date
KR101636455B1 true KR101636455B1 (en) 2016-07-06

Family

ID=56502631

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150056198A Active KR101636455B1 (en) 2015-04-21 2015-04-21 Apparatus and method for development of software using data oriented programming model

Country Status (1)

Country Link
KR (1) KR101636455B1 (en)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0150260B1 (en) 1994-12-23 1998-10-15 양승택 Object modelling technique meta mode system
KR20020000377A (en) * 2000-06-24 2002-01-05 서평원 Method for client software modeling in client/server system
US20090006440A1 (en) * 2007-06-26 2009-01-01 Microsoft Corporation Object Model Based Mapping
US20140032617A1 (en) * 2012-07-24 2014-01-30 Craig W. Stanfill Mapping entities in data models
KR20140042169A (en) * 2012-09-28 2014-04-07 삼성에스디에스 주식회사 Apparatus and method for converting value object

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR0150260B1 (en) 1994-12-23 1998-10-15 양승택 Object modelling technique meta mode system
KR20020000377A (en) * 2000-06-24 2002-01-05 서평원 Method for client software modeling in client/server system
US20090006440A1 (en) * 2007-06-26 2009-01-01 Microsoft Corporation Object Model Based Mapping
US20140032617A1 (en) * 2012-07-24 2014-01-30 Craig W. Stanfill Mapping entities in data models
KR20140042169A (en) * 2012-09-28 2014-04-07 삼성에스디에스 주식회사 Apparatus and method for converting value object

Similar Documents

Publication Publication Date Title
JP2021007736A (en) Method, device, and apparatus for editing voice skill game, and readable storage medium
CN102959511B (en) Gui program is made servicing unit, gui program is made householder method, program and integrated circuit
CN106528165A (en) Code generation method and code generation system
JP2011013750A (en) Automatic designing apparatus, automatic designing method and automatic designing program for automatically designing design architecture of system component
CN110955850A (en) A Processing Method of Componentized Tree Control
CN117453713A (en) SQL sentence generation method, device and storage medium for multi-type database
CN104281604B (en) Method and system for generating Target Link data dictionary hierarchical tree
CN106815022A (en) A kind of general UI interface creating methods and device based on tree data structure
JP6370503B1 (en) Program creation device
CN113553635B (en) Method, device, electronic equipment and storage medium for configuring graphic primitive of gallery
JP2008225898A (en) Conversion device, conversion program, and conversion method
CN107491311B (en) Method and system for generating page file and computer equipment
CN107220044B (en) Method and device for driving business object based on meta-model
CN118760485A (en) State machine model construction method, operation method, operation device and storage medium
KR101636455B1 (en) Apparatus and method for development of software using data oriented programming model
CN112988142A (en) Attribute table generation method and device
US9098263B2 (en) Database application assembly and preparation
CN117707530A (en) Application program page generation method and device, storage medium and electronic equipment
KR101765324B1 (en) Sources code generating apparatus using structured query language and diagram, and method for processing thereof
KR101655157B1 (en) Apparatus and method for work process modeling using data oriented programming model
CN114721647B (en) An Object-Oriented Programming Method Based on Codeless Application Development
CN111930387B (en) Integration method and device of integration package, electronic equipment and storage medium
JPH064280A (en) Graphical user interface having function of user control for object with wysiwyg type editor
JP2019121087A (en) Information processing apparatus, processing method thereof, and program
JP6647954B2 (en) Design document input / output device, design document input / output system, and design document input / output method

Legal Events

Date Code Title Description
PA0109 Patent application

Patent event code: PA01091R01D

Comment text: Patent Application

Patent event date: 20150421

PA0201 Request for examination
PE0902 Notice of grounds for rejection

Comment text: Notification of reason for refusal

Patent event date: 20160205

Patent event code: PE09021S01D

E701 Decision to grant or registration of patent right
PE0701 Decision of registration

Patent event code: PE07011S01D

Comment text: Decision to Grant Registration

Patent event date: 20160523

GRNT Written decision to grant
PR0701 Registration of establishment

Comment text: Registration of Establishment

Patent event date: 20160629

Patent event code: PR07011E01D

PR1002 Payment of registration fee

Payment date: 20160630

End annual number: 3

Start annual number: 1

PG1601 Publication of registration
FPAY Annual fee payment

Payment date: 20190615

Year of fee payment: 4

PR1001 Payment of annual fee

Payment date: 20190615

Start annual number: 4

End annual number: 4

PR1001 Payment of annual fee

Payment date: 20210602

Start annual number: 6

End annual number: 6

PR1001 Payment of annual fee

Payment date: 20230628

Start annual number: 8

End annual number: 8

PR1001 Payment of annual fee

Payment date: 20240629

Start annual number: 9

End annual number: 9

PR1001 Payment of annual fee

Payment date: 20250630

Start annual number: 10

End annual number: 10