软件体系结构重点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一:名词解释
构件:语义完整、语法正确和有可重用性价值的单位软件,是软件重用过程中可以明确辨识的系统,结构上,它是语义描述、通信接口和实现代码的复合体。
构件是具有某种功能的可重用的软件模板单元,表示系统中主要的元素和数据存储。
UDDI:Universal Description Discovery and Integration ,UDDI 的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准.
层:层是由一组具有相同抽象级别的构件构成。
模型:通过主观意识借助实体或者虚拟表现、构成客观阐述形态、结构的一种表达目的的物件(物件并不等于物体,不局限于实体与虚拟、不限于平面与立体).
SOA:面向服务的体系结构,(service-oriented architecture)是构造分布式系统的应用程序的方法,它将应用程序功能作为服务发送给最终用户或者其他服务。它采用开放标准、与软件资源进行交互并采用表示的标准方法。
体系结构:软件体系结构是具有一定形式的结构化元素,即构件的集合,包括处理构件、数据构件和连接构件
连接件:表示构件之间的交互.
SOAP:即简单对象访问协议(Simple Object Access Protocol),它是用于交换XML 编码信息的轻量级协议。
WSDL:web Service Description Language 的缩写,是用来描述Web服务和说明如何与Web服务通信的XML语言,为用户提供详细的接口说明书。
Web service:一种新的web应用程序分支,他们是自包含、自描述、模块化的应用,可以发布、定位、通过Web调用.Web service可以执行从简单的请求到复杂商务处理的任何功能。一旦部署以后,其他Web Service可以发现并且调用它部署的服务。Web Service是一种应用程序,它可以使用标准的互联网协议,像超文本传输协议(HTTP)和XML,将功能纲领性地体现在互联网和企业内部网上。可将
Web服务视作Web上的组件编程。
视图:视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据.但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
二、基础原理
体系结构:软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
软件开发的四个过程:1。面向过程,2。面向对象,3.基于组件,4.面向服务。
软件体系结构开发的四个过程:1.“无体系结构”设计阶段(以汇编语言进行小规模应用程序开发为特征),2.萌芽阶段(出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征)3。初期阶段(出现了从不同侧面描述系统的结构模型,以UML为典型代表。)4.高级阶段(以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构模型与传统软件结构的界限,该阶段以Kruchten提出的“4+1"模型为标志)。
软件体系结构核心模型:软件体系的核心模型由5种元素组成:构件、连接件、配置、端口和角色。其中构件、连接件和配置是最基本的元素.
构件:是具有某种功能的可重用的软件模板单元,表示系统中主要的元素和数据存储。
连接件:表示构件之间的交互。
配置:表示构建和连接件的拓扑逻辑和约束.
端口:表示构件和外部连接的交互点。
角色:定义该连接的参与者。
构件作为一个封装的实体,只能通过其接口与外部环境交互,通过不同的端口类型,一个构件可以提供多重接口.
连接件作为建模软件体系结构的主要实体,同样也有接口,由一组角色组成,每一个角色定义了该连接件表示的交互的参与者。
面向过程,开发,语言:面向过程”(Procedure Oriented)是一种以过程为中心的编程思想。”面向过程”也可称之为”面向记录"编程思想,就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。主要语言:Pascal,C。
面向对象思想,语言:面向对象的程序设计语言必须有描述对象及其相互之间关系的语言成分。这些程序设计语言可以归纳为以下几类:系统中一切事物皆为对象;对象是属性及其操作的封装体;对象可按其性质划分为类,对象成为类的实例;实例关系和继承关系是对象之间的静态关系;消息传递是对象之间动态联系的唯一形式,也是计算的唯一形式;方法是消息的序列.面向对象编程(Object-Oreinted Programming) 是一种编程范式。指在设计程序时大量运用类实例对象的方式。OOP一旦在项目中被运用,就成了时刻要考虑的东西.主要语言:C++,JAVA。
面向组件思想,语言:面向组件编程思想,归结起来就是四个字:模块分隔。这里的“分隔”有两层含义,第一就是要“分”,也就是要将应用程序(尤其是大型软件)按功能划分成多个模块;第二就是要“隔”,也就是每一个模块要有相当程度的独立性,要尽量与其他模块“隔”开.这四个字是面向组件编程思想的精华所在,也是COM的精华所在!理解了这四个字,也就真正理解了面向组件编程
的思想。(这里说一点题外话,COM其实是一套规范或者说一套标准,但是在我看来,COM的核心还在于它的思想,也就是面向组件编程思想。标准谁都能定,但是思想只有一个!),基于组件开发(Component-Based Development)是一种软件工程实践,设计时通常要求组件之间高内聚,松耦合。其接口可能是OO 的,调用方式可能是以Service的方式。基于组件开发关注系统层次、子系统边界和子系统间通讯的的设计,处于代码层面但不像OOP的一样是时刻需要运用的东西。
面向服务方法,特点(基本环境要求):面向服务架构(Service—Oreinted Architecture)是将软件设计成一组可互操作的服务的一套原则或方法论。通常在考虑系统架构时才会触及SOA。SOA是英文Service—Oriented Architecture的缩写,是一种进行系统开发的新的体系架构。在基于SOA架构的系统中,具体应用程序的功能是由一些松耦合并且具有统一接口定义方式的组件(也就是Service)组合构建起来的,它因对迅速变化的业务环境具有良好适应力而备受关注。
UML中的9个图:用例图、类图、对象图、顺序图、协作图、状态图、活动图、构件图、部署图。
4+1视图:
“4+1”视图模型从5个不同的视角包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件体系结构.
每一个视图只关心系统的一个侧面,5个视图结合在一起才能反映系统的软件体系结构的全部内容。
(1)逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务。在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。这种分解不但可以用来进行功能分析,而且可用作标识在整个系统的各个不同部分的通用机制和设计元素。
在面向对象技术中,通过抽象、封装和继承,可以用对象模型来代表逻辑视