1设计构件的评价标准
要求构件的可复用性高,就需要按照抽象、逐步求精、功能独立、机构化程序设计与隐蔽信息等原则进行设计构件,同时也应满足以下五大标准。⑴抽象程度高构件在开发软件过程中可复用的难易程度就是构件的可复用程度,构件的可复用度与构件的通用化成正比关系,越是通用化则可复用性越高,反之亦然。所以应尽可能避免构件泛化,让构件可以在待开发的软件中被复用,以此提高可复用度。⑵通用性与可变性较高可复用的构件通常需要被实例化,也就是经过一定的修改,才可用于实际的开发项目中。可复用构件的价值高,就说明构件的通用性和可变性要求高。为此,设计构件时,可标识变化点在需要变化的位置(可一个或多个)上,并在标识点上附加变体(一个或多个),用来指明抽象构件。当复用该构件时,为了抽象构件的实例化,可根据不同的应用创设不一样的变体,以满足特定应用的需求。继承、扩展与参数化模块等典型的可变性机制可实现上述构件的可变性。⑶可靠性高构件的可靠性包括容错性、成熟性与可恢复性,指的是构件在特定环境下与规定时间内,不致使开发失效的程度。构件易使用性的增强,可使构件的可靠性得以提高,就能方便开发人员在构件库中挑选出并应用所需构件,构件被复用概率相应提高,进而增强构件的易学性、易理解性与易操作性。⑷构件间的设计应组装容易构件库中的构件是不同人开发出来的,构件的实现语言和运行环境也就“因人而异”。所以要从中抽取出合适的构件经实例化后进行装配,应用于开发的软件或应用系统上。组装构件包括异构构件的组装(异质软硬件平台的构件之间的组装)与同构构件的组装(同质软硬平台的构件之间的组装)。构件组装的难易程度关系到软件的复用性。构件间具有松散的偶合度与方便组装的机制,可使构件易于组装。
2开发的基本思想
构件技术在“数据+算法结构”基础上的提升,是一种应用级别的集成技术。构件的基本思想考虑更多的是对象个体在应用领域软件开发过程中的作用,也就是说是分解应用软件将其变成独立的一个个单元,再将不同的软件构件对象进行组接,最后完成软件集成。
3分析软件系统与设计蓝图
进行系统分析,对构件软件系统十分必要,这符合人类认识事物的规律。基于构件程序开发的系统分析应遵守以下几点原则:①封装。即是将构件的属性、接口、实现组合成一个整体系统单位,并对构件内部的实现细节进行尽可能的隐藏。②继承。在CBD系统分析中遵循继承原则,就是将在一般--特殊结构中的所有构件实例具有的接口、属性与实现,在一般类中进行一次性的显示定义。③抽象。就是将复杂的、个别的、非本质的事物特征舍弃,对系统目标的本质特征、共同特征予以抽取,CBD就是如此得到它当中的类的。系统分析完后,就是设计蓝图。设计过程中应对需要的构建定义好,并对整个复杂的系统进行分解,可分解成一级子模块,二级子模块,如此类推。
4开发方法
较之以往的开发方法(基于对象的技术,是以细粒度的“软件片”开始设计的),基于构件的软件系统的开发基于软件重用,面向的是接口与连接。以构件为核心是其特征,构件准备与收集工作在系统需求分析阶段就可同时进行,开发并行程度增加,某种程度而言这就提高了软件开发的效率。软件系统的开发主要包括构件的开发与应用程序的开发两部分内容。以下是基于构件的软件系统开发方法的示意图(图1)。
5开发过程
5.1软件系统的生存周期
构件软件工程的生存周期较之传统软件工程的,更加简单,主要有六个阶段,具体为:系统分析、设计蓝图、准备与生产构件、构件集成、构件测试及构件的使用与维护。
5.2需求分析与构件选择
在需求分析阶段,对象领域之中的共性需求、共性结构、共性特征以及特有需求、可变特征等都要进行分析与归纳,但不必要也无法做到面面俱到,此后还可针对以后的行为分析进行不断调整,将之优化与具体化。此阶段除分析以外,还要评价构件,也就是选择构件。根据需求分析的结果,通常可以从网络上现有的构件库或者构件市场(商业性软件机构)查找符合标准的构件,了解构件的功能与特性(可靠性、可预测性),同时了解构件的市场份额以及构件市场的业绩情况,方便评价构件与挑选构件。
5.3架构设计
系统的架构设计对基于构件的软件系统至关重要,它可保证系统的运转能够正常有效地进行。架构的设计就是对基于构件的软件系统进行评估,选择与建设的过程。其目标根据用户的需求,规范系统,选用恰当的架构设计模式,明确系统的各项实施细节(程序语言、实施平台等)。从具体实践情况来看,基于构件的软件系统架构属于分层模块结构,包括应用层与构件层两大部分。
5.4系统的集成与测试
系统的集成就是将构件按照系统构架进行组装装配成模块(打成包),过程中通常只要编写基本代码即可,构件之间可相互调用。该过程结束后,可得到系统雏形与系统维护所要的系统文档。系统测试就是检测系统是否满足设计要求以及对系统运行过程中的漏洞进行修改的过程,其最终目标是按照系统需求确定构件集成的终极系统。系统测试分为稳定性测试与功能测试,方法有集成测试,系统测试与单元测试等,测试中要选择合适的测试方法。若要重新开发或扩展构件,需经过构件应用工具的测试,以保证构件功能的实现与接口的规范。
6结束语
软件构件技术的发展,提高了软件构件的可复用性。基于构件的软件开发是复用软件本领域的最有效方法,可以减轻传统软件开发的复杂性,提高软件开发的效率与一致性,同时开发出来的软件质量较高,发布时间缩短,还可对软件开发项目的进度进行监控,节省了软件维护的费用。软件复用将会促使产业变革,为软件市场带来更多的商业契机。虽然构件的组装与构架技术、分析设计构件的描述与构架库部署等问题,有可能会随着构件应用的发展而层出不穷,但我们相信,不断发展的技术将会为构件技术在软件开发上的应用提供条件,未来软件工业化的趋势是软件构件化。
作者:马鸣 单位:南阳理工学院软件学院