问题1(6分)
1.数据流图:
特点:是表达系统内数据的流动并通过数据流描述系统功能数据的一种方法。强调系统中的数据流动。由数据流、外部实体、加工、数据存储组成。
适用场景:SA方法中的重要工具,为系统做功能建模。
2.活动图:
特点:将进程或其他计算结构展示为计算内部一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。
适用场景:面向对象分析与设计建模。
3.流程图:
特点:反映现有系统各部门的业务处理过程和它们之间的业务分工与联系,以及连接各部门的物流、信息流的传递和流动关系。是描述业务处理过程的方法。
适用场景:结构化需求分析与结构化设计,为系统梳理业务流程。
问题2(9分)
(1)(a) (2)(d) (3)(b) (4)(c) (5)(g) (6)(h)
问题3(10分)
1.需求评审的内容:
(1)需求规格说明书正确地描述了预期的、满足项目干系人需求的系统行为和特征。
(2)需求规格说明书中的软件需求是从系统需求、业务规格和其他来源中正确推导而来的。
(3)需求是完整的和高质量的。
(4)需求的表示在所有地方都是一致的。
(5)需求为继续进行系统设计、实现和测试提供了足够的基础。
2.需求评审的作用
1.发现遗漏的需求;
2.发现用户没有达成共识的需求;
3.发现二义性需求;
4.降低因需求不一致带来的风险,提高软件质量。
试题二(共25分)问题1(11分)
实体类:实体对象的抽象,通常来自域模型(现实世界),用来描述具体的实体,通常映射到数据库表格与文件中。案例中的员工、请假单是实体类。 边界类:边界对象的抽象,通常是用来完成参与者(用户、外部系统)与系统之间交互的对象,例如:From、对话框、菜单、接口等。案例中的请假申请页面,请假批准单是边界类。 控制类:控制对象的抽象,主要用来体现应用程序的执行逻辑,将其抽象出来,可以使变化不影响用户界面和数据库中的表。案例中的提交请假、审核批准是控制类。 问题2(6分)
泛化描述了一般元素和特殊元素之间的关系,是父类和子类之间的关系。员工,部门经理的关系就是泛化关系。
关联关系描述了给定类的单独对象之间语义上的连接。关联提供了不同类之间的对象可以相互作用的连接。员工与请假记录之间的关系就是关联关系。
问题3(8分)
(a)部门经理拒绝请假申请 (b)请假天数大于3天
(c)副总经理拒绝请假申请 (d)请假天数小于等于3天
试题三(共25分)问题1(10分)
基于模型的系统工程(MBSE)是一种形式化的方法,用于支持与复杂系统的开发相关的需求,设计,分析,验证和确认。与以文档为中心的工程,MBSE将模型放在系统设计的中心。MBSE是向以模型为中⼼的⼀系列⽅法转变这⼀长期趋势的⼀部分,这些⽅法被应⽤于机械、电⼦和软件等⼯程领域,以期望取代原来系统⼯程师们所擅长的以⽂档为中⼼的⽅法,并通过完全融⼊系统⼯程过程来影响未来系统⼯程的实践。
基于文档的设计方法的局限性主要有:
(1)在基于文档的方法中,许多文档是由不同的作者生成的,以从各种利益相关者的观点(例如系统行为,软件,硬件,安全,安全性或其他学科)中捕获系统的设计。不利于利益相关者之间的沟通,容易产生歧义。
(2)开发复杂系统的能力有限,基于⽂本的设计⽅案⽆法进⾏前期仿真验证。
(3)自然语言容易引入形容词等模糊描述,很难保证准确性。
问题2(9分)
正确的描述是“描述2”。
描述1是对RUP-SE方法的描述。
描述3是对vitech MBSE方法的描述。
根据王工对MBSE的研究,RUP-SE是一种面向对象的设计方法,vitech MBSE方法是一种并行系统,并不满足宇航系统所要求的高安全性和强调验证性的要求。而Harmony-SE建模方法是贯穿系统研发的整个生命周期,用于支持与复杂系统的开发相关的需求、设计、分析、验证和确认。符合宇航系统所描述的安全性和验证性的要求。
问题3(6分)
(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。
试题四(共25分)问题1(7分)
1.两阶段提交协议(2PC)可以保证数据的强一致性,许多分布式关系型数据管理系统采用此协议来完成分布式事务。它是协调所有分布式原子事务参与者,并决定提交或取消(回滚)的分布式算法。同时也是解决一致性问题的一致性算法。两阶段提交协议由两个阶段组成。
(1)阶段1:请求阶段(prepare 阶段,或称表决阶段)在请求阶段,协调者将通知事务参与者准备提交或取消事务,然后进入表决过程。在表决过程中,参与者将告知协调者自己的决策:同意(事务参与者本地作业执行成功)或取消(本地作业执行故障)。
(2)阶段2:提交阶段(commit 阶段)在该阶段,协调者将基于第一个阶段的投票结果进行决策:提交或取消。当且仅当所有的参与者同意提交事务协调者才通知所有的参与者提交事务,否则协调者将通知所有的参与者取消事务。参与者在接收到协调者发来的消息后将执行响应的操作。
2.两阶段提交协议2PC不能解决当前问题。
(1)分布式数据库遵循的是CAP 原则,会在一定程度上牺牲一致性。
(2)大多数 NoSQL 数据库并不支持 2PC。
(3)分布式两阶段提交协议2PC一般针对的对象在逻辑上是一个整体,对某一个整体事务需要在多个物理节点上执行时,进行表决和执行,对多个数据库的不同服务并不是很合适。
问题2(8分)
(a) 未支付 (b) 支付服务 (c) 支付信息 (d) 已支付
问题3(10分)
在数据库中有一张 EVENT 表(模拟消息队列),存储业务数据的状态。首先启动一个本地数据库事务,更新业务数据记录并往 EVENT 表中插入一条数据,最后提交事务。一个单独的线程会轮询 EVENT 表,将查询结果往 MQ 中发送事件消息,然后使用本地事务标注事件状态为已发布。
不足:
易出错,因为要求开发者必须记得更新后去发布事件;
当使用 NoSQL 时,因为 NoSQL 的事务和查询能力有限,实现起来较麻烦。
试题五(共25分)问题1(6分)
去中心化:其使用分布式储存与算力,整个网络节点的权利与义务相同,系统中数据本质为全网节点共同维护,从而区块链不再依靠于中央处理节点,实现数据的分布式存储、记录与更新。
开放性:区块链技术基础是开源的。除开交易双方的私有信息内容被加密外,区块链的数据信息对所有人开放,任何一个人都能够利用公开的接口查看区块链数据信息和开发设计相关的应用,为此区块链整个系统信息可以认为高度透明的。
问题2(7分)
分布式交易账本、公私钥签名
分布式交易账本是一种在网络成员之间共享、复制和同步的数据库,记录网络参与者之间的交易。网络中的参与者根据共识原则,来制约和协商账本中的记录的更新。分布式账本中的每条记录都有一个时间戳和唯一的密码签名,这样的账本成为了网络中所有交易的可审计的历史记录。所以能解决数据可信度问题。
公私钥签名是使用非对称加密机制,做签名,以验证持有人以及防止伪造。所以能解决数据可信度的问题。
问题3(12分)
(1)(a)或数据接入层
(2)(k)或4G/Wifi
(3)(b)或智能合约
(4)(f)或数据库
(5)(h)或数据核心层
(6)(e)或应用表示层