1、2016年下半年软件水平考试(高级)系统架构师下午(案例分析)真题试卷及答案与解析 一、试题一 0 阅读以下关于软件架构设计的叙述,在答题纸上回答问题 1至问题 3。 说明 某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下: 1需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力 。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。 2经过调研,手机应用开发人员更倾
2、向于使用 Windows系统,因此集成开发环境的界面需要与 Windows平台上的主流开发工具的界面风格保持一致。 3支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。 4支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无须重启环境。 5支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含 50个对象的设计模型,将其转换为相应代码框架 时所消耗时间不超过 5秒。 6能够连续运行的时间不小于 240小时,意外退出后能够在 10秒之内自动重启。 7集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布。 8支持
3、应用开发过程中的代码调试功能:开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。 在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器 (Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储 (Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。 1 问题 1识别软件架构质量属性是进行架构设计的重要步骤。请分析题干中的需求描述,填写表 11中 (1) (5)处的空白。2 问题 2请在阅读题干需求描述的基础上,从交互方式、数据结构、控制结构和扩展
4、方法 4个方面对两种架构风格进行比较,填写表 12中 (1) (4)处的空白。3 问题 3在确定采用数据仓库架构风格后,王工给出了集成开发环境的架构图。请填写图 11中 (1) (4)处的空白,完成该集成开发环境的架构图。二、 试题二 3 阅读以下关于软件系统建模的叙述,在答题纸上回答问题 1至问题 3。 说明 某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。该教学管理系统基本的需求包括: (1)系统用户必须成功登录到系统后才能使用系统的各项功能服务; (2)管理员 (Registrar)使用该系统管理学校 (University)、系 (Department)、教师(Lect
5、urer)、学生 (Student)和课程 (Course)等教学基础信息; (3)学生使用系统选择并注册课程,必须通过所选课程的考试才能获得学分 ;如果考试不及格,必须参加补考,通过后才能获得课程学分; (4)教师使用该系统选择所要教的课程,并从系统获得选择该课程的学生名单; (5)管理员使用系统生成课程课表,维护系统所需的有关课程、学生和教师的信息; (6)每个月到了月底系统会通过打印机打印学生的考勤信息。 项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。 4 问题 1 用例建模用来描述待开发系统的功能需求,主要元素是用例和参与者。请根据题目所述需求,说明教学服务系统中有
6、哪些参与者。 5 问题 2 用例是对系统行为的动 态描述,用例获取是需求分析阶段的主要任务之一。请指出在面向对象系统建模中,用例之间的关系有哪几种类型 ?对题目所述教学服务系统的需求建模时, “登录系统 ”用例与 “注册课程 ”用例之间、 “参加考试 ”用例与 “参加补考 ”用例之间的关系分别属于哪种类型 ? 6 问题 3 类图主要用来描述系统的静态结构,是组件图和配置图的基础。请指出在面向对象系统建模中,类之间的关系有哪几种类型 ?对题目所述教学服务系统的需求建模时,类 University与类 Student之间、类 University和类 Department之间、类Student和类
7、 Course之间的关系分别属于哪种类型 ? 三、试题三 6 阅读以下关于嵌入式实时系统设计的描述,回答问题 1至问题 3。 说明 嵌入式系统是当前航空、航天、船舶及工业、医疗等领域的核心技术,嵌入式系统可包括实时系统与非实时系统两种。某宇航公司长期从事航空航天飞行器电子设备的研制工作,随着业务的扩大,需要大量大学毕业生补充到科研生产部门。按照公司规定,大学毕业生必须进行相关基础知识培训,为此,公司经理安排王工对他们进行了长达一个月的培训。 7 问题 1 王工在培训中指出:嵌入式系统主 要负责对设备的各种传感器进行管理与控制。而航空航天飞行器的电子设备由于对时间具有很强的敏感性,通常由嵌入式实
8、时系统进行管控,请用 300字以内文字说明什么是实时系统,实时系统有哪些主要特性。 8 问题 2实时系统根据应用场景、时间特征以及工作方式的不同,存在多种实时特性,大致有三种分类方法,即时间类别、时间需求和工作方式结构。根据自己所掌握的 “实时性 ”知识,将图 31给出的实时特性按三种分类方式,填写图 31中(1) (8)处空白。备选答案:时限的危害程度;时间角色;弱;时间响应;固定;时限反应时间;时 间明确;输入输出激励;时间触发;强;周期零星非周期;事件触发。 9 问题 3可靠性是实时系统的关键特性之一,区分软件的错误 (Error)、缺陷(Defect)、故障 (Fault)和失效 (F
9、ailure)概念是软件可靠性设计工作的基础。请简要说明错误、缺陷、故障和失效的定义;并在图 32中标出错误、缺陷和失效出现阶段,说明缺陷、故障和失效的表现形式,填写图 32中 (1) (6)处的空白。四、试题四 9 阅读以下关于应用服务器的叙述,在答题纸上回答问题 1至问题 3。 说明 某电子产品制造 公司,几年前开发建设了企业网站系统,实现了企业宣传、产品介绍、客服以及售后服务等基本功能。该网站技术上采用了 Web服务器、动态脚本语言 PHP。随着市场销售渠道变化以及企业业务的急剧拓展,该公司急需建立完善的电子商务平台。 公司张工建议对原有网站系统进行扩展,增加新的功能 (包括订单系统、支
10、付系统、库存管理等 ),这样有利于降低成本、快速上线;而王工则认为原有网站系统在技术上存在先天不足,不能满足企业业务的快速发展,尤其是企业业务将服务全球,需要提供 24小时不间断服务,系统在大负荷和长时间运行下的稳定性至关重要。 建议采用应用服务器的 Web开发方法,例如 J2EE,为该企业重新开发新的电子商务平台。 10 问题 1 王工认为原有网站在技术上存在先天不足,不能满足企业业务的快速发展,根据你的理解,请用 300字以内的文字说明原系统存在哪几个方面的不足。 11 问题 2 请简要说明应用服务器的概念,并重点说明应用服务器如何来保障系统在大负荷和长时间运行下的稳定性以及可扩展性。 1
11、2 问题 3J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件可被分别部署 到不同的机器中。请填写图 41中 (1) (5)处的空白,完成 J2EE的 N层体系结构。五、试题五 12 阅读以下关于 Scrum敏捷开发过程的叙述,在答题纸上回答问题 1至问题 3。 说明 Scrum是一个增量的、迭代的敏捷软件开发过程。某软件公司计划开发一个基于Web的 Scrum项目管理系统,用于支持项目团队采用 Scrum敏捷开发方法进行软件开发,辅助主管智能决策。此项目管理系统提供的主要服务包括项目团队的管理、敏捷开发过程管理和工件的管理。 Scru
12、m敏捷开发中,项目团队由 Scrum主管、产品负责 人和开发团队人员三种不同的角色组成,其开发过程由若干个 Sprint(短的迭代周期,通常为 2 4周 )活动组成。 Product Backlog是在 Scrum过程初期产生的一个按照商业价值排序的需求列表,该列表条目的体现形式通常为用户故事。在每一个 Sprint活动中,项目团队从ProductBacklog中挑选最高优先级的用户故事进行开发。被挑选的用户故事在Sprint计划会议上经过细化分解为任务,同时初步估算每一个任务的预计完成时间,编写 Sprint Backlog。 在 Sprint活动期间,项目团队每天早晨 需举行每日站立会议,
13、重新估算剩余任务的预计完成时间,更新 Sprint Backlog、 Sprint燃尽图和 Release燃尽图。在每个Sprint活动结束时,项目团队召开评审会议和回顾会议,交付产品增量,总结Sprint期间的工作情况和问题。此时,如果 Product Backlog中还有未完成的用户故事,则项目团队将开始筹备下一个 Sprint活动迭代。 为完成 Scrum项目管理系统,考虑到系统的智能决策需求,公司决定使用 MVC架构模式开发该项目管理系统。具体来说,系统采用轻量级 J2EE架构和 SSH框架进行开 发,使用 MySQL数据库作为底层存储。 13 问题 1Scrum项目管理软件需真实模拟
14、 Serum敏捷开发流程,请根据你的理解完成图 51给出的 Scrum敏捷开发状态图,填写其中 (1) (5)的内容。14 问题 2根据题干描述,本系统采用 MVC架构模式,请从备选答案 a n中分别选出属于 MVC架构模型中的模型 (Model)、视图 (View)和控制器 (Controler)的相关内容描述填入表 51的空 (1) (3)处。备选答案:15 问题 3根据项目组给出的系统设计方案,将备选答案 a l的内 容填写在图 52中的空 (1) (9),完成系统架构图。备选答案:2016年下半年软件水平考试(高级)系统架构师下午(案例分析)真题试卷答案与解析 一、试题一 1 【正确答
15、案】 (1)f(2)性能 (3)d(4)g(5)b 2 【正确答案】 (1)工具之间无直接交互,通过数据仓储间接交互 (2)流式数据 (3)数据驱动 (4)与数据仓储进行数据适配 3 【正确答案】 (1)模型数据库 (2)代码编辑工具 (3)数据格式转换器 (4)模拟器 【试题解析】 本题主要考查考生对于软件质 量属性的理解、掌握和应用。在解答该问题时,需认真阅读题干中给出的场景与需求描述,分析该需求描述了何种质量属性,根据质量属性描述对其归类,并需要理解架构风险、敏感点和权衡点这些概念。 问题 1 识别软件架构质量属性是进行架构设计的重要步骤。根据对相关质量属性的定义和含义,其中 “支持不同
16、模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含 50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过 5秒 ”,这描述的是系统的性能属性; “能够连续运行的时间不小于 240小时,意外退出后能够在 10秒之内自动 重启 ”描述的则是系统的可用性; “支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无须重启环境 ”描述的是系统的可修改性; “集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布 ”描述的是系统的可测试性;。 “经过调研,手机应用开发人员更倾向于使用 Windows系统,因此集成开发环境的界面需要与 W
17、indows平台上的主流开发工具的界面风格保持一致 ”描述的是系统的易用性。 问题 2 对不同的架构设计决策是架构师必须具有的基本能力,根据题干要求: (1)从交互方式 方面看,管道一过滤器风格具有顺序结构或有限的循环结构;采用数据仓储风格时,工具之间无直接交互,通过数据仓储间接交互。 (2)从数据结构方面看,管道一过滤器风格具有数据驱动的特征,数据到来后就进行计算;数据仓储风格以文件或模型为主要数据结构。 (3)从控制结构方面看,管道一过滤器风格具有顺序结构或有限的循环结构;数据仓储风格则以业务功能驱动。 (4)从扩展方法方面看,管道一过滤器风格主要采用适配器方式实现扩展性;数据仓储风格中,
18、每个工具需要与数据仓储进行数据适配。 问题 3 本题目主要考查数据仓储风格的实际 设计与应用。结合风格定义,从图中可以看出,位于核心位置的组件 (1)应该是数据库模型。根据题干描述,可以直接接入数据库的组件 (2)应该是代码编辑工具。 (3)和 (4)对应题干描述 “ 集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具 ”,因此应该分别填入数据格式转换器和模拟器。 二、试题二 4 【正确答案】 参与者:学生、教师、管理员、时间、打印机。 5 【正确答案】 用例之间的关系:泛化 (Generalization)、包含 (Include)和扩展(Extend)。
19、 用例 “登录系统 ”与用例 “注册课程 ”之间的关系是包含 (Include)关系;用例 “参加考试 ”与用例 “参加补考 ”之间的关系是扩展 (Extend)关系。 6 【正确答案】 类之间的关系:关联 (Association)、聚集 (Aggregation)、组合(Composition)、泛化 (Generalization)、依赖 (Dependence)。 类 University与类 Student之间的关系是聚集 (Aggregation)关系;类 University和类Department之间的关系是组合 (Composition)关系;类 Student和类 Cour
20、se之间的关系是关联 (Association)关系。 【试题解析】 本题考查面向对象系统建模的相关知识。 此类题目要求考生能够理解面向对象系统建模的基本概念和方法,并在应用系统开发中结合系统需求,利用面向对象建模技术构建系统的需求模型、分析模型和设计模型。 UML是面向对象系统的标准建模语言,是一种定义良好、易于表达、功能强大的建模语言。 UML在支持面向对象分析与设计的基础上,能够支持从需求分析开始的软件开发全过程。在 UML建模过程中,通过建立系统用 例模型和静态模型,搭建系统体系结构。用例模型属于系统的高级视图,按照面向对象的原则将系统要实现的行为划分为用例,并基于用例按照交互关系和时
21、间产生顺序图;在用例模型的基础上抽象出系统的类,明确各模块之间的关系按照合适的粒度构建系统类图。对于复杂的交互过程,需要补充状态图、活动图和协作图等系统模型,对系统内部处理细节进行建模。该题目针对教学管理系统需求,主要考查考生对于用例图和类图进行系统建模的掌握情况。 问题 1 本问题考查考生对用例建模中 “参与者 ”元素的理解。参与者是为了完成一个事件而与系统交互的实体,参 与者可以表示与系统接口的任何事物和任何人。这可以包括人 (不仅仅是最终用户 )、外部系统和其他组织,参与者位于建模的系统的外部。在识别参与者时,要注意参与者是与系统交互的所有事物,该角色的承担者除了人之外,还可以是其他系统
22、和硬件设备,甚至是系统时钟。按照题目中给出的系统需求说明,从需求 (3)、 (4)、 (5)中可以得到由人承担的参与者包括学生、教师、管理员;需求 (6)可以得到的参与者是时间 (系统时钟 )和打印机。 问题 2 本题考查考生对用例及其用例之间关系的理解。用例是系统中执行的一系列动作,这些动作生成特定参 与者可见的价值结果。用例表示系统所提供的服务,它定义了系统是如何被参与者所使用的,描述了参与者为了使用系统所提供的某一个完整功能而与系统之间发生的交互过程。用例之间的关系主要有泛化(Generalization)、包含 (Include)和扩展 (Extend)。 (1)当可以从两个或多个用例
23、中提取公共行为时,可以使用包含关系来表示。 (2)如果一个用例混合了两种或两种以上不同场景,即根据情况可能发生多种分支,则可以将这个用例分为一个基本用例和一个或多个扩展用例。 (3)当多个用例共同拥有一个类似的结构和行为的 时候,可以将它们的共性抽象成父用例,其他的用例作为泛化关系中的子用例。 在题目要求中,用例 “登录系统 ”是用例 “注册课程 ”和其他用例执行的公共行为,两者是包含 (Include)关系。用例 “参加补考 ”是用例 “参加考试 ”的一种分支和特殊场景,两者之间的关系是扩展 (Extend)关系。 问题 3 本题考查考生对类图及类之间关系的理解。类图主要用来描述系统的静态结
24、构,是组件图和配置图的基础。每个用例对应一个类图,描述参与这个用例实现的所有概念类,而用例的实现主要通过交互图来表示。当确定类之后,要识别类与类之间的关系 ,主要包括关联 (Association)、聚集 (Aggregation)、组合(Composition)、泛化 (Generalization)和依赖 (Dependence)。 (1)关联提供了类之间的结构关系,将多个类的实例连接在一起。 (2)依赖关系表示一个类的变化可能会影响另一个类。 (3)泛化关系描述了一般事物与该事物中的特殊种类之间的关系。 (4)聚集关系表示类之间整体与部分的关系,其含义是部分可能同时属于多个整体,两者生命
25、周期可以不相同。 (5)组合关系表示类之间的整体与部分关系,部分只能属于一个 整体,两者具有相同的生存周期。 在题目要求中,类 University与类 Student之间的关系是整体与部分关系,而且具有不同的生存周期,所以是聚集 (Aggregation)关系。类 University和类Department之间的关系是整体与部分的关系,两者具有相同的生存周期,所以是组合 (Composition)关系。类 Student和类 Course之间为连接关系,所以属于关联(Association)关系。 三、试题三 7 【正确答案】 1实时系统 一个实时系统是指计算的正确性不仅取决于程度的逻辑正
26、确性,也取决于结果产生的时间,如果系统的时间约束条件得不到满足,系统将会出错。 或: 实时系统是指能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致运行的系统。 2实时系统的主要特性 (1)时间敏感性 (2)并发性 (3)数值计算 (4)复杂性 (5)效能 (6)可靠性 (7)安全性 (8)预测性 (9)交互作用 8 【正确答案】 (1)强 (2)时间明确 (3)时间响应 (4)时限反应时间 (5)输入输出激励 (6)周期零星非周期 (7)时间触发 (8)事件触发 注: (2)、 (3)可互换, (4)、 (5)、 (6)可互换, (7)、 (8)可互换 9
27、 【正确答案】 错误、缺陷、故障和失效的定义: (1)错误 (error):是指开发人员在开发过程中出现的失误、疏忽和错误。 (2)软件缺陷 (defect):是指代码中能引起一个或一个以上失效的错误的编码 (步骤、过程、数据定义等 )。 (3)软件故障 (fault):是指软件在运行过程中出现的一种不希望或不可接受的内部状态,通常是由于软件缺陷在运行时引起并产生的错误状态。 (4)软件失效 (failure):是指程序的运行偏离了需求,是动态运行的结果,软件执行遇到软件中的缺陷时可能会导致软件的失效。 错误、缺陷、故障和失效关系图填空: (1)存在 (2)引起 (3)用户经历 (4)在开发过
28、程中 (5)在产品中 (6)在运行时 【试题解析】 本题考查嵌入式实时系统的基本概念和主要特征,在掌握基本概念基础上,针对安全关键系统的可靠性需求,区分错误、缺陷、故障和失效含义以及所处的场景。 此类题目要求考生根据自己已掌握的有关嵌入式系统的知识,认真阅读题目对实时性问题的描述,经过分 析、分类和概括等方法,从中分析出题干或备选答案给出的术语间的差异,正确回答问题 1到问题 3所涉及的各类技术要点。 问题 1 嵌入式系统是深埋于专用设备或系统中,对设备或系统的各类传感器进行管理与控制的系统,根据专用设备或系统的应用领域的不同,通常分为实时系统和非实时系统。比如大的可以是飞机、飞船、舰艇、机床
29、等,小的可以是家用电器、手机、电子门锁等。一般来讲,设备运行对于时间特性具备一定敏感性的系统可称之为 “实时系统 ”。因此,实时系统是 “指计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间,如果系 统的时间约束条件得不到满足,系统将会出错。 ”(牛津计算机字典 ),或者 “指能及时响应外部事件的请求,在规定的时间内完成对该事件的处理,并控制所有实时任务协调一致运行的系统。 ”上述两个定义均说明了任务正确的运行不仅与运算结果有关,而且也与运行时限有关。 实时系统的主要特征一般体现在以下 8个方面: (1)时间敏感性:任何实时系统对响应时间是极其关注的,要保证在所有条件下适当的时间产
30、生适当的输出,在设计和实现方面是相当困难的。 (2)并发性:实时系统一般由处理器和一些公共外部相互作用的设备组成,这种结构隐含着天然的 并行特征。 (3)数值计算:一般实时系统均采用了控制技术实现信息反馈与控制,因此处理器必须支持高速度、高精度和向量、浮点计算能力。 (4)复杂性:实时系统的核心是对外部真实事件的响应,而系统必须迎合这些外部事件的组合,这样就带来设计上的复杂性。因此,实时系统要使用语言或环境将这些复杂性分解为可有效管理的较小规模的组件、抽象数据结构、类和对象等。 (5)效能:实时系统是时间攸关的系统,其执行效率与其他系统相比尤为重要,有些情况,为了提高系统效能,往往要用低级程序
31、设计语言 (即汇编语言 )控制和操作硬件接口或中断。 因此,系统需要应答时间往往在毫秒或纳秒级,适当采用低级语言设计是非常必要的。 (6)可靠性和安全性:一般实时系统都是应用于生死攸关系统的 (如飞机、高铁等 ),一个系统的失效可能引起上亿元的经济损失,有些失效是不能挽回的。因此,实时系统的可靠性至关重要。在军事领域,我们必须在设计和执行系统时考虑系统失效的控制算法,尽可能地减少人为操作错误所引起的失效。预防被外部非法入侵而带来的关键数据泄漏和系统失效。 (7)预测性:实时系统是一种确定性要求极高的系统,要求对系统每一时刻的运行的行为、状态和结果都是可预计的。尤其 是在系统发生错误后,其可能影
32、响的系统失效也是可预测到的,并设计了系统失效后处理方法,如备份、手工操作等。 (8)交互作用:实时系统的本质是对外部事件的处理,必然带来了交互作用,并且系统还应根据外部事件的不同因素,自动适应环境的变化,因此,实时系统的智能化、自适应化是交互作用主要体现。 问题 2 实时系统是一种时间敏感性的系统,根据不同的应用环境和条件的不同,其时间敏感性要求各有差异,因此实时系统还可根据时间类别、时间需求和工作方式的不同,分类出不同的实时系统。比如按时间类别的时限要求程度不同,我们一般将具 备毫秒级或纳秒级时限要求的系统称之为 “强实时系统 ”,而将具备秒级以上的时限要求的系统称之为 “弱实时系统 ”。本
33、问题共给出了 8个 参考答案 ,主要考查考生在理解了时间类别、时间需求和工作方式三种场景分类的含义基础上,将 8个 参考答案 分门别类地归纳到不同类型中。 针对按 “时间类别 ”分类主要是以用户对时间敏感程度的高低划分。可归纳为 “时限的危害程度 ”和 “时间角色 两种类型,时限的危害程度可由 “强实时 ”“弱实时 ”和“固定实时 ”三种;而时间角色可由 “时间明确 ”和 “时间响应 ”两种; 针对按 “时间需求 ”分类主要是以系统 对时间响应需求的紧迫程度划分。可归纳为“时限反应时间 ”“输入输出激励 ”和 “周期零星非周期 ”三种; 针对按 “工作方式 ”分类主要以系统对时间工作方式的触发
34、条件划分。可归纳为 “时间触发 ”和 “事件触发 ”两类。 问题 3 系统可靠性是嵌入式实时系统的关键特性之一,安全攸关系统的设计必须关注系统的可靠性设计,要提高系统的健壮性必然要清楚错误 (Error)、缺陷 (Defect)、故障 (Fault)和失效 (Failure)基本概念和存在的环境与场景。 软件错误 (Error)是指开发人员在开发过程中出现的失误、疏忽 和错误而导致的设计缺陷;软件缺陷 (Defect)是指代码中能引起一个或一个以上失效的错误编码,包括了步骤、过程、数据定义等方面;软件故障 (Fault)是指软件在运行过程中出现的一种不希望或不可接受的内部状态,通常是由于软件缺
35、陷在运行时引起并产生的错误状态;软件失效 (Failure)是指程序的运行偏离了需求,是动态运行的结果,软件执行遇到软件中的缺陷时可能会导致软件的失效。 基于上述的定义,考生就不难回答图 32所空缺的内容。 “错误 ”是 “开发人员 ”在 “开发过程中 ”产生; “缺陷 ”是 “在产品中 ”固有 “存在 ”的 ; “故障 ”是系统 “在运行时 ”所 “引起 ”; “失效 ”是系统 “在运行时 ”由 “用户经历 ”感觉到的。 四、试题四 10 【正确答案】 原有基于 Web服务器的脚本语言的解决方案,其实质是在 Web服务器端放入一个通用的脚本语言解释器,负责脚本语言的解释执行。其存在的不足有:
36、 1脚本语言嵌入在 HTML文件中,使得 I O、业务逻辑、数据处理等程序代码混杂在一起,使得开发、维护困难; 2系统采用 Web服务器实现业务逻辑,系统的扩展性差,并发能力差,系统一旦繁忙,缺乏有效的手段进行扩充; 3系统缺乏有效的维护、管 理工具。 11 【正确答案】 应用服务器是指通过各种协议把商业逻辑暴露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器为实现 Web应用程序和系统资源的访问机制提供了一种简单、可管理的方式。它是一个开发、部署、运行、管理和维护的平台,可以提供软件 “集群 ”功能,让多个不同的异构服务器协同工作、相互备份,满足企业级应用所需要的
37、可用性、高性能、可靠性和伸缩性。 应用服务器通过分布式体系来保障系统在大负荷和长时间运行下的稳定性以及可扩展性: (1)当系统处理能力不够时,通过简单增加硬件 来解决,提供水平可扩展性; (2)动态调整不同主机间的负载可以最大限度地利用资源,提供单机稳定性; (3)动态调整主机工作职能,没有单点故障。 12 【正确答案】 (1)Applet (2)Servlet (3)EJB容器 (4)Session bean或会话 bean (5)Entity bean或实体 Bean 【试题解析】 本题考查 Web应用开发的知识及应用,主要是 Web服务器端的架构知识,属于比较基础的题目。 问题 1本问题
38、考查 Web服务端的脚本开发知识。原有的 Web服务器扩展接口的方式过于底层, 对开发者的素质要求很高,往往需要懂得底层编程方法,了解 HTTP协议,调试也很困难。因此开发者使用一些脚本语言来进行 Web开发,包括 ASP、 PHP等。其实质是在 Web服务器端放入一个通用的脚本语言解释器,负责解释各种不同的脚本语言文件,其最大的优点是简化了开发流程,降低了对程序开发人员的要求。但是该方法也存在一些明显的缺点,主要包括:脚本语言嵌入在 HTML文件中,使得 I O、业务逻辑、数据处理等程序代码混杂在一起,使得开发、维护困难;系统采用 Web服务器实现业务逻辑,系统的扩展性差,并发能力差,系统一
39、旦繁忙, 缺乏有效的手段进行扩充;系统缺乏有效的维护、管理工具。 问题 2本问题考查应用服务器技术的基本概念。应用服务器技术是脚本语言开发技术之后出现的一种 Web应用开发技术。应用服务器是指通过各种协议把商业逻辑暴露给客户端的程序。它提供了访问商业逻辑的途径以供客户端应用程序使用。应用服务器为实现 Web应用程序和系统资源的访问机制提供了一种简单、可管理的方式。它是一个开发、部署、运行、管理和维护的平台,可以提供软件 “集群 ”功能,让多个不同的、异构服务器协同工作、相互备份,满足企业级应用所需要的可用性、高性能、可靠性和 伸缩性。应用服务器通过分布式体系来保障系统在大负荷和长时间运行下的稳
40、定性以及可扩展性:当系统处理能力不够时,通过简单增加硬件来解决,提供水平可扩展性;动态调整不同主机间的负载可以最大限度地利用资源,提供单机稳定性;动态调整主机工作职能,当系统中某台机器出现故障时,它的工作可由其他机器承担,不会影响系统整体的运行,没有单点故障。 问题 3本问题考查 J2EE平台的基本架构。典型的 J2EE架构如下图所示。J2EE是针对 Web Service、业务对象、数据访问和消息传送的一组规范。这组应用编程接口确定了 Web应 用与驻留它们的服务器之间的通信方式。 J2EE注重两件事,一是建立标准,使 Web应用的部署与服务器无关;二是使服务器能控制构件的生命周期和其他资源
41、,以便能够处理扩展、并发、事务处理管理和安全性问题。 J2EE规范定义了以下几种构件:应用客户端、 EJB构件、 Servlets和 JSP、Applet构件。 J2EE采用的是多层分布式应用模型,意味着应用逻辑将根据功能分成几个部分,用户可以在相同或不同的服务器上安装不同应用构件组成 J2EE应用。 五、试题五 13 【正确答案】 (1)制定 Product Backlog (2)Sprint计划会议 (3)每日站立会议 (4)Product Backlog中还有未完成的用户故事 (5)已交付 Product Backlog中的所有用户故事 14 【正确答案】 (1)b, c, d, h,
42、k, 1, m, n (2)a, f (3)e, j 注:各空中的项没有次序要求 15 【正确答案】 (1)d或 f (2)f或 d (3)h (4)e (5)a (6)k (7)J (8)b (9)c 注: (1)、 (2)答案可互换,但不能重复选择。 【试题解析】 本题考查 Web系统架构设计的相关知识 。此类题目要求考生认真阅读题目,根据实际系统的需求描述,进行 Web系统架构的设计。 问题 1本问题考查对 Web系统的动态行为进行建模的相关知识。状态图 (Statechart Diagram)主要用于描述一个对象在其生存期间的动态行为,表现为一个对象所经历的状态序列,引起状态转移的事件
43、 (Event),以及因状态转移而伴随的动作 (Action)。一般可以用状态机对一个对象的生命周期建模,状态图用于显示状态机 (State Machine Diagram),重点在于描述状态图的控制流。因此,基于题目描述的 Serum敏捷开发流程,对该 Scrum项目管理系统中动态行为进行建模, (1)(2)(3)对应的状态应为“制定 Product Backlog”“Sprint计划会议 ”“每日站立会议 ”, (4)(5)对应的使状态发生改变的事件为 “Product Backlog中还有未完成的用户故事 ”“已交付 Product Backlog中的所有用户故事 ”。 问题 2本问题考
44、查 MVC架构模式在 Web系统设计中的应用。 MVC是一种目前广泛流行的软件体系结构,该架构模式的三个基本组件包括模型 (Model)、视图 (View)和控制器 (Controller)。模型 (Model)用于封装与应用程序的业务逻辑相关的数据以及对数据的处理方法。 Model有对数据直接访问的权利,例如对数据库的访问。 Model不依赖 View和 Controller,也就是说,Model不关心它会被如何显示或是如何被操作。但是 Model中数据的变化一般会通过一种刷新机制被公布。为了实现这种机制,那些用于监视此: Model的 View必须事先在此 Model上注册,从而, Vie
45、w可以了解在数据 Model上发生的改变。视图 (View)能够实现数据有目的的显示。在 View中一般没有程序上的逻 辑。为了实现 View上的刷新功能, View需要访问它监视的数据模型 (: Model),因此应该事先在被它监视的数据那里注册。控制器 (Controller)起到不同层面间的组织作用,用于控制应用程序的流程。它处理事件并作出响应。 “事件 ”包括用户的行为和数据 Model上的改变。基于 MVC架构模式的思想, Scrum敏捷开发管理系统中各元素分别对应于 MVC中的 Model、 View、 Controller如下表所示。问题 3本题目考查层次式的 Web系统设计方案
46、和各层的具体实现技术的相关知识。根据题干中的描述,该项目管 理系统基于 MVC架构设计,采用轻量级 J2EE架构和 SSH框架进行开发,使用 MySQL数据库作为底层存储。在图 5 2给出的系统架构图的基础上,可以分析出该 Scrum敏捷开发管理系统的层次系统架构包括 5层,依次为视图层、 Web层、 Service层、 DAO、 Hibernate持久层和基于Mysql实现的数据库服务。在视图层中, SiteMesh和 jQuery是用户界面设计开发中的常用框架。 SiteMesh是一个 Web页面布局、装饰以及与现有 Web应用集成的框架,有助于在由大量页面构成的项目中创建一致的页面布局和
47、外观 、一致的导航条、一致的布局方案等。 jQuery是一个快速、简洁的 JavaScript框架,它封装 JavaScript常用的功能代码,提供一种简便的 JavaScript设计模式,优化HTML文档操作、事件处理、动画设计和 Ajax交互, jQuery具有独特的链式语法和短小清晰的多功能接口,具有高效灵活的 CSS选择器,并且可对 CSS选择器进行扩展,拥有便捷的插件扩展机制和丰富的插件。在 Web层中, Strust2框架有效地支持了 MVC架构中控制业务逻辑与表现层中的交互。 Struts2是轻量级的MVC框架,在 Struts2中当 Web容器收到请求 (HttpServlet
48、Request),它将请求传递给一个标准的过滤链包括 ActionContextCleanUp过滤器。经过 Other filters(SiteMesh等 ),需要调用 FilterDispatcher核心控制器,然后它调用ActionMapper确定请求哪个 Action, ActionMapper返回一个收集 Action详细信息的 ActionMaping对象。 FilterDispatcher将控制权委派给 ActionProxy,ActionProxy调用配置管理器 (ConfigurationManager)从配置文件中读取配置信息(struts xml),然后创建 ActionInvocation对象。 ActionInvocation在调用 Action之前会依次调用所用配置拦截器 (Interceptor N),一旦执行结果返回结果字符串,ctionInvocation负责查找结果字符串对应的 (Result),然后执行这个 Result,Result会调用一些模版 (JSP)来呈现页面。拦截器 (Interceptor N)会再被执行,顺序和 Action执行之前相反。最后响应 (HttpServletResponse)被返回在 web xml中配置的那些过滤器和核心控制器 (FilterDispatcher)。
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1