软件设计与体系结构期末考试学年模拟试题参考答案.docx
- 文档编号:4182551
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:30
- 大小:318.24KB
软件设计与体系结构期末考试学年模拟试题参考答案.docx
《软件设计与体系结构期末考试学年模拟试题参考答案.docx》由会员分享,可在线阅读,更多相关《软件设计与体系结构期末考试学年模拟试题参考答案.docx(30页珍藏版)》请在冰豆网上搜索。
软件设计与体系结构期末考试学年模拟试题参考答案
北京工业大学2017-2018学年
第二学期模拟试题参考答案
考试课程:
软件设计与体系结构考试日期:
2018年06月12日
学院:
信息学部(软件学院)专业:
软件工程
学号:
姓名:
成绩:
题号
一
二
三
四
五
六
七
八
九
十
总分
成绩
阅卷教师
………………………………………………………………………………………………………
一填空题(共30空,每空1分)
1.软件或程序是由软件工程人员设计与开发,使计算设备发挥计算潜能,(计算机指令)的逻辑层次组织。
2.软件体系结构(SoftwareArchitecture)--是软件产品设计的思想和系统的蓝图;是对软件产品(组成要素或单元)的规划和(单元职责)的设置;是定义软件系统组件(Components)或构建块(BuildingBlocks)的重要工具;用于
--实现对一个软件系统的构成进行(逻辑组织结构)的划分
--所形成和采用的工程化规范,是指导软件后续过程方方面面组成的模型。
3.软件开发中的面临若干问题:
1)软件固有的复杂性;2)软件开发的随意性;3)周期长,代价高,质量低的问题;软件体系结构设计是软件产品及大型信息系统工程实现中最重要的环节和关键技术之一,解决从软件的(需求分析)到系统实现(代码)的有效和平坦过渡。
4.软件产品的工业化生产:
是指建立流水线型的软件产品生产线,是指按(规范化)、标准化的规范和规则(软件生产规范)来编写和实现各种各样的适应于多环境的软件(组件),通过软件体系结构来确定各个软件组件如何部署到开发架构模式中,组装成达到期望的软件产品。
5.体系结构设计方法的发展中,软件程序开发经历了如下的阶段
--功能分解法(计算任务)
--结构化程序设计(以数据为中心)
--(面向对象程序设计)
--(面向组件程序设计)
--基于SOA的程序设计(以服务为中心)。
6.一个现代软件产品生产过程如下图表示,请在带___________的方框中,填上相应的组件名称
7.软件体系结构组件间的连接方式如图表示,则图A的连接方式称为(点对点)连接体系结构;图B的连接方式称为基于(中间件)连接体系结构。
8.UML 将软件的体系结构分解为五个不同的侧面,通过不同侧面的视图提供给不同相关者的软件体系结构描述,这五个侧面分别是:
(逻辑)视图,(开发)视图,(用例)视图,进程(Process)视图,部署与配置(Deployment)视图。
9.MFC 框架定义Windows应用程序的轮廓,提供了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。
MicrosoftVisualC++提供了相应的工具来完成这个工作:
这些工具包括(AppWizard应用生成器) (可以用来生成初步的框架文件(代码和资源等)),
资源编辑器(ResourceEditor)(用于帮助直观地设计用户接口),
(ClassWizard)(用来协助添加代码到框架文件)。
10.软件体系结构设计风格–是指对软件组件间组织形式和组织机理风格的描述。
通过考虑在组件组织模式的各种形式变化,形成包括(管道过滤风格),(批处理风格),(黑板风格),(C/S风格),(B/S风格)的软件体系结构风格。
11.软件体系结构的评估与分析–是指通过对复杂应用系统软件体系结构设文档、设计过程、代码、实现过程的评估与审查等手段来判断软件的(质量属性),增强软件的质量;在真正的错误的设计导致真的灾难前(挑出错误),选择更好的结构或(改进)结构的设计。
12.软件系统的质量属性有多种,请列举其中至少4种:
可用性、(可靠性)、(可维护性)、(安全性)、(可修改性)、可测试性、易用性、可移植、可重用、可集成。
13.图形表达工具是一种简单而且使用广泛的表达工具,其中各种矩形框(带文字、不带文字、实线体、虚线体、…)箭头线(单箭头、双箭头、实体箭头、虚箭头、…)被用来分别表示软件的组件和(组件的连接)结构。
二判断题(共10题,每题1分,正确在括号划√,错误在括号划X)
(√)1.Windows的应用系统--是一个具有可视化图像用户界面、可进行多任
务进行操作的系统,它为用户提供了风格统一(由窗架、菜单、视窗、工具
栏等)界面元素所构成的多任务应用环境。
--直观、高效、统一的面向对象的图形用户界面,易学易用
--丰富的设备无关的图形操作
--多任务多进程
(X)2.软件体系结构不只是一种对软件系统的表示和描述,它也是可运行的软件
(√)3.层次化的软件体系结构是指按照分层模式安排一个软件系统组件的结构,每
一层为上一层提供服务、不相邻的层间不能进行调用
(X)4.软件体系结构中不应包含中间件
(√)5.软件体系结构风格和模式可以被应用到其他系统的设计中
(√)6.软件体系结构是软件开发中的中间产品,1)用于控制软件的复杂性;2)提
高软件的质量;3)支持软件的开发过程;4)支持软件过程的可控制性;5)
软件生产的效率和生产力
(X)7.用面向对象方法构造软件系统体系结构时,其最基本单位是函数
(X)8.软件体系结构描述表示方法包括形式化和非形式化的描述方法,UML是非
形式化描述方法,ADL是形式化描述方法
(√)9.通过分布式软件体系结构的设计,能实现异构环境组件的互连、互通和互操
作
(√)10.软件体系结构的评估方法包括SAAM(SoftwareArchitectureAnalysisMethod),ATAM(ArchitectureTradeoffAnalysisMethod),ARID(ActiveReviewsforIntermediateDesigns)等方法
三简答题(共4题,每题5分)
1.什么是软件体系结构,描述软件体系结构的主要内容及组织?
软件体系结构(SoftwareArchitecture):
是软件产品设计的思想和系统的蓝图;是对软件产品组成的规划和职责的设置;是定义软件系统组件(Components)或构建块(BuildingBlocks)的重要工具;用于
*实现对一个软件系统的构成进行逻辑上的划分
*所形成和采用的工程化规范,用于指导软件后续开发过程方方面面组成部分
的模型
软件体系结构描述一个软件产品的定义和组件(parts)
*定义单独的组件系统–Componets:
*描述系统的结构--Connectors&InterrelatedComponents
*定义责任的范围--ABoundary
*描述组件的功能--APurposeandResponsibility
*算法–ImplementationAlgorithm
▪*数据的表示–DataRepresentation
▪*Constrains
▪软件体系结构实质上是一系列相关要素的逻辑组织结构(Asoftwaresystem’sarchitectureshouldbeacompositionandinterplayofdifferentelements)
-构件的逻辑组织方式(Components)
-流程的逻辑组织结构(Processing)
-数据的逻辑组织结构(Data,alsoreferredasinformationorstate)
-构件的连接组织方式(Interaction)
2.描述软件体系结构分析和评估的概念和意义
软件体系结构的评估与分析–是指通过对复杂应用系统软件体系结构设文档、设计过程、代码、实现过程的评估与审查等手段来判断软件的质量属性,增强软件的质量;在真正的错误的设计导致真的灾难前挑出错误,选择更好的结构或改进结构的设计。
▪软件体系结构的评估与分析的作用
--判断软件体系结构将导致设计所期望的质量属性和功能
--识别潜在的风险
--对设计的自我完善
3.描述什么是分布式应用程序和体系结构的概念及优点
分布式应用系统(程序)--指使用分布于多个(一个以上)计算环境的对象(程序、内存、CPU、外设等)共同协作以完成一个应用程序,这些计算环境可相同或相异。
--分布式应用系统(程序)将一个应用程序和程序的执行分布于多台计算机、提
高程序的性能和可扩展性
--将在不同环境、操作系统和平台上运行的代码进行集成
--革新大规模的资源密集型应用程序
4描述一个软件体系结构中组件的角色和任务
▪GraphicUserInterfaces(图形用户界面):
是用户与模型(业务)层他之间的一个接口,表示层程序通过图形界面为用户提供便捷的操作基础,使用户可以和模型或程序进行可视化交互:
一般,图形界面包括窗口、菜单、按钮、选择按钮、文本框、工具栏等元素
四体系结构设计和程序阅读题:
(20分,共4题,每题5分)
1.使用图形描述语言,描述VC++ MFC开发环境下,开发基于Dialog模式应用程序的基本架构
2.一张CRC(ComponentResponsibilityCard)卡如下图表示,请用VC++MFC或Java编码完成CRC卡描述的内容
classname:
Crocket
superclasses:
subclasses:
Responsibilities(责任)
1负责描述运载火箭的基本属性、静止状态、发射状态、
飞行状态、…..
Collaborators(交互类和接口)
类CRocket_Display
Attributes
classCRocket_Display
{
CRocket_Display()
{
}
….
}
…..
intH,V
intx,y,z,
Responsibilities
CRocket(CRocket_Displayrocket);//构造函数
voidDrawRocket();//绘制火箭
voidInitInstance();//在应用开始时作初始化
voidExitInstance();//应用退出时作清理工作
voidLauncher();//发射
voidFly();//飞行
……..
classCRocket:
CDocument
{
private:
floatH,V;
floatx,y,z;
public:
Crocket();
~Crocket();
voidInitInsance();
voidExitInstance();
voidLauncher();
voidFly();
};
#include“Crocket.h”
#include“CRocket_Display.h”
CRocket:
:
CRocket()
{
InitInstance();
}
CRocket:
:
~CRocket()
{
}
voidCRocket:
:
InitInstance()
{
CRocket_Display*app;
app->display();
}
voidCRocket:
:
ExitInstance()
{
}
voidCRocket:
:
Launcher()
{
}
voidCRocket:
:
Fly()
{
}
3.已知一个应用系统的软件体系结构如下图表示,类 Exam_App 为Java的组装线程序,类 Exam_Frame 为顶层容器,类 Display为表示界面,类Model 为模型组件,写出以下Java程序的运行结果
classExam_App{
publicstaticvoidmain(){
newExam_Frame();
}
}
classExam_FrameextendsJFrame{
ContainercontentPane;
Displaydisplay;
Modelmodel;
Exam_Frame(){
contentPane=this.getContentPane();
display=newDisplay();
model=newModel(display);
setSize(1024,768);
setVisible(true);
}
}
classDisplay{
BufferedImagebuffer=null;
…
Display()
{
buffer=newBufferedImage(1024,768,BufferedImage.TRANSLUCENT);
}
publicvoidpaintComponent(Graphicsg)
{
g.drawImage(buffer,0,0,null);
}
…
}
classModel
{
BufferedImageimage;
Graphicsg;
Displaypanel=null;
Model(Displaypane)
{
this.panel=pane;
g=panel.buffer.getGraphics();
g.drawString(10,10,“WelcometotheTestofSoftwareArchitecture”);
g.drawString(50,10,“IwillSuccess!
!
!
”);
}
…..
}
运行以上程序,结果为
4.已知一个基于VC++MFC环境Dialog模式应用程序体系结构表示如下,
其中,组装线类 Exam_App用于组装图形表示界面类 Exam_Dlg,图形表示界面类 Exam_Dlg 通过函数Model_Display用于调用类Model
#include
classExam_App:
CWinApp
{
public:
virtualBOOLInitInstance();
};
Exam_Appapp;
classExam_Dlg:
CDialog
{
Public:
Model*model;
public:
voidOnInitDialog();
voidModel_Display();
};
classModel
{
public:
Model();
Stringmodel_data();
};
请完成从类 Exam_Dlg中Model_Display 调用类Model 函数Stringmodel_data()的代码
voidExam_App:
:
OnInitDialog()
{
//完成指向Model的指针
model=newModel();
}
voidExam_App:
:
Model_Display()
{
//完成调用类Model 函数Stringmodel_data()
Stringstr=model->model_data()
}
五综合设计题(20分,每题10分)
1.(10分)时髦的家(SmartHome)的应用场景,如图所示
一个用户在PC机终端上,通过Internet网络,远程控制家中的彩电、冰箱和家用机器人的运行状态。
设计一个在PC机终端上能实现对家中的彩电、冰箱和家用机器人的运行状态进行有效控制的软件系统的体系结构。
(1)设计和表示在PC机终端上能实现对家中的彩电、冰箱和家用机器人的运行状态进行有效控制的软件系统的体系结构,应包括系统层级(用模块、分层结构)、组件层级(用类图表示,至少应有TVSet、Refrigerator、HomeRobotic实体类)的体系结构,
(2)使用VC++MFC 或 Java 语言用代码进行体系结构所表示的组件的设计和实现(面向对象的方法)
(3)使用VC++MFC 或 Java,设计一个组装线,组装组件成为运行的系统
(1)设计的体系结构图如下
(2)组件的设计和实现如下
(3)类的清单
/----------------------------------------------------------------------
//C++.header
//----------------------------------------------------------------------
/***********************************************************************
*Module:
Controller.h
*Author:
zhangj
*Modified:
2017年12月28日16:
35:
02
*Purpose:
DeclarationoftheclassController
***********************************************************************/
#if!
defined(__ObjectOrientedModel_1_Controller_h)
#define__ObjectOrientedModel_1_Controller_h
classTVSet_Model;
classRefigrator_Model;
classHomeRobotics_Model;
classController
{
public:
intUpload_Model(void);
TVSet_Model**tVSet_Model;
Refigrator_Model**refigrator_Model;
HomeRobotics_Model**homeRobotics_Model;
protected:
private:
intModel_Selection;
};
#endif
//----------------------------------------------------------------------
//C++.source
//----------------------------------------------------------------------
/***********************************************************************
*Module:
Controller.cpp
*Author:
zhangj
*Modified:
2017年12月28日16:
35:
02
*Purpose:
ImplementationoftheclassController
***********************************************************************/
#include"TVSet_Model.h"
#include"Refigrator_Model.h"
#include"HomeRobotics_Model.h"
#include"Controller.h"
////////////////////////////////////////////////////////////////////////
//Name:
Controller:
:
Upload_Model()
//Purpose:
ImplementationofController:
:
Upload_Model()
//Return:
int
////////////////////////////////////////////////////////////////////////
intController:
:
Upload_Model(void)
{
//TODO:
implement
}
//----------------------------------------------------------------------
//C++.header
//----------------------------------------------------------------------
/***********************************************************************
*Module:
HomeRobotics_Model.h
*Author:
zhangj
*Modified:
2017年12月28日16:
41:
22
*Purpose:
DeclarationoftheclassHomeRobotics_Model
***********************************************************************/
#if!
defined(__ObjectOrientedModel_1_HomeRobotics_Model_h)
#define__ObjectOrientedModel_1_HomeRobotics_Model_h
classHomeRobotics_Model
{
public:
intStatus_Adjustment(void);
intStatus_Results(void);
protected:
private:
intStatus_Items;
intStatus;
};
#endif
//----------------------------------------------------------------------
//C++.source
//----------------------------------------------------------------------
/**********************************************
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 体系结构 期末考试 学年 模拟 试题 参考答案