CN1459719A - 图形化开发程序的系统及方法 - Google Patents

图形化开发程序的系统及方法 Download PDF

Info

Publication number
CN1459719A
CN1459719A CN 02119868 CN02119868A CN1459719A CN 1459719 A CN1459719 A CN 1459719A CN 02119868 CN02119868 CN 02119868 CN 02119868 A CN02119868 A CN 02119868A CN 1459719 A CN1459719 A CN 1459719A
Authority
CN
China
Prior art keywords
flow diagram
process flow
program
development sequence
procedure code
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.)
Pending
Application number
CN 02119868
Other languages
English (en)
Inventor
邱延诚
钟问星
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Elan Microelectronics Corp
Original Assignee
Elan Microelectronics Corp
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 Elan Microelectronics Corp filed Critical Elan Microelectronics Corp
Priority to CN 02119868 priority Critical patent/CN1459719A/zh
Publication of CN1459719A publication Critical patent/CN1459719A/zh
Pending legal-status Critical Current

Links

Images

Abstract

本发明公开一种以流程图方式开发程序的系统及方法。以往撰写程序者是直接利用程序码来撰写程序,易发生程序复杂度增加,且开发程序不易理解及维护,对于程序的侦错亦相当困难。而本发明是利用流程图方式来撰写程序,以避免直接使用程序码撰写程序,让撰写程序者及维护者易于了解及阅读,使程序更容易被开发及维护。

Description

图形化开发程序的系统及方法
                       技术领域
本发明是有关一种程序开发系统及方法,特别是关于一种以流程图方式开发程序的系统及方法。
                       背景技术
在电脑领域中,有许多种程序语言可供用来撰写程序,常用的程序语言如C语言、组合语言及BASIC语言等。图1是表示使用程序码直接撰写一组合语言程序的示意图,其是以符合组合语言的语法及符号一行一行地撰写程序。但是使用程序码直接撰写程序易造成许多问题。例如,当开发的程序较大时,由于指令太繁多且语法规定严格,使撰写程序者容易用错指令或语法,而撰写者却未发现撰写该程序码时所犯的错误而继续撰写,当程序码撰写完成进行测试或使用时,才发现程序有错(bug),而必须侦错及修改。又,因为程序太长,所以在检阅及修改时,所耗费的时间非常久,侦错步骤非常不容易,也容易有疏忽,且若非该程序开发者,要检阅、修改及维护该程序,亦非常困难。
特别是在发展开发系统时,传统上利用编译器来写微控制器的程序码,再将程序码进行组合(assembler)、连结(linker)、排除故障(debugger)等动作。而且是以“行”为观点,一行行来撰写程序及操作,虽然有巨集的使用,一旦系统复杂度增加或是较长的程序码,对于开发者或维护者将是很大的负担,程序将会不易被理解与阅读。能够更有系统与流程来开发,和及时提醒使用者可能会发生错误,是传统开发环境所缺乏的。
为了使开发程序更容易,且让撰写者更容易寻找程序错误及修改,减少检错及修改的时间,并为了让非撰写者更容易了解程序及维护,需要一种新的开发程序用的系统及方法。
                     发明内容
本发明的主要目的即在提出一种开发程序用的系统及方法,主要是利用许多简易的图形操作介面来替代及转换传统的程序开发。
本发明是利用流程图系统来撰写程序,使开发成程序变得更加容易,不会发生上述中传统开发程序码所产生的开发困难、不易检阅、以及维护管理不易。
采用本发明的系统及方法,除了让使用者更有系统地开发程序及增加程序可读性之外,选具有检查内部程序码、计算循环(回圈)机器周期及两程序区段之间的机器周期、显示各寄存器的状态及追踪程序码等功用。根据本发明,一种开发程序的系统包括一数据(资料)装置提供各种图形介面以替换一行行的程序码,一操作装置把各个图形介面组合成一流程图,以及一转换装置把各图形所组合的流程图转换成程序码。
                     附图说明
图1是一组合语言程序的示意图;
图2是表示程序码与图形介面之间的对应;
图3是表示错误与正确的程序码;
图4是表示以流程图进行分段测试;
图5是表示以流程图计算机器周期;
图6是表示跟踪寄存器的变化;
图7是表示开发程序用的系统组成;及
图8是表示本发明所使用的观点。
                     具体实施方式
以下实施例是为说明实施本发明的最佳实施例,以便本领域的技术人员能了解本发明的内容并据以实施。
现在对本发明附图中的图号说明如下:
10图形介面                     11程序码
13流程图                       12程序区段
14图形介面                     16程序区段
18图形介面                     20图形介面
22程序区段                     24程序区段
26程序区段                     28图形介面
30程序区段                   32程序区段
34图形介面                   36图形介面
38程序区段                   40箭头
42程序区段                   44程序区段
46流程图                     48图形介面
50图形介面                   52图形介面
54图形介面                   56接点
58接点                       60接点
62图形介面                   64流程图
66流程图                     68寄存器A的操作
70寄存器A的操作              72寄存器A的操作
74图形介面                   76图形介面
78图形介面                   80程序码
82从程序码到图形的转换
84从图形到程序码的转换
86图形数据结构               88显示流程图
90使用者介面                 92储存档案
94机器语言阶段               96程序码语言阶段
98流程图阶段
以图1中所提供的简单组合语言程序11为例,根据本发明,首先提供一图形界面库,该界面库包括许多图形介面,每一图形介面对应至少一函数或程序区段。如图2所示,从图形界面库中选取一图形介面10,选取程序码“ORG 0”为一程序区段12与图形介面10相对应,然后再选取一图形介面14,其对应程序区段16的程序码“MOV A,@ 0x11”及“IOW 0x0E”,接着选两个图形介面18及20各代表调用(呼叫)函数的程序区段22及24,而程序码分别为“CALL Fun1”及“CALL Fun2”,接着下一程序区段26的程序码“START:NOP”是表示为执行另一程序区段26,所以以输入指令“START:”来表示,选出一图形介面28输入程序区段26的程序码“MOV A,@ 0x00”及“MOV 0x07,A”,接着下一程序区段30及32的程序码“WAIT:JBS0x05,2”及“JMP WAIT”是表示有一程序码要跳跃到“WAIT”的程序区段30来作循环(回圈),所以选一图形介面34表示循环(回圈),接着在图形界面库中选出一图形介面36选取程序区段38输入“MOV A,0xff”的程序码,而每个图形介面之间,都以一箭头40连接,表示流程操作程序。图2中的流程图13即表示图1的程序11,其中每个图形介面都与程序11当中的某一程序区段相互对应。然后把这些图形介面组成的流程图13利用一转换装置转换成程序11的程序码后,即可输入电脑中执行。如此,以流程图的方式来开发程序,将也变得简单、快速且容易达成。
另一种应用是在撰写程序码后,将程序分割为许多程序区段,再转换为流程图,例如,从图1的程序11转换为图2的流程图13。这将使得后续的程序侦错及阅读变得容易。例如,在程序码中含有一错误指令,如图3所示,程序区段42中的程序码“MOA A,@ 0x11”为一错误指令,则系统会表示这个指令错误且要求如程序区段44的正确程序码“MOV A,@ 0x11”。又例如,当存在一跳转(跳跃)程序码,却跳转至不符合(不合)中断子(副)程序、子程序内部或是跨页的情况时,则系统会提出警告。
由于把程序码划分为许多区段,测试及侦错变得更容易。如图4所示,程序码被转换为流程图46之后,可以分区段逐次或随机进行测试。图形介面48、50及52表示不同的程序区段,这些图形介面48、50及52结合在一起形成一流程图46,若想测试部分程序,可以把其中单一图形介面48单独进行测试,而图形介面48测试完再进行下一图形介面50的测试,依此类推。
若要计算机器周期,如图5所示,从流程图64取出图形介面54的上、下两接点56及58,经过一计算装置就能计算该程序区段两点56及58之间的机器周期T1,若要计算循环(回圈)机器周期,也是取出图形介面62的上、下两接点58及60,而计算装置就把循环(回圈)周期ΔT乘以一变量N,变量N表示作循环(回圈)的次数,而计算机器周期
T2=ΔT×N。
若要跟踪(追踪)各寄存器的状态,以图6所示为例,跟踪寄存器A的变化,如方块68、70及72所示,以一跟踪装置可以从图形介面74、76及78中所输入的程序区段中的程序码检知寄存器A的内容,从其中发现寄存器A的变化,确认是否有未预料的状况出现。
如图7所示,本开发程序用的系统96含有四个主要处理程序,而且使用定义的图形数据结构86。方块80表示程序码,方块82及84分别表示(a)从程序码转换到图形及(b)从图形转换到程序码,而方块88表示(c)将收集的图形数据结构86以图形显示在电脑屏幕上,呈现完成的流程图,方块90表示(d)抓取从使用者介面来的信息,得知使用者对图形介面的操作,例如点取、新增、删除图形。此外,系统96还包括方块92,表示将图形数据结构储存为档案或从档案中读取图形数据结构86。
本发明以流程图观点来开发组合语言的程序,建立与传统程序码的桥梁,亦即用更高级的观点去发展开发环境,如图8所示,其中,低级的语言为机器语言阶段94,接下来为程序码语言阶段96,最高级的是利用流程图阶段98来撰写程序。本发明以图形介面的操作来开发程序,使得开发过程变得容易且可靠性提高,后续的修改及维护也更加简单。

Claims (13)

1.一种开发程序用的系统,包括:
一图形界面库,提供许多图形介面,每一图形介面对应至少一函数或程序区段;
一操作装置,用于从该图形界面库选取图形介面而组合一流程图;和
一转换装置,将该流程图转换为一套程序码。
2.如权利要求1的开发程序用的系统,还包括一反转换装置,将该程序码转换为该流程图。
3.如权利要求1的开发程序用的系统,还包括一显示装置,以显示该许多图形介面及流程图。
4.如权利要求1的开发程序用的系统,还包括一判断装置,以判断指令、函数及程序区段是否正确。
5.如权利要求1的开发程序用的系统,还包括一除错装置,以执行故障排除及检查程序区段。
6.如权利要求1的开发程序用的系统,还包括一周期装置,以计算机器周期。
7.如权利要求1的开发程序用的系统,还包括一跟踪装置,以跟踪寄存器、存储器及各程序区段的状态。
8.一种开发程序的方法,包括下列步骤:
定义许多图形介面的数据结构;
选取该许多图形介面以组合一流程图;以及
将该流程图转换为一套程序码。
9.一种开发程序的方法,包括下列步骤:
将一套程序码分割成为许多程序区段;以及
将每一程序区段以一图形介面表示而成为一流程图。
10.如权利要求9的开发程序的方法,还包括对该流程图中单一图形介面进行测试。
11.如权利要求9的开发程序的方法,还包括对该流程图中的二接点之间计算机器周期。
12.如权利要求9的开发程序的方法,还包括跟踪该流程图中的寄存器、存储器及程序区段的状态。
13.如权利要求9的开发程序的方法,还包括将该流程图转换为程序码。
CN 02119868 2002-05-17 2002-05-17 图形化开发程序的系统及方法 Pending CN1459719A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 02119868 CN1459719A (zh) 2002-05-17 2002-05-17 图形化开发程序的系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 02119868 CN1459719A (zh) 2002-05-17 2002-05-17 图形化开发程序的系统及方法

Publications (1)

Publication Number Publication Date
CN1459719A true CN1459719A (zh) 2003-12-03

Family

ID=29426906

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 02119868 Pending CN1459719A (zh) 2002-05-17 2002-05-17 图形化开发程序的系统及方法

Country Status (1)

Country Link
CN (1) CN1459719A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102439562A (zh) * 2009-03-06 2012-05-02 泰克斯维尔公司 卡处理
CN101446894B (zh) * 2007-11-27 2012-12-12 飞跃中科(台州)数控系统有限公司 一种基于家用电脑绣花机的嵌入式图形系统
CN103309648A (zh) * 2012-03-12 2013-09-18 苏州工业园区进一科技有限公司 图形化制作软件的系统和方法
CN103365635A (zh) * 2012-03-29 2013-10-23 苏州工业园区进一科技有限公司 将流程图中的控制过程转换为程序控制语句的方法
CN103365634A (zh) * 2012-03-29 2013-10-23 苏州工业园区进一科技有限公司 将流程图中的控制过程转换为程序控制语句的方法
CN103365636A (zh) * 2012-03-29 2013-10-23 苏州工业园区进一科技有限公司 将流程图中的控制过程转换为程序控制语句的方法
CN103885883A (zh) * 2014-04-10 2014-06-25 国家电网公司 一种通过网络图对测试过程进行实时展示的方法
CN104216691A (zh) * 2013-05-31 2014-12-17 华为技术有限公司 一种创建应用的方法及装置
CN107977236A (zh) * 2017-12-21 2018-05-01 上海智臻智能网络科技股份有限公司 问答系统的生成方法、终端设备、存储介质及问答系统
CN109521354A (zh) * 2017-07-05 2019-03-26 是德科技股份有限公司 用于测量系统的创建程序的方法、其测量系统及其计算机可读记录介质

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446894B (zh) * 2007-11-27 2012-12-12 飞跃中科(台州)数控系统有限公司 一种基于家用电脑绣花机的嵌入式图形系统
CN102439562A (zh) * 2009-03-06 2012-05-02 泰克斯维尔公司 卡处理
CN103309648A (zh) * 2012-03-12 2013-09-18 苏州工业园区进一科技有限公司 图形化制作软件的系统和方法
CN103365635A (zh) * 2012-03-29 2013-10-23 苏州工业园区进一科技有限公司 将流程图中的控制过程转换为程序控制语句的方法
CN103365634A (zh) * 2012-03-29 2013-10-23 苏州工业园区进一科技有限公司 将流程图中的控制过程转换为程序控制语句的方法
CN103365636A (zh) * 2012-03-29 2013-10-23 苏州工业园区进一科技有限公司 将流程图中的控制过程转换为程序控制语句的方法
US9720658B2 (en) 2013-05-31 2017-08-01 Huawei Technologies, Co., Ltd. Application creation method and apparatus
CN104216691A (zh) * 2013-05-31 2014-12-17 华为技术有限公司 一种创建应用的方法及装置
CN104216691B (zh) * 2013-05-31 2017-11-17 华为技术有限公司 一种创建应用的方法及装置
CN103885883B (zh) * 2014-04-10 2016-09-14 国家电网公司 一种通过网络图对测试过程进行实时展示的方法
CN103885883A (zh) * 2014-04-10 2014-06-25 国家电网公司 一种通过网络图对测试过程进行实时展示的方法
CN109521354A (zh) * 2017-07-05 2019-03-26 是德科技股份有限公司 用于测量系统的创建程序的方法、其测量系统及其计算机可读记录介质
CN107977236A (zh) * 2017-12-21 2018-05-01 上海智臻智能网络科技股份有限公司 问答系统的生成方法、终端设备、存储介质及问答系统
CN107977236B (zh) * 2017-12-21 2020-11-13 上海智臻智能网络科技股份有限公司 问答系统的生成方法、终端设备、存储介质及问答系统

Similar Documents

Publication Publication Date Title
Shippey et al. Automatically identifying code features for software defect prediction: Using AST N-grams
Campos et al. Gzoltar: an eclipse plug-in for testing and debugging
US6978443B2 (en) Method and apparatus for organizing warning messages
Leotta et al. Pesto: Automated migration of DOM‐based Web tests towards the visual approach
Yu et al. Conpredictor: Concurrency defect prediction in real-world applications
Velez et al. Configcrusher: Towards white-box performance analysis for configurable systems
CN103389939B (zh) 一种针对堆可控分配漏洞的检测方法及系统
CN102402479B (zh) 用于静态分析的中间表示结构
Vos et al. testar–scriptless testing through graphical user interface
CN1459719A (zh) 图形化开发程序的系统及方法
Ran et al. Automated visual testing for mobile apps in an industrial seting
CN112241370B (zh) 一种api接口类的校验方法、系统及装置
US8819626B2 (en) Sharable development environment bookmarks for functional/data flow
EP3602307A1 (en) Enabling breakpoints on entire data structures
US20030177471A1 (en) System and method for graphically developing a program
Dal Cin Extending UML towards a Useful OO-Language for Modeling Dependability Features.
Liu et al. Towards understanding bugs in python interpreters
JPH0766342B2 (ja) プログラムテスト装置
Turcotte et al. DrAsync: identifying and visualizing anti-patterns in asynchronous JavaScript
Perez Dynamic code coverage with progressive detail levels
Quan et al. Towards understanding the faults of javascript-based deep learning systems
Li et al. Crowdsourced test case generation for android applications via static program analysis
Gibson ARM assembly language-an introduction
Harzevili et al. Automatic Static Vulnerability Detection for Machine Learning Libraries: Are We There Yet?
Tchamgoue et al. A taxonomy of concurrency bugs in event-driven programs

Legal Events

Date Code Title Description
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C02 Deemed withdrawal of patent application after publication (patent law 2001)
WD01 Invention patent application deemed withdrawn after publication