北理珠软件工程 第08章 基于构件的软件开发
基于构件的软件工程

1
2
3
4
单击此处添加正文,文字是您思想的提炼,为了演示发布的良好效果,请言简意赅地阐述您的观点。
构件分类:
应用构件 横向: 界面构件(控件) 业务构件 数据访问构件
纵向: 系统级构件
除了关于软件构件的这些描述,也可以基于软件构件在CBSE过程中的使用来描述。 除了COTS构件,CBSE过程生产: 已认证的构件——由软件工程师评估,以确保不仅功能而且性能、可靠性、可用性和其它质量因素均符合待构造的系统或产品的需求。 适应的构件——对不想要的或不希望的特征进行适应性修改(也称掩盖或包裹)。 组装的构件——被集成到体系结构风格中,并与能够有效地协同和管理构件的合适的基础设施互联。 更新的构件——当新版本的构件可用时,替换现存的构件。
202X
单击此处添加副标题
第6章 基于构件的软件工程
基本概念 基于构件的开发模型 CBSE过程 基于构件的开发 典型的构件模型 构件分类与检索
汇报日期
6.1 基本概念
基于构件的软件工程(component-based software engineering,CBSE)是强调使用可复用的软件“构件”来设计和构造基于计算机的系统的过程。
在传统软件工程环境中,一个构件就是程序的一个功能要素。传统构件也称为模块。 通常,构件具有以下三个角色之一: 控制构件:协调问题域中所有其他构件的调用; 问题域构件:完成部分或全部用户的需求; 基础设施构件:负责完成问题域中所需相关处理的功能。
6.1 基本概念
Brown和Wallnau给出了如下可能的构件描述:
接口定义语言IDL
体系结构描述语言ADL
ADL是一种描述实际系统体系结构的形式语法; 构成元素: 构件 连接件 体系结构配置 比较有影响的ADL有C2、UniCon、MetaH、Aesop、SADL、Rapide、Wright等。
基于构件的软件产品集成开发平台国内外研究现状

国内外研发觉状及进展趋势基于构件的软件开发是幸免重复劳动,提高软件生产效率的软件开发方式,属于“软件复用”的一种实现方式,其起点是应用系统的开发再也不采纳一切“从零开始”的模式,而是以已有的工作为基础,充分利用过去应用系统开发中积存的知识和体会,如需求分析结果、设计方案、源代码、测试打算及测试案例等,从而将开发的重点集中于应用的特有组成成份。
通过软件复用,在应用系统开发中能够充分地利用己有的开发功效,排除包括分析、设计、编码、测试等在内的许多重复劳动,从而提高了软件开发的效率;同时,通过复用高质量的已有开发功效,幸免了从头开发可能引入的错误,从而提高了软件的质量,因此基于构件开发的软件系统强调构件化和体系结构的作用,具有很强的自适应性、互操作性、扩展性和重用性。
最近几年来,构件技术和基于构件的软件开发技术慢慢成为阻碍整个软件产业的关键技术,构件化已经成为软件企业的需求,软件构件市场已现眉目,软件工业化生成模式正在推动软件产业的规模化进展。
支持构件开发和治理和基于构件进行软件开发的标准、基础工具和产品正慢慢完善。
3.1主流软件构件标准的分析比较当前,要紧有以下三种比较有阻碍的软件构件技术标准:OMG 的CORBA、微软公司的COM/DCOM和SUN的EJB(Enterprise Java Bean)。
1) CORBA是公共对象请求代理体系结构(common objectsrequest brokerarchitecture)的缩写,是对象治理组织(OMG-Object Management Group)开发的一套散布式对象技术标准,涉及接口、注册、数据库、通信和犯错处置等方面的问题。
和对象治理体系结构(OMA)概念的其他对象效劳相结合,CORBA成为支持散布式系统中对象技术的中间件设施。
CORBA的对象请求代理(ORB)作为转发消息的中间件,实现了对象间的无缝集成和互操作。
因此,CORBA可作为面向对象的软件构件在运行级上组装的技术基础,从而实现构件的黑盒复用。
基于构件的软件开发方法应用研究

基于构件的软件开发方法应用研究作者:聂磊来源:《硅谷》2009年第20期[摘要]基于构件的软件开发是以构件为组装蓝图,以可复用软件构件为组装模块,支持组装式复用,以提高软件生产效率和软件产品质量的有效途径。
对软件构件技术、基于构件的软件开发方法进行较深入的研究,并在此基础上将构件技术引入到软件项目设计中来,探讨如何利用软件构件技术开发软件项目。
[关键词]软件开发构件技术应用研究中图分类号:TP3文献标识码:A文章编号:1671—7597(2009)1020093--01一、引言随着软件开发规模和复杂性、社会对软件开发速度和数质量要求的不断提高,“软件危机”现象愈加明显,提高软件生产率成为软件产业当务之急。
为此,人们提出了软件复用思想,而构件技术是软件复用技术的最新发展趋势。
基于构件的软件开发技术近年来取得了突飞猛进的发展,这不仅对软件产业的技术革新影响深远,还将为许多其它领域带来巨大的效益。
构件化技术对软件开发工厂化是非常重要的。
有了构件才能通过构件的组装、互连,实现软件的工程化开发。
二、软件构件技术(一)软件工程概念软件工程的概念主要是针对20世纪60年代“软件危机”而提出的。
它首次出现在1968年NATO(北大西洋公约组织)会议上。
自这一概念提出以来,围绕软件项目,人们开展了有关开发模型、方法以及支持工具的研究。
其主要成果有:提出了瀑布模型,开发了一些结构化程序设计语言、结构化方法等。
并且围绕项目管理提出了费用估算、文档复审等方法和工具。
(二)软件构件技术构件最早由Meliroy在1968年NATO软件工程会议上提出。
构件是可复用的软件组成成份,可被用来构造其他软件。
它可以是被封装的对象类、类树、一些功能模块、软件框架、软件构架(或体系结构)、文档、分析件、设计模式等。
构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件。
例如,如果有一个开发人员创建了一个能让一个客户进入公司的数据库的构件,那么其他程序员就不必重新编写这个功能,而是从公司的构件库中直接提取这个构件,并将其应用在新程序中。
第8章基于构件的软件开发

第8章基于构件的软件开发在软件工程的范围内,复用既是旧概念,也是新概念。
软件开发人员从软件开发的早期阶段,就已经开始复用概念、对象、论据、抽象和过程,但其复用的层次是较为特定的。
而今,更为复杂的基于计算机的系统必须在非常短的时间内建立,这就需要更有组织的复用方法。
基于构件的软件工程(component-based software engineering, CBSE)是强调使用可复用的软件“构件”来设计和构造基于计算机的系统。
8.1构件和基于构件的系统开发从表面上看,CBSE似乎类似于传统的或面向对象软件工程。
当软件小组使用传统的需求分析技术建立了待建造系统的需求时,该过程开始,体系结构设计(见§4.4)被建立,但是,项目开发小组并不是立即转向更细节的设计任务,而是必须检查需求以确定系统的什么子集可直接通过组装而不是构造完成。
也就是说,项目小组针对每个系统需求询问如下问题:1) 是否存在商用成品构件(commercial off-the-shelf,COTS)可实现该需求?2) 是否存在内部开发的可复用构件可实现该需求?3) 可用构件的接口和待建造系统的体系结构相容吗?在此,术语“构件”被重复地使用,而对该术语的确定性的描述未曾明确给出。
常用的相关定义可为:1) 构件——某系统中有价值的、几乎独立的并可替换的一部分,它在很好定义的体系结构语境内满足某清楚的功能。
亦可定义为“系统中可以明确辨识的构成成分。
2) 运行时软件构件——作为单元管理的软件包,安装运行时可通过接口动态绑定其相关的一个或多个程序。
3) 软件构件——仅具有合约性描述的,显示的语境依赖的组装单元,亦即为一个独立发布的功能部分,它提供了通过接口对它的服务的方向。
4) 业务构件——某“自治的”业务概念或业务过程的软件实现。
5) 商品构件COTS,由第三个构造的满足一定构件标准的,可组装的软件构件。
在基于构件的软件系统开发指导下,开发小组试图修改或去除那些不能用COTS构件和自有构件实现的系统需求。
基于构件的软件工程技术

52 •电子技术与软件工程 Electronic Technology & Software Engineering 软件开发 • Software Development【关键词】软件构件 软件工程 应用技术在现代社会人们对于应用软件的依赖性大大增加,电子软件产品对人们生活质量的提高起到了至关重要的作用,如何让软件产品的研发更好的解决现实需求,需要对软件的构建思路问题进行探讨,提升软件构件的实际性能,从而推动软件行业的快速发展,满足现实需求。
1 构件软件技术构件软件的性能比其他软件要高,构件软件属于二进制的软件系统,同时由于端口是严格按照规范设计出来的,因此可以直接和其他软件组装,构件软件的结构,简单操作方便,在应用软件当中可以看作是一种独立的程序,因而它可以降低软件成本,实现软件重组的功能,在成本效益方面具备优势。
2 构件软件技术与传统软件技术的差异2.1 具有新鲜的结构特征与传统的软件工程技术相比,构建技术从互联网访问性能到服务器的运营支持能力都能满足时代发展的潮流,可以满足人们生活工作需要,在很大程度上可以促进软件技术的发展,但是软件构建技术在开发出新的结构体系之后,却无法代替传统软件的功能,因此需要对传统软件行业进行改革。
2.2 开发过程的变革传统软件行业在设计的时候采用的是传统的元素组合的方式,会导致软件变得老旧,在结构设计上采用构件软件技术的设计方法可以快速的找到软件出现问题的所在,并及时进行修改,因此软件设计的过程中设计参与者可以快速的对软件性能进行分析,在运行中实现对软件整体性能的协调更改,实现系统搭配软基于构件的软件工程技术文/朱道雨件的循环,对于构建软件而言,由于开发程序不是单一的,因而应用程序可以进行整合,程序会走向多元化的发展,通过将复杂的技术转变为简单的构件式的软件,可以使得构件软件在计算机行业的利用率不断提升,从而带来整个软件开发行业的繁荣。
2.3 设计理念的更新传统的软件行业进行设计的历年主要是从计算机实验得出的具体数据,根据客户的需要调整软件的结构和性能,因此软件开发容易脱离人们生活的需要,有逐渐落后的倾向,采用构件软件设计程序之后,软件设计人员可以将构件软件和现实生活互相分离,在一定意义上可以将构件软件的思维模式应用于软件设计当中。
基于构件的软件工程技术与理论方法探讨

基于构件的软件工程技术与理论方法探讨基于构件的软件工程技术与理论方法探讨【摘要】随着软件产业和软件工程技术的不断发展,软件企业在提高软件产品质量及生产效率过程中经常采用的核心技术就是基于构件的软件工程技术。
基于构件的软件工程技术强调使用可复用的软件“构件”来设计和构造基于计算机的系统过程,目的是用能即插即用的构件在软件构架下组装成一个应用程序,以实现软件复用而提供软件产品的质量和生产效率。
本文将对于构件的软件工程技术和方法在实际应用中存在的问题及作用进行简单分析和探索。
【关键词】构件的软件工程技术理论方法前言:伴随着计算机技术的发展,各种新型技术已经逐渐开始出现在人们的视野中,人们对于软件开发速度及质量要求越加严苛。
传统软件开发形式已经不能够满足现代人对于软件应用的需求,软件市场中所拥有的软件数量及规模正在逐渐加大,软件设计人员开始思考软件系统重复利用的问题,对软件复用技术和基于构建的软件的深入分析,研究基于构件的复用在实际中的应用。
一、软件构件技术1.1构件人们对于构件的软件工程技术并不是十分了解,构件也仅仅是一个专属性名词。
现阶段,软件设计人员对于构件的定义仍不明确,本文在对于构件的软件工程技术研究中,暂且将构件定义为:构件是软件系统在重复利用过程中的软件实体,主要有两部分构成,分别是构件规约与构件实现,构建规约指的就是构件模型,构件实现指的就是某一件具体的构件。
1.2软件构件技术的应用与构件模型目前,软件设计人员在开发软件过程中已经开始广泛应用基于构件的软件工程技术。
构件的软件工程在软件开发设计应用的过程中有不少企业纷纷加入到软件构件开发队伍中,例如我们都熟知的IBM公司所创建的SanFrancisco 工程。
构件模型是对于构建自身特点的描述。
构件模型制作过程中对于接口结构及框架、构件之间的关联都有着明确性规定,所构建的模式需要与软件实际构建基本一致,这样才能够保证软件设计人员构件中能够拥有准确性依据。
基于构件的软件工程技术研究

基于构件的软件工程技术研究作者:贾岩来源:《科技资讯》 2011年第6期贾岩(1.同济大学软件学院上海 200120; 2.沈阳市中小企业服务中心沈阳 110031)摘要:本文基于笔者多年从事软件工程的相关学习和研究心得,以基于构件的软件工程技术为研究对象,探讨了面向对象软件工程与传统软件工程之间的差别,给出了基于构件的软件工程概念模型,全文是笔者长期工作实践基础上的理论升华,相信对从事相关工作的同行有着重要的参考价值和借鉴意义。
关键词:构件软件工程面向对象中图分类号:TP3 文献标识码:A 文章编号:1672-3791(2011)02(c)-0057-02软件是信息产业的灵魂,软件工程是软件产业的灵魂。
1968年由NATO(北大西洋公约组织)在德国格密斯(Garmish)举行的学术会议上正式提出“软件工程(software engineering)”这一概念以来,软件工程发展极快,取得了丰硕的成果。
软件工程分为传统软件工程、面向对象软件工程、软件过程工程和构件软件工程四种。
软件工程没有一个权威的定义,比较认可的定义为:软件工程是一门交叉学科,它是解决软件问题的工程,是对软件开发、运作、维护的系统化的、有规律的、可定量的研究方法。
软件工程有明确的目标。
那就是研制开发与生产出具有良好的软件质量和费用合算的产品。
软件质量可用六个特性来评价:功能性、可靠性、易使用性、高效率性、可维护性、易移植性。
软件工程不同于一般工程,具体表现在以下几点。
(1)软件是逻辑产品而不是实物产品,所以费用集中在研制开发上而不在生产上。
软件不会用坏、磨损、老化,但有一个过时的问题。
(2)由于软件是逻辑产品,使得它的功能只能依赖于硬件和软件的运行环境以及人们对它的操作,才能得以体现。
(3)软件产品的功能比一般产品的功能复杂得多。
(4)软件设计比一般产品复杂得多。
具体表现在:功能的多样性,实现的多样性。
推动软件工程发展的原动力是提高软件质量和软件开发的生产效率。
基于构件的软件工程技术

基于构件的软件工程技术摘要:随着科学技术的发展,我国的软件技术有了很大提升。
软件技术对于生产效率的提高至关重要,面对多种多样的选择,传统的软件开发方法越来越难以满足人们多样化的需求,为了顺应时代的发展和科技创新的潮流,需要研发基于构件的软件工程技术来提升行业研发的整体水平,研发顺应时代潮流的软件系统配置方法,取代传统的应用软件系统。
本文首先提出了构件软件的思路,进而提出了提升软件构件性能的建议,希望可以带动计算机软件行业的发展。
关键词:软件构件;软件工程;应用技术引言信息时代的到来,人们对于电子产品的依赖性越来越大,同样电子产品对于人们的工作也起到了至关重要的作用。
而软件对于电子产品的性能起着决定性的作用,而软件工程存在的目的就是为了解决软件在运行过程中可能会出现的问题。
所以笔者对于软件的先进性作出了分析并提出了构建软件的思路,希望可以提高构件软件的性能,以此来带动计算机软件行业的发展。
1构件的概念及构件的应用优势构件是软件的构成元素,它几乎是独立并可被替换的一部分。
其可以明确辩识,可以通过构件接口访问它所提供的服务。
而且构件和语境有明显依靠关系,是可以组装的软件实体。
从广义上讲构件可以是数据,也可以是被封装的对象类、软件构架、文档、测试用例等。
软件构件是由第三方提供的可组装软件实体,软件构件都承载着一些有用的功能,并且遵循某种构件模型。
可复用构件则是指具有可复用价值的构件。
当前我国软件企业方面面对着日益增加的竞争压力,在国际市场上稍不注意就有可能会被淘汰,角逐愈激烈愈能促进软件这个行业的发展。
传统软件开发方式仅仅是通过软件开发人员手工设计的模式,如果稍有变动就必须重新开发系统。
这样很难跟得上现在软件行业的发展。
然而现在的构件软件技术在碰到业务流程发生变化或系统升级等情况时,不需要全盘推翻重新开发,只需要增加新的构件或改动原来的构件即可完成。
这样不仅节省时间和成本,还大大提升了软件开发的效率。
相比于传统的软件开发技术,构件的软件开发的软件产品更能吻合客户的需求,上市时间和软件质量也是遥遥领先于传统的软件开发。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
内容摘要
• • • • • 基于构件的软件开发概述 建造可复用构件 应用系统工程 构件的管理 小结
应用系统工程
• 任务:通过组装可复用构件得到应用系统 • CBSD中构件是组成应用系统的基本单元 • 注重体系结构和构件接口的分析和设计, 忽略构件内部实现的设计
关注接口的设计
• 接口是构件行为的描述机制,并提供了对其服 务的访问
基于构件的体系结构
• 基于构件的应用系统体系结构
– 描述了组成应用系统的构件,构件之间的组织结构、交互、约 束和关系 – 对系统的组成、结构以及系统如何工作的较为宏观的描述
• 如果在领域工程中已开发了领域基准体系 结构(reference architecture),则可以 通过对基准体系结构的剪裁和/或扩充获 得应用系统的体系结构
• COM+ • EJB:一种基于Java的构件标准
– 提供了让客户端使用远程的分布式对象的框架 – EJB规约规定了EJB构件如何与EJB容器进行行交互
基于构件的软件开发过程
领域工程步骤-1
• 领域分析:首先要进行领域分析,收集领域中有代表性 的应用样本,分析应用中的公共部分或相似部分,抽取 该领域的应用体系结构 • 建立领域特定的基准体系结构模型:在领域分析的基础 上,构造该领域的基准体系结构,这个基准体系结构应 是可以裁剪和扩充的,并可供该领域的应用复用 • 标识候选构件:在领域分析和领域基准体系结构模型的 基础上标识该领域的候选构件 • 泛化(generalization)和可变性(variability)分析:提高 其通用性,同时寻找候选构件在不同应用中的变化点 (variation point),通过设置参数、继承或其它手段, 使可变部分局部化
– 避免了大量的重复劳动,提高了产品质量和生产效率,促进分工 合作
• 我们的目标:将制造业中的组装式生产模 式引入到软件开发中
内容摘要
• • • • • 基于构件的软件开发概述 建造可复用构件 应用系统工程 构件的管理 小结
内容摘要
• • • • • 基于构件的软件开发概述 建造可复用构件 应用系统工程 构件的管理 小结
基于构件的软件开发
• 基于构件的软件开发
– Component-Based Software Development – 简称CBSD – 是指使用可复用构件来开发应用软件
• 基于构件的软件工程
– Component-Based Software Engineering – 简称CBSE
构件(Component)的典型定义
– 与复用相关的成本应由多个采用复用技术的项目来分担 – 通常要经过2~3个采用复用的生产周期(大约3年左右)复 用才能带来显著的效益
内容摘要
• • • • • 基于构件的软件开发概述 建造可复用构件 应用系统工程 构件的管理 小结
建造可复用构件
• 建造构件的目的是为了以后复用构件,即 为复用而建造构件 • 在建造构件时仍应遵循抽象、逐步求精、 信息隐蔽、功能独立、结构化程序设计等 思想和原则 • 由于面向对象方法具有封装性、继承等特 点,能有力地支持复用,所以应尽可能考 虑采用面向对象方法
· VP1 C · VP2 VP1 description context
构件系统中的门面和变体
可变性机制
• 继承:在变化点上创建指定抽象类型或抽 象类的子类型或子类。 • 扩展和扩展点:可以在用况和对象构件中 的变化点(或扩展点)上附加变体(或扩展) • 参数化:用于模板、框架和宏的类型和类
– 适用于变体较小时(经常是一个数值、短语或表达式)
构件的特化和组装
• 构件特化
– 根据应用系统的具体情况对其进行特化,对变化点配置特定的 变体,必要时要自行开发变体
– 如果所选的构件不能完全满足应用系统的功能需求,还需对构 件作适当的修改 – 如果所选的构件未按构件标准开发(如遗产系统中抽取的构件) 时,还需按某种构件标准对其进行包装
• 建立应用系统的体系结构模型:可以使用构件 生产者提供的领域特定的基准体系结构经裁剪 和/或扩充而获得 • 寻找候选构件:根据应用系统的体系结构模型, 从构件库或其它可利用的构件源中寻找候选构 件 • 评价和选择合适的构件:评价候选构件以判断 是否适合于待开发的软件 • 构件的修改(modify)和特化(specialize):在复 用时对构件进行特化以满足特定应用的需要
基于构件的应用系统开发方法
• Rationel统一过程
– Rational’s Unified Process,简称RUP – 一个关于软件开发的广泛的过程框架,覆盖了整个软件生命周期 – 使用UML进行分析和设计建模,鼓励使用CBSD方法 – 支持通用的构件设计方法,并以Select Component Manager为目标 – 通用构件设计准则使用UML作为构件设计符号 – 鼓励使用UML的扩展形式把构件的规格说明和实现分离 – 允许制作技术中立的规格说明,然后再使用不同的实现技术来实现规 格说明
应用系统工程的步骤-2
• 开发未被复用的部分:对新系统中未复用 的部分进行开发 • 构件的组装:将特化和修改后的可复用构 件和新开发的部分组装成一个新的软件系 统 • 集成测试:对组装后的软件系统进行集成 测试 • 评价被复用的构件,并推荐可能的新构件
CBSD对质量、生产率和成本的影响
• 对质量的影响:随着长期的测试和使用, 构件能够保证很高的质量,因此可以使系 统开发的质量得到保证 • 对生产率的影响:一般来说,大约30%~ 50%的复用可使生产率提高25%~40% • 对成本的影响
常用的构件标准
• CORBA(公共对象请求代理体系结构)
– Common Object Request Broker Architecture – OMG发布的构件标准 – 核心是ORB(Object Request Broker),定义了异构环境下对 象透明地发送请求和接收响应的基本机制 – 微软开发的一个构件对象模型,提供了在运行于Windows操作 系统之上的单个应用中使用不同厂商生产的对象的规约
软件工程
第8章 基于构件的软件开发
基于构件的软件开发目标
• 长期以来的软件开发状况
– 多数软件都是针对某个具体的应用系统从头进行开发的
– 导致:出现了大量的同类软件重复开发,造成大量人力、财力的 浪费,而且软件的质量也不高
• 对比:汽车工业的生产模式
– 在已有的部件基础上通过组装进行生产:有专门的部件生产工厂, 汽车设计者在设计中选择市场上已有的合适的部件
商用成品构件
• Commercial off-the-shelf • 简称COTS • 指由第三方开发的满足一定构件标准的, 可组装的软件构件
构件的要素
• 规格说明:建立在接口概念之上,作为服 务提供方与客户方之间的契约 • 一个或多个实现 • 受约束的构件标准 • 包装方法 • 部署方法
3C构件模型
• 关于构件的一个指导性模型 • 由构件的三个不同方面的描述组成
– 概念(concept):关于“构件做什么”的抽象描述,可以 通过概念去理解构件的功能。概念包括接口规约和语义描 述两部分,语义描述和每个操作相关联(至少表示为前后 置谓词形式) – 内容(content):概念的具体实现,描述构件如何完成概 念所刻画的功能 – 周境(context):描述构件和外围环境在概念级和内容级 的关系,刻画构件的应用环境,为构件的选用和适应性修 改提供指导
REBOOT构件模型
• REBOOT(Reuse Based on Object_Oriented Technology):基于面向对象技术的复用 • 一种基于刻面(facet)的模型
• 一个构件通常包括以下刻面:
– – – –
– 刻面:对领域进行分析,所得到的一组基本的描述特征 – 刻面可以描述构件执行的功能、所操作的数据、构件应用的周 境或任何其它特征 – 通常的刻面描述限制在不超过7或8个刻面 抽象(abstraction):它是构件概念的抽象性描述 操作(operation):它是构件所提供的操作的描述 操作对象(operand):它描述操作的对象 依赖(dependency):它描述构件与外界的依赖关系
– 供应接口(Provided interface):描述构件所提供的服务,可以 被其它构件访问 – 请求接口(requived interface):请求接口描述构件为完成其功 能(服务)需请求其它构件为其提供的服务
• 一个接口可以有多种实现,并且对使用者隐蔽 • 接口描述是构件使用者能依赖的所有信息,因 此构件接口描述的表达能力和完整性是CBSD方 法主要关注的问题之一
领域工程步骤-2
• 重建构件:在泛化和可变性分析的基础上, 重建构件,使它成为可复用构件 • 构件的测试:对重建的可复用的构件要严 格测试,以提高其可靠性 • 构件的包装:经测试的构件应根据构件库 的要求,对它进行包装,以便构件库对它 分类储存和检索 • 构件入库:包装后的构件即可存入构件库
应用系统工程的步骤-1
• PressBiblioteka an书中的定义:构件是某系统中有价值 的、几乎独立的并可替换的一个部分,它在良 好定义的体系结构语境内满足某清晰的功能 • Brown的定义:构件是一个独立发布的功能部 分,可以通过其接口访问它的服务 • “计算机科学技术百科全书”的定义:软件构 件是软件系统中具有相对独立功能,可以明确 标识,接口由规约指定,与语境有明显依赖关 系,可独立部署,且多由第三方提供的可组装 软件实体;软件构件须承载有用的功能,并遵 循某种构件模型;可复用构件是指具有可复用 价值的构件
– 程序模板:程序的结构模型可以作为新程序的体系结 构设计的模板
可变性分析
• 构件应具有较强的通用性和可变性 • 为了满足不同的复用需求,需要在构件复用时 可能发生变化的一个或多个位置上标识变化点 (variation point),同时为变化点附加一个或多 个变体(variant) • 例如Account构件的帐号编码规则以及透支规 则在不同的国家可能不一样