浅谈软件架构复用技术及存在的问题
2016-03-14苏州高等职业技术学校李志伟
苏州高等职业技术学校 李志伟
浅谈软件架构复用技术及存在的问题
苏州高等职业技术学校李志伟
【摘要】如何快速开发出高质量的软件一直是人们关注、研究的热点问题。软件架构中的复用技术对解决这一问题大有帮助。本文简要介绍软件架构技术发展的前沿背景,并对实现复用技术的关键技术加以分析叙述,给出了软件复用存在的问题。最后对软件复用技术加以总结和展望。
【关键词】软件架构;复用技术
1 前沿背景
计算机技术的快速发展,使得人们对计算机软件的要求越来越高。如何最大程度上提高软件的开发和使用效率一直是人们关注的热点。但复杂度较高的软件开发周期较长,开发过程中面临各种各样错误,加大的开发人员的工作量。尽管面向过程的开发方法能够在一定程度上提高软件开发的技术水平。但分布式技术的依赖程度越高,处理的数据量也就越大。加上软件规模和软件产业的增加,各行业的软件技术没有统一标准规范。假如每个新开发的项目都从零开始实施,那么开发的过程中大量重复的劳动力就会出现,浪费人力、财力和物力。随后出现的软件复用技术,能够解决项目开发效率低、质量不达标等问题。它是在已经有的开发经验和成果基础之上,减小或消除软件开发过程中的重复性劳动,加上这一技术能够适应日益成熟的面向对象技术,软件复用技术是当前软件开发必须要考虑的技术。软件复用的思想对于提高软件开发质量和效率有重大意义。而后这一技术被广泛运用于计算机行业,具有划时代的意义。
2 软件复用技术
软件架构复用就是在软件的架构层设计中套用现有的优势架构。软件架构复用具有一定的积累功能,可基于特定的软件开发工具或平台,也可以基于电子商务、电子政务等特定应用领域。软件复用的基础或零件部分来源于:将不同系统中相似的功能和特征总结出来,形成再可使用的资源。这些资源在使用过程中可被划分为若干部分。如:选取、抽象、实例化、集成等。
实现软件复用的主要因素有:软件架构、软件构件技术、软件工程、领域工程、软件过程、CASE技术、开放系统和非技术因素。以下简要介绍4个因素。
(1)软件架构。
软件架构是软件主体模块之间的逻辑关系总和。它包括一个程序/系统各部件的结构,描述的对象是直接构成系统的抽象组件。各个组件之间的连接则明确和相对细致地描述组件之间的通讯。在实现阶段,这些抽象组件被细化为实际的组件,组件之间的连接通常用接口来实现。
软件架构有许多模型,通常采用的是视图模型,它可以从多个角度描述一个复杂的软件系统。最流行的视图模型是4+1视图模型,包括:用例视图、结构视图、行为视图、实现视图和部署视图五个视图。
(2)构件技术。
构件技术是指通过组装一系列可复用的软件构件来构造软件系统的软件技术。构建是指可以被重复使用的标准化的功能单元。通常包括的基本特征有:可用性、有用性、质量和可移植性。如今的构件不仅包括源代码构件、测试计划、软件架构等内容,还包括其他对开发活动有用的信息等。
(3)软件再工程。
软件再工程是对调查的对象系统进行重构的开发过程。它以软件工程方法学为指导,对程序重新设计、编码和测试,使用逆向或再工程工具理解原有设计。软件再工程是对已有系统中构件级的优化,其特点是最大限度地重用原有系统的资源。在再工程的各个阶段中,前期要加深对代码的理解,软件的可重用程度决定了再工程的工作量。
(4)领域工程。
领域工程是指开发相同或相似的领域系统。开发过程可分为三个阶段:一是领域分析阶段:该阶段是要提取领域模型。领域模型能够描述领域中的共同需求。其主要内容包括领域边界,系统需求和识别信息源,共享功能,不变与可变的需求功能。二是领域设计阶段:该阶段是要对领域构架进行分析。领域构架是要先通过对领域内的业务流程进行分析、构建出模型,再抽象出领域的构架。由于各领域的流程不同,故而得到的模型、构架也是不相同的。三是领域实现阶段:即使用构件将领域需求分析得出的构架填充起来,以期完成总的领域工程的过程。
3 软件复用存在的问题
软件复用技术能够提软件的开发效率、降低开发成本,它是解决软件危机问题的有效途径。但是,在大型软件的开发过程中,使用复用思想开发的却很少,原因有很多。如:(1)在开发软件构件时,过分强调了软件复用,很可能使得产品满足不了所有用户的需求。(2)开发人员、管理人员缺乏软件复用的观念和意识。(3)对构件的开发粒度大小把握不好,粒度大的构件应用范围小,小粒度的构件功能简单,应用范围广,但会降低或失去构件复用的价值。4.构件达到一定数量后,如何选择合适的构件是个问题。另外,软件复用存在的问题还有:可供复用的资源太少;可复用资源的功能必须通用;可复用资源的使用方法必须清楚。
4 结束语及展望
本文介绍了软件架构、软件复用的前沿背景,后对实现软件复用的几种要素加以分析说明。分别介绍了软件架构、构建技术、软件再工程、领域工程等因素。最后分析了软件复用技术面临的几个问题。使用软件复用技术开发软件将是势之所趋,在提高软件开发质量和降低成本上功不可没,良好的复用思想加上对问题的如实把握将是解决问题的关键。伴随着因特网与科技的发展进步,软件复用技术必将成为开发工程师关注和使用的最关键技术。