问答题
阅读以下关于软件架构设计的叙述,在答题纸上回答问题1至问题3。[说明]某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:1.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。2.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致。3.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。4.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无须重启环境。5.支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。6.能够连续运行的时间不小于240小时,意外退出后能够在10秒之内自动重启。7.集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布。8.支持应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。
问答题
[问题1]识别软件架构质量属性是进行架构设计的重要步骤。请分析题干中的需求描述,填写表1—1中(1)~(5)处的空白。
【正确答案】正确答案:(1)f(2)性能(3)d(4)g(5)b
【答案解析】
问答题
[问题2]请在阅读题干需求描述的基础上,从交互方式、数据结构、控制结构和扩展方法4个方面对两种架构风格进行比较,填写表1—2中(1)~(4)处的空白。
【正确答案】正确答案:(1)工具之间无直接交互,通过数据仓储间接交互 (2)流式数据 (3)数据驱动 (4)与数据仓储进行数据适配
【答案解析】
问答题
[问题3]在确定采用数据仓库架构风格后,王工给出了集成开发环境的架构图。请填写图1—1中(1)~(4)处的空白,完成该集成开发环境的架构图。
【正确答案】正确答案:(1)模型/数据库 (2)代码编辑工具 (3)数据格式转换器 (4)模拟器
【答案解析】解析:本题主要考查考生对于软件质量属性的理解、掌握和应用。在解答该问题时,需认真阅读题干中给出的场景与需求描述,分析该需求描述了何种质量属性,根据质量属性描述对其归类,并需要理解架构风险、敏感点和权衡点这些概念。 [问题1] 识别软件架构质量属性是进行架构设计的重要步骤。根据对相关质量属性的定义和含义,其中“支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒”,这描述的是系统的性能属性;“能够连续运行的时间不小于240小时,意外退出后能够在10秒之内自动重启”描述的则是系统的可用性;“支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无须重启环境”描述的是系统的可修改性;“集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布”描述的是系统的可测试性;。“经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致”描述的是系统的易用性。 [问题2] 对不同的架构设计决策是架构师必须具有的基本能力,根据题干要求: (1)从交互方式方面看,管道一过滤器风格具有顺序结构或有限的循环结构;采用数据仓储风格时,工具之间无直接交互,通过数据仓储间接交互。 (2)从数据结构方面看,管道一过滤器风格具有数据驱动的特征,数据到来后就进行计算;数据仓储风格以文件或模型为主要数据结构。 (3)从控制结构方面看,管道一过滤器风格具有顺序结构或有限的循环结构;数据仓储风格则以业务功能驱动。 (4)从扩展方法方面看,管道一过滤器风格主要采用适配器方式实现扩展性;数据仓储风格中,每个工具需要与数据仓储进行数据适配。 [问题3] 本题目主要考查数据仓储风格的实际设计与应用。结合风格定义,从图中可以看出,位于核心位置的组件(1)应该是数据库/模型。根据题干描述,可以直接接入数据库的组件(2)应该是代码编辑工具。(3)和(4)对应题干描述“……集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具”,因此应该分别填入数据格式转换器和模拟器。