2022年软件体系结构期末考试.docx
精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆北京工业高校2022 - 2022 学年第 二学期模拟试题考试课程:软件体系结构I 考试日期: 20XX 年 5 月 20 日学院:软件学院专业:软件工程姓名:学号:成果:题号一二三四五六七八九十总分成绩阅卷老师 一 填空题 共 30 空, 每空 1 分 1. 软件或程序是由软件工程人员设计与开发,使运算设备发挥运算潜能,_ 的规律层次组织;2. 软件体系结构(Software Architecture)- 是软件产品设计的思想和系统的蓝图;是)对软件产品 _ 的规划和 _ 的设置;是定义软件系统组件(Components或构建块(Building Blocks)的重要工具;用于- 实现对一个软件系统的构成进行_ 的划分- 所形成和采纳的工程化规范,是指导软件后续过程方方面面组成的模型;3.软件开发中的面临如干问题:1)软件固有的复杂性;2)软件开发的随便性;3)周期长,代价高,质量低的问题;软件体系结构设计是软件产品及大型信息系统工程实现中最重要的环节和关键技术之一,解决从软件的 平整过渡;_到系统实现(代码)的有效和4. 软件产品的工业化生产:是指建立流水线型的软件产品生产线,是指按 _、标准化的规范和规章(软件生产规范)来编写和实现各种各样的适应于多环境的软件 _ ,通过软件体系结构来确定各个软件组件如何部署到开发架构模式中,组装成达到期望的软件产品;5. 体系结构设计方法的进展中,软件程序开发经受了如下的阶段- 功能分解法 运算任务 - 结构化程序设计 以数据为中心 - _ - _ - 基于 SOA 的程序设计 以服务为中心 ;6. 一个现代软件产品生产过程如下图表示,请在带 _ 的方框中, 填上相应的组件名称名师归纳总结 - - - - - - -第 1 页,共 10 页精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆系统第三方开发组件组件组_软件构件库( Component Library )软件构架软件组装线软件产品7. (Software Framework )(Assembling Line)_ 连软件体系结构组件间的连接方式如图表示,就图的连接方式称为接体系结构;图的连接方式称为基于_ 连接体系结构;XAXAMediator Mediator8. BCBC)图 A 图 B UML将软件的体系结构分解为五个不同的侧面, 通过不同侧面的视图供应应不同相关者的软件体系结构描述,这五个侧面分别是:_ 视图 , _视图,_视图,进程( Process )视图,部署与配置( Deployment视图;9. MFC框架定义Windows 应用程序的轮廓,供应了用户接口的标准实现方法,程序员所要做的就是通过预定义的接口把详细应用程序特有的东西填入这个轮廓;Microsoft Visual C+ 供应了相应的工具来完成这个工作:这些工具包括_(可以用来生成初步的框架文件(代码和资源等), 资源编辑器 Resource Editor (用于帮忙直观地设计用户接口), _(用来帮助添加代码到框架文件);10. 软件体系结构设计风格是指对软件组件间组织形式和组织机理风格的描述;通过考虑在组件组织模式的各种形式变化,形成包括_, _, _, _, _ 的软件体系结构风格;11. 软件体系结构的评估与分析是指通过对复杂应用系统软件体系结构设文档、设计过程、代码、实现过程的评估与审查等手段来判定软件的_,增强软件的质量;在真正的错误的设计导致真的灾难前_,挑选更好的结构或_结构的设计;名师归纳总结 - - - - - - -第 2 页,共 10 页精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆12.软件系统的质量属性有多种,请列举其中至少4 种:可用性、 _、_、_、_、可测试性、易用性、可移植、可重用、可集成;13. 图形表达工具是一种简洁而且使用广泛的表达工具,其中各种矩形框(带文字、不带文字、实线体、虚线体、 )箭头线(单箭头、双箭头、实体箭头、虚箭头、 ) 被用来分别表示软件的组件和 _ 结构;二 判定题 共 10 题, 每题 1 分, 正确在括号划 , 错误在括号划 X 1. 数据流图是表示软件模基于 Windows 的应用系统- 是一个具有可视化图像用户界面、可进行多任务进行操作的系统,它为用户供应了风格统一(由窗架、菜单、视窗、工具栏等)界面元素所构成的多任务应用环境;- 直观、高效、统一的面对对象的图形用户界面,易学易用- 丰富的设备无关的图形操作- 多任务多进程 2. 软件体系结构不只是一种对软件系统的表示和描述,它也是可运行的软件 3. 层次化的软件体系结构是指根据分层模式支配一个软件系统组件的结构,每一层为上一层供应服务、不相邻的层间不能进行调用 4. 软件体系结构中不应包含中间件 5. 软件体系结构风格和模式可以被应用到其他系统的设计中 6. 软件体系结构是软件开发中的中间产品,1)用于掌握软件的复杂性;2)提高软件的质量;3)支持软件的开发过程;4)支持软件过程的可掌握性;5)软件生产的效率和生产力 7. 用面对对象方法构造软件系统体系结构时,其最基本单位是函数 8. 软件体系结构描述表示方法包括形式化和非形式化的描述方法,是非形式化描述方法,是形式化描述方法 9. 通过分布式软件体系结构的设计,能实现异构环境组件的互连、互通和互操作名师归纳总结 10. 软件体系结构的评估方法包括 SAAM ( Software Architecture Analysis 第 3 页,共 10 页Method),ATAM (Architecture Tradeoff Analysis Method),ARID(Active Reviews for Intermediate Designs)等方法三 简答题 共 4 题,每题5 分 1.什么是软件体系结构,描述软件体系结构的主要内容及组织?- - - - - - -精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆2. 描述软件体系结构分析和评估的概念和意义3. 描述什么是分布式应用程序和体系结构的概念及优点4 描述一个软件体系结构中组件的角色和任务四 体系结构设计和程序阅读题: 20 分, 共 4 题,每题5 分 1.使用图形描述语言,描述 VC+ MFC 开发环境下,开发基于 Dialog 模式应用程序的基本架构2.一张 CRC ( Component Responsibility Card )卡如下图表示,请用 VC+ MFC 或 Java 编码完成 CRC 卡描述的内容名师归纳总结 - - - - - - -第 4 页,共 10 页精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆class name: Crocket super classes: subclasses: Responsibilities 责任 Collaborators 交互类和接口 负责描述运载火箭的基本属性、静止状态、发射状态、类CRocket_Display 飞行状态、 .Attributes 构造函数class CRocket_Display int H, V CRocket_Display int x, y, z, Responsibilities RocketCRocket_Display rocket; / void DrawRocket () ; / 绘制火 .箭/ 在应用开void InitInstance; .始时作初始化/ 应用退出时void ExitInstance ; 作清理工作void Launcher; /发射void Fly; / 飞行 .名师归纳总结 - - - - - - -第 5 页,共 10 页精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆3.已知一个应用系统的软件体系结构如下图表示,类Exam_App为的组装线程序,类Exam_Frame为顶层容器,类Display 为表示界面,类Model为模型组件,写出以下Java 程序的运行结果顶 层 容 器(组 装 线(主 干表示层( JPanel)Display类模型层JFrame)程 序)Model 类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 Modeldisplay; setSize1024,768; setVisibletrue; class Display BufferedImage buffer = null; Display buffer = new BufferedImage1024,768, BufferedImage.TRANSLUCENT; public void paintComponentGraphics g g.drawImagebuffer,0,0, null; class Model 名师归纳总结 - - - - - - -第 6 页,共 10 页精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆 BufferedImage image; Graphics g; Display panel = null; Model Display pane this.panel = pane; g = panel.buffer.getGraphics; g.drawString10, 10, “Welcome to the Test of Software Architectureg.drawString50, 10, “I will Success. . 运行以上程序 , 结果为4.已知一个基于VC+ MFC 环境 Dialog 模式应用程序体系结构表示如下,图形表示界面(CDialog )组装线 CWinApp Exam_Dlg Exam_App 模型Model 其中,组装线类 Exam_App 用于组装图形表示界面类 Exam_Dlg ,图形表示界面类Exam_Dlg 通过函数 Model_Display 用于调用类 Model #include<afxwin.h> class Exam_App : CWinApp public: virtual BOOL InitInstance; ; Exam_App app; 名师归纳总结 - - - - - - -第 7 页,共 10 页精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆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 分第 8 页,共 10 页1.10 分 时髦的家( Smart Home)的应用场景,如下列图- - - - - - -精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆一个用户在PC 机终端上,通过Internet 网络,远程掌握家中的彩电、冰箱和家用机器人的运行状态;设计一个在PC 机终端上能实现对家中的彩电、冰箱和家用机器人的运行状态进行有效掌握的软件系统的体系结构;(1)设计和表示在 PC 机终端上能实现对家中的彩电、冰箱和家用机器人的运行状态进行有效掌握的软件系统的体系结构,应包括系统层级 (用模块、分层结构)、组件层级(用类图表示,至少应有 TVSet 、Refrigerator、HomeRobotic 实体类)的体系结构,(2)使用 VC+ 或语言用代码进行体系结构所表示的组件的设计和实现(面对对象的方法)(3)使用VC+ 或,设计一个组装线,组装组件成为运行的系统名师归纳总结 - - - - - - -第 9 页,共 10 页精选学习资料 - - - - - - - - - 学而不思就惘,思而不学就殆2. 10 分 在 VC+ MFC 开发环境或 在 Java JDK 1.5 的开发环境下,设计一个软件应用系统的软件体系结构,完成下述的任务1 能完成 n (n>1 整数)个实数的求和;2 能完成 n (n>1 整数)个实数的求积;3 能完成 n (n>1 整数)个实数的冒泡排序;设计上述要求的软件体系结构,要求如下:名师归纳总结 (1)系统的体系结构应当有表示层,即图形界面(GUIs )层 - 用于与用户的数据第 10 页,共 10 页(2)交互;模型层 用于完成上述任务的运算任务;掌握层 用于模型层与表示层的交互掌握;组装线 用于组装各个组件成为应用系统;请用图形描述方法,设计系统的软件体系结构(组件集合及其部属)用 CRC 卡描述组装线,图形界面组件和模型组件(3)编写VC+ MFC 或 Java 的程序代码完成组装线CRC 卡,图形用户界面CRC 卡,模型组件CRC 卡的实现- - - - - - -