软件体系结构 复习题

一、
1.软件体系结构的核心模型的组成包括哪些内容?以及约束和质量性能等
构件、连接件、物理分布
2.软件体系结构风格具有已经被熟知的特性,并且可以复用
3.4+1视图模型从五个不同的视角采用五种不同的视图来描述软件体系结构,这些视图有逻辑视图、进程视图、物理视图、开发视图和场景视图
4.在层次系统中,两种通用的分层方法分别是严格分层、松散分层
5.在三层C/S结构中,中间层可能为哪些类型的服务器?
事务处理监控服务器、消息服务器、应用服务器等
6.解释器风格的三种策略。
传统解释器、基于字节码的解释器、(JIT)编译器
7.构件作为一个封装的实体,只能通过接口和外部环境交互,构件内部所实现的功能以服务形式体现出来。
8.在数据流风格中,用连接件定义了相应的数据流图表达拓扑结构
9.在分层系统中,由上而下的信息控制通常被描述为请求,由下而上被描述为通知。
10.分层系统的设计过程中,需要定义每层之间的接口,接口的类型包括黑盒接口、白盒接口。
11.三层C/S体系结构风格是由表示层、功能层、数据层构成的。
二、
1.要表示业务逻辑和工作流,应采用哪种UML图?活动图
2.对象或子程序,或构件或是包中,哪一个是独立可交互的功能单元?构件
3.同步调用消息和异步调用消息
同步调用消息表示一个对象实体发送的消息是对另外一个对象实体的一个操作的同步调用。发送消息的对象在发出消息之后,将一直等待接收对象给予应答,在未接收到应答之前,发送对象将-直等待。同步调用消息用带实心箭头的直线表示。
异步调用消息表示一个对象实体发送的消息是对另一个对象实体的一个操作的异步调用。发送消息的对象在发出消息之后,无需等待接收对象的应答,继续下面的操作。异步调用消息用直线开箭头表示。

4.某游戏公司预开发一个大型多人,即时战略的游戏,游戏设计的目标之一是能够支持玩家自行创建战役图,定义游戏对象的行为和之间的关系,应该采用解释器的架构风格最合适。
5.在三层C/S体系结构中中间件是最重要的构件。
6.在UML提供的图中,用例图用于描述系统与外部系统及用户之间的交互。
7.C/S系统中,数据库服务器的任务是存储和处理数据。
8.与C/S体系结构相比, B/S体系结构的不足?
客户端浏览器以同步的请求/响应模式交换数据,每请求一次服务器就要刷新一次页面;
受HTTP协议“基于文本的数据交换”的限制,在数据查询等响应速度上,要远远低于C/S体系结构;
数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用;
受限于HTML的表达能力,难以支持复杂GUI (如报表等)。

9.在RUP中采用4+1视图模型软件体系结构,在该模型中最终用户侧重于逻辑视图,那么系统工程师侧重于部署视图
10.如果对银行ATM的常用功能进行建模,包括存款,取款,转账,查询,这个时候, 用用例图来表示该系统的功能需求。
三、
1.软件体系结构风格
描述特定领域中软件系统家族的组织方式的惯用模式。反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统。

2.需求
用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。

3.受客户端
客户端具有很少或没有业务逻辑。

4.构件重用
即为软件重用,两次或多次不同的软件开发过程中重复使用相同或相 近软件元素的过程。

5.集群
将多个计算机系统通过网络连接起来如同一个系统一样提供服务,可以获得高并行处理能力、高可用性、负载均衡和管理便携性。
或集群就是一组相互独立的计算机,通过高速的网络组成一个计算机系统,每个集群节点都是运行其自己进程的一个独立服务器。对网络用户来讲,网站后端就是一个单一的系统,协同起来向用户提供系统资源,系统服务。通过网络连接组合成一个组合来共同完一个任务。

6.构件
构件是具有某种功能的可复用的软件结构单元,是为组装服务的,表示了系统中主要的计算元素和数据存储。

7.计算机聚合
多台计算机聚合在一起,形成一台虚拟的计算机。软件系统的运行环境将横跨多台计算机,但终端用户看到的只是一台虚拟的计算机。大型计算问题可以借用多台计算的资源来并行的加以解决。

8.解释器
又译为直译器,是一种电脑程序,能够把高级编程语言一行一行直接转译运行。
解释器通常用来在程序语言定义的计算和有效硬件操作确定的计算之间建立对应和联系。简单和小规模的解释器只完成基本的信息识别和转换。复杂的解释器需要从词法到句法、到语法的复杂识别和处理。

9.ADL
是一种形式化描述语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。

10.松散分层
松散的分层应用程序放宽了此限制,它允许构件与位于它下面的任意层中的组件进行交互。

四、
1.软件体系结构的意义
1.SA是软件开发过程初期的产品,在开发的早期阶段就考虑系统的正确设计与方案选择,为以后开发、测试、维护各个阶段提供了保证;
2.与其他后期的设计活动相比,SA设计的成本和代价要低得多;
3.正确有效的SA设计会给软件开发带来极大的便利。
4.在大型软件系统中,质量属性更多的是由系统结构和功能划分来实现的,而不再仅仅依靠所选择的算法或数据结构。

2.接口对于构件的意义

构件作为一个封装的实体,只能通过其接口与外部环境交互,表示了构件和外部环境的交互点;
内部结构则被隐藏起来;
一个构件至少有一个接口;
一个构件可以提供多重接口;
构件接口与其内部实现应严格分开。
构件内部所实现的功能以服务(Service)的形式体现出来,并通过接口向外发布,进而产生与其它构件之间的关联。

3.批处理和管道过滤器风格的不同
相似点 :
1.把任务分解成为一系列固定顺序的计算单元;
2.彼此间只通过数据传递交互
不同点 :
批处理:整体传递数据、构建粒度较大、延迟高、实时性差
管道过滤器:增量、构建粒度较小、实时性好、可并发

4.与C/S体系结构相比, B/S体系结构的不同之处
1.b/s体系结构缺乏对动态页面的支持能力,没有集成有效的数据库处理功能。
2.b/s体系结构的系统扩展能力差,安全性难以控制。
3.采用b/s体系结构的应用系统,在数据查询等响应速度上,要远远地低于c/s体系结构。
4.b/s体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(OLTP)应用。

5.C/S风格中, C和S分别提供的功能
客户机:业务逻辑、与服务器通讯的接口;
服务器:与客户机通讯的接口、业务逻辑、数据管理。

6.软件体系结构风格的分类
数据流风格:批处理;管道/过滤器;
调用/返回风格:层次结构;
层次结构风格的典型实例:C/S结构;B/S结构;
虚拟机风格:解释器;基于规则的系统;
以数据为中心的风格:仓库;黑板。

7.分层系统的特点及优点
优点:
1)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解;
2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层;
3)支持重用。只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。
缺点:
1)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来;
2)很难找到一个合适的、正确的层次抽象方法。

8.C/S系统中客户端应用程序的主要任务

9.系统级虚拟机和进程级虚拟机的区别
系统级的虚拟机:对OS的虚拟,把一台物理上独立的机器虚拟为多个不同的虚拟机,每个虚拟机可支持运行各自的操作系统,本质:在OS与硬件之间建立隔离。
进程级的虚拟机:对单一程序的虚拟,其本质是在应用程序与OS之间建立隔离。

10.管道过滤器的优缺点有哪些?
优点:
(1)使得软构件具有良好的隐蔽性和高内聚、低耦合的特点;
(2)允许设计者将整个系统的输入/输出行为看成是多个过滤器的行为的简单合成;
(3)支持软件重用。
(4)系统维护和增强系统性能简单。
(5)允许对一些如吞吐量、死锁等属性的分析;
(6)支持并行执行。
缺点:
(1)通常导致进程成为批处理的结构。这是因为虽然过滤器可增量式地处理数据,但它们是独立的,所以设计者必须将每个过滤器看成一个完整的从输入到输出的转换。
(2)不适合处理交互的应用。当需要增量地显示改变时,这个问题尤为严重。
(3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样就导致了系统性能下降,并增加了编写过滤器的复杂性。
五、
已知ATM的软件功能有客户可以存款、取款、查询、结余、修改密码和使用信用卡付账,画出系统的用例图,类图,协助图,顺序图。

用例图和类图

协助图

系统顺序图

1. 构件:是指语义完整,语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述通信接口和实现代码的复合体。2. 构件模型:是对构件本质特征的抽象描述。3. 构件组装:是指将库中的构件经适当修改后相互连接,或者将它们与当前开发项目中的软件元素相连接,最终构成新的目标软件。4. 软件体系结构:Hayes Roth认为软件体系结构是一个抽象的系统规范,主要包括用其行为来描述的功能构件和构件之间的相互连接、接口和关系。5. 面向服务体系结构(SOA):本质上是服务的集合,服务间彼此通信,这种通信可能是简单地数据传送,也可能是两个或更多的服务协调进行某些活动。6. 可靠性:是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统特性的基本能力。7. 可修改性:是指能够快速地以较高的性能价格比对系统进行变更的能力。通常以某些具体的变更为基准,通过考察这些变更的代价衡量可修改性。可修改性包括:可维护性、可扩展性、结构重组、可移植性。8. 敏感点:是一个或多个构件(和/或构件之间的关系)的特性。9. 权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。10. 软件产品线:就是在一个公共的软件资源集合基础上建立起来的共享同一个特性集合的系统集合。11. 框架:是封装了特定应用族抽象设计的抽象类的集合,框架又是一个模板,关键的方法和其他细节在框架实例中实现。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值