WO2015178605A1 - 소프트웨어 코드의 시각적 구현 방법 및 장치 - Google Patents

소프트웨어 코드의 시각적 구현 방법 및 장치 Download PDF

Info

Publication number
WO2015178605A1
WO2015178605A1 PCT/KR2015/004651 KR2015004651W WO2015178605A1 WO 2015178605 A1 WO2015178605 A1 WO 2015178605A1 KR 2015004651 W KR2015004651 W KR 2015004651W WO 2015178605 A1 WO2015178605 A1 WO 2015178605A1
Authority
WO
WIPO (PCT)
Prior art keywords
code
code block
block
attribute
setting
Prior art date
Application number
PCT/KR2015/004651
Other languages
English (en)
French (fr)
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 CN201580009628.0A priority Critical patent/CN106030524B/zh
Priority to US15/102,259 priority patent/US9904524B2/en
Priority to JP2016550788A priority patent/JP2017506390A/ja
Publication of WO2015178605A1 publication Critical patent/WO2015178605A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • 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
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44589Program code verification, e.g. Java bytecode verification, proof-carrying code

Definitions

  • the present invention relates to a method and apparatus for visually implementing software code, and more particularly, to a method and apparatus for visually implementing software code using code blocks.
  • Programming languages are more difficult to read and understand than general languages. Programming languages must organize code sequentially according to the flow of control, and must be declared and defined correctly in every expression. In other words, if a programming language is not sequentially expressed in order, the expression has a different meaning, and an error may occur if the form or meaning of a syntax such as data and statements used in such a programming language is not defined correctly. . Because the computer cannot judge or understand in consideration of the situation, the sentences of all programming languages must be clearly defined, ordered, and composed in one meaning. For this reason, the general source code is composed of text, and the semantic unit of the code is composed of one line.
  • an object of the present invention is to provide an apparatus and method for visually implementing software code used in a programming language when implementing requirements and functions derived for software development in code.
  • Visual implementation method of the software code of the present invention for solving the above problems comprises the steps of generating a code block used to implement the software code in block units according to the requirements and functions by the code block generation unit; And setting, by the code block setting unit, a code block attribute or an internal attribute code included in the code block based on information input from the user, wherein the setting of the code block attribute or the internal attribute code comprises: code And including the function information on the block, the description information on the function information, and the internal attribute code in the code block.
  • the visual implementation method of the software code of the present invention may further include a step of converting, by a code block conversion unit, a code block into a code corresponding to a preset programming language upon request from a user.
  • the visual implementation method of the software code of the present invention after setting the code block attribute or the internal property code, when the display request for the code block from the user, the function information, description information and internal properties of the code block through the display unit
  • the method may further include displaying the code.
  • setting the code block attribute or the internal attribute code may include including the location, block number, index, management number, and internal attribute code of the code block in the code block.
  • the code blocks are classified into a hierarchical tree structure or a hierarchical block structure according to a user's setting. It may include the step.
  • the setting of the code block attribute or the internal attribute code may include automatically assigning a block number according to the position of the code block in the hierarchical tree structure or the hierarchical block structure.
  • the block number allocated in the step of assigning a block number is automatically changed when the position of the code block is changed through a user input.
  • code blocks are classified into upper code blocks and lower code blocks according to hierarchical tree structures or positions in the hierarchical block structure, and internal property codes included in lower code blocks are independently implemented for higher code blocks.
  • the input / output parameters of the lower code block included in the upper code block may be grouped and indexed according to characteristics.
  • the upper code block may include one or more lower code blocks, and the one or more lower code blocks may receive an input argument from the upper code block and return an output factor to the upper code block.
  • the upper code block includes all input / output factors required by the lower code block of the next step.
  • the code block may include a plain text code block, a loop code code block, and a conditional code block according to a control flow.
  • the setting of the code block attribute or the internal attribute code included in the code block may include setting the relationship between the generated code blocks and the code block to include or parallel relationship.
  • the internal attribute code comprises: a variable declaration window used to declare input variables and output variables of the internal attribute code; An input variable assignment window used to assign an input variable; A conditional window used for inputting a conditional or loop statement; A code input window used for software code input for implementing a function on a code block; And an output variable assignment window used to allocate the output variable.
  • the visual implementation method of the software code of the present invention after the step of setting the code block attribute or internal property code, by using the code block verifier, using random variables or variables input or output to the conditional statement in the code block
  • the method may further include verifying the code block.
  • the visual implementation method of the software code of the present invention may further include setting an access right of the code block by the code block permission setting unit after setting the code block property or the internal property code.
  • Visual implementation of the software code of the present invention for solving the above problems is a code block generation unit for generating a code block used to implement the software code in block units according to requirements and functions; And a code block setting unit for setting a code block attribute or an internal attribute code included in the code block based on information input from the user, wherein the code block setting unit includes: function information on the code block, description information on the function information, and It is characterized by including the internal attribute code in the code block.
  • the relationship between the code blocks becomes clear and the flow of input / output parameters becomes clear, so that the readability of the code can be improved and the software can be easily reused. have.
  • the code of the software corresponds to a code block as a unit performing a function
  • the code block may be implemented in a tree structure or a hierarchical block structure. As a result, the user can implement the software code more intuitively.
  • FIG. 1 is a conceptual diagram of a method of implementing software code through a visual implementation device of the software code of the present invention.
  • FIG. 2 is a diagram illustrating a structure of a code block displayed on a display unit according to an embodiment of the present invention.
  • FIG. 3 is a conceptual diagram for sharing data of a code block according to an embodiment of the present invention.
  • FIG. 4 is a diagram for a code block and a method for implementing software code using the code block according to an embodiment of the present invention.
  • FIG. 5 is a diagram illustrating a process of converting a generated code block to a code according to an embodiment of the present invention.
  • 6 and 7 are diagrams for describing a relationship between code blocks according to an embodiment of the present invention.
  • FIG. 8 is a block diagram of an apparatus for visually implementing software code according to an embodiment of the present invention.
  • FIG. 9 is a block diagram of a code block setting unit included in a visual implementation device of software code according to an embodiment of the present invention.
  • 10 to 17 are diagrams illustrating types of code blocks stored in a storage unit according to an embodiment of the present invention.
  • 18 is a diagram for a method of allocating a block number to a plurality of code blocks according to an embodiment of the present invention.
  • 19 is a diagram for an example in which a code block to which an index of the present invention is added is displayed.
  • 20 is a diagram for an example of converting a code block into a code through a code block converter included in a visual implementation device of the software code of the present invention.
  • 21 is a flowchart of a method of visually implementing software code according to an embodiment of the present invention.
  • 22 is a flowchart illustrating a step of setting code block information according to a user input in a visual implementation method of software code according to an embodiment of the present invention.
  • 1 is a view for explaining a method for implementing software code through a visual implementation device of the software code.
  • 2 is a diagram for describing a structure of a code block displayed on a display unit.
  • 3 is a diagram for explaining data sharing of a code block.
  • 4 is a diagram for explaining a code block and a method for implementing software code using the code block.
  • 5 is a diagram for describing a process of converting a generated code block into a code.
  • 6 and 7 are diagrams for describing a relationship between code blocks.
  • 8 is a view for explaining a visual implementation of the software code.
  • 9 is a diagram for describing a code block setting unit included in a visual implementation device of software code.
  • 10 to 17 are diagrams for describing types of code blocks stored in a storage unit.
  • FIG. 18 is a diagram for describing a method of allocating a block number to a plurality of code blocks.
  • 19 is a diagram for explaining an example in which an index added code block is displayed.
  • 20 is a diagram for describing an example of converting a code block into a code through a code block converter.
  • 21 is a diagram for describing a visual implementation method of software code.
  • FIG. 22 is a diagram for explaining a step of setting code block information according to a user input in a visual implementation method of software code.
  • a user performs software coding using a programming tool.
  • the user is a single line of the conventional Coding may be performed in units of code blocks, as shown by reference numeral 20, rather than a method of performing coding.
  • each code block is independent of each other.
  • the code block means one of the components constituting the software.
  • a code block will be described.
  • the present invention is not limited to a code block, which is an embodiment of a component, and relates to a component that can hierarchically structure software.
  • Code blocks divide the functions of the software into units of blocks, and these code blocks are shown by reference numeral 30, and the function information 31, the description information 32, the code information 33, and the management number 34 are shown. It may be configured to include. As described above, in the conventional coding method, since coding is performed one-dimensionally, readability of the already implemented software code is inferior, and there is an unclear meaning of each code. On the other hand, in the code block of the present invention, as shown by the reference numeral 30, the function information 31, the description information 32, the code information 33, and the management number 34 that each code block means for each code block. Since it can be immediately checked, there is an advantage that the user or operator can intuitively and clearly see what the corresponding part means.
  • the meanings of the function information 31, the description information 32, the code information 33, and the management number 34 are as follows.
  • the function information 31 represents a description of the function derived for implementing the software or designed by specifying the requirements of the user. That is, the function information 31 may include comprehensive information on the corresponding code block.
  • the user's requirements here are layered and do not have a control level. Furthermore, requirements play their role in code blocks. Each requirement can also have an index, depending on its characteristics. Furthermore, requirements can form groups, which can also be indexed.
  • the description information 32 may include a detailed or detailed description of the aforementioned function information.
  • the information included in the description information 32 may include various types of information such as, for example, a detailed description of a function, a picture, and a diagram. That is, by using this description information 32, the user can understand the software code more intuitively.
  • the code information 33 may include information on code implementing software or lower code blocks constituting the corresponding code block. Here, the description of the lower code block will be described later with reference to FIG. 4.
  • the management number 34 is a number for the user or operator to manage each code block, and indicates a number assigned by the user or the operator.
  • a plurality of code blocks may be implemented in a hierarchical tree structure.
  • such a code block may be shown not only in this hierarchical tree structure but also in a hierarchical block structure as shown in FIG. 2.
  • Code blocks implemented in such a hierarchical tree structure or hierarchical block structure are implemented in one-to-one correspondence with the functions constituting the software as described above. That is, if a function is structured in a code block structure and a function defined within the code block is coded to clearly define the flow of data sharing and control between blocks, the code composed of the code block may be expressed in a general programming language.
  • the data sharing and control flow between blocks is structured so that the upper and lower code blocks own the I / O data required by the lower code block as data inside the block, and the control flow is a hierarchical block structure.
  • the control flow exists only between the same layers. In other words, assuming that there are several lower code blocks in one code block, all the lower code blocks can access all the data they need from the upper code block, so all I / O data operate like global variables.
  • the control flow only needs to be defined between the lower code blocks. This structure is applied to all layers, and control blocks defined in each layer are associated with control flows defined between lower code blocks, and code blocks are ordered.
  • the lower code blocks are ordered according to the predetermined order of the higher code blocks. That is, the block number for the code block, that is, 1, 1-1, 1-1-1, 1-1-2, 1-2, 1-2-1, 1-2-2, 2, 2-1, etc.
  • the order may be ordered as follows.
  • the upper code block necessarily owns the input / output data required by the lower code block.
  • This feature can be applied to all layers.
  • the software includes function 1 and function 2.
  • Function 1 includes Function 1-1 and Function 1-2 in detail.
  • Such a function may also be implemented correspondingly to code block 1 and function 2 to code block 2, as shown by reference numeral 20 and FIG. 2 of FIG.
  • the control flow here is in the order of Function 1, Function 1-1, Function 1-2 and Function 2.
  • FIG. 3 is a conceptual diagram for sharing data of a code block according to an embodiment of the present invention, and illustrates a concept of sharing data between code blocks in a specifically defined data area.
  • Code blocks may be divided into upper code blocks and lower code blocks.
  • the upper code block should define and manage the data that the lower code blocks should share. That is, the upper code block must own all the input / output data required by the lower code block. This is the same principle as, for example, defining data as global variables in common programming languages and using global variables in each region (subcode block).
  • an upper code block manages data of an area composed of at least one lower block, and this structure can be continuously layered.
  • multiple braces ' ⁇ ' or ' ⁇ '
  • ' ⁇ ' multiple braces
  • local variables of the upper code block are accessed from lower code blocks. It can act like a local variable.
  • the act of adding a new code block in a tool that implements software using the code block indicates creating a new code block at a location to which the code block belongs. Even if the first code block is not added in the supporting tool implementing the code block, the highest code block always exists.
  • the highest block of code in the C programming language can be defined as the Main () function.
  • a condition statement definition, an input / output variable definition, a code block order (block number) definition, and a variable declaration of the corresponding code block are required according to the type of the selected code block.
  • a user may implement an internal attribute code of a code block through a coding window.
  • the code block may separately manage the contents of the variable declaration of the code block, the input variable assignment of the code block, the conditional statement, the function implementation of the corresponding code block, and the output variable assignment of the code block through the coding window. You can place the relevant code in that location.
  • the coding window may include at least one of a variable declaration window 41, an input variable assignment window 42, a conditional sentence window 43, a code input window 44, and an output variable assignment window 45. That is, the coding window may perform coding by selecting a window required by the user, rather than using all of the windows.
  • variable declaration window 41 is used to declare all variables used in the code block (that is, all variables used for implementing the function of the code block), and the input variable assignment window 42 is assigned to the input variable.
  • conditional window 43 is used to declare conditional parts in coding conditional statements (e.g., If, Switch control statements, etc.), and looping statements (e.g., While, For, Do while control statements, etc.).
  • code input window 44 is used for input of internal attribute codes used to substantially define function performance in plain text coding, conditional text coding, and loop text coding.
  • the output variable assignment window 45 is used to return a value from the corresponding code block to the higher code block.
  • variable declaration of the code block / input variable assignment / condition statement / output variable assignment information of the code block can be managed to the internal attribute code of the corresponding code block. Since the main content of the code block is the function implementation code of the code block, the user or operator can define the internal property information of the code block according to the location and role of the code block. Concentration on the completion of the
  • the windows 41, 42, 43, 45 for the declaration and assignment of variables shown in FIG. 4 can be defined in a separate area, which means that the code for implementing the function of the corresponding code block (ie, Internal property codes input through the code input window).
  • the remaining portions except for the code input window 44 may use the corresponding code block by defining a function in an internal attribute information area of the corresponding code block.
  • Content managed as internal property information of a code block may also be coded in the same order as in FIG. 4 when converted to software code.
  • the internal property code of the code block set through the coding window may be converted into a programming language set in advance.
  • Code blocks represented by codes may have characteristics similar to functions of the C language.
  • C functions have local variables that are used inside the function scope, and the arguments to be used in the function can be taken from outside the function. And you can return a specific value as the result value.
  • a function is like a black box, and it looks like you're doing something inside a function, and you get certain results when you enter certain input values in terms of data sharing. That is, a function can have its own data area by performing an expected action or returning a result value by inputting an external argument.
  • functions may be divided into software components that perform their functions when called in sequence.
  • data sharing is structured so that the upper code block owns all the input / output data required by the lower code block as data inside the block, and the control flow is a hierarchical block.
  • the control flow exists only between the same layers in the structure. In other words, assuming that there are several lower code blocks in one code block, all the lower code blocks can access all the data they need from the upper code block, so all I / O data operate like global variables.
  • the control flow only needs to be defined between the lower code blocks. This structure is applied to all layers, and control blocks defined in each layer are associated with control flows defined between lower code blocks, and code blocks are ordered.
  • Code blocks can have the characteristics of these data areas and control flows. Specifically, the difference between the function function and the code block of the C language is that a function can be commonly called and used in various codes at a specific point in time, but the code block belongs to a specific position and plays an independent role.
  • the 32 code blocks belonging to the code block having the control number 3 receive input arguments from the 3 code blocks, perform an operation, and return the promised output factors back to the 3 code blocks.
  • all factors and actions in the 32 code blocks other than the input / output data may be independently performed in the 32 code blocks. It also does not affect any 3 other code blocks as well as the 3 code blocks that are higher code blocks.
  • the code having the above characteristics can be implemented using a function, but since the C language does not support declaring a function inside a function, the present invention implements a code block using braces ( ⁇ ). do.
  • Curly braces are a way of breaking blocks into blocks within C code.
  • Variables declared inside curly braces are local variables that are recognized only in that zone. This becomes clearer with reference to FIG. 5. That is, the upper code block is a structure including the lower code block, and may be expressed by being separated by braces.
  • the inclusion relationship illustrated in FIG. 6 may be defined as at least one code block existing in another code block.
  • the higher code block does not have a separate code other than the declaration of the variable used in the higher code block.
  • the control flow of the code block in the inclusion relationship may be coded first by the variable declaration portion of the higher block, and then by placing the code of the included code block. Therefore, when the code position of the upper code block is determined by the control flow of the code block in the parallel relationship mentioned below, the code of the lower code block may constitute the entire code of the software by determining the code order between the lower code blocks within the range. Can be.
  • a relationship in which a code block is not included and is included in the same higher code block is defined as a parallel relationship.
  • Code blocks in parallel must be ordered. For example, as shown in FIG. 7, when a control flow is defined as one code block and one code block and another code block as a code block, the code block form is converted into software code. It may be made in the form of.
  • FIG. 8 is a block diagram of an apparatus for visually implementing software code according to an embodiment of the present invention.
  • the apparatus for visually implementing software code according to an embodiment of the present invention includes a code block generation unit 110, a code block setting unit 120, a code block authority setting unit 130, and code block verification.
  • the unit 140 and the code block converter 150 may be configured. In the following description of these components is made in detail.
  • the code block generation unit 110 functions to generate a code block used to implement the software code in block units according to a customer's requirements and functions with respect to the implementation of the software.
  • the code block generator 110 derives a requirement, and the requirement may be implemented as one code block.
  • the requirements here are layered and do not have a control step. Further, requirements each play its own role in the code that will be implemented later.
  • Each requirement can also have an index, depending on its characteristics.
  • requirements can form groups, which can also be indexed.
  • the code block generation unit 110 generates a code block by using a requirement.
  • the code block may have a control step, and each requirement may be assigned to the code block.
  • the generation of the code block can be divided in two ways. That is, the first generation method is to generate, for example, a code block in which all attributes are empty in the code window shown in FIG. 4.
  • the second generation method is a method of generating a code block by calling a code block form previously stored in the storage unit 83.
  • the storage unit 83 may include various types of code blocks, and specifically, the storage unit 83 may include a plain text code block, a loop statement code block, and a condition statement code block according to a control flow.
  • the types of code blocks stored in the storage unit 83 are as follows.
  • FIG. 10 shows a so-called Goto Next code block, which represents a code block in which a separate control flow does not exist as a general code block.
  • the Goto Next code block is a general code block and can be designated such that a code block of the next order exists after the corresponding code block.
  • FIGS. 11-13 Examples of loop code blocks are shown in FIGS. 11-13. That is, FIG. 11 shows a For code block, FIG. 12 shows a While code block, and FIG. 13 shows a Do while code block.
  • the repeated code block mentioned in FIGS. 11 to 13 is a code block that performs a function of a repeated statement repeatedly performing a certain action inside the corresponding code block while a condition is satisfied. However, from the point of view of the code block, even if the inner action of the loop is performed repeatedly, it is like processing the work to be done in the order of the code block. That is, it can be considered that the corresponding code block is executed once.
  • FIGS. 14 and 15 Examples of conditional code blocks are shown in FIGS. 14 and 15. That is, FIG. 14 shows a switch code block and FIG. 15 shows an if code block.
  • the repeated code block mentioned in FIGS. 14 and 15 indicates a code block that performs a corresponding function when an input variable corresponds to a specific condition.
  • the code block may further include a function code block mentioned below.
  • Function codeblocks represent codeblocks implemented using functions, examples of which are illustrated in FIGS. 16 and 17. These function code blocks can be declared and used in the top-level block as well as the use of functions in the C language. As shown in FIG. 16, the function code block has the same function of declaring a local variable, assigning an input variable, performing an operation, and returning a result like other code blocks. There is a difference using). For this reason, function code blocks can be declared at the top level.
  • the code block setting unit 120 shown in FIG. 8 functions to set a code block attribute or code included in the code block based on information input from a user.
  • the code block attribute includes functional information and description information of the corresponding code block as mentioned above with reference to FIG. 1. That is, this code block attribute is designed to solve the conventional coding method that is less readable by one-dimensional coding, and includes a brief and detailed description of a function designed by embodying requirements derived when implementing software. . Specifically, it represents a description of the function derived to implement the function information software or designed by embodying the requirements of the user, and the description information indicates that the detailed description of the aforementioned function information is included.
  • the information included in the description information may include various types of information such as, for example, a detailed description of a function, a picture, and a diagram.
  • a code block attribute Through such a code block attribute, it is possible to understand more intuitively by the user, unlike annotation, for example, a method that is expressed one-dimensionally in the conventional coding method.
  • the internal attribute code may be set from the user through the coding window as mentioned with reference to FIG. 4.
  • the coding window may be configured to include a variable declaration window, an input variable assignment window, a conditional statement window, a code input window, and an output variable assignment window, and descriptions of each of them have been made in detail above, for clarity of specification. Additional descriptions thereof will be omitted.
  • the code block setting unit 120 may classify the plurality of code blocks into a hierarchical tree structure or a hierarchical block structure according to a user's setting. Can be. An example of this is shown in FIGS. 1 and 2. These hierarchical structures are advantageous in that they can help the software's analysis intuitively by users or operators. In addition, through such a structure, there is an advantage that management becomes easier, for example, in subsequent editing of the software.
  • a code block that performs the same function but belongs to another location may exist or a code block having a similar function may exist.
  • the control number / input variable declaration / output variable declaration is deleted and the block number is automatically assigned according to the position of the code block.
  • Data preserved by copying code blocks is divided into function (requirements) / technologies and code content internal variable declarations / conditions / function implementation codes.
  • the lower code block of the selected code block is also copied. All data of the lower code block of the code block to be copied may be maintained as it is.
  • code blocks may be classified into upper code blocks and lower code blocks according to hierarchical tree structure or position in hierarchical block structure.
  • the internal property code included in the lower code block is implemented independently of the upper code block, and the upper code block only performs the variable declaration function therein and does not include additional code. That is, the upper code block contains only the shared data required by the lower code block (which acts as a data bus to share data among the lower code blocks), includes only one or more lower code blocks, and includes one or more lower code.
  • the blocks receive input arguments from the higher code block and return output arguments to the higher code block.
  • the code block setting unit 120 may automatically assign a block number according to a position of a code block in a hierarchical tree structure or a hierarchical block structure. That is, it is assumed, for example, that two code blocks are included in one code block (see FIG. 18). As shown in FIG. 18, it is assumed that the highest code block has a block number set to one. Here, the most significant code block includes two lower code blocks, and these lower code blocks may be assigned block numbers 11 and 12, respectively. Also, if the code block having block number 12 further includes, for example, two code blocks, these two code blocks may be assigned block numbers 121 and 122, respectively.
  • the method of assigning block numbers is merely an example, and can be applied in various other ways.
  • code blocks having the block numbers 11, 121, and 122 become the lowest code blocks, respectively, they may be implemented including an internal attribute code.
  • code blocks having block numbers 1 and 12 each include a lower code block, they do not include separate codes other than the code for the variable declaration.
  • the code block setting unit 120 may further set an index for the code block.
  • an index may be added to the code block to inform the user or operator more intuitively of the code block. This allows each code block to manage index / function (requirement) / technology / code through control number and block number, and if necessary, index / function (requirement) / Each can be expressed as a description / code. An example of this is shown in FIG. 19.
  • Such a calculator may include a code block representing a user interface, a code block representing an operator, and a code block representing a graphic. At this time, by adding such an indexing function on the code block so that the representation of these code blocks becomes clear, it is easier for a user or an operator to perform programming.
  • such an index may include not only an index for a code block but also an index for a variable managed by an upper code block, that is, an upper code block may include multiple levels of lower code blocks, and in some cases, You can manage a large amount of variables.
  • variables can be grouped using a structure, and the structure can be managed more clearly by managing the structure through the index.
  • the code block authority setting unit 130 functions to set an access authority of a code block for setting access authority from other users.
  • the code block permission setting unit 130 may set a permission for each, at least some, or all code blocks in the entire code block structure.
  • the selected code block may be set to include a lower code block and may be set to security so that the lower code block is not included.
  • Code block with security can be set to make the code that the function / description / function is implemented to be visible only to the authorized person, or the modification authority can be restricted.
  • These access rights can be set individually for function / description / internal property codes. You can set access permissions so that only some code blocks are visible to others.
  • Code blocks can also be secured at several levels (set to be invisible / not visible but not modifiable / input / output variables and messages not to be modified / modifiable in all data). Variables and messages of a specific code block are supported to be secured to be used only by the code block defined by the administrator.
  • the code block verification unit 140 performs a function of verifying a code block by repeatedly inputting an input variable included in a code block using a random variable. For example, when a user selects a code block for verification, the user becomes a verification unit together with a lower code block of the selected code block. Thereafter, a screen composed of a part composed of input / output factors and a condition part of input / output factors is displayed on the display 82.
  • the I / O condition for each I / O factor is specified in the condition part and the verification is executed, the input of various variables is automatically input until the operator stops by continuously inputting the input variable using the random variable within the range specified in the condition. You can verify the code with
  • the verification method may be performed by using a random variable or by sequentially verifying the input and output values of the variable with respect to all the values within the condition. If an error occurs through a test, the location of the code block where the error occurred (by recognizing the code block to which the line of code that the compiler tells the compiler belongs) or the name of the output variable in which the error occurred The manner of informing can be made. When performing the verification, the memory usage and CPU usage status of the computer may also be displayed in conjunction with the test result screen.
  • the condition of input variable / output variable is composed of numbers and symbols ( ⁇ ,>) and the condition can be duplicated. If a sequential test is selected in the verification method, verification is performed by sequentially applying all numbers represented by the variable according to the declared type of the variable. Verification start and end can be terminated automatically when all numbers have been applied or by pressing the operator's exit button.
  • code block verification unit 140 is shown as performing verification only after the code block setting, but this is only to help understanding of the invention, and verification may be performed at any stage after the setting of the code block.
  • the code block converter 150 converts the code block into a code corresponding to a preset programming language upon request from a user. An example of this is shown in FIG. 20. An upper code block shown in FIG. 20 includes two lower code blocks, and these lower code blocks are included in a parallel relationship. In addition, since the method for the code conversion has been described in detail above, further description thereof is omitted for clarity. In addition, in the description of the code block transformation, the specification is mainly focused on the C language, but this is merely an example to help understand the specification and is applicable to various other types of languages.
  • the code block conversion unit 150 is shown as performing the conversion only after the authority setting for the code block, but this is only for the understanding of the invention, and the conversion is performed at any stage after the setting of the code block. Can be.
  • the visual implementation device 100 of the software code of the present invention when the software implementation using the code block, when verifying the flow or relationship of the corresponding data using the correlation or variable or message of the related function, the user or It can provide the operator with various views of the code block.
  • a code block has a function of displaying a code block related to a variable and a message declared in a block number / management number / code block in a hierarchical tree structure or a hierarchical block structure.
  • the code block display range can be set variously by including a specific code block.
  • a variable declared in a code block is a reference
  • a variable input / output from an upper code block to a lower code block may be recognized as the same variable and thus display all related code blocks.
  • Software implementation tools using code blocks can assign attributes to each code block. For example, a function related to the storage of data can be defined as an attribute and the attribute can be defined in the code block associated with it. An attribute related to the storage of defined data can be selected and only the code blocks associated with it can be displayed (tree structure / block structure). Such attribute information can be set in duplicate and can be defined in one code block.
  • Code information of a code block may be expressed as one software code (in the form of source code of C language). The function / requirement can simultaneously display the function and the technology based on the control number in the form of a report.
  • FIG. 9 is a block diagram of a code block setting unit included in a visual implementation device of software code according to an embodiment of the present invention.
  • the code block setting unit 120 may include a code block attribute setting module 121, a code setting module 122, a relationship setting module 123, and a block number setting module 124. Can be. In the following description, matters that overlap with the foregoing will be omitted for the sake of clarity.
  • the code block attribute setting module 121 functions to set a code block attribute in a code block. That is, the code block attribute setting module 121 sets the function information and the description information of the code block in the code block. This is possible through user input through the input unit. As described above, this code block attribute is designed to solve the conventional coding method that is less readable due to one-dimensional coding. Description) and detailed descriptions (detailed descriptions, figures and diagrams, etc.). Through such a code block attribute, it is possible to understand more intuitively by the user, unlike annotation, for example, a method that is expressed one-dimensionally in the conventional coding method.
  • the code setting module 122 functions to set internal property codes in the code block. This can be set by the code input by the user through the coding window, as mentioned in FIGS. 4 and 8.
  • the coding window may include at least one of a variable declaration window, an input variable assignment window, a conditional statement window, a code input window, and an output variable assignment window. Since the description thereof has been mentioned in detail above, further description is omitted for clarity.
  • the relationship setting module 123 functions to classify a plurality of code blocks into a hierarchical tree structure or a hierarchical block structure when a plurality of code blocks are generated through the code block generation unit 110. . In addition, through this classification, the relationship setting module 123 may set a plurality of code blocks in a parallel relationship or an inclusion relationship. Since the method and type of setting these relationships have been described in detail above, further description thereof will be omitted.
  • the block number setting module 124 automatically assigns block numbers to code blocks according to the hierarchical tree structure or the position of code blocks in the hierarchical block structure set in the relationship setting module 123.
  • Such an allocation method may be implemented in the form of, for example, x in the highest code block, xy in the lower code block included in the top code block, and xyz in the next lower code block.
  • such an implementation method is merely an example, and may be implemented in various forms in which positions of code blocks may be grasped.
  • FIG. 21 is a flowchart of a method of visually implementing software code according to an embodiment of the present invention.
  • matters that overlap with those referred to with reference to FIGS. 1 to 20 will be omitted for clarity.
  • a step (S110) of checking whether to generate a code block to a user is performed. That is, the visual implementation method of the software code of the present invention may also perform a function for generating a new code block, for example, but edits (for example, copies, deletes, and edits the existing code blocks). Is also possible. Accordingly, it is necessary to confirm this in step S110 of checking whether to generate a code block. Then, in step S110 of checking whether to generate a code block, if it is determined that the user wants to generate a new code block, a code block is generated (S120), and if the user generates a new code block If it is not desired, the code block attribute or internal attribute code is set (S130).
  • the code block generating unit functions to generate a code block used to implement the software code in block units according to requirements and functions.
  • the generated code block may include an empty basic frame used when a user wants a new edit, a plain text code block stored in a storage unit, a loop code code block, and a conditional code block. Description of the kind of these code blocks has been described in detail above with reference to FIGS. 10 to 17, for clarity of the specification, further description thereof will be omitted.
  • a block number for it is automatically assigned.
  • the code block setting unit sets the code block information included in the code block, that is, the code block attribute or the internal attribute code, based on the information input from the user (S130).
  • the code block attribute or the internal property code for example, when a new code block is generated in the step of generating the code block (S120), the code block property and the internal property of the generated code block are generated. You can set the code.
  • the code block attribute includes function information and description information as described above. Since the method for setting the code block attribute and the internal attribute code has been described in detail above, further description thereof will be omitted.
  • setting the code block attribute or the internal attribute code (S130) may further include including the location of the code block, the block number, the management number, the index, and the internal attribute code in the code block.
  • the function information, description information, and internal property code for the code block are displayed through the display unit. The step of displaying may be further included.
  • the plurality of code blocks are hierarchical tree structure or hierarchical block structure according to the user's setting. Can be classified as That is, the plurality of code blocks may be formed in a parallel relationship or an inclusion relationship according to the positions of the code blocks. Accordingly, a user can easily manage a plurality of code blocks even if they exist in a hierarchical tree form or a hierarchical block form.
  • code blocks may be divided into upper code blocks and lower code blocks according to positions in the hierarchical tree structure or the hierarchical block structure.
  • the internal attribute code included in the lower code block may be implemented independently of the upper code block.
  • the upper code block may include one or more lower code blocks, and the one or more lower code blocks may receive an input argument from the upper code block and return an output factor to the upper code block.
  • the code block may include a plain text code block, a repeat code code block, and a conditional code block according to a control flow, and a description thereof is described above with reference to FIGS. 8 to 17, and thus, further description thereof will be provided. Omit.
  • the step of setting a block number for a code block by the code block setting unit (S140) automatically allocates the block number according to the hierarchical position of the code block.
  • a block number can be set automatically by the movement of a block, and cannot be changed arbitrarily by a user. That is, the allocation of the block number is performed by the code block setting unit according to the position of the code block set in the step of generating a code block (S120) or the step of setting a code block attribute or an internal property code (S130). It may be made in the step of setting a block number (S140).
  • the step of verifying the code block (S160) performs a function of verifying the code block by repeatedly inputting or verifying an input or output variable included in the code block using a random variable through the code block verification unit.
  • the step of verifying the code block (S160) may be performed not only by using a random variable but also by a method of sequentially inputting a variable to all values within a condition.
  • the description of the verification process has been described in detail with reference to FIG. 8, further description thereof will be omitted for clarity.
  • step S170 of setting rights for the code blocks is performed. Furthermore, the step of setting the authority for the code block (S170) is not necessarily performed, but can be selectively performed according to the needs of the user. That is, the step S170 of setting the authority for the code block performs security setting for each, at least some, or all code blocks in the entire code block structure according to the user's needs.
  • a step (S180) of determining whether an additional code block generation or editing operation is required is performed. If it is determined that the generation or editing of the code block is additionally performed according to the user's selection, the process returns to the step of generating the code block (S110) and repeats the above-described steps. If it is not necessary to additionally generate or edit a code block according to a user's selection, the code block is converted into a code corresponding to a preset programming language (S190).
  • the step of converting the code block into a code corresponding to a preset programming language is performed by the code block converter. Since the description of the conversion process has been described in detail with reference to the visual implementation of the software code according to an embodiment of the present invention, further description thereof is omitted for clarity.
  • FIG. 22 is a flowchart illustrating a step of setting code block information according to a user input in a visual implementation method of software code according to an embodiment of the present invention.
  • portions overlapping with the contents disclosed above will be omitted for clarity.
  • a step S210 of determining whether a new code block is generated is performed. That is, after determining whether a new code block is generated (S210), it is determined whether the user wants to generate a new code block and perform an operation on it, or to edit an existing code block. If it is determined that the new code block is generated, the code block information for the new code block is set (S230), and if it is determined that the new code block is not generated, the edit is performed for the existing code block (S220).
  • the editing (S220) step of the existing code block is a step of editing the code block, for example, copying, moving, deleting and editing the code block in a hierarchical tree structure or a hierarchical block structure. That is, the editing (S220) step of the existing code block may be performed without generating a separate new code block in the step of generating a new code block of FIG. 21 or even if a new code block is generated. It shows the process of editing according to the user's intention. Since the editing process of the existing code block (S220) has been described in detail above with reference to FIG. 8, further description thereof will be omitted.
  • the step of setting code block information for a new code block is a step of setting code block information for a new code block generated in the step of generating a new code block (S120).
  • the code block information includes a code block attribute including functional and descriptive information, and an internal attribute code on which software code is substantially implemented. That is, when the software is implemented using the code block, the variable used in the upper code block (in the lower code block belonging to the upper block) needs to be defined, and the defined variable is used as an input / output factor to define the lower code block. Define the function.
  • a function such as function definition or variable setting may be performed. However, the order is not always ordered. You can define only rough blocks, then implement specific functions, or define the use of data first and then implement each function.
  • step S240 of setting a position and a relationship with respect to the code block is performed.
  • Code block disclosed in the present invention is characterized in that it can be disclosed in a hierarchical tree structure or a hierarchical block structure. That is, the step (S240) of setting the position and the relationship with respect to the code block sets the position with respect to the generated or edited code block and sets the relationship with other code blocks so that the code blocks are performed without error. To be.
  • step S250 is performed to determine whether the code block is the lowest code block. That is, the code block according to the present invention does not implement additional code in addition to the variable assignment in the case of the upper code block, the actual code is included in the lowest code block. Due to the characteristics of the code block, step S250 is performed to determine whether the code block is the lowest code block. If it is determined that the code block is the lowest code block, the step of receiving an internal attribute code from the user (S260) is continued. After receiving the internal property code from the user, the step of setting a block number for the code block by the code block setting unit (S140) is started.
  • a step (S110) of checking whether to generate a code block is continued, and further determining whether to add another code block is performed.
  • a function for adding or editing another code block is performed, the steps disclosed in FIG. 21 are performed again, otherwise, the process ends.
  • the visual implementation method of the software code according to the present invention can be implemented in the form of program instructions that can be executed by various computer means and recorded on a computer readable medium.
  • the computer readable medium may include program instructions, data files, data structures, etc. alone or in combination.
  • Program instructions recorded on the media may be those specially designed and constructed for the purposes of the present invention, or they may be of the kind well-known and available to those having skill in the computer software arts.
  • Examples of computer-readable recording media include magnetic media such as hard disks, floppy disks, and magnetic tape, optical media such as CD-ROMs, DVDs, and magnetic disks, such as floppy disks.
  • Magneto-optical media and any type of hardware device specifically configured to store and execute program instructions such as ROM, RAM, flash memory, and the like.
  • Examples of program instructions may include high-level language code that can be executed by a computer using an interpreter as well as machine code such as produced by a compiler.
  • Such hardware devices may be configured to operate as one or more software modules to perform the operations of the present invention, and vice versa.
  • the teachings of the present principles can be implemented as a combination of hardware and software.
  • the software may be implemented as an application program that is actually implemented on the program storage unit.
  • the application can be uploaded to and executed by a machine that includes any suitable architecture.
  • the machine may be implemented on a computer platform having hardware such as one or more central processing units (CPU), computer processor, random access memory (RAM), and input / output (I / O) interfaces.
  • the computer platform may include an operating system and micro instruction code.
  • the various processes and functions described herein may be part of micro instruction code or part of an application program, or any combination thereof, and they may be executed by various processing apparatus including a CPU.
  • various other peripheral devices such as additional data storage and printers may be connected to the computer platform.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

본 발명은 소프트웨어 코드를 시각적으로 구현하기 위한 방법 및 장치에 관한 것이다. 이를 위한 본 발명의 소프트웨어 코드의 시각적 구현 방법은 코드블록 생성부에 의해, 요구사항과 기능에 따라 소프트웨어 코드를 블록 단위로 구현하는데 사용되는 코드블록을 생성하는 단계; 및 코드블록 설정부에 의해, 사용자로부터 입력된 정보를 근거로 코드블록 내에 포함되는 코드블록 속성 또는 내부 속성 코드를 설정하는 단계를 포함하고, 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는, 코드블록에 대한 기능 정보, 기능 정보에 대한 설명 정보 및 내부 속성 코드를 코드블록에 포함시키는 단계를 포함하는 것을 특징으로 한다.

Description

소프트웨어 코드의 시각적 구현 방법 및 장치
본 발명은 소프트웨어 코드를 시각적으로 구현하기 위한 방법 및 장치에 관한 것이고, 보다 구체적으로 코드블록을 이용하여 소프트웨어 코드를 시각적으로 구현하기 위한 방법 및 장치에 관한 것이다.
본 발명은 2014년 5월 22일 출원된 한국특허출원 제10-2014-0061828호의 이익을 주장하며, 그 내용 전부는 본 명세서에 포함된다.
일반적으로 소프트웨어 개발은 엔지니어의 요구사항의 도출, 기능의 설계, 코드의 구현 및 소프트웨어 검증에 이르는 일련의 과정을 통해 이루어진다. 이러한 과정상에는 많은 어려운 요소가 존재하지만 요구사항을 일목요연하게 정리하는 도구, 기능을 모델링하는 도구, 코드의 프로그래밍을 지원하는 도구 등이 개발되어 소프트웨어 개발자들에게 많은 도움이 되고 있다.
하지만 엔지니어가 도출된 요구사항을 바탕으로 소프트웨어를 구현하기 위해서는 요구사항을 충족하는 구체적인 기능을 설계하고 그 기능을 코드로 구현해야 하는데, 구체적인 기능을 코드로 구현하는 방법을 직접적으로 지원하는 도구가 존재하지 않는다. 다시 말해서, 소프트웨어의 기능을 코드와 일대일로 대응시켜, 요구사항 및 기능 설계가 소프트웨어 코드의 어느 부분에서 어떻게 구현되어 있고 다른 기능과는 어떤 관계가 있는지 일목요연하게 코드를 확인하고 구현할 수 있는 도구가 부재하다.
일반적인 언어나 그림, 도표로 표현된 기능은 사람의 머릿속에서 이해되고 그것을 코드라는 다른 형태로 표현해야 한다. 즉, 이러한 표현은 사람이라는 매개를 거쳐 일반적인 언어에서 프로그래밍 언어로 변환되어야 한다. 이러한 이유로 제대로 설계된 기능이더라도 구현된 코드와 일치하지 못하거나 기능의 잘못된 구현으로 많은 오류가 소프트웨어에서 검출된다. 또한, 겉으로 드러나지 않지만 코드를 구현했던 의도와 상이하게 수정될 경우 오류를 일으킬 잠재적인 가능성이 상당한 경우도 허다하다.
대규모의 소프트웨어를 구현한 후 오랜 시간이 지난 소프트웨어의 경우, 정의된 요구사항과 설계 자료가 존재하더라도 그 소프트웨어 코드의 구조를 쉽게 이해하지 못하는 현상이 발생된다. 즉, 소프트웨어의 기능을 표현하고 있는 일반적인언어와 소프트웨어를 구현하는 코드의 표현상의 차이로 인하여, 소프트웨어 코드는 구현한 사람의 개인적인 성향과 의도, 문제를 해결하는 방식뿐만 아니라 요구사항을 이해하는 방법, 소프트웨어의 설계를 재해석하는 방법에 따라 의도하지 않았던 여러 요소들이 코드에 포함될 수 있게 된다. 이러한 점에 기인하여, 이러한 요소들이 코드를 범용적으로 이해하고 해석하는데 큰 장애가 되고 있고, 소프트웨어 코드의 가독성이 저하되어 소프트웨어의 개발이 효율적이지 못하게 된다.
프로그래밍 언어는 일반적인 언어에 비해 읽고 이해하는 것이 어렵다. 프로그래밍 언어는 제어의 흐름에 따라 순차적으로 코드를 구성해야 하고, 매 표현마다 정확하게 선언되고 정의되어야 한다. 즉, 프로그래밍 언어는 순서에 따라 순차적으로 표현되지 않으면 그 표현은 다른 의미를 가지게 되고, 이러한 프로그래밍 언어에서 사용하는 데이터와 명령문과 같은 구문의 형태나 의미를 정확히 정의해 두지 않으면 오류가 발생될 수 있다. 왜냐하면, 컴퓨터는 상황을 고려해서 판단하거나 이해할 수 없기 때문에 모든 프로그래밍 언어의 문장은 명확하게 정의되고 순서화되어 하나의 의미로 구성되어야 하기 때문이다. 이러한 이유로 일반적인 소스 코드는 텍스트 형태로 구성되고 코드의 의미 단위는 하나의 라인(Line)으로 이루어져 라인의 순서에 따라 코드가 구성되어 있다.
프로그래밍 언어는 기능을 정의할 때 사람의 이해를 돕기 위해 사용되었던 도표나 그림, 철학적인 또는 추상화된 기능을 정확하게 표현하지 못한다. 뿐만 아니라 코드의 의미단위가 라인으로 구성되어 있어, 방대한 양의 코드인 경우 직접 라인을 따라 의미를 하나하나 해석하기 전까지는 구체적인 소프트웨어의 구현 정도를 이해하는 것이 쉽지 않다. 물론, 설계 문서를 이용하여 개략적인 의미를 살펴보는 것은 가능하지만 앞서 설명한 바와 같이, 설계문서와 코드 간에는(일반적인 언어와 프로그래밍 언어의 표현의 차이) 표현상의 차이가 존재하기 때문에 설계문서를 보는 것으로는 실제 소프트웨어를 구성하고 있는 코드가 어떻게 구현되어 있는지 확인할 수 없는 문제점이 있다.
본 발명은 소프트웨어를 코드블록을 포함하는 온전한 컴포넌트로 구성하는 방법을 구현하는데 그 목적이 있다.
나아가, 본 발명은 소프트웨어 개발을 위해 도출된 요구사항과 기능을 코드로 구현할 때, 프로그래밍 언어에서 이용되는 소프트웨어 코드를 시각적으로 구현하기 위한 장치 및 방법을 제공하는데 그 목적이 있다.
상기와 같은 과제를 해결하기 위한 본 발명의 소프트웨어 코드의 시각적 구현 방법은 코드블록 생성부에 의해, 요구사항과 기능에 따라 소프트웨어 코드를 블록 단위로 구현하는데 사용되는 코드블록을 생성하는 단계; 및 코드블록 설정부에 의해, 사용자로부터 입력된 정보를 근거로 코드블록 내에 포함되는 코드블록 속성 또는 내부 속성 코드를 설정하는 단계를 포함하고, 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는, 코드블록에 대한 기능 정보, 기능 정보에 대한 설명 정보 및 내부 속성 코드를 코드블록에 포함시키는 단계를 포함하는 것을 특징으로 한다.
또한, 본 발명의 소프트웨어 코드의 시각적 구현 방법은 코드블록 변환부에 의해, 사용자로부터의 요청 시, 코드블록을 기설정된 프로그래밍 언어에 대응하는 코드로 변환하는 단계를 더 포함할 수 있다.
또한, 본 발명의 소프트웨어 코드의 시각적 구현 방법은 코드블록 속성 또는 내부 속성 코드를 설정하는 단계 이후, 사용자로부터 코드블록에 대한 디스플레이 요청 시, 디스플레이부를 통해 코드블록에 대한 기능 정보, 설명 정보 및 내부 속성 코드를 디스플레이하는 단계를 더 포함할 수 있다.
또한, 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는, 코드블록의 위치, 블록 번호, 색인, 관리 번호 및 내부 속성 코드를 코드블록에 포함시키는 단계를 포함할 수 있다.
또한, 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는, 코드블록 생성부를 통해 복수개의 코드블록들이 생성되는 경우, 사용자의 설정에 따라 복수개의 코드블록들을 계층적인 트리 구조 또는 계층적인 블록 구조로 분류하는 단계를 포함할 수 있다.
또한, 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는, 계층적인 트리 구조 또는 계층적인 블록 구조에서 코드블록의 위치에 따라, 자동으로 블록 번호를 할당하는 단계를 포함할 수 있다.
또한, 블록 번호를 할당하는 단계에서 할당된 블록 번호는 사용자의 입력을 통해 상기 코드블록의 위치가 변경되면 자동으로 변경된다,
또한, 코드블록은, 계층적인 트리 구조 또는 계층적인 블록 구조에서의 위치에 따라 상위 코드블록과 하위 코드블록으로 분류되고, 하위 코드블록 내에 포함된 내부 속성 코드는 상위 코드블록에 대해 독립적으로 구현되며, 상위 코드블록에 포함된 하위 코드블록의 입출력 인자는 특성에 따라 묶여 색인화될 수 있다.
또한, 상위 코드블록은 하나 이상의 하위 코드블록들을 포함하며, 하나 이상의 하위 코드블록들은 상위 코드블록으로부터 입력 인자를 수신하고, 상위 코드블록으로 출력인자를 반환할 수 있다.
또한, 코드블록이 복수개의 계층으로 구성되어 있을 때, 상위 코드블록은 바로 아래 단계의 하위 코드블록이 필요로 하는 모든 입출력 인자를 포함한다.
또한, 코드블록은 제어 흐름에 따라 평서문 코드블록, 반복문 코드블록 및 조건문 코드블록을 포함할 수 있다.
또한, 코드블록 내에 포함되는 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는 기생성된 코드블록들과 상기 코드 블록의 관계를 포함 관계 또는 병렬 관계로 설정하는 단계를 포함할 수 있다.
또한, 코드블록 속성 또는 내부 속성 코드를 설정하는 단계에서, 내부 속성 코드는, 내부 속성 코드의 입력 변수 및 출력 변수를 선언하는데 이용되는 변수 선언 윈도우; 입력 변수의 할당에 사용되는 입력 변수 할당 윈도우; 조건문 또는 반복문 입력에 사용되는 조건문 윈도우; 코드블록에 대한 기능 구현을 위한 소프트웨어 코드 입력에 사용되는 코드 입력 윈도우; 및 출력 변수의 할당에 사용되는 출력 변수 할당 윈도우 중 적어도 하나를 포함하는 코딩 윈도우를 통해 사용자로부터 입력될 수 있다.
또한, 본 발명의 소프트웨어 코드의 시각적 구현 방법은 코드블록 속성 또는 내부 속성 코드를 설정하는 단계 이후, 코드블록 검증부에 의해, 랜덤 변수를 이용하여 또는 코드블록 내의 조건문에 입력 또는 출력되는 변수들을 이용하여 코드 블록을 검증하는 단계를 더 포함할 수 있다.
또한, 본 발명의 소프트웨어 코드의 시각적 구현 방법은 코드블록 속성 또는 내부 속성 코드를 설정하는 단계 이후, 코드블록 권한 설정부에 의해, 코드블록의 접근 권한을 설정하는 단계를 더 포함할 수 있다.
상기와 같은 과제를 해결하기 위한 본 발명의 소프트웨어 코드의 시각적 구현 장치는 요구사항과 기능에 따라 소프트웨어 코드를 블록 단위로 구현하는데 사용되는 코드블록을 생성하는 코드블록 생성부; 및 사용자로부터 입력된 정보를 근거로 코드블록 내에 포함되는 코드블록 속성 또는 내부 속성 코드를 설정하는 코드블록 설정부를 포함하고, 코드블록 설정부는, 코드블록에 대한 기능 정보, 기능 정보에 대한 설명 정보 및 내부 속성 코드를 코드블록에 포함시키는 것을 특징으로 한다.
본 발명의 소프트웨어 코드의 시각적 구현 방법 및 장치에 따르면, 기능 단위로 구분된 코드블록을 이용하여 시각적인 소프트웨어 코딩이 가능하고, 기존의 하나의 라인씩 코딩을 수행하는 것이 아닌 코드블록을 이용한 고차원적인 형태의 표현이 가능해져서, 사용자 또는 운용자의 소프트웨어 개발이 보다 효율적으로 이루어질 수 있는 효과가 있다.
또한, 본 발명의 소프트웨어 코드의 시각적 구현 방법 및 장치에 따르면, 코드블록간 관계가 명확해지고, 입출력 인자의 흐름이 명확해짐으로써, 코드의 가독성이 향상될 수 있고, 소프트웨어의 재사용이 용이해지는 효과가 있다.
또한, 본 발명의 소프트웨어 코드의 시각적 구현 방법 및 장치에 따르면, 소프트웨어의 코드가 기능을 수행하는 단위로 코드블록과 일대일 대응되고, 또한 이러한 코드블록은 트리 구조 또는 계층적인 블록 구조로 구현될 수 있으므로, 사용자가 보다 직관적으로 소프트웨어 코드를 구현할 수 있는 효과가 있다.
도 1은 본 발명의 소프트웨어 코드의 시각적 구현 장치를 통해 소프트웨어 코드를 구현하는 방법에 대한 개념도이다.
도 2는 본 발명의 일 실시예에 따라 디스플레이부에 디스플레이되는 코드블록의 구조를 도시하는 도면이다.
도 3은 본 발명의 일 실시예에 따른 코드블록의 데이터 공유에 대한 개념도이다.
도 4는 본 발명의 일 실시예에 따른 코드블록과, 코드블록을 이용하여 소프트웨어 코드를 구현하는 방법에 대한 도면이다.
도 5는 본 발명의 일 실시예에 따라 생성된 코드블록을 코드로 변환하는 과정에 대한 도면이다.
도 6 및 도 7은 본 발명의 일 실시예에 따른 코드블록들의 관계를 설명하기 위한 도면이다.
도 8은 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 장치에 대한 블록도이다.
도 9는 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 장치에 포함된 코드블록 설정부에 대한 블록도이다.
도 10 내지 도 17은 본 발명의 일 실시예에 따라 저장부에 저장된 코드블록들의 종류에 대한 도면이다.
도 18은 본 발명의 일 실시예에 따라 복수개의 코드블록들에 블록 번호를 할당하는 방법에 대한 도면이다.
도 19는 본 발명의 색인이 추가된 코드블록이 디스플레이 되는 예시에 대한 도면이다.
도 20은 본 발명의 소프트웨어 코드의 시각적 구현 장치에 포함된 코드블록 변환부를 통해 코드블록을 코드로 변환하는 예시에 대한 도면이다.
도 21은 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 방법에 대한 흐름도이다.
도 22는 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 방법에서 사용자 입력에 따라 코드블록 정보를 설정하는 단계에 대한 흐름도이다.
이하, 본 발명이 속하는 기술분야에서 통상의 지식을 가진 자가 본 발명의 기술적 사상을 용이하게 실시할 수 있을 정도로 상세히 설명하기 위하여, 본 발명의 가장 바람직한 실시예를 첨부 도면을 참조하여 설명하기로 한다. 우선 각 도면의 구성요소들에 참조부호를 부가함에 있어서, 동일한 구성요소들에 대해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 부호를 가지도록 하고 있음에 유의해야 한다. 또한, 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략한다.
도 1은 소프트웨어 코드의 시각적 구현 장치를 통해 소프트웨어 코드를 구현하는 방법을 설명하기 위한 도면이다. 도 2는 디스플레이부에 디스플레이되는 코드블록의 구조를 설명하기 위한 도면이다. 도 3은 코드블록의 데이터 공유에 대해 설명하기 위한 도면이다. 도 4는 코드블록과, 코드블록을 이용하여 소프트웨어 코드를 구현하는 방법을 설명하기 위한 도면이다. 도 5는 생성된 코드블록을 코드로 변환하는 과정을 설명하기 위한 도면이다. 도 6 및 도 7은 코드블록들의 관계를 설명하기 위한 도면이다. 도 8은 소프트웨어 코드의 시각적 구현 장치를 설명하기 위한 도면이다. 도 9는 소프트웨어 코드의 시각적 구현 장치에 포함된 코드블록 설정부를 설명하기 위한 도면이다. 도 10 내지 도 17은 저장부에 저장된 코드블록들의 종류를 설명하기 위한 도면이다. 도 18은 복수개의 코드블록들에 블록 번호를 할당하는 방법을 설명하기 위한 도면이다. 도 19는 색인이 추가된 코드블록이 디스플레이 되는 예시를 설명하기 위한 도면이다. 도 20은 코드블록 변환부를 통해 코드블록을 코드로 변환하는 예시를 설명하기 위한 도면이다. 도 21은 소프트웨어 코드의 시각적 구현 방법을 설명하기 위한 도면이다. 도 22는 소프트웨어 코드의 시각적 구현 방법에서 사용자 입력에 따라 코드블록 정보를 설정하는 단계를 설명하기 위한 도면이다.
이하, 본 발명의 실시예에 따른 소프트웨어 코드의 시각적 구현 방법 및 장치를 첨부된 도면을 참조하여 상세하게 설명하면 아래와 같다.
도 1에 도시된 것처럼, 사용자는 프로그래밍 툴을 이용하여 소프트웨어 코딩을 수행하게 된다. 여기서, 사용자는 종래의 하나의 라인 별로 코딩을 수행하는 방식이 아닌, 도면부호(20)에 도시된 것처럼 코드블록 단위로 코딩을 수행할 수 있다. 나아가, 각각의 코드블록은 서로 독립적이다.
여기서 코드블록은 소프트웨어를 구성하는 컴포넌트(Component)중 하나를 의미한다. 이하에서는 코드블록에 대하여 서술하나, 본 발명은 컴포넌트의 일 실시예인 코드블록에 한정되지 않으며, 소프트웨어를 계층적으로 구조화할 수 있는 컴포넌트 전반에 대한 것이다.
코드블록은 소프트웨어의 기능을 블록 단위로 구분한 것으로, 이러한 코드블록은 도면부호(30)에 도시된 것처럼 기능 정보(31), 설명 정보(32), 코드 정보(33) 및 관리 번호(34)를 포함하여 구성될 수 있다. 상술한 것처럼 종래의 코딩 방식은 코딩이 1차원적으로 이루어지므로, 이미 구현된 소프트웨어 코드에 대한 가독성이 떨어지고, 각 코드가 의미하는 바가 불명확한 문제점이 있었다. 반면, 본 발명의 코드블록은 도면부호(30)에 도시된 것처럼 각 코드블록마다 각 코드블록이 의미하는 기능 정보(31), 설명 정보(32), 코드 정보(33) 및 관리 번호(34)를 바로 확인할 수 있으므로, 사용자 또는 운용자가 해당 부분이 의미하는 바가 무엇인지 직관적으로 그리고 명확하게 확인할 수 있는 장점이 있다. 여기서, 기능 정보(31), 설명 정보(32), 코드 정보(33) 및 관리 번호(34)가 의미하는 바는 다음과 같다.
기능 정보(31)는 소프트웨어를 구현하기 위해 도출된, 또는 사용자의 요구사항을 구체화하여 설계된 기능에 대한 설명을 나타낸다. 즉, 기능 정보(31)는 해당 코드블록에 대한 포괄적인 정보가 포함될 수 있다.
여기서 사용자의 요구사항은 계층적 구조(Layered)를 가지며, 제어 단계를 가지지 않는다. 나아가, 요구사항은 코드블록에서 자신의 역할을 담당하게 된다. 또한 요구사항은 각각 자신의 특성에 따라 색인(Index)을 가질 수 있다. 나아가 요구사항은 그룹을 형성할 수 있으며, 이러한 그룹 또한 색인으로 나타날 수 있다.
설명 정보(32)는 앞서 언급된 기능 정보에 대한 세부적인 또는 구체적인 설명을 포함할 수 있다. 여기서, 설명 정보(32)에 포함되는 정보에는 예를 들어, 기능에 대한 상세한 설명, 그림 및 도표 등과 같이 다양한 형태의 정보가 포함될 수 있다. 즉, 이러한 설명 정보(32)를 이용하여, 사용자는 소프트웨어 코드를 보다 직관적으로 이해할 수 있게 된다.
코드 정보(33)는 소프트웨어를 구현하는 코드, 또는 해당 코드블록을 구성하는 하위 코드블록 등에 대한 정보를 포함할 수 있다. 여기서, 하위 코드블록에 대한 설명은 도 4를 참조로 하여 후술하도록 한다.
관리 번호(34)는 사용자 또는 운용자가 각 코드블록에 대한 관리를 하기 위한 번호로서, 사용자 또는 운용자가 부여하는 번호를 나타낸다.
또한, 도면부호(20)에 도시된 것처럼 코드블록은 복수개가 계층적인 트리 구조로 구현될 수 있다. 또한, 이러한 코드블록은 이러한 계층적인 트리 구조뿐만 아니라, 도 2에 도시된 것처럼 계층적인 블록 구조로 도시될 수 있다. 이러한 계층적인 트리 구조 또는 계층적인 블록 구조로 구현된 코드블록들은 앞서 언급한 것처럼 소프트웨어를 구성하는 기능과 일대일로 대응되어 구현된다. 즉, 기능을 코드블록 구조로 구조화 하고 코드블록 내부에 정의된 기능을 코드화하여 블록간의 데이터의 공유와 제어의 흐름을 명확히 정의하면, 코드블록으로 구성된 코드는 일반적인 프로그래밍 언어로 표현될 수 있다.
블록간의 데이터 공유와 제어흐름에 대해 보다 상세하게 설명하면, 데이터 공유는 하위 코드블록이 필요로 하는 입출력 데이터를 상위 코드블록이 블록 내부의 데이터로 모두 소유하도록 구조화하는 것이고 제어흐름은 계층적인 블록 구조에서 같은 계층 간에만 제어흐름이 존재하도록 함으로써 제어흐름과 데이터의 흐름을 분리하는 것이다. 다시 말해서 하나의 코드블록 내에 여러 하위의 코드블록이 존재한다고 가정하면, 하위의 모든 코드블록은 상위의 코드블록에서 각자가 필요로 하는 모든 데이터에 접근이 가능하므로 마치 모든 입출력 데이터가 전역변수처럼 운용될 수 있고, 제어흐름은 하위 코드블록간에만 정의하면 된다. 이러한 구조는 모든 계층에서 적용되고 각 계층에서 정의된 제어흐름은 하위의 코드블록간에서 정의된 제어흐름과 연계되어 코드블록은 순서화된다.
여기서 제어흐름을 결정하는 방법은 상위 코드블록의 순서가 정해짐에 따라, 하위 코드블록은 상위 코드블록의 정해진 순서에 따라 순서가 정해진다. 즉, 코드블록에 대한 블록 번호 즉, 1, 1-1, 1-1-1, 1-1-2, 1-2, 1-2-1, 1-2-2, 2, 2-1 등의 순서로 순서가 정해질 수 있다.
또한, 데이터 공유 방법에 대해, 상위 코드블록은 하위 코드블록이 필요로 하는 입출력 데이터를 반드시 소유하고. 이러한 특징은 모든 계층에 적용될 수 있다. 예를 들어, 소프트웨어가 기능1 및 기능2를 포함한다고 가정하자. 또한, 여기서 기능1은 세부적으로 기능1-1과 기능1-2를 포함한다고 가정하자. 이러한 기능은 또한, 도 1의 도면부호(20)와 도 2에 도시된 것처럼, 기능1은 코드블록1로, 기능2는 코드블록2로 대응하여 구현될 수 있다. 여기서 제어 흐름은 기능1, 기능1-1, 기능1-2 및 기능2의 순서가 된다.
도 3은 본 발명의 일 실시예에 따른 코드블록의 데이터 공유에 대한 개념도이고, 구체적으로 정의된 데이터 영역 내에서 코드블록 간 데이터를 공유하는 개념을 도시한다.
코드블록은 상위 코드블록과 하위 코드블록으로 구분될 수 있다. 여기서, 상위 코드블록은 하위 코드블록들이 공유해야 할 데이터를 정의하고 관리해야 한다. 즉 상위 코드블록은 하위 코드블록이 필요로 하는 모든 입출력 데이터를 소유하고 있어야 한다. 이는 예를 들어, 일반적인 프로그래밍 언어에서 데이터를 전역 변수로 정의하고 각 지역(하위 코드블록)에서 전역 변수를 이용하는 것과 같은 원리이다.
도 3에 도시된 것처럼, 상위 코드블록은 적어도 하나의 하위 블록으로 구성된 영역의 데이터를 관리하고 이러한 구조는 계속적으로 계층화될 수 있다. 이는 예를 들어, C 언어의 경우, 여러 개의 중괄호('{' 또는 '}')를 이용해서 무한히 여러 층의 지역변수를 지원하고, 또한 상위의 코드블록이 갖는 지역변수는 하위 코드블록에서 접근할 수 있는 지역 변수와 같은 역할을 할 수 있다.
이하, 도 4를 참조로 본 발명의 일 실시예에 따른 코드블록과, 코드블록을 이용하여 소프트웨어 코드를 구현하는 방법을 서술한다.
즉, 코드블록을 이용하여 소프트웨어를 구현하는 도구에서 새로운 코드블록을 추가하는 행위는 해당 코드블록이 소속될 위치에 새로운 코드블록을 생성하는 것을 나타낸다. 코드블록을 구현하는 지원도구 상에서 최초의 코드블록을 추가하지 않더라도 가장 상위의 코드블록은 항상 존재한다. 예를 들어, C 프로그래밍 언어에서 가장 상위의 코드블록은 Main()함수로 정의될 수 있다. 또한, 코드블록이 추가되면 선택된 코드블록의 종류에 따라 조건문 정의, 입출력 변수 정의, 코드블록의 순서(블록 번호) 정의, 해당 코드블록의 변수 선언이 요구된다.
도 4에 도시된 것처럼 사용자는 코드블록의 내부 속성 코드를 코딩 윈도우를 통해 구현할 수 있다. 구체적으로, 코드블록은 코딩 윈도우를 통해 코드블록의 변수 선언/코드블록의 입력변수 할당/조건문/해당 코드블록의 기능 구현 코드/코드블록의 출력변수 할당의 내용을 별도로 관리할 수 있고, 코드 구현 시, 해당 위치로 관련 코드를 위치시킬 수 있다. 이러한 코딩 윈도우는 변수 선언 윈도우(41), 입력 변수 할당 윈도우(42), 조건문 윈도우(43), 코드 입력 윈도우(44) 및 출력 변수 할당 윈도우(45) 중 적어도 하나를 포함하여 구성될 수 있다. 즉, 코딩 윈도우는 상기 윈도우들 모두를 이용하는 것이 아닌, 사용자가 필요한 윈도우를 선택하여 코딩을 수행할 수 있다.
여기서, 변수 선언 윈도우(41)는 코드블록 내부에서 이용되는 모든 변수(즉, 코드블록의 기능 구현을 위해 사용되는 모든 변수)를 선언하는데 사용되고, 입력 변수 할당 윈도우(42)는 입력 변수에 대한 할당에 사용된다. 또한, 조건문 윈도우(43)는 조건문(예를 들어, If, Switch 제어문 등) 코딩, 반복문(예를 들어, While, For, Do while 제어문 등) 코딩에서 조건 부분을 선언하는데 사용된다. 또한, 코드 입력 윈도우(44)는 평서문 코딩, 조건문 코딩, 반복문 코딩에서 실질적으로 기능 수행을 정의하는데 사용되는 내부 속성 코드의 입력에 사용된다. 또한, 마지막으로 출력 변수 할당 윈도우(45)는 해당 코드블록에서 상위 코드블록으로 값을 반환하는데 사용된다.
상술한 것처럼, 코드블록을 추가하면 해당 코드블록의 내부 속성 코드에 코드블록의 변수 선언/코드블록의 입력 변수 할당/조건문/코드블록의 출력변수 할당 정보가 관리될 수 있다. 해당 코드블록의 주요 내용은 해당 코드블록의 기능 구현 코드이므로 사용자 또는 운용자는 코드블록의 내부속성 정보를 코드블록의 위치 및 역할에 따라 정의할 수 있게 되므로, 사용자 또는 운용자는 주요 내용인 기능 구현 코드의 완성에 대한 집중이 가능해진다.
또한, 도 4에 도시된 변수의 선언과 할당을 위한 윈도우(41, 42, 43, 45)는 별도의 영역에서 해당 내용의 정의가 가능하고, 이는 해당 코드블록의 기능 구현을 위한 코드(즉, 코드 입력 윈도우를 통해 입력된 내부 속성 코드)와 별도로 관리될 수 있다. 코드블록을 추가할 때, 코드 입력 윈도우(44) 부분을 제외한 나머지 부분은 해당 코드블록의 내부 속성 정보 영역에 기능을 정의하여 해당 코드블록을 사용할 수 있다. 코드블록의 내부 속성정보로 관리되는 내용도 소프트웨어 코드로 변환 시 도 4와 같은 순서로 코드화될 수 있다.
이렇게 코딩 윈도우를 통해 설정된 코드블록의 내부 속성 코드 사용자에 의해 미리 설정된 프로그래밍 언어로 변환될 수 있다.
이하, 도 5를 참조로 본 발명의 일 실시예에 따라 생성된 코드블록을 코드로 변환하는 과정을 서술한다. 보다 구체적으로, 도 5를 참조로, 상위 코드블록이 하위 코드블록을 포함하는 경우, 이들 코드블록을 코드로 변환하는 과정을 서술한다.
코드로 표현되는 코드블록은 C 언어의 함수(Function)와 유사한 특성을 가질 수 있다. 즉, C 언어의 함수는 함수 영역 내부에서 사용되는 지역변수가 존재하고 함수에서 사용될 인자를 함수 외부에서 가져올 수 있다. 그리고 결과 값으로 특정 값을 반환할 수 있다.
C 언어에서 함수는 블랙박스와 같아서 함수 내부에서 어떤 행위를 수행하는 지에 대해, 데이터 공유의 관점에서 특정 입력 값을 입력했을 때 특정한 결과를 도출하는 것처럼 보인다. 즉, 함수는 외부의 인자를 입력하면 약속된 행위를 수행하거나 결과 값을 반환하는 것으로, 자신만의 데이터 영역을 가질 수 있다. 또한, 이러한 함수는 순서에 따라 순차적으로 호출될 때, 그 기능을 수행하는 소프트웨어 컴포넌트로 구분될 수 있다.
상술한 것처럼, 블록간의 데이터 공유와 제어흐름에 대해 설명하면, 데이터 공유는 하위 코드블록이 필요로 하는 입출력 데이터를 상위 코드블록이 블록 내부의 데이터로 모두 소유하도록 구조화하는 것이고 제어흐름은 계층적인 블록 구조에서 같은 계층간에만 제어흐름이 존재하도록 함으로써 제어흐름과 데이터의 흐름을 분리하는 것이다. 다시 말해서 하나의 코드블록 내에 여러 하위의 코드블록이 존재한다고 가정하면, 하위의 모든 코드블록은 상위의 코드블록에서 각자가 필요로 하는 모든 데이터에 접근이 가능하므로 마치 모든 입출력 데이터가 전역변수처럼 운용될 수 있고, 제어흐름은 하위 코드블록간에만 정의하면 된다. 이러한 구조는 모든 계층에서 적용되고 각 계층에서 정의된 제어흐름은 하위의 코드블록간에서 정의된 제어흐름과 연계되어 코드블록은 순서화된다.
여기서 제어흐름을 결정하는 방법과 데이터 공유 방법은 위에 상세히 개시되었으므로, 명세서의 이해를 돕기 위해 이에 대한 추가적인 설명은 생략한다.
코드블록은 이러한 데이터 영역과 제어 흐름의 특성을 가질 수 있다. 구체적으로, C 언어의 함수 기능과 코드블록과의 차이점은 함수는 특정한 시점에 여러 코드에서 공통으로 호출하여 사용이 가능하지만, 코드블록은 특정한 위치에 소속되어 독립적으로 정해진 역할을 수행한다.
예를 들어, 관리번호가 3인 코드블록이 존재하고, 이러한 코드블록 내에 관리번호가 32인 코드블록이 소속되어 있다고 가정하자. 이 경우, 관리번호가 3인 코드블록 안에 소속된 32 코드블록은 3 코드블록으로부터 입력인자를 받고 연산을 수행한 후, 약속된 출력 인자를 다시 3 코드블록으로 반환하게 된다. 여기서, 입출력 데이터 외의 32 코드블록 내의 모든 인자와 행위는 32 코드블록 내에서 독립적으로 수행될 수 있다. 또한 이는 상위 코드블록인 3 코드블록뿐만 아니라 다른 어떤 코드블록에도 영향을 주지 않는다.
C 언어에서 상기의 특성을 갖는 코드를 함수를 이용하여 구현할 수 있지만, C 언어에서는 함수 내부에 함수를 선언하는 것을 지원하지 않기 때문에 본 발명에서는 중괄호(Braces, {})를 이용하여 코드블록을 구현한다. 중괄호는 C 코드 내에서 영역을 블록으로 구분하는 방법 중의 하나로 중괄호 내부에 선언된 변수는 해당 영역에서만 인식되는 지역변수가 된다. 이러한 사항은 도 5를 참조하면 보다 분명해진다. 즉, 상위 코드블록은 하위 코드블록을 포함하는 구조로, 중괄호로 구분되어 표현될 수 있다.
또한, 상위 중괄호(상위 코드블록)에 선언된 변수(입력인자)는 하위의 중괄호(하위 코드블록)에서 선언된 변수에 재할당시켜 연산을 하고 마지막에 결과 값을 다시 상위 중괄호(상위 코드블록)에 선언된 변수(출력인자)로 결과 값을 반환하는 방법으로 코드블록이 구현된다. 즉, 코드블록의 내부에서 처리되는 행위는 모두 코드블록의 지역변수를 이용하여 수행되므로 다른 코드블록과 독립적인 관계를 유지할 수 있다. 코드블록은 다음의 특징을 만족하면 어떠한 방법으로도 생성이 가능하다.
또한, 여기서 코드블록의 관계는 앞서 언급한 것처럼 포함 관계로도 이루어질 수 있지만, 병렬 관계로의 형성 또한 가능하다. 이러한 사항은, 앞서 언급한 코드블록이 포함 관계로 구현된 도 6과, 코드블록들이 병렬 관계로 구현된 도 7을 참조하면 보다 분명해진다.
즉, 도 6에 도시된 포함 관계는 적어도 하나의 코드블록이 다른 코드블록 내에 존재하는 것으로 정의될 수 있다. 포함관계에 있는 코드블록에서 상위 코드블록은 상위 코드블록에서 사용되는 변수의 선언 외에 다른 별도의 코드를 갖지 않는다. 이에 따라, 포함관계에 있는 코드블록의 제어흐름은 상위블록의 변수 선언 부분이 먼저 코드화되고 그 후, 포함되어 있는 코드블록의 코드를 위치시키면 된다. 그러므로 아래에서 언급되는 병렬 관계에서 코드블록의 제어흐름에 의해 상위 코드블록의 코드 위치가 결정되면 하위 코드블록의 코드는 그 범위 내에서 하위 코드블록 간의 코드 순서를 결정함으로써 소프트웨어의 전체 코드를 구성할 수 있다.
또한, 도 7에 도시된 것처럼 코드블록이 포함관계에 있지 않고 동일한 상위 코드블록에 포함되어 있는 관계를 병렬관계라 정의한다. 병렬관계에 있는 코드블록들은 순서화되어야 한다. 예를 들어 도 7에서 표현된 것과 같이 하나의 코드블록을 1번 코드블록으로 다른 코드블록을 2번 코드블록으로 제어흐름을 정의하면, 코드블록 형태가 소프트웨어 코드로 변환되면, 이는 상술한 도 5와 같은 형태로 이루어질 수 있다.
이하, 도 8을 참조로, 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 장치에 대해 서술한다. 도 8은 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 장치에 대한 블록도이다. 도 8에 도시된 것처럼, 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 장치는 코드블록 생성부(110), 코드블록 설정부(120), 코드블록 권한 설정부(130), 코드블록 검증부(140) 및 코드블록 변환부(150)를 포함하여 구성될 수 있다. 이하에서 이들 구성들에 대한 서술이 구체적으로 이루어진다.
코드블록 생성부(110)는 소프트웨어의 구현에 대해, 고객의 요구사항과 기능에 따라 소프트웨어 코드를 블록 단위로 구현하는데 사용되는 코드블록을 생성하는 기능을 한다.
더욱 상세하게, 코드블록 생성부(110)는 요구사항(Requirement)을 도출해내며, 이러한 요구사항은 하나의 코드블록으로 구현될 수 있다. 여기서, 요구사항들은 계층적 구조(Layered)를 가지며, 제어 단계를 가지지 않는다. 나아가, 요구사항들은 이후 구현될 코드에서 각각 자신의 역할을 담당하게 된다. 또한 요구사항들은 각각 자신의 특성에 따라 색인(Index)을 가질 수 있다. 나아가 요구사항들은 그룹을 형성할 수 있으며, 이러한 그룹 또한 색인으로 나타날 수 있다.
코드블록 생성부(110)는 요구사항을 이용하여 코드블록을 생성하며, 이때, 코드블록은 제어 단계를 가질 수 있으며, 각각의 요구사항은 코드블록에 할당될 수 있다. 여기서 코드블록에 대한 생성은 크게 2가지 방식으로 나뉠 수 있다. 즉, 제 1 생성 방법은 예를 들어, 도 4에 도시된 코드 윈도우 내에 모든 속성이 비어 있는 코드블록을 생성하는 것이다. 또한, 제 2 생성 방법은 저장부(83)에 기 저장된 코드블록 형태를 호출하여 코드블록을 생성하는 방식이다. 즉, 저장부(83)는 다양한 형태의 코드블록을 포함할 수 있고, 구체적으로, 저장부(83)는 제어 흐름에 따라 평서문 코드블록, 반복문 코드블록 및 조건문 코드블록을 포함할 수 있다. 여기서 저장부(83)에 저장된 코드블록의 종류는 다음과 같다
여기서 평서문 코드블록에 대한 예시는 도 10에 도시된다. 도 10은 소위 Goto Next 코드블록을 나타내고, 이는 일반적인 코드블록으로 별도의 제어흐름이 존재하지 않는 코드블록을 나타낸다. 구체적으로, Goto Next 코드블록은 일반적인 코드블록으로, 해당 코드블록 다음에 다음 순서의 코드블록이 존재하도록 지정할 수 있다.
반복문 코드블록에 대한 예시는 도 11 내지 도 13에 도시된다. 즉, 도 11은 For 코드블록을, 그리고 도 12는 While 코드블록을, 그리고 도 13은 Do while 코드블록을 나타낸다. 도 11 내지 도 13에서 언급된 반복문 코드블록은 조건이 만족되는 동안 해당 코드블록의 내부에서 일정한 행위를 반복적으로 수행하는 반복문의 기능을 수행하는 코드블록이다. 하지만 코드블록의 관점에서 보면, 반복문의 내부 행위가 반복적으로 수행된다고 하더라도 결국은 해당 코드블록의 순서에 해야 할 일을 처리 하고 있는 것과 같다. 즉, 해당 코드블록이 한번 수행되는 것으로 간주 될 수 있다.
조건문 코드블록에 대한 예시는 도 14 및 도 15에 도시된다. 즉, 도 14는 Switch 코드블록을, 그리고 도 15는 If 코드블록을 나타낸다. 도 14 및 도 15에서 언급된 반복문 코드블록은, 입력된 변수가 특정 조건에 해당할 때, 해당되는 기능을 수행하는 코드블록을 나타낸다.
또한, 코드 블록은 아래에서 언급되는 함수 코드블록을 더 포함할 수 있다. 함수 코드블록은 함수를 이용하여 구현되는 코드블록을 나타내고, 이에 대한 예시는 도 16 및 도 17에 도시된다. 이러한 함수 코드블록은 C 언어에서의 함수사용과 마찬가지로 최상위 블록에서 선언하고 정의하여 사용될 수 있다. 도 16에 도시된 바와 같이, 함수 코드블록은 다른 코드블록과 같이 지역변수 선언/입력변수 할당/연산 수행/결과 반환 기능이 모두 동일하지만, 추가적으로 함수명(인자) 선언과 블록의 이름으로 함수명(인자)를 사용하는 차이점이 있다. 이러한 이유로 함수 코드블록은 최상위 블록에서 선언할 수 있다.
도 8에 도시된 코드블록 설정부(120)는 사용자로부터 입력된 정보를 근거로 상기 코드블록 내에 포함되는 코드블록 속성 또는 코드를 설정하는 기능을 한다. 여기서, 코드블록 속성은 앞서 도 1을 참조로 언급한 것처럼 해당 코드 블록에 대한 기능 정보와 설명 정보를 포함한다. 즉, 이러한 코드블록 속성은 1차원적으로 코딩이 이루어져서 가독성이 떨어지는 종래의 코딩 방식을 해소하기 위해 안출된 것으로, 소프트웨어를 구현할 때 도출된 요구사항을 구체화하여 설계된 기능의 간략한 그리고 자세한 설명이 포함된다. 구체적으로, 기능 정보 소프트웨어를 구현하기 위해 도출된, 또는 사용자의 요구사항을 구체화하여 설계된 기능에 대한 설명을 나타내고, 설명 정보는 앞서 언급된 기능 정보에 대한 구체적인 설명을 포함된 것을 나타내다. 여기서, 설명 정보에 포함되는 정보는 예를 들어, 기능에 대한 자세한 설명, 그림 및 도표 등과 같이 다양한 형태의 정보가 포함될 수 있다. 이러한 코드블록 속성을 통해, 종래의 코딩 방식에서 1차원적으로 표현되는 방식 예를 들어, 주석 등과는 달리 사용자에 의한 보다 직관적인 이해가 가능해진다.
또한, 내부속성 코드는 도 4를 참조로 언급한 것처럼 코딩 윈도우를 통해 사용자로부터 설정될 수 있다. 여기서, 코딩 윈도우는 변수 선언 윈도우, 입력 변수 할당 윈도우, 조건문 윈도우, 코드 입력 윈도우 및 출력 변수 할당 윈도우를 포함하여 구성될 수 있고, 이들 각각에 대한 서술은 앞서 상세히 이루어졌으므로, 명세서의 명료함을 위해 이에 대한 추가적인 서술은 생략한다. 이렇게 설정된 코드블록 속성과 내부 속성 코드는 사용자로부터 해당 코드블록에 대한 디스플레이 요청 시, 디스플레이부(82)를 통해 코드블록에 대한 기능 정보, 설명 정보 및 내부 속성 코드가 디스플레이 된다.
또한, 코드블록 설정부(120)는 코드블록 생성부(110)를 통해 복수개의 코드블록들이 생성되는 경우, 사용자의 설정에 따라 복수개의 코드블록들을 계층적인 트리 구조 또는 계층적인 블록 구조로 분류할 수 있다. 이에 대한 예시는 도 1 및 도 2에 도시되어 있다. 이렇게 분류된 계층적인 구조들은 사용자 또는 운용자에 의해 직관적으로 소프트웨어의 분석에 도움을 줄 수 있는 장점이 있다. 또한, 이러한 구조화를 통해 예를 들어, 차후의 소프트웨어의 편집에 있어서도 관리가 보다 용이해지는 장점이 있다.
예를 들어, 사용자 또는 운용자가 계층적인 트리 구조 또는 계층적인 블록 구조에 포함된 복수개의 코드블록들 중 하나를 다른 위치로 복사하는 경우를 가정하자. 즉, 코드블록을 이용하여 소프트웨어를 구성하는 경우, 같은 기능을 수행하지만 다른 위치에 소속되는 코드블록이 존재할 수도 있고, 유사한 기능을 갖는 코드블록이 존재할 수도 있다. 이때 코드블록을 복사하여 다른 코드블록의 아래로 붙여 넣을 수 있다. 코드블록을 붙여 넣으면, 관리번호/입력변수 선언/출력변수 선언은 지워지고, 블록번호는 해당 코드블록의 위치에 따라 자동으로 할당된다. 코드블록을 복사하여 보존되는 데이터는 기능(요구사항)/기술과 코드 내용 중 코드의 내부 변 수 선언/조건/기능구현 코드로 구분된다. 복사될 코드블록이 선택되면 선택된 코드블록의 하위코드 블록도 같이 복사된다. 복사되는 코드블록의 하위 코드블록의 데이터는 모두 그대로 유지될 수 있다.
또한, 코드블록들은 계층적인 트리 구조 또는 계층적인 블록 구조에서의 위치에 따라 상위 코드블록과 하위 코드블록으로 분류될 수 있다. 또한, 앞서 언급한 것처럼 하위 코드블록 내에 포함된 내부 속성 코드는 상위 코드블록에 대해 독립적으로 구현되고, 상위 코드블록은 내부에 변수 선언 기능만을 수행할 뿐 추가적인 코드를 포함하지 않는다. 즉, 상위 코드블록은 하위 코드블록이 필요로 하는 공유 데이터(하위 코드블록 간에 데이터를 공유할 수 있도록 데이터 버스 역할을 수행하는)만 포함하고, 하나 이상의 하위 코드블록들만 포함하며, 하나 이상의 하위 코드블록들은 상위 코드블록으로부터 입력 인자를 수신하고, 상위 코드블록으로 출력인자를 반환하게 된다.
또한, 코드블록 설정부(120)는 계층적인 트리 구조 또는 계층적인 블록 구조에서 코드블록의 위치에 따라, 자동으로 블록 번호를 할당할 수 있다. 즉 예를 들어, 하나의 코드블록 내에 2개의 코드블록이 포함된 경우가 가정된다(도 18 참조), 도 18에 도시된 것처럼 최상위 코드블록은 블록번호가 1로 설정된다고 가정한다. 여기서, 이러한 최상위 코드블록은 2개의 하위 코드블록을 포함하고 있고, 이들 하위 코드블록들은 각각 블록 번호가 11 및 12로 할당될 수 있다. 또한 여기서 블록 번호가 12인 코드블록이 예를 들어, 2개의 코드블록을 더 포함하면, 이들 2개의 코드블록은 각각 121 및 122의 블록 번호가 할당될 수 있다. 여기서, 블록 번호의 할당 방법은 단지 예시일 뿐이고, 다양한 다른 방식으로 응용 가능하다. 또한, 여기서, 블록 번호가 11, 121 및 122인 코드블록들은 각각 최하위 코드블록이 되므로, 이들은 내부 속성 코드를 포함하여 구현될 수 있다. 반면, 블록 번호가 1, 12인 코드블록 들은 각각 하위 코드블록을 포함하게 되므로, 이들은 변수 선언을 위한 코드 외에 별도의 코드들을 포함하지 않게 된다.
또한, 코드블록 설정부(120)는 코드블록에 대한 색인을 더 설정할 수 있다. 즉, 소프트웨어가 수개의 코드블록만을 포함하는 경우 관리가 용이하지만, 실제 구현 상에서는 무수히 많은 코드블록이 하나의 소프트웨어의 구현을 위해 사용될 수 있다. 이 경우, 사용자 또는 운용자에게 보다 직관적으로 해당 코드블록이 나타내는 바를 알리기 위해 해당 코드블록에 색인을 추가할 수 있다. 이를 통해 각각의 코드블록은 색인/기능(요구사항)/기술/코드를 관리번호 및 블록번호를 통해 관리할 수 있고, 필요에 따라 일정한 영역별로 또는 전체 구성에 대해서 색인/기능(요구사항)/기술/코드로 각각 표현될 수 있다. 이에 대한 예시는 도 19에 나타난다.
즉, 도 19에 도시된 것처럼 소프트웨어로 계산기를 구현하는 경우가 존재할 수 있다. 이러한 계산기는 사용자 인터페이스를 나타내는 코드블록, 연산자를 나타내는 코드블록 그리고, 그래픽을 나타내는 코드블록을 포함할 수 있다. 이 때, 이러한 코드블록들이 나타내는 바가 명확해지도록 코드블록 상에 이러한 색인 기능을 추가함으로써, 사용자 또는 운용자가 보다 용이하게 프로그래밍을 수행할 수 있게 된다.
또한, 이러한 색인은 코드블록에 대한 색인 뿐만 아니라, 상위 코드블록에서 관리하는 변수에 대한 색인도 포함할 수 있다, 즉, 상위 코드블록의 경우 여러 단계의 하위 코드블록이 포함될 수 있고, 경우에 따라 상당히 많은 양의 변수를 관리할 수 있다. 이러한 경우, C 언어의 예를 들어 설명하면, 변수들을 구조체를 이용해 묶을 수 있고, 이러한 구조체 역시 색인을 통해 관리함으로써 보다 명확하게 소프트웨어를 외형적으로 관리할 수 있다.
코드블록 권한 설정부(130)는 다른 사용자들로부터의 접근 권한을 설정하기 위한 코드블록의 접근 권한을 설정하는 기능을 한다. 구체적으로, 코드블록 권한 설정부(130)는 전체 코드블록 구조에서 각각의, 적어도 일부, 또는 전체 코드블록에 대해 권한 설정이 가능하다. 선택된 코드블록은 하위의 코드블록이 포함되도록 설정할 수 있고, 하위의 코드블록이 포함되지 않도록 보안 설정이 가능하다. 보안이 설정된 코드블록은 기능/설명/기능이 구현된 코드를 권한을 가진 자 이외에는 볼 수 없도록 설정하거나 수정 권한이 제한될 수 있다. 이러한 접근 권한 설정은 기능/설명/내부 속성 코드에 대해서 개별 설정도 가능하다. 접근 권한 설정은 일부 코드블록만 다른 사람에게 보이도록 설정할 수도 있다. 코드블록은 여러 단계(보이지 않도록 설정/보이지만 수정할 수 없도록 설정/입출력 변수 및 메시지는 수정이 불가능하도록 설정/모든 데이터의 수정이 가능하도록 설정)의 보안 설정도 가능하다. 특정 코드블록의 변수 및 메시지는 관리자에 의해 정해진 코드블록에서만 사용되도록 보안 설정하는 기능이 지원된다.
코드블록 검증부(140)는 랜덤 변수를 이용하여 코드블록에 포함된 입력 변수를 반복적으로 입력하여 코드 블록을 검증하는 기능을 수행한다. 예를 들어, 사용자가 검증을 위한 코드블록을 선택하면, 선택된 코드블록의 하위 코드블록과 함께 검증 단위가 된다. 그 후, 디스플레이부(82) 상에 입출력 인자로 구성된 부분과 입출력인자의 조건 부분으로 구성된 화면이 디스플레이 된다. 여기서, 조건 부분에 입출력 인자 각각에 대한 입출력 조건을 명시하고 검증을 실행하면, 조건에 명시된 범위 내에서 랜덤 변수를 이용하여 입력변수를 지속적으로 입력함으로써 운용자가 멈출 때까지 자동으로 다양한 변수의 입력을 통해 코드를 검증할 수 있다.
여기서, 검증 방법은 랜덤 변수를 이용하거나, 또는 조건 내의 모든 값에 대해서 순차적으로 변수의 입력 및 출력 값을 검증하는 방식으로 이루어질 수 있다. 시험을 통해서 에러가 발생되면 에러가 발생된 코드블록의 위치를 알리거나(컴파일 오류 시 컴파일러가 알려주는 코드의 라인이 소속된 코드블록 인식을 통해) 출력변수의 조건 중 오류가 발생한 출력 변수명을 알리는 방식이 이루어질 수 있다. 검증 수행 시, 컴퓨터의 메모리 사용 및 CPU 사용 상태 등도 시험 결과 화면에 연동하여 디스플레이될 수 있다. 입력 변수/출력 변수의 조건은 숫자 및 기호(<, >)로 구성되고 조건은 중복 표현이 가능하다. 검증 방법에서 순차 시험이 선택되면, 변수의 선언된 형에 따라 해당 변수로 표현되는 모든 숫자를 순차적으로 적용하여 검증을 수행한다. 검증 시작과 종료는 모든 숫자의 적용이 끝나면 자동으로 종료되거나 운용자의 종료 버튼을 누름에 의해 종료될 수 있다.
또한, 도면에서, 코드블록 검증부(140)는 코드블록 설정 이후에만 검증을 수행하는 것처럼 도시되었으나, 이는 단지 발명의 이해를 돕기 위함이고, 코드블록의 설정 이후 어느 단계에서도 검증이 이루어질 수 있다.
코드블록 변환부(150)는 사용자로부터의 요청 시, 상기 코드블록을 기설정된 프로그래밍 언어에 대응하는 코드로 변환하는 기능을 한다. 이에 대한 예시는 도 20에 도시된다. 도 20에 도시된 상위 코드블록은 2개의 하위 코드블록을 포함하고, 이들 하위 코드블록은 병렬 관계로 포함되어 있다. 또한, 이러한 코드 변환에 대한 방법은 앞서 상세히 언급하였으므로, 명세서의 명료함을 위해 이에 대한 추가적인 설명은 생략된다. 또한, 코드블록 변환에 대한 서술에서 본 명세서는 C 언어를 위주로 서술이 되어 있으나, 이는 단지 명세서의 이해를 돕기 위한 예시일 뿐이고, 다른 다양한 형태의 언어에 적용 가능하다.
또한, 도면에서, 코드블록 변환부(150)는 코드블록에 대한 권한 설정 이후에만 변환을 수행하는 것처럼 도시되었으나, 이는 단지 발명의 이해를 돕기 위함이고, 코드블록의 설정 이후 어느 단계에서도 변환이 이루어질 수 있다.
또한, 본 발명의 소프트웨어 코드의 시각적 구현 장치(100)는 코드블록을 이용한 소프트웨어 구현 시, 관련된 기능의 상관관계나 변수, 혹은 메시지를 이용하여 해당 데이터의 흐름이나 관계 양상을 검증할 때, 사용자 또는 운용자에게 코드블록의 다양한 뷰 기능을 제공할 수 있다. 코드 블록은 블록번호/관리번호/코드블록에 선언된 변수 및 메시지를 중심으로 관계된 코드블록을 계층적 트리 구조 또는 계층적 블록 구조로 디스플레이하는 기능을 갖는다.
여기서, 코드블록 디스플레이 범위는 특정한 코드블록을 포함함으로써 다양하게 설정하는 것이 가능하다. 코드블록에 선언된 변수가 기준이 될 때 상위 코드블록에서 하위 코드블록으로 입/출력되는 변수는 동일한 변수로 인식되어 관련된 모든 코드블록을 디스플레이할 수 있다. 코드블록을 이용한 소프트웨어 구현 도구는 각 코드블록에 속성의 할당이 가능하다. 예를 들어, 데이터의 저장과 관계된 기능을 하나의 속성으로 정의하고 그와 관계된 코드블록에 해당 속성을 정의할 수 있다. 정의된 데이터의 저장과 관계된 속성을 선택하여 그와 관계된 코드 블록만을 디스플레이(트리 구조/블록 구조)할 수 있다. 이러한 속성 정보는 중복하여 설정이 가능하고 하나의 코드블록에 중복하여 정의하는 것도 가능하다. 코드블록의 코드정보는 하나의 소프트웨어 코드(C 언어의 소스 코드 형태)로 표현될 수 있다. 기능(요구사항)/기술은 하나의 보고서 형태로 관리번호를 기준으로 기능과 기술을 동시에 디스플레이할 수 있다.
이하, 도 9를 참조로, 코드블록 설정부에 대해 더 서술한다. 도 9는 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 장치에 포함된 코드블록 설정부에 대한 블록도이다. 도 9에 도시된 것처럼, 코드블록 설정부(120)는 코드블록 속성 설정 모듈(121), 코드 설정 모듈(122), 관계 설정 모듈(123) 및 블록 번호 설정 모듈(124)을 포함하여 구성될 수 있다. 이하의 서술에서, 앞서 언급한 내용과 중복되는 사항은 명세서의 명료함을 위해 생략한다.
코드블록 속성 설정 모듈(121)은 코드 블록내의 코드블록 속성을 설정하는 기능을 한다. 즉, 코드블록 속성 설정 모듈(121)은 코드 블록 내에서 코드블록에 대한 기능 정보와 설명 정보를 설정하는 기능을 한다. 이는 입력부를 통한 사용자의 입력을 통해 가능하다. 상술한 것처럼, 이러한 코드블록 속성은 1차원적으로 코딩이 이루어져서 가독성이 떨어지는 종래의 코딩 방식을 해소하기 위해 안출된 것으로, 소프트웨어를 구현할 때 도출된 요구사항을 구체화하여 설계된 기능의 간략한 설명(간단한 기능 설명) 그리고 자세한 설명(상세한 설명, 그림 및 도표 등)이 포함된다. 이러한 코드블록 속성을 통해, 종래의 코딩 방식에서 1차원적으로 표현되는 방식 예를 들어, 주석 등과는 달리 사용자에 의한 보다 직관적인 이해가 가능해진다.
코드 설정 모듈(122)은 코드 블록내의 내부 속성 코드를 설정하는 기능을 한다. 이는 도 4 및 도 8에서 언급한 것처럼, 사용자가 코딩 윈도우를 통해 입력한 코드에 의해 설정 가능하다. 또한, 코딩 윈도우는 변수 선언 윈도우, 입력 변수 할당 윈도우, 조건문 윈도우, 코드 입력 윈도우 및 출력 변수 할당 윈도우 중 적어도 하나를 포함하여 구성될 수 있다. 이에 대한 서술은 위에서 상세히 언급되었으므로, 명세서의 명료함을 위해 추가적인 설명은 생략된다.
관계 설정 모듈(123)은 코드블록 생성부(110)를 통해 복수개의 코드블록들이 생성되는 경우, 사용자의 설정에 따라 복수개의 코드블록들을 계층적인 트리 구조 또는 계층적인 블록 구조로 분류하는 기능을 한다. 또한, 이러한 분류를 통해 관계 설정 모듈(123)은 복수개의 코드블록들을 병렬 관계 또는 포함 관계로 설정할 수 있다. 이러한 관계들에 대한 설정 방법과 종류에 대해서는 앞서 상세히 언급되었으므로, 이에 대한 추가적인 설명은 생략한다.
블록 번호 설정 모듈(124)은 관계 설정 모듈(123)에서 설정된 계층적인 트리 구조 또는 계층적인 블록 구조에서의 코드블록의 위치에 따라, 코드블록들에 자동으로 블록 번호를 할당하는 기능을 한다. 이러한 할당 방법은 예를 들어, 최상위 코드블록에는 x, 최상위 코드블록에 포함되는 하위 코드블록에는 xy, 그 다음 하위 코드블록에는 xyz와 같은 형태로 구현 가능하다. 다만, 이러한 구현 방법은 단지 예시일 뿐이고, 코드블록들에 대한 위치가 파악될 수 있는 다양한 형태로 구현 가능하다.
이하, 도 21을 참조로, 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 방법에 대해 더 서술한다. 도 21은 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 방법에 대한 흐름도이다. 이하의 서술에서는 도 1 내지 도 20을 참조로 언급되는 부분과 중복되는 사항은 명세서의 명료함을 위해 생략한다.
먼저, 사용자에게 코드블록을 생성할지에 대한 여부를 확인하는 단계(S110)가 수행된다. 즉, 본 발명의 소프트웨어 코드의 시각적 구현 방법은 예를 들어, 사용자가 새롭게 코드블록을 생성하는 기능도 수행할 수 있지만, 기생성된 코드블록들에 대한 편집(예를 들어, 복사, 삭제 및 편집)도 가능하다. 이에 따라, 코드블록을 생성할지에 대한 여부를 확인하는 단계(S110) 에서 이에 대한 확인이 필요하다. 그 뒤, 코드블록을 생성할지에 대한 여부를 확인하는 단계(S110) 에서 사용자가 새로운 코드블록을 생성하는 것을 원하는 것으로 확인되면, 코드블록을 생성(S120)하고, 만약 사용자가 새로운 코드블록을 생성하는 것을 원하지 않는다면, 코드블록 속성 또는 내부 속성 코드를 설정(S130)한다.
코드블록을 생성(S120)하는 단계는, 코드블록 생성부에 의해, 요구사항과 기능에 따라 소프트웨어 코드를 블록 단위로 구현하는데 사용되는 코드블록을 생성하는 기능을 한다. 여기서, 생성되는 코드블록은, 사용자가 새로운 편집을 원할 때 사용되는 내부가 빈 기본 틀, 저장부에 저장된 평서문 코드블록, 반복문 코드블록 및 조건문 코드블록을 포함할 수 있다. 이들 코드블록의 종류에 대한 설명은 위에서 도 10 내지 도 17을 참조로 상세히 언급되었으므로, 명세서의 명료함을 위해, 이에 대한 추가적인 설명은 생략한다. 또한, 이러한 코드블록이 생성되면, 이에 대한 블록 번호가 자동으로 할당된다.
그 후, 코드블록 설정부에 의해, 사용자로부터 입력된 정보를 근거로 코드블록 내에 포함되는 코드블록 정보 즉, 코드블록 속성 또는 내부 속성 코드를 설정하는 단계(S130)가 수행된다. 이러한 코드블록 속성 또는 내부 속성 코드를 설정하는 단계(S130)는 예를 들어, 코드블록을 생성(S120)하는 단계에서 새로운 코드블록이 생성된 경우, 생성된 코드블록에 대한 코드블록 속성과 내부 속성 코드를 설정할 수 있다. 여기서, 코드블록 속성은 상술한 것처럼, 기능 정보와 설명 정보를 포함한다. 이러한 코드블록 속성과 내부 속성 코드에 대한 설정 방법에 대해서는 앞서 상세히 언급되었으므로, 이에 대한 추가적인 설명은 생략한다.
또한, 코드블록 속성 또는 내부 속성 코드를 설정(S130)하는 단계는 코드블록의 위치, 블록 번호, 관리 번호, 색인 및 상기 내부 속성 코드를 코드블록에 포함시키는 단계를 더 포함할 수 있다. 또한, 도면에 도시되진 않았지만 코드블록 속성 또는 내부 속성 코드를 설정(S130)하는 단계 이후, 사용자로부터 코드블록에 대한 디스플레이 요청 시, 디스플레이부를 통해 코드블록에 대한 기능 정보, 설명 정보 및 내부 속성 코드를 디스플레이하는 단계가 더 포함될 수 있다.
또한, 코드블록 속성 또는 내부 속성 코드를 설정(S130)하는 단계는 코드블록 생성부를 통해 복수개의 코드블록들이 생성되는 경우, 사용자의 설정에 따라 복수개의 코드블록들을 계층적인 트리 구조 또는 계층적인 블록 구조로 분류할 수 있다. 즉, 복수개의 코드블록들은 코드블록들의 위치에 따라 병렬관계 또는 포함관계로 형성될 수 있다. 이에 따라, 사용자는 복수개의 코드블록들이 존재하더라도 이들이 계층적인 트리 형태 또는 계층적인 블록 형태로 구성되어 용이하게 관리를 수행할 수 있다.
또한, 앞서 언급한 것처럼, 이러한 계층적인 트리 구조 또는 계층적인 블록 구조에서의 위치에 따라 코드블록들은 상위 코드블록과 하위 코드블록으로 구분될 수 있다. 또한, 하위 코드블록 내에 포함된 내부 속성 코드는 상위 코드블록에 대해 독립적으로 구현될 수 있다.
여기서, 상위 코드블록은 하나 이상의 하위 코드블록들을 포함하고, 하나 이상의 하위 코드블록들은 상위 코드블록으로부터 입력 인자를 수신하고, 상위 코드블록으로 출력인자를 반환할 수 있다.
또한, 코드블록은, 제어 흐름에 따라 평서문 코드블록, 반복문 코드블록 및 조건문 코드블록을 포함할 수 있고, 이들에 대한 설명은 앞서 도 8 내지 도 17을 참조로 상세히 언급하였으므로, 이에 대한 추가적인 설명은 생략한다.
코드블록 설정부에 의해 코드블록에 대한 블록 번호를 설정(S140)하는 단계는 코드블록의 계층적 위치에 따라 블록 번호를 자동으로 할당한다. 또한, 이러한 블록 번호는 블록의 이동에 의해 자동으로 설정 가능하고, 사용자가 임의로 변경할 수 없다. 즉, 이러한 블록 번호의 할당은 코드블록을 생성(S120)하는 단계 또는 코드블록 속성 또는 내부 속성 코드를 설정(S130)하는 단계에서 설정된 코드블록의 위치에 따라 코드블록 설정부에 의해 코드블록에 대한 블록 번호를 설정(S140)하는 단계에서 이루어질 수 있다.
코드 블록에 대한 블록 번호를 설정한 뒤, 코드블록의 검증을 수행할지를 판단(S150)하는 단계가 이어진다. 여기서 코드블록의 검증이 필요한 것으로 판단 되면 즉, 사용자가 코드블록의 검증을 원하는 경우 코드블록을 검증(S160)하고, 사용자가 코드블록의 검증을 원하지 않는 경우 코드 블록의 권한을 설정(S170)한다.
코드블록을 검증(S160)하는 단계는 코드블록 검증부를 통해 랜덤 변수를 이용하여 코드블록에 포함된 입력 또는 출력 변수를 반복적으로 입력 또는 검증하여 코드 블록을 검증하는 기능을 수행한다. 또한, 코드블록을 검증(S160)하는 단계는 이러한 랜덤 변수를 이용하는 방법뿐만 아니라, 조건 내의 모든 값에 대해서 순차적으로 변수의 입력이 이루어지는 방식으로 이루어질 수 있다. 또한, 이러한 검증 과정에 대한 설명은 도 8을 참조로 상세히 언급되었으므로, 명세서의 명료함을 위해 이에 대한 추가적인 설명은 생략한다.
그 후, 코드블록에 대한 권한을 설정하는 단계(S170)가 수행된다. 나아가 코드블록에 대한 권한을 설정하는 단계(S170)는 필수적으로 수행되는 단계는 아니고, 사용자의 필요에 따라 선택적으로 수행 가능하다. 즉, 코드블록에 대한 권한을 설정하는 단계(S170)는 사용자의 필요에 따라 전체 코드블록 구조에서 각각의, 적어도 일부, 또는 전체 코드블록에 대해 보안 설정을 수행한다.
그 후, 추가적인 코드블록의 생성 또는 편집 작업이 필요한지 판단하는 단계(S180)가 수행된다. 여기에서 사용자의 선택에 따라 추가적으로 코드블록에 대한 생성 또는 편집 작업을 수행해야 하는 것으로 판단되면 다시 코드블록을 생성하는 단계(S110)로 돌아가 상술한 단계를 반복한다. 만약, 사용자의 선택에 따라 추가적으로 코드블록에 대한 생성 또는 편집 작업을 수행하지 않아도 된다면 코드블록을 기 설정된 프로그래밍 언어에 대응하는 코드로 변환(S190)한다.
그 뒤, 코드블록 변환부에 의해, 코드블록을 기설정된 프로그래밍 언어에 대응하는 코드로 변환(S190)하는 단계가 이어진다. 이러한 변환 과정에 대한 설명은 앞서 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 장치를 참조로 상세히 언급되었으므로, 명세서의 명료함을 위해 이에 대한 추가적인 서술은 생략한다.
이하, 도 22를 참조로, 도 21에 도시된 코드블록 정보를 설정하는 단계에 대해 더 서술한다. 도 22는 본 발명의 일 실시예에 따른 소프트웨어 코드의 시각적 구현 방법에서 사용자 입력에 따라 코드블록 정보를 설정하는 단계에 대한 흐름도이다. 이하의 서술에서 앞서 개시된 내용과 중복되는 부분은 명세서의 명료함을 위해 생략한다.
먼저, 새로운 코드블록이 생성되었는지에 대한 판단 단계(S210)가 수행된다. 즉, 새로운 코드블록이 생성되었는지에 대한 판단 단계(S210)를 통해, 사용자가 새로운 코드블록을 생성하고 이에 대한 작업을 수행하는 것을 원하는 것인지, 또는 기존의 코드블록을 편집하는 것을 원하는 것인지의 판단한 뒤, 새로운 코드블록이 생성된 것으로 판단되면 새로운 코드블록에 대한 코드블록 정보를 설정(S230)하고, 새로운 코드블록이 생성되지 않은 것으로 판단되면 기존의 코드블록에 대한 편집(S220)을 수행한다.
기존의 코드블록에 대한 편집(S220) 단계는 계층적인 트리 구조 또는 계층적인 블록 구조 내에서 코드블록의 편집 예를 들어, 코드블록의 복사, 이동, 삭제 및 편집을 수행하는 단계이다. 즉, 기존의 코드블록에 대한 편집(S220) 단계는 도 21의 새로운 코드블록을 생성(S120)하는 단계에서 별도의 새로운 코드블록에 대한 생성 없이 수행될 수도 있거나, 또는 새로운 코드블록을 생성했더라도 사용자의 의도에 따라 편집되는 과정을 나타낸다. 기존의 코드블록에 대한 편집(S220) 과정은 앞서 도 8을 참조로 상세히 개시되었으므로, 이에 대한 추가적인 설명은 생략한다.
새로운 코드블록에 대한 코드블록 정보를 설정(S230)하는 단계는 새로운 코드블록을 생성(S120)하는 단계에서 생성된 새로운 코드블록에 대한 코드블록 정보를 설정하는 단계이다. 여기서 코드블록 정보는 기능 및 설명 정보를 포함하는 코드블록 속성과, 실질적으로 소프트웨어 코드가 구현되는 내부 속성 코드를 포함한다. 즉, 코드블록을 이용하여 소프트웨어를 구현할 때 상위 코드블록 내에서(상위 블록에 소속된 하위 코드블록에서) 사용되는 변수에 대한 정의가 필요하고, 정의된 변수를 입출력 인자로 이용하여 하위코드블록의 기능을 정의하게 된다. 새로운 코드블록에 대한 코드블록 정보를 설정(S230)하는 단계에서는 이러한 기능 정의 또는 변수 설정 등의 기능을 수행할 수 있다. 하지만 항상 순서가 정해져 있는 것은 아니고, 개략적인 블록만 정의한 다음 구체적인 기능을 구현할 수도 있고 데이터의 이용을 먼저 정의하고 각 기능을 구현할 수도 있다.
그 후, 코드블록에 대한 위치 및 관계를 설정하는 단계(S240)가 수행된다. 본 발명에서 개시된 코드블록은 계층적인 트리 구조 또는 계층적인 블록 구조로 개시될 수 있는 것을 그 특징으로 한다. 즉, 이러한 코드블록에 대한 위치 및 관계를 설정하는 단계(S240)는 생성된 또는 편집된 코드블록에 대해 그 위치를 설정하고, 다른 코드블록들과의 관계를 설정하여, 오류 없이 코드블록들이 수행되게 한다.
그 후, 코드블록이 최하위 코드블록인지 판단하는 단계(S250)가 수행된다. 즉, 본 발명에 따른 코드블록은 상위 코드블록의 경우 변수 할당 외에 추가적인 코드 구현을 하지 않고, 실질적인 코드는 최하위 코드블록에 포함된다. 이러한 코드블록의 특성에 기인하여 코드블록이 최하위 코드블록인지 판단하는 단계(S250)가 수행된다. 판단 결과, 코드블록이 최하위 코드블록인 것으로 판단되면 사용자로부터 내부 속성 코드를 입력 받는(S260) 단계가 이어진다. 사용자로부터 내부 속성 코드를 입력 받은 뒤, 코드블록 설정부에 의해 코드블록에 대한 블록 번호를 설정(S140)하는 단계를 시작한다. 만약, 코드블록이 최하위 코드블록이 아닌 것으로 판단되면 코드 블록을 생성할 지 여부를 확인하는(S110) 단계가 이어져, 다른 코드블록을 추가할지에 대한 판단을 더 수행하게 된다. 여기서, 다른 코드블록에 대한 추가 또는 편집에 대한 기능이 수행되면, 도 21에 개시된 단계들을 다시 수행하게 되고, 그렇지 않다면 종료한다.
본 발명에 따른 소프트웨어 코드의 시각적 구현 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 모든 형태의 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함할 수 있다. 이러한 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
본 발명의 원리들의 교시들은 하드웨어와 소프트웨어의 조합으로서 구현될 수 있다. 또한, 소프트웨어는 프로그램 저장부 상에서 실재로 구현되는 응용 프로그램으로서 구현될 수 있다. 응용 프로그램은 임의의 적절한 아키텍쳐를 포함하는 머신에 업로드되고 머신에 의해 실행될 수 있다. 바람직하게는, 머신은 하나 이상의 중앙 처리 장치들(CPU), 컴퓨터 프로세서, 랜덤 액세스 메모리(RAM), 및 입/출력(I/O) 인터페이스들과 같은 하드웨어를 갖는 컴퓨터 플랫폼 상에 구현될 수 있다. 또한, 컴퓨터 플랫폼은 운영 체제 및 마이크로 명령 코드를 포함할 수 있다. 여기서 설명된 다양한 프로세스들 및 기능들은 마이크로 명령 코드의 일부 또는 응용 프로그램의 일부, 또는 이들의 임의의 조합일 수 있고, 이들은 CPU를 포함하는 다양한 처리 장치에 의해 실행될 수 있다. 추가로, 추가 데이터 저장부 및 프린터와 같은 다양한 다른 주변 장치들이 컴퓨터 플랫폼에 접속될 수 있다.
첨부 도면들에서 도시된 구성 시스템 컴포넌트들 및 방법들의 일부가 바람직하게는 소프트웨어로 구현되므로, 시스템 컴포넌트들 또는 프로세스 기능 블록들 사이의 실제 접속들은 본 발명의 원리들이 프로그래밍되는 방식에 따라 달라질 수 있다는 점이 추가로 이해되어야 한다. 여기서의 교시들이 주어지면, 관련 기술분야의 당업자는 본 발명의 원리들의 이들 및 유사한 구현예들 또는 구성들을 참작할 수 있을 것이다.

Claims (20)

  1. 소프트웨어 개발을 위해 도출된 요구사항과 기능을 코드로 구현할 때, 프로그래밍 언어에서 이용되는 소프트웨어 코드를 시각적으로 구현하기 위한 방법으로서,
    코드블록 생성부에 의해, 상기 요구사항과 기능에 따라 소프트웨어 코드를 블록 단위로 구현하는데 사용되는 코드블록을 생성하는 단계; 및
    코드블록 설정부에 의해, 사용자로부터 입력된 정보를 근거로 상기 코드블록 내에 포함되는 코드블록 속성 또는 내부 속성 코드를 설정하는 단계를 포함하고,
    상기 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는,
    상기 코드블록에 대한 기능 정보, 상기 기능 정보에 대한 설명 정보 및 상기 내부 속성 코드를 상기 코드블록에 포함시키는 단계를 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  2. 제1항에 있어서,
    코드블록 변환부에 의해, 사용자로부터의 요청 시, 상기 코드블록을 기설정된 프로그래밍 언어에 대응하는 코드로 변환하는 단계를 더 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  3. 제1항에 있어서,
    상기 코드블록 속성 또는 내부 속성 코드를 설정하는 단계 중 또는 이후,
    사용자로부터 상기 코드블록에 대한 디스플레이 요청 시, 디스플레이부를 통해 상기 코드블록에 대한 기능 정보, 설명 정보 및 내부 속성 코드를 디스플레이하는 단계를 더 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  4. 제1항에 있어서,
    상기 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는,
    상기 코드블록의 위치, 블록 번호, 관리 번호, 색인 및 상기 내부 속성 코드를 상기 코드블록에 포함시키는 단계를 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  5. 제4항에 있어서,
    상기 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는,
    상기 코드블록 생성부를 통해 복수개의 코드블록들이 생성되는 경우, 상기 사용자의 설정에 따라 상기 복수개의 코드블록들을 계층적인 트리 구조 또는 계층적인 블록 구조로 분류하는 단계를 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  6. 제5항에 있어서,
    상기 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는,
    상기 계층적인 트리 구조 또는 계층적인 블록 구조에서 코드블록의 위치에 따라, 자동으로 블록 번호를 할당하는 단계를 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  7. 제6항에 있어서,
    상기 블록 번호를 할당하는 단계에서 할당된 블록 번호는 상기 코드 블록에 대한 제어 흐름의 순서 결정에 이용되고, 상기 블록 번호는 코드블록의 위치 설정에 따라 자동으로 할당되며, 상기 블록 번호에 따라 순차적으로 코드화가 이루어지는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  8. 제1항에 있어서,
    상기 코드블록은,
    상기 계층적인 트리 구조 또는 계층적인 블록 구조에서의 위치에 따라 상위 코드블록과 하위 코드블록으로 분류되고, 상기 하위 코드블록 내에 포함된 내부 속성 코드는 상기 상위 코드블록에 대해 독립적으로 구현되고, 상위 코드블록에 포함된 하위 코드블록의 입출력 인자는 특성에 따라 묶여 색인화될 수 있는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  9. 제8항에 있어서,
    상기 상위 코드블록은,
    하나 이상의 하위 코드블록들과 상기 하위 코드블록들의 변수 선언에 대한 내부 속성 코드를 포함하고, 상기 하나 이상의 하위 코드블록들은 상기 상위 코드블록으로부터 입력 인자를 수신하고, 상기 상위 코드블록으로 출력인자를 반환하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  10. 제1항에 있어서,
    상기 코드블록은,
    제어 흐름에 따라 평서문 코드블록, 반복문 코드블록 및 조건문 코드블록을 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  11. 제1항에 있어서,
    상기 코드블록 내에 포함되는 코드블록 속성 또는 내부 속성 코드를 설정하는 단계는, 기생성된 코드블록들과 상기 코드블록의 관계를 포함 관계 또는 병렬 관계로 설정하는 단계를 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  12. 제1항에 있어서,
    상기 코드블록 속성 또는 내부 속성 코드를 설정하는 단계에서, 상기 내부 속성 코드는,
    상기 내부 속성 코드의 입력 변수 및 출력 변수를 선언하는데 이용되는 변수 선언 윈도우;
    상기 입력 변수의 할당에 사용되는 입력 변수 할당 윈도우;
    조건문 또는 반복문 입력에 사용되는 조건문 윈도우;
    상기 코드블록에 대한 기능 구현을 위한 소프트웨어 코드 입력에 사용되는 코드 입력 윈도우; 및
    상기 출력 변수의 할당에 사용되는 출력 변수 할당 윈도우 중 적어도 하나를 포함하는 코딩 윈도우를 통해 사용자로부터 입력되는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  13. 제1항에 있어서,
    상기 코드블록 속성 또는 내부 속성 코드를 설정하는 단계 이후,
    코드블록 검증부에 의해, 랜덤 변수를 이용하여 또는 상기 코드블록 내의 조건문에 입력 또는 출력되는 변수들을 이용하여 상기 코드 블록을 검증하는 단계를 더 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  14. 제1항에 있어서,
    상기 코드블록 속성 또는 내부 속성 코드를 설정하는 단계 이후,
    코드블록 권한 설정부에 의해, 상기 코드블록의 접근 권한을 설정하는 단계를 더 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 방법.
  15. 소프트웨어 개발을 위해 도출된 요구사항과 기능을 코드로 구현할 때, 프로그래밍 언어에서 이용되는 소프트웨어 코드를 시각적으로 구현하기 위한 장치로서,
    상기 요구사항과 기능에 따라 소프트웨어 코드를 블록 단위로 구현하는데 사용되는 코드블록을 생성하는 코드블록 생성부; 및
    사용자로부터 입력된 정보를 근거로 상기 코드블록 내에 포함되는 코드블록 속성 또는 내부 속성 코드를 설정하는 코드블록 설정부를 포함하고,
    상기 코드블록 설정부는,
    상기 코드블록에 대한 기능 정보, 상기 기능 정보에 대한 설명 정보 및 상기 내부 속성 코드를 상기 코드블록에 포함시키는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 장치.
  16. 제15항에 있어서,
    사용자로부터의 요청 시, 상기 코드블록을 기설정된 프로그래밍 언어에 대응하는 코드로 변환하는 코드블록 변환부를 포함하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 장치.
  17. 제15항에 있어서,
    상기 코드블록 설정부는,
    상기 코드블록 생성부를 통해 복수개의 코드블록들이 생성되는 경우, 상기 사용자의 설정에 따라 상기 복수개의 코드블록들을 계층적인 트리 구조 또는 계층적인 블록 구조로 분류하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 장치.
  18. 제17항에 있어서,
    상기 코드블록 설정부는,
    상기 계층적인 트리 구조 또는 계층적인 블록 구조에서 코드블록의 위치에 따라, 자동으로 블록 번호를 할당하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 장치.
  19. 제15항에 있어서,
    상기 코드블록은,
    상기 계층적인 트리 구조 또는 계층적인 블록 구조에서의 위치에 따라 상위 코드블록과 하위 코드블록으로 분류되고, 상기 하위 코드블록 내에 포함된 내부 속성 코드는 상기 상위 코드블록에 대해 독립적으로 구현되는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 장치.
  20. 제19항에 있어서,
    상기 상위 코드블록은,
    하나 이상의 하위 코드블록들을 포함하고, 상기 하나 이상의 하위 코드블록들은 상기 상위 코드블록으로부터 입력 인자를 수신하고, 상기 상위 코드블록으로 출력인자를 반환하는 것을 특징으로 하는, 소프트웨어 코드의 시각적 구현 장치.
PCT/KR2015/004651 2014-05-22 2015-05-08 소프트웨어 코드의 시각적 구현 방법 및 장치 WO2015178605A1 (ko)

Priority Applications (3)

Application Number Priority Date Filing Date Title
CN201580009628.0A CN106030524B (zh) 2014-05-22 2015-05-08 用于可视化地实现软件代码的方法和设备
US15/102,259 US9904524B2 (en) 2014-05-22 2015-05-08 Method and device for visually implementing software code
JP2016550788A JP2017506390A (ja) 2014-05-22 2015-05-08 ソフトウェアコードの視覚的実現方法及び装置

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR1020140061828A KR101597780B1 (ko) 2014-05-22 2014-05-22 소프트웨어 코드의 시각적 구현 방법 및 장치
KR10-2014-0061828 2014-05-22

Publications (1)

Publication Number Publication Date
WO2015178605A1 true WO2015178605A1 (ko) 2015-11-26

Family

ID=54554227

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2015/004651 WO2015178605A1 (ko) 2014-05-22 2015-05-08 소프트웨어 코드의 시각적 구현 방법 및 장치

Country Status (5)

Country Link
US (1) US9904524B2 (ko)
JP (2) JP2017506390A (ko)
KR (1) KR101597780B1 (ko)
CN (1) CN106030524B (ko)
WO (1) WO2015178605A1 (ko)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106445556B (zh) * 2016-10-18 2019-08-30 中国银行股份有限公司 一种可视化代码生成方法及系统
US10628152B2 (en) * 2017-06-19 2020-04-21 Accenture Global Solutions Limited Automatic generation of microservices based on technical description of legacy code
KR101974804B1 (ko) * 2017-07-03 2019-05-03 주식회사 우리은행 플로우 다이어그램 생성 방법 및 이를 실행하는 장치
CN107633008A (zh) * 2017-08-10 2018-01-26 阿里巴巴集团控股有限公司 Web工程数据处理方法、装置、服务器及系统
CN108958725B (zh) * 2018-07-06 2022-06-14 广州慧通编程教育科技有限公司 图形化模式编程平台生成方法、装置及计算机设备
US10754626B2 (en) * 2018-11-30 2020-08-25 Shopify Inc. Visual and code views in a process workflow user interface
WO2022108412A1 (ko) * 2020-11-23 2022-05-27 고려대학교 산학협력단 정형명세를 기반으로 하는 블록체인의 리카르디안 컨트랙트 생성 방법, 이를 수행하기 위한 기록 매체 및 장치
CN112579098B (zh) * 2020-12-25 2024-02-06 平安银行股份有限公司 软件发布方法、装置、电子设备及可读存储介质
WO2022034463A1 (en) * 2021-08-07 2022-02-17 Anvaripour Jamal A smart software converter to convert programs from source programming language to destination programming language in the shortest possible time
KR102378690B1 (ko) * 2021-08-17 2022-03-25 (주)비케이시스템 코드 블록을 이용한 프로그래밍 코드 생성 방법 및 이를 실행하는 장치
CN114911467B (zh) * 2021-10-22 2023-05-09 北京思明启创科技有限公司 代码检测方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1186997A2 (en) * 1999-11-30 2002-03-13 Texas Instruments Incorporated Graphical development system and method
KR20070061326A (ko) * 2005-12-09 2007-06-13 한국전자통신연구원 로봇 응용 프로그램 제작 지원 방법 및 그 제작 장치
KR20120130420A (ko) * 2011-05-23 2012-12-03 전윤주 프로그래밍 블록 조립체, 이를 이용한 프로그램에 의해 구동되는 로봇 시스템 및 그 프로그래밍 방법
KR20130065706A (ko) * 2010-10-04 2013-06-19 미쓰비시덴키 가부시키가이샤 소프트웨어 생성 장치, 소프트웨어 생성 방법 및 프로그램 기억매체

Family Cites Families (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5325533A (en) * 1993-06-28 1994-06-28 Taligent, Inc. Engineering system for modeling computer programs
US6230313B1 (en) * 1998-12-23 2001-05-08 Cray Inc. Parallelism performance analysis based on execution trace information
US6880149B2 (en) * 2002-04-01 2005-04-12 Pace Anti-Piracy Method for runtime code integrity validation using code block checksums
US20080195483A1 (en) * 2005-02-01 2008-08-14 Moore James F Widget management systems and advertising systems related thereto
US20060200811A1 (en) * 2005-03-07 2006-09-07 Cheng Stephen M Method of generating optimised stack code
JP2007011507A (ja) 2005-06-28 2007-01-18 Fuji Electric Holdings Co Ltd プログラムツリーの表示方法、およびプログラム生成システム
EP1783604A3 (en) * 2005-11-07 2007-10-03 Slawomir Adam Janczewski Object-oriented, parallel language, method of programming and multi-processor computer
US7992139B2 (en) * 2006-11-29 2011-08-02 International Business Machines Corporation Method, system and program product for transforming a single language program into multiple language programs
US8782599B2 (en) * 2008-06-26 2014-07-15 Invensys Systems, Inc. Multi-mode editor for configuring process control blocks including both logical functions and arithmetic computations
JP2010140326A (ja) 2008-12-12 2010-06-24 Toyota Motor Corp カバレージ測定装置
JP5275087B2 (ja) 2009-03-02 2013-08-28 株式会社東芝 プログラム生成装置およびブロック線図生成装置
US20120159434A1 (en) * 2010-12-20 2012-06-21 Microsoft Corporation Code clone notification and architectural change visualization
US8806348B2 (en) * 2011-05-12 2014-08-12 Google Inc. Data model generation based on user interface specification
JP5447621B2 (ja) 2011-09-06 2014-03-19 キヤノンマーケティングジャパン株式会社 プログラム生成装置、プログラム生成方法ならびにプログラム
US9170783B1 (en) * 2011-12-15 2015-10-27 The Mathworks, Inc. Class creation assistant for textual programming languages
JP5820324B2 (ja) 2012-03-30 2015-11-24 株式会社エヌ・ティ・ティ・データ 設計支援システム、設計支援方法およびプログラム
WO2013147865A1 (en) * 2012-03-30 2013-10-03 Intel Corporation A mechanism for saving and retrieving micro-architecture context
US20130283233A1 (en) * 2012-04-24 2013-10-24 Maria Guadalupe Castellanos Multi-engine executable data-flow editor and translator
US9411558B2 (en) * 2012-10-20 2016-08-09 Luke Hutchison Systems and methods for parallelization of program code, interactive data visualization, and graphically-augmented code editing
KR101530888B1 (ko) 2013-10-08 2015-06-24 국방과학연구소 무기체계 구조 개선을 위한 소프트웨어 리팩토링 방법

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1186997A2 (en) * 1999-11-30 2002-03-13 Texas Instruments Incorporated Graphical development system and method
KR20070061326A (ko) * 2005-12-09 2007-06-13 한국전자통신연구원 로봇 응용 프로그램 제작 지원 방법 및 그 제작 장치
KR20130065706A (ko) * 2010-10-04 2013-06-19 미쓰비시덴키 가부시키가이샤 소프트웨어 생성 장치, 소프트웨어 생성 방법 및 프로그램 기억매체
KR20120130420A (ko) * 2011-05-23 2012-12-03 전윤주 프로그래밍 블록 조립체, 이를 이용한 프로그램에 의해 구동되는 로봇 시스템 및 그 프로그래밍 방법

Also Published As

Publication number Publication date
CN106030524B (zh) 2019-11-22
JP6705099B2 (ja) 2020-06-03
KR101597780B1 (ko) 2016-02-25
CN106030524A (zh) 2016-10-12
US9904524B2 (en) 2018-02-27
JP2017506390A (ja) 2017-03-02
US20170168784A1 (en) 2017-06-15
KR20150134713A (ko) 2015-12-02
JP2018185850A (ja) 2018-11-22

Similar Documents

Publication Publication Date Title
WO2015178605A1 (ko) 소프트웨어 코드의 시각적 구현 방법 및 장치
Memon A comprehensive framework for testing graphical user interfaces
US8059092B2 (en) User interface designing apparatus
KR100967761B1 (ko) 프로그래머블 컨트롤러의 주변 장치, 치환 방법 및프로그램
Feijs et al. 3D visualization of software architectures
CN106775744B (zh) 一种生成静态库的方法和装置
CN107783766A (zh) 对应用程序的文件进行清理的方法和装置
WO2023153558A1 (ko) 구조화 문서에 포함된 자원들에 관한 권한을 관리하는 방법 및 이를 이용한 장치
CN101379504A (zh) 虚拟角色
US20110126171A1 (en) Dynamic native editor code view facade
Richters et al. Aspect-oriented monitoring of UML and OCL constraints
Von Mayrhauser et al. Domain based testing: increasing test case reuse
WO2009116748A2 (ko) 예약된 컴포넌트 컨테이너 기반 소프트웨어 개발 방법 및 장치
WO2020032320A1 (ko) 원자력 발전소 지능형 일반기기 배치 도면 표현 및 활용 장치
WO2017052318A1 (ko) 소프트웨어 분석 방법 및 장치
WO2023048439A1 (ko) 워크 플로우 기반의 시맨틱 cad 데이터 변환 방법 및 이를 위한 장치
WO2022124736A1 (ko) 웹툰 컨텐츠 재배치 방법 및 그 장치
WO2016085213A1 (ko) 컴퓨터 수행 가능한 모델 역공학 방법 및 장치
WO2013081304A1 (ko) 2차원 영상을 3차원 영상으로 변환하는 영상 변환 장치, 방법 및 그에 대한 기록매체
KR101974804B1 (ko) 플로우 다이어그램 생성 방법 및 이를 실행하는 장치
WO2021177710A1 (ko) 번역 문서의 공유 플랫폼 운용 방법
WO2020130173A1 (ko) 안전 필수 시스템의 안전활동 관리방법 및 그 안전활동 관리장치
CN108304246A (zh) 识别目标文件的方法与设备
Sumimoto et al. MPI-Adapter2: An Automatic ABI Translation Library Builder for MPI Application Binary Portability
WO2020085529A1 (ko) 인터넷 서비스를 파일 시스템으로 변환할 수 있는 장치 및 방법과 컴퓨터로 읽을 수 있는 기록매체

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 15796217

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 15102259

Country of ref document: US

ENP Entry into the national phase

Ref document number: 2016550788

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 15796217

Country of ref document: EP

Kind code of ref document: A1