发展部件技术分享 http://blog.sciencenet.cn/u/求新 研究方向:数据库、MIS,教育部教指委计算机分委会专家工作组成员

博文

基于VFP部件库最小系统网络版研究

已有 5569 次阅读 2009-5-5 21:39 |个人分类:生活点滴|系统分类:教学心得| 数据库, 教学改革, 软部件, 软件复用, 管理信息系统

                                        (本文原载于武汉大学东湖分校学报)

    1. 通用软部件研究的意义与现状
    通用软部件(以下简称“部件”)是应用系统中由构件组成的能独立完成一项工作的具有自适应与即插即用特性的通用程序模块。它是经封装的、面向包括多个功能的业务工作而不是简单单一功能的系统顶级模块;部件之间不存在直接联系、不要求彼此间的协作、包括了全局性界面设计的内容、直接依据接口参数调用、不存在动态接口,能通用于不同应用系统,通用于同类操作系统的多个不同数据库系统,能自动适应不同数据库结构的应用需求,在应用于现场时可以如同硬件生产一样不加修改地即插即用或经简单裁剪后插入使用(一般不需要编写或修改代码);即使应用需求改变,也同样只需要修改参数就能自动适应,甚至可以不需要再编译。它采用从上而下设计方法进行研制,是规范化、标准化的代码类软件。我们从2000年起开展通用软部件研究,2001年发布了基于VFP的几个通用软件,2004年在网上公开发布VFP部件库最小系统,在表单设计、查询设计、导入导出、报表设计、统计图设计、关系操作等各方面功能与性能全面超过VFP自带的开发工具,特别是比较适应中国国情。2005年基于JAVA的部件技术通过湖北省教育厅鉴定,评价达到世界先进水平。2006年发布VFP部件库最小系统3.0版。2007年微软宣布放弃他们重金收购且发展15年的FoxPro,表示VFP9.0版本是其最后版本,网上传言有将VFP变成自由软件的可能。08年我们又继续发布了VFP部件库最小系统4.0版,今年将发布VFP部件库最小系统网络版(其试用版现已可向《数据库原理与技术》一书使用学校提供)。到目前为止,通用软部件技术仍然是我们独家技术(因此不妨宣称为程氏技术)。其目标是提高软件复用性能,提高软件生产效率与软件质量,提高软件适应性与可扩展性,降低软件成本,促使进一步提高计算机应用面,促使实现软件生产工业化。
    计算机应用,尤其是其在管理方面的应用最让人头痛的问题是如何适应多变的需求,只有发展适应性特别优良的具有高度可复用性的软件才能解决该问题。如果能生产足够多的如同前述的通用软部件,将能有效解决系统扩展性与适应性的问题。
    目前在人才市场上,一方面计算机毕业生分配困难,另一方面又缺少具有丰富实践经验的计算机程序员。虽然提高教学质量永远是正确的话题,但是在一定历史时期,其提高教学质量的作用总是有限的,计算机人才就业问题的解决首先还是要依赖于计算机应用的发展。目前在Excel与大型数据库之间存在计算机应用的断层:要不,使用不需要大学培养的Excel操作者;要不,需要具有甚高水平与丰富经验的大型数据库开发与管理人员。计算机在经济活动中的应用并没有象预期的那样普及,原因是,在硬件生产中有各种组装、建筑、管理、维修、加工等方面的行业,它们不需要复杂昂贵的设备,也不需要顶级的技术,但吸纳了大批劳动力,也拓展了硬件的生产与应用。但软件行业没有这样的层面。很难期望在区区4年时间里能将所有大学生培养成既有深厚理论素质,又有丰富实践经验与很强动手能力的人才。必须改变软件生产的现状才能有效解决上述问题。
    软部件技术希望如同生产机器或盖房子一样实现生产的分工:有的生产厂专门生产机器的零件、部件,另一些厂则负责安装、测试与装修,大多数生产人员的工作是利用规范化与标准化的零、部件组装生产产品(建立应用系统)。长期以来,人们在软件工程过程及软件工程过程管理方面进行了深入的研究,在软件开发技术上不断取得进展,但相对而言,我们在软件生产社会化、软件生产分工方面的研究比较落后。 软件生产工业化的目标一直未能实现,主要原因是缺少标准化的通用软部件。
    2.基于VFP软部件的研究
    我们关于软部件的研究包括基于VFP软部件的研究与基于JAVA软部件的研究二方面。基于JAVA的研究可以解决跨系统平台的软件通用性问题,适用于较高级的需求。基于VFP软部件的研究则具有普及意义,尤其在管理信息系统课程与数据库课程教学中具有强辅助作用。
在网络应用中,为了降低网络负担,提高工作效率,希望数据具有可控制的冗余性,最好在使用数据的远程位置能建立临时数据结构,存储被复制的数据,例如建立本地数据库,并与远程数据库协同解决应用的问题。对本地数据库的要求主要是效率高,可扩展性好,适应性好,易学易用。目前人们接触与使用较多的中小数据库有SQL Server,Access,VFP等,由于前二者数据存储都以数据库为单位,所有数据表,包括索引、日志、各种中间数据都存在于一个表中,效率与扩展性都不理想,应用SQL Server的价格还十分高昂。而VFP以数据表为单位存放,文本与二进制数据还采用特殊的单独文件存放,表与表之间只在需要时通过程序或建立数据库结构相联系,使得它更符合本地数据库的要求。加上VFP具有嵌入的开发语言,使用方便,更具有作为开发远程客户机端应用子系统工具的优势。
    我们在VFP部件库最小系统4.0版的基础上,今年又进一步开发了VFP部件库最小系统网络版。开发网络版需要解决的技术问题包括:
    (1)使用方便,仍然要求强的即插即用特性,在组合到应用系统中时无需修改程序,最好是无需编译,不需要进入具体的开发语言,不要求掌握相关开发语言(例如VFP)的知识。
    (2)要求强化数据共享性。由于有本地数据库支持,可以一次性将需要处理的数据复制到本地操作,减少了网络传输的次数,大大降低远程服务器处理数据的工作负担,但是增加了一次性数据传输数量,需要寻求最佳配合方案。
    (3)特别关注数据安全性问题。VFP是没有安全性控制的数据库,复制远程数据将使被复制数据具有非权使用的危险,因而必须保证无权使用的数据不被复制与传送,且所传数据必须具有真正意义的临时性。
    (4)需要解决防止不一致数据及并发操作的问题。
    VFP部件库最小系统网络版的研制现已获得初步成果,其试用版已面市,主要用于数据库、管理信息系统等课程的教学。为方便教学应用,力图操作简单。基本操作如下:首先在服务器方建立数据库(基于Windows系统中可用的各种数据库,例如Oracle、SQL Server、Access),再建立应用系统所需要的数据表。在客户机端建立局域网联系,建立ODBC数据源。拷贝部件库最小系统之后,进入其文件夹,双击执行“环境设置.exe”,修改系统封面有关参数,例如封面标题、开发单位名称、设计人名、封面画文件名、数据源名,选择数据库系统名称,可选的有Oracle、SQL Server、Access(不同数据库在连接时有微小区别,如果选Oracle,将继续要求输入连接口令(在安装系统时设定)与用户标识(建议为system)。如果安装SQL Server时选择Windows验证模式,选择SQL Server与Access将没有区别,效果相同,可以不加区别。估计对于在Windows环境中能建立ODBC数据源的数据库都可以使用本系统,选数据库时选SQL Server就可以了)。
    之后就可以设置参数完成建立应用系统的操作。双击“最小系统.EXE”,选“开发工具”中的“部件驱动菜单生成”。在显示的界面左上文本框中输入:第一级菜单标签,例如“材料信息维护”,之后按“建第一级节点”按钮,将看到在目录树中建立了一个根节点。用同样方法建立其他第一级节点。
    继续在左上文本框中输入第二级节点标签,例如“添加”,再用鼠标点第一级节点的标签,例如点“材料信息维护”,将发现在第一级节点下生成了第二级节点。同样方法建其他二级节点。
    以下再对各有关节点设置参数,方法是用鼠标点击各个第二级标签名,对每一个预定节点,在右边列表中选择输入有关参数,例如,选中“添加”节点后,点选欲使用与运行的部件名称,例如输入“数据维护部件5”,再在数据表名称中输入远程数据表名称,例如S1,(以上是必须有的选项,其他参数则根据设计者需要输入或选定。例如可在字典表名称中输入用于中英标签名称变换用的字典表的名称(在系统运行前,需要利用系统提供的“最小系统.EXE”程序建立存在于VFP中的字典表并且在“接口参数表1”中登记(详见《数据库原理与技术》或《管理信息系统及其开发》)(使适应异构数据处理的问题)。当然,如果建立数据表使用中文定义字段名,不存在数据结构异构问题,关于字典表的如上操作都不需要)。同样可以对其它节点设置参数。
    按照概要设计结果建立了系统的模块结构且如上对有关节点定义了参数之后,系统就初步建立了。
    双击“项目.EXE”将可运行搭建起来的水平下拉菜单形式控制的应用系统。
    也可以双击“项目3.EXE”,运行搭建起来的目录树菜单形式控制的应用系统。
    所有操作不需要进入VFP,不编也不修改任何代码,不需要做编译操作,系统便已建立,可以投入运行。平时可以运行最小系统.EXE,随需要进行操作。(详见《数据库原理与技术》或《管理信息系统及其开发》)。
    熟练之后,可以进行其他参数的设置,使实现不同界面,提供不同功能与性能。(详见《数据库原理与技术》或《管理信息系统及其开发》)。
系统提供多种文本框结构(单记录)数据维护部件、带组合框式数据维护部件、表格式数据维护部件、一对多数据维护部件、等值查询与任意查询部件、导入导出部件、报表格式生成部件、常见数据处理部件、图形分析部件、关系操作部件、多重索引与排序部件、转Excel与转HTML部件等,使用方法详见《数据库原理与技术》或《管理信息系统及其开发》有关内容。。
    如果应用需求改变,例如数据表字段增加或减少、字段名改变,可以不对系统做任何改变,系统能自动适应。即使数据表增加或减少、应用扩大或增减、数据处理方法改变、处理界面变换等,也都可以只通过修改参数设置来实现,系统建设与系统维护的难度与工作量都极大减少,使用数据库的门槛大大降低,对于计算机应用的进一步扩展将具有意义。由于在部件设计中考虑了界面的变化、功能的搭配与改变、代码应用、数据完整性与安全性、数据共享等问题,加上数据库自身提供的功能,相当于为数据提供了双保险,其应用价值显而易见。
    3. 结束语
我们目前研制的VFP部件库最小系统网络版主要用于教学。在管理信息系统或数据库课程教学中,学生可以轻而易举地构建应用系统,观察自己各种设计的最终应用效果,观察一些最基本理论与概念的真正内容与在应用中的表现,使得理论不再抽象,可以促进教学效果的提高,具有明显意义。
    另外,这些部件的设计成功也证明:应用系统中由对象与基本构件组成的能独立完成一项工作的具有自适应与即插即用特性的通用程序模块是可以设计出来的,只要我们在设计应用系统实际程序时,注意扩大其应用范围,注意多功能的组合与分布,完全可以类似于硬件生产,设计出大量应用时无需修改的部件,软件生产的面貌将大大改观。
    当前需要加强的工作:(1)总结通用部件的形式化表示方法。(2)研究基于通用部件的系统建模内容及与实现相关的语义表示方法。(3)研究通用部件与管理信息系统程序代码自动生成的关键问题及解决办法。(4)总结部件的结构、功能、性能与界面特点,制定部件的规范与标准。(5)进一步总结各类应用系统的程序模块,分析其功能、性能与界面特点,设计出更多通用软部件,建设面向社会的能满足实际应用需要的通用软部件库。目前的部件在解决并发操作与保证数据一致性方面还存在不足,速度不够快,需要进一步研究解决。
    软件生产应当以硬件发展为借鉴。目前,物资生产分有许多行业,例如机器制造行业(其中更分出汽车等制造行业)、建筑行业、纺织行业、化工行业……等,每个行业存在从低到高的分工与产业链,例如有部件、零件生产厂,有粗加工原料厂,有中间产品生产厂,有组装或深加工生产厂,有维修、服务、销售等行业。软件生产应当有相类似的分工,不过会细得多,使用局限性会比较大。需要进一步考虑硬件生产的组合,联系到软件生产中来。通用软部件的通用只能是对某一大领域或行业而言,我们前述“部件”实际通用于管理系统这一大领域或是一个潜在行业,其他还例如数字媒体、计算机控制(包括自动化)、网络通信等都应当考虑通用软部件设计的可能性,需要考虑软件生产改观的问题。我们以上的研究只是刚刚起步,衷心希望能有更多专家投入该项研究,共同促使软件生产工业化时代到来。

 



https://blog.sciencenet.cn/blog-2551-230140.html

上一篇:《数据库原理与技术(第二版)》目录
下一篇:就部件技术一些问题答redsms
收藏 IP: .*| 热度|

0

发表评论 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-8 08:34

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部