KR101747424B1 - Apparatus and method for integrating design and implementation in object-oriented programming - Google Patents

Apparatus and method for integrating design and implementation in object-oriented programming Download PDF

Info

Publication number
KR101747424B1
KR101747424B1 KR1020160014191A KR20160014191A KR101747424B1 KR 101747424 B1 KR101747424 B1 KR 101747424B1 KR 1020160014191 A KR1020160014191 A KR 1020160014191A KR 20160014191 A KR20160014191 A KR 20160014191A KR 101747424 B1 KR101747424 B1 KR 101747424B1
Authority
KR
South Korea
Prior art keywords
class
codes
code
source codes
objects
Prior art date
Application number
KR1020160014191A
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 KR1020160014191A priority Critical patent/KR101747424B1/en
Application granted granted Critical
Publication of KR101747424B1 publication Critical patent/KR101747424B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/34Graphical or visual programming
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code

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)
  • Devices For Executing Special Programs (AREA)

Abstract

In this embodiment, the visual code editing module generates a class structure corresponding to the objects included in the visual code input by the developer, and generates class source codes corresponding to the class structure and objects included in the visual code Generating corresponding object source codes; Wherein the visual code editing module extracts client objects and server objects having a cooperative relationship among the objects included in the visual code, and extracts client objects and server objects corresponding to the mutual cooperation relationship between the client objects and the server objects, Modifying the source codes and the object source codes; Modifying the class source codes so that the text code editing module includes the instructions entered by the developer into the methods included in the class source codes; Determining a validity of a mutual cooperation relationship between the client object and the server object among the objects by analyzing the class source codes and the object source codes by the synchronization module and providing the determination result; The object code compiler converts the object source codes into object container (runtime-system) configuration codes, and the class code compiler converts the class source codes into class binary codes; The object container reading the object container configuration codes and the class binary codes, and executing the object container configuration codes and the class binary codes; The developer determines whether the execution result meets the requirements of the application, and if the execution result does not match the requirement, repeating the steps until the execution result meets the requirement And an object-oriented programming method that integrates application design and implementation, including:

Description

[0001] Apparatus and method for integrating application design and implementation [

The present invention relates to software development technology, and more particularly, to developing a large-scale enterprise application having a complicated structure by using class-based object-oriented programming technology, To a technique that facilitates software development and maintenance by synchronizing the design and implementation of the software in a manner that automates the generation of the source code corresponding to the visualized application structure.

Today's software development, especially the development of complex and large-scale enterprise applications, is based on a class-based object-oriented programming language such as Java or C #, and EJB (), which delegates common services such as object lifecycle management and transaction processing. Enterprise JavaBeans) based on server software such as object containers or Spring Framework. In addition, the design of enterprise applications typically uses the Unified Modeling Language (UML) graphical design language.

Object-oriented programming techniques, represented by Java and C #, identify software programs as a set of mutually cooperating objects, or small software modules. This division of the program into object units has the advantage of facilitating analysis and design by structuring the program to resemble the structure of the real world it handles, while making the problem easier to divide into smaller parts. Furthermore, when developing a program, it is possible to inherit or copy existing code of a class (object) and reuse it, and when a problem or a need to correct a problem occurs in a program, it is possible to completely reuse the remainder It also provides efficiency.

Object-oriented programming languages are classified into class-based languages and prototype-based languages. Class-based languages such as Java and C # are excellent in type stability, reliability, and efficiency and are used in most enterprise application development. The language makes it possible to modify a running program without compiling it, but it is used for limited purposes such as web page function change usually because of low stability, reliability, and efficiency.

The object of the present invention is to improve the productivity and maintainability of enterprise application development, and therefore, the limitations and disadvantages of class-based object-oriented programming technology are pointed out here.

In class-based object-oriented programming environment, in order to efficiently use the limited memory and processor of a computer, instances of classes that actually operate when a program is executed, that is, object creation and destruction and message transfer between objects, It is imperative to implement. However, the complexity of the program increases and the burden on the developer becomes greater as the application's behavior can not be expressed indirectly, even in pure text code.

In addition, the Spring Framework, which is used to delegate object lifecycle management and various common services, needs to learn its usage and to accurately describe the configuration information. In addition, complex application code and configuration information Weigh the burden of cross-comparison.

Graphical design tools, such as UML, are used only to draw designs that do not contribute to code generation, except for class diagrams that represent the structure of the application in an easily identifiable scheme, but not very useful for coding. Some graphical design tools that generate code automatically have been commercialized, but they are all used to generate programs that process a specific task in a specific way, but not in the business logic of an enterprise application with infinite number of instances. It can not be used for creative implementation.

The present invention enables a user to directly express the generation and disappearance of objects and message transfer between objects on a graphic screen when developing and maintaining enterprise applications based on class-based object-oriented programming technology and an execution system such as a spring, By automating the corresponding complicated but mechanistic coding and execution configuration file creation, we intend to significantly reduce the burden that the existing development paradigm has burdened the developer.

In order to accomplish the above object, the present invention provides an object-oriented programming method software that visually expresses an object creation and a collaboration relationship between objects, and automatically generates a source code corresponding thereto, Start development environment.

The object-oriented programming method integrating application design and implementation according to embodiments of the present invention is a method in which a visual code editing module creates a class structure corresponding to objects included in a visual code input by a developer, Generating corresponding class source codes and object source codes corresponding to the objects included in the visual code; Wherein the visual code editing module extracts client objects and server objects having a cooperative relationship among the objects included in the visual code and displays the generated class source Modifying the codes and object source codes; Modifying the class source codes so that the text code editing module includes the instructions entered by the developer into the methods included in the class source codes; Determining a validity of a mutual cooperation relationship between the client object and the server object among the objects by analyzing the class source codes and the object source codes by the synchronization module and providing the determination result; The object code compiler converts the object source codes into object container (runtime-system) configuration codes, and the class code compiler converts the class source codes into class binary codes; The object container reading the object container configuration codes and the class binary codes, and executing the object container configuration codes and the class binary codes; The developer determines whether the execution result meets the requirements of the application, and if the execution result does not match the requirement, repeating the steps until the execution result meets the requirement The method comprising the steps of:

Wherein the step of modifying the class source codes and the object source codes so as to correspond to the cooperative relationship between the objects comprises the step of, in response to mutual cooperation between the client object and the server object included in the visual code, Generates a variable declaration and a method invocation statement for invoking a method contained in the server object and generates a class source code corresponding to the client object to include the variable declaration and the method call statement And modify the object source codes corresponding to the client object to include the identifier of the server object and the variables included in the variable declaration.

The synchronization module may be configured to determine whether or not the variable declaration and the method call statement necessary for cooperation among the objects included in the class source code have been modified by the developer or the identifier included in the object source code And the variable match the identifier of the server object and the variable declaration of the class source code.

Wherein the providing of the determination result comprises: extracting a client object including an invalid cooperative relationship included in the determination result; The visual code editing module providing the developer with one or more options for resolving the invalid cooperation relationship; And when the option selected by the developer is received, the visual code editing module may modify the visual source code and the class source code and object source code of the client object to correspond to the selected option.

The object-oriented programming device incorporating the application design and implementation according to the embodiments of the present invention generates a class structure corresponding to the objects included in the visual code input by the developer and generates a class structure corresponding to the class structure And extracting a client object and a server object having mutual cooperative relations among the objects included in the visual code, and transmitting the client object and the server object A visual code editing module for modifying the generated class source codes and object source codes so as to correspond to a cooperative relationship among the objects; A text code editing module that modifies the class source codes so that the methods included in the class source codes are included in the statements input by the developer; A synchronization module for analyzing the class source codes and the object source codes to determine the validity of the mutual cooperation relationship between the client object and the server object among the objects and to provide the determination result; An object code compiler for converting the object source codes into object container (runtime-system) setting codes; A class code compiler for converting class source codes into class binary codes; And an object container for reading the object container setting codes and the class binary codes, and for executing the object container setting codes and the class binary codes.

A computer program according to an embodiment of the present invention may be stored in a medium using a computer to execute any one of the object-oriented programming methods according to an embodiment of the present invention.

In addition to this, another method for implementing the present invention, another system, and a computer-readable recording medium for recording a computer program for executing the method are further provided.

Other aspects, features, and advantages other than those described above will become apparent from the following drawings, claims, and the detailed description of the invention.

The present invention as described above enables a user to visually expose and directly handle the existence of an object and message transfer between objects when developing software in a class-based object-oriented programming manner, and automates text coding related to method calls through indirect layers such as variables , It greatly reduces the developer's burden of writing and analyzing the code, and greatly enhances the productivity and maintainability of the software development.

1 and 2 are diagrams illustrating operations of an object-oriented programming apparatus according to embodiments of the present invention.
3 is a block diagram of an object-oriented programming device that incorporates application design and implementation in accordance with embodiments of the present invention.
4 is a block diagram of a storage medium.
5 through 6 are flowcharts illustrating an object-oriented programming method incorporating application design and implementation in accordance with embodiments of the present invention.
Figure 7 is an example of visual code generated by an object-oriented programming device that integrates application design and implementation and class source code corresponding to the visual code.
8A and 8B are an example of object code corresponding to the visual code and object container setting code corresponding to the object source codes.
9 and 10 are examples of user interfaces provided by the object-oriented programming device according to embodiments of the present invention.

BRIEF DESCRIPTION OF THE DRAWINGS The present invention is capable of various modifications and various embodiments, and specific embodiments are illustrated in the drawings and described in detail in the detailed description. The effects and features of the present invention and methods of achieving them will be apparent with reference to the embodiments described in detail below with reference to the drawings. The present invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein.

Hereinafter, exemplary embodiments of the present invention will be described in detail with reference to the accompanying drawings, wherein like reference numerals refer to like or corresponding components throughout the drawings, and a duplicate description thereof will be omitted .

In the following embodiments, the terms first, second, and the like are used for the purpose of distinguishing one element from another element, not the limitative meaning.

In the following examples, the singular forms "a", "an" and "the" include plural referents unless the context clearly dictates otherwise.

In the following embodiments, terms such as inclusive or possessed mean that a feature or element described in the specification is present, and does not exclude the possibility that one or more other features or components are added in advance.

If certain embodiments are otherwise feasible, the particular process sequence may be performed differently from the sequence described. For example, two processes that are described in succession may be performed substantially concurrently, and may be performed in the reverse order of the order described.

In the following embodiments, the term "circuit" refers to any circuitry, circuitry, and / or circuitry, including, for example, hardwired circuitry, programmable circuitry, state machine circuitry, and / or firmware that stores instructions executed by a programmable circuit, either alone or in any combination . The application may be implemented as code or instructions that may be executed on a programmable circuit, such as a host processor or other programmable circuit. A module, as used in any of the embodiments herein, may be implemented as a circuit. The circuitry may be implemented as an integrated circuit, such as an integrated circuit chip.

In the following embodiments, when a component is referred to as "comprising ", it means that it can include other components as well, without excluding other components unless specifically stated otherwise. Also, the terms " part, "" module," and " module ", etc. in the specification mean a unit for processing at least one function or operation and may be implemented by hardware or software or a combination of hardware and software have.

1 and 2 are diagrams illustrating operations of the object-oriented programming device 100 according to the embodiments of the present invention.

Referring to FIG. 1, the object-oriented programming device 100 includes a visual code editing module M1, a synchronization module M2, a text code editing module M3, an object code compiler M4, a class code compiler M5, Program code and the like corresponding to the object container M6 are stored in the storage medium and the visual code diagram F1 generated by the object-oriented programming device, the object source code file F2, the class source code file F3 ), An object container configuration file (F4), and a class binary file (F5).

Functions of the visual code editing module M1, the synchronization module M2, the text code editing module M3, the object code compiler M4, the class code compiler M5, and the object container M6 are described with reference to FIG. 4 In this section, we will focus on the relationship between input and output through the module.

Visual code diagrams include visual code that is entered and edited by the developer. The object-oriented programming device 100 allows the visual code diagram F1 to be generated through various editing tools and user input. The generated visual code is changed into the object source code file F2 and the class source code file F3 by the visual code editing module M1.

The text code editing module M3 provides a function for creating and modifying the class source code file F3 and changes the class source code file according to the input from the developer or the user.

The synchronization module M2 analyzes the class source code file F3 and the object source code file F2 generated or changed through the visual code editing module M1 and the text code editing module M3 and generates the visual code diagram F1 The class source code file F3, the object source code file F2, and the visual code diagram F1 are synchronized so that they can include the same objects and mutual cooperation among the objects. More specifically, the synchronization module M2 may allow the contents of the class source code file F3 edited or generated by the developer to be applied to the visual code diagram F1. In addition, the synchronization module M2 may allow the contents of the object source codes edited by the developer to be applied to the visual code diagram F1.

The object code compiler M4 performs a function of changing the source codes included in the object source code file F2 into a format that the object container 126 can understand. At this time, the object code compiler (M4) may not only change the format but also generate the necessary source codes. The object code compiler M4 can generate the object container configuration file F4 according to the specification and rule of each object container in consideration of the type of the object container.

The class code compiler M5 performs a function of changing the source codes included in the class source code file F3 into a format that the object container 126 can understand. At this time, the class code compiler (M5) may not only change the format but also generate the necessary additional source codes. The class code compiler M5 can generate the class binary file F5 according to the specification and rule of each object container in consideration of the kind of the object container.

The object container M6 receives the object container configuration file F4 and the class binary file F5 and analyzes the files F4 and F5. The result of the analysis of the object container is the execution of the program.

Referring to FIG. 2, the object-oriented programming method includes an object level programming step S10, a statement level programming step S20, a synchronization step S30, an abnormality determination step S40, a compilation step S50, S60), a function error checking step (S70), and a delivering step (S80).

In S10, the object-oriented programming device 100 generates and modifies class source codes and object source codes according to the visual code received or input by the developer. More specifically, in step S10, the object-oriented programming device 100 generates source codes for defining or declaring classes and objects so as to correspond to visual codes including mutual cooperation between objects and objects, To generate the necessary source code. The mutual cooperation relationship between objects is determined by the source code that defines or declares the type of each object or class considering the methods and interfaces of the class according to the information inputted or received by the developer, Lt; / RTI > Here, the client object is the calling object, and the server object is the object to be called. In the object-oriented programming device 100, the source codes generated in S10 include only a declaration, a declaration statement, or a call statement, and do not include executable code of each function (method, interface, etc.). In S20, the object-oriented programming device 100 controls the execution source codes of the respective functions to be input by the developer.

In step S30, the object-oriented programming device 100 analyzes the class source codes and the object source codes, and confirms mutual cooperation relationships between the objects and the objects as a result of analyzing the class source codes and the object source codes. You can modify the mutual relationships between the objects and objects included in the visual code.

In step S40, the object-oriented programming device 100 determines the validity of mutual cooperation among the objects after the synchronization process (S30). For example, the object-oriented programming device 100 determines whether there is a mutual cooperation among objects, a case where objects are not called, a case where there is no mutual cooperation among objects despite a call between objects .

In S50, the object-oriented programming device 100 compiles object source codes and class source codes, respectively. The object-oriented programming device 100 compiles object source codes, converts them into object container configuration codes, and compiles and converts the class source codes into class binary codes.

In S60, the object container setting code and class binary codes are executed through the object container of the object-oriented programming device 100. [ In S70, the object-oriented programming device 100 provides an output of the execution result, and can control whether the output meets the purpose, requirements, etc. of the program directly or by the developer. The determination of the direct execution result may mean judging whether the output of the execution result is included in the output, the output value, etc. stored in advance in the object-oriented programming device 100. If an error is found on the function, the object-oriented programming device 100 controls to perform steps S10 to S60 again.

In step S80, when it is determined that there is no functional error, it is a process of delivering the executable file generated by the object-oriented programming device 100, and specifies what is done by a person. S80 may include the step of delivering from the object-oriented programming device 100 to another computer device that is electrically or via wire or wireless communication.

2 is a diagram illustrating an object-oriented programming process, which may appear similar to a conventional program development process, but the object-oriented programming device 100 declares each object, and class source codes corresponding to the declared and defined object There is a difference in being generated automatically.

3 is a diagram showing a computer apparatus 10 for creating an object according to the structure of a class according to an embodiment of the present invention.

3, an object-oriented programming device 100 that integrates application design and implementation in accordance with an embodiment of the present invention includes a processor 110, a storage medium 120, an input 130, and an output 140 .

The object-oriented programming device 100, which integrates application design and implementation in accordance with embodiments of the present invention, receives or downloads an executable file of a programming application from an external server or device and executes the executable file, Or can be mounted. The object-oriented programming device 100, which integrates application design and implementation in accordance with embodiments of the present invention,

The object-oriented programming device 100, which integrates application design and implementation according to embodiments of the present invention, may provide an object-oriented programmable editor, a debugger, and a compiler. In addition, the computer device 100 for generating an object according to the structure of a class according to the embodiments of the present invention eliminates the trouble of creating a code and / or an instruction according to the design of the program, Depending on the design of the program, it is possible to control the generation of codes and / or instructions related to the definition and declaration of data, classes, and objects.

The object-oriented programming device 100 incorporating application design and implementation in accordance with embodiments of the present invention may include code and / or instructions associated with data, classes, and / or objects directly entered by a user or developer, / Or the modifications contained in the command can be reflected in the visual code of the class and / or object. Here, the visual code is a code obtained by schematizing an inheritance relation or an emergency relation of a class and an object according to a predetermined rule.

The processor 110 typically controls the overall operation of the computing device 100 to create objects according to the structure of the class. For example, the processor 110 may include an input control module 121, a display control module 122, a code generation module 123, a visual code generation module 124, The module 125, and the compilation module 126, respectively.

The processor 110 may refer to a data processing device embedded in hardware having, for example, physically structured circuitry to perform the functions represented by code or instructions contained within the program. As an example of the data processing apparatus built in hardware, a microprocessor, a central processing unit (CPU), a processor core, a multiprocessor, an application-specific integrated circuit (ASIC) circuit, and a field programmable gate array (FPGA), but the scope of the present invention is not limited thereto.

The storage medium 120 refers to a storage device electrically connected to the object-oriented programming device 100 that is included in the object-oriented programming device 100 that integrates the application design and implementation or that integrates the application design and implementation. The storage medium 120 may store a plurality of modules that refer to the operation of the object-oriented programming device 100 that integrates application design and implementation.

The storage medium 120 may be a flash memory type, a hard disk type, a multimedia card micro type, a card type memory (for example, SD or XD memory) (Random Access Memory) SRAM (Static Random Access Memory), ROM (Read Only Memory), EEPROM (Electrically Erasable Programmable Read-Only Memory), PROM (Programmable Read-Only Memory) A disk, and / or an optical disk. In addition, the object-oriented programming device 100, which integrates application design and implementation, may operate a web storage or a cloud server that performs storage functions of the storage medium 120 on the Internet.

The input unit 130 may include a key pad, a dome switch, a touch pad (a contact type capacitance type, a pressure type resistive type, an infrared ray type, A sensing method, a surface ultrasonic wave propagation method, an integral type tension measuring method, a piezo effect method, etc.), a jog wheel, a jog switch, and the like.

The output unit 140 may be a liquid crystal display, a thin film transistor-liquid crystal display (LCD), or the like, as a means for displaying display data or outputting sound data in accordance with a command generated by the processor 110 ), An organic light-emitting diode, a flexible display, a 3D display, and an electrophoretic display. The output unit 140 includes a speaker and a computer device 100 that generates an object according to the structure of the class according to the implementation of the computer device 100 that generates the object according to the structure of the class. (S) 140 may be included. At this time, the two or more output units 140 may be arranged to face each other using a hinge.

4 is a block diagram illustrating an object-oriented programming device incorporating application design and implementation in accordance with embodiments of the present invention.

4, an object-oriented programming device 100 that integrates application design and implementation includes a visual code editing module 121, a text code editing module 122, a synchronization module 123, an object code compiler 124, A class code compiler 125, and an object container 126.

The visual code editing module 121 controls to generate and edit a visual code according to a signal input from a user or a developer, and generates object source codes and class source codes corresponding to the visual code. The visual code editing module 121 may provide editing tools capable of generating visual code including mutual cooperation between objects and objects. The editing tools are implemented in various user interfaces, and the user or the developer can create a mutual cooperation relationship between objects or objects by user input such as a mouse or a touch. At this time, the visual code for the class corresponding to the structure of the object may not be generated. Since the class is just a declaration or definition of a structure for using and executing an object in a real object-oriented programming language, objects required for object-oriented programming are converted into visual code and generated.

The visual code editing module 121 can generate the class source codes and the object source codes that correspond to each other and correspondence between the objects and objects included in the visual code generated by the developer. Here, among the objects included in two object pairs having mutual cooperation, an object that transmits a message, that is, an object that calls a method is called a client object, and an object that receives a message, I'll call it a server object. Since the client object and the server object are relative concepts, one object may be a client object for a first mutual cooperation relationship, and a server object for a second mutual cooperation relationship different from the first mutual cooperation relationship. Here, the cooperative relationship can be formed between one object and one object, and can be formed between a plurality of objects to one object, or between one object and a plurality of objects.

The class source codes and the object source codes corresponding to the generation order of the visual code are generated. Objects are generated first according to the inputs of the developer or the user, and mutual cooperation relationships among the objects can be generated next. The class source codes corresponding to the objects may include codes for defining and declaring classes according to the names of the classes included in the generated object creation signal. The mutual cooperation relationship between the objects and the corresponding class source codes include code for connecting the method and the second object so that the method of the first object can be called by the second object according to mutual cooperation among the objects can do. More specifically, as shown in FIG.

The text code editing module 122 may provide a function of modifying the class source codes according to a developer's input. The text code editing module 122 can directly provide the functions of an editor for general programming.

The synchronization module 123 provides the function of synchronizing the visual code, class source codes and the object source codes. More specifically, if there is a modification of the class source code or object source code by the text code editing module 122, the synchronization module 123 may modify the visual code to correspond to the class source codes or object source codes .

When all or a part of the class source code is deleted, modified, or added by the text code editing module 122, the synchronization module 123 compares the class source codes and the visual code, and corresponds to the modified class source codes You can modify the visual code as much as possible. In addition, the synchronization module 123 can determine whether or not it includes an invalid cooperation relationship due to modification, deletion, addition, and, if a determination is made that an invalid cooperation relationship is found as a result of the determination, . For example, if a collaboration between a first object and a second object is deleted due to modification of class source codes, the visual code editing module may provide options to modify the collaboration relationship. Here, the options for modifying the cooperation relationship are as shown in FIG. When all or a part of the object source code is deleted, modified or added by the text code editing module 122, the synchronization module 123 compares the object source codes and the visual code, and corresponds to the modified object source codes You can modify the visual code as much as possible. Likewise, the synchronization module 123 can determine whether or not it includes an invalid cooperation relationship due to modification, deletion, addition, and, if a determination is made that an invalid cooperation relationship is found as a result of the determination, . Due to modifications to the object source code, if an invalid collaboration relationship is found, the object-oriented programming device 100 may provide a user interface as shown in FIG.

The object code compiler 124 changes the format of the object source codes into the format of the object container so that the object container 126 interprets and executes the object source codes. Let's call the code that changed in the form of an object container the object container configuration code. The format of the object container is defined differently according to the type of the object container. The object code compiler 124 can generate the object container setting codes in consideration of the type of the object container.

The class code compiler 125 converts the class source codes into a class binary format so that the object container 126 can interpret and execute the class source codes. The functions and implementations of the compiler can be known to those skilled in the art. Therefore, detailed explanation will be omitted.

The object container 126 is a runtime system that provides functions for reading object container setting codes and class binary codes, and controlling and activating generation and destruction of objects required for execution.

5 through 6 are flowcharts illustrating an object-oriented programming method incorporating application design and implementation in accordance with embodiments of the present invention.

Referring to FIG. 5, an object-oriented programming method according to embodiments of the present invention includes receiving a visual code (S100), generating a class source code (S200), generating an object source code (S300) (S600); determining whether the class source codes and the object source codes are valid (S600); determining whether the class source codes are valid And providing a result (S700).

In step S100, the visual code editing module 121 receives or receives a visual code from a developer. The visual code received or input by the developer may include a first object and a second object. The signal for generating the first object may include the name of the first object, the name and type of the first class in which the first object is included, and the like. The signal for generating the second object may also include the name of the second object, the name and type of the second class in which the second object is included. The visual code received or input by the developer may include a cooperative relationship between the first object and the second object. A signal for creating a mutual cooperation relationship between the first and second objects includes a first interface for calling the second object and may include a name of a method associated with the first interface. Here, the first object, which is an object to be called, may be a client object, and the second object, which is an object to be called, may be a server object. Here, an interface is a type used in an object-oriented programming language and can be declared to be associated with a method. Interfaces that are associated with a single method can be declared or defined in multiple ways, and one of the interfaces is executed through the method. For example, when the first object and the second object included in the first class all include a function for performing a first action, a function of the first object and a function of the second object are respectively created as objects. The first class declares FlyBehavior, which is a method corresponding to the first behavior, as an interface so that a function of the first object is called for the first object and a function of the second object is called for the second object, And a method invocation statement associated with invoking the interface. The function of the first object and the function of the second object may be implemented so that they can be executed upon invocation of the interface.

In step S200, the visual code editing module 121 defines a class structure corresponding to the objects included in the visual code, class source codes corresponding to the class structure, and object sources corresponding to the objects included in the visual code Generate codes. Here, a class and an object are terms used in an object-oriented programming language, a class refers to a structure including one or more variables, and an object refers to data that conforms to a structure of a class. Here, a class may be defined to include one or more variables that an object must contain, and one or more methods that must be executed and executed by the object. The object-oriented programming method according to embodiments of the present invention can generate a class structure so as to correspond to an object by generating an object without creating and defining a class, and generate class source codes corresponding to a class. For example, the visual code input by the developer includes a mallardDuck having the structure of class Duck, which includes a method fly corresponding to the first behavior, and a method called quack The visual code editing module 121 generates Duck, which is the class of the mallardDuck, and Duck generates the class source codes so as to include the first action fly and the second action Quack.

Generally, for object-oriented programming, a developer must define or create a class that is a structure of an object before creating an object. In addition, the developer defines and creates a class, and then creates an object of the class type, and then object-oriented programming using the object becomes possible. On the other hand, the object-oriented programming device 100 according to the embodiments of the present invention can generate the class structure corresponding to the object through the visual code including only the object, and generate class source codes related to the class. Accordingly, the object-oriented programming device 100 according to the embodiments of the present invention can define the structure of a class and reduce the labor required to generate class source codes according to the structure of the class. In addition, the object-oriented programming device 100 according to the embodiments of the present invention can easily generate class source codes that match the structure of a class.

In step S300, the visual code editing module 121 extracts a cooperative relationship between at least two objects among the objects included in the visual code, and generates the generated class source codes And object source code. The class source codes may further include a call statement required to call a server object on which the calling client object is called so that the mutual cooperation relationship of at least two objects among the objects included in the visual code is matched. Here, an example of the call statement may be D2 and D3 in Fig. 7 (b).

In addition, the object source codes will be described in detail with reference to FIG. 8 so as to correspond to mutual cooperation relationships among at least two objects among the objects included in the visual code.

In S400, the text code editing module 122 receives the statements of the method included in the class source codes from the developer. The text code editing module 122 receives the statements of the methods included in the class source codes. Here, the automatically generated class source code contains method declarations, but does not include method statements. The statements of the method are received by the developer. At this point, the developer does not need to generate a method declaration. An example of the statements of the method input by the developer is shown in Fig. 7 (c).

In S500, the text code editing module 122 modifies the class source codes so that the methods included in the class source codes include the statements.

In step S600, the synchronization module 123 analyzes the class source codes and the object source codes to determine the validity of mutual cooperation between at least two objects among the objects. The validity determination step (S600) will be described with reference to FIG. 4 and FIG. In S700, the synchronization module 123 provides the developer with the result of the validity determination to the developer in various ways. In S800, the object code compiler 124 converts the object source codes into object container setting codes, and the class code compiler 125 converts the class source codes into class binary codes. The object code compiler 124 may generate object container configuration codes by converting the object source codes into a format that the object container 126 can interpret.

In S900, the object container 126 executes the object container setting codes and the class binary codes. An object container is a module that is included in the Spring Framework. It uses Ioc to manage the components that make up the application, and can create associations between cooperating components.

Further, in the object-oriented programming method according to the embodiments of the present invention, when the developer determines whether the execution result meets the requirements of the application, and when the execution result does not match the requirement, And repeating the steps until the execution result meets the requirement. The requirements of an application correspond to the purpose of the program, and may include various things depending on the intention of the requester. The requirements of an application can be related to such things as input, output, display, and so on.

6 is a flowchart for explaining the validity determination step (S600).

The validity determination step S600 includes a step S601 of analyzing the class source codes and the object source codes, a step of extracting an invalid cooperative relationship included in the class source codes and the object source codes S602), the step (S603) of modifying the visual code so that the one or more objects include a valid mutual cooperation relationship, and the step (S604) of providing the modified visual code. The validity determination step S600 may modify the class source codes and the object source codes to correspond to the modified visual codes.

In step S601, the synchronization module 123 analyzes the class source codes and the object source codes. More specifically, the synchronization module 123 extracts mutual cooperation relationships between the objects included in the object source codes and corresponding codes, and parses the codes to associate with the classes and objects constituting the cooperative relationship Information can be extracted. In step S602, the synchronization module 123 determines whether or not the mutual cooperation between the first object and the second object exists in the entire source codes, Object source codes or class source codes may be modified to delete the source codes corresponding to the mutual cooperation relationship (S603). More specifically, when all or some of the class source codes are deleted, modified, or added by the text code editing module 122, the synchronization module 123 compares the class source codes and the visual code, Visual code can be modified to correspond to class source code. In addition, the synchronization module 123 can determine whether or not it includes an invalid cooperation relationship due to modification, deletion, addition, and, if a determination is made that an invalid cooperation relationship is found as a result of the determination, . For example, if a collaboration between a first object and a second object is deleted due to modification of class source codes, the visual code editing module may provide options to modify the collaboration relationship. Here, the options for modifying the cooperation relationship are as shown in FIG. When all or a part of the object source code is deleted, modified or added by the text code editing module 122, the synchronization module 123 compares the object source codes and the visual code, and corresponds to the modified object source codes You can modify the visual code as much as possible. Likewise, the synchronization module 123 can determine whether or not it includes an invalid cooperation relationship due to modification, deletion, addition, and, if a determination is made that an invalid cooperation relationship is found as a result of the determination, . Due to modifications to the object source code, if an invalid collaboration relationship is found, the object-oriented programming device 100 may provide a user interface as shown in FIG. The object-oriented programming device according to embodiments of the present invention may provide the developer with the modified visual code, object source codes, or class source codes (S604).

In another embodiment, the object-oriented programming method may extract invalid cooperating relationships and provide only information about the invalid cooperating relationships to the developers. In this case, the object-oriented programming method can receive the modification codes so that the invalid mutual association is deleted by the developer or the invalid mutual relationship is modified. The object-oriented programming method may control to apply the modified codes to object source codes, class source codes, and visual code.

FIG. 7 is an example of visual code generated by the object-oriented programming device according to the embodiments of the present invention and class source codes for a class corresponding to the visual code.

As shown in FIG. 7A, the visual code edited by the object-oriented programming device according to the embodiments of the present invention includes a first object rubber, a second object flyWithRocket, a third object squeak, Between the object rubber and the second object flyWithRocket, between the first object rubber and the third object squeak. Since a method is required for calling between objects, the first object rubber calls the second object flyWithRocket using the first method fly by the visual code input by the developer, and the first object rubber calls the second method quack To call the third object squeak.

An example of the class source codes corresponding to the visual code will be described with reference to FIG. 7 (b). The class source codes corresponding to the visual code correspond to the mutual cooperation relationship between the first class source codes corresponding to the object and the behavior of the object included in the visual code and the behavior of the object and the object included in the visual code And may include second class source codes (D1, D2, D3).

The first class source codes will include code associated with the declaration and definition of the first through third objects squeak. The first class source codes may include the remaining codes except for D1, D2, and D3 in CC1, the remaining codes except for D4 in CC2, and CC3. The second class source codes correspond to the cooperation relationship between the first object rubber and the second object flyWithRocket so that the variable declaration D1 is made so that the second object flyWithRocket can be called by the first class, And a method call statement D2. The first class source codes and the second class source codes may be automatically generated by the object-oriented programming device according to embodiments of the present invention in correspondence with the visual code. Here, D4 in Fig. 7 (c) is a statement of FlyWithRocket which is an interface execution code.

FIG. 8 is an example of object source codes generated by the object-oriented programming device according to the embodiments of the present invention.

The object code corresponding to the visual code shown in FIG. 8A may include OC1, OC2, and OC3. OC1 is the object source codes corresponding to the first object rubber, OC2 is the second object flyWithRocket, and OC3 is the object source codes corresponding to the third object squeak.

As shown in FIG. 8A, the object source codes may include information related to a class with a parameter of FieldTypeQName, FieldVarName, and information related to the object with a parameter of fieldBeanId, fieldBeanTypeQName. The object source codes (OC1) are code related to the object rubber included in the class Duck, and the object source codes (OC2) are codes related to the object flyWithRocket having a relation called via flyBehavior, Object source code (OC3) is the code associated with object Squeak, which has a relationship called through the QuackBehavior contained in the class. FIG. 8B is an example of object container configuration codes corresponding to the object source codes of FIG. 8A. 8B, the object container setting codes may include codes OCC2 corresponding to rubber, codes OC3 corresponding to object flyWithRocket, and codes OC4 corresponding to object Squeak.

9 and 10 are examples of user interfaces provided by the object-oriented programming device 100. FIG.

9, when the developer deletes the mutual cooperation required for programming and the corresponding class source code, the object-oriented programming device 100 generates information (UI1 ), And at the same time, provide a first option to completely delete the remaining codes related to the required cooperation relationship and the corresponding method or interface, and a second option (UI2) to revive the cooperation relationship.

10, when the developer deletes the mutual cooperation required for programming and the corresponding object source code, the object-oriented programming device 100 generates the necessary mutual cooperation and information related to the corresponding object ( UI3), and can provide one or more objects (UI4) defined by the same class.

The embodiments of the present invention described above can be embodied in the form of a computer program that can be executed on various components on a computer, and the computer program can be recorded on a computer-readable medium. At this time, the medium may be a magnetic medium such as a hard disk, a floppy disk and a magnetic tape, an optical recording medium such as CD-ROM and DVD, a magneto-optical medium such as a floptical disk, , A RAM, a flash memory, and the like, which are specifically configured to store and execute program instructions. Further, the medium may include an intangible medium that is implemented in a form that can be transmitted over a network, and may be, for example, a medium in the form of software or an application, which can be transmitted and distributed through a network.

Meanwhile, the computer program may be specifically designed and configured for the present invention or may be known and used by those skilled in the computer software field. Examples of computer programs may include machine language code such as those produced by a compiler, as well as high-level language code that may be executed by a computer using an interpreter or the like.

The specific acts described in the present invention are, by way of example, not intended to limit the scope of the invention in any way. For brevity of description, descriptions of conventional electronic configurations, control systems, software, and other functional aspects of such systems may be omitted. Also, the connections or connecting members of the lines between the components shown in the figures are illustrative of functional connections and / or physical or circuit connections, which may be replaced or additionally provided by a variety of functional connections, physical Connection, or circuit connections. Also, unless explicitly mentioned, such as " essential ", " importantly ", etc., it may not be a necessary component for application of the present invention.

The use of the terms " above " and similar indication words in the specification of the present invention (particularly in the claims) may refer to both singular and plural. In addition, in the present invention, when a range is described, it includes the invention to which the individual values belonging to the above range are applied (unless there is contradiction thereto), and each individual value constituting the above range is described in the detailed description of the invention The same. Finally, the steps may be performed in any suitable order, unless explicitly stated or contrary to the description of the steps constituting the method according to the invention. The present invention is not necessarily limited to the order of description of the above steps. The use of all examples or exemplary language (e.g., etc.) in this invention is for the purpose of describing the present invention only in detail and is not to be limited by the scope of the claims, It is not. It will also be appreciated by those skilled in the art that various modifications, combinations, and alterations may be made depending on design criteria and factors within the scope of the appended claims or equivalents thereof.

100: Object-oriented programming device
110: Processor
120: Storage medium
130:
140:

Claims (5)

The visual code editing module creates a class structure corresponding to the objects included in the visual code input by the developer and generates class source codes corresponding to the class structure and object sources corresponding to the objects included in the visual code Generating codes;
Wherein the visual code editing module extracts client objects and server objects having a cooperative relationship among the objects included in the visual code and displays the generated class source Modifying the codes and object source codes;
Modifying the class source codes so that the text code editing module includes the instructions entered by the developer into the methods included in the class source codes;
The synchronization module analyzing the class source codes and the object source codes to determine the validity of the mutual cooperation relationship between the client object and the server object among the objects and to provide a result of the determination;
The object code compiler converts the object source codes into object container (runtime-system) configuration codes, and the class code compiler converts the class source codes into class binary codes; And
The object container reading the object container configuration codes and the class binary codes, and executing the object container configuration codes and the class binary codes,
The step of providing the result of the determination
The synchronization module extracting a client object including an invalid cooperative relationship included in a result of the determination; The visual code editing module providing the developer with one or more options for resolving the invalid cooperation relationship; And modifying the visual code and the class source code and object source code of the client object to correspond to the selected option when the option selected by the developer is received, Object-Oriented Programming Method.
The method according to claim 1,
The step of modifying the class source codes and the object source codes to correspond to mutual cooperation between the objects
Wherein the visual code editing module includes a variable declaration for calling a method included in the server object and a method declaration for calling a method included in the server object, corresponding to a cooperative relationship between a client object and a server object included in the visual code, a method invocation statement to modify a class source code corresponding to a client object so as to include the variable declaration and the method invocation statement and to classify the client object so as to include an identifier of the server object and a variable included in the variable declaration, An object-oriented programming method that integrates application design and implementation, modifying corresponding object source codes.
The method of claim 1,
The step of providing the result of the determination
Wherein the synchronization module determines whether a variable declaration and a method invocation statement necessary for collaboration among objects included in the class source code are modified by the developer or whether an identifier and a variable included in the object source code are identical to the identifier of the server object, An object-oriented programming method that integrates application design and implementation to determine whether a class source code matches a variable declaration.
delete Generating a class structure corresponding to the objects included in the visual code input by the developer, generating class source codes corresponding to the class structure and object source codes corresponding to the objects included in the visual code, Extracting a client object and a server object having mutual cooperation among the objects included in the visual code, and generating the generated class source codes and object source code so as to correspond to a mutual cooperation relationship between the client object and the server objects A visual code editing module for modifying the contents;
A text code editing module that modifies the class source codes so that the methods included in the class source codes are included in the statements input by the developer;
A synchronization module for analyzing the class source codes and the object source codes to determine the validity of a mutual cooperation relationship between the client object and the server object among the objects and to provide a result of the determination;
An object code compiler for converting the object source codes into object container (runtime-system) setting codes;
A class code compiler for converting class source codes into class binary codes;
And an object container for reading the object container setting codes and the class binary codes and for executing the object container setting codes and the class binary codes,
The synchronization module
Extracting a client object including an invalid cooperative relationship included in the result of the determination,
The visual code editing module
Providing at least one option to the developer to resolve the invalid cooperation relationship and, when an option selected by the developer is received, modifying the visual source code and the object source code of the client object to correspond to the selected option An object-oriented programming device that integrates application design and implementation.
KR1020160014191A 2016-02-04 2016-02-04 Apparatus and method for integrating design and implementation in object-oriented programming KR101747424B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020160014191A KR101747424B1 (en) 2016-02-04 2016-02-04 Apparatus and method for integrating design and implementation in object-oriented programming

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020160014191A KR101747424B1 (en) 2016-02-04 2016-02-04 Apparatus and method for integrating design and implementation in object-oriented programming

Publications (1)

Publication Number Publication Date
KR101747424B1 true KR101747424B1 (en) 2017-06-27

Family

ID=59514654

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020160014191A KR101747424B1 (en) 2016-02-04 2016-02-04 Apparatus and method for integrating design and implementation in object-oriented programming

Country Status (1)

Country Link
KR (1) KR101747424B1 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101916960B1 (en) * 2017-12-29 2019-01-30 경기대학교 산학협력단 Apparatus and method in which a plurality of source codes are automatically combined
CN111399840A (en) * 2020-03-04 2020-07-10 腾讯音乐娱乐科技(深圳)有限公司 Module development method and device
CN111857033A (en) * 2020-08-07 2020-10-30 深圳市派姆智能机器有限公司 Compiling system of programmable controller
WO2021135497A1 (en) * 2020-01-02 2021-07-08 晶晨半导体(深圳)有限公司 Android-based method and device for same copy of source code to be compatible with client demands
KR102300005B1 (en) * 2021-03-05 2021-09-08 주식회사 스트라토아이티 Method and system for assisting software development using connection of graphic objects, each representing a software component

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101916960B1 (en) * 2017-12-29 2019-01-30 경기대학교 산학협력단 Apparatus and method in which a plurality of source codes are automatically combined
WO2021135497A1 (en) * 2020-01-02 2021-07-08 晶晨半导体(深圳)有限公司 Android-based method and device for same copy of source code to be compatible with client demands
CN111399840A (en) * 2020-03-04 2020-07-10 腾讯音乐娱乐科技(深圳)有限公司 Module development method and device
CN111399840B (en) * 2020-03-04 2024-03-19 腾讯音乐娱乐科技(深圳)有限公司 Module development method and device
CN111857033A (en) * 2020-08-07 2020-10-30 深圳市派姆智能机器有限公司 Compiling system of programmable controller
KR102300005B1 (en) * 2021-03-05 2021-09-08 주식회사 스트라토아이티 Method and system for assisting software development using connection of graphic objects, each representing a software component

Similar Documents

Publication Publication Date Title
KR101747424B1 (en) Apparatus and method for integrating design and implementation in object-oriented programming
US8516435B2 (en) System and method for generating implementation artifacts for contextually-aware business applications
KR101795844B1 (en) Runtime system
US9037595B2 (en) Creating graphical models representing control flow of a program manipulating data resources
Merle et al. A precise metamodel for open cloud computing interface
US20180074804A1 (en) Systems and methods for dynamically replacing code objects for code pushdown
US20080262815A1 (en) Processing logic modeling and execution
US20060117267A1 (en) System and method for property-based focus navigation in a user interface
US8291372B2 (en) Creating graphical models representing control flow of a program manipulating data resources
EP1630667A2 (en) System and method for comparing objects
Hunt The Unified Process for Practitioners: Object-oriented Design, the UML and Java
WO2017213846A1 (en) Automating feature graduation
US11853746B2 (en) Source code merge conflict resolution
US20150143267A1 (en) SYSTEM AND METHOD FOR DEVELOPING A RULE-BASED EVENT-DRIVEN MULTI-LAYERED FRONTEND FOR BUSINESS SERVICES AND RENDERING THE GUIs ON MULTIPLE CLIENT DEVICES
Savic et al. Use Case Specification Using the SILABREQ Domain Specific Language.
CN114860218A (en) Low code development method and device
Kurniawan et al. Challenges in developing sequence diagrams (UML)
Mani et al. Using user interface design to enhance service identification
CN114721647B (en) Object-oriented programming method based on codeless application development
CN114174983B (en) Method and system for optimized automatic verification of advanced constructs
CN114879957A (en) Method for editing Eclipse interface and calling tool by using extensible markup language
Cook Towards computer-supported collaborative software engineering
Stutz et al. Analysis beyond UML.
Davydova et al. Mining hierarchical UML sequence diagrams from event logs of SOA systems while balancing between abstracted and detailed models
US7917893B2 (en) Using a system of annotations to generate views and adapters

Legal Events

Date Code Title Description
GRNT Written decision to grant