关于计算机软件复用探讨
[论文关键词]软件复用 范式抽象 智能学习 范式库
[论文摘 要]计算机软件作为一门学科得到了迅速发展,相关技术和方法层出不穷,研究领域不断深入和发展,计算机的应用范围也得到了很大程度的普及,人们对软件系统的需求急剧上升,随之而来的软件规模越来越大,开发费用越来越高,开发的质量和效率不断降低的问题日益严重,如何解决这些日益复杂的矛盾,满足高质量、高效率地开发各种各样日趋复杂、大型的软件系统的需求,消除所谓的“软件危机”,成为计算机软件学科所面临的重要课题。
软件复用技术的提出成为消除这种危机的一种解决方案。近年来,特别是20世纪90年代以后,面向对象方法和技术成为主流的软件开发技术,使得软件复用被视为解决软件危机一条现实可行的途径。与此同时,模型构件技术、分布式系统、领域工程、自动生成技术又为软件复用注入了新的活力,本文对面向对象系统分析阶段软件复用模型进行了研究和探讨。
一、软件复用
软件复用的概念是在1968年nato软件工程会议上被第一次引入的,在其后的几十年中,进行了许多复用技术的研究和实践活动,但因技术和非技术方面的种种因素,造成复用技术在整体上对软件产业的影响不尽人意。面向对象方法和技术的出现及成熟,为软件复用提供了强有力的技术支持,尤其是软件构件技术的发展为其注入了新的活力,使得软件复用研究重新成为热点,被视为解决软件危机、提高软件生产效率和质量的一个现实可行的途径,同时也成为了避免软件开发中重复劳动的解决方案,并在一定程度上降低了软件开发的费用。目前,软件复用技术主要从两个方面来考虑:产品复用、过程复用。
产品复用:所谓产品复用是指复用已有的软件产品。目前基于构件的和面向服务的软件开发模式就是建立在这种软件复用的基础上的。这两种开发模式主要通过对现有的构件和服务进行合成或集成,从而生成所需要软件的过程。产品的复用是目前软件复用技术研究的焦点,在这个复用的过程中涉及到的关键技术是构件技术和软件架构技术,在成熟的构件和架构的技术上,可以使产品复用达到良好的效果。
二、面向对象系统分析(ooa)阶段软件复用模型
阶段可重用性的本质
编程阶段不同类型的编程软件和类有不同深度的可重用性:高深度、中深度、低深度。
所谓高深度重用是指在不进行任何改变就可以直接使用重用产品的重用,像可视化开发工具中的所有控件,就属于这方面的重用;目前,面向服务的软件开发技术中对服务的重用,只要程序员获得服务者提供的接口,就可以直接使用别人开发的产品,这种复用也是高深度的复用技术,因此高深度的软件复用,可重用性最好;所谓中深度的重用,程序员可以根据自己的开发经验,开发出一些比较通用的组件,在具体的使用中,对这些通用的组件只要稍作修改就可以应用于具体的项目中去,这种复用可重用性较好。当然,对于低深度的可重用性就于具体的项目相关,它只能局限于该项目,可重用性最差。由此可见,可重用性与业务逻辑的相关性是成反比例关系的:越是与业务逻辑无关的重用,重用性越好;反之则越差。
阶段软件复用模型研究
ooa阶段的软件复用,在一定程度上可以说是建立在许多优秀的系统分析员实践和经验基础之上的复用,是一种思想上的复用。在这个阶段的软件复用更具有通用性和重用性,因此,构造这个阶段的软件复用模型,可以使复用达到更好地效果。
3.范式抽象
所谓范式就是抽象的解决方案模板,它可在不同具体项目中使用。范式抽象就是在此基础上提出的对范式的设计方法。针对不同的问题域,就应该有与之对应的设计方法,这样可以使范式的设计达到很高的重用性。针对ooa阶段具体现状,有三种范式抽象方法:
(1)关系抽象
在ooa阶段,针对具体的项目,会分析出大量的关系模型。例如在学校排课表系统中,需要定义教师类,它包括教师姓名、性别、职称等有关教师的基本信息,同时,为了便于教师很快得出自己的上课表,还需要定义一个与教师对应的教师课表类,这个类显示了一周中教师的课程安排情况;在网上购物系统中,需要定义一个购物者类,包括了购物者的相关信息,同时为了得到购物者所购的物品,还需定义一个购物车类,该类描述了购物者与所购买的物品的对应关系。这两个系统的具体业务是不同的,但教师类与教师课表类、购物者类与购物车类的关系却是基本相同的,都是一个实体对另一个实体的拥有关系,同样,所进行的操作也基本相同,诸如都涉及到对所拥有实体的查询操作等。因此可将这种关系抽象出来,定义为拥有关系,然后在此关系的基础上定义相应的操作。这种关系就可以以范式的形式保存起来,在不同的项目中都可重用这种范式。同样,还可抽象出许多其他的关系范式,如实体——内容关系,上下级关系等。这些关系都是不依赖于具体的项目和业务的,可重复使用,只是在针对具体的业务时,在相关属性和方法上稍作修改就可以了。
(2)相似对象抽象
在不同项目的ooa阶段,还会分析出大量的相似对象或类,例如用户、用户组、角色、权限等在所有涉及到权限管理的系统中都会出现这类对象;在一些相同领域的项目中,由于涉及的领域的标准化,有些对象的相似性以及相同的机率会更大。对于这些相似程度如此大的对象来说,由于其在项目开发中的相对独立性,把这些对象模型以范式的形式保存起来会使分析的结果得到更大的重用。
按照上述思想进行的范式抽象称为相似对象抽象,这种抽象依据的是分析阶段的对象模型,这种对象模型具有独立的、高度的相似性,抽象出来的范式可称为对象范式。这种范式与具体项目之间的相似可称为表面相似性。表面相似越接近,范式的重用性就越大。
(3)领域抽象
所谓领域抽象是用于某一领域的抽象问题的解决方案。在同一个领域的项目开发过程中往往能够总结出更多的相似性,包括关系相似性和表面相似性,将二者相结合,可构建出与行业有关的构件。这种构件是建立在具体领域上的一种抽象,称为领域抽象。领域抽象的过程可借助领域工程的知识和方法。其中在ooa阶段主要用到了领域分析的方法。所谓领域分析是被称为领域工程更大的学科中的第一项技术活动。当业务、系统或产品域被定义为长期的业务策略,则可以展开持续的创建强健的可复用库的工作,其目标是能够在领域中以非常高的可复用构件率来创建软件。领域分析在领域抽象过程的作用是从ooa得出的对象、关系、行为模型的抽象出与领域相关的领域范式,其中包括关系范式、相似对象范式和处理过程范式等。这些范式与前面提到的范式唯一不同就是有了特定领域的标识,这在同一领域的开发中将达到高度的重用性。
三、总结
本文通过对软件复用技术的分析,提出了一种面向对象系统分析阶段软件复用的模型,并对此模型中所涉及到范式抽象方法做了探讨,并把它们应用于具体的项目中去,从而很好地利用的设计思想,大大提高了项目的完成速度。另外,对于范式库的研究也为建立在高层上的软件复用库管理提出了新的研究课题:例如对于编码阶段复用构件库的检索条件也可以扩展为以范式为索引的检索等。这些都成为下一步的研究课题。
[参考文献]
[1]roger s•pressman著,黄柏素、梅宏译:《软件工程实践者的研究方法》,机械工业出版社1999年版。
[2]黄靖、赵海光:《软件复用,软件合成与软件集成》,《计算机应用研究》2004年。
[3]王丽娟:《软件复用技术及其在软件开发中的应用》,《中山大学学报论坛》2004年第24卷第1期。
[4]段小君、高金环:《软件复用与面向对象技术》,《西安邮电学院学报》2004年第9卷第2期。
[5]许天兵:《一种面向对象的软件复用框架》,《微型电脑应用》2001年第17卷第10期。
上一篇:交叉学科及其双语教学的实践和探讨
下一篇:浅谈基于主机的COBOL教学实验