最新软件体系结构期末考试.docx
《最新软件体系结构期末考试.docx》由会员分享,可在线阅读,更多相关《最新软件体系结构期末考试.docx(12页珍藏版)》请在冰点文库上搜索。
最新软件体系结构期末考试
北京工业大学2014-2015学年
第二学期模拟试题
考试课程:
软件体系结构I考试日期:
2015年5月20日
学院:
软件学院专业:
软件工程
学号:
姓名:
成绩:
题号
一
二
三
四
五
六
七
八
九
十
总分
成绩
阅卷教师
………………………………………………………………………………………………………
一填空题(共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++提供了相应的工具来完成这个工作:
这些工具包括_____________________ (可以用来生成初步的框架文件(代码和资源等)),
资源编辑器(ResourceEditor)(用于帮助直观地设计用户接口),
_______________________________(用来协助添加代码到框架文件)。
10.软件体系结构设计风格–是指对软件组件间组织形式和组织机理风格的描述。
通过考虑在组件组织模式的各种形式变化,形成包括___________,______________,_______,____________,___________________的软件体系结构风格。
11.软件体系结构的评估与分析–是指通过对复杂应用系统软件体系结构设文档、设计过程、代码、实现过程的评估与审查等手段来判断软件的____________,增强软件的质量;在真正的错误的设计导致真的灾难前__________,选择更好的结构或_________结构的设计。
12.软件系统的质量属性有多种,请列举其中至少4种:
可用性、_______、________、______、_______、可测试性、易用性、可移植、可重用、可集成。
13.图形表达工具是一种简单而且使用广泛的表达工具,其中各种矩形框(带文字、不带文字、实线体、虚线体、…)箭头线(单箭头、双箭头、实体箭头、虚箭头、…)被用来分别表示软件的组件和______结构。
二判断题(共10题,每题1分,正确在括号划√,错误在括号划X)
()1.数据流图是表示软件模基于Windows的应用系统--是一个具有可视
化图像用户界面、可进行多任务进行操作的系统,它为用户提供了风格统一
(由窗架、菜单、视窗、工具栏等)界面元素所构成的多任务应用环境。
--直观、高效、统一的面向对象的图形用户界面,易学易用
--丰富的设备无关的图形操作
--多任务多进程
()2.软件体系结构不只是一种对软件系统的表示和描述,它也是可运行的软件
()3.层次化的软件体系结构是指按照分层模式安排一个软件系统组件的结构,每
一层为上一层提供服务、不相邻的层间不能进行调用
()4.软件体系结构中不应包含中间件
()5.软件体系结构风格和模式可以被应用到其他系统的设计中
()6.软件体系结构是软件开发中的中间产品,1)用于控制软件的复杂性;2)提
高软件的质量;3)支持软件的开发过程;4)支持软件过程的可控制性;5)
软件生产的效率和生产力
()7.用面向对象方法构造软件系统体系结构时,其最基本单位是函数
()8.软件体系结构描述表示方法包括形式化和非形式化的描述方法,UML是非
形式化描述方法,ADL是形式化描述方法
()9.通过分布式软件体系结构的设计,能实现异构环境组件的互连、互通和互操
作
()10.软件体系结构的评估方法包括SAAM(SoftwareArchitectureAnalysisMethod),ATAM(ArchitectureTradeoffAnalysisMethod),ARID(ActiveReviewsforIntermediateDesigns)等方法
三简答题(共4题,每题5分)
1.什么是软件体系结构,描述软件体系结构的主要内容及组织?
2.描述软件体系结构分析和评估的概念和意义
3.描述什么是分布式应用程序和体系结构的概念及优点
4描述一个软件体系结构中组件的角色和任务
四体系结构设计和程序阅读题:
(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();//飞行
……..
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,“WelcometotheTestofSoftwareArchitectureII”);
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();
5、你认为一件DIY手工艺制品在什么价位可以接受?
};
还有一点就是beadwork公司在“碧芝自制饰品店”内设立了一个完全的弹性价格空间:
选择饰珠的种类和多少是由顾客自己掌握,所以消费者可以根据自己的消费能力进行取舍;此外由于是顾客自己制作,所以从原料到成品的附加值就可以自己享用。
请完成从类 Exam_Dlg中Model_Display 调用类Model 函数Stringmodel_data()的代码
朋友推荐□宣传广告□逛街时发现的□上网□voidExam_App:
:
OnInitDialog()
{
5、你认为一件DIY手工艺制品在什么价位可以接受?
//完成指向Model的指针
大学生购买力有限,即决定了要求商品能价廉物美,但更注重的还是在购买过程中对精神文化爱好的追求,满足心理需求。
图1-5购物是对消费环境的要求分布
}
还有一点就是beadwork公司在“碧芝自制饰品店”内设立了一个完全的弹性价格空间:
选择饰珠的种类和多少是由顾客自己掌握,所以消费者可以根据自己的消费能力进行取舍;此外由于是顾客自己制作,所以从原料到成品的附加值就可以自己享用。
voidExam_App:
:
Model_Display()
{
//完成调用类Model 函数Stringmodel_data()
3、消费“多样化”
}
四、影响的宏观环境分析五综合设计题(20分,每题10分)
小饰品店往往会给人零乱的感觉,采用开架陈列就会免掉这个麻烦。
“漂亮女生”像是个小超市,同一款商品色彩丰富地挂了几十个任你挑,拿上东西再到收银台付款。
这也符合女孩子精挑细选的天性,更保持了店堂长盛不衰的人气。
1.(10分)时髦的家(SmartHome)的应用场景,如图所示
一个用户在PC机终端上,通过Internet网络,远程控制家中的彩电、冰箱和家用机器人的运行状态。
设计一个在PC机终端上能实现对家中的彩电、冰箱和家用机器人的运行状态进行有效控制的软件系统的体系结构。
(1)设计和表示在PC机终端上能实现对家中的彩电、冰箱和家用机器人的运行状态进行有效控制的软件系统的体系结构,应包括系统层级(用模块、分层结构)、组件层级(用类图表示,至少应有TVSet、Refrigerator、HomeRobotic实体类)的体系结构,
(2)使用VC++MFC 或 Java 语言用代码进行体系结构所表示的组件的设计和实现(面向对象的方法)
(3)使用VC++MFC 或 Java,设计一个组装线,组装组件成为运行的系统
2.(10分)在VC++MFC开发环境或在JavaJDK1.5的开发环境下,设计一个
软件应用系统的软件体系结构,完成下述的任务
(1)能完成n(n>1整数)个实数的求和;
(2)能完成n(n>1整数)个实数的求积;
(3)能完成n(n>1整数)个实数的冒泡排序;
设计上述要求的软件体系结构,要求如下:
(1)系统的体系结构应该有表示层,即图形界面(GUIs)层--用于与用户的数据交互;模型层–用于完成上述任务的计算任务;控制层–用于模型层与表示层的交互控制;组装线–用于组装各个组件成为应用系统。
请用图形描述方法,设计系统的软件体系结构(组件集合及其部属)
(2)用CRC卡描述组装线,图形界面组件和模型组件
(3)编写VC++MFC或Java的程序代码完成组装线CRC卡,图形用户界面CRC卡,模型组件CRC卡的实现