软件体系结构复习题及答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
概述部分
1、请分析软件危机的主要表现和原因。
表现:
a)软件成本日益增加:开发、部署与应用成本高
b)开发进度难以控制:不能按期完成
c)软件质量差:错误率高,不能满足用户的需求,没有生命力
d)软件维护困难:成本高,维护效果不理想,可能带来潜在的错误
原因:
1.用户需求不明确
2.缺乏正确的理论指导
3.软件规模越来越大
4.软件复杂度越来越高
2、请说明软件规模与复杂度对软件过程的影响及解决方法。
软件规模与复杂度增加后,软件开发和维护成本增加,开发进度难以控制,软件质量差,软件维护变得困难。应更多地采用科学的分析、设计和实现方法以及辅助工具,增强软件分析和设计的力度,并通过构件化提高软件的重用能力。
3、什么是软件体系结构,由哪三个部分组成?(构件、连接件、约束)
软件体系结构为软件系统提供了一个结构、属性和行为的高级抽象。它不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。
4、请简述软件重用的含义和意义。可重用元素包括哪些种类?
软件重用是指在多次不同的软件开发过程中重复使用相同或相近软件元素的过
程。(含义)
可重用的元素包括程序代码、测试用例、设计文档、需求分析文档甚至领域知识。
(种类)
可重用的元素越大,我们就说重用的粒度(Granularity)越大。
软件重用是软件产业工业化、工程化的重要手段。软件重用对提高生产率,降低
开发成本,缩短开发周期,改善软件质量以及提高灵活性和标准化程度大有帮助。
(意义)
5、请简述常用的构件实现模型及其意义。
实现模型:
1.CORBA
2.EJB
/ 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、软件体系结构分析与设计的关键环节包括哪几部分?
需求分析、领域建模;关键需求的确定、概念性体系结构的设计、体系结构细化、体系结构验证。