2022年案例真题
真题1
阅读以下关于软件系统分析与建模的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件公司拟开发一套博客系统,要求能够向用户提供一个便捷发布自己心得,及时有效的与他人进行交流的平台。新用户发布个人博客之前,需要创建一个新的博客账户,以下为新用户注册的操作行为:
(a)向系统请求创建一个新的博客账户;
(b)输入个人详细信息;
(c)使用证件数据库验证个人详细信息;
(d)选择账户类型;
(e)身份验证成功,创建新的博客账户;
(f)用户身份信息验证不成功;
(g)以电子邮件的方式将账户详细信息发送给用户;
(h)博客账户申请被拒绝。
【问题1】(6分)
在结构化和面向对象的软件分析过程中,通常会使用到数据流图、活动图和流程图,请分别描述这三种模型的特点和适用场景。
【问题2】(9分)
采用用例图和用例描述建模系统需求,请使用题干给出的(a)~(h),完善“博客账户创建用例描述”中(1)~(6),如表1-1所示。将正确答案填在答题上。
表1-1博客账户关键用例描述
【问题3】(10分)
需求评审是通过将需求规格说明书递交给相关员检查,以发现其中存在缺陷的过程。在需求工程中,需求评审是一个非常重要的过程。结合题干案例,请用300字以内的文字简要说明需求评审的内容及作用。
答案解析
【问题1】
数据流图:
特点:通过系统内数据的流动来描述系统功能的一种方法。强调系统中的数据流动。由:数据流,外部实体,加工,数据存储。
适用场景:结构化需求分析,为系统做功能建模。
活动图:
特点:与流程图类似,但可以表现并行执行。
适用场景:面向对象分析与设计建模。
流程图:
特点:能清晰展现业务执行的流程顺序。强调控制流。
适用场景:结构化需求分析与结构化设计,为系统梳理业务流程。
【问题2】
(1)(a)
(2)(d)
(3)(b)
(4)(c)
(5)(g)
(6)(h)
【问题3】
需求评审内容:
(1)SRS正确地描述了预期的、满足项目干系人需求的系统行为和特征。
(2)SRS中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。
(3)需求是完整的和高质量的。
本例中存在需求描述不完整的情况,如:谁向系统请求?
输入个人详细信息要输入哪些?选择账户类型,有哪户类型供选择?
(4)需求的表示在所有地方都是一致的。
(5)需求为继续进行系统设计、实现和测试提供了足够的基础。
(6)用例优先级合理度评估。
本案例中,未说明用例的优先级。
作用:
1、发现二义性需求;
2、发现不确定性用户未达成共识的需求;
3、发现遗漏的需求;
4、为项目干系人在需求问题上达成共识提供支撑;
5、降低风险;
6、提高软件质量。
真题2
阅读以下关于系统设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某软件公司为某企业开发一套在线办公自动化系统,以提升企业管理服务的质量和效率。公司决定采用面向对象方法开发该系统,张工负责对员工请假审批业务进行了分析,具体描述如下:
企业员工通过请假申请页面提出请假申请后,首先由部门经理进行审核,若请假理由不合理,部门经理拒绝请假申请,将申请退回给员工,员工对请假申请表进行修改再次提交,或放弃请假申请。
若请假理由合理,且请假天数小于等于3天,则部门经理直接批准请假申请,生成请假批准单,申请结束。
若请假天数大于3天,则在部门经理批准请假申请后,需要提交给副总经理审核批准。副总经理若认为该申请合理,则审核通过,生成请假批准单,流程结束;若副总经理认为申请不合理,则拒绝请假申请,将请假申请退回给员工。
【问题1】(11分)
识别设计类是面向对象设计过程中的重要环节之一,设计类表达了类的职责,即该类所承担的任务。请用300字以内的文字说明设计类通常包含哪3种类型,以及每种类型的主要职责,并从题干描述案例涉及的具体类为每种类型的设计类举出两个实例。
【问题2】(6分)
识别类之间的关系是面向对象分析过程中的重要环节之一,常见的类之间关系包括泛化关系、关联关系、聚合关系、组合关系等。请用300字以内的文字对泛化关系和关联关系的内涵进行描述并根据题干具体类的描述为这两种关系各举出一种实例。
【问题3】(8分)
在面向对象的设计过程中,状态图描述了一个实体基于事件反应的动态行为。请根据题干描述填写图2-1中的(a)~(d)空白,完成请假审批的状态图。
答案解析
【问题1】
(1)实体类。实体类映射需求中的每个实体,保存需要存储在永久存储体中的信息,例如,员工信息、请假申请表。
(2)控制类。控制类是用于控制用例工作的类,用于对一个或几个用例所特有的控制行为进行建模。例如,提交请假,审批请假。
(3)边界类。边界类用于封装在用例内、外流动的信息或数据流。例如,请假申请页面、请假批准单。
【问题2】
(1)泛化关系。泛化关系描述了一般事物与该事物中的特殊种类之间的关系,也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说,子类继承了父类,而父类则是子类的泛化。
(2)关联关系。关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。
关联体现的是对象实例之间的关系,而不表示两个类之间关系。其余的关系涉及类元自身的描述,而不是它们的实例。对于关联关系的描述,可以使用关联名称、角色、多重性和导向性来说明。
泛化关系实例:员工与部门经理。部门经理也是员工的一种。
关联关系:员工与请假记录之间有关联关系。
【问题3】
(a)部门经理拒绝请假申请
(b)请假天数>3天
(c)副总经理不批准请假
(d)请假天数<=3天
真题3
阅读以下关于基于模型的系统工程方法的描述,在答题纸上回答问题1至问题3。
【说明】
某公司长期从事宇航系统的研制任务。随着宇航系统能力的不断提升,软件的规模急剧增加,对应的缺陷密度呈现出几何增长,失效问题越来越严重。为了保证产品的质量,公司领导要求在重点项目中实施基于模型的系统工程(MBSE)。由于辅助动力控制系统关系着飞行器的飞行安全,有必要作为试点工程首先实施MBSE方法。王工作为该系统的主要负责人,承担起了此项工作。
【问题1】(10分)
王工以前一直负责用传统开发方法进行系统设计,深知基于文本的系统设计方式存在天然的局限性。王工接到指示后,研究了MBSE的相关理论基础和工程实现方法,提出了用MBSE方法设计辅助动力控制系统的实施方案。请用300字以内说明什么是MBSE方法,并列举出三个基于设计方式的局限性。
【问题2】(9分)
MBSE的核心技术是模型方法论,王工对目前主流建模方法Harmony-SE ( harmony for System Engineering ) 方法、RUP-SE (Rational Unified Process for System )方法和Vitech MBSE 方法进行了分析、对比,鉴于该系统具备安全攸关系统的特殊性,强调验证的有效性,王工认为Harmony-SE方法比较适合宇航环境开发。图3-1给出了Harmony-SE 方法的产品生命周期结构。请根据以下三种有关建模方式的描述,判定哪种描述是Harmony-SE 方法的正确说明?并简要说明王工在本项目中选择Harmony-SE方法的理由。
描述1:一种面向对象的设计方法,可以将设计工作按照角色、工件和任务类型进行分解,生成新的分解结构,实现并行设计与迭代开发。
描述2:系统模型贯穿系统研发的整个生命周期,能够较好处理复杂与整体问题。
描述3:一种并行系统工程活动,由四个基本系统工程活动组而成,这四种活动通过公共系统设计库相关联。
【问题3】(6分)
MBSE方法可以通过软硬件建模来预先评估系统的可靠性。王工带领项目成员针对其负责的辅助动力控制系统中的进排气门控制器组件开展了基于MBSE系统分析工作。
图3-2给出了进排气门控制器的可靠性分布图。
王工指出:系统是由软硬件组成,以往考虑可靠性指标仅仅关注硬件失效问题,而不考虑软件失效对系统可靠性的影响。如果不考虑软件失效对系统可靠性的影响,本系统可靠性的MTTF(Mean Time To Failure,平均失效前时间)应该为125.9h(参考公式:
请对照图3-3给出的考虑软件失效情况下的系统可靠性分布图(这里,假设SYS1软件非常可靠,系统仅仅将圈中的软件可靠性加入系统可靠性的评估过程),说明此时的系统可靠性应大于还是小于不考虑软件失效的MTTF?并计算出此时的系统可靠性(MTTF)是多少?
答案解析
【问题1】
基于模型的系统工程(MBSE)是一种形式化的方法,用于支持与复杂系统的开发相关的需求,设计,分析,验证和确认。与以文档为中心的工程,MBSE将模型放在系统设计的中心。MBSE是向以模型为中心的一系列方法转变这一长期趋势的一部分,这些方法被应用于机械、电子和软件等工程领域,以期望取代原来系统工程师们所擅长的以文档为中心的方法,并通过完全融入系统工程过程来影响未来系统工程的实践。
基于文档的设计方法的局限性主要有:
(1)在基于文档的方法中,许多文档是由不同的作者生成的,以从各种利益相关者的观点(例如系统行为,软件,硬件,安全,安全性或其他学科)中捕获系统的设计。不利于利益相关者之间的沟通,容易产生歧义。
(2)开发复杂系统的能力有限,基于文本的设计方案无法进行前期仿真验证。
(3)自然语言容易引入形容词等模糊描述,很难保证准确性。
【问题2】
正确的描述是【描述2】。
【描述1】描述1是对RUP-SE方法的描述。
【描述3】描述3是对vitech MBSE方法的描述。
根据王工对MBSE的研究,RUP-SE是一种面向对象的设计方法,vitech MBSE方法是一种并行系统,并不满足宇航系统所要求的高安全性和强调验证性的要求。而Harmony-SE建模方法是贯穿系统研发的整个生命周期,用于支持与复杂系统的开发相关的需求、设计、分析、验证和确认。符合宇航系统所描述的安全性和验证性的要求。
【问题3】
(1)小于不考虑软件失效的MTTF。
(2)系统可靠性的计算如下:
1/280+1/(5.01*10^4)+1/10^4+1/600+1/387+(1/0.3968+1/0.3968)
=0.007942+(1/0.3968+1/0.3968)
=0.007942+2/0.3968
=0.007942+5.040322
=5.048264(1/h)
所以系统的可靠性为:1/5.048264==0.1980879H。
真题4
阅读以下关于微服务架构中的数据管理的叙述,在答题纸上回答问题1至问题3。
【说明】
某大型电商平台构建了一个在线B2B商店系统。该系统采用微服务架构,将系统功能分解为多个松散耦合且可独立部署的较小组件或服务。最终设计的系统包括了电商系统中常见的服务:客户服务、订单服务、支付服务等,其中:
1、客户服务负责对客户相关的信息进行管理和维护;
2、订单服务负责对订单信息的管理和维护;
3、支付服务负责对在线支付功能和信息的管理和维护等。
为了确保微服务之间的松耦合,每个服务都有自己的数据,其中,订单服务使用了NoSQL数据库,客户服务和支付服务使用了关系数据库。
李工认为由于不同服务使用了各自的不同数据库,使得跨服务操作可能存在数据不一致。比如订单与支付的数据一致性问题,系统通过订单服务在本地NoSQL数据建订单记录,同时在支付服务的关系数据库中创建支付记录,且必须保证订单记录和支付记录的一致性,该问题在系统构建时需要考虑。
【问题1】(7分)
李工建议采用两阶段提交协议(2PC)来解决服务数据的一致性问题。请用200字以内的文字简要说明2PC;说明2PC是否能解决该问题,并简要解释原因。
【问题2】(8分)
王工建议采用分布式数据管理方案,用事件驱动架构来解决服务数据的一致性问题,在订单服务和支付服务之间通过可靠的消息队列实现事件的传递,其基本操作步骤如下,请填写其中的空白处。
(1)订单服务接收订购请求,创建一个订单,该记录状态为(a),发布一个“创建订单”事件;
(2)(b)接收“创建订单”事件,记录(c),发布一个“支付完成事件;
(3)订单服务接收“支付完成”事件,修改订单记录状态为(d)。
【问题3】(10分)
李工提出王工的方案会有数据库更新和发布事的原子性问题,例如订单服务创建订单记录和发布“创建订单”事件需要原子性保障,否则会出现数据不一致状态。
王工认为可以使用本地事务发布事件的方法来解决该问题。请给出使用本地事务发布事件的基本方法,并说明该方法的缺点。
答案解析
【问题1】
1、两阶段提交协议2PC经常用来管理分布式事务。
(1)2PC包含协调者和参与者两类站点,只有协调者才拥有提交或撤销事务的决定权,而其他参与者各自负责在其本地数据库中执行写操作,并向协调者提出撤销或提交事务的意向。
(2)2PC分为两个阶段:表决阶段和执行阶段。
①表决阶段,目的是形成一个共同的决定。协调者给所有参与者发送“准备提交”消息,并进入等待状态,所有参与者给与回复“建议提交”或“建议撤销”。只要有一个节点选择撤销,则整体事务撤销,否则,执行该事务。
②执行阶段,目的是实现这个协调者的决定。根据协调者的指令,参与者或者提交事务,或者撤销事务,并给协调者发送确认消息。
2、两阶段提交协议2PC不能解决当前问题。
(1)分布式数据库遵循的是CAP原则,会在一定程度上牺牲一致性。
(2)大多数NoSQL数据库并不支持2PC。
(3)分布式两阶段提交协议2PC一般针对的对象在逻辑上是一个整体,对某一个整体事务需要在多个物理节点上执行时,进行表决和执行,对多个数据库的不同服务并不是很合适。
【问题2】
(a)未支付
(b)支付服务
(c)支付信息
(d)已支付
【问题3】
使用本地事务发布事件:
由一个独立进程来发布事件。具体来说,就是在存储业务实体状态的数据库中,使用一个事件表来充当消息队列。应用启动一个(本地)数据库事务,更新业务实体的状态,在事件表中插入一个事件,并提交该事务。一个独立的消息发布线程或进程查询该事件表,将事件发布到消息代理,并标注该事件为已发布。
缺点:
由于开发者必须牢记发布事件,因此有很大可能出错。此外这一方法对于某些使用NoSQL数据库的应用是个挑战,因为NoSQL本身交易和查询能力有限。
真题5
阅读以下关于web系统设计的叙述,在答题纸上回答问题1至问题3。
【说明】
某公司拟开发一个食品供应链溯源系统,该系统需要提供从原材料供应商、加工商、物流、分销商、零售商、消费者的食品供应链全流程溯源。该公司组建了项目组,并召开了项目开发讨论会。会上,张工提出使用二维码扫描获取食品信息,采用中心化数据库作为数据存储媒介;李工提出使用中心化数据库容易产生数据信任、溯源追责困难等问题,建议建立区块链和数据库的映射存储,提供存储和查询操作功能,并提出采用数据接入层、数据核心层、应用表示层三层体系架构实现该食品溯源系统。
【问题1】(6分)
去中心化和开放性是区块链的重要特征,请用200字以内的文字简要说明什么是区块链的去中心化和开放性。
【问题2】(7分)
分布式交易账本、哈希散列函数、公私钥签名、时间戳就是区块链的核心技术,请从上述技术中选择两种最适合解决数据信任问题的技术,并用300字以内的文字说明原因。
【问题3】(12分)
根据李工的建议,该系统将采用三层架构。请从下面给出的(a)~(m)候选项中进行选择,补充完善图5-1中(1)~(6)处空白的内容,完成该系统的架构设计方案。
(a)数据接入层
(b)智能合约
(c)Socket
(d)4G/Wifi
(e)应用表示层
(f)数据库
(g) MVC
(h)数据核心层
(i)传感器网络
(j)区块链网络
(k) 4G/Wifi
(l) JDBC
(m)业务逻辑层
【问题1】
1、去中心化
区块链采用了分布式计算和存储,不存在中心化的硬件或管理机构,因此使得任意节点的权利和义务都是均等的。
2、开放性
区块链的系统的一个开放性质的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开的。
【问题2】
分布式交易账本、公私钥签名
分布式交易账本使交易账本在全网不止一份,而是有多份,当有人想篡改账本时,非常难以实现,所以能解决数据可信度问题。
公私钥签名是使用非对称加密机制,做签名,以验证持有人以及防止伪造的效果,这种技术也极难被破解,能验证持有人自然能一定程度解决数据可信度的问题。
【问题3】
(1)(a)数据接入层
(2) (k)4G/Wifi
(3)(b)智能合约
(4)(f)数据库
(5)(h)数据核心层
(6)(e)应用表示层
论文1
论原型法及其在信息系统开发中的应用
作为一种信息系统开发方法,原型法(Prototyping)被普遍使用,原型法是指在获取一组基本的需求定义后,利用可视化的开发工具,快速建立一个目标系统的最初版本,并交由用户试用,并根据用户反馈进行补充和修改,再形成新的版本。反复进行这个过程,直到得出系统的“精确解”,即用户满意为止。
请围绕“原型法及其在信息系统开发中的应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。
2.请简要描述原型法的开发过程。
3.具体阐述你参与管理和开发的项目是如何基于原型法进行信息系统研发的。
论文2
论面向对象设计方法及其应用
系统设计是根据系统分析的结果,运用系统科学的思想和方法,设计出能满足用户所要求的目标(或目的)系统的过程。面向对象设计方法是一种接近现实的系统设计方法。在该方法中,数据结构和在数据结构上定义的操作算法封装在一个对象之中。
请围绕”面向对象设计方法及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。
2.面向对象设计方法包含多种设计原则,请简要描述其中的三种设计原则。
3.具体阐述你参与管理和开发的项目是如何遵循这三种设计原则进行信息系统设计的。
2021年案例真题
试题一
某软件企业拟开发一套基于移动互联网的在线运动器材销售系统,项目组决定采用FAST开发方法进行系统分析与设计,在完成了初步的调查研究之后进入了问题分析阶段,分析系统中存在的问题以及改进项,其分析的主要内容包括:
(1) 器材销售订单处理的时间应该减少20%;
(2)移动端支持IOS和Android两类操作系统;
(3)器材销售订单处理速度太慢导致很多用户取消订单;
(4) 后台服务器硬件配置比较低;
(5) 用户下单过程中应该减少用户输入的数据量;
(6)订单处理过程中用户需要输入大量信息;
(7)利用云计算服务可以降低50%的服务器处理时间;
(8)公司能投入的技术维护人员数量有限;
(9)大量的并发访问会导致App页面无法正常显示;
[问题1] (12分)
FAST开发方法在系统分析中包括了初始研究、问题分析、需求分析和决策分析等四个阶段,请简要说明每个阶段的主要任务。
[问题2] (8分)
在问题分析阶段,因果分析方法常用于分析系统中的问题和改进项,请结合题目中所描述各项内容,将题干号(1) -(9) 填入表1-1的(a) ~(d)中。
表 1-1 问题、机会、目标和约束矩阵
[问题3] (5分)
在决策分析阶段,需要对候选方案所述内容按照操作可行性、技术可行性、经济可行性和进度可行性进行分类。请将下列(1) ~ (5)内容填入表1-2的(a)-(d)中。
(1)新开发的器材销售系统能够满足用户所需的所有功能;
(2) 系统开发的成本大约需要40万元人民币;
(3) 需要对移动端App开发工程师进行技术培训;
(4) 系统开发周期需要6个月;
(5)系统每年维护的费用大约5万元人民币;
表1-2候选方案指标分类
答案解析:
【问题一】
初步研究阶段:1、列出问题和机会 2、协商项目的初步范围 3、评估项目价值 4、计划项目进度表和预算 5、汇报项目计划
问题分析阶段:1、研究问题领域 2、分析问题和机会 3、分析业务过程制定系统改进目标 5、修改项目计划 6、汇报调查结果和建议
需求分析阶段:1、定义需求 2、排列需求的优先次序 3、修改项目计划 4、交流需求陈述
决策分析阶段:1、确定候选方案 2、分析候选方案 3、比较候选方案 4、修改项目计划 5、推荐一种系统
顺便问了下ChatGPT关于这个FAST方法,回答如下,各位还满意么?
【问题二】
(a):3。(b):4,6,9。(c):1,5,7。(d):2,8。
【问题三】
(a):1。(b):3。(c):2,5。(d):4。
试题二
某商校拟开发一套图书馆管理系统,在系统分析阶段,系统分析师整理的核心业务流程与需求如下:
系统为每个读者建立一个账户,并给读者发放读者证(包含读者证号、读者姓名),账户中存储读者的个人信息、借阅信息以及预订信息等,挂有读者正可以借阅图书、返还图书、查询图书信息、预订图书、取消预订等。
在借阅图书时,需要输入读者所借阅的图书名、ISBN号,然后输入读者的读者证号,完成后提交系统,以进行读者验证,如果读者有效,借阅请求被接受,系统查询读者所借阅的图书是否存在,若存在,则读者可借出图书,系统记录借阅记录,如果读者所借的图书已被借出,读者还可预订该图书。读者如期还书后,系统清除借阅记录,否则需缴纳罚金,读者还可以选择续借图书。同时,以上部分操作还需要系统管理员和图书管理员参与。
[问题1] (6分)
采用面向对象方法进行软件系统分析与设计时,一项重要的工作是进行类的分析与设计。请用200字以内的文字说明分析类图与设计类图的差异。
[问题2] (11分)
设计类图的首要工作是进行类的识别与分类,该工作可分为两个阶段“首先,采用识别与筛选法,对需求分析文档进行分析,保留系统的重要概念与属性,删除不正确或冗余的内容;其次,将识别出来的类按照边界类、实体类和控制类等三种类型进行分类。请用200字以内的文字对边界类,实体类和控制类的作用进行简要解释,并对下面给出的候选项进行识别与筛选,将合适的候选项编号填入表2-1中的(1)~(3) 空白处,完成类的识别与分类工作。
表2-1图书管理系统类识别与分类表格
类型 | 实例 |
边界类 | (1) |
实体类 | (2) |
控制类 | (3) |
候选项:
(a)系统管理员 (b) 图书管理员 (c) 读者 (d) 读者证 (e) 账户 (f) 图书(g)借阅 (h)归还 (i) 预 (j) 罚金 (k) 续借 (1) 借阅记录
[问题3](8 分)
根据类之间的相关性特点,可以将类之间的关系分为组合 (composition),继承 (inheritance),关联(association),聚合 (aggregation) 和依赖 (dependency) 等5 种,请用 300 字以内的文字分别对这5 种关系的内涵进行叙述,并从封装性、动态组合和创建对象的方便性三个方面对组合和继承关系的优缺点进行比较。
答案解析:
【问题1】
分析阶段的类图主要是从业务领域获取信息的,在描述上更多使用了业务领域的语言和词汇。
设计阶段的类图是从编程实现角度来设计类图的,更多的是考虑类编码的实现。
【问题2】
(1) d)读者证
(2)a)系统管理员 b)图书管理员 c)读者 e)账户 f)图书j)罚金 I)借阅记录
(3)g)借阅 h)归还 i)预订 k)续借
【问题3】
封装性:
组合:不破坏封装性,整体类与局部类之间松耦合,相对独立。
继承:破坏封装性,子类与父类紧耦合,子类缺独立性。
动态组合:
组合:支持动态组合。
继承:不支持动态组合。
创建对象:
组合:创建整体类时,需要创建所有局部类的对象。
继承:创建子类对象时,不需要创建父类对象。
(1)关联关系。关联提供了不同类的对象之间的结构关系,它在一段时间内将多个类的实例连接在一起。
(2)依赖关系。两个类A和B,如果B的变化可能会引起A的变化,则称类A依赖于类B。依赖可以由各种原因引起。
(3)继承关系。本质上就是泛化关系。继承是在某个类的层次关联中不同的类共享属性和方法的一种机制。父类与子类的关系是一般与特殊
的关系,一个父类可以有多个子类,这些子类都是父类的特例。
(4)聚合关系。表示类之间的整体与部分的关系,其含义是“部分”可能同时属于多个“整体”,“部分”与“整体”的生命周期可以不相同。
(5)组合关系。表示类之间的整体与部分的关系。其中的“部分”只能属于一个“整体”,“部分”与“整体”的生命周期相同,“部分”随着“整体”的创
建而创建,也随着“整体”的消亡而消亡。
试题三
某大型企业在长期信息化建设过程中,面向不同应用,开发了各种不同类型的应用软件系统,以满足不同的业务需求,随着用户需求和市场的快速变化,要求企业应能快速地整合企业的各种业务能力。为不同类型的用户提供多种流程的业务服务。但现有各个独立的应用系统难以满足日益增长和快速变化的用户需求。
目前该企业各个应用系统主要存在以下问题:
(1)应用系统是异构的,运行在不同软硬件平台上的信息系统。
(2)应用系统的数据源彼此独立,相互封闭,使得数据难以在系统之间交互,共享和融合,即存在“信息孤岛”。
(3)系统是面向应用的、各个应用系统中的数据模型差异大,即使同一数据实体,其数据类型、长度均存在不一致甚至相互矛盾的问题,为此,该企业专门成立了研发团队,希望能尽快解决上述问题。
【问题1】
李工建议采用数据集成的方式来实现数据的整合,同时构建新系统来满足新的需求,针对题干中的问题(3),李工提出首先面向企业核心的业务主题,做好企业战略数据规划。建立企业的主题数据库,然后再进行集成系统的开发。
请用200字以内的文字简要说明主题数据库的设计要求和基本特征。
【问题2】
张工认为数据集成的方式难以充分利用已有应用系统的业务功能实现不同业务功能的组合,建议采用基于S0A的应用集成方式将原有系统的功能包装为多个服务,并给出了基本的集成架构,见图:
图4-1基于SOA的集成架构示意图
请补充完善图4-1中(1) - (3) 处空白的内容。
【问题3】
研发团队在对张工的方案进行分析后,发现该方案没有发挥SOA的核心理念,即松耦合的服务带来业务的复用通过服务的编排助力业务的快速响应和创新、未实现“快速整合企业业务的能力,不同类型用户提供各种不同功能,不同流程的业务服务的核心目标,目前方案仅仅是通过SOA实现了系统集成。
请用200字以内文字分析该方案未满足本项目核心目标的原因。
答案解析:
【问题1】
主题数据库的设计要求:
(1)应设计得尽可能的稳定,使能在较长时间内为企业的信息资源提供稳定的服务。
(2)要求主题数据库的逻辑结构独立于当前的计算机硬件和软件的物理实现过程,这样能保持在技术不断进步的情况下,主题数据库的逻辑结构仍然有效。
主题数据库具有以下基本特征:
(1)面向业务主题。主题数据库是面向业务主题的数据组织存储。
(2)信息共享。主题数据库是对各个应用系统“自建自用”的数据库的否定,强调建立各个应用系统“共建共用”的共享数据库。不同的应用系统统一调用主题数据库。
(3)一次一处输入系统。主题数据库要求调研分析企业各经营管理层次上的数据源,强调数据的就地采集,就地处理、使用和存储,以及必要的传输、汇总和集中存储。同一数据必须一次、一处进入系统,保证其准确性、及时性和完整性,但可以多次、多处使用。
(4)由基本表组成。主题数据库是由多个达到基本表规范(满足3NF)要求的数据实体构成的。
【问题2】
(1)业务流程编排(2)消息转换(3)应用程序接口
【问题3】
张工的方案在进行集成时,只是将原有的系统做了简单的对接,应把原来的业务功能模块拆分并做成服务,以单个服务的形式使用企业服务总线做集成。
试题四
某公司拟开发一个基于web的远程康复系统,该系统的主要功能要求如下:
(1)康复设备可将患者的康复训练数据实时传入云数据库。
(2)医生可随时随地的通过浏览器获取患者康复训练数据并进行康复训练的结果评估和康复处方的更新。
(3)患者可通过此系统查看自己的康复训练记录和医生下达的康复训练处方,并可随时与医生进行在线沟通交流。
(4)平台管理员可借助此系统实现用户的管理和康复设备的监控与管理,及时获悉设备的数据信息,便于设备维护和更新。
该公司针对上述需求组建了项目组,并召开了项目开发研讨会,会上,张工建议云数据库采用关系型数据库来实现数据存储;李工提出来用三层架构实现该远程康复系统。
[问题1](6分)
请用200字以下内容说明什么是云数据库以及云数据库特点。
[问题2](9分)
根据该系统的功能需求,列举该系统中存在的实体,以辅助张工进行关系数据库设计。
[问题3](10分)
根据李工建议,该系统采用三层架构,请用300字以内的文字分析层次型架构优势,并从下面给出的(a)-(i)候选项中进行选择,补充完善图5- 1中(1)-(6)处空白的内容,完成该系统的架构设计方案。
候选项:(a)治疗仪(b)接入层(c)Socket(d)Spring(e)应用层(f)MySQL(g)MVC(h)无线通信(i)网络层
答案解析:
【问题1】
云数据库是指被优化或部署到一个虚拟计算环境中的数据库,可以实现按需付费、按需扩展、高可用性以及存储整合等优势。根据数据库类型一般分为关系型数据库和非关系型数据库(NoSQL数据库)。
云数据库的特性有:实例创建快速、支持只读实例、读写分离、故障自动切换、数据备份、Binlog备份、SQL审计、访问白名单、监控与消息通知等。
【问题2】
康复设备 患者 医生 平台管理员 训练数据 训练处方
【问题3】
架构的优势:
1、良好的复用性,只要接口不变可用在其它处;
2、可维护性好;
3、可扩展性好,支持递增设计;
4、经过合理分层,能让系统整体耦合性降低,达到解耦的效果;
5、可把相同逻辑与抽象级别的内容放在同一层次,更利于理解。
(1)(b)接入层(2)(a)治疗仪(3)(h)无线通信(4)(c)Socket(5)(i)网络层(6)(e)应用层
试题五
暂无
2020年案例真题
试题一
1、阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】
某软件企业拟采用面向对象方法开发一套体育用品在线销售系统,在系统分析阶段,“提交订单”用例详细描述如表1-1所示。
[问题1] (9分)
面向对象系统开发中,实体对象、控制对象和接口对象的含义是什么?
[问题2] (10分)
面向对象系统分析与建模中,从潜在候选对象中筛选系统业务对象的原则有哪些?
[问题3] (6分)
根据题目所示“提交订单”用例详细描述,可以识别出哪些业务对象?
答案解析:
【问题1】
(1)实体对象:用来表示业务域的事实数据并需要持久化存储的对象类型;
(2)控制对象:用来表示业务系统中应用逻辑和业务规则的对象类型;
(3)接口对象:用来表示用户与系统之间交互方式的对象类型。
【问题2】
(1)去除相同含义的对象;
(2)去除不属于系统范围内的对象:
(3)去除没有特定独立行为的对象:
(4)去除含义解释不清楚的对象;
(5)去除属于另一个对象属性或行为的对象。
【问题3】
会员、商品、购物车、订单、配送信息、支付记录。
试题二
阅读以下关于软件系统分析与设计的叙述,在答题纸上回答问题1至问题3。【说明】
某企业拟开发一套数据处理系统,在系统分析阶段,系统分析师整理的核心业务流程与需求如下:
(a)系统分为管理员和用户两类角色,其中管理员主要进行用户注册与权限设置,用户主要完成业务功能;
(b)系统支持用户上传多种类型的数据,主要包括图像、文本和二维曲线等;
(c)数据上传完成后,用户需要对数据进行预处理操作,预处理操作包括图像增强、文本摘要,曲线平滑等;
(d)预处理操作完成后,需要进一步对数据进行智能分析,智能分析操作包括图像分类、文本情感分析、曲线未来走势预测等;
(e)上述预处理和智能分析操作的中间结果均需要进行保存;
(f)用户可以将数据分析结果以图片、文本、二维图表等多种方式进行展示,并支持结果汇总,最终导出为符合某种格式的报告。
[问题1] (9分)
数据流图(Data Flow Diagram, DFD) 是一种重要的结构化系统分析方法,重点表达系统内数据的传递关系,并通过数据流描述系统功能。请用300字以内的文字说明DFD在进行系统需求分析过程中的主要作用。
[问题2] (10分)
顶层图(也称作上下文数据流图)是描述系统最高层结构的DFD,它的特点是将整个待开发的系统表示为一个加工,将所有的外部实体和进出系统的数据流都画在一张图中。请参考题干描述,将合适的内容填入图2—1中(1) ~ (5)空白处,完成该系统的顶层图。
[问题3] (6分)
在结构化设计方法中,通常采用流程图表示某一处理过程,这种过程既可以是生产线上的工艺流程,也可以是完成一项任务必需的管理过程。而在面向对象的设计方法中,则主要采用活动图表示某个用例的工作流程。请用300字以内的文字说明流程图和活动图在表达业务流程时的三个主要不同点。
答案解析:
【问题1】
数据流图(Data Flow Diagram,DFD)是一种重要的结构化系统分析方法,重点表达系统内数据的传递关系,并通过数据流描述系统功能。DFD 的主要作用包括:
(1)DFD 是理解和表达用户需求的工具,是需求分析的手段。
(2)DFD 概括地描述了系统的内部逻辑过程,是需求分析结果的表达工具,也是系统设计的重要参考资料,是系统设计的起点。
(3)DFD 作为一个存档的文字材料,是进一步修改和充实开发计划的依据。
【问题2】
(1)管理员(2)用户权限信息(3)用户(4)多种类型数据(5)导出报告/展示结果
【问题3】
流程图和活动图有如下三个主要区别:
(1)流程图着重描述处理过程,它的主要控制结构是顺序、分支和循环,各个处理过程之间有严格的顺序和时间关系。而活动图描述的是对象活动的顺序关系所遵循的规则,它着重表现的是系统的行为,而非系统的处理过程。
(2) 流程图只能表达顺序执行过程,活动图则可以表达并发执行过程。
(3) 活动图可以有多个结束状态,而流程图只能有一个结束状态。
试题三
阅读以下关于嵌入式实时系统设计的相关技术的描述,回答问题1至问题3。【说明】
某公司长期从事嵌入式系统研制任务,面对机器人市场的蓬勃发展,公司领导决定自主研制一款通用的工业机器人。王工承担了此工作,他在泛调研的基础上提出:公司要成功地完成工业机器人项目的研制,应采用实时结构化分析和设计(RTSAD)方法,该方法已被广泛应用于机器人顶层分析和设计中。
【问题1】 (9分)
实时结构化分析和设计(RTSAD)方法分为分析和设计两个阶段。分析阶段要开发个基本模型,即需求模型,基本模型中包含一个环境模型和一个行为模型:设计阶段是一种程序设计方法,该方法在转换分析和事务分析策略中结合使用了模块耦合和内聚标准,用于开发从结构化分析规范开始的设计方案。请用300字以内文字说明环境模型、行为模型、模块耦合和内聚的含义;并从模块独立性的角度,说明模块设计的基本原则。
[问题2] (9分)
图31给出了机器人控制器的状态转换图,其中T1-T6表示了状态转换过程中的触发事件,请将T1-T6填到图31中的空(1) ~ (6)处,完善机器人控制器的状态转换图,并将正确答案填写在答题纸上。
[问题3] (7分)
参考机器人控制器状态转换图(图31)和机器人控制器环境图(图32),完善机器人控制器命令的数据流程图(图33)中的空(1) ~ (7)处,并将正确答案填写在答题纸上。
答案解析:
【问题1】
环境模型描述的是系统运行时所处的环境,也就是系统要连接的外部实体,以及发送给系统的输入和来自系统的输出。
行为模型描述的是行为,也就是系统对从外部环境中接收到的输入信息的反应,在实时 系统中,这些反应一般都是依赖于状态的。
模块耦合在模块分解过程中作为一种标准来使用,用于判断模块间连接性的程度模块内聚在模块分解过程中作为一种标准来使用,用于确定模块内部的强度或统一性。模块设计在模块独立性上的基本原则:高内聚低耦合。
【问题2】
T1,T4,T2,T3,T6,T5
【问题3】
(1)控制机器人(2)修改程序(3)启动程序(4) 结束程序(5)处理程序结束(6)停止程序(7)继续执行程序
试题四
阅读以下关于数据管理的叙述,在答题纸上回答问题1至问题3。【说明】
某全国连锁药店企业在新冠肺炎疫情期间,紧急推出在线口罩预约业务系统。该业务系统为普通用户提供口罩商品查询、购买、订单查询等业务,为后台管理人员提供订单查询、订单地点分布汇总、物流调度等功能。该系统核心的关系模式为预约订单信息表。
推出业务系统后,几天内业务迅速增长到每日10万多笔预约订单,系统数据库服务器压力剧增,导致该业务交易响应速度迅速降低,甚至出现部分用户页面无法刷新、预约订单服务无响应的情况。
为此,该企业紧急成立技术团队,由张工负责,以期尽快解决该问题。
[问题1] (9分)
经过分析,张工认为当前预约订单信息表存储了所有订单信息,记录已达到了百万级别。系统主要的核心功能均涉及对订单信息表的操作,应首先优化预约订单信息表的读写性能,建议针对系统中的SQL语句,建立相应索引,并进行适当的索引优化。
针对张工的方案,其他设计人员提出了一些异议,认为索引过多有很多副作用。请用100字以内的文字简要说明索引|过多的副作用。
[问题2] (10分)
作为团队成员之一 ,李工认为增加索引并进行优化并不能解决当前问题,建议采用物理分区策略,可以根据预约订单信息表中“所在城市”属性进行表分区,并将每个分区分布到独立的物理磁盘上,以提高读写性能。常见的物理分区特征如表4-1所示。李工建议选择物理分区中的列表分区模式。
请填补表4-1中的空(a) ~ (d)处,并用100字以内的文字解释说明李工选择该方案的原因。
[问题3] (6分)
在系统运行过程中,李工发现后台管理人员执行的订单地址信息汇总等操作,经常出现与普通用户的预约订单操作形成读写冲突,影响系统的性能。因此李工建议采用读写分离模式,采用两台数据库服务器,并采用主从复制的方式进行数据同步。请用100字以内的文字简要说明主从复制的基本步骤。
答案解析:
【问题1】
索引过多的副作用有:
(1) 过多的索引会占用大量的存储空间;
(2) 更新开销,更新语句会引起相应的索引更新;
(3) 过多索引会导致查询优化器需要评估的组合增多;
(4)每个索引都有对应的统计信息,索引越多则需要的统计信息越多:
(5) 聚集索引的变化会导致非聚集索引的同步变化。
【问题2】
(a)属性的离散值
(b)周期性数据/周期数据
(c)能力强
(d)均匀
李工建议根据预约订单所在城市进行表分区,而所在城市属性为离散值,根据所在城市属性建立列表分区,也方便不同城市处理自己的数据,方便数据管理。
【问题3】
主从复制的基本步骤:
(1)主服务器将所做修改通过自己的 I/O 线程,保存在本地二进制日志中;
(2)从服务器上的 I/O 线程读取主服务器上面的二进制日志,然后写入从服务器本地的中继日志;
(3)从服务器上同时开启一个 SQL thread,定时检查中继日志,如果发现有更新则立即把更新的内容在本机的数据库上面执行一遍。
试题五
阅读以下关于Web应用系统的叙述,在答题纸上回答问题1至问题3。【说明】
某公司拟开发个基于O2O(Onine To Ofline)外卖配送模式的外卖平台。该外卖平台采用自行建立的配送体系承接餐饮商家配送订单,收取费用,提供配送服务。餐饮商家在该O2O外卖平台发布配送订单后,根据餐饮商家、订餐用户、外卖配送员位置等信息,以骑手抢单、平台派单等多种方式为订单找到匹配的外卖配送员,完成配送环节,形成线上线下的020闭环。
基于项目需求,该公司多次召开项目研发讨论会。会议上,张工分析了020外卖平台配送服务的业务流程,提出应采用事件系统架构风格实现订单配送,并建议采用基于消息队列的点对点模式的事件派遣机制。
[问题1] (10分)
基于对O2O外卖平台配送服务的业务流程分析,在图5-1的空(1) ~ (5)处完善O2O外卖平台配送的服务流程。
[问题2](9分)
根据张工的建议,该系统采用事件系统架构风格实现订单配送服务。请基于对事件系统架构风格的了解,补充图52的空(1) ~ (3) 处,完成事件系统的工作原理图。
[问题3] (6分)
请用200字以内的文字说明基于消息队列的点对点模式的定义,并简要分析张工建议该系统采用基于消息队列的点对点模式的事件派遣机制的原因。
答案解析:
【问题1】
(1) 提交订单(2) 发布订单(3)外卖平台(4)交付餐品(5) 配送员
【问题2】
(1)事件源(2) 事件管理器(3)事件处理器
【问题3】
在基于消息队列的点对点模式中,消息生产者生产消息并发送到消息队列 (Queue) 中,然后消息消费者从 Queue 中取出并且消费消息。消息被消费以后,Queue 中不再有存储,所 以消息消费者不可能消费到已经被消费的消息。Queue 支持存在多个消费者,但是对一个消息而言,只有一个消费者可以消费。如需求描述,任何一个外卖配送订单(消息) 都只能被一个配送员 (消费者) 接单,所 以,应该采用基于消息队列的点对点模式。