论基于构件的软件开发方法及其应用 基于构件的软件开发( Component - Based Software Development , CBSD )是一种基于分布对象技术、强调通过可复用构件设计与构...
基于构件的软件开发( Component - Based Software Development , CBSD )是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是 COTS ( Commercial - Off - the - Shelf )构件,也可以是通过其它途径获得的构件(如自行开发)。 CBSD将软件开发的重点从程序编写转移到了基于己有构件的组装,以更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低软件开发的费用。
问题内容:
请围绕"基于构件的软件开发方法及其应用"论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目,以及你在其中所承担的主要工作。
2.详细论述基于构件的软件开发方法的主要过程。
3.结合你具体参与管理和开发的实际项目,请说明具体实施过程以及碰到的主要问题。
参考解析: 基于构件的开发方法主要是指从已有的构件库中复用构件,尽快让系统模块化,从而让系统能够快速开发出来的这么一个开发方法。
基于构件的软件开发(CBSD)是20世纪90年代开始流行的开发方法。CBSD支持软件复用,能有效提高软件的开发效率和质量,降低开发和维护成本,因此受到人们的关注
它主要的优点就是可以快速高效的开发出软件的雏形,提高了开发效率,构件化之后的系统也可以通过构件的复用,或者复用第三方的构件来实现多个项目的并行开发。
构件开发方法的最主要缺点就是对构件的复用性和构件的质量有较高的要求,如果构件复用性不佳,或者有构件质量问题,那么无疑对产品质量将产生较为大的影响,同时基于构件的开发方法对人的依赖较高,往往需要熟悉构件库,对构件有一定的开发经验的开发人员才可以胜任。
基于构件的软件开发方法其实就可以简单理解为构件库复用的一个开发方法。具体可以分为四个过程步骤:
从构件库中提取寻找构件一般有三种方法,分别是关键字分类法,刻面分类法和超文本组织方法。该过程的主要目的就是寻找可以复用的构件。
该步骤解决的就是如何去复用构件库中的构件。如果第一步解决的是复用what,那么这一步解决的就是how复用(如何复用)的问题。
构件获取的时候根据构件的分类不同有以下四种方式:全新开发一个所需要的构件,购买一个我们需要的构件,从遗留系统中抽取出来,或者从构件库中提取并修改之后拿来使用。
组装构件又可以分为三种方法,分别是基于功能,基于数据和基于面向对象的组装技术。构件通过组装之后可以相互的连接,共同工作,最终形成相应的目标软件系统。
除了以上的开发方法以外,还有一种分类方法是:(其实这两种分类方法大同小异)
通过接口以及其它约束判断COTS 构件是否可在新系统中复用。构件鉴定分为发现和评估两个阶段。发现阶段需要确定COTS 构件的各种属性,如构件接口的功能性(构件能够提供什么服务)及其附加属性(如,是否遵循某种标准)、构件的质量属性(如,可靠性)等。构件发现难度较大,因为构件的属性往往难以获取、无法量化。评估阶段根据COTS 构件属性以及新系统的需求判断构件是否可在系统中复用。评估方法常常涉及分析构件文档、与构件已有用户交流经验、甚至开发系统原型。构件鉴定有时还需要考虑非技术因素,如构件提供商的市场占有率、构件开发商的过程成熟度等级等。
独立开发的可复用构件满足不同的应用需求,并对运行上下文做出了某些假设。系统的 软件体系结构定义了系统中所有构件的设计规则、连接模式和交互模式。如果被复用的构件不符合目标系统的软件体系结构就可能导致该构件无法正常工作,甚至影响整个系统的运行,这种情形称为失配(mismatch)。调整构件使之满足体系结构要求的行为就是构件适配。构件适配可通过白盒、灰盒或黑盒的方式对构件进行修改或配置。白盒方式允许直接修改构件源代码;灰盒方式不允许直接修改构件源代码,但提供了可修改构件行为的扩展语言或编程接口;黑盒方式是指调整那些只有可执行代码且没有任何扩展机制的构件。如果构件无法适配,就不得不寻找其它适合的构件。
构件必须通过某些良好定义的基础设施才能组装成目标系统。体系风格决定了构件之间连接或协调的机制,是构件组装成功与否的关键因素之一。典型的体系风格包括黑板、消息总线、对象请求代理等。
基于构件的系统演化往往表现为构件的替换或增加,其关键在于如何充分测试新构件以保证其正确工作且不对其它构件的运行产生副面影响,对于由COTS 构件组装而成的系统,其更新的工作往往由提供COTS 构件的第三方完成。