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)无体系结构设计阶段。以汇编语言进行小规模应用程序开发为特征。
(2)萌芽阶段。出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征。(3)初期阶段。
出现了从不同侧面描述系统的结构模型,以uml为典型代表。(4)高级阶段。以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构与传统软件结构的界限,该阶段以kruchten提出的“4+1”模型为标志。
通用体系结构风格分类
数据流风格:批处理序列、管道与过滤器。
调用/返回风格:主程序与子程序、面向对象风格、层次结构。
独立构件风格:进程通信、事件系统。
虚拟机风格:解释器、基于规则的系统。
仓库风格:黑板系统、传统型数据库。
管道与过滤器。
特点:(1)使得软构件具有良好的内聚、耦合的特点。
2)允许设计师将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成。
3)支持软件重用。
4)系统维护和增强系统性能简单。
5)允许对一些如吞吐量、死锁等属性的分析。
6)支持并行执行。
缺点:(1)通常导致进程成为批处理的结构。
2)不适合处理交互的应用。
3)系统性能下降,并增加了编写过滤器的复杂性。
结构示意图:
面向对象系统。
优点:(1)因为对象对其他对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象。
2)设计师可将一些数据存取操作的问题分解成一些交互的**程序的集合。
缺点:1)为了使一个对象和另一个对象通过过程调用等进行交互,必须知道对象的标识。只要一个对象的标识改变了,就必须修改所有其他明确调用它的对象。
2)必须修改所有显示调用它的其他对象,并消除由此带来的一些***。
基于事件的隐式调用。
思想:构件不直接调用一个过程,而是出发或广播一个或多个事件。
应用系统的例子:
1)在编程环境中用于集成各种工具,在数据库管理系统中确保数据的一致性约束,在用户界面系统中管理数据,以及在编辑器中支持语法检查。
2)某系统中,编辑器和变量监视器可以登记相应debugger的断点事件。当debugger在断点处停下时,它声明该事件,由系统自动调用处理程序,如编辑程序可以卷屏到断点,变量监视器刷新变量数值。
优点:1、为软件重用提供了强大的支持。
2、 为改进系统带来了方便。
缺点:1)构件放弃了对系统计算的控制。
2)数据交换的问题。
3)既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理存在问题。
分层系统举例:层次系统最广泛的应用是分层通信协议。在这一应用领域中,每一层提供一个抽象的功能,作为上层通信的基础。较低的层次定义低层的交互,最低层通常只定义硬件物理连接。
优点:1、支持基于抽象程度递增的系统设计,使设计者可以把一个复杂的系统按照递增的顺序分解。
2、支持功能增强,因为每一层至多与相邻的上下层进行交互,因此功能改变最多影响相邻的上下层。
3、 支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。
缺点:(1)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来。(2)很难找到一个合适的、正确的层次抽象方法。
仓库系统。传统型数据库:输入流中某类时间触发进程执行的选择。
黑板系统:**数据结构的当前状态触发进程执行的选择。
组成部分:(1)知识源(2)黑板数据结构(3)控制。
客户/服务器风格。
优点:1)具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。
2)系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。
3)系统中的功能构件充分隔离,客户应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用程序中都要对一个dbms进行编码。将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。
缺点:(1)开发成本较高 ;
2)客户端程序设计复杂 ;
3)信息内容和形式单一;
4)用户界面风格不一,使用繁杂,不利于推广使用 ;
5)软件移植困难 ;
6)软件维护和升级困难 ;
7)新技术不能轻易应用 。
集中式计算技术的缺点:
1)随着系统规模的扩大和功能的提高,集中式系统的复杂性迅速增长,给管理、维护带来困难;
2)对组织变革和技术发展的适应性差,应变能力弱;
3)不利于发挥用户在系统开发、维护、管理方面的积极性与主动精神;
4)系统比较脆弱。主机出现故障时可能使整个系统停止工作。
服务器主要任务:
1)数据库安全性的要求;
2)数据库访问并发性的控制;
3)数据库前端的客户应用程序的全局数据完整性规则;
4)数据库的备份与恢复。
客户应用程序主要任务:
1)提供用户与数据库交互的界面;
2)向数据库服务器提交用户请求并接收来自数据库服务器的信息;
3)利用客户应用程序对存在于客户端的数据执行应用逻辑要求。
三层 c/s 风格。
与二层 c/s 体系结构的不同:
优点:1、允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。
2、 允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。
3、应用的各层可以并行开发,各层也可以选择各自最适合的开发语言,使之高效并行地开发,达到较高的性能**比;对每一层的处理逻辑的开发和维护也会更容易些。
4、允许充分利用功能层有效地隔离开表示层与数据层,未授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,为严格的安全管理奠定了坚实的基础;整个系统的管理层次也更加合理和可控制。
表示层、功能层、数据层主要功能三层风格不同物理结构比较。
表示层:表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。
功能层:功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。
数据层:数据层就是数据库管理系统,负责管理对数据库数据的读写。
中间件概念:是一个用api定义的软件层,是具有强大通信能力和良好可扩展性的分布式软件管理框架。
功能:在客户机和服务器或者服务器和服务器之间传送数据,实现客户机群和服务器群之间的通信。
浏览器/服务器风格模式结构示意图。
与 c/s 比较其优点: 1、基于b/s体系结构的软件,系统安装、修改和维护全在服务器端解决。用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了“零客户端”的功能,很容易在运行时自动升级。
2、 b/s体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。
缺点:1、b/s体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
2、 b/s体系结构的系统扩展能力差,安全性难以控制。
3、 采用b/s体系结构的应用系统,在数据查询等响应速度上,要远远地高于c/s体系结构。
4、 b/s体系结构的数据提交一般以页面为单位,数据的动态交互性强,有利于**事务处理(oltp)应用。
公共对象请求**结构 corba:是由omg制定的一个工业标准,其主要目标是提供一种机制,使得对象可以透明地发出请求和获得应答,从而建立起一个异质的分布式应用环境。
接口定义语言:corba的xml是一种说明性语言,描述面向对象系统开发所遵循的接口与实现相分离的基本原则。
调用机制:把idl说明编译成面向对象程序设计语言的实**后,客户可以调用已知对象的操作。在某些应用中,用户并不了解应用接口编译信息,但也要求调用对象的操作,这时就要动态调用接口来调用用户的操作了。
异构结构风格不同的体系结构有不同的处理能力,面对具体问题,混合软件体系结构处理问题能够结合各自的优点,这种体系结构被称为异构结构。
软件体系结构知识点完整
1 构件是核心和基础,重用是必需的手段。2 软件重用是指在两次或多次不同的软件软件开发过程中重复使用相同或相近软件元素的过程。3 软件元素包括程序 设计文档 设计过程 需求分析文档甚至领域知识。4 把可重用的元素称作软构件,简称为软构件。5 可重用软件元素越大,就说重用的粒度越大。6 构件是指语义完...
软件体系结构
课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...
软件体系结构
课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...