标签(空格分隔): 未分类
回顾课本和TTP课件
(1)无体系结构阶段、(2)萌芽阶段、(3)初期阶段、(4)高级阶段
( 软件危机 )主要包含两方面的问题:如何开发软件以满足对软件日益增长的需求;如何维护数量不断高速增长的已有软件。
软件体系结构的核心模型主要包括:(构件、连接件、配置约束)。
(软件重用技术)有助于提高软件开发的生产率,提高软件系统的可靠性,减少软件维护的负担。
(软件构件技术)是软件重用的核心与基础。
基于构件的软件开发的基本思想是?
将用户需求分解为一系列的子功能构件,在开发过程中不必重新设计这些基本功能模块,只需从现有构件库中寻找合适的构件来组装应用系统。
软件体系结构应该以模型的形式具体化。
实践派风格:使用通用的建模符号,强调实践可行性。
学院派风格:使用了体系结构描述语言(ADL),侧重于软件体系结构形式化理论的研究。
体系结构描述语言有
UML与ADL之间的关系
基于UML的软件体系结构描述
UML应用于用例驱动的、以体系结构为中心的、迭代的和渐增式的开发过程。
Kruchten提出了“4+1”视图模型“。
逻辑视图定义了系统的目标;开发视图和过程视图提供了详细的系统设计实现方案;物理视图解决了系统的拓扑结构、安装和通信问题;场景反映了完成上述任务的组织结构。
UML视图和图
主要的域 | 视图 | 图 | 主要概念 |
---|---|---|---|
结构 | 静态视图 | 类图 | 类、关联、泛化、依赖关系、实现、接口 |
用例视图 | 用例图 | 用例、参与者、关联、扩展、包括、用例泛化 | |
实现视图 | 构件图 | 构件、接口、依赖关系、实现 | |
部署视图 | 部署图 | 节点、构件、依赖关系、位置 | |
动态 | 状态视图 | 状态图 | 状态、事件、转换、动作、 |
活动视图 | 活动图 | 状态、活动、完成转换、分叉、结合 | |
交互视图 | 顺序图 | 交互、对象、消息、激活 | |
协作图 | 协作、交互、协作角色、消息 | ||
模型管理 | 模型管理视图 | 类图 | 报、子系统、模型 |
可扩展性 | 所有 | 所有 | 约束、构造型、标记值 |
图书管理系统实验
具体的软件体系结构的设计包括非形式化描述、规范描述、求精及验证、实施、改革或扩展、评估和度量以及终结等七个阶段
软件体系结构风格的定义:由组织规则及结构构成,是描述领域中系统组织方式的惯用模式。是对某一特定领域中系统所共有的结构和语义特性的反映。
体系结构风格的分类:
数据流风格:
调用/返回风格:
主程序/子程序
面向对象风格
层次结构
虚拟机构格:
C/S体系结构风格
客户机/服务器(C/S)就是Client/Server模式,针对资源不对等问题而提出的一种共享策略。C/S结构通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,充分利用两端硬件环境的优势。
C/S主要包括三个部分:数据库服务器、客户机和网络。
对于数据库应用程序,DBMS可以为应用程序提供针对底层结构的管理。应用的服务器部分是运行在远程主机上的数据库引擎。而该应用的客户部分则是运行在本地计算机上的数据库查询程序,它们之间的通信是借助于DBMS提供的网络协议实现的。如下图所示:
两层C/S体系结构的处理流程如下图:
C/S暴露出的不足:
三层C/S体系结构:将客户机和服务器中的部分业务逻辑抽取出来,形成功能层,放在应用服务器上。
B/S体系结构风格
浏览器/服务器结构(Browser/Server)B/S体系结构如图所示:
在B/S结构模式中,数据库是存储数据的主要场所。B/S结构模式如下图所示:
B/S结构的一个典型的例子是教务在线管理平台的系统架构,如下图所示:
优点:
C/S 与 B/S 区别
独立构件风格:
进程通迅
事件驱动体系结构风格
事件驱动架构是由一系列的系统组件构成的,组件之间共同作用完成系统的功能。如图所示,这些组件之间的联接是管道化的和多模块化的,通过形成并发的事件流对企业业务事件进行处理。
事件驱动架构的组成如图所示:
将这些不同的组件细分为五类:
优点:
缺点:
数据共享体系结构风格(仓库风格)
仓库风格有两类部件:一类是中心数据结构部件,又可称作“数据仓库”(Repository),表示系统的当前状态;另一类是一组相对独立的部件集,它们可以以不同方式与数据仓库进行交互,这也就是数据共享体系结构的技术实现基础。
C2体系结构风格
MVC体系结构风格
反馈控制环体系结构风格
公共对象请求代理体系结构风格
正交软件体系结构风格
RIA(Rich Internet Application) 体系风格
REST软件体系结构风格
插件体系结构风格以
面向服务(Service Oriented Architecture,SOA)软件体系结构风格
下列哪个选项是描述系统的静态结构( A)
A.逻辑视图和开发视图
B.进程视图和物理视图
C.开发视图和物理视图
D.开发视图和进程视图
Unicon提供了一组预先定义的构件和连接件,这是为了达到( A)
A:提供对大量构件和连接件的统一访问;
B:区分不同类型的构件和连接件,以便对体系结构配置进行检查;
C:支持不同表达方式和不同开发人员的分析工具;
D:支持有构件的使用。
下列选项中关于ADL与其他语言的比较说法中错误的是( B)
A:ADL与需求语言的区别在于后者描述的问题空间,而前者则扎根与解空间中;
B: ADL与建模语言的区别在于后者对部分的关注要大于对整体的关注;
C:ADL与传统的程序设计语言的构成元素由许多相同和相似之处,又各自有着很大的不同;
D:ADL集中在构件的表示上。
软件架构模式描述了如何将各个模块和子系统有效地组织成一个完整的系统。诸如Word和Excel这类图形界面应用软件所采用的架构模式是(D )。
A.分层模式
B.知识库模式
C.面向对象模式
D.事件驱动模式
为了解决C/S模式中客户机负荷过重的问题,软件架构发展形成了(C )模式。
A. 三层C/S B. 分层
C.B/S D. 知识库
与基于C/S架构的信息系统相比,基于B/S架构的信息系统(C )。
A.具备更强的事务处理能力,易于实现复杂的业务流程
B.人机界面友好,具备更加快速的用户响应速度
C.更加容易部署和升级维护
D.具备更高的安全性
软件重用长期以来一直是软件工程界不断追求的目标。(√)
软件体系结构的核心由5种元素组成:构件、连接件、配置、端口和角色。其中,构件、连接件和配置是最基本的元素(√)
体系结构设计是整个软件生命周期中关键的一环,一般在需求分析之前进行。(×)(需求分析之后,软件设计之前)
基于事件的隐式调用风格的思想是构件不直接调用一个过程,而是触发或广播一个或多个事件。(√)
层次系统中支持抽象程度递增的系统设计是设计师可以把一个复杂系统按照递增的步骤进行分解,同时支持功能增强,但是不支持重用。(×)
正交软件体系结构由组织层和线索的构件构成。(√)
SOA模型具有松散耦合、细粒度服务、标准化接口等特征。(×)(粗粒度,SOA是一个组件模型)
层次系统最广泛的应用是分层通信协议。(√)
MVC模式的中的M,V,C分别对应Model,View,Controller三种单词。
黑板系统主要由知识源、黑板和控制组件 组成。
什么是软件体系结构风格?答:软件体系结构风格是描述某一特定领域中系统组织方式的惯用模式。
请设计一个具体B/S结构登录模块的体系结构,并说明每层的作用:
答:该模块的B/S结构可分为三层:
第一层:客户层(或表现层、界面层),第二层:业务逻辑层(或应用层、功能层、应用服务器层),第三层:数据层。
第一层只有浏览器,通过访问第二层的网页实现用户界面,即接受用户的名称、密码的输入,并向第二层传送用户名和密码,最后将登录结果显示出来;
第二层接受第一层的用户名和密码,并通过访问第三层判断用户合法性,最后将登录结果以网页形式返回给第一层;
第三层在数据库或文件中存储用户名和密码,并为第二层提供数据访问服务。
领域工程有助于解决可重用信息的识别、组织和利用的问题,有助于产生具有较高可重用性的构件,对开发者重用构件提供了有力的支持。
应用工程是在领域工程基础上,针对某一具体应用所实施的开发过程。应用工程是对领域模型的实例化过程,可以为单个应用设计提供最佳的解决方案。 应用工程可以划分为应用系统分析、应用系统设计和应用系统实现与测试三个阶段。
网格技术的权威Ian Foster将网格体系结构定义为“划分系统基本组件,指定系统组件的目的与功能,说明组件之间如何相互作用的技术”。
【问题1】
开发人员不需要重新设计业务模式,是需要在原有系统的界面和中间层添加Web Services,可以继承原有系统的所有业务。
节约了开发的时间和工作量,将系统升级。
可以不修改原有的Web服务和中间层,可以直接扩展新的服务。
【问题2】
WSDL:是Web Services的描述语言,描述Web Services的服务,接口绑定等信息,为用户提供详细的接口说明书;
SOAP:是通信协议,以服务的方式发布有用的程序模块。
UDDI:提供统一的发布、查找、定位WebServices的方法。
【问题3】
在Web Service模型的解决方案中,服务提供者定义并实现Web Service,使用服务描述语言(WSDL)描述Web Service,然后将服务描述发布到服务请求或者服务注册中心;服务请求这使用查找操作从本地或者服务注册中心检索服务描述,然后使用服务描述与服务提供者进行绑定并调用Web Service.服务注册中心是整个模型中的可选角色,它是连接服务提供者和服务请求者的纽带
软件体系结构评估,是对系统的某些值得关心的属性(性能、可修改性、可靠性等)进行评价和判断。
评估的目的是为了识别体系结构设计中的潜在风险。
三种软件体系结构评估方式
特定领域软件架构(DSSA)是在一个特定应用领域为一组应用提供组织结构参考的标准软件架构。实施DSSA的过程包括一系列基本活动,其中(C)活动的主要目的是为了获得DSSA。该活动参加人员中,(A)的主要任务是提供关于领域系统的需求规约和实现的知识。
① A.领域需求 B.领域分析 C.领域设计 D.领域实现
② A.领域专家 B.领域分析者 C.领域设计者D.领域实现者
某服务器软件系统能够正确运行并得出计算结果,但存在“系统出错后不能在要求的时间内恢复到正常状态”和“对系统进行二次开发时总要超过半年时间”两个问题,上述问题依次与质量属性中的(D )相关。
A.可用性和性能 B.性能和修改性
C.性能和可测试性 D.可用性和可修改性
计算机系统的可用性可从多个方面来评测,但不包括( C )。
A.故障率 B.健壮性 C.可移植性 D.可恢复性
以下关于系统性能的叙述中,不正确的是( A )
A. 常见的Web服务器性能评估方法有基准测试、压力测试和可靠性测试
B. 评价Web服务器的主要性能指标有最大并发连接数、响应延迟和吞吐量
C. 对运行系统进行性能评估的主要目的是以更好的性能/价格比更新系统
D. 当系统性能降到基本水平时,需要查找影响性能的瓶颈并消除该瓶颈
“系统在提供服务给合法用户的同时抵制未授权使用的能力”这是哪种质量属性关心的问题:(D)
A)性能
B)可测试性
C)可移植性
D)安全性
某网上购物电子商务公司拟升级正在使用的在线交易系统,以提高用户网上购物在线支付环节的效率和安全性。在系统的需求分析与架构设计阶段,公司提出的需求和关键质量属性场景如下:
正常负载情况下,系统必须在0.5秒内对用户的交易请求进行响应;
信用卡支付必须保证99.999%的安全性;
对交易请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;
网络失效后,系统需要在1.5分钟内发现错误并启用备用系统;
需要在20人月内为系统添加一个新的CORBA中间件;
交易过程中涉及到的产品介绍视频传输必须保证画面具有600*480的分辨率,20帧/秒的速率;
更改加密的级别将对安全性和性能产生影响;
主站点断电后,需要在3秒内将访问请求重定向到备用站点;
假设每秒中用户交易请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的交易请求”这一要求是可以实现的;
用户信息数据库授权必须保证99.999%可用;
目前对系统信用卡支付业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;
更改Web界面接口必须在4人周内完成;
系统需要提供远程调试接口,并支持系统的远程调试。
在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。
【问题1】
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图1-1中a、b空白处;并选择题干描述的1~13,填入c~f空白处,完成该系统的效用树。
答案:a:可修改性、b:可用性、c:6、d:12、e:8、f:2
【问题2】
在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请给出系统架构风险、敏感点和权衡点的定义,并从题干1-13中各选出1各对系统架构风险、敏感点和权衡点最恰当的描述。
答案:系统架构风险:是指架构设计中潜在的、存在问题的架构决策所带来的隐患;11描述的是架构风险
敏感点:是指为了实现某种特定的质量属性,一个或多个系统组件所具有的特性;3描述的是敏感点
权衡点:是指影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性;7描述的是权衡点。
云计算的计算模式为( D ).
A W/S B C/S C B/S D B/C
( B )是公有云计算基础架构的基石。
A 虚拟化 B 分布式 C 并行 D 集中式
( A )是私有云计算基础架构的基石。
A 虚拟化 B 分布式 C 并行 D 集中式
网格计算是利用( B )技术,把分散在不同地理位置的计算机组成一台虚拟超级计算机。
A 对等网 B 因特网 C 广域 D 无线网
云计算就是把计算资源都放到( B )
A 对等网 B 因特网 C 广域 D 无线网
用户可通过( A )从列表中选择所需的服务,其请求通过管理系统调度相应的资源,并通过部署工具分发请求、配置Web应用。
A 云用户端 B 服务目录
C 管理系统和部署工具D 监控端
SaaS是( 软件即服务 )的简称。
PAAS是( 平台即服务 )的简称
IaaS是( 基础设施即服务 )的简称。
A 软件即服务 B 平台即服务
C 基础设施即服务D 硬件即服务
云计算是对分布式处理(DistributedComputing)、并行处理(Parallel Computing)和网格计算(Grid Computing)及分布式数据库的改进处理。( √ )
利用并行计算解决大型问题的网格计算和将计算资源作为可计量的服务提供的公用计算,在互联网宽带技术和虚拟化技术高速发展后萌生出云计算。( √ )
云计算的基本原理为:利用非本地或远程服务器(集群)的分布式计算机为互联网用户提供服务(计算、存储、软硬件等服务)。( √ )
云计算可以把普通的服务器或者PC连接起来以获得超级计算机的计算和存储等功能,但是成本偏高。 ( × )
云计算真正实现了按需计算,从而有效地提高了对软硬件资源的利用效率。 ( √ )
云计算模式中用户不需要了解服务器在哪里,不用关心内部如何运作,通过高速互联网就可以透明地使用各种资源。( √ )
Amazon EC2在基础设施云中使用公共服务器池。 ( √ )
所谓“云”计算就是一种计算平台或者应用模式。( × )
软件重用是为了解决 _____ 软件危机_。
综合各种不同软件体系结构定义,认为软件体系结构主要包括_____构件、连接件和配置约束_ 3个部分。
软件体系结构应建立于传统的软件开发过程的需求分析和软件设计阶段之间。
体系结构评估中,一般采用刺激,环境,和响应三方面来对场景进行描述。
UML是一种通用的面向对象的建模语言,在很大程度上独立于建模过程,在实际的应用中,建模人员往往把UML应用于__用例__ 驱动的、以__体系结构__ 为中心的, 迭代的__和__渐增式 的开发过程。
Kruchten提出了“4+1”视图模型,从5个不同的视角来描述软件体系结构,这5个视角包括逻辑视图、开发视图、过程视图、物理视图、场景视图。
黑板系统主要由知识源、黑板和控制组件组成。
三层C/S结构风格是由表示层 、功能层 和 数据层构成的。
领域工程阶段的主要任务有领域分析、领域设计和领域实现三个阶段。
XML是Web Services进行数据交换时所采用的标准,同时也是Web Services技术的全部规范和技术基础。SOAP、WSDL、UDDI都是使用它进行描述的。
理解SOA和Web Service关系上, SOA所表示的是一个概念模型,Web Service是SOA的一个特定实现。
SAAM评估方法可以对许多__质量属性__以及__系统功能__进行快速评估。
体系结构评估中一般采用___刺激__ 、环境和__响应___三方面来对场景进行描述。