论文部分内容阅读
摘 要:对于可复用软件得以正常运行的前提就是可复用软件的构件,而软件复用就是在开发新系统的过程中,对已存在的软件进行再次利用,这一软件可能是已经存在的,也可以是专门为可复用构件进行设计的。而基于可复用构件的软件开发就是将已开发的软件或是可复用的構件进行充分的利用,结合需求进行组装,使其形成软件系统的开发方式。这一技术是软件工业化生产的前提,能够将软件危机进行有效的化解。本文以软件复用、软件构件为切入点,对基于可复用构件的软件开发过程进行有效的分析,期望能够使软件工程进程得以加快。
关键词:软件复用;构件;软件开发
中图分类号:TP311.5 文献标识码:A 文章编号:1004-7344(2018)17-0312-02
基于可复用构件的软件开发,它能够将软件开发过程中的一些重复性工作进行有效的解决,它是软件复用理念在实际工作中的运用,它是是以应用系统的开发不再“从头开始”的理念为切入点的,它的基础就是当前已完成的工作,将过去的应用系统开发过程中积累下来的资源进行有效的利用,将软件体系结构作为组装目标,将可复用构件当成是组装部件,对组装式开发提供支撑。这一技术能够将已有的开发成果进行充分利用,将开发的关键围绕特有的构成部分,一方面可以使最小编码得以实现,另一方面还可以将测试、维护的工作量大大减少,将重复工作得以消除,使软件生产效率得以大大提升,使软件产品交付时间大大缩短。
1 软件复用的内涵
人类在解决问题的过程中最常用的一个方式就是可复用。在对传统产业进行分析时,其最基础的方式之一,就是标准件的生产与标准构件的生产有机结合起来,其中最关键的部分就是构件,而其最有效的手段就是复用。可以看出,这是工业化发展的必由之路,而对于软件产业来说,要也对规模经济进行发展,那么生产标准构件以及复用就是重中之重,这也是软件复用被关注的原因所在。所谓软件复用,简单地说就是重复利用,就是为了复用这一目标而软件设计的过程。所谓可复用软件,就是为了复用这一目标而对软件进行设计。软件复用的重点是复用这一目标。为了复用而实施设计,为了复用而进行开发,同时还要对这些复用产品进行有效的组织。实现软件复用的技术主要有四种:①生成技术,它只能应用在特定的领域;②继承技术,它是以白箱模型为基础的;③设计模式,这是一种抽象的高层次设计;④组装技术,这是当前软件生产中最有效的技术之一[1]。
2 软件构件的内涵
这一概念是由软件复用产生出来的,所谓构件就是在应用系统中能够被识别的内容。所用可复用构件就是功能独立、具有可复用价值的构件。构件就是可以复用的二进制代码,它的形式有很多,比如功能模块、软件框架等等。它的特点主要有六个方面:①粒度大小非常自如;②二进制标准是统一的,构件之间的语言独立;③必须利用接口来对构件进行访问;④多侧面性;⑤继承性;⑥位置透明性。构件还有四种属性:①有用性;②可用性;③质量高;④适应性;⑤可移植[2]。
构件模型将其本质属性以及接口结构等进行明确,构件模型将创建构件的原则进行提供,同时为开发者提供体系结构以及API集,那么其可以利用软件构件的组合来将应用系统进行构建。构件模型有两部分组成:①构件;②容器。其中前者就是基本软件部件,具有可复用性,后者就是用来对构件进行存放,使他们能够进行交互的。当前,理论界最知名的构件模型有两个:①3C模型;②REBOOT构件模型。当前构件模型有两部分组成:①构件接口;②构件内容。前者将外界信息向软件进行提供,比如服务、定制以及组装信息等,后者主要在复用软件实体上直接应用,其形态多样,比如源代码、二进制码以及脚本等等。
而软件构架,也就是软件体系结构,它包括的内容很多,比如控制结构、数据访问协议以及设计元素功能分配等等,它使得基于可复用构件的软件开发有着一定的组装基础。通常来说,典型的软件构架能够将构件、连接子以及约束联系在一起。软件构架包括的内容三个方面:①原理;②描述;③集成机制。值得注意的是,在基于可复用构件的软件开发过程中,为复用而开发的软件构架看成是大粒度、抽象的、高层次的软件构件。
3 基于可复用构件的软件开发分析
基于可复用构件的软件开发是一种新兴的软件开发模型,它将复用、构件技术以及分布式对象技术等有机联系在一起,将软件构架看成是组装目标,将可复用软件构件当成是组装预制块,对组装式软件复用提供支撑。
3.1 基于可复用构件的软件开发思路
它是对传统工业生产模式进行有效的借鉴,一是对用户需求进行分析,将总体结构架构进行设计,结合需求在构件库将能够完成这一需求的构件进行选取,再将应用系统进行组装,倘若能够满足需求的构件不存在,那么就得去定制或是自主开发,其具体的思路见图1。
3.2 可复用构件的开发
可复用构件的开发,一方面能与特定产品的开发并行,另一方面也能与特定产品开发相独立,倘若开发时以并行的形式,能够使用和传统软件开发一样的生命周期模型,然而在开发时还要将其打包成可复用的构件方式,倘若开发时以独立的形式进行,这一方式一般叫作领域分析,它的目的就是为特定领域进行的开始和分析,对其公共属性进行确定,实施抽象编码。对于可复用构件开发的程序有三个步骤:
(1)需求分析。作为开发人员,对最先要解决的就是新的可复用构件的定件,要对其应用领域进行确定,再结合领域知识来模型对其进行定义。同时,想要使构件能够组装,其标准必须一致。此外,构件之间的通讯以及共享的实现。最后是数据的继承。
(2)构件设计,这一过程中要对分析过程中的需求进行支持,通过合理的设计方法使软件系统各构件的可复用性得到提升,因为构件之间是独立的,可互换的,也就是不以一个系统为依托,那么就要对构件进行封装。而且设计构件的接口也是十分关键的。
(3)构件测试,要对构件的可复用性进行检验,使构件的质量得以保证,从而使整个系统的复用需求得以满足[3]。
3.3 组装应用系统
(1)构件获取、选择。其获取方式有很多:①商业采购;②合作开发;③从已有的应用系统中进行提炼;④自主开发。不管采用哪一言式,要都要对其进行严格的测试,在构件库中进行统一管理。
(2)组装。就是将构件利用接口将他们连接在一起的过程。构件组装可以看成是软件构架具体化的过程中,构件组装技术的基础有三个:①构件模型;②构架描述;③开放系统技术,其组装要以后两种系统为基础,构件实例要将系统中的其它部分的要求进行符合。
(3)系统测试。通过构件来建立应用系统,那么测试是不可缺少的一个重要内容,不然其后果是难以想象的。测试通常有三种:①单元测试,就是对单个构件进行测试;②集成测试,就是将构件形成一个子系统,对这一子系统进行测试;③系统测试,就是将子系统来形成整个系统。
(4)系统维护。基于可复用构件的软件系统因为其具有一定的特殊性,所以软件维护问题也是非常重要的。这里值得一提的是,由于不同的应用其在需求上都是不一样的,那么修改后的构件一定要能够使所有的应用都适用。
4 结 语
软件复用理念的最有效体现就是基于可复用构件的软件开发,它使得复用范围得以扩大,使软件开发向社会化方向发展,它能使软件开发周期有效的缩减,使软件开发质量得到提升,而且其开发费用也会减少,维护工作也要简单一些。因此,基于可复用构件的软件开发必然是软件工程发展的重要节点,对其进行研究和分析是十分必要的。
参考文献
[1]程林钢.软构件可复用性的计算模型研究[J].现代计算机,2013(32).
[2]王燕玲,曾国荪.基于构件使用依赖关系的构件复用可信度设计方法[J].计算机应用,2015(12).
[3]刘舒宁.支持复用的软构件管理技术与系统研究[D].杭州:浙江大学,2015.
收稿日期:2018-5-15
作者简介:尚智良(1987-),男,本科,主要从事IT软件开发工作。
关键词:软件复用;构件;软件开发
中图分类号:TP311.5 文献标识码:A 文章编号:1004-7344(2018)17-0312-02
基于可复用构件的软件开发,它能够将软件开发过程中的一些重复性工作进行有效的解决,它是软件复用理念在实际工作中的运用,它是是以应用系统的开发不再“从头开始”的理念为切入点的,它的基础就是当前已完成的工作,将过去的应用系统开发过程中积累下来的资源进行有效的利用,将软件体系结构作为组装目标,将可复用构件当成是组装部件,对组装式开发提供支撑。这一技术能够将已有的开发成果进行充分利用,将开发的关键围绕特有的构成部分,一方面可以使最小编码得以实现,另一方面还可以将测试、维护的工作量大大减少,将重复工作得以消除,使软件生产效率得以大大提升,使软件产品交付时间大大缩短。
1 软件复用的内涵
人类在解决问题的过程中最常用的一个方式就是可复用。在对传统产业进行分析时,其最基础的方式之一,就是标准件的生产与标准构件的生产有机结合起来,其中最关键的部分就是构件,而其最有效的手段就是复用。可以看出,这是工业化发展的必由之路,而对于软件产业来说,要也对规模经济进行发展,那么生产标准构件以及复用就是重中之重,这也是软件复用被关注的原因所在。所谓软件复用,简单地说就是重复利用,就是为了复用这一目标而软件设计的过程。所谓可复用软件,就是为了复用这一目标而对软件进行设计。软件复用的重点是复用这一目标。为了复用而实施设计,为了复用而进行开发,同时还要对这些复用产品进行有效的组织。实现软件复用的技术主要有四种:①生成技术,它只能应用在特定的领域;②继承技术,它是以白箱模型为基础的;③设计模式,这是一种抽象的高层次设计;④组装技术,这是当前软件生产中最有效的技术之一[1]。
2 软件构件的内涵
这一概念是由软件复用产生出来的,所谓构件就是在应用系统中能够被识别的内容。所用可复用构件就是功能独立、具有可复用价值的构件。构件就是可以复用的二进制代码,它的形式有很多,比如功能模块、软件框架等等。它的特点主要有六个方面:①粒度大小非常自如;②二进制标准是统一的,构件之间的语言独立;③必须利用接口来对构件进行访问;④多侧面性;⑤继承性;⑥位置透明性。构件还有四种属性:①有用性;②可用性;③质量高;④适应性;⑤可移植[2]。
构件模型将其本质属性以及接口结构等进行明确,构件模型将创建构件的原则进行提供,同时为开发者提供体系结构以及API集,那么其可以利用软件构件的组合来将应用系统进行构建。构件模型有两部分组成:①构件;②容器。其中前者就是基本软件部件,具有可复用性,后者就是用来对构件进行存放,使他们能够进行交互的。当前,理论界最知名的构件模型有两个:①3C模型;②REBOOT构件模型。当前构件模型有两部分组成:①构件接口;②构件内容。前者将外界信息向软件进行提供,比如服务、定制以及组装信息等,后者主要在复用软件实体上直接应用,其形态多样,比如源代码、二进制码以及脚本等等。
而软件构架,也就是软件体系结构,它包括的内容很多,比如控制结构、数据访问协议以及设计元素功能分配等等,它使得基于可复用构件的软件开发有着一定的组装基础。通常来说,典型的软件构架能够将构件、连接子以及约束联系在一起。软件构架包括的内容三个方面:①原理;②描述;③集成机制。值得注意的是,在基于可复用构件的软件开发过程中,为复用而开发的软件构架看成是大粒度、抽象的、高层次的软件构件。
3 基于可复用构件的软件开发分析
基于可复用构件的软件开发是一种新兴的软件开发模型,它将复用、构件技术以及分布式对象技术等有机联系在一起,将软件构架看成是组装目标,将可复用软件构件当成是组装预制块,对组装式软件复用提供支撑。
3.1 基于可复用构件的软件开发思路
它是对传统工业生产模式进行有效的借鉴,一是对用户需求进行分析,将总体结构架构进行设计,结合需求在构件库将能够完成这一需求的构件进行选取,再将应用系统进行组装,倘若能够满足需求的构件不存在,那么就得去定制或是自主开发,其具体的思路见图1。
3.2 可复用构件的开发
可复用构件的开发,一方面能与特定产品的开发并行,另一方面也能与特定产品开发相独立,倘若开发时以并行的形式,能够使用和传统软件开发一样的生命周期模型,然而在开发时还要将其打包成可复用的构件方式,倘若开发时以独立的形式进行,这一方式一般叫作领域分析,它的目的就是为特定领域进行的开始和分析,对其公共属性进行确定,实施抽象编码。对于可复用构件开发的程序有三个步骤:
(1)需求分析。作为开发人员,对最先要解决的就是新的可复用构件的定件,要对其应用领域进行确定,再结合领域知识来模型对其进行定义。同时,想要使构件能够组装,其标准必须一致。此外,构件之间的通讯以及共享的实现。最后是数据的继承。
(2)构件设计,这一过程中要对分析过程中的需求进行支持,通过合理的设计方法使软件系统各构件的可复用性得到提升,因为构件之间是独立的,可互换的,也就是不以一个系统为依托,那么就要对构件进行封装。而且设计构件的接口也是十分关键的。
(3)构件测试,要对构件的可复用性进行检验,使构件的质量得以保证,从而使整个系统的复用需求得以满足[3]。
3.3 组装应用系统
(1)构件获取、选择。其获取方式有很多:①商业采购;②合作开发;③从已有的应用系统中进行提炼;④自主开发。不管采用哪一言式,要都要对其进行严格的测试,在构件库中进行统一管理。
(2)组装。就是将构件利用接口将他们连接在一起的过程。构件组装可以看成是软件构架具体化的过程中,构件组装技术的基础有三个:①构件模型;②构架描述;③开放系统技术,其组装要以后两种系统为基础,构件实例要将系统中的其它部分的要求进行符合。
(3)系统测试。通过构件来建立应用系统,那么测试是不可缺少的一个重要内容,不然其后果是难以想象的。测试通常有三种:①单元测试,就是对单个构件进行测试;②集成测试,就是将构件形成一个子系统,对这一子系统进行测试;③系统测试,就是将子系统来形成整个系统。
(4)系统维护。基于可复用构件的软件系统因为其具有一定的特殊性,所以软件维护问题也是非常重要的。这里值得一提的是,由于不同的应用其在需求上都是不一样的,那么修改后的构件一定要能够使所有的应用都适用。
4 结 语
软件复用理念的最有效体现就是基于可复用构件的软件开发,它使得复用范围得以扩大,使软件开发向社会化方向发展,它能使软件开发周期有效的缩减,使软件开发质量得到提升,而且其开发费用也会减少,维护工作也要简单一些。因此,基于可复用构件的软件开发必然是软件工程发展的重要节点,对其进行研究和分析是十分必要的。
参考文献
[1]程林钢.软构件可复用性的计算模型研究[J].现代计算机,2013(32).
[2]王燕玲,曾国荪.基于构件使用依赖关系的构件复用可信度设计方法[J].计算机应用,2015(12).
[3]刘舒宁.支持复用的软构件管理技术与系统研究[D].杭州:浙江大学,2015.
收稿日期:2018-5-15
作者简介:尚智良(1987-),男,本科,主要从事IT软件开发工作。