RMO是一家运动服装制造销售公司,计划在5年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制订战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统(CRSS)。RMO公司决定由其技术部成立专门的项目组负责CRSS的开发和维护工作。 项目组在仔细调研和分析了系统需求的基础上,确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘

题目

RMO是一家运动服装制造销售公司,计划在5年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制订战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统(CRSS)。RMO公司决定由其技术部成立专门的项目组负责CRSS的开发和维护工作。 项目组在仔细调研和分析了系统需求的基础上,确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘工建议采用分布式的数据架构,并提出在开发中通过"局部数据库+缓存"的读写分离结构实现,具有较好的运行性能和可扩展性。 项目组经过集体讨论,考虑到公司的未来发展规划,最终采用了刘工的建议。 RMO公司销售区域将在未来5年大面积扩展,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性。请分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性。

参考答案和解析
正确答案: 张工提出的集中式数据架构通过向上扩展(ScaleUp)提升系统的可扩展性。具体的实现方式包括硬件扩容(增加CPU数量、内存容量、磁盘数量)和硬件升级(更换为高端主机或高速磁盘等)。
刘工提出的分布式数据架构通过向外扩展(ScaleOut)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。
如果没有搜索结果或未解决您的问题,请直接 联系老师 获取答案。
相似问题和答案

第1题:

从下列 4 道试题(试题二至试题五)中任选 2 道解答。如果解答的试题数超过2道,则题号小的 2 道解答有效。

试题二(共25分)

阅读以下关于软件系统数据架构建模的说明,在答题纸上回答问题1至问题 3。

【说明】

RMO 是一家运动服装制造销售公司,计划在五年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制订战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统CRSS。 RMO 公司决定由其技术部成立专门的项目组负责 CRSS的开发和维护工作。

项目组在仔细调研和分析系统需求的基础上, 确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘工建议采用分布式的数据架构,并提出在开发中通过“局部数据库+缓存”的读写分离结构实现,具有较好的运行性能和可扩展性。

项目组经过集体讨论,考虑到公司的未来发展规划,最终采用了刘工的建议。

【问题1】 (8分)

请用300字以内的文字,说明张工和刘工提出的数据架构的基本思想。

【问题2】 (13分)

在刘工建议的基础上,为了避免 CRSS系统的单点故障,请用 200字以内文字简要说明如何建立CRSS的数据库系统;对于数据的读取、添加、更改和删除操作分别如何实现。

【问题3】 (4分)

RMO 公司销售区域将在未来五年大面积扩展,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性。请分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性。


正确答案:
试题二分析
 本题考查考生对于软件系统数据架构建模的掌握情况。
数据架构定义了信息系统中文件和数据库的分布结构。数据架构建模是以数据为中心,建模业务数据类型和结构,以及设计满足应用需求的数据库系统。传统以主机为中心的信息系统开发中,利用单个的数据库系统实现数据的集中式存储,物理上所有的数据位于同一个位置,构成的是一种集中式的数据架构;现代基于网络的分布式系统开发中,很少有组织会将其全部的数据存储在单个的数据库中,通常需要多个数据库系统组成,数据在这些数据库系统之间可以传送,由多个不同的数据库管理系统控制,构成的是一种分布式的数据架构。
【问题1】
集中式数据架构中,一个或多个局域网中的客户共享一个单独计算机系统中的单个数据库。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。单个数据库服务器结构的主要优点就是简单、易维护开发及运行成本低;但由于所有的客户直接请求服务器,容易发生性能瓶颈,如果服务失败,单个服务器不能提供备份和恢复,所有依赖的应用程序都将不能工作。
分布式数据架构中,使用多个计算机系统以及用户能够访问远程系统的数据,数据可以在多个不同的数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。多个数据库服务器结构的主要优点就是系统的容错能力和对广域网容量的需求有所降低,可以采用多种策略提升整个系统的服务质量;由于多个数据库系统分布在不同的网络节点上,位于不同位置的数据之间需要同步和协作,系统结构复杂、运行成本高并且维护困难。
在实际应用系统的数据架构建模中,应根据不同的应用需求选择集中式或分布式的数据架构。本题中由于RMO要扩展其销售区域,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性;并且由于其销售区域扩大后,系统中的数据会存储于不同的地理位置,所以采用分布式数据架构最为合理。
【问题2】
读写分离架构应用非常广泛,很多网站采用数据库+缓存的方式来实现。通过缓存层来承载大量的读访问,如广泛采用的Mencached,其自身往往不具备持久层存储的功能,通常和数据库一起组成分布式的数据架构,由数据库负责数据持久化存储和写入功能,缓存负责承载大量的并发访问,从而提高了系统的数据处理效率。要避免数据访问的单点故障,通常采用主数据库热备份的方式来实现。所以,要实现题目要求的分布式数据架构,需要多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。
读写分离结构中,应用读取数据时访问缓存,如果没有命中所需数据,则从主数据库中读取数据并写入缓存;对于新增、修改和删除操作,需要采用延迟加载的策略,新增时只修改主数据库,修改和删除时除了修改主数据库中的内容,还需要将缓存中的数据标记为失效。
【问题3】
 传统的集中式数据架构中由于只有单个的数据库系统,所以要满足可扩展性的要求,更多的只能通过硬件的方式来实现。具体的实现方式包括硬件扩容(增加CPU/内存容量/磁盘数量)和硬件升级(更换高端主机或高速磁盘等)。
 基于网络的分布式数据架构中由多个数据库系统共同组成,可以通过更改和优化数据分布来满足系统可扩展性的要求。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。

解答要点
【问题1】
(1)张工提出的集中式数据架构是由一个处理器、与它相关联的数据存储设备以及其他外围设备组成,它被物理地定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。
(2)刘工提出的分布式数据架构使用多个计算机系统上的多个局部数据库系统构成,数据可以在多个不同的局部数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。
【问题2】
读写分离架构利用了数据库的复制技术,将数据的读和写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。
CRSS的分布式数据库系统需要由多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。局部数据库负责数据的写入,多个热备份数据库系统用以解决单点故障的问题,数据缓存负责为应用提供所读取的数据。
(1)读取数据:应用访问缓存,如果命中则返回,否则从局部数据库系统中读取数据并将数据加载到缓存后返回。
(2)添加数据:采用延迟加载策略,应用将数据直接写入局部数据库。
(3)更改数据:应用更改局部数据库中的数据,将缓存中的数据标记为失效。
(4)删除数据:应用删除局部数据库中的数据,将缓存中的数据标记为失效。
【问题3】
张工提出的集中式数据架构通过向上扩展(Scale Up)提升系统的可扩展性。具体的实现方式包括硬件扩容(增加CPU数量、内存容量、磁盘数量)和硬件升级(更换为高端主机或高速磁盘等)。
刘工提出的分布式数据架构通过向外扩展(Scale Out)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。

第2题:

阅读以下关于某软件系统开发项目的叙述,回答问题1至问题4。

W公司的主要业务是利用网络进行音像制品的管理和销售,以提高其物流配送的效率。随着业务范围的扩展和业务过程的改进,公司CIO发现现有信息系统业务过程过于僵化、维护困难,不能真正地为企业贡献价值,已经不能满足公司长久发展的战略。在该公司CIO的建议下,W公司在三月初委托某软件企业为其开发出一套新的音像制品管理及销售系统AVMSS,要求新系统能够对其现有系统业务过程进行重新设计,以提高公司业务的执行效率并降低维护成本。

该软件企业成立了项目组来开发AVMSS,在对开发任务进行了初步的了解之后,项目组认为W公司原有系统的数据架构稳定,没有必要对原有关系数据模式进行重新设计:新系统应着眼于对系统控制流的改造,通过系统业务流程再造以应对公司的发展需要。但在选择系统开发方法时出现了分歧,张工认为应该采用流行的面向对象开发方法,而李工则认为应该采用成熟的结构化开发方法,项目组经过讨论最终确定在AVMSS系统分析与设计过程中采用李工的建议。

请对张工和李工所提出的两种系统开发方法进行比较,结合AVMSS系统说明为什么项目组最终采用了李工的建议。


正确答案:(1)结构化开发方法强调系统业务过程的数据流和控制流将系统看作一个过程的集合体系统数据架构和控制流可以分开设计强调系统的业务处理过程适合于业务流程再造和对处理过程要求较高的系统;而面向对象方法则把系统看作一个相互影响的对象集对象能够将数据及其行为统一起来对象之间通过消息交换的方式引发对象的行为。 (2)W公司现有系统只是自动化了企业的业务过程造成信息系统业务过程低效且维护成本高的一个重要因素是企业的业务过程本身过于僵化不能真正地为企业贡献价值信息系统只是将这些低效率的过程自动化。真正的解决办法是业务流程再造。在 AVMSS系统的开发中强调控制流的改进因此比较适合于采用传统的结构化开发方法采用李工的建议比较合理。
(1)结构化开发方法强调系统业务过程的数据流和控制流,将系统看作一个过程的集合体,系统数据架构和控制流可以分开设计,强调系统的业务处理过程,适合于业务流程再造和对处理过程要求较高的系统;而面向对象方法则把系统看作一个相互影响的对象集,对象能够将数据及其行为统一起来,对象之间通过消息交换的方式引发对象的行为。 (2)W公司现有系统只是自动化了企业的业务过程,造成信息系统业务过程低效且维护成本高的一个重要因素是企业的业务过程本身过于僵化,不能真正地为企业贡献价值,信息系统只是将这些低效率的过程自动化。真正的解决办法是业务流程再造。在 AVMSS系统的开发中,强调控制流的改进,因此比较适合于采用传统的结构化开发方法,采用李工的建议比较合理。 解析:结构化开发方法与面向对象开发方法是最为重要的两种软件开发方法学。结构化方法是软件开发与维护的基础方法,其他现代软件方法学都是在结构化方法基础上发展和演绎而来,而且遵循基本的结构化思想;面向对象方法作为当前最为流行的软件方法学,逐渐被系统分析和设计人员所接受,并在系统开发中加以应用。当前很多企业处于业务转型期,信息化基础设施建设成为企业业务发展的必要组成部分。企业信息化改造中,不仅需要开发新系统,而且面临着如何对其现有业务系统改造的问题。因此,系统开发团队需要针对具体的应用需求选择适合的软件开发方法,以提升系统开发的效率和效果。作为一名系统分析和设计人员,对结构化开发方法和面向对象方法均应该有所了解。特别是要掌握在项目实际开发中对于不同开发方法选择的依据和标准。
结构化方法主要的关注点是系统功能,强调业务过程的数据流和控制流,采用模块化、自顶向下、逐步求精的设计过程。系统是实现模块功能的函数和过程的集合,开发过程划分为若干相对独立的阶段,结构清晰、可读性好,是提高软件开发质量的一种有效手段。主要适合于规模较大、结构化程度较高的系统的开发。
面向对象关注于处理的数据,以对象为中心,对象能够将数据及其行为统一起来,对象之间通过消息交换引发对象的行为。对象模型极大提高了数据和功能的复用程度,简化了开发系统开发过程,系统的可维护性得到了改善。
本题主要考察应试者对于结构化开发方法和面向对象开发方法的掌握情况。特别是很多企业的现有系统在开发中均采用了当时比较成熟的结构化开发方法,在对这些系统改进以应对业务变化时,就需要从不同角度灵活分析和选择系统改造方法。题目给出了一个具有典型代表性的案例,要求应试者对结构化开发方法及其开发过程中常见的问题进行分析和说明。
问题1要求应试者能够理解结构化开发方法和面向对象开发方法之间的区别及其适用的范围,说明结构化开发方法选择的标准和依据。题目正文中指出“原有系统的数据架构稳定”,“新系统应着眼于对系统控制流的改造”,通过“系统业务流程再造”完成现有系统的改造过程。这些为本题指明了结构化分析方法选择的依据和标准。
问题2要求应试者掌握结构化分析方法在实际应用中划分的不同阶段,及其各阶段的目标、主要任务和任务完成的标志。能够清楚说明需求分析和逻辑建模两个阶段所完成的主要任务及其联系。
问题3要求应试者能够准确掌握系统需求、系统目标和系统约束之间的区别。掌握“好”的系统改进目标应该满足精确性和可度量性的基本要求。
问题4要求应试者理解结构化开发方法中每个阶段都是完成后续各个阶段任务的基础,认识到每个阶段所定义的各项任务的重要性和不可替代性,以及如果忽略该阶段或者某个任务将影响到后期各项工作的开展。逻辑建模阶段进一步对需求进行验证并定义测试用例,这些任务均是系统开发中的重要环节,如果省略,将为系统开发埋下隐患。

第3题:

RMO是一家运动服装制造销售公司,计划在5年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制订战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统(CRSS)。RMO公司决定由其技术部成立专门的项目组负责CRSS的开发和维护工作。

项目组在仔细调研和分析了系统需求的基础上,确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘工建议采用分布式的数据架构,并提出在开发中通过"局部数据库+缓存"的读写分离结构实现,具有较好的运行性能和可扩展性。

项目组经过集体讨论,考虑到公司的未来发展规划,最终采用了刘工的建议。

RMO公司销售区域将在未来5年大面积扩展,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性。请分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性。


张工提出的集中式数据架构通过向上扩展(ScaleUp)提升系统的可扩展性。具体的实现方式包括硬件扩容(增加CPU数量、内存容量、磁盘数量)和硬件升级(更换为高端主机或高速磁盘等)。
刘工提出的分布式数据架构通过向外扩展(ScaleOut)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。

第4题:

阅读以下关于应用系统数据架构的说明,在答题纸上回答问题l至问题3。 【说明】 某软件公司拟开发一套贸易综合管理系统,包括客户关系管理子系统和商品信息管理子系统两部分。客户关系管理子系统主要管理客户信息,并根据贸易业务需要频繁向客户发送相关的电子邮件、短信等提醒信息。商品信息管理子系统主要为客户提供商品信息在线查询功能,包括商品基本信息、实时库存与价格等。 在对系统进行数据架构设计时,公司项目组的架构师王工主张采用文件系统进行数据管理,原因是目前公司客户和商品数量不大,且系统功能较为简单,采用文件系统进行数据管理简单直观,开发周期短。架构师李工则建议采用关系数据库进行数据管理,原因在于公司目前正处在高速扩张期,虽然目前的客户和商品数量不大,但随着公司快速发展,需要管理的数据必然飞速膨胀,采用关系数据库作为数据存储层,系统的扩展性更强,并能够对未来可能增加的复杂业务提供有效支持。经过讨论,项目组初步采纳了李工的意见,决定采用关系数据库存储客户数据,并针对业务特征对系统性能进行优化。

【问题1】(8分) 请从设计难度、数据冗余程度、数据架构、应用扩展性等4个方面对关系型数据库管理系统和文件系统两种数据存储方式进行比较,填写表4-1中(1)~(4)。 表4-1 关系型数据库管理系统和文件系统存储方式比较【问题2】(13分) 对系统的核心业务需求进行认真分析后,公司的资深架构师张工提出一种内存数据库和关系数据库的混合存储架构,其核心思想是将需要频繁读写的数据存入内存数据库,而将相对固定不变的数据存入关系数据库。请首先分析比较内存数据库和关系数据库在数据模型、读写性能、存储容量、可靠性等方面的差异,填写表4-2中(1)~(4)的空白,并根据张工的思路指定各种业务数据的存储方式,填写表4-3中(5)~(9)中的空白。 表4-2 内存数据库和关系数据库比较表4-3 业务数据存储方式【问题3】(4分) 系统开发完成进行压力测试时,发现在较大数据量的情况下,部分业务查询响应时间过长,经过分析发现其主要原因是部分SQL查询语句效率低下。请判断表4-4中的SQL语句设计策略哪些可能会提升查询效率,哪些可能会降低查询效率,在(1)~(4)中填入“提升”或“降低”。 表4-4 SQL设计策略对性能的影响


正确答案:【问题1】
(1) 针对特定应用系统,难度较大
(2) 可能在多个文件中复制相同的数据属性,数据冗余较大
(3) 以应用为中心管理数据
(4) 数据库独立于应用系统,数据库系统接口标准化,易于在不同应用之间共享数据
 【问题2】
(1)Key-Value模式            
(2)外存读写,性能相对较低             
(3)运行时整个数据库基本全调入内存,数据库容量受内存容量限制,容量较小
(4)虽然也有恢复机制,但并不是所有故障都能恢复,可靠性较低
(5)内存数据库                                             
(6)内存数据库                 
(7)关系数据库                                             
(8)内存数据库
(9)内存数据库        
 【问题3】
(1)提升             
(2)降低            
(3)降低             
(4)提升

第5题:

阅读以下软件系统架构选择的问题。

某公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。该系统的简化示意图如下图所示。各种系统输入的含义见下表。

定速巡航控制系统输入说明

公司的领域专家对需求进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。

在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。

[问题1]

在实际的软件项目开发中,采用成熟的架构风格是项目成功的保证。请用200字以内的文字说明:什么是软件架构风格:面向对象和控制环路两种架构风格各自的特点。

[问题2]

用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。

[问题3]

实际的软件系统架构通常是多种架构风格的混合,不同的架构风格都有其适合的应用场景。以该系统为例,针对面向对象架构风格和控制环路架构风格,各给出两个适合的应用场景,并简要说明理由。


正确答案:[问题1] 软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。 面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象对象维扩自身表示的完整性对象之间通过消息机制进行通信对象交互时需要知道彼此的标识通过对象之间的协作完成计算过程。 控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件通过收集实际和理想的过程状态信息并能调整过程变量使得实际状态趋于理想状态。 [问题2] 对于系统的增减速功能采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。 整个计算的主要过程是: (1) 司机进行增/减速操作设置期望速度该期望速度以消息的形式传递给速度计; (2) 速度计通过向车轮和时钟发送消息获取车轮转速和时钟值得到当前速度; (3) 速度计计算当前速度和期望速度的速度差值: (4) 该差值以消息的形式发送给油门油门通过速度差值调节自身状态; (5) 整个过程在时钟的控制下定期向速度计发送消息重复执行(2)~(4)。 控制环路的架构风格以控制器为核心期望速度、车轮脉冲、时钟和油门等作为构件。 具体的计算过程是: (1) 司机进行增/减速操作设置期望速度值; (2) 将设定值置为期望速度值: (3) 控制器采集车轮脉冲和时钟值计算出当前速度; (4) 比较期望速度和当前速度计算速度差值控制油门动作; (5) 反复执行(3)和(4)。 [问题3] 适合面向对象架构风格的应用场景: (1) 用户刹车立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景适合于面向对象风格。 (2) 系统对突发事件的处理如某些部件失灵等。理由:当发生突发事件时系统会同时产生数据和事件这种情况用对象建模较为恰当。 适合面向控制环路架构风格的应用场景: (1) 在达到期望速度后系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景系统需要在外界情况不断发生变化的情况下进行调整使得系统状态尽可能接近期望状态。 (2) 用户改变期望速度后系统不断进行调整直至到达恒定速度。理由:这是一个闭环控制情景当用户设定期望速度值后系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整使得系统状态尽可能接近这个新的期望状态。
[问题1] 软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。 面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维扩自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。 控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。 [问题2] 对于系统的增减速功能,采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。 整个计算的主要过程是: (1) 司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计; (2) 速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度; (3) 速度计计算当前速度和期望速度的速度差值: (4) 该差值以消息的形式发送给油门,油门通过速度差值调节自身状态; (5) 整个过程在时钟的控制下定期向速度计发送消息,重复执行(2)~(4)。 控制环路的架构风格以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。 具体的计算过程是: (1) 司机进行增/减速操作设置期望速度值; (2) 将设定值置为期望速度值: (3) 控制器采集车轮脉冲和时钟值,计算出当前速度; (4) 比较期望速度和当前速度,计算速度差值,控制油门动作; (5) 反复执行(3)和(4)。 [问题3] 适合面向对象架构风格的应用场景: (1) 用户刹车,立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景,适合于面向对象风格。 (2) 系统对突发事件的处理,如某些部件失灵等。理由:当发生突发事件时,系统会同时产生数据和事件,这种情况用对象建模较为恰当。 适合面向控制环路架构风格的应用场景: (1) 在达到期望速度后,系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景,系统需要在外界情况不断发生变化的情况下进行调整,使得系统状态尽可能接近期望状态。 (2) 用户改变期望速度后,系统不断进行调整,直至到达恒定速度。理由:这是一个闭环控制情景,当用户设定期望速度值后,系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整,使得系统状态尽可能接近这个新的期望状态。 解析:本题主要考查软件系统架构的比较与选择问题,即如何根据实际系统的要求选择合适的架构风格。
[问题1]
本问题主要考查软件架构风格的基本概念以及面向对象和控制环路两种常见架构风格的特点。根据卡内基.梅隆大学软件工程研究所等权威机构的定义,软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。
面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。
[问题2]
主要针对系统的增减速功能的要求设计两种风格的主要构件,在设计构件时需要注意符合两种架构风格的基本要求和约束。
采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等对象。整个计算过程通过对象之间的合理交互完成期望的功能。
控制环路的架构风格将以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。通过不断地反馈机制实现对系统的控制。
[问题3]
主要从应用场景的角度比较两种架构风格。面向对象系统比较适合事件驱动的场景,特别是离散突发事件的处理:而控制环路则适合连续事件的处理,比如维持恒定车速等。

第6题:

阅读以下关于Java企业级应用系统开发架构选择方面的叙述,在回答问题 1至问题3。

某软件公司承担了某中小型企业应用软件开发任务,进度要求紧迫。为了按时完成任务,选择合适的企业应用系统开发架构非常重要。项目组在进行方案论证时,项目组成员提出了两种开发思路。

(1)刘工建议采用J2EE 5.0和EJB 3.0进行开发。理由是J2EE定义了标准的应用开发体系结构和部署环境,EJB是J2EE的基础和核心。J2EE 5.0主要目标是简化开发,相比EJB 2.1,EJB 3.0具有很多改进和提高。

(2)杜工建议采用Struts,Spring和Hibernate轻量级开源框架相结合的方式。理由是随着Java开源项目阵营的发展壮大,一些基于POJOs (Plan Old Java Objects)的开源框架被广泛地引入到Java企业应用开发中来,与重量级的EJB框架相比,这些轻量级的框架有很多优点。

项目组仔细比较分析了两种方案的特点、优点和不足之处。认为杜工和刘工的建议都合理,但是从结合当前项目实际情况出发,最后决定采用杜工的建议。

Java企业应用框架一般被划分为三个层次,请用150字以内文字说明都有哪三个层次?功能分别是什么?


正确答案:[解答要点] 表现层、业务逻辑组件层和持久层。 表现层用来建立应用系统的界面对应视图(View)。 业务逻辑组件层来开发应用逻辑对应控制器(Controller)。 持久层是实现持久化存储对应模型(Model)。
[解答要点] 表现层、业务逻辑组件层和持久层。 表现层用来建立应用系统的界面,对应视图(View)。 业务逻辑组件层来开发应用逻辑,对应控制器(Controller)。 持久层是实现持久化存储,对应模型(Model)。 解析:Java企业应用框架一般被划分为三个层次:表现层、业务逻辑组件层和持久层。
表现层用来建立应用系统的界面,对应视图(View)。例如,表现层采用JSF(Java Server Face),JSF的开发流程的核心是事件驱动,组件和标签的封装程度非常高,很多典型应用已经不需要开发者去处理HTTP,整个过程是通过IoC(依赖注入)来实现的。
业务逻辑组件层用来开发应用逻辑,对应控制器(Controller)。例如,业务逻辑组件层采用EJB3.0的Session Bean。EJB3.0允许开发者使用耦合松散的组件来开发应用,实现一个EJB所有使用的类和接口都减少了。
持久层是实现持久化存储,对应模型(Model)。例如,采用EJB3.0实体Bean持久化模型,吸收了Hibernate的一些思想采用O/R Mapping模式。

第7题:

阅读以下关于软件项目可行性分析方面的叙述,回答问题1至问题4。

某信息技术公司拟开发一套新的信息系统,以提高公司业务运作的效率。按照公司总裁的要求,公司软件开发部系统分析人员张工和李工对新系统方案的各项可行性指标进行分析,重点分析了新系统方案的经济可行性。张工根据财务部门提供的各项数据给出了项目的投资回收表如下表1所示。

通过对上面数据进行分析,计算出项目的投资回收期是2.75年。李工对此提出了自己的观点,认为应该基于货币时间价值来计算各项数据,并给出了在贴现率是12%时的投资回收表如下表2所示,其中“***”表示此处的数据未给出。

大家经过讨论,认为李工给出的投资回收表中的数据更为合理,并将其作为系统方案建议书的部分内容上报公司管理层。

请简要说明系统分析中可行性分析包括哪几个方面,并简要说明其具体含义。


正确答案:可行性分析包括: (1) 运行/操作可行性:对方案满足新系统需求程度的度量; (2) 技术可行性:是对一种特定技术方案的现实性及技术资源和专家的可用性的度量; (3) 进度可行性:对项目时间表的合理性的度量; (4) 经济可行性:对项目或者方案的成本效益的度量。
可行性分析包括: (1) 运行/操作可行性:对方案满足新系统需求程度的度量; (2) 技术可行性:是对一种特定技术方案的现实性及技术资源和专家的可用性的度量; (3) 进度可行性:对项目时间表的合理性的度量; (4) 经济可行性:对项目或者方案的成本效益的度量。 解析:优秀的系统分析师在建议任何改变之前会全面地评价系统解决方案,可行性评价准则是客观评价解决方案的基础。可行性分析(运行可行性、技术可行性、进度可行性和经济可行性)是对组织将要开发的信息系统的价值或实用性的度量过程。利用可行性分析可以对不同的解决方案进行比较选择,并且能够保证组织对于系统投入的价值收益以避免项目失败的风险。可行性分析的能力是系统分析员必备的素质。
本题主要考查应试者对于可行性分析方法的掌握情况,特别是作为可行性准则中的经济可行性度量主要方法的成本效益分析技术。本题结合一个典型的实际项目案例,首先要求应试者简要说明可行性分析的准则及度量目标;进一步考查经济可行性分析中对于成本的计算;最后利用投资收益分析技术能够对实际项目中的成本和收益进行分析,计算项目的投资回报期。
本题要求应试者能够理解可行性分析的准则及内容,包括运行可行性、技术可行性、进度可行性和经济可行性等准则。

第8题:

RMO是一家运动服装制造销售公司,计划在5年时间内将销售区域从华南地区扩展至全国范围。为了扩大信息技术对于未来业务发展的价值,公司邀请咨询顾问帮助他们制订战略信息系统规划。经过评审,咨询顾问给出的战略规划要点之一是建立客户关系支持系统(CRSS)。RMO公司决定由其技术部成立专门的项目组负责CRSS的开发和维护工作。

项目组在仔细调研和分析了系统需求的基础上,确定了基于互联网的CRSS系统架构。但在确定系统数据架构时,张工认为应该采用集中式的数据架构,给出的理由是结构简单、易维护且开发及运行成本低;而刘工建议采用分布式的数据架构,并提出在开发中通过"局部数据库+缓存"的读写分离结构实现,具有较好的运行性能和可扩展性。

项目组经过集体讨论,考虑到公司的未来发展规划,最终采用了刘工的建议。

请用300字以内的文字,说明张工和刘工提出的数据架构的基本思想。


①张工提出的集中式数据架构是由一个处理器、与它相关联的数据存储设备,以及其他外围设备组成,它被物理地定义到单个位置。系统提供数据处理能力,用户可以在同样的站点上操作,也可以在地理位置隔开的其他站点上通过远程终端来操作。系统及其数据管理被某个或中心站点集中控制。
②刘工提出的分布式数据架构使用多个计算机系统上的多个局部数据库系统构成,数据可以在多个不同的局部数据库中进行传送,由不同的数据库管理系统软件进行管理,运行在多种不同的计算机上,支持多种不同的操作系统。这些机器位于(或分布在)不同的地理位置并通过多种通信网络连接在一起。企业数据可以分布在不同的计算机上,一个应用程序可以操作位于不同地理位置的机器上的数据。

第9题:

X公司欲针对Linux操作系统开发一个KWIC(Key Word in Context)检索系统。该系统接收用户输入的查询关键字,依据字母顺序给出相关帮助文档并根据帮助内容进行循环滚动阅读。在对KWIC系统进行需求分析时,公司的业务专家发现用户后续还有可能采用其它方式展示帮助内容。根据目前需求,公司的技术人员决定通过重复剪切帮助文档中的第一个单词并将其插入到行尾的方式实现帮助文档内容的循环滚动,后续还将采用其它的方法实现这一功能。

在对KWIC系统的架构进行设计时,公司的架构师王工提出采用共享数据的主程序-子程序的架构风格,而李工则主张采用管道-过滤器的架构风格。在架构评估会议上,大家从系统的算法变更、功能变更、数据表示变更和性能等方面对这两种方案进行评价,最终采用了李工的方案。

【问题1】在实际的软件项目开发中,采用恰当的架构风格是项目成功的保证。请用200字以内的文字说明什么是软件架构风格,并对主程序-子程序和管道-过滤器这两种架构风格的特点进行描述。


正确答案:
本题是一道架构设计方面的试题,考查的内容是常见架构风格的选用。这就涉及到不同架构风格的优势、劣势、应用场合的比较分析。
软件架构风格是描述某一特定应用领域中系统组织方式的惯用模式(idiomatic paradigm)。架构风格定义了一个系统“家族”,即一个架构定义、一个词汇表和一组约束。词汇表中包含一些构件和连接件类型,而约束指出系统是如何将这些构件和连接件组合起来的。架构风格反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个构件有效地组织成一个完整的系统。
Garlan和Shaw对通用软件架构风格进行了分类,他们将软件架构分为数据流风格、调用/返回风格、独立构件风格、虚拟机风格和仓库风格。题目中的主程序-子程序架构风格属于调用/返回风格,管道-过滤器架构风格属于数据流风格。
主程序/子程序。单线程控制,把问题划分为若干个处理步骤,构件即为主程序和子程序,子程序通常可合成为模块。过程调用作为交互机制,即充当连接件的角色。调用关系具有层次性,其语义逻辑表现为主程序的正确性取决于它调用的子程序的正确性。
管道/过滤器。每个构件都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这个过程通常是通过对输入数据流的变换或计算来完成的,包括通过计算和增加信息以丰富数据、通过浓缩和删除以精简数据、通过改变记录方式以转化数据和递增地转化数据等。这里的构件称为过滤器,连接件就是数据流传输的管道,将一个过滤器的输出传到另一个过滤器的输入。
试题答案
【问题1】(7分)
软件架构风格是描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。(1分)
主程序-子程序架构风格中,所有的计算构件作为子程序协作工作,并由一个主程序顺序地调用这些子程序,构件通过共享存储区交换数据。(3分)
管道-过滤器架构风格中,每个构件都有一组输入和输出,构件接受数据输入,经过内部处理,然后产生数据输出。这里的构件称为过滤器,构件之间的连接件称为数据流传输的管道。(3分)
(以上答案,意思正确即可酌情给分)

第10题:

阅读以下关于Web应用系统架构设计的叙述,在答题纸上回答问题1至问题3. 【说明】 某信息技术公司计划开发一套在线投票系统,用于为市场调研、信息调查和销售反馈等业务提供服务。该系统计划通过大量宣传和奖品鼓励的方式快速积累用户,当用户规模扩大到一定程度时,开始联系相关企业提供信息服务,并按照信息服务种类和用户投票数量收取费用。 为了降低开发成本和提高开发效率,项目组经过讨论后决定采用轻量级Java EE开发框架设计系统应用架构。在应用架构设计中,除了满足系统主要功能需求,还需要考虑的因素包括: (1)项目开发采用MySQL数据库存储数据,一但将来可能移植到其它数据库平台; (2)系统开发过程中尽可能降低或者消除SQL语句开发的工作量; (3)投票系统中数据之间的关系复杂,需要支持数据对象的聚合和继承等关系。 项目组基于MVC模式设计出了投票系统的架构,包括表示层、业务逻辑层、数据持久层和数据层。在具体讨论数据持久层采用哪种技术方案时,老王建议采用成熟的Hibernate框架,小李则认为iBatis更加灵活,更适合作为投票系统数据持久层开发技术。

【问题1)(5分) 请用300以内文字说明什么是数据持久层,使用数据持久层能够为项目开发带来哪些好处? 【问题2】(12分) 针对在线投票系统的实际应用需求和要求,项目组应选用哪种技术实现数据持久层?请用200字以内文字说明其采用该技术的原因。 【问题3】(8分) 数据持久层是Web应用系统框架中重要的组成部分,主流的数据持久层技术分别基于不同的技术方案,请在表5-1中(1)-(4)处分别根据(a)~(d)所列技术的方案类别填入其序号。 表5-1 数据持久层技术分类(a) BMP, CMP (b)iBatis/MyBatis (c)SprmgJdbcTemplate (d)TopLink,JDO,Hibernate


正确答案:【问题1】
数据持久层是一组软件服务,将应用程序与该程序所使用的数据源分离,为整个项目提供一个统一、安全、并发的数据持久机制。
好处:
1、程序代码重用性强,即使更换数据库,只需要更改配置文件,不必重写程序代码。
2、业务逻辑代码可读性强,在代码中不会有大量的SQL语言,提高程序的可读性。
3、持久化技术可以自动优化,以减少对数据库的访问量,提高程序运行效率。
4、简化开发工作,让开发人员更关注于业务逻辑的开发。
5、通过对象/关系映射向业务逻辑提供面向对象的数据访问。
【问题2】
1、项目组应选Hibernate框架
2、选择该技术的原因是:
(1)从移植的角度来看使用Hibernate更容易移植到其它数据库平台。
Hibernate与具体数据库的关联只需在XML文件中配置即可,所有的HQL语句与具体使用的数据库无关,移植性很好。MyBatis项目中所有的SQL语句都是依赖所用的数据库的,所以不同数据库类型的支持不好。
(2)使用Hibernate能降低或者消除SQL语句开发工作量, Hibernate 提供了方法完成持久层操作,程序员不需要对SQL 的熟练掌握,便可完成任务。
(3)Hibernate提供了对象状态管理的功能,使开发者不再需要理会底层数据库系统的细节,而MyBatis在这一块没有文档说明,用户需要对对象自己进行详细的管理。
【问题3】
(1) (c)                
(2) (b)                
(3) (d)                
(4) (a)

更多相关问题