重视软部件技术研究,促软件分工生产时代到来 - 科学网

上传人:mg****2 文档编号:122108063 上传时间:2020-03-01 格式:DOC 页数:18 大小:452.50KB
返回 下载 相关 举报
重视软部件技术研究,促软件分工生产时代到来 - 科学网_第1页
第1页 / 共18页
重视软部件技术研究,促软件分工生产时代到来 - 科学网_第2页
第2页 / 共18页
重视软部件技术研究,促软件分工生产时代到来 - 科学网_第3页
第3页 / 共18页
重视软部件技术研究,促软件分工生产时代到来 - 科学网_第4页
第4页 / 共18页
重视软部件技术研究,促软件分工生产时代到来 - 科学网_第5页
第5页 / 共18页
点击查看更多>>
资源描述

《重视软部件技术研究,促软件分工生产时代到来 - 科学网》由会员分享,可在线阅读,更多相关《重视软部件技术研究,促软件分工生产时代到来 - 科学网(18页珍藏版)》请在金锄头文库上搜索。

1、.加强对软部件技术的研究,促软件工业化生产时代到来程学先 程传慧 程传庆2007年6月16日于第四届软件工程大会一、通用软部件的研究与生产是实现软件工业化生产的关键软件工程的目标是软件生产工业化,希望如同生产机器或盖房子一样实现生产的分工:有的生产厂专门生产机器的零件、部件,另一些厂则负责安装、测试与装修,大多数生产人员的工作是利用规范化与标准化的零、部件组装生产产品(应用系统)。长期以来,人们在软件工程过程及软件工程过程管理方面进行了深入的研究,在软件开发技术上不断取得进展;但相对而言,我们在软件生产社会化、软件生产分工方面的研究比较落后。 软件生产工业化的目标一直未能实现,主要原因是缺少标

2、准化的通用软部件。二、软部件与通用软部件的定义通用软部件是具有复用性的代码类软件,相对构件(包括领域构件)及其它软件复用产品而言具有许多特殊的特性,有必要专门进行定义与区分。软部件是经封装的、面向业务工作而不是简单单一功能的系统顶级模块(如图1所示);部件之间不存在直接联系、不要求彼此间的协作、包括了全局性界面设计的内容、直接依据接口参数调用、不存在动态接口。通用软部件是可以通用于不同应用系统,能适应于不同数据库系统与不同数据表结构的软部件,在应用于现场时可以如同硬件生产一样即插即用或经简单裁剪后插入使用;它采用从上而下设计方法,是规范化、标准化的代码类软件。具体而言,软部件有如下主要特征:1

3、、是事务级的独立模块。软部件是一个应用程序的封装体,具有独立的功能与性能。它是以复用为目的而设计的以提供某一业务服务为目标、包含为完成一项事务所需要的多项功能的独立的应用程序,各功能互为补充使满足用户对界面的需要。由于它包含了为完成一件工作所需要的全部功能,具有特定性能集,接口简单、具有即插即用能力、对环境有较高适应性,具有很好的独立性。有些软部件具有自动生成界面的能力,是完整的,成熟的,模块级的程序软件。软部件在设计过程中处理了安全性、数据完整性、事务性、代码应用、派生数据处理、工作流控制等实际应用程序普遍需要解决的问题,包括了全局性界面设计的内容,不存在动态接口、直接依据接口参数调用。因此

4、以它们为基本成分构建系统时,只需要按功能、性能、界面的要求选择部件,再提供必要的接口参数,就能像搭积木一样构建应用系统,不要求有部件之间的联系、不要求彼此间的协作。它就好像工程中的予制件,使用简单方便,具有高度一致性、高度系统开放性与高可靠性,它使软件开发人员的分析与设计工作更加具体化、模型化,降低分析与开发费用;使系统可维护性、可靠性、可扩展性、适应性都极大增强;是人们所企图2 构件与通用软部件的区分望的软件复用技术的高端产品。2、采用从上而下设计方法,内部粒度大。关于通用软件部件的设计与一般管理信息系统设计或构件设计不相同,不是基于对一个、二个具体的管理信息系统的设计,而是以一个抽象的、非

5、特定的管理信息系统为目标,对之进行需求分析,研究一般性的管理信息系统是如何构成的,一般有一些什么样的模块。它们需要那些功能、那些性能、具有什么样的界面特征、在使用时有什么样的表现,在此基础上展开设计。具体设计时又常常基于对语言分类、工作事务分类,再考虑功能、性能与界面各种需求经分类与归纳后设计(具体分类方法见文章下面的说明)。在设计时主要考虑的是基于某个具体语言所可能提供的操作、所能提供的构件,经排列组合,分析每一组合看在实际应用系统中是否需要,从而得到设计需求,再最后设计而成。在进行按功能、性能与界面分类时不排除从实际系统模块的设计中得到启示,但这不影响总的从上而下设计的思想。 3、在应用于

6、现场时只做减法,不做加法。在盖房时使用的建筑用砖经常需要截成不同尺寸、不同形状的小块再砌到墙上。其他机器或建筑的部件也都如此,我们不可能根据每一种实际产品需要的所有零、部件的大小与形状去设计部件产品,只能设计出少数几种规范化、标准化的产品供现场使用;具体机器或建筑的设计常常要考虑部件库的内容,要基于标准件设计,而不是各行其是地进行设计;只在特殊情况下设计一些非标准件或外加工件用于特殊的机器与建筑。关于软部件的设计也需要这样,我们只能在功能与性能集成的基础上设计出数量不是太多的规范化的标准部件,才能使方便选用并使系统设计规范化。在构建系统时部件可以直接用于组建,也可以对部件进行裁剪、去掉不需要的

7、功能或成分、进行必要的修饰后再用来组建系统。 以上三点是与构件设计的分水岭,构件通常为实现某一具体的功能而设计,粒度较小,在使用时常常需要再和其他构件、对象再拼装或对程序进行修改之后再使用,常常要求提供框架之类程序使之可以获得支撑,在系统中一个构件往往需要得到其他构件的协作与支持才能共同为完成一件事务而工作。构件与通用软部件的区分如图2所示。三、关于软件复用产品分类的分析软件复用指同一软件组织可以不作修改或稍加改动就可在其他地方使用,包括代码重用、设计文档重用、分析结果重用。现代软件复用的代码类产品有类、构件、中间件、框架、领域构件、通用软部件、开发平台等。类是包括属性、方法、消息等可供复用的

8、封装体,是面向对象设计中的基本单元,软件中的功能模块大都通过类实现。它在一定程度上减轻了软件开发的工作量,但是是较低级别的复用,不能数量级地缩短软件开发周期。代码类构件是由类组成,能完成某种具体功能、具有清晰接口的软件,通常一个构件可以容易地插入到模块程序中,和其他构件合并或组合后提供服务。代表性产品有OLE/COM、JavaBeans、OMA/CORBA、Agent、分布式对象中间件、OpenDoc、北大青鸟软件生产线系统(青鸟III型系统)、上海构件库内构件等。通常情况下,单个构件只有跟别的构件协同工作才能产生实用的功效,构件除了自身形状外不考虑全局的界面布置问题,一般都不能以即插即用方式

9、组建系统。中间件是一种独立的系统软件或服务程序,分布式软件借助这种软件在不同硬件、软件平台之间共享资源。中间件位于客户机、服务器的操作系统之上,管理计算资源和网络通信,因此,中间件是实现互连并实现不同系统互操作的一类软件。框架有系统框架与程序框架之分,前者为工具包、类库、可复用API的集合,是通用的、有一般性的系统主体部分,例如Struts+Spring+Hibernate、JSF+Hibernate+Spring、微软的.net等,它们提供了很多可复用的单元,利用API作为调用程序的接口。但它实际是开发平台,只限于代码级开发,能使开发更迅速,更方便。程序框架是一个应用程序的半成品,它提供了可

10、在应用程序之间共享的可复用的公共结构。开发者将框架融入自己的应用程序,以满足其特定的需要。框架和工具包的不同点在于它是成熟的程序代码、具有一致的明确的结构与固定的使用方法。许多框架配有生成器工具,具有高可定制性。它为构件提供重用的环境,规定应用的体系结构、其内部构件与类的类型、相互依赖关系及控制流程,定义了互相之间交互模式、控制流模式,设计时考虑了功能与性能的集合。通常缺少的只是界面(输入、输出)的具体设计。但它毕竟是半成品,没有封装,不能直接用来组装应用系统。领域构件是基于某一领域设计的通用的可供复用的程序模块,是从同一个领域的软件中取功能、性能相似的程序模块经过规范化后形成的软件产品,是构

11、成应用系统的顶级模块,能直接完成一项具体的业务工作,接口简单,有很强模块独立性,可以即插即用,在该领域内可以较普遍地使用。但是,它的设计过程是归纳的结果,是至下而上设计出来的,不能用于不同领域的软件设计,适应性较差。目前许多公司设计了自己的软件开发平台,例如:北大青鸟软件开发平台青鸟III型系统(JB3),上海华丹公司开发的CHARISMA平台、天纵企业管理开发平台、IBM Rational软件开发平台、易构(RichWeb)快速开发平台、 将心.net开发平台、Eclipse 平台等。它们有的支持系统的代码生成,许多还支持从软件分析到设计的全过程。它设计了嵌入构件的框架,通过各种引擎收取设计

12、人员关于数据结构、界面、处理、安全和其他方面的要求,迅速定制符合业务要求的应用系统4。它降低了开发难度、提高软件复用程度,使设计走向规范化与标准化,为软件生产提供完美的生产环境并快速构建应用系统,已成为许多公司的软件生产工具。从以上分析可见,软部件具有特殊的特性,在许多方面与构件的概念相似。实际上,在以往研究中,人们一般也不对之进行区分。但是软部件与构件是不同的概念,对实现软件生产工业化的作用更是大不相同,目前,我们要促进软件生产工业化时代的到来,尤其有必要对它们进行区分,并加强关于软部件尤其是通用软部件技术的研究,努力促进软部件技术的发展。 四、典型通用软部件设计介绍为更清楚地说明通用软部件

13、的概念,我们以二个我们以设计成功的程序为例加以说明。图3是一个数据维护部件的界面,其集成的功能包括:数据录入、修改、删除、等值查询与任意查询、多重索引、排序、转Excel、按打印格式打印(包括按默认表格格式打印)、转表格式界面、批修改、清屏等功能。这些功能利用不同按钮向用户提供,按钮中方法程序已经设计完毕并封装在部件中,不需要的按钮可以随意删除。可以根据需要选留字段与按钮构成不同视图的界面并提供不同服务。例如,可以选择插入按钮、清屏按钮、浏览按钮等形成数据录入模块。也可以选留移动指针的全部按钮、查询的各个按钮、索引按钮、修改存盘按钮,再选留需要的字段(例如选关键字及待修改数据的字段)构成数据修

14、改模块等等。该部件使用简单方便,只需要在调用时定义“表名”、“留下字段号”、“留下按钮号”、“关键字”、“接口参数表”、 “打印文件名称”就可以用到任何应用系统中。该部件具有实体完整性、参照完整性控制能力。可以使用代码表、利用组合框从代码表或历史数据选择录入数据。可以定义数据域范围,实现数据域完整性控制。可以定义派生数据计算公式,在录入过程中自动计算并填入到派生字段的控件中。可以提供文本、图形等录入控件。可以在接口参数表中定义不同人员或角色的权限与视图,确保数据使用安全。这些功能均通过填写统一格式的“接口参数表”实现。界面生成有三种方式:、在代码调入运行前自动生成。部件提供排版功能,根据应用的

15、要求将所需要控件安置在界面上。这种方式使程序具有强自适应性,只要数据表名不变、所留字段在表中所排顺序不变,将来无论数据结构如何变化都不要求修改程序,不需要重新编译。即使表与字段情况有大的变化,也只需要修改接口参数就能适应。这种方式的缺点是界面单一,缺少变化。、利用生成器生成,之后可以手工修改。我们利用VFP设计界面生成器,运用上面提到的排版功能自动建立初始界面,再在可视化环境下让用户手工修改界面:改变控件大小与位置、添加其它修饰用控件、改变修饰用图片与改变颜色等。、让用户手工布置界面:提供特别设计的工具条,让用户利用工具条选择控件并布置界面,记录用户操作过程,存入到数据表中。在静态建立界面之后

16、,利用所设计的界面测试与分析工具,分析并记录用户界面中控件及其分布情况,形成数据文件,再提供给基于某具体编程语言的部件使用(例如给基于JAVA的部件使用)。该部件可以在一个系统中为不同应用需要而调用。在调用时的名字可以任意改变,例如叫:人员调入、工资基本数据输入、人员部门间调动、上级领导批准、(工资管理中)输入考勤数据、人员调出等,其中第一、二项是构成录入程序供调用;最后一项是构成删除程序供调用;其他是构成修改程序供调用。从上面描述可以看出,通用部件结构如图4所示,包括界面定义、数据表现、功能处理、输入与输出等成分。其中数据处理与输入、输出有关程序均预先设计并封装在部件中。该设计过程特别强调界面设计及界面设计对系统设计的影响。要求研究各类系统部件的界面特征、功能与性能要求,抽象出共性的东西作为模块的构架,再研究通用部件所需要的接口参数与数据文件配置方法,完成总体设计。在

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号