软件体系结构期末试卷

北京工业大学2008 – 2009学年

第二学期考试样题

考试课程: 软件体系结构 II 考试日期:2009 年 12 月 日 学 院: 软件学院 专 业: 软件工程 学 号: 姓名: 成绩:

一 填空题 (共 30 空, 每空 1 分)

1. 软件体系结构 (Software Architecture)-- 是软件产品设计的思想和系统的蓝图;是

对软件产品_______的规划和_______的设置;是定义软件系统组件 (Components)或构建块 (Building Blocks)的重要工具;

2. 软件产品的工业化生产 -- 是指建立流水线型的软件产品生产线,是指按__________、

___________ 的规范和规则(软件生产规范)来编写和实现各种各样的适应于多环境的软件组件(构件),通过一个开发架构模式,通过软件体系结构知道各个组件如何部署到开发架构模式中,组装成达到期望的软件产品。

3. 在软件设计过程中,数据封装就是将一组数据和与这组数据有关操作组装在一起,形成

一个实体,这实体的名称就是 ________________________

4. 一个现代软件产品生产过程如下图表示,请在代 ___________的方框中,填上相应的

组件名称

5. 软件体系结构描述一个软件产品的定义和组件(parts),包括

-- 定义系统 __________的集合

-- 通过__________, 描述系统的结构 -- Connectors & Interrelated Components -- 定义_____________责任的范围 -- A Boundary -- 描述组件的功能 -- A Purpose and Responsibility -- 算法 – Implementation Algorithm -- 数据的表示 – Data Representation -- Constrains

6. 软件体系结构的图形方法 -- 用各种各样的_________和_________等来表示软件体系

结构的方法称之为软件体系结构的图形方法

7. 软件体系结构组件间的连接方式如图表示,则图A的连接方式称为____________连接

体系结构;图B的连接方式称为基于______________连接体系结构

8. UML 将软件的体系结构分解为五个不同的侧面, 通过不同侧面的视图提供给不同相

关者的软件体系结构描述,这五个侧面分别是:___________视图, ____________视图,_________________视图,________________实现视图,_______________视图

9. MFC 框架定义 Windows 应用程序的轮廓,提供了用户接口的标准实现方法,程序

员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++ 提供了相应的工具来完成这个工作:这些工具包括

_____________________ (可以用来生成初步的框架文件(代码和资源等)), _______________________(用于帮助直观地设计用户接口),

_______________________________(用来协助添加代码到框架文件)

10. MFC 的类层次结构如图表示,在____________处填入相应的 MFC 类名

11. 在 VC++ MFC 开发环境中, _____________是应用程序的“应用程序类”,负责初始化

和运行应用程序;__________________是应用程序的“框架类”,负责显示或搜寻用户命令;_________________是应用程序的文档类,负责装载和维护文档;____________________是应用程序视图类,负责为文档提供一个或多个视图

12. 在 Java 开发环境中,开发图形用户组件使用Swing, Swing的顶层容器包括

___________, ___________________, __________________________

13. Graphic User Interfaces ( 图形用户界面): 是用户与模型(业务)层他之间的一个接口,

表示层程序通过图形界面为用户提供便捷的操作基础, 使用户可以和模型或程序进行可视化交互:一般,图形界面包括________, ___________, ____________, ___________等元素

14. 软件体系结构设计风格 – 是指对软件组件间组织形式和组织机理风格的描述。通过考

虑在组件组织模式的各种形式变化,形成包括___________, ______________, _______, ____________, ___________________的软件体系结构风格。

15. 软件体系结构的评估与分析 – 是指通过对复杂应用系统软件体系结构设文档、设计过

程、代码、实现过程的评估与审查等手段来判断软件的____________,增强软件的质量;在真正的错误的设计导致真的灾难前__________,选择更好的结构或_________结构的设计。

二 判断题 (共 10 题, 每题 1 分, 正确在括号划√, 错误在括号划 X)

( ) 1. 数据流图是表示软件模型的一种图示方法,它描述数据在软件中流动和被处理

变换的过程。数据流图中基本的图形元素包括变换/加工、数据流、数据存储以及实体 ( ) 2. 软件体系结构只是一种表示,它不是可运行的软件

( ) 3. 面向对象软件开发的生命周期分为三个阶段,即面向对象分析 (OOA),面向 对象设计 (OOD)和面向对象程序设计 (OOP)

( ) 4. 用面向对象方法构造软件系统体系结构时,其最基本单位是函数

( ) 5. 软件体系结构风格和模式可以被应用到其他系统的设计中 ( ) 6. 软件体系结构包含软件组件、这些组件的对外可见的性质以及它们之间的关系 ( ) 7. 软件体系结构中不应包含中间件

( ) 9. 软件用户界面应具备的特性中包括控制复杂性、 独特性、 可靠性、 灵活性 ( ) 10. 软件体系结构描述表示方法包括形式化和非形式化的描述方法,UML是

非形式化描述方法,ADL是形式化描述方法。

三 简答题 (共 4 题,每题 5 分)

1. 什么是软件体系结构,描述软件体系结构的主要内容及组织?

2. 描述在 MFC VC++,或 Java 开发环境下,开发图形界面的组织结构

3. 描述软件体系结构分析和评估的概念和意义

4. 描述什么是分别式应用程序和体系结构的概念及优点

四 体系结构设计和程序阅读题: (20分, 共 5 题,每题 4 分)

1. 使用图形描述语言,描述 VC++ MFC 开发环境下,开发基于 Dialog 模式应用程序的

基本架构

2. 使用图形描述语言,描述在VC++ MFC 开发环境或 Java开发环境下,开

发基于 MVC 模式应用程序的基本架构

3. 已知一个应用系统的软件体系结构如下图表示,类 Exam_App 为Java的组装线

程序,类 Exam_Frame 为顶层容器,类 Display为表示界面,类Model 为模型组件,写出以下Java 程序的运行结果

class Exam_App {

public static void main() { new Exam_Frame(); } }

class Exam_Frame extends JFrame { Container contentPane; Display display;

Model model;

Exam_Frame() {

contentPane = this.getContentPane(); display = new Display();

model = new Model(display); setSize(1024,768); setVisible(true); } }

class Display {

BufferedImage buffer = null; …

Display() {

buffer = new BufferedImage(1024,768, BufferedImage.TRANSLUCENT); }

public void paintComponent(Graphics g) { g.drawImage(buffer,0,0, null); } … }

class Model {

BufferedImage image; Graphics g;

Display panel = null;

Model( Display pane) {

this.panel = pane; g = panel.buffer.getGraphics();

g.drawString(10, 10, “This is Test of Software Architecture!”); g.drawString(50, 10, “I will Success!!”); } ….. }

运行以上程序, 结果为

4. 已知一个基于VC++ MFC 环境 Dialog 模式应用程序体系结构表示如下,

其中,组装线类 Exam_App 用于组装图形表示界面类 Exam_Dlg,图形表示界面类 Exam_Dlg 通过函数 Model_Display用于调用类 Model

#include class Exam_App : CWinApp { public:

virtual BOOL InitInstance(); };

Exam_App app; class Exam_Dlg: CDialog { Public:

Model *model; public:

void OnInitDialog(); void Model_Display(); };

class Model { public: Model();

String model_data(); };

请完成从类 Exam_Dlg 中Model_Display 调用类 Model 函数String model_data() 的代码

void Exam_App::OnInitDialog()

{

// 完成指向Model 的指针 }

void Exam_App::Model_Display() {

// 完成调用类 Model 函数String model_data() }

五 综合设计题 (20分,每题10 分)

1.

(10分) 一个管道与过滤风格的软件体系结构如下图表示,其中A::A_Fun, B::B_Fun,C::C_Fun,D::D_Fun,E::E_Fun,F::F_Fun,G::G_Fun 分别表示组件 A,B,C,D,E,F,G的功能(输入/输出均为字符串)

(1) 使用 VC++ MFC 或 Java 语言用代码实现组件A,B,C,D,

E,F,G (面向对象的方法)

(2) 使用 VC++ MFC 或 Java,设计一个组装线,组装组件A,B,C,

D,E,F,G,实现上述管道与过滤风格的软件体系结构

2. (10分) 在 VC++ MFC 开发环境 或 在 Java JDK 1.5 的开发环境下,设计一个

软件应用系统的软件体系结构,完成下述的任务 (3) 能完成 n (n>1 整数) 个实数的求和; (4) 能完成 n (n>1 整数) 个实数的求积; (5) 能完成一个整数 n(n>1)阶乘的计算;

(6) 能完成n (n>1 整数) 个实数的冒泡排序; (7) 能完成n (n>1 整数) 个实数的插入排序;

设计上述要求的软件体系结构,要求如下:

(1) 系统的体系结构应该有表示层,即图形界面 (GUIs)层 -- 用于与用户的数据

交互;模型层 – 用于完成上述任务的计算任务;控制层 – 用于模型层与表示层的交互控制; 组装线 – 用于组装各个组件成为应用系统。请用图形描述方法,设计系统的软件体系结构 (组件集合及其部属)

(2) 用CRC 卡描述组装线,图形界面组件和模型组件

(3) 编写VC++ MFC 或 Java 的程序代码完成组装线 CRC 卡,图形用户界面

CRC卡,模型组件 CRC 卡的实现

北京工业大学2008 – 2009学年

第二学期考试样题

考试课程: 软件体系结构 II 考试日期:2009 年 12 月 日 学 院: 软件学院 专 业: 软件工程 学 号: 姓名: 成绩:

一 填空题 (共 30 空, 每空 1 分)

1. 软件体系结构 (Software Architecture)-- 是软件产品设计的思想和系统的蓝图;是

对软件产品_______的规划和_______的设置;是定义软件系统组件 (Components)或构建块 (Building Blocks)的重要工具;

2. 软件产品的工业化生产 -- 是指建立流水线型的软件产品生产线,是指按__________、

___________ 的规范和规则(软件生产规范)来编写和实现各种各样的适应于多环境的软件组件(构件),通过一个开发架构模式,通过软件体系结构知道各个组件如何部署到开发架构模式中,组装成达到期望的软件产品。

3. 在软件设计过程中,数据封装就是将一组数据和与这组数据有关操作组装在一起,形成

一个实体,这实体的名称就是 ________________________

4. 一个现代软件产品生产过程如下图表示,请在代 ___________的方框中,填上相应的

组件名称

5. 软件体系结构描述一个软件产品的定义和组件(parts),包括

-- 定义系统 __________的集合

-- 通过__________, 描述系统的结构 -- Connectors & Interrelated Components -- 定义_____________责任的范围 -- A Boundary -- 描述组件的功能 -- A Purpose and Responsibility -- 算法 – Implementation Algorithm -- 数据的表示 – Data Representation -- Constrains

6. 软件体系结构的图形方法 -- 用各种各样的_________和_________等来表示软件体系

结构的方法称之为软件体系结构的图形方法

7. 软件体系结构组件间的连接方式如图表示,则图A的连接方式称为____________连接

体系结构;图B的连接方式称为基于______________连接体系结构

8. UML 将软件的体系结构分解为五个不同的侧面, 通过不同侧面的视图提供给不同相

关者的软件体系结构描述,这五个侧面分别是:___________视图, ____________视图,_________________视图,________________实现视图,_______________视图

9. MFC 框架定义 Windows 应用程序的轮廓,提供了用户接口的标准实现方法,程序

员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C++ 提供了相应的工具来完成这个工作:这些工具包括

_____________________ (可以用来生成初步的框架文件(代码和资源等)), _______________________(用于帮助直观地设计用户接口),

_______________________________(用来协助添加代码到框架文件)

10. MFC 的类层次结构如图表示,在____________处填入相应的 MFC 类名

11. 在 VC++ MFC 开发环境中, _____________是应用程序的“应用程序类”,负责初始化

和运行应用程序;__________________是应用程序的“框架类”,负责显示或搜寻用户命令;_________________是应用程序的文档类,负责装载和维护文档;____________________是应用程序视图类,负责为文档提供一个或多个视图

12. 在 Java 开发环境中,开发图形用户组件使用Swing, Swing的顶层容器包括

___________, ___________________, __________________________

13. Graphic User Interfaces ( 图形用户界面): 是用户与模型(业务)层他之间的一个接口,

表示层程序通过图形界面为用户提供便捷的操作基础, 使用户可以和模型或程序进行可视化交互:一般,图形界面包括________, ___________, ____________, ___________等元素

14. 软件体系结构设计风格 – 是指对软件组件间组织形式和组织机理风格的描述。通过考

虑在组件组织模式的各种形式变化,形成包括___________, ______________, _______, ____________, ___________________的软件体系结构风格。

15. 软件体系结构的评估与分析 – 是指通过对复杂应用系统软件体系结构设文档、设计过

程、代码、实现过程的评估与审查等手段来判断软件的____________,增强软件的质量;在真正的错误的设计导致真的灾难前__________,选择更好的结构或_________结构的设计。

二 判断题 (共 10 题, 每题 1 分, 正确在括号划√, 错误在括号划 X)

( ) 1. 数据流图是表示软件模型的一种图示方法,它描述数据在软件中流动和被处理

变换的过程。数据流图中基本的图形元素包括变换/加工、数据流、数据存储以及实体 ( ) 2. 软件体系结构只是一种表示,它不是可运行的软件

( ) 3. 面向对象软件开发的生命周期分为三个阶段,即面向对象分析 (OOA),面向 对象设计 (OOD)和面向对象程序设计 (OOP)

( ) 4. 用面向对象方法构造软件系统体系结构时,其最基本单位是函数

( ) 5. 软件体系结构风格和模式可以被应用到其他系统的设计中 ( ) 6. 软件体系结构包含软件组件、这些组件的对外可见的性质以及它们之间的关系 ( ) 7. 软件体系结构中不应包含中间件

( ) 9. 软件用户界面应具备的特性中包括控制复杂性、 独特性、 可靠性、 灵活性 ( ) 10. 软件体系结构描述表示方法包括形式化和非形式化的描述方法,UML是

非形式化描述方法,ADL是形式化描述方法。

三 简答题 (共 4 题,每题 5 分)

1. 什么是软件体系结构,描述软件体系结构的主要内容及组织?

2. 描述在 MFC VC++,或 Java 开发环境下,开发图形界面的组织结构

3. 描述软件体系结构分析和评估的概念和意义

4. 描述什么是分别式应用程序和体系结构的概念及优点

四 体系结构设计和程序阅读题: (20分, 共 5 题,每题 4 分)

1. 使用图形描述语言,描述 VC++ MFC 开发环境下,开发基于 Dialog 模式应用程序的

基本架构

2. 使用图形描述语言,描述在VC++ MFC 开发环境或 Java开发环境下,开

发基于 MVC 模式应用程序的基本架构

3. 已知一个应用系统的软件体系结构如下图表示,类 Exam_App 为Java的组装线

程序,类 Exam_Frame 为顶层容器,类 Display为表示界面,类Model 为模型组件,写出以下Java 程序的运行结果

class Exam_App {

public static void main() { new Exam_Frame(); } }

class Exam_Frame extends JFrame { Container contentPane; Display display;

Model model;

Exam_Frame() {

contentPane = this.getContentPane(); display = new Display();

model = new Model(display); setSize(1024,768); setVisible(true); } }

class Display {

BufferedImage buffer = null; …

Display() {

buffer = new BufferedImage(1024,768, BufferedImage.TRANSLUCENT); }

public void paintComponent(Graphics g) { g.drawImage(buffer,0,0, null); } … }

class Model {

BufferedImage image; Graphics g;

Display panel = null;

Model( Display pane) {

this.panel = pane; g = panel.buffer.getGraphics();

g.drawString(10, 10, “This is Test of Software Architecture!”); g.drawString(50, 10, “I will Success!!”); } ….. }

运行以上程序, 结果为

4. 已知一个基于VC++ MFC 环境 Dialog 模式应用程序体系结构表示如下,

其中,组装线类 Exam_App 用于组装图形表示界面类 Exam_Dlg,图形表示界面类 Exam_Dlg 通过函数 Model_Display用于调用类 Model

#include class Exam_App : CWinApp { public:

virtual BOOL InitInstance(); };

Exam_App app; class Exam_Dlg: CDialog { Public:

Model *model; public:

void OnInitDialog(); void Model_Display(); };

class Model { public: Model();

String model_data(); };

请完成从类 Exam_Dlg 中Model_Display 调用类 Model 函数String model_data() 的代码

void Exam_App::OnInitDialog()

{

// 完成指向Model 的指针 }

void Exam_App::Model_Display() {

// 完成调用类 Model 函数String model_data() }

五 综合设计题 (20分,每题10 分)

1.

(10分) 一个管道与过滤风格的软件体系结构如下图表示,其中A::A_Fun, B::B_Fun,C::C_Fun,D::D_Fun,E::E_Fun,F::F_Fun,G::G_Fun 分别表示组件 A,B,C,D,E,F,G的功能(输入/输出均为字符串)

(1) 使用 VC++ MFC 或 Java 语言用代码实现组件A,B,C,D,

E,F,G (面向对象的方法)

(2) 使用 VC++ MFC 或 Java,设计一个组装线,组装组件A,B,C,

D,E,F,G,实现上述管道与过滤风格的软件体系结构

2. (10分) 在 VC++ MFC 开发环境 或 在 Java JDK 1.5 的开发环境下,设计一个

软件应用系统的软件体系结构,完成下述的任务 (3) 能完成 n (n>1 整数) 个实数的求和; (4) 能完成 n (n>1 整数) 个实数的求积; (5) 能完成一个整数 n(n>1)阶乘的计算;

(6) 能完成n (n>1 整数) 个实数的冒泡排序; (7) 能完成n (n>1 整数) 个实数的插入排序;

设计上述要求的软件体系结构,要求如下:

(1) 系统的体系结构应该有表示层,即图形界面 (GUIs)层 -- 用于与用户的数据

交互;模型层 – 用于完成上述任务的计算任务;控制层 – 用于模型层与表示层的交互控制; 组装线 – 用于组装各个组件成为应用系统。请用图形描述方法,设计系统的软件体系结构 (组件集合及其部属)

(2) 用CRC 卡描述组装线,图形界面组件和模型组件

(3) 编写VC++ MFC 或 Java 的程序代码完成组装线 CRC 卡,图形用户界面

CRC卡,模型组件 CRC 卡的实现


相关文章

  • 2015会计电算化试卷
  • <会计电算化>多选题 1.下列选项中,不是自行开发会计软件优点的有(AC). A.软件的维护和升级由软件公司负责 B.能够充分考虑企业自身生产经营特点和管理要求 C.企业投资小,见效快 D.出现问题或需要改进时,能够及时高效地纠 ...查看


  • EDA期末考试试卷及答案
  • 号名 班 学姓 内答一.单项选择题(30分,每题2分) 1.以下关于适配描述错误的是 线得题A.适配器的功能是将综合器产生的网表文件配置于指定的目标器 件中,使之产生最终的下载文件 B.适配所选定的目标器件可以不属于原综合器指定的目标器件系 ...查看


  • 12-13下期末考试方案
  • 计算机与信息工程学院 2012-2013学年度第二学期期末考试工作方案 按照学校教学工作安排,本学期第18周为考试周,为确保我院本次考试工作规范.有序.高效运行,明确职责,提高质量,根据学校关于本学期期末考试工作安排的通知精神,制定本工作方 ...查看


  • 软件工程期末试卷答案
  • 软件工程试题一 一.单项选择题 1. 以下不是软件危机的典型表现的是: ( D ) . A. 对软件开发成本和进度的估计常常很不准确 B. 用户对"已完成的"软件系统不满意的现象经常发生 C. 软件产品的质量往往靠不住 ...查看


  • 浙教版七年级下信息技术期末试卷
  • 2015学年第二学期七年级信息技术期末试卷 学校:班级:姓名: 一. 选择题(共15题,30分) 1.在多媒体课件中,课件能够根据用户答题情况给予正确和错误的回复,突出显示了多媒体技术的( ) . A.多样性B.非线性C.集成性D.交互性 ...查看


  • 单片机期末考试试卷及答案
  • 一. 填空题 1.设X=5AH,Y=36H,则X与Y"或"运算为7EH,X与Y的"异或"运算为6CH. 2.若机器的字长为8位,X=17,Y=35,则X+Y=110100,X-Y=11101110(要 ...查看


  • 第一学期[信息技术]期末考试初一试卷及答案
  • 2010-2011学年第一学期<信息技术>期末考试初一试卷 班级 座号 姓名 成绩 第一部分理论测试(60%) 选择题(每题4分,其中1~5题为单选题,6~15题为多选题,共计60分) 1. 计算机软件系统主要由( )组成. A ...查看


  • 电子商务考证期末试卷
  • 14年春季期末考试 12级电子商务班电子商务考证理论试卷 制卷人:zxh 姓名 班级 编号 成绩 一.单项选择题(请将答案填写在答题卡内,1分单选,2分多选,90题共 100 分) 1. 第三方电子商务平台是指 (1分) A.卖方企业自建的 ...查看


  • 马鞍山电大软件工程历届试题
  • 试卷代号:2073 中央广播电视大学2008-2009学年度第二学期"开放专科"期末考试 软件工程 试题 2009年7月 一.填空题(在表格内填写正确的答案,每空2分,共20分) 请根据表格左边的分类名称,给右边的分类内 ...查看


热门内容