请点击↑关注、收藏,本博客免费为你获取精彩知识分享!有惊喜哟!!
试题一是必答题
阅读以下关于软件架构设计与评估的叙述,在答题纸上回答问题1和问题2。
【说明】
某电子商务公司拟升级其会员与促销管理系统,向用户提供个性化服务,提高用户的粘性。在项目立项之初,公司领导层一致认为本次升级的主要目标是提升会员管理方式的灵活性,由于当前用户规模不大,业务也相对简单,系统性能方面不做过多考虑。新系统除了保持现有的四级固定会员制度外,还需要根据用户的消费金额、偏好、重复性等相关特征动态调整商品的折扣力度,并支持在特定的活动周期内主动筛选与活动主题高度相关的用户集合,提供个性化的打折促销活动。
在需求分析与架构设计阶段,公司提出的需求和质量属性描述如下:
(a)管理员能够在页面上灵活设置折扣力度规则和促销活动逻辑,设置后即可生效;
(b)系统应该具备完整的安全防护措施,支持对恶意行为进行检测与报警;
(c)在正常负载情况下,系统应在0.3秒内对用户的界面操作请求进行响应;
(d)用户名是系统唯一标识,要求以字母开头,由数字和字母组合而成,长度不少于6个字符;
(e)在正常负载情况下,用户支付商品费用后在3秒内确认订单支付信息;
(f)系统主站点电力中断后,应在5秒内将请求重定向到备用站点;
(g)系统支持横向存储扩展,要求在2人天内完成所有的扩展与测试工作;
(h)系统宕机后,需要在10秒内感知错误,并自动启动热备份系统;
(i)系统需要内置接口函数,支持开发团队进行功能调试与系统诊断;
(j)系统需要为所有的用户操作行为进行详细记录,便于后期查阅与审计;
(k)支持对系统的外观进行调整和配置,调整工作需要在4人天内完成。
在对系统需求、质量属性描述和架构特性进行分析础上,系统架构师给出了两种候选的架构设计方案我司目前正在组织相关专家对系统架构进行评估。
【问题1】(12分)
在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请将合适的质量属性名称填入图1-1中(1)、(2)白处,并选择题干描述的(a)~(k)填入(3)~(6)空白处,完成该系统的效用树。
【问题2】(13分)
针对该系统的功能,李工建议采用面向对象的架构风格,将折扣力度计算和用户筛选分别封装为独立对象,通过对象调用实现对应的功能;王工则建议采用解释器(interpreters)架构风格,将折扣力度计算用户筛选条件封装为独立的规则,通过解释规则实现对应的功能。请针对系统的主要功能,从折扣规则可修改性、个性化折扣定义灵活性和系统性能三个方面对这两种架构风格进行比较与分析,并指出该系更适合采用哪种架构风格。
解析
【问题1】
(1)安全性(2)可修改性 (3)(e) (4)(j) (5)(h) (6)(k)
【问题2】
应该选择解释器架构风格。
折扣规则的可修改性:解释器风格比面向对象方式实现强。因为解释器风格折扣规则是独立的语法规则,由解释器可对变化的规则进行解析,修改更容易。而面向对象相对固定,有变化需要修改具体的类。
个性化折扣定义灵活性:解释器强于面向对象,解释器可以根据用户灵活解释执行规则,做到千人千面。
系统性能:面向对象优于解释器。面向对象的实现相对固定,而解释器是运行期动态绑定执行。
试题二
【说明】
煤炭生产是国民经济发展的主要领域之一,其煤矿的安全非常重要。某能源企业拟开发一套煤矿建设项目安全预警系统,以保护煤矿建设项目从业人员生命安全。本系统的主要功能包括如下(a)~(h)所述。
(a)项目信息维护
(b)影响因素录入
(c)关联事故录入
(d)安全评价得分
(e)项目指标预警分析
(f)项目指标填报
(g)项目指标审核
(h)项目指标确认
【问题1】(9分)
王工根据煤矿建设项目安全预警系统的功能设计完成了系统的数据流图,如图2-1所示。请使用题干中描述的功能(a)~(h),补充完善空(1)~(6)处的内容,并简要介绍数据流图在分层细化过程中遵循的数据平衡原则。
【问题2】(9分)
请根据【问题1】中数据流图表示的相关信息,补充完善煤矿建设项目安全预警系统总体E-R图(见图2-2)中实体(1)~(6)的具体内容,将正确答案填在答题纸上。
【问题3】(7分)
在结构化分析和设计过程中,数据流图和数据字典常用的技术手段,请用200字以内的文字简要说明它们在软件需求分析和设计阶段的作用。
解析
【问题1】
(1)f (2)g (3)h (4)d (5)b (6)e
分层细化的数据平衡原则:
1、子图与父图之间的平衡:
(1)父图与子图之间平衡是指任何一张DFD子图边界上的输入/输出数据流必须与其父图对应加工的输入/输出数据流保持一致。
(2)如果父图中某个加工的一条数据流对应于子图中的几条数据流,而子图中组成这些数据流的数据项全体正好等于父图中的这条数据流,那么它们仍然是平衡的。
2、子图内部:加工的输入和输出需要平衡。
【问题2】
(1)项目管理员(2)项目经理
(3)项目指标数据(4)~(6)指标参数、项目信息、事故及影响因素参数
【问题3】
数据流图分析阶段:建立系统的功能模型,从而完成需求分析。
数据流图设计阶段:为模块划分与模块之间接口设计提供依据。
数据字典在分析与设计阶段的作用为:
是所有人员工作的依据,统一的标准。它可以确保数据在系统中的完整性和一致性。
具体作用包括:按各种要求列表、相互参照、由描述内容检索名称、一致性检验和完整性检验。
试题四
【说明】
某大型电商平台建立了一个在线B2B商店系统,并在全国多地建设了货物仓储中心,通过提前备货的方式来提高货物的运送效率。但是在运营过程中,发现会出现很多跨仓储中心调货从而延误货物运送的情况。为此,该企业计划新建立一个全国仓储货物管理系统,在实现仓储中心常规管理功能之外,通过对在线B2B商店系统中订单信息进行及时的分析和挖掘,并通过大数据分析预测各地仓储中心中各类货物的配置数量,从而提高运送效率,降低成本。
当用户通过在线B2B商店系统选购货物时,全国仓储货物管理系统会通过该用户所在地址、商品类别以及仓储中心的货物信息和地址,实时为用户订单反馈货物起运地(某仓储中心)并预测送达时间。反馈送达时间的响应时间应小于1秒。
为满足反馈送达时间功能的性能要求,设计团队建议在全国仓储货物管理系统中采用数据缓存集群的方式,将仓储中心基本信息、商品类别以及库存数量放置在内存的缓存中,而仓储中心的其它商品信息则存储在数据库系统。
【问题1】(9分)
设计团队在讨论缓存和数据库的数据一致性问题时,李工建议采取数据实时同步更新方案,而张工则建议采用数据异步准实时更新方案。
请用200字以内的文字,简要介绍两种方案的基本思路,说明全国仓储货物管理系统应该采用哪种方案,并说明采取该方案的原因。
【问题2】(9分)
随着业务的发展,仓储中心以及商品的数量日益增加,需要对集群部署多个缓存节点,提高缓存的处理能力。李工建议采用缓存分片方法,把缓存的数据拆分到多个节点分别存储,减轻单个缓存节点的访问压力,达到分流效果。
缓存分片方法常用的有哈希算法和一致性哈希算法,李工建议采用一致性哈希算法来进行分片。请用200字以内的文字简要说明两种算法的基本原理,并说明李工采用一致性哈希算法的原因。
【问题3】(7分)
全国仓储货物管理系统开发完成,在运营一段时间后,系统维护人员发现大量黑客故意发起非法的商品送达时间查询请求,造成了缓存击穿。张工建议尽快采用布隆过滤器方法解决。请用200字以内的文字解释布隆过滤器的工作原理和优缺点。
答案解析
【问题1】
实时方案:当数据库数据更新时,同时更新内存的缓存数据。
异步准实时更新方案:当数据库数据更新时,不立即更新缓存数据,而是将需要更新的操作记录成日志,再逐步排队完成更新。
本题中,建议采用准实时方案,理由是:题目中对性能有严格要求,要求1s内完成。实时同步方案最大的问题在于同步并发时的性能不可控。所以准实时方案才能确保该要求能实现。
【问题2】
哈希分片:通过对key进行hash操作,可以把数据分配到不同实例,这类似于取余操作,余数相同的,放在一个实例上。
一致性哈希分片:哈希分片的改进,把存储结点和需要存储的数据都存放在一个hash环上,数据根据hash值在hash环上按正时针方向找到对应的数据存储结点上。
一致性哈希分片的方式在扩充缓存结点时,只需要对少量数据进行存储位置的更新,而哈希分片需要对几乎所有数据进行存储位置更新。
【问题3】
布隆过滤器通过一个很长的二进制向量和一系列随机映射函数来记录与识别某个数据是否在一个集合中。如果数据不在集合中,能被识别出来,不需要到数据库中进行查找,所以能将数据库查询返回值为空的查询过滤掉。
优点:
1、占用内存小
2、查询效率高
3、不需要存储元素本身,在某些对保密要求比较严格的场合有很大优势
缺点:
1、有一定的误判率,即存在假阳性,不能准确判断元素是否在集合中。
2、不能获取元素本身
3、一般情况下不能从布隆过滤器中删除元素
试题五
阅读以下关于Web系统架构设计的描述,在答题纸上回答问题1至问题3
某公司拟开发一套基于边缘计算的智能门禁系统,用于如园区、新零售、工业现场等存在来访、被访业务的场景。来访者在来访前,可以通过线上提前预约的方式将自己的个人信息记录在后台,被访者在系统中通过如此请求后,来访者在到访时可以直接通过“刷脸”的方式通过门禁,无需做其他验证。此外,系统的管理员可以对正在运行的门禁设备进行管理。
基于项目需求,该公司组建项目组,召开了项目讨论会。会上,张工根据业务需求并结合边缘计算的思想,提出本系统可由访客注册模块、模型训练模块、端侧识别模块与设备调度平台模块等四项功能组成,李工从技术层面提出该系统可使用Flash框架与SSM框架为基础来开发后台服务器,将开发好的系统通过Docker进行部署,并使用MQTT协议对Docker进行管理。
问题1(5分)
MQTT协议在工业物联网得到广泛的应用,请用300字以内的文字简要说明MQTT协议。
参考答案
MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,
旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。
MQTT是专门针对物联网开发的轻量级传输协议。
MQTT协议针对低带宽网络,低计算能力的设备,做了特殊的优化,使得其能适应各种物联网应用场景。
目前,MQTT拥有各种平台和设备上的客户端,已经形成了初步的生态系统。
问题2(14分)
在会议上,张工对功能模块进行了更进一步的说明:访客注册模块用于来访者提交申请与被访者确认申请,主要处理提交来访申请、来访申请审核业务,同时保存访客数据,为训练模块准备训练数据集:模型训练模块用于使用访客数据进行模型训练,为端侧设备的识别业务提供模型基础;端侧识别模块在边缘门禁设备上运行,使用训练好的模型来识别来访人员,与云端服务协作完成访客来访的完整业务;设备调度平台模块用于对边缘门禁设备进行管理,管理人员能够使用平台对边缘设备进行调度管理与状态监控,实现云端协同。
图5-1给出了基于边缘计算的智能门禁系统架构图,请结合HTTP协议和MQTT协议的特点,为图5-1中(1)~(6)处选择合适的协议;并结合张工关于功能模块的描述,补充完善图5-1中(7)~(10)处的空白。
参考答案
1.http
2.http
3.mqtt
4.http
5.http
6.http
7.端侧识别模块
8.模型训练模块
9.设备调度平台模块
10.访客注册模块
问题3(6分)
请用300字以内的文字,从数据通信、数据安全和系统性能等方面简要分析在传统云计算模型中引入边缘计算模型的优势。
参考答案
1、速度:如果使用边缘计算,则物联网设备将在边缘数据中心或者本地处理处理数据。因此,数据无需传输回中央服务器,速度优势明显;
2、安全:边缘计算将在不同的数据中心和设备之间分配数据处理工作。黑客无法通过攻击一台设备来影响整个网络;
3、可扩展性:通过购买具有足够计算能力的设备来扩展边缘网络。企业无需为其数据需求建立自己的私有或集中式数据中心;
4、可靠性:所有的边缘计算中心和物联网设备都位于用户附近。因此,网络中断的可能性非常小。
以上答案也是仅供参考
2021年的案例真题
对应是真题2,3
真题二
某商校拟开发一套图书馆管理系统,在系统分析阶段,系统分析师整理的核心业务流程与需求如下:
系统为每个读者建立一个账户,并给读者发放读者证(包含读者证号、读者姓名),账户中存储读者的个人信息、借阅信息以及预订信息等,挂有读者正可以借阅图书、返还图书、查询图书信息、预订图书、取消预订等。
在借阅图书时,需要输入读者所借阅的图书名、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】
张工的方案在进行集成时,只是将原有的系统做了简单的对接,应把原来的业务功能模块拆分并做成服务,以单个服务的形式使用企业服务总线做集成。
真题三考察的内容稍微有点软件架构的知识了,SOA的内容,以及主题数据库的内容,还是挺有难度的。
2020年的案例真题
对应真题1,2
真题一
1、阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】
某软件企业拟采用面向对象方法开发一套体育用品在线销售系统,在系统分析阶段,“提交订单”用例详细描述如表1-1所示。
[问题1] (9分)
面向对象系统开发中,实体对象、控制对象和接口对象的含义是什么?
[问题2] (10分)
面向对象系统分析与建模中,从潜在候选对象中筛选系统业务对象的原则有哪些?
[问题3] (6分)
根据题目所示“提交订单”用例详细描述,可以识别出哪些业务对象?
答案解析:
【问题1】
(1)实体对象:用来表示业务域的事实数据并需要持久化存储的对象类型;
(2)控制对象:用来表示业务系统中应用逻辑和业务规则的对象类型;
(3)接口对象:用来表示用户与系统之间交互方式的对象类型。
【问题2】
(1)去除相同含义的对象;
(2)去除不属于系统范围内的对象:
(3)去除没有特定独立行为的对象:
(4)去除含义解释不清楚的对象;
(5)去除属于另一个对象属性或行为的对象。
【问题3】
会员、商品、购物车、订单、配送信息、支付记录。
2020年的真题跟2022年的真题考察内容有重复的,那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]
各省已建的银行中间业务系统属于遗留系统,在如何对待遗留系统上,设计组存在两种不同的策略:淘汰策略和继承策略。请简要解释这两种策略,并说明新开发的银行中间业务系统适合采用哪种策略及其原因。
[问题2]
遗留系统和新系统之间的转换策略常见的有直接转换、并行转换和分段转换。请简要说明达三种转换策略的含义;并请结合银行中间业务的特点,说明该银行新开发的中间业务系统上线时适合采用哪种策略?为什么?
[问题3]
银行中间业务系统中,最为核心的是业务数据。因此在新旧系统切换时存在一项重要的工作:数据迁移。考虑到各省中间业务系统的巨大差异,因此需要做好数据迁移前的准备工作。请简要说明数据迁移准备工作的内容。
答案解析:
【问题1】
(1) 淘汰策略:遗留系统的技术含量低,具有较低的业务价值,因此需要全面重新开发新系统以替代遗留系统;一般是企业的业务发生了根本变化,遗留系统已经基本上不再适应企业运作的需要;或者是遗留系统的维护人员流失,维护文档资料丢失。评价后发现,开发新系统比维护与改造旧系统从成本上更经济合算。
(2) 继承策略:遗留系统技术含量低,已经满足企业运作的功能或性能要求,但有较高的业务价值,目前企业的业务尚需依赖该遗留系统。因此开发系统替代遗留系统时,需要完全兼容遗留系统的功能模型和数据模型。
适合采用的是继承策略。因为全国中心需要管理银行的全国中间业务,而目前的省中心系统从技术上不满足全国中心的需求,需要重新开发新的银行中间业务系统;同时,新系统必须支持当前各省的所有中间业务,因此必须完全兼容各省的功能模型和数据模型。
【问题2】
直接转换就是在原有系统停止运行的某一时刻,新系统立即投入运行,中间没有过渡阶段。并行转换就是新系统和现有系统并行工作一段时间,经过这段时间的试运行后,再用新系统正式替换下现有系统。分段转换策略也称为逐步转换策略,这种转换方式是直接转换方式和并行转换方式的结合,采取分期分批逐步转换。
该银行适合采用分段转换策略。一般比较大的系统采用这种方式较为适宜,它能保证平稳运行,费用也不太高;或者现有系统比较稳定,能够适应自身业务发展需要,或新旧系统转换风险很大,也可以采用分段转换策略。
【问题3】
要做好以下7个方面的工作:
(1) 待迁移数据源的详细说明,包括数据的存放方式、数据量和数据的时间跨度。
(2) 建立新旧系统数据库的数据字典,对现有系统的历史数据进行质量分析,以及新旧系统数据结构的差异分析。
(3) 新旧系统代码数据的差异分析。
(4) 建立新旧系统数据库表的映射关系,对无法映射字段的处理方法。
(5) 开发或购买、部署ETL工具。
(6) 编写数据转换的测试计划和校验程序。
(7) 制定数据转换的应急措施。
2013年的案例真题
真题五
某企业两年前自主研发的消防集中控制软件系统在市场上取得了较好的业绩,目前已成功应用到国内外众多企业用户的消防管理控制系统中。该软件系统通过不同型号消防控制器连接各种消防器件,实现集中式消防告警信息显示与控制。该软件系统的系统维护主管组织,对近期收集到的该软件系统的如下维护申请进行了讨论:
(1)将系统目前的专用报表功能改成通用报表生成功能,以适应未来用户可能提出的报表格式变化需求;
(2)在界面语言中增加德文支持,以满足新增的两个德国企业用户的使用要求;
(3)修正系统在与控制器通信时由于硬件网络故障导致的与控制器之间的连接失效,而控制器后续无法重新连接的问题;
(4)完成因某已支持型号消防控制器通信协议改变而导致的相应软件修改;
(5)增加与某新型号消防控制器的互连通信功能,以支持在后续推广过程中与该型号消防控制器进行互连;
(6)修正用户报告的由于系统从Win7平台迁移到最新发布的Win8平台而导致的部分显示功能失效的问题;
(7)修正用户报告的系统自动切换消防平面图形时部分器件位置显示错误的问题;
(8)改进系统历史消防告警记录的检索算法,以提高系统在处理大量消防报警记录时的效率;
(9)将系统目前针对某一特定数据库管理系统的数据库访问方式改成基于数据源的通用数据库访问方式,以适应用户可能提出的使用其他数据库管理系统的需求。
[问题1]
软件维护的内容通常分为正确性维护、适应性维护、完善性维护以及预防性维护四类,请用300字以内文字说明这4类软件维护内容的特点与区别。
[问题2]
请根据不同类型软件维护的特点,将上述(1)〜(9)的维护申请填入表5-1相应的类别中。
[问题3]
对于软件维护申请的处理,首先需要确定维护工作的类型,不同类型的维护工作,其处理流程往往不同,图5-1是区分不同维护类型的典型处理流程,请将表5-1中代表维护类型的序号(1)〜(4)填入图5-1的(a)〜(d)。
[问题4]
在讨论第(4)项维护工作的方案时,项目组发现与相应的消防控制器通信的子模块重用了企业之前淘汰的某款软件中实现相应功能的源代码,而现有技术人员没有参加过该代码的开发工作,并且重用的这部分代码开发不规范,其数据和代码结构设计都很差,相应的文档极不完整,维护记录也很简略。针对上述情况,项目组一致认为在原有代码基础上进行修改维护难度很大,因此决定采用软件工程的方法对该子模块进行重新设计、编码和测试,请从可行性和该模块后续可维护性两个方面简要分析采取这种方案的原因。
答案解析:
【问题1】
正确性维护:指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。
适应性维护:指使应用软件适应信息技术变化和管理需求变化而进行的修改。
完善性维护:指为扩充功能和改善性能而进行的修改,主要是指对己有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。
预防性维护:指为了改进应用软件的可靠性和可维护性,为了适应未来的软硬件环境的变化,应主动增加预防性的新的功能,以使应用系统适应各类变化而不被淘汰。
注意区分正确性维护之外其他三种维护内容的差异,其中适应性维护指应用软件适应信息技术变化和管理需求变化而进行的修改,通常不涉及软件功能的扩充;而完善性维护指为扩充功能和改善性能而进行的修改,通常是指软件在投入使用并正常运行的过程中,针对用户提出的增加新功能、修改现有功能等要求进行的维护;预防性维护则指改进软件未来的可靠性或可维护性,或者为了给未来的改进提供更好的基础而对软件进行的修改。
【问题2】
维护申请(1)和(9)是为了提高软件未来的可维护性而需要进行的修改,分别通过修改报表生成模式及数据库访问方式,提高软件系统未来的可维护性,以适应未来用户可能提出的需求变化,因此应属于预防性维护。维护申请(2)、(5)和(8)均与软件使用过程中出现的新需求有关,(2)和(5)均涉及软件原设计中未包含的新功能需求,(8)则属于为改善性能而需进行的修改,且它们均和改进软件未来的可维护性或可靠性无关,因此这三项维护申请应属于完善性维护。维护申请(3)和(7)均与软件使用过程中发现的软件错误有关,因此应属于正确性维护。维护申请(4)和(6) 分别是由于控制器部件更新和操作系统升级而需要进行的修改,均是为了适应新的软硬件环境变化而进行的修改,因此应属于适应性维护。
【问题3】
(a) (2),(b) (3),(c) (4),(d) (1),((b)与(c)可互换)
其中正确性维护需要首先评价错误的严重程度,如果错误非常严重(例如某个关键功能不能运行),则应立即进行维护实施,若错误不严重,则要与其他软件开发任务一起,统一安排实施,因此图5-1中的(d)应填(1);与正确性维护类似,适应性维护申请因为涉及软件现有功能是否能够正常使用,因此一旦确认通常也是必须进行实施的,但适应性维护首先应评价维护申请并进行优先次序的分类,然后统一进行维护实施,因此图5-1中的(a)应填(2);而对于完善性维护与预防性维护,出于对商业策略、当今和今后软件产品方向等方面的考虑,不是所有的完善性维护或预防性维护都会被接受,因此需要对维护申请进行进一步评估和分类,以确定是否接受申请并进行维护实施。对于未被接受的完善性维护或预防性维护申请,直接通知申请者;对于接受的申请,评定优先次序后统一进行实施。因此图5-1中的(b)和(c)应分别填(3)和(4)。
【问题4】
可行性:以已有目前可以运行的软件作为参考,重新开发的生产率应大大高于平均值;目前已经拥有使用该软件的经验,所以能够容易地确定新的需求和修改方向;从软件代码开发与维护的角度看,重新编写新代码的费用可能远低于维护现有文档不齐全的代码的费用。
后续可维护性:使用现代的设计概念,重新设计软件结构,能够极大地方便今后的维护;此外采用软件工程的方法进行重新设计、编码和测试,可以形成完整的软件文档,也便于后续的软件维护。
这里再给大伙汇总下知识点:
遗漏系统
遗留系统是指任何基本上不能进行修改和演化以满足新的变化了的业务需求的信息系统,它通常具有以下特点:
(1)系统虽然完成企业中许多重要的业务管理工作,但仍然不能完全满足要求。一般实现业务处理电子化及部分企业管理功能,很少涉及经营决策。
(2)系统在性能上已经落后,采用的技术已经过时。例如,多采用主机/终端形式或小型机系统软件使用汇编语言或第三代程序设计语言的早期版本开发,使用文件系统而不是数据库。
(3)通常是大型的软件系统,已经融入企业的业务运作和决策管理机制之中,维护工作十分困难。
(4)没有使用现代信息系统建设方法进行管理和开发,现在基本上已经没有文档,很难理解。
遗漏系统的演化策略
关于淘汰策略,集成策略,继承策略,改造策略的特点。
新老系统转换
直接转换,并行转换,分段转换,概念以及优缺点?
数据转换与迁移三种方法: 系统切换前通过工具迁移、系统切换前采用手工录入、系统切换后通过新系统生成。
ETL: 抽取-转换-装载
数据迁移前的准备工作:
(1)待迁移数据源的详细说明,包括数据的存放方式、数据量和数据的时间跨度。
(2)建立新旧系统数据的数据字典,对现有系统的历史数据进行质量分析,以及新旧系统数据结构的差异分析。
(3)新旧系统代码数据的差异分析。
(4)建立新旧系统数据库表的映射关系,对无法映射字段的处理方法。
(5)开发或购买、部署ETL 工具。
(6)编写数据转换的测试计划和校验程序。
(7)制定数据转换的应急措施。
可维护性的评价指标
(1)分析性。软件产品软中的陷失效原因或别待修改部分的能力。
(2)易改变性。软件产品使指定的修改可以被实现的能力,实现包括编码、设计和文档的更改。如果软件由最终用户修改,那么易改变性可能会影响易操作性。
(3)稳定性。软件产品避免由于软件修改而造成意外结果的能力。
(4)易测试性。软件产品使已修改软件能被确认的能力。
(5)维护性的依从性。软件产品遵循与维护性相关的标准或约定的能力。
软件维护的分类
(1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
(2)适应性维护。在使用过程中,外部环境(新的硬、软配数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
(3)完善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为完善性维护。
(4)预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。通常,预防性维护可定义为“把今天的方法学用于昨天的系统以满足明天的需要”。也就是说,采用先进的软件工程方法对需要维护的软件或软件中的某一部分(重新)进行设计、编码和测试。
软件维护的影响因素
业务因素,理解的局限性,对待维护的优先级问题,维护人员的积极性,测试的困难。(每个因素的概念也需要适当的理解下)
软件维护的工作流程
2022年下半年系统架构师论文题目
试题一 论基于构件的软件开发方法及其应用
基于构件的软件开发(Component-Based Software Development,CBSD)是一种基于分布对象技术、强调通过可复用构件设计与构造软件系统的软件复用途径。基于构件的软件系统中的构件可以是COTS(Commercial-Off-the-Shelf)构件,也可以是通过其它途径获得的构件(如自行开发)。CBSD将软件开发的重点从程序编写转移到了基于已有构件的组装,以更快地构造系统,减轻用来支持和升级大型系统所需要的维护负担,从而降低软件开发的费用。
问题内容:
请围绕“基于构件的软件开发方法及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目,以及你在其中所承担的主要工作。
2.详细论述基于构件的软件开发方法的主要过程。
3.结合你具体参与管理和开发的实际项目,请说明具体实施过程以及碰到的主要问题
试题二 论软件维护方法及其应用
软件维护是指在软件交付使用后,直至软件被淘汰的整个时间范围内,为了改正错误或满足新的需求而修改软件的活动。在软件系统运行过程中,软件需要维护的原因是多种多样的,根据维护的原因不同,可以将软件维护分为改正性维护、适应性维护、完善性维护和预防性维护。在维护的过程中,也需要对软件的可维护性进行度量。在软件外部,一般采用MTTR来度量软件的可维护性;在软件内部,可以通过度量软件的复杂性来间接度量软件的可维护性。据统计,软件维护阶段占整个软件生命周期60%以上的时间。因此,分析影响软件维护的因素,度量和提高软件的可维护性,就显得十分重要。
问题内容:
请围绕“软件维护方法及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目,以及你在其中所承担的主要工作。
2.详细论述影响软件维护工作的因素有哪些。
3.结合你具体参与管理和开发的实际项目,说明在具体维护过程中,如何度量软件的可维护性,说明具体的软件维护工作类型。
试题三 论区块链技术及应用
区块链作为一种分布式记账技术,目前已经被应用到了资产管理、物联网、医疗管理、政务监管等多个领域。从网络层面来讲,区块链是一个对等网络(Peer to Peer,P2P),网络中的节点地位对等,每个节点都保存完整的账本数据,系统的运行不依赖中心化节点,因此避免了中心化带来的单点故障问题。同时,区块链作为一个拜占庭容错的分布式系统,在存在少量恶意节点情况下可以作为一个整体对外提供稳定的服务。
问题内容:
请围绕“区块链技术及应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的软件项目以及你在其中所承担的主要工作。
2.区块链包含多种核心技术,请简要描述区块链的3种核心技术。
3.具体阐述你参与管理和开发的项目是如何应用区块链技术进行设计与实现。
试题四 论湖仓一体架构及其应用
随着5G、大数据、人工智能、物联网等技术的不断成熟,各行各业的业务场景日益复杂,企业数据呈现出大规模、多样性的特点,特别是非结构化数据呈现出爆发式增长趋势。在这一背景下,企业数据管理不再局限于传统的结构化OLTP(On-Line Transaction Processing)数据交易过程,而是提出了多样化、异质性数据的实时处理要求。传统的数据湖(Data Lake)在事务一致性及实时处理方面有所欠缺,而数据仓库(Data Warehouse)也无法应对高并发、多数据类型的处理。因此,支持事务一致性、提供高并发实时处理及分析能力的湖仓一体(LakeHouse)架构应运而生。湖仓一体架构在成本、灵活性、统一数据存储、多元数据分析等多方面具备优势,正逐步转化为下一代数据管理系统的核心竞争力。
问题内容:
请围绕“湖仓一体架构及其应用”论题,依次从以下三个方面进行论述。
1.概要叙述你参与管理和开发的、采用湖仓一体架构的软件项目以及你在其中所承担的主要工作。
2.请对湖仓一体架构进行总结与分析,给出其中四类关键特征,并简要对这四类关键特征的内涵进行阐述。
3,具体阐述你参与管理和开发的项目是如何采用湖仓一体架构的,并围绕上述四类关键特征,详细论述在项目设计与实现过程中遇到了哪些实际问题,是如何解决的。