软件体系结构复习题及答案.docx
《软件体系结构复习题及答案.docx》由会员分享,可在线阅读,更多相关《软件体系结构复习题及答案.docx(11页珍藏版)》请在冰豆网上搜索。
软件体系结构复习题及答案
概述部分
1、请分析软件危机的主要表现和原因。
表现:
a)软件成本日益增加:
开发、部署与应用成本高
b)开发进度难以控制:
不能按期完成
c)软件质量差:
错误率高,不能满足用户的需求,没有生命力
d)软件维护困难:
成本高,维护效果不理想,可能带来潜在的错误
原因:
1.用户需求不明确
2.缺乏正确的理论指导
3.软件规模越来越大
4.软件复杂度越来越高
2、请说明软件规模与复杂度对软件过程的影响及解决方法。
软件规模与复杂度增加后,软件开发和维护成本增加,开发进度难以控制,软件质量差,软件维护变得困难。
应更多地采用科学的分析、设计和实现方法以及辅助工具,增强软件分析和设计的力度,并通过构件化提高软件的重用能力。
3、什么是软件体系结构,由哪三个部分组成?
(构件、连接件、约束)
软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。
它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
4、请简述软件重用的含义和意义。
可重用元素包括哪些种类?
软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过程。
(含义)
可重用的元素包括程序代码、测试用例、设计文档、需求分析文档甚至领域知识。
(种类)
可重用的元素越大,我们就说重用的粒度(Granularity)越大。
软件重用是软件产业工业化、工程化的重要手段。
软件重用对提高生产率,降低开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。
(意义)
5、请简述常用的构件实现模型及其意义。
实现模型:
1.CORBA
2.EJB
3.COM/DCOM/COM+
意义:
这些模型通常都定义了构件的实现方式、接口定义、访问方法等。
符合这些标准的任何构件都有很高的重用能力。
描述部分
6、请用图示法说明4+1模型的5种视图之间的关系及关注点和涉众用户。
数据视图
风格部分
7、什么是软件体系结构的风格?
它在软件开发过程中具有何种意义?
软件体系结构风格是指设计、组织和实现软件体系结构的各种惯用模式和习惯用法,是对一系列体系结构设计的抽象。
(风格)
利用软件体系结构风格,可以在不同的软件体系结构设计过程中重复使用同一个体系结构。
这样可以将软件复用粒度提高到软件体系结构一级。
通过学习软件体系结构风格,可以在软件体系结构设计过程中,采用成熟的体系结构风格,使得所设计的软件体系结构有良好的组织结构和通用性。
8、常见的软件体系结构风格主要有哪些种类?
数据流风格:
批处理序列,管道/过滤器
调用/返回风格:
主程序/子程序,面向对象风格,层次结构
独立构件风格:
进程通信,事件系统
虚拟机风格:
解释器,基于规则的系统
仓库风格:
数据库系统,超文本系统,黑板系统
9、什么是虚拟机体系结构风格?
这类软件主要由哪几个部分组成?
(选择或者填空)
通过软件手段建立一个虚拟的机器平台,并在该平台上解释运行所谓的“程序”代码。
(什么事虚拟机体系风格)
正在被解释的程序(组成部分)
虚拟机引擎构件
用来保存被解释程序的状态的构件
用来保存虚拟机引擎状态的构件
10、请说明C/S结构软件的开放性和可扩展性特点的含义。
开放性:
由于客户端和服务器端提供开放的、标准的接口,使得在软件系统中采用不同的客户端开发工具和服务器端DBMS产品。
开放性本身也意味着开发和维护成本的降低。
可扩展性:
在客户/服务器结构的系统中,可以方便地增加客户机数量而不影响整个系统。
有的系统甚至可以增加服务器,提高系统的数据处理能力和服务性能。
11、请说明三层C/S结构和B/S结构相对于传统C/S结构的优点。
(从传统C/S结构的缺点入手)
a.胖客户机.
b.用户界面不统一,不利于推广。
c.软件的维护和升级困难。
d.安全性不高。
相对优点是:
结构合理、用户界面统一、维护升级简单、安全性高
12.请设计一个具有B/S结构(或三层C/S结构)登录模块的体系结构,并说明每层的作用。
(基本不考、因为编程题已经有了)
B/S结构:
(1)第一层:
客户层(或表现层、界面层),第二层:
业务逻辑层(或应用层、功能层、应用服务器层),第三层:
数据层
(2)第一层只有浏览器,通过访问第二层的网页实现用户界面,即接受用户的名称、密码的输入,并向第二层传送用户名和密码,最后将登录结果显示出来。
(3)第二层接受第一层的用户名和密码,并通过访问第三层判断用户合法性,最后将登陆结果以网页形式返回给第一层。
(4)第三层在数据库或文件中存储用户名和密码,并为第二层提供数据访问服务。
三层C/S结构:
(1)第一层:
客户层(或表现层、界面层),第二层:
业务逻辑层(或应用层、功能层、应用服务器层),第三层:
数据层
(2)第一层实现用户界面,并通过网络连接或进程通信形式向第二层提出服务请求,最后将登录结果显示出来。
(3)第二层实现业务逻辑,即接受第一层的服务请求,并执行相应功能(业务)代码,最后将处理结果返回给第一层;业务功能需要访问数据时向第三层提出数据访问请求。
(4)第三层在数据库或文件中存储用户名和密码,并为第二层提供数据访问服务。
12、MVC风格的含义
MVC风格将各个构件划分成各自独立的三个部分:
模型、视图和控制器,分别对应商务逻辑、外观呈现和请求处理。
设计部分
13、软件体系结构分析与设计的关键环节包括哪几部分?
需求分析、领域建模;关键需求的确定、概念性体系结构的设计、体系结构细化、体系结构验证。
14、软件需求的典型分类包括哪些种类?
15、运行期质量属性和开发期质量属性的划分:
(大概看一下、选择填空)
16、什么是体系结构设计相关的领域建模?
对需求分析的细化是软件结构设计相关的领域建模。
领域建模是建立领域模型的过程,而领域模型是对实际问题领域的抽象表示。
领域建模专注于分析问题领域本身,发掘重要的业务领域概念并建立它们之间的关系。
一般情况下,领域模型可以用UML类图或状态图表示。
17、鲁邦图包括哪几种对象?
它们之间存在哪几种建模规则?
还有哪些规则是禁止的?
边界对象、控制对象、实体对象
18、体系结构细化过程中采用的“5视图法”中包括哪些视图,通常都用什么方式描述?
(1)逻辑视图:
着重考虑功能需求,主要关注行为或指责的划分,并将不同的职责分配给逻辑层、功能模块或类等不同粒度的逻辑单元。
可以用包图、类图、对象图(静态部分)或序列图、协作图、状态图和活动图(动态内容)来描述。
(2)开发视图:
主要考虑开发期质量属性,如可扩展性、可重用性、可移植性、易理解性、易测试性等等,其关注点是软件模块的实际组织方式。
可以用包图、类图、构件图表述。
(3)数据视图:
关注点是持久化数据的组织,一般采用数据流图或E-R图表示,或者用带对象流的活动图代替数据流图,用类图代替E-R图。
(4)运行视图:
着重考虑运行期质量属性,如性能、可伸缩性、持续可用性等,主要关注进程、线程、对象等运行期概念,以及相应的并发、同步、通信等问题,可以用包图、类图、对象图(静态部分)或序列图、协作图(动态部分)表述。
(5)物理视图:
主要考虑安装和部署需求,描述运行环境的计算机、网络、硬件设施等情况。
同时,物理视图还必须关注如何配置硬件环境来配合软件的特殊质量属性。
一般用部署图和构件图描述。
分析与评估部分
19、什么是软件的性能质量属性,应由什么指标来衡量?
性能:
指系统的响应能力,通常用单位时间内所处理的事务数量或完成某个事务处理所需要的时间对系统的性能进行定量表示。
20、什么是软件的可靠性质量属性,应由什么指标来衡量?
(MTTF、MTBF)
可靠性:
软件系统在意外或错误使用的情况下,维持系统功能特性的基本能力,通常用平均失效等待时间和平均失效间隔时间来衡量。
(两个的比值接近1最好)
21、什么是软件的可修改性,主要包含哪几个方面的内容?
可修改性:
是指能够快速地、以较高的性价比对系统进行变更的能力。
通常以某些具体的变更为基准,并通过变更的代价来衡量可修改性。
主要包括以下几个方面:
1、可维护性
2、可扩展性
3、结构重组
4、可移植性
22、软件体系结构评估方法可以分为几类,每类又可包含哪些具体方法?
基于质询(调查问卷、检查表)、基于场景(SAAM、ATAM)、基于度量
23、什么是基于场景的评估方法?
常用的基于场景的评估方法是什么?
(SAAM、ATAM)
这种评估方法分析软件体系结构对场景的支持程度,从而判断该体系结构对这一场景所代表的质量属性的满足程度。
例如,用一系列对软件的修改来反映可修改性方面的特性,用一系列攻击性操作来测试安全性方面的要求等等。
24、请用图示法表示SAAM方法的主要步骤及其关系。
典型软件结构部分
25、典型的操作系统体系结构有哪几种,各自的典型代表是什么操作系统?
a)模块结构:
MS-DOS,uc/OS
b)分层结构:
THE系统、Unix系统/Linux
c)虚拟机结构:
VM/370系统
d)客户/服务器结构:
“微内核”操作系统
26、操作系统的典型质量属性:
(时间比值越接近1,质量属性越好)
安全、可靠、可维护、可移植、性能(a+b/a+b+c)
27、请分析Xwindow标准的三个组成部分的作用,并与传统C/S结构进行逻辑功能方面的比较。
XServer:
处理输入/输出、维护XClient定义的资源、维护与XClient之间的网络连接。
XClient:
指需要用图形界面与用户交互的应用程序。
XProtocol:
XClient和XServer之间的通信规约,所有请求和事件都通过X协议传递。
分布式计算部分
28、请说明分布式结构软件的计算资源共享特点。
在分布式结构软件中,各个软件构件在物理上可以分布在不同的计算机中。
各个构件之间通过相互调用,完成统一的软件功能。
各个构件分别使用不同的计算机完成执行过程,从而达到计算资源共享的目的。
对于软件的使用者来说,他们感觉不到多个计算机以及相互之间的调用关系。
29、假设要实现基于RMI的分布式阶乘运算软件,请说明主要的开发、部署和运行步骤。
要求说明各个组成部分提供的主要功能。
开发步骤:
(1)应编写远程接口及接口实现类。
远程接口定义供远程客户调用的方法(如longfact(intn)),而远程接口实现类应编写具体的阶乘运算代码。
(2)在远程接口实现类的基础上,生成远程接口实现类的存根类。
(rmic命令)
(3)编写服务器类,该类主要完成远程接口实现类的实例化及将实例化对象绑定到某一命名地址上。
(4)编写客户端类,该类通过名称查找远程接口实现类的实例化对象,查找成功后通过具体参数调用阶乘方法,并得到阶乘结果。
部署和运行步骤:
(1)将客户端类、存根类和远程接口类部署到客户端机器上。
(2)将服务器端类、远程接口实现类和远程接口类部署到服务器端。
(3)在服务器端启动RMI注册器。
(rmiregistry命令)
(4)启动服务器端。
(5)运行客户端,通过访问服务器得到运算结果。
30、请列举Web服务中采用的三种基本协议。
(SOAP、WSDL、UDDI:
基于XML的协议)
31、请例举常见的分布式计算体系结构
Web服务、CORBA、J2EE、DCOM/COM+
32、请例举常见的建模方式
4+1、ADL、UML、XML