《软件设计与体系结构期末考试2017-2018学年模拟试题参考答案》由会员分享,可在线阅读,更多相关《软件设计与体系结构期末考试2017-2018学年模拟试题参考答案(29页珍藏版)》请在金锄头文库上搜索。
1、北京工业大学 2017 - 2018学年第二学期模拟试题参考答案考试课程:软件设计与体系结构考试日期:2018年06月丝日学 院:信息学部(软件学院)专 业: 软件工程学 号: 姓名: 成绩:题 号一一三四五六七八九十总分成 绩阅卷教师填空题(共30空,每空1分)1 .软件或程序是由软件工程人员设计与开发,使计算设备发挥计算潜能,(计算机指令)的逻辑层次组织。2 .软件体系结构(Software Architecture )-是软件产品设计的思想和系统的蓝图;是对软件产品(组成要素或单元)的规划和(单元职责)的设置;是定义软件系统组件(Components )或构建块(Building Blo
2、cks )的重要工具;用于-实现对一个软件系统的构成进行(逻辑组织结构) 的划分-所形成和采用的工程化规范,是指导软件后续过程方方面面组成的模型。3 .软件开发中的面临若干问题:1)软件固有的复杂性;2)软件开发的随意性;3)周期长,代价高,质量低的问题;软件体系结构设计是软件产品及大型信息系统工程实现中 最重要的环节和关键技术之一,解决从软件的(需求分析)到系统实现(代码)的有效和平坦过渡。4 .软件产品的工业化生产:是指建立流水线型的软件产品生产线,是指按(规范化)、标准化的规范和规则(软件生产规范)来编写和实现各种各样的适应于多环境的软件(组件),通过软件体系结构来确定各个软件组件如何部
3、署到开发架构模式中,组装成达到 期望的软件产品。5 .体系结构设计方法的发展中,软件程序开发经历了如下的阶段-功能分解法 (计算任务)- -结构化程序设计( 以数据为中心)- -(面向对象程序设计)- -(面向组件程序设计)- - 基于SOA的程序设计(以服务为中心)。6. 一个现代软件产品生产过程如下图表示,请在带 的方框中,填上相应的组件名称7.软件体系结构组件间的连接方式如图表示,则图A的连接方式称为(点对点)连接体系结构;图B的连接方式称为基于(中间件) 连接体系结构。图A图B8 . UML 将软件的体系结构分解为五个不同的侧面,通过不同侧面的视图提供给不同相关者的软件体系结构描述,这
4、五个侧面分别是:(逻辑)视图,(开发)视图,(用例)视图,进程(Process )视图,部署与配置(Deployment )视图。9 . MFC 框架定义 Windows 应用程序的轮廓,提供了用户接口的标准实现方法,程序 员所要做的就是通过预定义的接口把具体应用程序特有的东西填入这个轮廓。Microsoft Visual C+提供了相应的工具来完成这个工作:这些工具包括(AppWizard 应用生成器)(可以用来生成初步的框架文件(代码和资源等),资源编辑器(Resource Editor)(用于帮助直观地设计用户接口),(ClassWizard )(用来协助添加代码到框架文件)。10 .软
5、件体系结构设计风格-是指对软件组件间组织形式和组织机理风格的描述。通过考虑在组件组织模式的各种形式变化,形成包括(管道过滤风格),(批处理风格),(黑板风格),(C/S风格),(B/S风格)的软件体系结构风格。11 .软件体系结构的评估与分析-是指通过对复杂应用系统软件体系结构设文档、设计过程、代码、实现过程的评估与审查等手段来判断软件的(质量属性),增强软件的质量;在真正的错误的设计导致真的灾难前(挑出错误),选择更好的结构或 (改进)结构的设计。12 .软件系统的质量属性有多种,请列举其中至少 4种:可用性、(可靠性)、(可维护性)、(安全性)、(可修改性)、可测试性、易用性、可移植、可重
6、用、可集成。13 .图形表达工具是一种简单而且使用广泛的表达工具,其中各种矩形框(带文字、不带文字、实线体、虚线体、)箭头线(单箭头、双箭头、实体箭头、虚箭头、 )被用来分别表示软件的组件和(组件的连接)结构。二 判断题(共10题,每题1分,正确在括号划V,错误在括号划X)( V ) 1. Windows 的应用系统-是一个具有可视化图像用户界面、可进行多任务进行操作的系统,它为用户提供了风格统一(由窗架、菜单、视窗、工具 栏等)界面元素所构成的多任务应用环境。- -直观、高效、统一的面向对象的图形用户界面,易学易用- -丰富的设备无关的图形操作- - 多任务多进程( X ) 2.软件体系结构
7、不只是一种对软件系统的表示和描述,它也是可运行的软件(V )3.层次化的软件体系结构是指按照分层模式安排一个软件系统组件的结构,每一层为上一层提供服务、不相邻的层间不能进行调用(X ) 4.软件体系结构中不应包含中间件(V ) 5.软件体系结构风格和模式可以被应用到其他系统的设计中(V ) 6.软件体系结构是软件开发中的中间产品,1)用于控制软件的复杂性;2)提高软件的质量;3)支持软件的开发过程;4)支持软件过程的可控制性;5)软件生产的效率和生产力(X ) 7.用面向对象方法构造软件系统体系结构时,其最基本单位是函数( X ) 8.软件体系结构描述表示方法包括形式化和非形式化的描述方法,U
8、ML是非 形式化描述方法,ADL是形式化描述方法(V ) 9.通过分布式软件体系结构的设计,能实现异构环境组件的互连、互通和互操作( ,)10.软件体系结构的评估方法包括SAAM (Software Architecture AnalysisMethod), ATAM (Architecture Tradeoff Analysis Method), ARID(Active Reviews for Intermediate Designs ) 等方法三简答题(共4题,每题5分)1 .什么是软件体系结构,描述软件体系结构的主要内容及组织?软件体系结构(Software Architecture )
9、:是软件产品设计的思想和系统的蓝图;是对软件产品组成的规划和职责的设置;是定义软件系统组件(Components )或构建块 (BuildingBlocks )的重要工具;用于* 实现对一个软件系统的构成进行逻辑上的划分* 所形成和采用的工程化规范,用于指导软件后续开发过程方方面面组成部分 的模型软件体系结构描述一个软件产品的定义和组件(parts)* 定义单独的组件系统-Componets :* 描述系统的结构-Connectors & Interrelated Components* 定义责任的范围-A Boundary* 描述组件的功能-A Purpose and Responsibil
10、ity* 算法-Implementation Algorithm?* 数据的表示-Data Representation?* Constrains? 软件体系结构实质上是一系列相关要素的逻辑组织结构(A software system architecture should be a composition and interplay of different elements)- 构件的逻辑组织方式(Components)- 流程的逻辑组织结构(Processing)- 数据的逻辑组织结构(Data, also referred as information or state)- 构件的连接
11、组织方式(Interaction)2 .描述软件体系结构分析和评估的概念和意义软件体系结构的评估与分析-是指通过对复杂应用系统软件体系结构设文档、设计过程、代码、实现过程的评估与审查等手段来判断软件的质量属性,增强软件的质量;在真 正的错误的设计导致真的灾难前挑出错误,选择更好的结构或改进结构的设计。? 软件体系结构的评估与分析的作用- -判断软件体系结构将导致设计所期望的质量属性和功能- -识别潜在的风险- -对设计的自我完善3 .描述什么是分布式应用程序和体系结构的概念及优点分布式应用系统(程序)-指使用分布于多个(一个以上)计算环境的对象(程序、内存、CPU、外设等)共同协作以完成一个应
12、用程序,这些计算环境可相同或相异。-分布式应用系统(程序)将一个应用程序和程序的执行分布于多台计算机、提 高程序的性能和可扩展性-将在不同环境、操作系统和平台上运行的代码进行集成-革新大规模的资源密集型应用程序4描述一个软件体系结构中组件的角色和任务*构件是计算或数据储存的单元Perry & Wolt定义中的处工里元素和粪攵据元素 构彳牛是计算和二犬态白勺场所善尸(clltJLllhi)服务部(导tcpe)娄攵书居过滤翳(filters)H-抽盘缴据类型(ACT- 构件可以是简单的或裒告的-复合构件描述了一个子)系统? Graphic User Interfaces(图形用户界面):是用户与模
13、型(业务)层他之间的一个接口,表示层程序通过图形界面为用户提供便捷的操作基础,使用户可以和模型或程序进行可视化交互:一般,图形界面包括窗口、菜单、按钮、选择按钮、文本框、工具栏等元素四体系结构设计和程序阅读题:(20分,共4题,每题5分)1,使用图形描述语言,描述 VC+ MFC开发环境下,开发基于Dialog 模式应用程序的基本架构2. 一张 CRC ( Component Responsibility编码完成CRC卡描述的内容Card)卡如下图表示,请用 VC+ MFC或Javaclass name: Crocketsuper classes:subclasses:Responsibili
14、ties ( 责任)1负责描述运载火箭的基本属性、静止状态、发射状态、飞行状态、.Collaborators (交互类和接口 ) 类 CRocket_DisplayAttributesclass CRocket_Displayint H, V(int x, y, z,CRocket_Display()Responsibilities(C Rocket(CRocket_Display rocket); /构造函数void DrawRocket ();刖/绘制火)void InitInstance();始时作初始化/在应用开).void ExitInstance ();作清理工作/应用退出时void Launcher();/发射void Fly();./飞行class CRocket: CDocument(private:float H, V;float x,y,z;public:Crocket();-Crocket();void InitInsance();void ExitInstance();void Launcher();void Fly(););#include“ Crocket.h #include CRocket_Display