4 1体系结构视图
- 格式:ppt
- 大小:346.00 KB
- 文档页数:64
第一部分-------填空,选择,判断1.软件工程三个要素:方法、工具和过程2.软件元素:程序代码、测试用例、设计文档、设计过程、需求分析文档3.构件分类:关键字分类刻画分类法和超文本组织法4.软件体系结构技术反战经历四个阶段(1)无体系结构设计阶段----以汇编语言进行小规模应用程序开发(2)萌芽阶段-----以控制流图和数据流图构成软件结构为特征(3)初期阶段-----出现了从不同侧面描述系统的结构模型,UML(4)高级阶段-----描述系统的高层抽象结构,出现“4+1”模型5.软件体系结构模型:结构模型、框架模型、动态模型、过程模型和功能模型。
6.“4+1”视图模型从五个不同的视角,包括逻辑试图,进程试图,物理视图,开发视图和场景视图来描述软件体系结构。
逻辑视图主要支持系统的功能需求,是系统提供给最终用户的服务。
通过抽象,封装和继承,可以用对象模型来代表逻辑视图,用类图来描述逻辑视图;开发视图也称模块视图,主要侧重于软件模块的组织和管理,主要考虑软件内部的需求,如软件开发的容易性、软件的重用等,通过系统输入输出关系的模型图和子系统图来描述,提供给编程人员的;进程视图侧重于系统的运行特性,主要关注非功能性的需求,如系统的性能和可用性。
进程视图强调并发性、分布性、系统集成性和容错能力管道和过滤器风格、客户/服务器风格等适合进程视图,提供给系统集成人员的;物理视图主要考虑如何把软件映射到硬件上,它通常考虑系统性能、规模、可靠性等,解决系统拓扑结构、系统安装、通信问题,提供给系统工程人员的。
而场景是那些重要系统活动的抽象,它使四个视图有机联系起来,是最重要的需求抽象,它可以帮助设计者找到系统结构的构件和他们之间的作用关系。
总之,逻辑视图和开发视图描述系统的静态结构,而进程视图和物理视图描述系统的动态结构。
软件体系结构的核心模型由五中元素组成:构件、连接件、配置、端口和角色。
7. 软件体系结构的核心模型由五中元素组成:构件、连接件、配置、端口和角色。
1.基于构件的软件开发的优势是什么?基于构件的软件将软件开发的重点从程序编写转移到了基于已有构件的组装,更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低了软件开发的费用2.尝试用自己的语言介绍Kruchten的“4+1”模型。
Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。
每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。
3.在希赛公司的一个财务管理系统,财务部要客户提供…………4.不同的体系结构风格具有各自的特点、优劣和用途。
试对管道-过滤器风格、事件驱动风格、分层系统、C2风格和基于消息总线的风格进行分析比较。
P52-56(1)管道和过滤器特点:@使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;@允许设计者将整个系统的输入输出行为看成是多个过滤器的行为的简单合成;@支持软件重用。
只要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来;@系统维护和增强系统性能简单。
新的过滤器可以添加到现有系统中来;旧的可以被改进的过滤器替换掉;@允许对一些如吞吐量、死锁等属性的分析;@支持并行执行。
每个过滤器是作为一个单独的任务完成,因此可与其它任务并行执行缺点:①通常导致进程成为批处理的结构。
②不适合处理交互的应用。
③因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
(2)(3)分层系统体系结构有以下优点:第一,支持基于抽象程度递增的系统设计。
这允许设计者可以将一个复杂系统设计按递增的步骤进行分解。
第二,支持功能增强。
因为每层至多和与之相邻的上层和下层交互,所以,改变某层的功能最多只会影响与之相邻的其它两层。
第三,支持重用。
与抽象数据类型一样,只要对相邻层提供同样的接口,每层可以有很多不同的可相互替代的实现方法。
体系结构蓝图—软件体系结构的+视图(中文版)————————————————————————————————作者:————————————————————————————————日期:本文基于多个并发视图的使用情况来说明描述软件密集型系统架构的模型。
使用多重视图允许独立地处理各"风险承担人":最终用户、开发人员、系统工程师、项目经理等所关注的问题,并且能够独立地处理功能性和非功能性需求。
本文分别对五种视图进行了描述,并同时给出了捕获每种视图的表示方法。
这些视图使用以架构为中心的、场景驱动以及迭代开发过程来进行设计。
引言我们已经看到在许多文章和书籍中,作者欲使用单张视图来捕捉所有的系统架构要点。
通过仔细地观察这些图例中的方框和箭头,不难发现作者努力地在单一视图中表达超过其表达限度的蓝图。
方框是代表运行的程序吗?或者是代表源代码的程序块吗?或是物理计算机吗?或仅仅是逻辑功能的分组吗?箭头是表示编译时的依赖关系吗?或者是控制流吗?或是数据流吗?通常它代表了许多事物。
是否架构只需要单个的架构样式?有时软件架构的缺陷源于过早地划分软件或过分的强调软件开发的单个方面:数据工程、运行效率、开发策略和团队组织等。
有时架构并不能解决所有"客户"(或者说"风险承担人",USC 的命名)所关注的问题。
许多作者都提及了这个问题:Garlan & Shaw 1、CMU 的Abowd & Allen、SEI 的Clements。
作为补充,我们建议使用多个并发的视图来组织软件架构的描述,每个视图仅用来描述一个特定的所关注的方面的集合。
架构模型软件架构用来处理软件高层次结构的设计和实施。
它以精心选择的形式将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性需求,如可靠性、可伸缩性、可移植性和可用性。
Perry 和Wolfe 使用一个精确的公式来表达,该公式由Boehm 做了进一步修改:软件架构={元素,形式,关系/约束}软件架构涉及到抽象、分解和组合、风格和美学。
程序员教程张友生版课后答案一、选择题←不属于软件体系结构的核心模型的最基本的元素是DA构件B连接件C配置D角色2、选项中不属于“4+1"视图模型的是: (D)A逻辑视图B物理视图C连接视图D开发视图3、下列说法错误的一项的是(D)A :逻辑视图主要支持系统的功能需求,即系统提供给最终用户的服务B:开发视图也称模块视图,主要侧重于软件模块的组织和管理C:进程视图侧重与系统的运行特性,主要关注一些功能性需求,例如系统的性能和可用性。
D:物理视图主要考虑如何把软件映射到硬件上,它不需要考虑到系统性能、规模、可靠性等。
4、Kruchten 在1995提出了“4+1"模型,从5个不同的视角来描述软件体系结构,其中“4”不包括的视图是(D) ?A逻辑视图B开发视图C物理视图D场景视图5、下列哪个选项是描述系统的静态结构(A)A.逻辑视图和开发视图B.进程视图和物理视图C.开发视图和物理视图D.开发视图和进程视图开发视图也称模块视图,主要侧重于软件模块的组织和管理6、在三层C/S体系结构中,(A) 是最重要的构件。
A中间件B末尾件C功能层D数据层7 C/S系统中,服务器的以下任务中哪一个是错的? (A)A数据库一致性要求B数据库访问并发性控制C数据库前端的客户应用程序的全局数据完整性规则D数据库的备份与恢复8、与C/S体系结构相比,B/S体系结构也有许多不足之处一下说法正确的是(A)A :B/S体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理能力。
B :B/S体系结构的系统扩展能力差,但是安全性比较容易控制。
C:采用B/S体系结构的应用系统,在数据查询等响应速度上,要远远的高于C/S体系结构。
D:B/S体系结构的数据提交-般以页面为单位,数据的动态交互性不强,利于在线事务处理. (Online Transaction Processing, OLTP)应用。
9、通常,一个Web服务可以分为4个逻辑层,分别为数据层(Data Layer) 、数据访问层(Data Access Layer) 、业务层(Business Layer) 和监听者(Listener) 。
本文基于多个并发视图的使用情况来说明描述软件密集型系统架构的模型。
使用多重视图允许独立地处理各"风险承担人":最终用户、开发人员、系统工程师、项目经理等所关注的问题,并且能够独立地处理功能性和非功能性需求。
本文分别对五种视图进行了描述,并同时给出了捕获每种视图的表示方法。
这些视图使用以架构为中心的、场景驱动以及迭代开发过程来进行设计。
引言我们已经看到在许多文章和书籍中,作者欲使用单张视图来捕捉所有的系统架构要点。
通过仔细地观察这些图例中的方框和箭头,不难发现作者努力地在单一视图中表达超过其表达限度的蓝图。
方框是代表运行的程序吗?或者是代表源代码的程序块吗?或是物理计算机吗?或仅仅是逻辑功能的分组吗?箭头是表示编译时的依赖关系吗?或者是控制流吗?或是数据流吗?通常它代表了许多事物。
是否架构只需要单个的架构样式?有时软件架构的缺陷源于过早地划分软件或过分的强调软件开发的单个方面:数据工程、运行效率、开发策略和团队组织等。
有时架构并不能解决所有"客户"(或者说"风险承担人",USC 的命名)所关注的问题。
许多作者都提及了这个问题:Garlan & Shaw 1、CMU 的 Abowd& Allen、SEI 的Clemen ts。
作为补充,我们建议使用多个并发的视图来组织软件架构的描述,每个视图仅用来描述一个特定的所关注的方面的集合。
架构模型软件架构用来处理软件高层次结构的设计和实施。
它以精心选择的形式将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性需求,如可靠性、可伸缩性、可移植性和可用性。
Perry和 Wolfe使用一个精确的公式来表达,该公式由 Boehm做了进一步修改:软件架构={元素,形式,关系/约束}软件架构涉及到抽象、分解和组合、风格和美学。
软件架构设计之“4+1”视图模型1、软件架构设计 软件架构是具有⼀定形式的结构话元素,即构件的集合,包括处理构件、数据构件和连接构件。
处理构件负责对数据进⾏加⼯,数据构建是被加⼯的信息,连接构件把架构不同部分负责连接起来。
软件架构是软件设计过程中⼀个层次,这⼀层次超越计算过程中的算法设计和数据结构设计。
2、软件架构建模 设计软件架构的⾸要问题是如何表⽰软件架构,即对软件架构建模。
根据建模的侧重点不同,可以讲软件建构的模型分为5种,分别是结构模型、框架模型、动态模型、过程模型和功能模型。
2.1结构模型这是⼀个最直观、最普遍的建模⽅法。
这种⽅法以架构的构件、连接件和其他概念呢来刻画架构,并⼒图通过结构来反映系统的重要寓意内容,包括系统的配置、约束、隐含的假设条件、风格和性质等。
研究结构模型的核⼼是架构描述语⾔。
2.2框架模型框架模型和结构模型类似,但他不太侧重描述结构的细节⽽更侧重与整体的结构。
框架模型主要以⼀些特殊的问题为某表建⽴⾄针对和适应该问题的结构。
2.3动态模型动态模型是对结构或框架模型的补充,研究系统“⼤颗粒”的⾏为性质例如,描述系统的重新配置活演化。
动态可以指系统的总体结构和配置、建⽴活拆除通信通道或计算的过程。
这类系统是激励型的。
2.4过程模型过程模型研究构造系统的步骤和过程,因⽽结构是遵循某些过程脚本的结果。
2.5功能模型该模型认为架构是⼀组功能构件按层次组成,下层向上提供服务。
它可以看作是⼀种特殊的框架模型。
在这5中模型中,最常⽤的是结构模型和动态模型。
这5中模型各有所长,将5中模型有机地统⼀在⼀起,形成⼀个完整的模型来刻画软件架构更合适。
例如,Kruchten在1995年提出了“4+1”视图模型。
3、“4+1”视图模型 “4+1”视图模型从5个不同的视⾓包括逻辑视图、进程视图、物理视图、开发视图和场景视图来描述软件架构。
每个视图只关⼼系统的⼀个侧⾯,5个视图结合在⼀起才能反映系统软件架构的全部内容。
软件体系结构试题库(软件工程)一、判断题4、软件体系结构充当一个理解系统构件和它们之间关系的框架,特别是那些始终跨越时间和实现的属性。
答案:√6、体系的核心模型由5种元素组成:构建、连接体、配置、端口和角色()答案:√7、软件体系结构的核心由5种元素组成:构件、连接件、配置端口和角色。
其中,构件、连接件和配置是最基本的元素()答案:√8、开发视图主要支持系统的功能需求,即系统提供给最终用户的服务()答案:某9、构件、连接件以及配置是体系结构的核心模型最基本的元素()答案:√10、HMB风格不支持系统系统自顶向下的层次化分解,因为它的构件比较简单。
答案:某11、正交软件体系结构由组织层和线索的构件构成。
答案:√12、基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。
答案:√13、线索是子系统的特例,它由完成不同层次功能的构建组成,每一条线索完成整个系统中相对独立的一部分功能。
()答案:√15、相交关系R是一个等价关系。
答案:√16、在软件设计中占据着主导地位的软件体系结构描述方法是图形表达工具。
答案:√17、Rapide是一种可执行的ADL,其目的在于通过定义并模拟基于事件的行为对分布式同步系统建模。
答案:某18、体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之后,软件设计之前进行。
答案:√19、基于软构件的系统描述语言是较好的一种以构件为单位的软件系统描述语言。
答案:√20、需求语言与ADL的区别在于后者描述的是问题空间,而前者则扎根于解空间中。
答案:某21、基于构件的动态系统结构模型分为三层,风别是应用层、中间层、和体系结构层。
答案:√22、ADL提供了一种形式化机制来描述软件体系结构,大多数ADL不进描述系统的静态结构,也支持对体系结构动态性的描述()答案:某23、基于构件的动态系统结构模型分为应用层,中间层和体系结构层。
答案:√24、2000年世界计算机大会提出,软件体系结构中最为重要的三个研究方向是:体系结构风格,静态体系结构和动态体系结构。
本文基于多个并发视图的使用情况来说明描述软件密集型系统架构的模型。
使用多重视图允许独立地处理各"风险承担人":最终用户、开发人员、系统工程师、项目经理等所关注的问题,并且能够独立地处理功能性和非功能性需求。
本文分别对五种视图进行了描述,并同时给出了捕获每种视图的表示方法。
这些视图使用以架构为中心的、场景驱动以及迭代开发过程来进行设计。
引言我们已经看到在许多文章和书籍中,作者欲使用单张视图来捕捉所有的系统架构要点。
通过仔细地观察这些图例中的方框和箭头,不难发现作者努力地在单一视图中表达超过其表达限度的蓝图。
方框是代表运行的程序吗?或者是代表源代码的程序块吗?或是物理计算机吗?或仅仅是逻辑功能的分组吗?箭头是表示编译时的依赖关系吗?或者是控制流吗?或是数据流吗?通常它代表了许多事物。
是否架构只需要单个的架构样式?有时软件架构的缺陷源于过早地划分软件或过分的强调软件开发的单个方面:数据工程、运行效率、开发策略和团队组织等。
有时架构并不能解决所有"客户"(或者说"风险承担人",USC 的命名)所关注的问题。
许多作者都提及了这个问题:Garlan & Shaw 1、CMU 的Abowd & Allen、SEI 的Clements。
作为补充,我们建议使用多个并发的视图来组织软件架构的描述,每个视图仅用来描述一个特定的所关注的方面的集合。
架构模型软件架构用来处理软件高层次结构的设计和实施。
它以精心选择的形式将若干结构元素进行装配,从而满足系统主要功能和性能需求,并满足其他非功能性需求,如可靠性、可伸缩性、可移植性和可用性。
Perry 和Wolfe 使用一个精确的公式来表达,该公式由Boehm 做了进一步修改:软件架构={元素,形式,关系/约束}软件架构涉及到抽象、分解和组合、风格和美学。
我们用由多个视图或视角组成的模型来描述它。
为了最终处理大型的、富有挑战性的架构,该模型包含五个主要的视图(请对照图1):•逻辑视图(Logical View),设计的对象模型(使用面向对象的设计方法时)。