CN106030524A - 用于可视化地实现软件代码的方法和设备 - Google Patents
用于可视化地实现软件代码的方法和设备 Download PDFInfo
- Publication number
- CN106030524A CN106030524A CN201580009628.0A CN201580009628A CN106030524A CN 106030524 A CN106030524 A CN 106030524A CN 201580009628 A CN201580009628 A CN 201580009628A CN 106030524 A CN106030524 A CN 106030524A
- Authority
- CN
- China
- Prior art keywords
- code block
- code
- block
- attribute
- built
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 90
- 230000006870 function Effects 0.000 claims description 128
- 238000010276 construction Methods 0.000 claims description 5
- 238000012800 visualization Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 14
- 238000013461 design Methods 0.000 description 11
- 238000010200 validation analysis Methods 0.000 description 9
- 238000007726 management method Methods 0.000 description 8
- 230000009471 action Effects 0.000 description 6
- 230000008901 benefit Effects 0.000 description 6
- 238000010586 diagram Methods 0.000 description 6
- 230000008859 change Effects 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000000694 effects Effects 0.000 description 5
- 230000006866 deterioration Effects 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000009790 rate-determining step (RDS) Methods 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 241000196324 Embryophyta Species 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 235000012364 Peperomia pellucida Nutrition 0.000 description 1
- 240000007711 Peperomia pellucida Species 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 239000012141 concentrate Substances 0.000 description 1
- 238000005314 correlation function Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000013399 edible fruits Nutrition 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 230000003362 replicative effect Effects 0.000 description 1
- 238000013517 stratification Methods 0.000 description 1
- 238000002910 structure generation Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/34—Graphical or visual programming
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44589—Program code verification, e.g. Java bytecode verification, proof-carrying code
Abstract
本发明涉及用于可视化地实现软件代码的方法和设备。为此,根据本发明的用于可视化地实现软件代码的方法包括以下步骤:通过代码块生成单元,根据需求和功能,以块为单位,生成用于实现软件代码的代码块;以及通过代码块设置单元,基于用户输入的信息,设置包含于代码块中的代码块属性或内部属性代码,其中设置代码块属性或内部属性代码的步骤包括以下步骤:在所述代码块中包含关于代码块的功能信息、关于所述功能信息的描述信息、以及内部属性代码。
Description
技术领域
本发明一般涉及用于可视化地实现软件代码的方法和设备,更具体地,本发明涉及利用代码块可视化地实现软件代码的方法和设备。
本发明基于并要求2014年5月22日递交的韩国专利申请10-2014-0061828的优先权,其全部内容以引用方式并入于此。
背景技术
一般而言,经由从导出工程师需求到设计功能、实现代码和验证软件的一系列程序来执行软件的开发。在这些程序期间,存在大量困难,但是已经开发出用于显而易见地布置需求的工具、用于建模功能的工具、用于支持代码的编程的工具等,并且这些工具向软件开发者提供了大量帮助。
然而,为了工程师基于所导出的需求来实现软件,必须设计满足需求的详细功能并将其功能实现为代码;但是不存在这样一种工具,直接支持用于将详细功能实现为代码的方法。换句话说,不存在这样的工具:其使得软件的功能以一对一方式对应于代码,并且与实现需求和功能设计的软件代码的位置、如何实现以及与其它功能存在哪些关系相关地,显而易见地检查和实现代码。
人类可以理解以典型的语言、绘画或图表表示的功能,并且必须以诸如代码的其它形式进行表示。也就是说,这种表示必须经由诸如人的媒介从常规语言转换成编程语言。由此,即使合意地设计了功能,其也可能不与其实现的代码匹配,或者对应的功能可能被错误地实现,导致在软件中检测到许多错误。此外,虽然未外在表示,但当以与期望实现代码的方式不同的方式修改代码时,非常可能出现错误。
在从实现软件起已经过去了较长时段的情况下,即使存在定义的需求和设计数据,也可能发生不能容易理解软件代码的结构的现象。也就是说,由于在表示软件功能所需的常规语言和用于实现软件的代码之间表示上的不同,软件代码可以在其中包括多个非期望元素,这不仅取决于实现软件代码的人的个人倾向和意图以及解决问题的方案,而且取决于理解需求的方法和用于重新解释软件设计的方法。由此,这些元素成为对代码的普遍理解和解释的巨大阻碍,并且软件代码的可读性恶化,因此阻碍软件的高效开发。
阅读和理解编程语言比一般语言更难。在编程语言中,必须根据控制流顺序配置代码,并且必须针对每个表示精确声明和定义代码。也就是说,除非根据排序顺序地表示编程语言中的组件,否则表示具有不同的含义。除非精确定义在这种编程语言和语法中使用的数据(例如,命令语句)的形式或含义,否则会发生错误。其原因是计算机不能考虑上下文而确定或理解数据,并且因此必须清楚定义和排序所有编程语言中的语句以构成单个含义。由此,以文本形式配置常规源代码,并且通过单行表示代码的语义单元,并因此根据行的顺序配置代码。
编程语言没有精确表示用于在定义功能时帮助理解人或哲学或抽象功能的图表或图。另外,由于代码的语义单元是行,所以在大量代码的情况下,直到通过独立且直接地检查各行来解释代码的含义,才容易理解软件详细实现的程度。当然,可以使用设计文献来调查代码的近似含义。然而,如上所述,由于在设计文献和实际代码之间存在表示的不同(在常规语言和编程语言之间表示的不同),所以出现以下问题:仅通过查看设计文献不能检查实现构成实际软件的代码的方法。
发明内容
技术问题
本发明的目的是实现包括代码块的完整组件形式的软件。
本发明的另一目的是提供一种设备和方法,用于在以代码实现开发软件所导出的需求和功能时,可视化地实现在编程语言中使用的软件代码。
技术方案
为实现上述目的,根据本发明的一种用于可视化地实现软件代码的方法包括:通过代码块生成单元,根据需求和功能,逐块生成用于实现软件代码的代码块;以及通过代码块设置单元,基于用户输入的信息,设置包含于每个代码块中的代码块属性或内部属性代码,其中设置代码块属性或内部属性代码包括:在所述代码块中包含关于代码块的功能信息、关于所述功能信息的描述信息、以及内部属性代码。
根据本发明的用于可视化地实现软件代码的方法还包括:通过代码块转换单元,当从用户接收到请求时,将所述代码块转换为与预先设置的编程语言相对应的代码。
根据本发明的用于可视化地实现软件代码的方法,还包括:在设置代码块属性或内部属性代码之后,当从用户接收到显示所述代码块的请求时,在显示单元上显示与所述代码块有关的功能信息、描述信息以及内部属性代码。
此外,设置代码块属性或内部属性代码可以包括:在所述代码块中包括代码块的位置、块编号、索引、管理编号以及内部属性代码。
此外,设置代码块属性或内部属性代码可以包括:当通过所述代码块生成单元生成多个代码块时,根据用户的设置,在分层树结构或分层块结构中对多个代码块进行分类。
此外,设置代码块属性或内部属性块可以包括:根据所述代码块在分层树结构或分层块结构中的位置,自动分配块编号。
此外,当经由用户输入改变代码块的位置时,可以自动改变在分配块编号时分配的块编号。
可以根据在分层树结构或分层块结构中的位置,将所述代码块分类为上代码块和下代码块;以及所述代码块可以被配置为使得:独立于上代码块实现包含于所述下代码块中的内部属性代码,并且能够基于特性对包含于所述上代码块的下代码块的输入/输出参数进行组合和索引。
此外,上代码块可以包括一个或多个下代码块,并且所述一个或多个下代码块可以从所述上代码块接收输入参数,并将输出参数返回到所述上代码块。
此外,当代码块包括多个层时,上代码块可以包括仅从属于该上代码块的下代码块所需要的所有输入/输出参数。
此外,根据控制流,所述代码块可以包括声明语句代码块、循环语句代码块以及条件语句代码块。
此外,设置包含于每个代码块中的代码块属性或内部属性代码可以包括:将在先前生成的代码块和代码块之间的关系设置为包含关系或平行关系。
此外,在设置所述代码块属性或内部属性代码时,可以从用户处经由编码窗口输入所述内部属性代码,所述编码窗口包括以下中的至少一个:变量声明窗口,用于声明所述内部属性代码的输入变量和输出变量;输入变量分配窗口,用于分配所述输入变量;条件语句窗口,用于输入条件语句或循环语句;代码输入窗口,用于输入实现对应的代码块的功能所需的软件代码;以及输出变量分配窗口,用于分配输出变量。
此外,根据本发明的用于可视化地实现软件代码的方法还包括:在设置代码块属性或内部属性代码之后,通过代码块验证单元,使用随机变量或使用输入到每个代码块中的条件语句中或从条件语句中输出的变量来验证所述代码块。
此外,根据本发明的用于可视化地实现软件代码的方法还包括:在设置代码块属性或内部属性代码之后,通过代码块许可设置单元,设置访问所述代码块的许可。
为了实现上述目的,根据本发明的一种用于可视化地实现软件代码的设备包括:代码块生成单元,用于根据所述需求和功能,逐块生成用于实现软件代码的代码块;以及代码块设置单元,用于基于用户输入的信息,设置包含于每个代码块中的代码块属性或内部属性代码,其中所述代码块设置单元在所述代码块中包括关于代码块的功能信息、关于所述功能信息的描述信息、以及内部属性代码。
技术效果
依照根据本发明的用于可视化地实现软件代码的方法和设备,优点在于:使用被划分为各个功能单元的代码块可以进行可视化软件编码,并且使用代码块的更高维度表示成为可能,而不是通过各个行表示现有编码,因此使得用户或操作员能够更高效地执行软件开发。
此外,依照根据本发明的用于可视化地实现软件代码的方法和设备,优点在于:代码块之间的关系得以澄清,并且输入/输出参数流也得以澄清,因此改善了代码的可读性并便于软件的重用。
此外,依照根据本发明的用于可视化地实现软件代码的方法和设备,优点在于:软件代码被配置为使得代码的功能执行单元以一对一的方式对应于代码块,并且这种代码块可以实现于树结构或分层块结构中,由此允许用户更直观地实现软件代码。
附图说明
图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所示,而不是针对每行执行传统的编码。此外,各个代码块彼此独立。
这里,术语“代码块”表示构成软件的组件之一。下面将描述代码块,但是本发明不限于这种代码块(作为组件的示例),而是涉及可以分层构造软件的所有组件。
通过将软件的功能划分为块单元而获得代码块,并且每个代码块可以配置为包括功能信息31、描述信息32、代码信息33以及管理编号34,如附图标记30所示。如上所述,传统的编码方案以一维(1D)执行编码,并因此出现先前实现的软件代码的可读性劣化并且每条代码的含义不清楚的问题。相反,如附图标记30所示,本发明的代码块的优点在于,对于每个代码块,可以立即理解对应代码块所表明的功能信息31、描述信息32、代码信息33和管理编号34,因此允许用户或操作员直观和明确识别对应部分的含义。这里,功能信息31、描述信息32、代码信息33和管理编号34的含义如下所述。
功能信息31表示对实现软件所导出的或通过具体化用户需求而设计的功能的描述。也就是说,功能信息31可以包括关于对应代码块的综合信息。
这里,用户的需求具有分层结构,而不具有控制步骤。此外,每个需求负责其在代码块中的自己的角色。此外,每个需求可以具有对应于其自身特性的索引。另外,需求可以形成组,并且这种组还可以用索引进行表示。
描述信息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-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语言函数的那些特性。也就是说,C语言函数具有在函数中使用的局部变量,并可以从函数外部加载待用于函数中的参数。此外,函数可以返回特定值作为结果值。
由于C语言的函数与黑盒相同,所以从与在函数中执行的动作相关的数据共享的角度看,输入特定值时导出特定结果。也就是说,当输入外部参数时,函数意图执行其指定动作或返回结果值,并可以具有其自身的数据区域。此外,当按其顺序顺序调用这样的函数时,可以将函数划分为用于执行其功能的软件组件。
如上所述,将在下文描述在块之间的数据共享和控制流。数据共享意图结构化代码块,使得上代码块拥有下代码块所需要的所有输入/输出数据作为其内部数据,并且控制流意图通过使得控制流能够仅在分层块结构中的相同层之间发生,而将控制流与数据分离。换句话说,假设在单个代码块中存在多个下代码块,则可以如全局变量一样操纵所有下代码块的输入/输出数据,这是因为所有的下代码块可以在上代码块中访问所需的所有数据,其中控制流只需要定义在下代码块之间。这种结构应用于所有的层,并且在各个层中定义的控制流与在下代码块之间定义的控制流相关联,并因此对代码块排序。
这里,由于以上详细描述了用于确定控制流的方法和用于共享数据的方法,所以省略了对其的重复描述。
代码块可以具有数据区域和控制流的特性。具体地,C语言函数的操作和代码块之间的不同在于函数可以在特定时间由各种类型的代码共同调用和使用,而代码块可以属于特定位置并可以独立实现指定角色。
例如,假设存在管理编号为3的代码块并且管理编号为32的代码块属于管理编号为3的代码块。在该情况下,在属于管理编号为3的代码块的管理编号为32的代码块从管理编号为3的代码块接收输入参数并执行操作之后,向管理编号为3的代码块返回指定的输出参数。这里,在管理编号为32的代码块中的所有参数和动作,除了输入/输出数据之外,可以在管理编号为32的代码块中独立执行。另外,该执行从不影响任何其它代码块,以及作为上代码块的管理编号为3的代码块。
在C语言中,可以利用函数实现具有上述特性的代码,但是C语言并不支持在另一函数中声明函数,并且因此本发明利用大括号({})实现代码块。大括号可以是用于将C代码中的区域划分为块的方法之一,并且在大括号中声明的变量是仅在对应区域中识别出的局部变量。可以参照图5进一步阐明这种细节。也就是说,上代码块的结构包括下代码块,并且代码块可以被显示为通过大括号彼此区分。
此外,可以使用将在上大括号(上代码块)中声明的变量(输入参数)重新分配给在下大括号(下代码块)中声明的变量、基于变量执行操作、以及最终返回结果值作为在上大括号(上代码块)中声明的变量(输出参数)的方法来实现代码块。也就是说,由于使用代码块的局部变量来执行在每个代码块中处理的所有动作,所以代码块可以维持与其它代码块的独立关系。当满足下述特征时,可以利用任何方法生成代码块。
此外,如上所述,代码块可以具有其间的包含关系,但还可以具有其间的平行关系。这种细节可以通过参考图6和图7进一步阐明,在图6中用上述包含关系实现代码块,并且在图7中用平行关系实现代码块。
也就是说,图6中示出的包含关系可以定义为在另一代码块中存在至少一个代码块的关系。在具有包含关系的代码块中,上代码块不具有单独的代码,除了在上代码块中使用的变量的声明。因此,实现具有包含关系的代码块的控制流,使得首先编码在上代码块中的变量声明部分,然后仅需要布置在上代码块中包含的代码块的代码。因此,当通过将在后文描述的平行关系的代码块的控制流确定上代码块的代码的位置时,在确定出的代码位置的范围内确定在下代码块之间的多条代码的顺序,并因此可以配置软件的所有代码。
此外,如图7所示,将在相同的上代码块中包括代码块而不是在其间具有包含关系的关系定义为平行关系。必须对平行关系的代码块进行排序。例如,如图7所示,当定义控制流使得一个代码块是No.1代码块且另一代码块是NO.2代码块时,将代码块的形式转换为软件代码,例如图5所示的上述形式。
后文中,将参照图8详细描述根据本发明实施例的用于可视化地实现软件代码的设备。图8是根据本发明实施例示出用于可视化地实现软件代码的设备的框图。如图8所示,根据本发明实施例的用于可视化地实现软件代码的设备可以配置为包括代码块生成单元110、代码块设置单元120、代码块许可设置单元130、代码块验证单元140以及代码块转换单元150。下文中,将详细描述这些部件。
代码块生成单元110用于生成代码块,该代码块用于关于软件的实现,根据客户端的需求和功能,逐块实现软件代码。
更具体地,代码块生成单元110导出需求,其可以实现为单个代码块。这里,需求具有分层结构而不具有控制步骤。此外,需求在将顺序执行的代码中发挥其作用。此外,根据其特性,需求可以具有索引。另外,需求可以形成组,其也可以由索引表示。
代码块生成单元110利用需求生成代码块,其中代码块可以具有控制步骤,并且各个需求可以分配给代码块。这里,可以将代码块的生成主要划分为两个方案。也就是说,第一生成方法用于生成在图4中示出的代码窗口中具有所有空属性的代码块。此外,第二生成方法用于通过调用预先存储于存储单元83中的代码块的形式来生成代码块。也就是说,存储单元83可以包括各种形式的代码块。更具体地,根据控制流,存储单元83可以包括声明语句代码块、循环语句代码块以及条件语句代码块。这里,在下文中描述存储于存储单元83中的代码块的类型。
这里,在图10中示出声明语句代码块的例子。图10示出了所谓的“GotoNext”代码块,其是常规代码块,在其中不存在单独的控制流。更具体地,“GotoNext”代码块是常规代码块,并可以指定代码块,使得在对应的代码块之后存在随后的代码块。
循环语句代码块的例子在图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所示,代码块属性包括关于对应代码块的功能信息和描述信息。也就是说,代码块属性意图解决传统编码方案的问题,在传统代码方案中以一维执行编码并且代码的可读性劣化,并且代码块属性包括通过具体化在实现软件时导出的需求而设计的功能的简短描述和详细描述。具体地,功能信息表示实现软件所导出的或通过具体化用户需求而设计的功能的描述,并且描述信息包括上述功能信息的详细描述。这里,包含于描述信息中的信息例如可以包括各种类型的信息,例如功能的详细描述、图以及图表。通过该代码块属性,用户可以更直观地理解代码块,而不像例如使用批注的以一维表示代码的传统编码方案。
此外,如参考图4在以上描述的,可以通过用户经由编码窗口设置内部属性代码。这里,编码窗口可以配置为包括变量声明窗口、输入变量分配窗口、条件语句窗口、代码输入窗口以及输出变量分配窗口。由于上面已经描述了各个窗口,所以将省略重复部分的描述。显示以这种方式设置的代码块属性和内部属性代码,使得当从用户接收到显示对应代码块的请求时,在显示单元82上显示代码块的功能信息、描述信息以及内部属性代码。
此外,当通过代码块生成单元110生成多个代码块时,代码块设置单元120可以在分层树结构或分层块结构中根据用户的设定对多个代码块进行分类。在图1和2中示出该分类的例子。以这种方式分类的分层结构的优点在于它们可以帮助用户或操作员直观分析软件。此外,还存在的优点在于,通过该结构化,即使在后续软件编辑中也可以进一步方便软件的管理。
例如,假设用户或操作员将包含于分层树结构或分层块结构中的多个代码块之一复制到另一位置。也就是说,当使用代码块配置软件时,可以存在执行相同功能但是属于不同位置的代码块,并且可以存在具有类似功能的代码块。这里,可以将代码块复制和粘贴到从属于另一代码块的下代码块。当粘贴代码块时,删除管理编号/输入变量声明/输出变量声明,并且根据对应代码块的位置自动分配块编号。将通过复制代码块保存的数据划分为功能(需求)/描述以及代码细节中代码的内部变量声明/条件/功能实现代码。当选择待被复制的代码块时,一起复制从属于所选代码块的下代码块。可以将关于从属于所复制的代码块的下代码块的所有数据保持不变。
此外,可以根据在分层树结构或分层块结构中的位置而将代码块分类为上代码块和下代码块。此外,如上所述,独立于上代码块实现包含于每个下代码块中的内部属性代码,并且上代码块仅执行其中的变量声明功能,但是不包括额外的代码。也就是说,上代码块仅包括下代码块(其用作数据总线,从而可以在下代码块之间共享数据)需要的共享数据,并仅包括一个或多个下代码块,并且一个或多个下代码块从上代码块接收输入参数,并且将输出参数返回到上代码块。
并且,代码块设置单元120可以根据在分层树结构或分层块结构中代码块的位置而自动地分配块编号。例如,假设在单个代码块中包括两个代码块的情况(参见图18)。如图18所示,假设将最上层代码块的块编号设置为“1”。这里,最上层代码块包括两个下代码块,并且这些下代码块分别分配了块编号11和12。当块编号为12的代码块例如还包括两个代码块时,这两个代码块可以分别分配块编号121和122。用于分配块编号的该方法仅是例子,而可以应用为各种不同方案。此外,由于具有块编号11、121和122的代码块是最下层代码块,所以它们可以实现为包括内部属性代码。与此相反,由于具有块编号1和12的代码块分别包括下代码块,所以它们不包括单独的代码,除了用于变量声明的代码。
并且,代码块设置单元120可以额外地设置每个代码块的索引。也就是说,当软件只包括多个代码块时,管理软件是容易的,但是在实际实现中,可能使用大量代码块来实现单个软件程序。在该情况下,为了更直观地通知用户或操作员对应的代码块表示什么,可以将索引添加到对应的代码块中。通过该索引,每个代码块可以利用管理编号和块编号来管理索引/功能(需求)/描述/代码,并且可以按照场合需求通过索引/功能(需求)/描述/代码单独表示代码块的预定区域或整个配置。在图19中示出了这样的例子。
也就是说,如图19所示,可能存在使用软件实现计算器的情况。该计算器可以包括表示用户接口的代码块、表示操作员的代码块、以及表示图形的代码块。这里,将这种索引功能添加到代码块中,从而阐明代码块对应于什么,由此允许用户或操作员容易地执行编程。
此外,这种索引还可以包括用于由上代码块管理的变量的索引,以及代码块的索引。也就是说,上代码块可以包括下代码块的若干步骤,并可以根据环境管理大量变量。在这种情况下,通过例子参考C语言,可以使用结构来组合变量,并且还可以经由索引管理这种结构,因此能够更清楚且在外部管理软件。
代码块许可设置单元130用于针对代码块设置访问许可,以便设置其他用户访问的许可。更具体地,代码块许可设置单元130可以设置在整个代码块结构中的每个、至少一部分或所有代码块的许可。可以指定所选的代码块包括下代码块,并指定安全性,从而下代码块不包含于所选的代码块中。可以配置设置了安全性的代码块,从而除了被许可人外的人不能查看功能/描述/功能实现代码,或者从而限制修改代码的许可。可以针对功能/描述/内部属性码独立设置这种访问许可。可以执行访问许可的设置,从而他人仅可以查看一些代码块。对于代码块,可以在若干步骤中设置安全性(例如,从而不查看代码块/从而查看代码块,但是不能修改/从而不能修改输入/输出变量和消息/从而可以修改所有的数据)。支持设置安全性的功能,从而在特定代码块中的变量和消息仅用于管理者指定的代码块中。
代码块验证单元140利用随机变量执行重复接收包含于代码块中的输入变量并验证代码块的功能。例如,当用户选择要验证的代码块时,代码块与从属于所选代码块的下代码块一起成为验证单元。之后,在显示单元82上显示利用包括输入/输出参数的部分和输入/输出参数的条件部分实现的屏幕。这里,当在条件部分中指定用于各个输入/输出参数的输入/输出条件,并执行验证时,利用在对应条件中指定的范围内的随机变量连续输入输入变量,并且因此可以经由输入各个变量自动验证代码,直到操作员停止验证。
这里,可以以使用随机变量或对于落入条件的所有值顺序验证变量的输入和输出值的方式,执行验证方法。可以使用经由测试在发生错误时报告错误发生位置的方法(通过识别当发生编译错误时编译器报告的代码行所属的代码块),或者报告在输出变量条件中发生错误的输出变量的名称的方法,来执行验证。当执行验证时,可以结合测试结果屏幕,显示使用计算机存储器、使用中央处理单元(CPU)等的状态。利用数字和符号(<,>)配置输入变量/输出变量的条件,并且可以重复表示。当从验证方法中选择顺序测试时,根据声明的变量类型,将由对应的变量所表示的所有数字顺序应用于验证,并随后执行验证。验证的开始和结束被实现为使得当终止所有数字的应用时,自动终止验证;或者使得当操作员按压结束按钮时,终止验证。
此外,在附图中,虽然示出代码块验证单元140仅在设置代码块之后执行验证,但这仅仅意图帮助理解本发明,并且可以在设置代码块之后的任意步骤执行验证。
当从用户接收到请求时,代码块转换单元150用于将代码块转换为对应于预先设置的编程语言的代码。在图20中示出了该转换的例子。在图20中示出的上代码块包括两个下代码块,其包含于上代码块中的平行关系。此外,由于已经在以上详细描述了该代码转换方法,将省略重复部分的重复描述。此外,关于代码块转换,在本说明书中主要基于C语言进行了描述,但是该描述只是用于帮助理解本说明书的例子,并且本发明可以应用于不同类型的各种语言。
虽然在附图中将代码块转换单元150示出为仅在已经设置了针对代码块的许可之后执行转换,但是其仅意图帮助理解本发明,并且可以在已经设置了代码块之后的任意步骤执行转换。
并且,当使用代码块实现软件时,根据本发明的用于可视化地实现软件代码的设备100可以在利用相关功能的相关性、变量或消息验证数据的流或相关方面时,向用户或操作员提供针对代码块的各种查看功能。代码块具有在分层树结构或分层块结构中基于块编号/管理编号/在代码块中声明的变量和消息来显示相关代码块的功能。
这里,可以通过包括特定代码块来不同地设置代码块显示的范围。当在代码块中声明的变量是引用时,将从上代码块到下代码块输入/输出的变量识别为相同的变量,并因此可以显示所有相关的代码块。使用代码块的软件实现工具可以将属性分配给相应的代码块。例如,将与存储数据相关的功能定义为单个属性,并且可以在与其相关的代码块中定义对应的属性。可以选择与数据存储相关的定义的属性,并且仅显示与其相关的代码块(在树结构/块结构中)。可以重复设置该属性信息,并且还可以将其定义为在单个代码块中是重复的。可以通过单条软件代码表示关于代码块中代码的信息(C语言中源代码的形式)。在功能(需求)/描述的情况下,可以单个报告形式基于管理编号同时显示功能和描述。
此后,将参照图9进一步描述代码块设置单元。图9是根据本发明实施例示出包含于用于可视化地实现软件代码的设备中的代码块设置单元的框图。如图9所示,代码块设置单元120可以配置为包括代码块属性设置模块121、代码设置模块122、关系设置模块123以及块编号设置模块124。在后续描述中,将省略对上述重复部分的重复描述。
代码块属性设置模块121用于设置在对应代码块中的代码块属性。也就是说,代码块属性设置模块121设置关于在对应代码块中关于每个代码块的功能信息和描述信息。通过用户经由输入单元进行输入,这是可能的。如上所述,将这种代码块属性设计为超越传统的编码方案,在传统的编码方案中以一维执行编码并且代码的可读性劣化,并且包括通过具体化在实现软件时导出的需求而设计的功能的简短描述(功能的简单描述)和详细描述(详细描述、图、图表等)。通过该代码块属性,用户可以更直观地理解代码块,不像例如使用批注的以一维表示代码的传统编码方案。
代码设置模块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处,根据代码块的分层位置自动分配块编号。此外,可以通过移动块来自动设置这种块编号,并且用户不能随意更改块编号。也就是说,可以在代码块设置单元根据代码块位置而针对代码块设置块编号的步骤S140处执行块编号的分配,所述位置是在生成代码块的步骤S120处或在设置代码块属性或内部属性代码的步骤S130处设置的。
在已经设置了针对代码块的块编号之后,在步骤S150处确定是否验证代码块。这里,如果确定出需要代码块的验证,也就是,当用户希望验证代码块时,在步骤S160处验证代码块;反之,在用户不希望验证代码块时,在步骤S170处设置针对代码块的许可。
在验证代码块的步骤S160处,代码块验证单元通过利用随机变量重复输入或验证包含于代码块中的输入或输出变量而执行验证代码块的功能。此外,不仅可以通过使用这种随机变量的方法,而且可以通过针对落入条件中的所有值顺序输入变量的方法,来执行验证代码块的步骤S160。此外,已经参照图8详细描述了该验证过程,并因此将省略对其的额外描述。
之后,在步骤S170处设置针对代码块的许可。这里,设置针对代码块的许可的步骤S170不是必须步骤,而可以根据用户需求而选择性执行。也就是说,配置设置针对代码块的许可的步骤S170以设置在整个代码块结构中的每个、至少一部分或所有代码块的安全性。
然后,在步骤S180处确定是需要生成额外代码块的操作还是编辑特定代码块的操作。这里,如果确定根据用户的选择要执行生成额外代码块或编辑特定代码块的操作,则过程返回到生成代码块的步骤S110,在其中重复上述步骤。如果确定没有必要根据用户的选择而执行生成额外代码块或编辑特定代码块的操作,则在步骤S190处将代码块转换成对应于预先设置的编程语言的代码。
之后,代码块转换单元在步骤S190处将代码块转换成对应于预先设置的编程语言的代码。由于已经参照根据本发明实施例的用于可视化地实现软件代码的设备详细描述了该转换过程,所以将省略对其的额外描述。
下文中,将参考图22进一步描述在图21中示出的设置代码块信息的步骤。图22是根据本发明实施例示出在用于可视化地实现软件代码的方法中响应于用户输入而设置代码块信息的步骤的流程图。在下述描述中,将省略上述重复部分的重复描述。
首先,在步骤S210处确定是否已经生成新的代码块。也就是,通过确定是否已经生成新的代码块的步骤S210,确定用户是希望生成新的代码块并对新的代码块执行操作,还是希望编辑现有代码块。如果确定已经生成了新的代码块,则在步骤S230处设置关于新代码块的代码块信息;反之,如果确定未生成新的代码块,则在步骤S220处编辑现有的代码块。
配置编辑现有的代码块的步骤S220以执行在分层树结构或分层块结构中对代码的编辑,例如,复制、移动、删除和编辑代码块。也就是说,编辑现有的代码块的步骤S220表示可以在图21的新代码块生成步骤S120处不生成新的单独的代码块的情况下执行的过程,或者即使已经生成新的代码块也可以使得按照用户期望进行编辑的过程。由于在上文已经参考图8详细描述了现有代码块编辑过程S220,所以将省略对其的额外描述。
配置设置关于新代码块的代码块信息的步骤S230,以设置关于在生成新代码块的步骤S120处生成的新代码块的代码块信息。这里,代码块信息包括代码块属性,其包括功能信息和描述信息;以及内部属性代码,在其中实质实现了软件代码。也就是说,当使用代码块实现软件时,需要在上代码块中(在属于上代码块的下代码块中)使用的变量的定义,并且使用定义的变量作为输入/输出参数定义下代码块的功能。在设置关于新代码块的代码块信息的步骤S230处,可以执行诸如功能定义或变量设置的功能。然而,不总是指定功能的顺序,并且可以首先仅以近似方式定义块,并然后实现详细的功能,或者首先定义数据的使用并实现各个功能。
之后,在步骤S240处设置代码块的位置和关系。在本发明中公开的代码块的特征在于其可以在分层树结构或分层块结构中进行表示。也就是说,配置设置代码块的位置和关系的步骤S240来设置生成的或经编辑的代码块的位置,并设置代码块与其它代码块的关系,因此使得能够执行代码块而不会引起错误。
接下来,在步骤S250处确定对应的代码块是否是最下层的代码块。也就是说,在根据本发明的代码块中,除了用于分配变量的代码外上代码块不包含额外的代码,并且在最下层的代码块中包括实际代码。由于代码块的特性,在步骤S250处确定代码块是否是最下层的代码块。如果确定出代码块是最下层的代码块,则在步骤S260处从用户接收内部属性代码。在已经从用户接收了内部属性代码之后,在步骤S140处通过代码块设置单元开始设置代码块的块编号。如果确定代码块不是最下层代码块,则在步骤S110处随后确定是否生成代码块,因此还确定是否添加另一代码块。这里,当执行添加或编辑另一代码块的功能时,再次执行在图21中公开的步骤,否则终止该过程。
可以将根据本发明的用于可视化地实现软件代码的方法实现为可以由各种计算机单元执行的程序指令,并且可以记录于计算机可读存储介质。计算机可读存储介质可以单独或组合地包括程序指令、数据文件以及数据结构。可以针对本发明具体设计和配置记录于存储介质上的程序指令,或者所述程序指令对于计算机软件领域的普通技术人员已知或可用。计算机可读存储介质的例子包括所有类型的硬件设备,其具体配置为记录和执行程序指令,例如磁介质(如硬盘、软盘和磁带),光介质(如压缩盘(CD)只读存储器(ROM)和数字通用盘(DVD)),磁光介质(如软式光盘、ROM、随机存取存储器(RAM)以及闪存)。程序指令的例子包括机器代码,例如编译器创建的代码,以及计算机利用解释器可执行的高级语言代码。硬件设备可以配置为操作为一个或多个软件模块,以便执行本发明的操作,反之亦然。
可以将本发明的原理的教导实现为硬件和软件的组合。此外,软件可以实现为实际在程序存储单元中实现的应用程序。可以将这种应用程序上载到包括任意适当架构的机器上,并且可以由机器执行。优选地,机器可以实现在具有硬件(例如,一个或多个CPU、计算机处理器、RAM以及输入/输出(I/O)接口)的计算机平台上。此外,计算机平台可以包括操作系统(OS)和微指令代码。这里描述的各种过程和功能可以是微指令代码的一部分或应用程序的一部分,或者其任意组合,并且这些可以通过包括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所述的设备,其中,上代码块包括一个或多个下代码块,并且所述一个或多个下代码块从所述上代码块接收输入参数,并将输出参数返回到所述上代码块。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2014-0061828 | 2014-05-22 | ||
KR1020140061828A KR101597780B1 (ko) | 2014-05-22 | 2014-05-22 | 소프트웨어 코드의 시각적 구현 방법 및 장치 |
PCT/KR2015/004651 WO2015178605A1 (ko) | 2014-05-22 | 2015-05-08 | 소프트웨어 코드의 시각적 구현 방법 및 장치 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106030524A true CN106030524A (zh) | 2016-10-12 |
CN106030524B CN106030524B (zh) | 2019-11-22 |
Family
ID=54554227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580009628.0A Active CN106030524B (zh) | 2014-05-22 | 2015-05-08 | 用于可视化地实现软件代码的方法和设备 |
Country Status (5)
Country | Link |
---|---|
US (1) | US9904524B2 (zh) |
JP (2) | JP2017506390A (zh) |
KR (1) | KR101597780B1 (zh) |
CN (1) | CN106030524B (zh) |
WO (1) | WO2015178605A1 (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445556A (zh) * | 2016-10-18 | 2017-02-22 | 中国银行股份有限公司 | 一种可视化代码生成方法及系统 |
CN107633008A (zh) * | 2017-08-10 | 2018-01-26 | 阿里巴巴集团控股有限公司 | Web工程数据处理方法、装置、服务器及系统 |
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 |
CN114911467A (zh) * | 2021-10-22 | 2022-08-16 | 北京思明启创科技有限公司 | 代码检测方法、装置、电子设备及存储介质 |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 | 주식회사 우리은행 | 플로우 다이어그램 생성 방법 및 이를 실행하는 장치 |
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 | 平安银行股份有限公司 | 软件发布方法、装置、电子设备及可读存储介质 |
KR102378690B1 (ko) * | 2021-08-17 | 2022-03-25 | (주)비케이시스템 | 코드 블록을 이용한 프로그래밍 코드 생성 방법 및 이를 실행하는 장치 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1105507A (zh) * | 1993-06-28 | 1995-07-19 | 塔里根特公司 | 模型化系统 |
JP2007011507A (ja) * | 2005-06-28 | 2007-01-18 | Fuji Electric Holdings Co Ltd | プログラムツリーの表示方法、およびプログラム生成システム |
JP2010140326A (ja) * | 2008-12-12 | 2010-06-24 | Toyota Motor Corp | カバレージ測定装置 |
JP2013210865A (ja) * | 2012-03-30 | 2013-10-10 | Ntt Data Corp | 設計支援システム、設計支援方法およびプログラム |
Family Cites Families (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6230313B1 (en) * | 1998-12-23 | 2001-05-08 | Cray Inc. | Parallelism performance analysis based on execution trace information |
JP2001256050A (ja) | 1999-11-30 | 2001-09-21 | Texas Instr Inc <Ti> | グラフィカル開発システム及び方法 |
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 |
EP1783604A3 (en) * | 2005-11-07 | 2007-10-03 | Slawomir Adam Janczewski | Object-oriented, parallel language, method of programming and multi-processor computer |
KR20070061326A (ko) * | 2005-12-09 | 2007-06-13 | 한국전자통신연구원 | 로봇 응용 프로그램 제작 지원 방법 및 그 제작 장치 |
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 |
JP5275087B2 (ja) * | 2009-03-02 | 2013-08-28 | 株式会社東芝 | プログラム生成装置およびブロック線図生成装置 |
WO2012046460A1 (ja) * | 2010-10-04 | 2012-04-12 | 三菱電機株式会社 | ソフトウエア生成装置、ソフトウエア生成方法及びプログラム |
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 |
KR101284910B1 (ko) * | 2011-05-23 | 2013-07-12 | 전윤주 | 프로그래밍 블록 조립체, 이를 이용한 프로그램에 의해 구동되는 로봇 시스템 및 그 프로그래밍 방법 |
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 |
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 | 국방과학연구소 | 무기체계 구조 개선을 위한 소프트웨어 리팩토링 방법 |
-
2014
- 2014-05-22 KR KR1020140061828A patent/KR101597780B1/ko active IP Right Grant
-
2015
- 2015-05-08 US US15/102,259 patent/US9904524B2/en active Active
- 2015-05-08 WO PCT/KR2015/004651 patent/WO2015178605A1/ko active Application Filing
- 2015-05-08 CN CN201580009628.0A patent/CN106030524B/zh active Active
- 2015-05-08 JP JP2016550788A patent/JP2017506390A/ja active Pending
-
2018
- 2018-07-11 JP JP2018131803A patent/JP6705099B2/ja active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1105507A (zh) * | 1993-06-28 | 1995-07-19 | 塔里根特公司 | 模型化系统 |
JP2007011507A (ja) * | 2005-06-28 | 2007-01-18 | Fuji Electric Holdings Co Ltd | プログラムツリーの表示方法、およびプログラム生成システム |
JP2010140326A (ja) * | 2008-12-12 | 2010-06-24 | Toyota Motor Corp | カバレージ測定装置 |
JP2013210865A (ja) * | 2012-03-30 | 2013-10-10 | Ntt Data Corp | 設計支援システム、設計支援方法およびプログラム |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106445556A (zh) * | 2016-10-18 | 2017-02-22 | 中国银行股份有限公司 | 一种可视化代码生成方法及系统 |
CN106445556B (zh) * | 2016-10-18 | 2019-08-30 | 中国银行股份有限公司 | 一种可视化代码生成方法及系统 |
CN107633008A (zh) * | 2017-08-10 | 2018-01-26 | 阿里巴巴集团控股有限公司 | Web工程数据处理方法、装置、服务器及系统 |
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 |
CN114911467A (zh) * | 2021-10-22 | 2022-08-16 | 北京思明启创科技有限公司 | 代码检测方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN106030524B (zh) | 2019-11-22 |
KR20150134713A (ko) | 2015-12-02 |
KR101597780B1 (ko) | 2016-02-25 |
US9904524B2 (en) | 2018-02-27 |
US20170168784A1 (en) | 2017-06-15 |
JP2017506390A (ja) | 2017-03-02 |
WO2015178605A1 (ko) | 2015-11-26 |
JP2018185850A (ja) | 2018-11-22 |
JP6705099B2 (ja) | 2020-06-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106030524A (zh) | 用于可视化地实现软件代码的方法和设备 | |
CN102341781B (zh) | 软件测试台生成 | |
CN111694741B (zh) | 一种基于路径深度覆盖的测试用例设计方法 | |
CN106293664A (zh) | 代码生成方法及装置 | |
US20050160104A1 (en) | System and method for generating and deploying a software application | |
CN104903891A (zh) | 自动报告生成方法 | |
CN110287097A (zh) | 批量测试方法、装置及计算机可读存储介质 | |
CN106648587A (zh) | 一种基于注解的Web应用代码生成方法 | |
CN112199086A (zh) | 自动编程控制系统、方法、装置、电子设备及存储介质 | |
CN105975466A (zh) | 一种面向短新闻的机器写稿方法及装置 | |
CN101901148A (zh) | 基于autosar标准的ecu参数配置界面生成方法 | |
CN100483429C (zh) | 验证操作支持系统及其方法 | |
Chadzynski et al. | Enhancing automated trade studies using MBSE, SysML and PLM | |
CN106096159B (zh) | 一种云平台下的分布式系统行为仿真分析系统的实现方法 | |
JP2011515755A (ja) | 予約されたコンポーネントコンテナ基盤ソフトウェアの開発方法及び装置 | |
CN111399816A (zh) | 汽车ecu程序文件生成方法及系统、存储介质及终端 | |
Becker et al. | Integration tools supporting cooperative development processes in chemical engineering | |
CN116629172A (zh) | 芯片设计中模块自动生成和集成方法、装置、设备及介质 | |
CN105930483A (zh) | 对象格式生成方法、装置及系统 | |
CN107025110B (zh) | 一种基于软件开发要素及要素之间的联系的时态建模方法 | |
Seybold et al. | Evolution of requirements models by simulation | |
CN102902519A (zh) | 一种基于动态系统实现复合断言计算的方法 | |
CN104731700A (zh) | 一种支持表格驱动局部数据的单元测试系统和方法 | |
US20230297418A1 (en) | Computer-Implemented Method for Performing a System Assessment | |
Aggogeri et al. | A novel logic and approach to speed up simulation and analysis of production systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |