构件中的软件开发式怎样的?

admin3年前软件教程54

软件构件是支持软件复用的核心技术,为现今的软件开发提供了新的方法,也能有效地推进软件生产方式的变革,提高软件产品的质量及软件生产的效率。本文详细探讨基于构件的软件开发生命期的几个环节检索构件、适配构件、组装构件。

现今的软件开发已脱离了传统的手工作坊模式,更注重软件开发效率及软件产品质量的提高。要在软件开发中解决重复劳动的问题,可采取软件复用技术,以不断提高软件开发的质量及效率。而软件构件是当前支持软件产品复用的有效形式,是支持软件复用的核心技术。不断发展及成熟的软件构件技术为现今的软件开发提供了新的方法,也能有效地推进软件生产方式的变革,提高软件产品的质量及软件生产的效率。

1 基于构件的软件开发

基于构件的软件开发将现成的软件构件集成并构造成一个大型得软件系统,此方法可以快速组装系统,有效降低软件开发成本,提高软件系统的可维护性及灵活性,降低系统的维护费用。与传统的软件系统开发注重开发,而忽略可复用构件的存在这一做法不同,基于构件的软件系统开发更注重如何获得己经存在的构件,而不是开发,组装和集成现有的构件是基于构件的软件系统开发的主要着眼点。基于构件的软件系统开发的过程如下:

(1)检索构件:检索构件的过程包括如何根据描述构件、创建构件库。领域工程师开发出新的应用构件,并用文档加以描述。通过领域分析、自行开发、逆向工程或者商业购买等途径来获得所需要的构件。

(2)选择构件:从构件库中选择合适的构件,并验证构件的功能、接口等。

(3)适配构件:修改或者定制所选择的构件来满足新的应用环境的系统需求,以便能与其他构件进行集成。

(4)组合构件:将不同的构件集成和组装在一起。

2 检索构件

检索构件指的是从大量的构件所构成的构件库中找出合适的构件。目前互联网上有许多专门的构件库,各个Web站点上也提供了构件的链接,但是不同的构件库有不同的组织和访问方式,从而造成了对各构件库中的构件访问困难,并且Web站点上链接的构件也无法用传统的检索引擎检索到。只有将网络上的构件资源加以利用到构件系统的开发中,才能实现缩短软件开发周期,提高软件质量的目的。现今人们对软件需求愈加体现了个性化、多样性的特点,以往的多种功能单一软件包方式无法满足用户的需求,因此在基于构件的软件开发研究中,应在允许用户选择服务组合的基础上,允许在构件级别上对单一的服务进行功能集和界面等的定制,在服务定制的粒度上应该更细,也应该更具灵活性。基于构件的软件开发成功依赖于构件分类和检索技术。由于构件的信息量比较丰富,相互之间也缺乏很多相似性,构件之间缺乏有意义的联系,这给构件的分类带来了很多困难。目前有很多构件分类检索方法,从构件表示出发可分为人工智能方法、超文本方法和信息科学方法三类。而根据复杂度和检索效果的不同可以分为基于文本的、基于词法描述字的和基于规约的编码和检索。

3 适配构件

适配构件是从泛化的构件来创建特定应用的构件,主要采用以下方法:部分实现:构件只实现一部分功能或行为,其他部分仅提供接口。不如在面向对象的软件开发中,通常会有一部分抽象方法留给用户来实现。重载:构建提供了缺省的实现,用户在具体应用时可以重载这些行为。但是要求开发构件的程序语言支持重载机制,比如c++,Java。插件:通过编写插件的形式为粗粒度的构件添加新的功能,插件在构件总注册其提供的服务,构件需要使用该服务时调用该插件。各个构件在生产时是为了满足不同的需求,并基于对环境的不同假设,因此构件在用于新系统时经常要进行剪裁。构件剪裁必须基于构件之间的冲突最小化原则,消除体系结构的不匹配同题。针对不同的构件类型,可以采取不同的剪裁策略。

4 组装构件

作为是软件系统的基本组成成分,构件通过契约式接口指明对语境的依赖,可以实现独立部署。构件组装的本质是在构件之间建立关联。构件之间的组装关系由组装逻辑描述,组装逻辑规定了中各个构件之间的作用形式和构件在运行期间的通信机制。根据其特征来划分,构建组装方法可分为黑盒组装方法,白盒组装方法,灰盒组装方法,三类组装方法的划分依据是构件组装时对构件内部细节的了解程度。其中,黑盒组装无需对构件实现细节有任何了解,也不需要对其进行配置和修改,这对构件的要求高,实现难度大,白盒组装要求将构件的所有细节都展现出来,让复用者理解后再进行组装,并可对构件按应用的需要进行修改,从构件的复用角度分析,白盒组装的存在只能是局部的和暂时的。一个可以随意修改的软件构件并不是真正意义上的可复用产品,因为弄清一个构件并对其进行合适的修改代价会很高,其安全性可靠性得不到保证。灰盒方法介于黑、白盒之间,是当前技术发展的合适选择。灰盒方法通过调整构件的组装机制而不是修改构件来满足应用系统组装的需求,既实现了构件组装的灵活性,又不至于过于复杂。

总之,基于构件的软件开发过程关注可复用构件的存在,更关注组装和集成现有的构件,将己经存在的构件加以有效利用。本文对基于构件的软件开发生命期的几个个环节检索构件、适配构件、组装构件加以探讨,旨在实现构件的软件开发方法更灵活,有效地推进软件生产方式的变革,提高软件产品的质量及软件生产的效率。

免责声明:本文内容来自用户上传并发布,站点仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。请核实广告和内容真实性,谨慎使用。

相关文章

手机钉钉最小化播放可以算时间吗

手机钉钉最小化播放是可以算时间的,而且观看直播分屏,投屏都是算时间的,同一场直播多次进入和退出时间是累计的,PC端观看直播最小化也会计时,不过看直播回放是分开计时的。钉钉(DingTalk)是中国领先...

腾讯视频怎么旋转屏幕

腾讯视频旋转屏幕的方法是在手机状态栏上有一个自动旋转按钮,把它打开即可自动旋转屏幕。 腾讯视频上线于2011年4月,是在线视频平台,拥有流行内容和专业的媒体运营能力,是聚合热播影视、综艺娱乐、体育赛事...

驾校app开发的作用与价值

驾校app开发成功的让传统驾校与移动互联网接轨,为驾校更好的发展提供了基础。对学员来说,能够享受更加的便捷高效的服务,减少时间、精力浪费现象。开发驾校app也顺应时代的发展,获得更多年人驾考学员的青睐...

12123用户信息申诉需要多久

12123用户信息申诉成功时间是不确定的,需要根据具体地区,具体情况来看审核申诉进度的快慢的,不能等待申诉时间的话,建议到车管所解决。12123是中国公安交管部门统一服务电话号码,通过研发统一的短信平...

ajax同时发送两个请求

在前端开发中,我们经常需要使用Ajax技术来发送异步请求,以获取服务器返回的数据并进行处理。通常情况下,我们只需要发送一个请求即可,但有时候我们需要同时发送多个请求来满足特定的需求。本文将介绍如何使用...

php mysqli的使用

PHP是现今最为广泛使用开源服务器端脚本语言,而MySQL是最流行的关系型数据库管理系统。在PHP应用程序中,我们需要经常与MySQL数据库进行交互。MySQL提供了多种连接方式,其中,最广泛应用的方...