软件构件知识点
软件体系结构知识点复习

一、什么是软件系统结构软件体系结构也称为软件构架(有时简称构架),是系统的一个或多个结构,它包括:软件的组成元素(组件),这些元素(组件)的外部可见特性,以及这些元素(组件)之间的相互关系。
含义:(1)系统由一个或多个结构组成,其中任何一个结构并不能与构架等同。
(2)每个系统都有一个体系结构。
(3)软件体系结构是系统的抽象。
(4) 构架定义了软件元素以及各元素间的交互关系。
(5) 以往作为体系结构传递的线框图,事实上并等同于体系结构。
二、构架商业周期(ABC)1.构架由什么决定?构架是否由系统需求决定?×软件构架是技术、商业和社会因素共同作用的结果。
2. 构架从哪里来?(影响构架的因素)影响构架的因素主要包括:❑系统涉众(stakeholder)、主要有:管理者:成本要低,人人都得干活营销人员:特性突出、投放市场快、成本低、可与同类产品相匹敌。终端用户:行为、性能、安全性、可靠性、易用性。维护人员:可修改性强。客户:成本低、及时交付、不要频繁修改。❑开发组织・组织内对现存构架的重用・对某个基础设施进行长期的商业投资以实现某些战略目标・开发组织本身的机构也会影响构架的形成❑构架师的素质和经验构架师先前的一些经验、教育、培训以及所接触到过的成功构架模式都会影响到他们对某种构架的选择。
❑技术环境当前技术发展水平代表了某个时代的构架师的普遍素质和经验,对架构有很大的影响力。
❑其它因素其它如社会、法律、人文环境等都会对构架产生影响。
3.构架的反影响力・构架会影响开发组织的结构・构架会影响开发组织的目标・构架会影响客户对下一个系统的要求・构建系统的过程丰富了整个开发团队的经验,从而将影响设计师对后继系统的设计・一些系统会影响并实际改变软件工程的环境,也就是系统开发人员学习或实践的技术环境。
4.构架的商业周期软件构架是技术、商业和社会等诸多因素作用的结果,而软件构架的存在反过来又会影响技术、商业和社会环境,从而影响未来的软件构架。
设计软件构件(5)-1

• Web服务构件。在局域网成为因特网的分布式环 境下,网络服务被提出作为未来的简单扩充。 应用构件不再只是呆在一个局域网的一个服务 器上,而是放到整个因特网上。网络服务有效 地等同于一个被提供的问题解决方法。不仅是 提供一个完整的应用,人们还能提供个人构 件。
• 商业构件。在20世纪90年代早期,一种新的构 件产生了。它们是市场上可以购买的构件,也 可以称之为开放市场构件。开放市场构件是可 以从货架上买走的可重用构件,可以购买它但 不用购买支持、集成或其他类型的服务,的确 是“即插即用”的构件。
• 构件的装配和集成。构件的装配和集成是把构 件装配成模块或打成包,在模块或包中都可以 有自己的定制描述符。
• 构件的剪裁和扩展。经过评选的构件不可能马 上都能用,有时要对已有构件进行属性扩展或 修改,称之为构件的剪裁和扩展。这常常需要 对构件开发者提出扩展或修改的意见,由构件 开发者去完成。注意只改内部属性,不能改接 口
• 可用性。要求所采用的软件构件技术必须是成 熟的技术,相应的产品也必须是成熟的产品, 在至关重要的企业应用中能够稳定、安全、可 靠地运行。另外,由于数据库在企业计算中扮 演着重要角色,软件构件技术应能与数据库技 术紧密集成。
• 可扩展性。集成框架必须是可扩展的,能够协 调不同的设计模式和实现策略,可以根据企业 计算的需求进行裁剪,并能迅速反映市场的变 化和技术的发展趋势。通过保证当前应用的可 重用性,最大程度地保护企业的投资。
5.3 Java应用构件平台
• Sun公司经过多年努力,在Java应用方面做出了 许多贡献。至今,应用平台共有四种:Java Card、J2ME、J2SE、J2EE,如图13-2所示。
图13-2
• Java Card是最小的应用平台,是为Java Smart 信用卡设置的平台。Java Card 有一组API接 口,运行在卡虚拟机上。Java Card统一了智能 卡的编程接口,提供了强大的安全机制,支持 多次装载 Applet,支持一卡多 Applet 的功 能。
河海大学研究生课程【软件复用技术】05软件构件技术概述(一)

软件复用硕士研究生课程软件构件技术计算机与信息学院软件复用硕士研究生课程声明软件复用硕士研究生课程主要内容一、软件构件二、软件构件模型三、应用框架四、基于构件的软件开发方法软件复用硕士研究生课程一、软件构件软件复用硕士研究生课程一、软件构件1、构件的概念软件复用硕士研究生课程对软件构件概念的理解狭义的构件广义的构件软件复用硕士研究生课程软件复用硕士研究生课程构件的表现提交的单位。
强调构件是一组单元,可以作为整体被复用;(2)服务角度(Service ):将构件作为功能的提供者,看成向消费者提供服务的软件实体。
同时强调了提供者和消费者之间的协议概念。
(3)完整性角度(Integrity ):将构件看成一组软件共同维护它所操作数据的完整性,独立于其它构件的执行。
这一标准是构件易于更新的必要条件。
这里强调的是软件替换的概念包装包装构件模型元素服务构件独立构件构件规格说明接口**服务完整性***1软件复用硕士研究生课程实例•包装部分是:excel.exe•提供服务的构件:如应用程序、图表、表格。
每一个都是独立的构件,提供了一个包装界限.每个都可独立替换•构件之中还有子构件.如表格构件包括“范围”和“单元”构件,但它们在实现和数据上存在共享,因而不能独立替换软件复用硕士研究生课程构件的分类(1/2)数据库操作系统框架ActiveX 控件Java Applet 应用程序完整的API 函数数据库服务操作系统服务函数库系统实用工具单独的API 函数COM 类文件、文档、目录源代码文件类库模板、表可执行文件动态链接库完整性服务包装软件复用硕士研究生课程构件的分类(2/2)•纯计算构件:具有简单的输入/输出关系,无运行状态的变化。
如数值计算、过滤器、转换器等•存储构件:存放共享的、永久性的数据。
如数据库、文件、符号表、超文本等•管理构件:执行的操作与运行状态紧密耦合。
如抽象数据类型、服务器、对象•控制构件:管理其他构件运行的时间、时机及次序。
软件体系结构知识点完整

软件体系结构知识点完整首先,软件体系结构的设计目标是确保软件系统具有良好的可维护性、可扩展性、可重用性和可演化性。
为了达到这些目标,需要考虑以下几个重要的知识点:1.架构风格和模式:软件体系结构可以采用不同的架构风格和模式,如客户/服务器架构、分层架构、微服务架构等。
每种架构风格和模式都有其适用的场景和优缺点,开发人员需要根据具体需求选择适合的架构。
2.组件和接口:软件系统通常由多个组件构成,每个组件负责特定的功能。
组件之间通过接口进行通信和交互。
设计良好的组件和接口可以提高系统的模块化程度,便于测试、维护和重用。
3.数据管理:软件系统通常需要对一定量的数据进行管理和存储。
在软件体系结构设计中,需要考虑数据的组织方式、访问方式和持久化方式。
常见的数据管理技术包括关系型数据库、非关系型数据库和缓存等。
4.并发和分布式处理:现代软件系统通常需要处理大量的并发请求,并且可能分布在不同的机器上。
软件体系结构设计需要考虑如何有效地处理并发请求和如何进行分布式部署,以提高系统的性能和可扩展性。
5.安全和可靠性:软件系统面临各种安全和可靠性风险,如数据丢失、数据泄露和系统故障等。
软件体系结构设计需要考虑如何采取措施保障系统的安全和可靠性,如进行数据备份、访问控制和错误处理等。
6.软件系统的分层:软件体系结构通常采用分层的结构,将系统划分为不同的层次,每个层次负责不同的功能。
常见的分层结构有表示层、业务逻辑层和数据访问层等。
分层结构可以提高系统的可维护性和可扩展性。
7.影响因素和约束:软件体系结构设计还需要考虑相关的影响因素和约束,如成本、时间、技术限制等。
这些因素和约束将直接影响软件体系结构的设计和实施。
总结起来,软件体系结构是软件设计的重要组成部分,它涉及到架构风格和模式的选择、组件和接口的设计、数据管理、并发和分布式处理、安全和可靠性等多个方面。
了解这些知识点对于设计出高质量、可维护和可扩展的软件系统至关重要。
了解软件设计师中的软件构件与框架设计

了解软件设计师中的软件构件与框架设计软件设计师是计算机领域中一种关键角色,他们负责设计和开发软件应用程序。
在软件设计的过程中,软件构件和框架设计起着至关重要的作用。
本文将以探究软件设计师中的软件构件与框架设计为主题,详细讨论这两个方面的重要性及应用。
1. 软件构件的定义与作用软件构件是软件设计中的组成部分,可以看作是软件的构造块。
它是可重用的、自包含的实体,具有明确的功能和特性。
软件构件的主要作用如下:1.1 提高开发效率:软件构件允许设计师通过重复使用现有的组件,避免重复造轮子,提高开发效率。
1.2 保持一致性:软件构件有助于保持整个系统的一致性,因为它们经过充分测试和验证,可靠性更高。
1.3 可定制性:软件构件可以根据需求进行定制和扩展,具有更好的灵活性。
1.4 降低复杂性:软件构件将复杂系统拆分为更小的块,使系统开发更加简化和可管理。
2. 软件构件的设计原则为了有效地应用软件构件,设计师需要遵循一些设计原则:2.1 单一职责原则:每个软件构件应该专注于完成一个明确的功能,避免职责混杂,提高代码可读性和维护性。
2.2 开闭原则:软件构件应该是开放的扩展和关闭的修改,支持系统的可扩展性和可维护性。
2.3 接口隔离原则:软件构件应该通过明确的接口进行通信,并尽量避免冗余和耦合。
2.4 依赖反转原则:软件构件应该通过抽象的方式进行依赖,减少模块间的直接依赖关系,提高系统的灵活性和可测试性。
3. 框架设计的定义与作用框架是一种软件不完整或可扩展的结构,它为软件构件提供了一个共享的基础。
框架设计的主要作用如下:3.1 增加复用性:框架提供了一系列通用的、可重用的组件,以促进开发人员的代码复用。
3.2 简化开发过程:框架提供了一套定义良好的结构和约定,使开发人员能够快速构建应用程序,减少开发时间和精力。
3.3 提高可维护性:框架提供了一种规范的结构,使得应用程序更加易于理解和维护。
3.4 促进团队协作:框架通过提供一致的开发规范和方法,使团队成员能够更好地协同工作,提高开发效率。
软件体系结构知识点完整

1、构件就是核心与基础,重用就是必需得手段。
2、软件重用就是指在两次或多次不同得软件软件开发过程中重复使用相同或相近软件元素得过程。
3、软件元素包括程序代码、设计文档、设计过程、需求分析文档甚至领域知识。
4、把可重用得元素称作软构件,简称为软构件。
5、可重用软件元素越大,就说重用得粒度越大。
6、构件就是指语义完整、语法正确与有可重用价值得单位软件,就是软件重用过程中可以明确辨识得系统;结构上,它就是语义描述、通信接口与代码实现得复合体。
7、面向对象技术达到类级重用,以类为封装得单位。
8、构件模型就是对构件本质特征得抽象描述。
三个主要流派,分别就是OMG(对象管理组织)得CORBA(通用对象请求代理结构)、Sun得EJB与Microsoft得DOM(分布式构件对象模型)。
9、获取构件得四个途径:(1)从现有构件中获得符合要求得构件,直接使用或作适应性修改,得到可重用构件。
(2)通过遗留工程,将具有潜在重用价值得构件提取出来,得到可重用构件。
(3)从市场上购买现成得商业构件,即COTS构件。
(4)开发符合要求得构件。
10、构件分类方法三大类:关键字分类、刻面分类法、超文本组织方法11、构件检索方法:基于关键字得检索、刻面检索法、超文本检索法与其她检索方法。
12、减少构件修改得工作量,要求工作人员尽量使构件得功能、行为与接口设计更为抽象画、通用化与参数化。
13、构件组装技术:基于功能得组装技术、基于数据得组装技术与面向对象得组装技术。
14、软件体系结构得定义:软件体系结构为软件系统提供了一个结构、行为与属性得高级抽象,由构成系统得元素得描述、这些元素得相互作用、指导元素集成得模式以及这些模式得约束组成。
软件体系结构不仅指定了系统得组织结构与拓扑结构,并且显示了系统需求与构成系统得元素之间得对应关系,提供了一些设计决策得基本原理。
软件体系结构得意义:(1)体系结构就是风险承担者进行交流得手段;(2)体系结构就是早期设计决策得体现--①软件体系结构明确了对系统实现得约束条件②软件体系结构决定了开发与维护组织得组织结构③软件体系结构制约着系统得质量属性④通过研究软件体系结构可能预测软件得质量⑤软件体系结构使推理与控制更改更简单⑥软件体系结构有助于循序渐进得原型设计⑦软件体系结构可以作为培训得基础;(3)软件体系结构就是可传递与可重用得模型。
软件设计与体系结构知识点

1.软件设计的特征(1)软件设计的开端是出现某些新的问题需要软件来解决,这些需要促使设计工作的开始,并成为整个设计工作最初的基础(2)软件设计的结果是给出一个方案,它能够用来实现所需的、可以解决问题的软件,方案的描述可能是文字、图表,甚至数学符号、公式等组成的文档或模型(3)软件设计包含一系列的转换过程,即把一种描述或模型转换为另一种描述或模型,转换后的形态可能更加具体,或更接近于实现(4)产生新的想法或思路对软件设计非常重要,因为设计也是一个创造性的过程,不同的问题或需求总会存在各自的特点,即使同样的问题在不同时期和环境下也会存在区别,因此设计不会是一成不变的(5)软件设计的过程是不断解决问题和实施决策的过程,因为整个设计是解决一个大的问题,在设计过程中将会分解成众多小问题,涉及真需要一次解决这些小的问题,并在出现多种方案或策略时进行决策,选择其中最合适的(6)软件设计也是一个满足各种约束的过程,因为软件可能在性能、运行环境、开发时间、成本、人员技术水平等各个方面存在约束,设计必须在满足这些约束的情况下给出最佳的设计方案(7)大多数的软件实际是一个不断演化的过程,因为需求在一开始很可能是不完整或不精确的,在设计过程中还会不断发生变化并逐步稳定下来,因此设计需要根据需求的变化而不断演化。
2.软件设计的要素( 1 ) 目标描述 ( 2 ) 设计约束 ( 3 ) 产品描述 ( 4 ) 设计原理 ( 5 ) 开发规划 ( 6 ) 使用描述3.软件设计体系的定义( 1 )软件设计体系结构是软件系统的结构,包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系( 2 )软件体系结构是软件系统的基本组织,包含构建、构件之间、构件与环境之间的关系,以及相关的设计与演化原则4.软件设计的主要活动( 1 ) 软件设计计划 ( 2 ) 体系结构设计 ( 3 ) 界面设计 ( 4 ) 模块/子系统设计 ( 5 ) 过程/算法设计( 6)数据模型设计5.体系结构“4+1 ”多视图建模( 1 )逻辑视图:该视图关注功能需求,即系统应该为最终用户提供什么服务,它与应用领域精密相关( 2 )进程视图:该视图捕获设计中关于并发和同步的内容,重视一些非功能需求,例如性能、可扩展性等,定义了运行实体和它们的属性。
软件体系结构知识点

构件:构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
构件管理:1构件描述2构件分类与构件库组织:关键字分类法刻面分类法(青鸟)超文本组织方法(基本单位是结点)3人员及权限管理构件重用步骤:检索与提取构件(检索方法同上3种加其他)理解与评价构件修改构件(实参)构件组装(功能数据面向对象)软件体系结构:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件体系结构的意义:体系结构是风险承担者进行交流的手段体系结构是早期设计决策的体现软件体系结构是可传递和可重用的模型软件体系结构建模的种类:结构模型框架模型动态模型过程模型功能模型4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构。
逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。
开发视图也称模块视图,主要侧重于软件模块的组织和管理。
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。
场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。
体系结构风格反映了领域中众多系统所共有的结构和语义特性经典的体系结构风格数据流风格:批处理序列;管道/过滤器。
调用/返回风格:主程序/子程序;面向对象风格;层次结构。
独立构件风格:进程通讯;事件系统。
虚拟机风格:解释器;基于规则的系统。
仓库风格:数据库系统;超文本系统;黑板系统。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
(一)绪论P2:软件复用是在软件开发过程中避免重复劳动的解决方案。
通过软件复用,可以提高软件开发的质量和效率。
P3:基于软件构件的开发有哪些好处?●开发工作构建在已有的成果的基础上。
●可以控制开发复杂性。
●可以控制软件系统部署复杂性。
●简化整个软件需求和开发周期内的工作。
●便于系统升级。
●较好地利用本组织的最佳方法。
●降低开发费用。
●缩短产品投放市场所需的时间。
P4:软件工厂的两个要素(软件“元器件”技术;软件“元器件”的组装)。
(二)构件的基本思想构件与面向对象技术中的对象概念之间的关系。
P5构件的概念:所谓构件,是指可以被独立部署的结构单元,表示构件时基于某种结构与运行模型的,独立于具体应用系统的,可以被另外发布或交付的功能单元,是系统的一个物理的、可单独替换或升级的部分,是对一系列软件操作或实现的包装,这种包装可以用来构造应用程序或更大的构件。
P6构件的要素:1、规范说明2、一个或多个实现3、受约束的构件标准4、包装方法5、部署方法P7 构件的来源:1、从现有的构件中获取符合条件的构件,直接使用或者作适应性修改,得到可复用的构件。
2、提取现有遗产系统的有用功能,这些功能可以包装成构件以在未来使用。
3、从第三方市场上购买现成的商业构件。
4、为满足现有的业务需要从头专门开发的构件。
P7 构件的分类:1、从构件性质来看,构件可以分为抽象构件和具体构件。
①抽象构件:该类构件是适应领域要求,对同领域一族具有共性和变化性的构件进行的抽象。
在抽象构件的接口中有描述领域变化性的成分。
抽象构件一般是不够完整的,在使用之前必须具体化。
②具体构件:该类构件是相对于抽象构件而言的,具体构件描述应用系统固定的构成成分,其接口不具有描述变化性的成分,它可以不加修改地直接复用。
使用具体构件,需要做的只是输入该构件和它所依赖的其他构件。
2、根据构件重用的方式,通常可以分为白匣子、灰匣子和黑匣子三类。
①白匣子:提供构件的同时也提供实现构件的全部源代码。
②灰匣子:灰匣子只提供有关界面部分的源代码,开发人员在应用构件时对构件的内部实现是不清楚的,只能在接口界面上做一些用户化的工作。
③黑匣子:完全不提供源代码,其他构件只能通过构件接口访问这个构件。
3、根据构件的使用范围,可分为专用构件和通用构件。
①专用构件:针对某个领域中的某一特定系统设计开发的构件。
②通用构件:可以被某领域所有组织共享的构件。
4、根据构件的粒度大小,可以分为分布式构件、业务构件和系统级构件。
①分布式构件:这是粒度最小的构件,同时分布式构件也是基于构件的开发方法中一个关键的概念,它作为一种设计工件,在开发生命周期的早期阶段就可以看到,是构建和部署的一个基本单元。
②业务构件:这是中粒度构件,实现单个业务概念的构件。
整个基于构件的开发是以业务构件概念为核心的。
③系统级构件:基于构件的开发方法中粒度最大的构件。
它将业务构件构成的系统进行封装,将该系统作一个整体当作黑盒处理,并且它具有清晰的设计接口。
5、根据构件的功能用途,可以分为系统构件、支撑构件和领域构件①系统构件:在整个构件集成环境和运行环境都使用的构件。
②支撑构件:在构件集成环境及构件管理系统中使用的构件。
③领域构件:为专门领域开发的构件。
6、根据构件重用时状态,可以分为动态构件、链接构件和静态构件①动态构件:在软件运行时可以动态嵌入的构件。
②链接构件:如对象链接和嵌入库(OLE)、动态链接库(DLL)。
③静态构件:如源代码、系统分析构件、系统设计构件。
P8:构件的粒度1、构件粒度的概念一般认为:构件粒度是用来描述构件所提供特征的粗细程度的量化,或者说是构件所提供特征的计算量的大小,但通常难以精确度量。
2、构件粒度的划分大粒度构件、中粒度构件、小粒度构件3、构件粒度与业务模型之间的关系构件的粒度与构件所实现的业务模型的稳定性密切相关,模型越稳定,可能发生变化的机会就越少,那么相应的构件所需要包容的变化就越少,构件的粒度就可以越大;反之亦然。
构件粒度与业务模型之间存在一种双向映射关系。
P10:软件构件技术的研究内容构件获取:有目的地构件生产和从已有系统挖掘提取构件。
构件模型:研究构件的本质特征及架构间的关系。
构件描述语言:以构件模型为基础,解决构件的精确描述、理解及组装问题。
构件分类与检索:研究构件分类策略、组织模式及检索策略,建立构件库系统,支持、构件的有效管理。
构件复合组装:在构件模型的基础上研究构件组装机制,包括源代码级的组装基于运行级的组装。
标准化:构件模型的标准化和构件库系统的标准化。
(三)构件管理和组装技术与软件复用相关的两个基本开发活动是:面向复用的开发和基于构件的软件开发。
一、构件的模型1、构件模型的基本概念软件构件模型是对软件构件本质特征的抽象描述,是对开发可重用软件构件和构件之间相互通信的一组标准的描述,它一般规定了创建和实现构件的指导原则、构件接口的结构、构件与软件架构以及构件与构件之间的交互机制。
构件模型的组成:构件与容器建立构件模型要考虑以下几个因素:表达能力。
简单性。
语言无关性。
一致性。
完备性。
可扩展性。
2、典型的构件模型:CORBA EJB COM/DCOM/COM+二、构件的组装1、构件组装概述构件组装:就是将构件关联起来从而满足某种功能需求。
构件组装成为构件开发方法的核心技术。
2、构件组装过程1)构件组装的一般方法2)本书提出的组装方案在应用本方案进行构件组装时,需要以下几个步骤:首先根据用户需求通过构件视图的可视化编辑工具创建构件视图,生成构件的连接子描述信息和构件视图描述信息其次,根据构件视图在构件库中查找或开发新的构件最后,应用系统自动生成工具根据构件视图描述文档和连接子描述文档将构件组装起来,生成新的应用系统。
3、构件组装分类1)按照组装的时间划分●基于源代码级的组装基于源代码级的组装是一种较低层次的构件组装方法,一般采用源代码复制修改、功能模块调用来组装构件。
基于代码级的组装方法需要开发人员必须可以访问构件的源代码,对构件的实现及有相当程设计软件体系结构框架确定功能构件及构件间关系设计构件接口提取或实现构件构件标准化组装构件构件视图可视化编辑构件描述文档构件视图描述文档连接子描述文档构件库管理应用系统自动生成视图库管理构件库视图库组装后的应用系统度的了解,这种技术是最原始的,不够灵活且效率低下。
●基于运行级的组装基于运行级的组装以构件模型为基础,在构件运行时进行构件之间的服务请求和调用来协调构件之间的行为进行组装;具有很高的灵活性;在分布式异构环境中得到了广泛的应用,成为目前软件构件组装技术研究的一大热点。
2)基于运行级的组装方式按照组装时对构件内部的了解程度又分为●黑盒组装构件组装人员不需要对构件的实现细节有任何了解,也不需要对构件进行任何的修改就可以直接组装构件●白盒组装构件组装人员对构件的实现有清楚的了解,必要时组装人员可以对构件进行修改●灰盒组装介于黑盒组装和白盒组装之间的一种组装方法,通过调整构件的组装机制而不是通过修改构件来完成构件的组装,从而构成满足需求的应用系统3)按照构件组装复杂程度划分●简单组装已知构件接口的语义,直接使用它们进行组装●手工组装使用Java Bean Box等进行的组装●复杂组装有面向动态数据的组装;需要了解构件内部构成知识的组装;需要查询外部模型以确定如何组装●智能组装存储了构件的语义,在组装时能读取该语义,并对组装任务和构件进行推理,实现自动组装。
目前这是构件组装研究中的一个热点和难点问题。
4)按照组装后构件状态的变化●内部组装指构件被集成到系统中,成为系统的固定组成部分。
源代码编译后链接到系统中属于此类组装。
内部组装通常是一种在线组装,构件之间存储于同一台机器中。
●外部组装组装过程中构件是独立运行的,构件之间通过进程间通信实现交互。
远程过程调用,CORBA,WebService组装都是属于这类组装。
通常外部组装属于离线组装。
未来外部组装模式将是主流的组装模式。
5)其他划分方法基于接口的构件组装基于消息传递的构件组装基于复合文档的生成式构件组装5、构件组装描述语言XML1)构件组装描述语言应满足条件●便于描述与理解●支持结构化描述●独立于构件和平台●易于生成和修改●方便扩充1)什么是Web 服务Web 服务是Internet 上一套统一的、开放的标准,它定义了应用程序如何在Web 上实现互操作。
Web 服务的提供者可以使用自己喜欢的任何语言,在任何平台上编写Web 服务,只要Web 服务的使用者可以通过Web 服务标准对这些服务进行查询和访问。
Web 服务中的关键技术:SOAP 、WSDL 、UDDI ,它们都是基于XML 语言的。
2)WEB 服务的体系结构Web 服务是由WSDL 描述服务,UDDI 注册和发现服务,SOAP 访问服务的。
WEB 服务的体系结构包括三个角色:服务提供者、服务请求者、UDDI 服务注册中心3) 基于Web 服务的异构构件组装服务提供者服务使用者服务注册、目录中心注册服务调用服务动态查找/发现服务获取异构构件将异构构件封装成Web 服务在UDDI 注册中心发布Web 服务形成Web 服务构件的组装模型Web 服务构组装部署6、构件组装工具构件组装工具的功能●构件浏览构件组装工具首先应该能够浏览被复用构件的功能规格说明,包括构架层次、构件属性、构件使用的环境等等。
●构件图形化表示在设计过程中,为了便于对构件进行操作,需要将构件在构件空间中以图形化的方式表示出来。
●构件的关联事件关联是构件组装的另外一项核心内容,事件源与事件监听者通过一条有向线进行事件间的关联,事件源对应于构件的某一属性,监听者对应于另一个构件的某一操作。
该动作完成的同时,事件监听者完成了自身向事件源的注册操作。
三、构件库的设计与管理1、构件库的基础知识构件库,顾名思义,就是存储构件的仓库。
关于构件库的概念,不同的研究机构与学者给出了不同形式的定义,目前尚没有一个权威的定义。
本书认为,构件库是一个对构件进行存储与管理的场所。
构件库是一定形式的构件集合,其由构件、容器、构件管理程序三个部分构成。
2)构件库的基本功能:基本功能有:●构件描述:描述构件的基本信息、构件与其他构件之间的交互信息等。
●构件分类:按照不同的分类方法对构件进行分类。
●构件入库:构件入库前会选择构件所属的分类,然后将构件描述信息、构件实体或构件实体地址、构件的相关文档提交到构件库中。
●构件存储:存储构件实体及构件相关信息。
●构件检索:构件检索是构件复用的第一步,也是构件库提供的最重要的功能。
●构件下载:获取满足检索条件的构件,将其下载到本地进行适应性修改或直接复用。
●构件更新:维护构件的版本信息,对构件信息进行升级、替换等。