您好, 访客   登录/注册

一种基于表单的软件自动化开发方法

来源:用户上传      作者:

  摘  要:表单是信息交流的载体,也是信息管理软件中工作流的基本单位。提出一种基于表单的软件自动化开发方法:首先对表单进行形式化描述;其次映射到关系数据库表中的一个表和一个视图;然后映射到软件的一个主界面和一个增加界面;最后映射出表单的保存、修改、删除和查询等代码。根据这个映射流程,利用VB6.0和SQL Server 2015开发出CASE工具,使用该工具能自动生成表单的数据库表、界面和代码。
  关键词:表单;工作流;软件自动化
  Abstract: The form is the carrier for information exchange and the basic unit of workflow in information management software. This paper proposes a method of software automation development based on forms. Firstly, the form is described formally; secondly, the form is mapped to a table and a view in a relational database table; thirdly, the form is mapped to a main interface and an additional interface of the software; finally, the form is mapped to the codes of saving, modifying, deleting and querying. Based on this mapping process, a Computer Aided (Assisted) Software Engineering (CASE) tool is developed by using VB6.0 and SQL server 2015. The tool can be used to automatically generate the database table, interface and codes of the form.
  Keywords: form; workflow; software automation development
  1   引言(Introduction)
  軟件生产长期处于作坊式的手工阶段,如何提高软件生产效率、降低生产成本,一直是软件工程界研究的课题。信息化管理软件在我国软件产业中占比大,发展信息化管理软件能促进我国工业和信息产业升级换代。信息化管理软件中信息传递都是以表单作为载体,例如:个人与个人之间的信息交流是书信和论文等;个人与单位之间的信息交流是申请书和请假条等;政府部门之间的信息来往是公文和通知等;公司之间的买卖交流是协议和合同等;企业采供流程中的物资交流是入库单和出库单等。这些书信、论文、申请书、请假条、公文、通知、协议、合同、入库单和出库单等都是表单。这些表单作为信息载体在工作流中进行流转,保证工作流各个节点的信息主体相同,差别在于表单状态和经办人等流转信息。因此表单可以作为软件建模的基本单位,并且是实现自动化编程的基础[1]。基于表单的这种特点建立了表单向数据库表、软件界面和代码转换的映射模型,最后采用VB6.0和SQL Server 2015开发出CASE工具,实现局部软件自动化。对于软件公司规范软件开发行为和降低人员培训费用等等方面起到较大作用[2,3]。
  2   基于表单的逐级映射(Stepwise mapping based on forms)
  刘骁建提出了基于表单的企业建模研究和表单生成器的设计[4];殷旭等提出了基于Web的工作流表单的柔性建模[5];肖宇等研究了基于表单和关系数据库的工作流管理系统[6];廖斌等提出了基于Web工作流表单的设计与实现[7];刘迎春等提出了基于Web工作流系统中表单的定义与处理[8];唐文忠等提出了基于共享模型的工作流表单系统设计[9]。本文提出了基于表单的软件自动化开发方法。
  2.1   表单的概念和形式化描述
  定义:表单是信息交流的载体,完整的表单分为表头、表体和表尾三个部分。表头是信息交流的主题内容;表体是信息交流的核心内容;表尾是信息交流的参与人和时间。具有多个表体字段的表单称为复杂表单,只有一个表体字段的表单称为简单表单。
  入库单和出库单属于复杂表单,表体部分不仅具有多个字段,而且字段之间往往还需要计算功能;请假条和申请书属于简单表单,表体部分只有文字,可作为一个字段保存,而且不需要计算功能。简单表单可视为复杂表单的特例,图1是复杂表单的示意图。
  下面对表单进行形式化描述:设表头(Head)有x(x>=1)个数据项,表体(Body)有y(y>=1)个数据项,表尾(Tail)有z(z>=1)个数据项。表头数据项形式化为H1,H2,…,Hx;表体数据项形式化为B1,B2,…,By;表尾数据项形式化为T1,T2,…,Tz。图2是表单的形式化描述。
  结论:表头必须有一个单号数据项,用来唯一标识表单的单号;表尾必须有一个状态字段,用来标识表单处在工作流中的状态。
  单号是表单的标识号,是组织、存储、检索表单的依据。状态是表单在工作流中的标识,是表单上行和下行的依据。这两个字段是表单的控制字段,是表单的公用属性,与具体的业务性质相关性不大。
  表单是物理世界信息的建模,是关系数据库ER图中的多个实体之间的多对多联系[10],下面讨论如何映射到关系数据库表当中。   2.2   表单的数据库表建模
  关系数据库的ER模型是现实世界的抽象,是数据库和软件架构设计的理论基础。在ER模型理论中,一个实体映射成一张表,实体的主键就是表的主键;一个1:1的联系跟任意1端的实体合并映射成一个表,任意1端实体的主键就是表的主键;一个1:n的联系跟1端的实体合并映射成一个表,1端实体的主键就是表的主键;一个n:m的联系单独映射成一个表,两个实体的主键联合成为表的主键,每个实体表中的主键成为该表的外键[10]。
  这个理论没有很好地解决三个以上的多实体之间的n:m联系该如何建表。而表单就是三个以上的多实体之间的n:m联系。因为按照上述的转换规则,表单的主键来自各个实体主键的组合,那么表单的主键特别长,而且没有实际意义,不利于组织和编辑表单。下面给出如何将表单映射到数据库表的方法。
  方法:表单映射成一个视图ViewMain和一个明细表TabDetail。
  视图ViewMain的字段来自表头和表尾,起到简要标识表单信息的作用,也是为了提高数据访问速度,以及是映射到软件主界面的数据模型。明细表TabDetail的字段来自表头、表体和表尾,记录表单的全部数据,为了数据的完整性,也是映射到软件增加界面的数据模型。图3是映射关系,表1和表2是数据库表的结构。其中H1是表单的单号字段,往往是按照年度组织的流水号,不是来自各个实体主键的组合;Tz是表尾的状态字段,往往是整型数值。视图ViewMain是根据明细表TabDetail建立的,其字段来自表头和表尾。在软件实际开发过程中,往往取消主键和外部键的约束,数据的完整性靠界面的调用来保证。
  2.3   表单的界面建模
  一个表单映射成一个主界面和一个增加界面。主界面显示历史已经保存过的信息,对应视图ViewMain,只显示表头和表尾信息,以表单号来修改、删除和查询信息。增加界面是用来增加一个新表单的信息和修改一个旧表单的信息,对应明细表TabDetail,也是以表单号来组织信息。图4表示一个表单映射成兩个界面。图5和图6分别表示主界面和增加界面。
  2.4   表单的代码建模
  表单增加界面上的核心代码是【保存】,可以将一个新增加的表单内容保存进去,保存时首先生成一个新的单号,然后将表头、表体和表尾的界面值循环保存进去。
  表单主界面上的核心代码有:【增加】打开一个空白的增加界面;【修改】打开增加界面,并且把选中单号的表单内容反填回增加界面;【删除】删除选中单号的表单内容;【查询】根据输入的条件查询表单内容。
  3   CASE工具的开发(Development of CASE tools)
  CASE(Computer Aided Software Engineering)工具能够规范软件开发过程,提高软件开发效率,降低软件开发对人的依赖程度,降低软件开发的成本,降低软件开发的风险,提高软件公司的利润。基于表单的建模,可以从EXCEL数据字典到关系数据库表的自动生成,可以从关系数据库表到界面的自动生成,可以从关系数据库表到代码的自动生成。本文根据上述建模开发了一个CASE工具,可以实现基于表单的软件自动化。
  本CASE工具利用VB6.0编程实现。如图8以关系数据库表为核心,生成C#代码的例子。有如下功能:首先选择表名称,(1)创建窗体。(2)界面存向数据库的代码,如从DataSet赋值给表的代码;从文本框赋值给表的代码。(3)数据表读向界面的代码,如从表赋值给DataSet。(4)界面到界面的代码,如文本框赋值到文本框的代码。(5)内存到内存的代码,如DataSet1赋值给DataSet2。
  4   结论(Conclusion)
  表单是信息交流的基本单位,也是信息管理系统编程的基本单位,是多个实体之间的多对多联系,可以建模映射成一个表和一个视图,映射成一个主界面和一个增加界面,映射出一系列操作的代码。通过CASE实现这一系列的映射,实现基于表单的软件自动化。
  参考文献(References)
  [1] 方木云,谢恩文,刘洪彬,等.基于表单的信息管理软件开发建模[J].计算机技术与发展,2015,25(1):41-45.
  [2] 方木云,杭婷婷,刘辉,等.软件工程[D].北京:高等教育出版社,2016.
  [3] 费宗铭,肖宁.基于软件自动化的开发环境[J].计算机研究与发展,1989(09):21-26.
  [4] 刘骁建.基于表单的企业建模研究和表单生成器的设计[D].哈尔滨:哈尔滨工程大学,2006.
  [5] 殷旭,廖斌,王新平.基于Web的工作流表单的柔性建模[J].计算机工程与设计,2009,30(14):3429-3432.
  [6] 肖宇,许炜.基于表单和关系型数据库的工作流管理系统[J].华中科技大学学报:自然科学版,2004,32(11):42-44.
  [7] 廖斌,殷旭,王新平.基于Web工作流表单的设计与实现[J].科学技术与工程,2009,9(3):721-724.
  [8] 刘迎春,兰雨晴,金茂忠,等.基于Web的工作流系统中表单定义与处理[J].计算机工程与应用,2005,41(20):192-195.
  [9] 唐文忠,莫伟栋.基于共享模型的工作流表单系统设计[J].北京航空航天大学学报,2008,34(4):391-395.
  [10] 王珊,萨师煊.数据库系统概论[D].北京:高等教育出版社,2014.
  作者简介:
  方木云(1968-),男,博士,教授.研究领域:软件工程,信息系统.
  刘海波(1995-),男,硕士生.研究领域:软件工程.
  姜   伟(1984-),男,硕士,副教授.研究领域:软件工程.
  刘   辉(1979-),男,硕士,副教授.研究领域: 软件工程.
转载注明来源:https://www.xzbu.com/1/view-15253922.htm