软件体系结构.docx
- 文档编号:11119541
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:12
- 大小:103.68KB
软件体系结构.docx
《软件体系结构.docx》由会员分享,可在线阅读,更多相关《软件体系结构.docx(12页珍藏版)》请在冰豆网上搜索。
软件体系结构
软件体系结构知识总结
1.什么是软件体系结构?
软件体系结构是以组件和组件之间的关系、组件和环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理。
2.SA的两大流派
(1)决策派:
是在一些重要方面所作出的决策集合
a.关注架构实践中的主体——人,以人的决策为描述对象;
b.归纳了架构决策的类型,指出架构决策不仅包括关于软件系统的组织、元素、子系统和架构风格等几类决策,还包括关于众多非功能需求的决策。
(2)组成派:
将系统描述为组件及组件之间的交互(SA=组件+交互)
a.关注架构实践中的客体——软件,以软件本身为描述对象;
b.分析了软件的组成,即软件由承担不同计算任务的组件组成,这些组件通过相互交互完成更高层次的计算。
3.
软件体系结构的核心模型由构件、连接件、配置(configuration)、端口(port)和角色(role)。
其中构件、连接件和配置是最基本的元素。
例如,RPC的角色为caller和callee,pipe的角色是reading和writing,消息传递连接件的角色是sender和receiver。
软件体系结构的核心模型
4.什么是构建(组件)?
构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。
IEEEP1471标准:
IEEEP1471于2000年9月21日通过IEEE-SA标准委员会评审。
IEEEP1471适用于软件密集的系统,其目标在于:
便于体系结构的表达与交流,并通过体系结构要素及其实践标准化,奠定质量与成本的基础。
IEEEP1471详细介绍了一套体系结构描述的概念框架,并给出建立框架的思路。
但如何描述以及具体的描述技术等方面缺乏更进一步的指导。
5.”4+1”视图
“4+1”模型概述
(1)逻辑视图(LogicalView)
a.设计的对象模型(使用面向对象的设计方法时)。
b.作用:
主要支持系统的功能需求,即系统提供给最终用户的服务。
在逻辑视图中,系统分解成一系列的功能抽象,这些抽象主要来自问题领域。
c.针对的风险承担者:
终端用户
(2)开发视图(Development View)
a.描述了在开发环境中软件的静态组织结构。
b.作用:
开发视图也称实现视图(ImplementationView),主要侧重于软件模块的组织和管理。
开发视图通过系统输入输出关系的模型图和子系统图来描述。
c.针对的风险承担者:
开发人员、程序员
(3)进程视图(ProcessView)
a.捕捉设计的并发和同步特征。
b.作用:
进程视图侧重于系统的运行特性,主要关注一些非功能性的需求。
进程视图强调并发性、分布性、系统集成性和容错能力,以及从逻辑视图中的主要抽象如何适合进程结构。
它也定义逻辑视图中的各个类的操作具体是在哪一个线程中被执行的。
c.针对的风险承担者:
系统集成人员
(4)物理视图(PhysicalView)
a.描述了软件到硬件的映射,反映了分布式特性。
b.作用:
物理视图主要考虑如何把软件映射到硬件上,它通常要考虑到系统性能、规模、可靠性等。
解决系统拓扑结构、系统安装、通讯等问题。
c.针对的风险承担者:
系统工程人员
(5)场景(Scenarios)
场景可以看作是那些重要系统活动的抽象,它使四个视图有机联系起来,从某种意义上说场景是最重要的需求抽象。
在开发体系结构时,它可以帮助设计者找到体系结构的构件和它们之间的作用关系。
同时,也可以用场景来分析一个特定的视图,或描述不同视图构件间是如何相互作用的。
小结:
逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
6.ADL-----ACME
(1)ADL(ArchitectureDescriptionLanguage):
软件体系结构描述语言
(2)ADL的三个基本要素:
a.构件:
计算或数据存储单元。
b.连接件:
用于构件之间交互建模的体系结构构造块及其支配这些交互的规则。
c.体系结构配置:
描述体系结构的构件与连接件的连接图。
(3)在ACME中定义了7种体系结构实体,分别是构件、连接件、系统、端口、角色、表述(representations)和表述映射(map)。
例:
P120
7.什么是软件体系结构的风格?
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式(idiomaticparadigm)。
体系结构风格定义了一个系统家族,即一个体系结构定义一个词汇表和一组约束。
词汇表中包含一些构件和连接件类型,而这组约束指出系统是如何将这些构件和连接件组合起来的。
8.体系结构风格的经典分类
(1)数据流风格:
批处理序列;管道/过滤器
(2)调用/返回风格:
主程序/子程序;面向对象风格;层次风格
(3)独立构件风格:
进程通讯;事件系统
(4)虚拟机风格:
解释器;基于规则的系统
(5)仓库风格:
数据库系统;超文本系统;黑板系统
9.管道/过滤器
每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。
这个过程通常通过对输入流的变换及增量计算来完成,所以在输入被完全消费之前,输出便产生了。
这里的构件被称为过滤器,这种风格的连接件就象是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。
管道和过滤器风格的优点:
使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;
允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
支持软件重用。
只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;
系统维护和增强系统性能简单。
新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;
允许对一些如吞吐量、死锁等属性的分析;
支持并行执行。
每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行。
管道和过滤器的缺点:
通常导致进程成为批处理的结构。
这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换;
不适合处理交互的应用。
当需要增量地显示改变时,这个问题尤为严重;
因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
10.三层C/S
表示层:
是应用的用户接口部分,担负着用户与应用间的对话功能。
功能层:
相当于应用的本体,它是将具体的业务处理逻辑编入程序中。
数据层:
就是数据库管理系统,负责管理对数据库数据的读写。
11.C/S与B/S混合的两种模式
(1)“内外有别”模型
在C/S与B/S混合软件体系结构的“内外有别”模型中,企业内部用户通过局域网直接访问数据库服务器,软件系统采用C/S体系结构;企业外部用户通过Internet访问Web服务器,通过Web服务器再访问数据库服务器,软件系统采用B/S体系结构。
“内外有别”模型的结构图如下:
“内外有别”模型的优点是外部用户不直接访问数据库服务器,能保证企业数据库的相对安全。
企业内部用户的交互性较强,数据查询和修改的响应速度较快。
“内外有别”模型的缺点是企业外部用户修改和维护数据时,速度较慢,较繁琐,数据的动态交互性不强
(2)“查改有别”模型
在C/S与B/S混合软件体系结构的“查改有别”模型中,不管用户是通过什么方式(局域网或Internet)连接到系统,凡是需执行维护和修改数据操作的,就使用C/S体系结构;如果只是执行一般的查询和浏览操作,则使用B/S体系结构。
“查改有别”模型的结构如下图:
“查改有别”模型体现了B/S体系结构和C/S体系结构的共同优点。
但因为外部用户能直接通过Internet连接到数据库服务器,企业数据容易暴露给外部用户,给数据安全造成了一定的威胁。
12.什么是面向服务的软件体系结构(SOA)?
W3C定义:
SOA(serviceorientedarchitecture)为一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程。
13.PaaS、IaaS、SaaS分别是什么?
(1)PaaS(Platform-as-a-Service:
平台即服务)
PaaS提供了基础架构,软件开发者可以在这个基础架构之上建设新的应用,或者扩展已有的应用,同时却不必购买开发、质量控制或生产服务器。
S的F、Google的App Engine和微软的Azure(微软云计算平台)都采用了paas的模式。
这些平台允许公司创建个性化的应用,也允许独立软件厂商或者其他的第三方机构针对垂直细分行业创造新的解决方案。
(2)IaaS(Infrastructure-as-a-service:
基础设施即服务)
IaaS通过互联网提供了数据中心、基础架构硬件和软件资源。
IaaS可以提供服务器、操作系统、磁盘存储、数据库和/或信息资源。
IaaS的主要用户是系统管理员。
最高端IaaS的代表产品是亚马逊的AWS(Elastic Compute Cloud—EC2),不过IBM、Vmware和惠普以及其他一些传统IT厂商也提供这类的服务。
IaaS通常会按照"弹性云"的模式引入其他的使用和计价模式,也就是在任何一个特定的时间,都只使用你需要的服务,并且只为之付费。
(3)SaaS(Software-as-a-service,软件即服务)
Saas是最为成熟、最出名,也是得到最广泛应用的一种云计算。
可以将它理解为一种软件分布模式,在这种模式下,应用软件安装在厂商或者服务供应商那里,用户可以通过某个网络来使用这些软件,通常使用的网络是互联网。
这种模式通常也被称为"随需应变(on demand)"软件,这是最成熟的云计算模式,因为这种模式具有高度的灵活性、已经证明可靠的支持服务、强大的可扩展性,因此能够降低客户的维护成本和投入,而且由于这种模式的多宗旨式的基础架构,运营成本也得以降低。
如搜索引擎、地图服务。
14.ATAM九大步骤
(1)软件体系结构评估的主要方式
a.基于调查问卷或检查表的评估方式
b.基于场景的评估方式
c.基于度量的评估方式
(2)基于场景的方式由SEI首先提出并应用在体系结构权衡分析方法(ArchitectureTradeoffAnalysisMethod,ATAM方法)和软件体系结构分析方法(SoftwareArchitectureAnalysisMethod,SAAM方法)中。
(3)ATAM评估过程包括九个步骤:
a.描述阶段:
①描述ATAM方法②描述商业动机③描述体系结构
b.调查分析阶段:
④确定体系结构方法⑤生成质量属性效用树⑥分析体系结构方法
c.测试阶段:
⑦讨论和对场景进行分级⑧分析体系结构方法
d.形成报告:
⑨描述评估结果
(4)风险承担者群体
评估小组/客户代表/体系结构设计小组(①②③④⑤⑥⑧)
所有承担者(⑦⑨)
15.MVC
它包括三类对象:
(1)模型(Model)对象:
是应用程序的主体部分,实现系统中的业务逻辑,通常可以用JavaBean或EJB来实现。
(2)视图(View)对象:
是应用程序中负责生成用户界面的部分,用于与用户交互,通常用JSP来实现。
(3)控制器(Control)对象:
它是Model与View之间的沟通桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射成为模型层可执行的操作。
它们之间的关系和各自的主要功能如下图:
模型、视图与控制器的分离,使得一个模型可以具有多个显示视图。
如果用户通过某个视图的控制器改变了模型的数据,那么所有其他依赖于这些数据的视图都应反映这些变化。
因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。
这实际上是一种模型的变化-传播机制
16.几对概念辨析
(1)SOA=Web服务-------(错)
SOA与Web服务的区别:
SOA是一种架构,web服务可以说是基于这种架构的实例。
SOA是架构,而Web服务规范则定义了一个支持SOA的互操作平台。
SOA与WEB服务的联系:
就目前来看,web服务是实现SOA的最好方式,所以他们常常被人们提及。
就像讲面向对象程序设计而提java一样。
所以说,web服务是实现SOA的一种技术方法,而SOA不一定非要web服务来实现,不用WEB服务一样能够实现SOA;反之,web服务也不一定就是SOA的实现,也就是不一定是采用的SOA架构。
(2)软件体系结构=软件框架----------(错)
构架(architecture):
它是对软件系统的系统组织,是对构成系统的构件的接口,行为模式,协作关系等体系问题的决策总和。
它不仅涉及到结构与行为,而且还涉及到系统的使用,功能,性能,适应性,重用性,可理解性,经济性和技术约束的权衡和美学考虑。
框架(framework):
它是一种为特定的领域内的应用提供可扩展模板的构架实例。
体系结构与框架(Framework)的区别与联系如下:
a.呈现形式不同。
体系结构的呈现形式是一个设计规约,而框架则是程序代码。
b.目的不同。
体系结构的首要目的大多是指导一个软件系统的实施与开发;而框架的首要目的是为复用.因此,一个框架可有其体系结构,用于指导该框架的开发,反之不然。
c.有种特殊的体系结构,DSSA(领域特定体系结构)其首要目的也是为了复用。
d.有个叫体系结构风格的东西,将它用程序代码实现后就成了CORBA,COM之类的东西,它们俩叫体系结构框架,也叫中间件集成框架,又有人愿意叫它对象中间件。
(3)软件模式=设计模式-------(错)
设计模式和软件框架在软件设计中是两个不同的研究领域。
设计模式研究的是一个设计问题的解决方法,一个设计模式可以应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体。
虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中使用。
总之,框架是软件,而设计模式是软件的知识体,提升框架的设计水平。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构