【系统分析师之路】2022上案例分析历年真题
【系统分析师之路】2022上案例分析历年真题
2022上案例分析历年真题第一题(25分)
试题一(共25分)
阅读以下关于软件系统分析与建模的叙述,在答题纸上回答问题1至问题3。
某软件公司拟开发一套博客系统,要求能够向用户提供一个便捷发布自已心得,及时有效的与他人进行交流的平台。新用户发布个人博客之前,需要创建一个新的博客账户,以下为新用户注册的操作行为:
(a) 向系统请求创建一个新的博客账户;
(b) 输入个人详细信息;
© 使用证件数据库验证个人详细信息;
(d) 选择账户类型;
(e) 身份验证成功,创建新的博客账户;
(f)用户身份信息验证不成功;
(g) 以电子邮件的方式将账户详细信息发送给用户;
(h)博客账户申请被拒绝。
【问题1】(6分)
在结构化和面向对象的软件分析过程中,通常会使用到数据流图、活动图和流程图,请分别描述这三种模型的特点和适用场景。
【问题2】(9分)
采用用例图和用例描述建模系统需求,请使用题干给出的(a)~(h),完善“博客账户创建用例描述”中的(1)~(6),如表1-1所示。将正确答案填在答题纸上。
【问题3】(10分)
需求评审是通过将需求规格说明书递交给相关人员检查,以发现其中存在缺陷的过程。在需求工程中,需求评审是一个非常重要的过程。结合题干案例,请用300字以内的文字简要说明需求评审的内容及作用。
【问题1我的解答】
1)数据流图
特点:描述数据的输入输出
适用场景:在结构化开发时的需求分析阶段,对系统的数据流向进行说明
2)活动图
特点:描述系统的执行先后顺序
适用场景:说明多任务并发情况下的先后顺序
3)流程图
特点:描述程序执行过程中的先后顺序
适用场景:说明程序内部逻辑结构
【问题1标准答案】
1)数据流图
特点:通过系统内数据的流动来描述系统功能的一种方法。强调系统中的数据流动。
它由四个部分组成:数据流,加工,外部实体,数据存储。
适用场景:结构化需求分析,为系统做功能建模
2)活动图
特点:活动图的特点与流程图相似,但可以表现为并行执行。
适用场景:面向对象的分析与设计建模。
3)流程图
特点:能够清晰的展现业务执行的流程顺序。与数据流图不同的是它更强调的是控制流而不是数据流
适用场景:结构化需求分析和结构化设计。为系统梳理业务流程。
【问题2我的解答】
1)d) 选择账户类型;
2)b) 输入个人详细信息;
3)c) 使用证件数据库验证个人详细信息;
4)a) 向系统请求创建一个新的博客账户;
5)g) 以电子邮件的方式将账户详细信息发送给用户;✓
6)h)博客账户申请被拒绝。✓
【问题2标准答案】
1)a
2)d
3)b
4)c
5)g
6)h
【问题3我的解答】
1)需求评审的内容
对需求规格说明书中记载的内容进行妥当性的评价与分析,分析的结果需要反馈给客户。
2)需求评审的作用
论证需求的可行性,是能够实现的
确认需求确实能够满足用户的需求
发现需求之间彼此没有矛盾与冲突
发现需求规格说明书中的错误内容
【问题3标准答案】
1)需求评审的内容
SRS正确的描述了预期的,满足项目干系人需求的系统行为和特征。
SRS中的软件需求是从系统需求,业务规格和其他来源当中正确推导而来的。
需求是完整的是高质量的。本例子中就存在需求不完整的情况,比如谁向系统请求,输入个人详细信息要输入哪些,选择账户类型,有哪些账户类型可供选择。
需求的表示在所有地方都是一致的
需求为继续进行系统设计,实现和测试提供了足够的依据。
用例优先度合理性评估。
SRS的作用
1)发现二义性的需求
2)发现不确定性用户未达成共识的需求
3)发现遗漏的需求
4)降低风险提高软件质量
5)为项目干系人在需求问题上达成共识提供支撑。
2022上案例分析历年真题第二题(25分)
试题二(共25分)
阅读以下关于系统设计的叙述,在答题纸上回答问题1至问题3。
某软件公司为某企业开发一套在线办公自动化系统,以提升企业管理服务的质量和效率。公司决定采用面向对象方法开发该系统,张工负责对员工请假审批业务进行了分析,具体描述如下:
企业员工通过请假申请页面提出请假申请后,首先由部门经理进行审核,若请假理由不合理,部门经理拒绝请假申请,将申请退回给员工,员工对请假申请表进行修改再次提交,或放弃请假申请。
若请假理由合理,且请假天数小于等于3天,则部门经理直接批准请假申请,生成请假批准单,申请结束。
若请假天数大于3天,则在部门经理批准请假申请后,需要提交给副总经理审核批准。副总经理若认为该申请合理,则审核通过,生成请假批准单,流程结束;若副总经理认为申请不合理,则拒绝请假申请,将请假申请退回给员工。
【问题1】(11分)
识别设计类是面向对象设计过程中的重要环节之一,设计类表达了类的职责,即该类所承担的任务。请用300字以内的文字说明设计类通常包含哪3种类型,以及每种类型的主要职责,并从题干描述案例涉及的具体类为每种类型的设计类举出两个实例。
【问题2】(6分)
识别类之间的关系是面向对象分析过程中的重要环节之一,常见的类之间关系包括泛化关系、关联关系、聚合关系、组合关系等。请用300字以内的文字对泛化关系和关联关系的内涵进行描述,并根据题干具体类的描述为这两种关系各举出一种实例
【问题3】(8分)
在面向对象的设计过程中,状态图描述了一个实体基于事件反应的动态行为。请根据题干描述,填写图2-1中的(a)~(d)空白,完成请假审批的状态图。
【问题1我的解答】
设计类可以分为三种类型:实体类,控制类,边界类。
1)实体类
在面向对象系统中,用来设计系统中存储数据实体的类。比如请假申请表,请假批准单就是实体类。
2)控制类
在面向对象系统中,用来控制与描述系统行为的设计类。比如请假申请。
3)边界类
在面向对象系统中,用来设计系统外部实体的实体,以及这些实体如何与系统进行交互的类。比如:员工,部门经理,副总经理。
【问题1标准答案】
1)实体类
实体类映射需求中的每个实体,保存需要永久存储在存储体中的信息。例如员工信息,请假申请表
2)控制类
用于控制用例工作的类。用于对一个或几个用例所特有的控制行为进行建模。例如提交请假,批准请假。
3)边界类
用于封装在用例内外流动的信息或数据流。例如请假申请页面,请假申请单。
【问题2我的解答】
1)泛化关系
可以简单理解为是继承关系的反关系。它是描述设计类之间父与子的关系。比如审批人与部门经理,副总经理之间就是泛化关系。
2)关联关系
是一个设计类的实现需要调用另一个设计类的方法来实现。那么这两个设计类之间就是关联关系。比如批准请假申请和拒绝请假申请就是关联关系。
【问题2标准答案】
1)泛化关系
描述了一般事务与该事务中的特殊种类之间的关系。也就是父类与子类之间的关系。继承关系是泛化关系的反关系,也就是说子类继承了父类,那么父类就是子类的泛化。
2)关联关系
关联关系提供了不同类的对象之间的结构关系。它在一定时间内将多个类的实例连接在一起。关联提现的是对象实例之间的关系,而不表示两个类之间的关系。其余的关系涉及类元自身的描述,而不是他们的实例。对于关联关系的描述可以使用关联名称,多重性,角色,导向性来说明。
泛化关系的实例:员工与部门经理,部门经理也是员工的一种。
关联关系的实例:员工与请假记录之间有关联关系。
【问题3我的解答】
a)部门经理拒绝申请✓
b)生成请假批准单
c)副总经理拒绝申请✓
d)生成请假批准单
【问题3标准答案】
a)部门经理拒绝请假申请
b)请假天数大于三天
c)副总经理不批准请假
d)请假天数小于等于三天
2022上案例分析历年真题第三题(25分)
试题三(共25分)
阅读以下关于基于模型的系统工程方法的描述,在答题纸上回答问题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是对RUP-SE方法的描述。描述3是对vitech MBSE方法的描述。根据王工对MBSE的研究,RUP-SE是一种面向对象的设计方法,vitech MBSE方法是一种并行系统,并不能满足宇航系统所要求的高安全性以及强调验证性等要求。而Harmony-SE方法是贯穿系统研发的整个生命周期,用于支持与复杂系统的开发相关的需求、设计、分析、验证和确认。符合宇航系统所描述的安全性和验证性的要求。
【问题3标准答案】
(1)小于不考虑软件失效的 MTTF。
(2)系统可靠性的计 算 如 下 : 1/280+1/(5.01*10 ) +1/10
+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
2022上案例分析历年真题第四题(25分)
试题四(共25分)
阅读以下关于微服务架构中的数据管理的叙述,在答题纸上回答问题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标准答案】
两阶段提交协议经常用来管理分布式事务。
2PC包括了协调者和参与者两类站点,只有协调者才拥有提交或撤销事务的决定权,而其他参与者各自负责本地数据库中执行写操作,并向协调者提出撤销。
2PC分为了两个阶段:表决决断和执行阶段。
1)表决阶段
目的是形成一个共同的决定。协调者给所有参与者发送准备提交消息,并进入等待状态。所有参与者给予回复:建议提交,或建议撤销,只要有一个节点选择撤销,那么久撤销事务,否则就执行事务。
2)执行阶段
目的是实现这个协调者的决定。根据协调者的指令,参与者或者提交事务,或者撤销事务,并给协调者发送确认消息。
两阶段提交协议2PC不能解决当前的问题。
1)分布式数据库遵循的是CAP原则,会在一定程度上牺牲一致性。
2)大多数NOSQL数据库不支持2PC
3)分布式两阶段提交协议 2PC 一般针对的对象在逻辑上是一个整体,对某一个整体事务需要在多个物理节点上执行时,进行表决和执行,对多个数据库的不同服务并不是很合适。
【问题2我的解答】
a)未支付✓
b)支付服务✓
c)支付信息✓
d)已支付✓
【问题3标准答案】
使用本地事务发布事件:由一个独立进程来发布事件,具体来说就是在存储业务实体状态的数据库当中,使用一个事件表来充当消息队列。
应用启动一个本地数据库事务,更新业务实体状态,在事件中插入一个事件,并提交该事务,一个独立的消息发布线程或进程查找该事件表,将事件发布到消息代理,并标注该事件为已发布。
缺点:
由于开发者必须牢记发布事件,因此有很大可能出错。此外这一方法对于某些使用 NoSQL 数据库的应用是个挑战,因为 NoSQL 本身交易和查询能力有限。
2022上案例分析历年真题第五题(25分)
试题五(共25分)
阅读以下关于 web 系统设计的叙述,在答题纸上回答问题1至问题3。
某公司拟开发一个食品供应链溯源系统,该系统需要提供从原材料供应商、加工商、物流、分销商、零售商、消费者的食品供应链全流程溯源。该公司组建了项目组,并召开了项目开发讨论会。会上,张工提出通过二维码扫描获取食品信息,采用中心化数据库作为数据存储媒介;李工提出使用中心化数据库容易产生数据信任、溯源追责困难等问题,建议建立区块链和数据库的映射存储,提供存储和查询操作功能,并提出采用数据接入层、数据核心层、应用表示层三层体系架构实现该食品溯源系统。
【问题1】(6分)
去中心化和开放性是区块链的重要特征,请用200字以内的文字简要说明什么是区块链的去中心化和开放性。
【问题2】(7分)
分布式交易账本、哈希散列函数、公私钥签名、时间戳就是区块链的核心技术,请从上述技术中选择两种最适合解决数据信任问题的技术,并用300字以内的文字说明原因。**
【问题3】(12分)
根据李工的建议,该系统将采用三层架构。请从下面给出的(a)~(m)候选项中进行选择,补充完善图5-1中(1)~(6)处空白的内容,完成该系统的架构设计方案。
【问题1我的解答】
1)去中心化
就是同一个数据存放在多个物理位置,即使某一个物理位置数据的存储出现问题,我们可以从另一个数据节点获取数据,也就是取消了中心节点。
2)开放性
区块链当中任意一个节点的存储的数据都是对外开放的。为数据的存储和查询提供了方便
【问题1标准答案】
1)去中心化
区块链采用了分布式计算和存储,不存在中心化的硬件和管理机构。因此使得任意节点的权利和义务都是均等的。
2)开放性
区块链的系统是一个开放性质的,除了交易各方的私有信息被加密外,区块链的数据对所有人公开的。
【问题2我的解答】
哈希散列函数和公私钥签名。
1)公私钥签名
该项技术可以在区块链当中有效的保护交易等私密数据。同时通过签名可以验证区块链中的节点是可靠的可以信任的。
2)哈希散列函数
使用哈希散列函数来生成信息摘要,保证信息在传输过程中的完整性。
【问题2标准答案】
是分布式交易账本和公私钥签名
1)分布式交易账本
它使交易账本在全网不止一份,而是有多份。当有人想篡改账本的时候,非常难以实现,所以能够解决数据可信度的问题。
2)公私钥签名
它使用非对称加密机制做签名,以验证持有人以及防止伪造的效果,这种技术也极难被破解,能验证持有人自然能请一定程度解决数据可信度的问题。
【问题3我的解答】
1)a数据接入层✓
2)c Socket❌
3)g MVC❌
4)b 智能合约❌
5)m业务逻辑层❌
6)e应用表示层✓
【问题3标准答案】
1)a数据接入层
2)k 4G/Wifi
3)b 智能合约
4)f 数据库
5)h 数据核心层
6)e应用表示层
【概念解析】
区块链的特点
1、去中心化
区块链采用了分布式计算和存储,不存在中心化的硬件或管理机构,因此使得任意节点的权利和义务都是均等的。
2、开放性
区块链的系统的一个开放性质的,除了交易各方的私有信息被加密外,区块链上的数据对所有人都是开放的。
3.自治性
在区块链当中,任何人为的干预都是不起作用的。将对人的信任改成对机器的信任。
4.信息不可篡改
在区块链中一旦信息经过验证并添加至区块之后,就会存储起来无法进行修改。
区块链的概率主要就是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
区块链主要可以分为交易,区块,链。
区块是用来记录一段时间内发生的交易和状态结果。
链是由一个个区块按照发生顺序串联而成,是整个状态变化的日志记录。
区块链技术作为当下被推崇的一门技术主要有点是分布式记账,全流程记录,不可篡改性和加密技术。在区块链当中必须遵循同一记账交易规则,基于密码的算法同时每笔交易需要网络内其他用户的批准。核心分布式去中心化。
区块链不了篡改和加密安全性采取了单项哈希算法,时间的不可逆性导致任何试图入侵篡改区块链内数据信息的行为都很容易被追溯,提高了对应的安全性。