架构案例分析

编程知识 更新时间:2023-04-28 13:25:58

架构师案例分析

<1> 嵌入式操作系统 3
<2> 系统可靠性 3
<3>应用系统数据架构 6
<4>数据库 7
<5>开发方法 9
<6>软件架构设计 11
<7>构件 13
<8>UML 15
<9>面向服务架构SOA 17
<10> 嵌入式 19
<十一> 数据库 22
<十二> 系统建模 24
<十三> 结构化分析 27
<十四>结构化分析 30
<十五>结构化分析 33
<十六>软件质量评估 36
<十七>数据架构(这个就算了) 39
<十八>经典架构 42
<十九>架构风格 47
<二十>质量属性 51
<二十一>架构风格 53
<二十二>开发方法 55
<二十三>mvc 58
<二十四>web 60
<二十五>系统质量属性 62
<二十六>mvc 64
<二十七>web 67
<二十八>质量属性 69
<二十九>软件质量属性 71
<三十>数据库 73
<三十一>微服务架构 75
<三十二>设计模式 77
<三十三>安全 79
<三十四>mvc 81
<三十五>数据库 83
<三十六>质量属性 85
<三十七>wbe和安全和嵌入式 87
<三十八>构件集成 91
<三十九>软件架构风格 93
<四十一>uml 95
<四十二>设计模式 95
<四十三>质量属性 99
<四十四>服务总线 102
<四十五>mvc 102
<四十六>开发进度 105
<47> REST风格 106
(48) Nosql 和关系数据库 107
(49) 架构风格 108
(50) Web 110
(51) 质量属性 113
(52) 微服务架构 115
(53) 持久层 117
(54) 质量属性 118

嵌入式操作系统

【问题1】请用450字以内文字简要说明王工提出的采用嵌入式实时操作系统的理由或优点,并说明选择操作系统产品时需要重点考虑其哪些功能与性能?
【问题2】李工和王工通过认真地对需求进行分析,给出了时间性能评估报告,判定在上述硬件平台上可以满足系统要求。请用300字以内文字简要说明嵌入式实时操作系统中时间性能评估中主要考虑哪几项因素;针对本课题的具体数据,叙述系统的工作时序关系。
【问题3】根据系统需求,请设计出系统的处理流程(按时序),说明所有任务的优先级分配策略,422接口、双口存储器、离散量接口和A/D (D/A)的数据输入输出方法(中断或查询驱动)及理由。请用350字以内文字简要说明。

系统可靠性

【问题1】请用200字以内文字说明系统可靠性的定义及包含的4个子特性,并简要指出提高系统可靠性一般采用哪些技术?

问题1:系统可靠性定义:系统在规定的时间内及规定的环境条件下,完成规定功能的能力,就是系统无故障运行的概率。
系统可靠性包括:成熟性、容错性、易恢复性和可靠性的依从性4个子特性。
提高系统可靠性一般采用以下4类技术:(1)冗余技术;(2)软件容错技术;(3)双机容错技术;(4)集群技术。

【问题2】请根据你对软件可靠性的理解,给出下表所列出的硬件可靠性特征与其对应的软件可靠性特征之间的差异或相似之处。

问题2:
(1)硬件会老化,软件不会改变
(2)硬件容易更换,软件更换存在需求的改变,存在bug
(3)硬件失效前会发出警告,软件不会

【问题三】
恢复块方法

应用系统数据架构

(1)内存数据库和关系数据库的比较*(从设计难度,数据冗余程度,数据架构,应用扩展)
数据结构需要符合需求设计难度大;可能存在相同的数据属性,数据冗余大;以应用程序为中心组织管理数据;数据独立于应用系统,容易在不同的数据系统间共享数据

(2)

(3)

数据库

【问题1】请用300字以内的文字分别说明数据库程序在线访问方式和ORM方式的优缺点,说明该软件企业采用ORM的原因。
数据库程序在线访问方式优点:
1.性能比直接SQL好;
2.可以处理复杂的查询语句。
数据库程序在线访问方式不足:
1.程序员必须懂SQL语句;
2.修改维护相对困难。
ORM方式优点:
1.降低学习和开发成本;
2.程序员不用再写SQL进行数据库操作;
3.减少程序代码量;
4.降低由于SQL代码质量差带来的影响。
0RM方式缺点:
1.性能比直接用SQL差
2.处理复杂查询比较困难。
采用ORM原因:(1)缺乏数据库开发经验,因此SQL语句编写质量有潜在风险;(2)学习成本高;(3)应用比较简单,没有太复杂功能。
【问题2】请用100字以内的文字说明新体系架构中增加数据访问层的原因。请根据图4-1所示,填写图中空白处(1)-(3)。
(1)涉及多种异构数据库平台,数据访问复杂性增加,不宜与业务逻辑混合在一起;(2)数据管理变复杂之后,需要使用代码量增加,分层次有利于逻辑更加清晰,程序维护更加方便;(3)业务逻辑应以相同的方式应对异构数据库,为了做好隐蔽性需要单独设计数据访问层。
【问题3】应用程序设计中,数据库访问需要良好的封装性和可维护性,因此经常使用工厂设计模式来实现对数据库访问的封装。请解释工厂设计模式,并说明其优点和应用场景:
工厂模式分为:抽象工厂和工厂方法,本题为抽象工厂设计模式。抽象工厂设计模式提供一个接口,可以创建一系列或相互依赖的对象,而无需指定他们具体的类。优点:方便创建一系列的对象,其使用场景也是创建系列对象的情况。该题目中,可以针对
oracle,mysql,sqlserver分别抽象建立抽象工厂,若指定当前工厂为oracle工厂,则创建出来的数据库连接,数据集等一系列对象都是符合oracle操作要求的,这样便于数据库之间的切换。

开发方法

【问题1】小规模发布(small release)是XP的基本元素之一。请用200字以内文字分别阐明:(1)原型系统和XP小规模发布的系统的主要差别?(2)为什么该项目组没有采用原型开发方法?
【问题1】(1)原型系统和XP小型发布的系统的主要差别是功能。采用原型系统主要是让用户确认需求,或者用来测试关键的技术,但是它展示的功能并不是实际系统的功能,不能用来评价实际的系统;XP小型发布的系统考试时不包括足够的功能,但是每个功能和可发布的产品的定义是一样的。在完整性上,它配备了一系列实用的功能集;在质量上,它可以健壮地运行。(2)在该项目中,不需要开发原型系统。由于项目没有大的技术风险,所以不需要用原型系统来测试关键技术。网站系统的开发和原型系统的开发在工作量上是相当的,在时间要求短的情况下,直接开发系统可以节省时间。对于用户需求经常发生变化的情况,可以采用XP开发方法的代码重构、持续集成和小型发布等技术。

【问题2】请用200字以内文字,简要说明采用XP方法可能会存在哪些问题。
【问题2】(1)开发团队、管理层,以及客户的不理解,阻碍XP方法论实施。(2)导致开发团队忽视文档,以XP为借口拒绝编写甚至是必须的文档。(3)XP是针对单一团队设计的,外包方的参与将会为有效的组织带来很大的困难。(4)缺乏客户的参与,导致用户故事编写、优先级确认等工作遇到困难。(5)项目规模扩大后,XP方法论将不适应。(6)对客户、开发人员和管理者的素质要求较高。

【问题3】在项目组的后续讨论中,李工提出,如果项目规模扩大,XP将不再适用。王工对此表示赞同,但同时提出可以将XP方法和传统软件开发过程相结合。请用200字以内的文字简要地说明如何将XP方法和传统软件开发过程相结合。
【问题3】(1)可以将XP和传统软件开发过程中的增量式开发过程相结合。(2)将大规模项目划分为若干个具有共同目标的小规模项目,用XP方法论组织小项目开发,用传统软件过程方法论监控全局。(3)在此基础上,建立面向目标的项目管理。

<6>软件架构设计
【说明】某软件公司为某品牌手机厂商开发一套手机应用程序集成开发环境,以提高开发手机应用程序的质量和效率。在项目之初,公司的系统分析师对该集成开发环境的需求进行了调研和分析,具体描述如下:
a.需要同时支持该厂商自行定义的应用编程语言的编辑、界面可视化设计、编译、调试等模块,这些模块产生的模型或数据格式差异较大,集成环境应提供数据集成能力。集成开发环境还要支持以适配方式集成公司现有的应用模拟器工具。
b.经过调研,手机应用开发人员更倾向于使用Windows系统,因此集成开发环境的界面需要与Windows平台上的主流开发工具的界面风格保持一致口
c.支持相关开发数据在云端存储,需要保证在云端存储数据的机密性和完整性。d.支持用户通过配置界面依据自己的喜好修改界面风格,包括颜色、布局、代码高亮方式等,配置完成后无需重启环境。
e.支持不同模型的自动转换。在初始需求中定义的机器性能条件下,对于一个包含50个对象的设计模型,将其转换为相应代码框架时所消耗时间不超过5秒。
f.能够连续运行的时间不小于240水时,意外退出后能够在10秒之内自动重启。g.集成开发环境具有模块化结构,支持以模块为单位进行调试、测试与发布口
h.支持应用开发过程中的代码调试功能:
开发人员可以设置断点,启动调试,编辑器可以自动卷屏并命中断点,能通过变量监视器查看当前变量取值。在对需求进行分析后,公司的架构师小张查阅了相关的资料,认为该集成开发环境应该采用管道一过滤器(Pipe-Filter)的架构风格,公司的资深架构师王工在仔细分析后,认为应该采用数据仓储(Data Repository)的架构风格。公司经过评审,最终采用了王工的方案。

【问题1】

<7>构件
【说明】构件(component)也称为组件,是一个功能相对独立的具有可复用价值的软硬件单元。近年来,构件技术正在逐步应用于大型嵌入式系统的软件设计。某公司长期从事飞行器电子设备研制工作,已积累了大量成熟软件。但是,由于当初管理和设计等原因,公司的大量软件不能被复用,严重影响了公司后续发展。公司领导层高度重视软件复用问题,明确提出了要将本公司的成熟软件进行改造,建立公司可复用的软件构件库,以提升开发效率、降低成本。公司领导层决定将此项任务交给技术部门的王工程师负责组织实施。两个月后,王工程师经过调研、梳理和实验,提交了一份实施方案。此方案得到了公司领导层的肯定,但在实施过程中遇到了许多困难,主要表现在公司软件架构的变更和构件抽取的界面等方面。

【问题1】请用200字以内文字说明获取构件的方法有哪几种?开发构件通常采用哪几种策略?并列举出两种主流构件标准。

答:获取构件的途径:
1)从现有构件中获取
2)从遗留工程提取
3)从市场购买
4)重新开发新的构件

开发构件的策略:分区/抽象/分割

主流构件:
EJB:由SUN的Java企业Bean制定。
CORBA:OMG制定
COM/DCOM: Microsoft制定

<8>UML
【说明】某软件公司计划开发一套教学管理系统,用于为高校提供教学管理服务。该教学管理系统基本的需求包括:
(1)系统用户必须成功登录到系统后才能使用系统的各项功能服务;
(2)管理员(Registrar)使用该系统管理学校(University)、系(Department)、教师(Lecturer)、学生(Student)和课程(Course)等教学基础信息;
(3)学生使用系统选择并注册课程,必须通过所选课程的考试才能获得学分;如果考试不及格,必须参加补考,通过后才能获得课程学分;
(4)教师使用该系统选择所要教的课程,并从系统获得选择该课程的学生名单;(5)管理员使用系统生成课程课表,维护系统所需的有关课程、学生和教师的信息;
(6)每个月到了月底系统会通过打印机打印学生的考勤信息。项目组经过分析和讨论,决定采用面向对象开发技术对系统各项需求建模。

【问题1】用例建模用来描述待开发系统的功能需求,主要元素是用例和参与者。请根据题目所述需求,说明教学服务系统中有哪些参与者。

参与者:学生、教师、管理员、时间、打印机。

【问题2】用例是对系统行为的动态描述,用例获取是需求分析阶段的主要任务之一。请指出在面向对象系统建模中,用例之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,“登录系统"用例与“注册课程”用例之间、“参加考试“用例与“参加补考“用例之间的关系分别属于哪种类型?总共:泛化,包含,扩展
用例之间的关系包括:包含、扩展。
“登录系统"用例与“注册课程”用例之间的关系为:包含关系。
“参加考试“用例与“参加补考”用例之间的关系为:扩展关系。

【问题3】类图主要用来描述系统的静态结构,是组件图和配置图的基础。请指出在面向对象系统建模中,类之间的关系有哪几种类型?对题目所述教学服务系统的需求建模时,类University与类Student之间、类University和类Department之间、类Student和类Course之间的关系分别属于哪种类型?

类之间的关系:关联,依赖,组合,聚合,泛化
University与student 聚合
University与department 组合
Student与course 关联

<9>面向服务架构SOA
【说明】某银行拟将以分行为主体的银行信息系统,全面整合为由总行统管理维护的银行信息系统,实现统一的用户账户管理、转账汇款、自助缴费、理财投资、贷款管理、网上支付、财务报表分析等业务功能。但是,由于原有以分行为主体的银行信息系统中,多个业务系统采用异构平台、数据库和中间件,使用的报文交换标准和通信协议也不尽相同,使用传统的EAl解决方案根本无法实现新的业务模式下异构系统间灵活的交互和集成。因此,为了以最小的系统改进整合现有的基于不同技术实现的银行业务系统,该银行拟采用基于ESB的面向服务架构(SOA)集成方案实现业务整合。

【问题1】请说明什么是面向服务架构(SOA)以及ESB在SOA中的作用与特点。
SOA是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以一种统-和通用的方式进行交互。
ESB作用与特点:
1.SOA的一种实现方式,ESB在面向服务的架构中起到的是总线作用,将各种服务进行连接与整合;
2、描述服务的元数据和服务注册管理;
3、在服务请求者和提供者之间传递数据,以及对这些数据进行转换的能力,并支持由实践中总结出来的一些模式如同步模式、异步模式等;
4、发现、路由、匹配和选择的能力,以支持服务之间的动态交互,解耦服务请求者和服务提供者。高级一些的能力,包括对安全的支持、服务质量保证、可管理性和负载平衡等。

【问题2】基于该信息系统整合的实际需求,项目组完成了基于SOA的银行信息系统架构设计方案。该系统架构图如图5-1所示:

【问题3】针对银行信息系统的数据交互安全性需求,列举3种可实现信息系统安全保障的措施。

1.引入https协议或采用加密技术对数据先加密再传输
2、采用信息摘要技术对重要信息进行完整性验证
3、交易类敏感信息采用数字签名机制

<10> 嵌入式
【说明】嵌入式系统是当前航空、航天、船舶及工业、医疗等领域的核心技术,嵌入式系统可包括实时系统与非实时系统两种。某宇航公司长期从事航空航天飞行器电子设备的研制工作,随着业务的扩大,需要大量大学毕业生补充到科研生产部门。按照公司规定,大学毕业生必须进行相关基础知识培训,为此,公司经理安排王工对他们进行了长达一个月的培训。

【问题1】王工在培训中指出:嵌入式系统主要负责对设备的各种传感器进行管理与控制。而航空航天飞行器的电子设备由于对时间具有很强的敏感性,通常由嵌入式实时系统进行管控,请用300字以内文字说明什么是实时系统,实时系统有哪些主要特性。
实时系统是指向系统发出一指令后,在一个极短的时间内,系统回复结果。
实时系统的特性:(1)实时性(2)专用性(3)软硬件依赖强 (4)多种技术紧密结合(5)系统透明性(6)系统资源受限
【问题2】实时系统根据应用场景、时间特征以及工作方式的不同,存在多种实时特性,大致有三种分类方法,即时间类别、时间需求和工作方式结构。根据自己所掌握的“实时性”知识,将图3-1给出的实时特性按三种分类方式,填写图3-1中(1)~(8)处空白。备选答案:时限的危害程度;时间角包;弱;时间响应;固定;时限/反应时间;时间明确;输入输出激励;时间触发;强;周期/零星/非周期;事件触发

(1)强
(2)(3)时间响应、时间明确
(4)(5)(6)时限/反应时间、输入/输出激励、周期/零星/非周期
(7)(8)时间触发、事件触发

【问题3】可靠性是实时系统的关键特性之一,区分软件的错误(Error)、缺陷(Defect)、故障(Faulit)和失效(Failure)概念是软件可靠性设计工作的基础。请简要说明错误、缺陷、故障和失效的定义;并在图3-2中标出错误、缺陷和失效出现阶段,说明缺陷、故障和失效的表现形式,填写图3-2中(1)~(6)处

软件错误:软件错误是指在软件生存期内的不希望或不可接受的人为错误,其结果是导致软件缺陷的产生。
软件缺陷:软件缺陷是存在于软件(文档、数据、程序)之中的那些不希望或不可接受的偏差。
软件故障:软件故障是指软件运行过程中出现的一种不希望或不可接受的内部状态。
软件失效:软件失效是指软件运行时产生的一种不希望或不可接受的外部行为结果。
(1)存在(2)引起(3)用户经历(4)在开发过程中(5)在产品中(6)在运行时

<十一> 数据库
[说明]某企业是为城市高端用户提供高品质蔬菜生鲜服务的初创企业,创业初期为快速开展业务,该企业采用轻量型的开发架构(脚本语言+关系型数据库)研制了一套业务系统。业务开展后受到用户普遍欢迎,用户数和业务数量迅速增长,原有的数据库服务器已不能满足高度并发的业务要求。为此,该企业成立了专门的研发团队来解决该问题。张工建议重新开发整个系统,采用新的服务器和数据架构,解决当前问题的同时为日后的扩展提供支持。但是,李工认为张工的方案开发周期过长,投入过大,当前应该在改动尽量小的前提下解决该问题。李工认为访问量很大的只是部分数据,建议采用缓存工具MemCache来减轻数据库服务器的压力,这样开发量小,开发周期短,比较适合初创公司,同时将来也可以通过集群进行扩展。然而,刘工又认为李工的方案中存在数据可靠性和一致性问题,在宕机时容易丢失交易数据,建议采用Redis来解决问题。在经过充分讨论,该公司最终决定采用刘工的方案。

[问题1]在李工和刘工的方案中,均采用分布式数据库缓存技术来解决问题。请说明分布式数据库缓存的基本概念。表4-1中对MemCache和Redis两种工具的优缺点进行了比较,请补充完善表4-1中的空(1)~(6)。表4-1

[问题2]刘工认为李工的方案存在数据可靠性和一致性的问题,请说明原因。为避免数据可靠性和一致性的问题,刘工的方案采用Redis作为数据库缓存,请说明基本的Redis与原有关系数据库的数据同步方案。

数据仅存在于内存中,宕机或重启数据将全部失效,这属于数据可靠性问题。
MemCache不支持事务,存在数据一致性问题。

读数据时,先读Redis中的数据,如果Redis没有,则从原数据库读取,并同步更新Redis数据。写数据时,先写入原数据库中,并同步更新至Redis中。

[问题3]请给出Redis分布式存储的2种常见方案和Redis集群切片的几种常见方式。
客户端分片、Twemproxy、Redis Cluster、Proxy +Redis Cluster

<十二> 系统建模
【说明】某公司拟研制一款高空监视无人直升机,该无人机采用遥控一自主复合型控制实现垂直升降。该直升机飞行控制系统由机上部分和地面部分组成,机上部分主要包括无线电传输设备、飞控计算机、导航设备等,地面部分包括遥控操纵设备、无线电传输设备以及地面综合控制计算机等。其主要工作原理是地面综合控制计算机负责发送相应指令,飞控计算机按照预定程序实现相应功能。经过需求分析,对该无人直升机控制系统纵向控制基本功能整理如下:(a)飞控计算机加电后,应完成系统初始化,飞机进入准备起飞状态;(b)在准备起飞状态中等待地面综合控制计算机发送起飞指令,飞控计算机接收到起飞指令后,进入垂直起飞状态;(c)垂直起飞过程中如果飞控计算机发现飞机飞行异常,飞行控制系统应转入无线电遥控飞行状态,地面综合控制计算机发送遥控指令;(d)垂直起飞达到预定起飞高度后,飞机应进入高度保持状态;(e)飞控计算机在收到地面综合控制计算机发送的目标高度后,飞机应进入垂直升降状态,接近目标高度;垂直升降过程中出现飞机飞行异常,控制系统应转入无线电遥控飞行;(f)飞机到达目标高度后,应进入高度保持状态,完成相应的任务;(g)飞机在接到地面综合控制计算机发送的任务执行结束指令后,进入飞机降落状态;(h)飞机降落过程中如果出现飞机飞行异常,控制系统应转入无线电遥控飞行;(i)飞机降落到指定着陆高度后,进入飞机着陆状态,应按照预定着陆算法,进行着陆;(j)无线电遥控飞行中,地面综合控制计算机发送着陆指令,飞机进入着陆状态,应按照预定着陆算法,进行着陆。

【问题1】状态图和活动图是软件系统设计建模中常用的两种手段,请用200字以内文字简要说明状态图和活动图的含义及其区别。
状态图:用来描述一个特定对象的所有可能状态以及其引起状态转移的事件。
活动图:用来描述操作的行为,也用于描述用例和对象内部的工作过程。
两者有本质区别:状态图和活动图用于不同的目的,状态图着重描述一系列的状态及状态间的转移,状态间的变迁需要外部事件的触发。活动图用于捕获动作及动作的结果,活动图中一个活动结束将立即进入下一个活动,是内部处理驱动的流程。

【问题2】根据题干中描述的基本功能需求,架构师王工通过对需求的分析和总结给出了无人直升机控制系统纵向控制状态图(如下图)。请根据题干描述,提炼出相应状态及条件,并完善下图所示状态图中的(1)~(5),并回答下

【问题3】根据题目中描述的基本功能需求,架构师王工给出了无人直升机控制系统纵向控制的顶层活动图(如下图)。请根据题干描述,完善下图活动图中的(1)~(9),并回答下列问题

<十三> 结构化分析
[说明]某公司欲建设-一个房屋租赁服务系统,统一管理房主和租赁者的信息,提供快捷的租赁服务。本系统的主要功能描述如下:1.登记房主信息。记录房主的姓名、住址、身份证号和联系电话等信息,并写入房主信息文件。2.登记房屋信息。记录房屋的地址、房屋类型(如平房、带阳台的楼房、独立式住宅等)、楼层、租金及房屋状态(待租赁、已出租)等信息,并写入房屋信息文件。-名房主可以在系统中登记多套待租赁的房屋。3.登记租赁者信息。记录租赁者的个人信息,包括:姓名、性别、住址、身份证号和电话号码等,并写入租赁者信息文件。4.安排看房。已经登记在系统中的租赁者,可以从待租赁房屋列表中查询待租赁房屋信息。租赁者可以提出看房请求,系统安排租赁者看房。对于每次看房,系统会生成一条看房记录并将其写入看房记录文件中。5.收取手续费。房主登记完房屋后,系统会生成一份费用单,房主根据费用单交纳相应的费用。6.变更房屋状态。当租赁者与房主达成租房或退房协议后,房主向系统提交变更房屋状态的请求。系统将根据房主的请求,修改房屋信息文件

[问题1]若来用结构化方法对房屋租赁服务系统进行分析,得到如图2-1所示的顶层DFD,使用题干中给出的词语,给出图2-1中外部实体E1E2、加工P1P6以及数据存储D1~D4的名称。

[问题2]若采用信息工程(Information Engineering)方法对房屋租赁服务系统进行分析,得到如图2-2所示的ERD.请给出图2-2中实体(1)~(5)的名称

(1)房主(2)房屋(3)房屋信息文件(4)租赁者(5)看房记录

[题3](1)信息工程方法中的“实体(entity)"与面向对象方法中的“类(class)"之间有哪些不同之处?(2)在面向对象方法中通常采用用例(Use Case)来捕获系统的功能需求。用例可以按照不同的层次来进行划分,其中的Essential Use Cases和Real Use Cases有哪些区别?

(1)实体用于数据建模,而类用于面向对象建模。实体只有属性,而类有属性和操作。
(2)Essential Use Cases可翻译为抽象用例,Real Use Cases可翻译为基础用例。他们是区别在于:基础用例是实实在在与用户需求有对应关系的用例,是从用户需求获取的渠道得到的,而抽象用例是从基础用例中抽取的用例的公共部分,是为了避免重复工作,优化结构而提出的用例。

<十四>结构化分析
【说明】某公司正在研发一套新的库存管理系统。系统中一个关键事件是接收供应商供货。项目组系统分析员小王花了大量时间在仓库观察了整个事件的处理过程,并开发出该过程所执行活动的列表:供应商发送货物和商品清单。公司收到商品后执行收货处理,包括卸载商品、确定收到了订单上的商品、处理与供应商的分歧等。对于已有商品,调整其库存信息,对于新采购的商品,在库存中添加新的商品记录。收货完成后,系统执行入库处理,将商品放到仓库对应的货架上。在付款处理活动中,自动生成应付账款信息,如果查询到该供应商有待付款记录,则进行合并付款,付款完成后消除应付账款记录。最后,仓库管理员根据最新的库存商品,调整出货信息。小王根据自己观察的过程创建了该事件的1层数据流

【问题1】请用300以内文字说明数据流图(Data Flow Diagram)的基本元素及其作用。

数据流图(Data Flow Diagram)的四种基本元素及其作用:
(1)External Agent(实体/外部代理):定义位于项目范围之外,但与正在被研发的系统有交互关系的人、部门、外部系统或组织。
(2)Process(加工/处理):在输入数据流或条件上执行,或者对输入数据流或条件做出响应的工作。
(3)Data Store(数据存储):静止的数据,表示系统中需要保存的数据。
(4)Data Flow(数据流):运动中的数据,表示到一个过程的数据输入,或者来自一个过程的数据输出。

【问题2】数据流图在绘制过程中可能出现多种语法错误,请分析题图所示数据流图中哪些地方有错误,并分别说明错误的类型。
(1)D1到A2:缺少移动数据流的加工。
(2)Ps.3:没有输出数据流,输入输出不平衡。
(3)P5.4:没有输入数据流,输入输出不平衡。
(4)D2:数据存储没有输出的数据流。(此条可不必写)

【问题3】

Crud:create/read/update/delete

<十五>结构化分析
某公司拟开发一个商业情报处理系统,使公司能够及时针对市场环境的变化及时调整发展战略,以获取最大的商业利益。项目组经过讨论,决定采用结构化分析和设计方法。在系统分析阶段,为了更好地对情报数据处理流程及其与外部角色的关联进行建模,项目组成员分别给出了自己的设计思路:(1)小张提出先构建系统流程图(System Flowcharts),以便更精确地反映系统的业务处理过程及数据的输入和输出;(2)小李提出先构建系统数据流图(Data Flow Diagrams),来展现系统的处理过程和定义业务功能边界,并给出了情报分类子系统的0层和1层数据流图,后者如图.项目经讨论确定以数据流图作为本阶段的建模手段。工程师老王详细说明了流程图和数据流图之间的区别与联系,并指出了图2-1的数据流图中存在的错误。

【问题1】流程图和数据流图是软件系统分析设计中常用的两种手段,请用300字以内文字简要说明流程图与数据流图的含义及其区别,并说明项目组为何确定采用数据流图作为建模手段。
数据流图作为一种图形化工具,用来说明业务处理过程、系统边界内所包含的功能和系统中的数据流。
流程图以图形化的方式展示应用程序从数据输入开始到获得输出为止的逻辑过程,描述处理过程的控制流。
两者的区别主要包括:
(1)数据流图中的处理过程可并行;流程图在某个时间点只能处于一个处理过程。
(2)数据流图展现系统的数据流;流程图展现系统的控制流。
(3)数据流图展现全局的处理过程,过程之间遵循不同的计时标准;流程图中处理过程遵循一致的计时标准。
(4)数据流图适用于系统分析中的逻辑建模阶段;流程图适用于系统设计中的物理模阶段。

【问题2】请分析指出图2-1所示的数据流图中存在的错误及其原因,并针对图2-1的1层数据流图绘制出情报分类子系统的0层数据流图。

如图所示的数据流图中存在的错误有以下4种:
(1)“分类训练”加工:只有输入没有输出,产生数据黑洞;
(2)“分类处理“加工:有输出没有输入,无中生有;
(3)"规则文件“数据流:外部实体没有经过加工处理,直接到数据存储;
(4)“配置信息”数据流:外部实体之间没有加工处理,存在直接数据流。

【问题3】高质量的数据流图是可读的、内部一致的并能够准确表示系统需求。请用300字以内文字说明在设计高质量的数据流图时应考的三个原则。
(1)复杂性最小原则:把信息划分为小的且相互独立的子集
(2)接口最小化原则:把各个元素的接口数或者连接数最小化
(3)数据流一致性原则:数据流入和流出是否有差别,是否经过处理

<十六>软件质量评估
某软件公司拟为某市级公安机关开发一套特种车辆管理与监控系统,以提高特种车辆管理的效率和准确性。在系统需求分析与架构设计阶段,用户提出的部分需求和关键质量属性场景如下:(a)系统用户分为管理员、分管领导和普通民警等三类;(b)正常负载情况下,系统必须在0.5秒内对用户的车辆查询请求进行响应;(c)系统能够抵御99.999%的黑客攻击;
(d)系统的用户名必须以字母开头,长度不少于5个字符;(e)对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;(f)网络失效后,系统需要在2分钟内发现并启用备用网络系统;(g)在系统升级时,需要保证在1个月内添加一个新的消息处理中间件;(h)
查询过程中涉及到的车辆实时视频传输必须保证20帧/秒的速率,且画面具有600?80的分辨率;(i)更改系统加密的级别将对安全性和性能产生影响;(j)系统主站点断电后,需要在3秒内将请求重定向到备用站点;(k)假设每秒中用户查询请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的查询请求”这一要求是可以实现的;()对用户信息数据的授权访问必须保证99.999%的安全性;(m)目前对“车辆信息实时监控“业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;(n)更改系统的Web界面接口必须在1周内完成;(o)系统需要提供远程调试接口,并支持系统的远程调试。在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。

【问题1】在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图1中(1)、(2)空白处;并选择题干描述中的(a)(o),将恰当的序号填入(3)(6)空白处,完成该系统的效用树。

(1)安全性
(2)可修改性
(3)H
(4)I
(5)J
(6)N

【问题2】在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干描述中的(a)~(o)各选出1个属于系统架构风险、敏感点和权衡点的描述。
架构风险:
敏感点:是为了实现某种特定的质量属性,一个或多个系统组件所具有的特性
权衡点:影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性

m是系统架构风险
E是敏感点
i是权衡点

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

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

【问题2】在刘工建议的基础上,为了避免CRSS系统的单点故障,请用200字以内文字简要说明如何建立CRSS的数据库系统;对于数据的读取、添加、更改和删除操作分别如何实现。
【问题2】读写分离架构利用了数据库的复制技术,将数据的读和写分布在不同的处理节点上,从而达到提高可用性和扩展性的目的。
CRSS的分布式数据库系统需要由多个局部数据库系统、多个热备份数据库系统和多个数据缓存组成。局部数据库负责数据的写入,多个热备份数据库系统用以解决单点故障的问题,数据缓存负责为应用提供所读取的数据。
(1)读取数据:应用访问缓存,如果命中则返回,否则从局部数据库系统中读取数据并将数据加载到缓存后返回。
(2)添加数据:采用延迟加载策略,应用将数据直接写入局部数据库。
(3)更改数据:应用更改局部数据库中的数据,将缓存中的数据标记为失效。
(4)删除数据:应用删除局部数据库中的数据,将缓存中的数据标记为失效。

【问题3】RMO公司销售区域将在未来五年大面积扩展,其潜在客户数量也会因此大幅度增加,所以良好的可扩展性是CRSS系统所必需的质量属性。请分别说明在集中式和分布式数据架构下,可以采用哪些方法提升系统的可扩展性。
【问题3】张工提出的集中式数据架构通过向上扩展(Scale Up)提升系统的可扩展性。具体的实现方式包括硬件扩容(增加CPU数量、内存容量、磁盘数量)和硬件升级(更换为高端主机或高速磁盘等)。刘工提出的分布式数据架构通过向外扩展(Scale Out)提升系统的可扩展性。具体的实现方式包括数据复制、数据垂直切分(或/和)水平切分、缓存和全文搜索。

<十八>经典架构
A公司承担了某企业应用系统的开发任务,用户要求系统最终应发布到Web上供企业员工及企业客户使用。项目组在进行方案论证时,首先肯定了该系统需使用B/S结构,但在系统应采用的底层平台上产生了分歧,一方认为应采用微软.NET平台,一方认为应采用Java企业版平台。经过认真讨论,结合两种平台的特点及项目的实际需求,项目组最终决定采用Java企业版平台作为系统开发运行的基础平台。

【问题1】请在以下平台特点(1)(9)中,选择出.NET平台与Java企业版平台各自具备的优势填入表5-1的(a)(f)项中,选择出两个平台共有的特点填入表5-1的(g)~(i)项中。(1)良好跨平台可移植性支持(2)易于部署与配置(3)多程序设计语言支持(4)良好的Web多层应用开发支持(5)丰富的多厂商外部支持(6)良好的O/R(对象/关系)映射支持(7)针对特定平台的优化支持(8)良好的源代码以外的可定制性支持(9)良好的Web服务支持表5-1.NET平台与Java平台的优势对比

【问题1】(a)~(c):(2)、(3)、
(7),以上三个答案顺序可调换;(d)
(f):(1)、(5)、(8),以上三个答案顺序可调换;(g)(i):(4)、
(6)、(9),以上三个答案顺序可调换;

【问题2】MVC(Model-View-Controller)模式是Web应用系统开发中常用的一种软件架构模式。请分别针对基于EJB的重量级框架和基于Struts等的轻量级框架,说明MVC模式中的各组件应采用何种构件实现。项目组在进行需求调研时,发现用户界面部分的变动可能会比较频繁,因此需要降低系统界面与业务逻辑之间的耦合度。MVP(Model-View-Presenter)
模式是由MVC模式派生出的一种设计模式,其主要目的是降低MVC模式中模型(Model)与视图(View)的耦合度,请用300字以内文字,从组件耦合度、组件分工及对开发工程化支持等三方面说明MVP模式与MVC模式的主要区别。
【问题2】在基于EJB的重量级框架中,实现的构件分别为:模型(Model):由EJB构件实现视图(View):由JSP构件实现控制器(Controller):由Servlet构件实现在基于Struts等的轻量级框架中,实现的构件分别为:模型(Model):由Java Bean构件实现视图(View):由JSP构件实现控制器(Controller):由Servlet构件实现MVP模式与MVC模式的主要区别为:(1)在组件耦合度方面:在MVP模式中,视图并不直接使用模型,它们之间的通信通过Presenter进行,从而实现了视图与模型的分离,而在MVC模式中,视图直接与模型交互。(2)在组件分工方面:在MVP模式中,视图需要处理鼠标及键盘等触发的界面事件,而在MVC模式中这通常是由控制器完成的工作;在MVP模式中,系统核心业务逻辑组织集中在Presenter中,而在MVC模式中,相应的控制器通常只完成事件的分发。(3)在开发工程化支持方面:MVP模式可更好地支持单元测试,而在MVC模式中,由于模型与视图绑定,因此难以实施相应的单元测试;在MVP模式中,Presenter基于约定接口与视图和模型交互,可更好地支持组件的重用。

【问题3】因为系统中大量业务逻辑涉及企业的核心商业数据,为保证系统数据一致性,完善的事务(Transaction)控制是系统实现时必需考虑重要因素之一。请用200字以内文字说明事务的基本特征,并简单描述EJB规范中提供的两种事务控制的基本方法。
【问题3】事务的基本特征包括:原子性:一个事务中的所有操作,要么全部完成,要么全部不完成,不会结束在中间某个环节。事务在执行过程中发生错误,会被回滚到事务开始前的状态,就像这个事务从来没有执行过一样。一致性:在事务开始之前和事务结束以后,数据的完整性限制没有被破坏。隔离性:两个事务的执行是互不干扰的,两个事务时间不会互相影响。持久性:在事务完成以后,该事务对数据所作的更改便持久地保存在数据库之中,并且是完全的。EJB规范支持的两种事务控制方法为:容器维护的事务(Container Managed Transaction,CMT):由EJB容器根据部署描述符或EJB构件注释中指定的事务属性自动控制事务的边界,容器维护的事务是方法级的,即默认将一个方法当作一个事务执行,当方法执行的过程中发生系统级异常,容器会自动将事务回滚,从而将方法前面执行的结果恢复。Bean维护的事务(Bean Managed Transaction,BMT):由程序员在EJB的源代码中控制事务执行的边界,事务的边界通过Java事务接口(Java Transaction APl,JTA)
进行控制,Bean维护的事务可以跨越方法的边界。

【问题1】软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。

<十九>架构风格
某公司欲开发一个车辆定速巡航控制系统,以确保车辆在不断变化的地形中以固定的速度行驶。图4-1给出了该系统的简化示意图。表4-1描述了各种系统输入的含义。表4-1定速巡航控制系统输入说明。
公司的领域专家进行深入分析后,将系统需求认定为:任何时刻,只要定速巡航控制系统处于工作状态,就要有确定的期望速度,并通过调整引擎油门的设定值来维持期望速度。在对车辆定速巡航控制系统的架构进行设计时,公司的架构师王工提出采用面向对象的架构风格,而李工则主张采用控制环路的架构风格。在架构评估会议上,专家对这两种方案进行综合评价,最终采用了面向对象和控制环路相结合的混合架构风格。

【问题1】在实际的软件项目开发中,采用成熟的架构风格是项目成功的保证。请用200字以内的文字说明:什么是软件架构风格;面向对象和控制环路两种架构风格各自的特点。
【问题1】软件架构风格是描述某一类特定应用领域中软件系统组织方式和惯用方式。
面向对象架构风格的特征是将数据表示和基本操作封装在对象中。这种模式的构件是对象,对象维护自身表示的完整性,对象之间通过消息机制进行通信,对象交互时需要知道彼此的标识,通过对象之间的协作完成计算过程。
控制环路架构风格是将过程输出的指定属性维护在一个特定的参考值(设定点)。控制环路风格包括过程变量、被控变量、输入变量、操纵变量和设定点等构件,通过收集实际和理想的过程状态信息,并能调整过程变量使得实际状态趋于理想状态。

【问题2】用户需求没有明确给出该系统如何根据输入集合计算输出。请用300字以内的文字针对该系统的增减速功能,分别给出两种架构风格中的主要构件,并详细描述计算过程。
【问题2】对于系统的增减速功能,采用面向对象风格的巡航控制系统首先会定义司机、油门、时钟、速度计和车轮等构件。整个计算的主要过程是:(1)司机进行增/减速操作设置期望速度,该期望速度以消息的形式传递给速度计;(2)速度计通过向车轮和时钟发送消息获取车轮转速和时钟值,得到当前速度;(3)速度计计算当前速度和期望速度的速度差值;(4)该差值以消息的形式发送给油门,油门通过速度差值调节自身状态;(5)整个过程在时钟的控制下定期向速度计发送消息,重复执行(2)~(4)。控制环路的架构风格以控制器为核心,期望速度、车轮脉冲、时钟和油门等作为构件。具体的计算过程是:
(1)司机进行增/减速操作设置期望速度值;(2)将设定值置为期望速度值;(3)控制器采集车轮脉冲和时钟值,计算出当前速度;(4)比较期望速度和当前速度,计算速度差值,控制油门动作;(5)反复执行(3)和(4)。

【问题3】实际的软件系统架构通常是多种架构风格的混合,不同的架构风格都有其适合的应用场景。以该系统为例,针对面向对象架构风格和控制环路架构风格,各给出两个适合的应用场景,并简要说明理由。
【问题3】适合面向对象架构风格的应用场景:(1)用户刹车,立即退出巡航控制系统。理由:这是一个典型的事件驱动的场景,适合于面向对象风格。(2)系统对突发事件的处理,如某些部件失灵等。理由:当发生突发事件时,系统会同时产生数据和事件,这种清况用对象建模较为恰当。适合面向控制环路架构风格的应用场景:(1)在达到期望速度后,系统维持恒定速度行驶。理由:这是一个典型的闭环控制的情景,系统需要在外界情况不断发生变化的情况下进行调整,使得系统状态尽可能接近期望状态。(2)用户改变期望速度后,系统不断进行调整,直至到达恒定速度。理由:这是一个闭环控制情景,当用户设定期望速度值后,系统需要在不断获取当前速度和外界条件的情况下对系统状态持续调整,使得系统状态尽可能接近这个新的期望状态。

<二十>质量属性
【说明】某电子商务公司拟升级目前正在使用的在线交易系统,以提高客户网上购物时在线支付环节的效率和安全性。公司研发部门在需求分析的基础上,给出了在线交易系统的架构设计。公司组织相关人员召开了针对架构设计的评估会议,会上用户提出的需求、架构师识别的关键质量属性场景和评估专家的意见等内容部分列举如下:(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求;(b)用户的信用卡支付必须保证99.999%的安全性;
(c)系统升级后用户名要求至少包含8个字符;(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统;(e)在高峰负载情况下,用户发起支付请求后系统必须在10秒内完成支付功能;(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能;(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;(h)需要在30人月内为系统添加公司新购买的事务处理中间件;(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性;(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点;(k)用户信息数据库授权必须保证99.999%可用;(1)系统需要对Web界面风格进行修改,修改工作必须在4人月内完成;(m)系统需要为后端工程师提供远程调试接口,并支持远程调试。

【问题1】在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入下图中(1)、(2)空白处;并选择题干描述的(a)(m),填入(3)(6)空白处,完成该系统的效用树

【问题2】在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)~(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。
【问题2】系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。根据上述分析可知题干描述中,(i)描述的是系统架构风险;(g)描述的是敏感点;(f)描述的是权衡点。

<二十一>架构风格
某互联网销售企业需要建立自己的电子商务平台,将所有产品信息集中在一起,为用户提供全方位的产品信息检索服务。但产品供应商大多数已经建有自己的电子商务平台,且数据独立存储,而且数据格式和数据平台有较大差异,有的供应商甚至没有采用数据库来存储商品信息。为此该企业专门成立专家组来论证其数据集成方案。李工提出采用集中式集成方式把产品供应商的数据集中在一起,采用数据仓库技术来实现与各家供应商的数据集成。而王工提出采用松耦合的联邦数据库集成方案。专家组经过激烈讨论,认为王工方案更为合理,建议采用王工提出的集成方案。

【问题1】请结合数据仓库和联邦数据库集成方案各自的特点,简要说明专家组采用王工提出的集成方案的原因。
【问题1】数据仓库集成是把多种来源的数据集中在一起,建立数据仓库,所有数据都驻留在单个数据库服务器上,配置大型处理器和存储容量。数据仓库主要用于决策支持,在数据处理过程中强调分析。其特点是:(1)集成的数据。(2)面向主题。(3)数据相对稳定。(4)包含历史信息。联邦数据库集成是把多个数据库系统联合在一起,构成“联邦数据库系统",数据库之间通过接口查询,互相通信,数据分布在不同地方的计算机或数据库服务器上,通过网络连接。其特点是:(1)联邦数据库提供集成的数据格式,对用户提供统一的访问,屏蔽了各个数据库的复杂性和分布情况,简化了开发数据库查询和对数据统一理解的工作。这种分布式的数据集成,更加符合应用系统的实际倩况。(2)异构数据源不仅仅是数据库系统,通过中间件,可以扩展到传感器、文件和应用程序等。

【问题2】部分供应商的产品信息没有相应的数据库,而是直接嵌入在WEB页面中供用户浏览。数据集成时需要直接从供应商电子商务平台的网页上获取其产品信息。请简要给出此类数据集成的方法和基本步骤。
【问题2】此类数据往往是非结构化或者半结构化的,但同一个数据源往往有统一的页面模式,因此应该采用Web内容提取(挖掘/文本挖掘)的集成方法来获取对应供应商的产品信息。其基本步骤为:(1)分析页面,确定其页面中的数据模式。(2)抓取页面,通过爬虫技术获取对应的网页。(3)特征提取与处理,获取相应数据。(4)数据清洗,根据规则进行判断,抛弃异常数据。(5)数据转换,根据顶先定义好的语义映射关系,将数据转换为统一格式。

【问题3】在方案评审会上,项目组针对李工和王工的方案展开了激烈的讨论。刘工指出两种方案在实施的过程中,都存在数据源之间的语义映射和转换问题,都会带来数据集成的不确定。请简要说明产生不确定的原因。
【问题3】数据集成系统依靠模式映射来指明数据源中的数据和中介所用数据之间的语义关系,但映射过程中可能发生不确定性,其原因有:(1)数据源与中介模式之间的语义映射可能是近似的。(2)用户不熟悉模式或系统的域太宽,不能提供基于表单式的查询接口,需要使用关键字查询,但将关键字查询转换成一组候选的结构化查询时,会带来不确定性。
(3)数据常常是使用信息获取技术从非结构化数据源获取的,而这些获取技术一般只是“大致可用”,所取得的数据可能是不确定的。

<二十二>开发方法
【说明】Scrum是一个增量的、迭代的敏捷软件开发过程。某软件公司计划开发一个基于Web的Scrum项目管理系统,用于支持项目团队采用Scrum敏捷开发方法进行软件开发,辅助主管智能决策。此项目管理系统提供的主要服务包括项目团队的管理、敏捷开发过程管理和工件的管理。Scrum敏捷开发中,项目团队由Scrum主管、产品负责人和开发团队人员三种不同的角色组成,其开发过程由若干个Sprint(短的迭代周期,通常为2到4周)活动组成。Product Backlog是在Scrum过程初期产生的一个按照商业价值排序的需求列表,该列表条目的体现形式通常为用户故事。在每一个Sprint活动中,项目团队从Product Backlog中挑选最高优先级的用户故事进行开发。被挑选的用户故事在Sprint计划会议上经过细化分解为任务,同时初步估算每一个任务的预计完成时间,编写Sprint Backlog。在Sprint活动期间,项目团队每天早晨需举行每日站立会议,重新估算剩余任务的预计完成时间,更新Sprint Backlog、Sprint燃尽图和Release燃尽图。在每个Sprint活动结束时,项目团队召开评审会议和回顾会议,交付产品增量,总结Sprint期间的工作情况和问题。此时,如果Product Backlog中还有未完成的用户故事,则项目团队将开始筹备下一个Sprint活动迭代。为完成Scrum项目管理系统,考虑到系统的智能决策需求,公司决定使用MVC架构模式开发该项目管理系统。具体来说,系统采用轻量级J2EE架构和SSH框架进行开发,使用MySQL数据库作为底层存储。

【问题1】Scrum项目管理软件需真实模拟Scrum敏捷开发流程,请根据你的理解完成图5-1给出的Scrum敏捷开发状态图,.填写其中(1)~(5)的内容。

【问题3】根据项目组给出的系统设计方案,将备选答案al的内容填写在图5-2中的空(1)(9),完成系统架构图。

1、(1)Product Backlog(2)Sprint计划会议(3)每
日站立会议(4)还有未完成的用户故事(5)交付
产品增量
2、(1)c、e、n(2)a、f、j(3)g
3、(1)(2)df(3)h(4)g(5)a(6)k(7)h(8)b(9)c

<二十三>mvc
【说明】某软件企业受该省教育部门委托建设高校数字化教育教学资源共享平台,实现以众筹众创的方式组织省内普通高校联合开展教育教学资源内容建设,实现全省优质教学资源整合和共享。该资源共享平台的主要功能模块包括:(1)统一身份认证模块,提供统一的认证入口,为平台其他核心业务模块提供用户管理、身份认证、权限分级和单点登录等功能:(2)共享资源管理模块:提供教学资源申报流程服务,包括了资源申报、分类定制、资料上传、资源审核和资源发布等功能:(3)共享资源展示模块:
提供教育教学共享资源的展示服务,包括资源导航、视频点播、资源检索、分类展示、资源评价和推荐等功能:(4)资源元模型管理模块:依据资源类型提供共享资源的描述属性、内容属性和展示属性,包括共享资源统一标准和规范、资源加工和在线编辑工具、数字水印和模板定制等功能:(5)系统综合管理模块:提供系统管理和维护服务,包括系统配置、数据备份恢复、资源导入导出和统计分析等功能。项目组经过分析和讨论,决定采用基于JavaEE的MVC模式设计资源共享平台的软件架构,如

【问题1】MVC架构中包含哪三种元素,它们的作用分别是什么?请根据图2-1所示架构将JavaEE 中JSP、Servlet、Service、JavaBean、DAO五种构件分别填入空(1)-(5)所示位置。
【问题2】项百组架构师王工提出在图2-1所示架构设计中加入EJB构件,采用企业级JavaEE架构开发资源共享平台。请说明EJB构件中的Bean(构件)分为哪三种类型,每种类型Bean的职责是什么。
【问题3】如果采用王工提出的企业级JavaEE架构,请说明下列(a)-(e)所给出的业务功能构件中,有状态和无状态构件分别包括哪些。
(a)Identification Bean(身份认证构件》
(b)ResPublish Bean(资源发布构件)(c)
ResRetrieval Bean(资源检索构件)(d)
OnlineEdit Bean(在线编辑构件)(e)Statistics Bean(统计分析构件)

1、MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型(Model),V代表视图(View),C代表控制器(Controller)。在该风格中,模型表示待展示的对象,视图表示模型的展示,并能接收用户的输入数据,但是它不进行任何实际业务处理,控制器负责把用户的动作转成针对模型的操作。模型通过更新视图的数据来反映自身的变化。(1)JSP(2)Servlet(3)Service
(4)JavaBean(5)DAO
2、EJB中Bean分这三种类型:Session Bean,Entity Bean,Message-Driven Bean.Session Bean的职责:维护一个短暂会话,当客户端执行完成后,Session Bean和它的数据会消失。Entity Bean的职责:维护一行持久稳固的数据,如果客户端终止或者服务结束,底层的服务会负责entity Bean数据的存储。Message-Driven Bean的职责:结合了Session Bean和JMS,允许异步接收消息。
3、有状态构件包含:(a)、(b)、(d)无状态构件包含:(c)、(e)

<二十四>web
【说明】某电子商务企业因发展良好,客户量逐步增大,企业业务不断扩充,导致其原有的B2C商品交易平台己不能满足现有业务需求。因此,该企业委托某软件公司重新开发一套商品交易平台。该企业要求新平台应可适应客户从手机、平板设备、电脑等不同终端设备访问系统,同时满足电商定期开展“秒杀”、“限时促销”等活动的系统高并发访问量的需求。面对系统需求,软件公司召开项目组讨论会议,制定系统设计方案。讨论会议上,王工提出可以应用响应式Web设计满足客户从不同设备正确访问系统的需求。同时,采用增如镜像站点、CDN内容分发等方式解决高并发访问量带来的问题。李工在王工的提议上补充,仅仅依靠上述外网加速技术不能完全解决高用户并发访问问题,如果访问量持续增加,系统仍存在崩溃可能.李工提出应同时结合负载均衡、缓存服务器、web应用服务器、分布式文件系统、分布式数据库等方法设计系统架构。经过项目组讨论,最终决定综合王王和李工的思路,完成新系统的架构设计。

【问题1】请用200字以内的文字描述什么是“响应式Web 设计",并列举2个响应式Web设计的实现方式。
【问题2】综合王工和李工的提议,项目组完成了新商品交易平台的系统架构设计方案.新系统架构图如图5-1所示。请从选项(a)-j)中为架构图中(1)-(8)处空白选择相应的内容,补充支持高并发的Web应用系统架构设计图(a)Web 应用层(b)界面层(c)负载均衡层(d)CDN内容分发(e)主数据库(f)缓存服务器集群(g)从数据库(h)写操作(i)读操作(j)文件服务器集群
【问题3】根据李工的提议,新的B2C商品交易平台引入了主从复制机制。请针对交易平台的特点,简要叙述引入该机制的好处。

1、响应式Web设计是在开发和设计网页过程中产生的一种方式,它的目的是让内容布局能随用户使用显示器的不同而变化。响应方式:
(1)弹性网格和布局(2)图片(3)CSS media query
2、(1)d(2)c(3)f(4)a(5)(6)e h(7)(8)gi
3、(1)可扩展性更优采用单台数据库服务器,随着访问量增加,必然会产生访问瓶颈,而主从结构大大方便服务器扩容,不影响系统使用。(2)性能大大提升商务平台用户量大,并发访问高,主从方式采用一主多从,满足不同用户可以从不同数据库读取数据,提高访问速度。(3)相当于做了负载均衡一主多从相当于分担了主机任务,做了负载均衡。(4)保证数据安全主从方式实现了数据冗余,不会因某台机器硬件故障引起数据丢失。

<二十五>系统质量属性
某电子商务公司的主要业务是书籍、服装、家电和日用品的在线销售。随着公司业务发展和用户规模的不断扩大,现有的网上交易系统无法正常处理日益增大的请求流量,公司决策层决定升级其网上交易系统。在对该系统的升级方案进行设计和讨论时,公司的系统分析师王工提出采用基于高性能主机系统的方法进行系统升级,另外一位系统分析师李工则提出采用基于负载均衡集群的方法进行系统升级。公司的分析师和架构师对这两种思路进行讨论与评估,最终采纳了李工的方法。
【问题1】请从系统的可用性、可伸缩性和应用特点三个方面说明公司为何没有采用王工提出的方法。
【问题2】负载均衡通常分为传输层负载均衡和应用层负载均衡两类。请基于这种分类方式,说明基于DNS的负载均衡方法和基于HTTP 重定向服务器的负载均衡方法分别属于哪类负载均衡方法,并用200字以内的文字说明这两种方法实现负载均衡的方式。
【问题3】在确定使用基于负载均衡集群的系统升级方法后,李工给出了一个基于
LVS(Linux Virtual Server)的负载均衡集群实现方案。公司的系统分析师在对现有系统进行深入分析的基础上,认为以下两个实际情况对升级方案影响较大,需要对该方案进行改进。
1.系统需要为在线购物提供购物车功能,用来临时存放选中的产品。2.系统需要保证向所有的VIP用户提供高质量的服务。针对上述描述,首先说明每种情况分别会引入哪些与负载均衡相关的问题,并用200字以内的文字说明针对不同的问题,应该如何改进李工的解决方案。

【问题1】王工提出的方案是采用高性能的主机系统实现系统升级。从可用性角度看,采用高性能的主机系统很难实现系统的冗余机制,当发生故障后会导致整个系统会失去响应能力,从而无法保证系统的高可用性;从可伸缩性角度看,采用高性能的主机系统,升级服务器的成本与获得的相应能力不成比例,整个系统的可扩展性较差;从应用特点来看,Internet中的Web应用绝大多数是简单任务、高强度的并发处理,而主机系统只是对于复杂单一任务和有限的并发处理具有高性能,不能同时处理大量的并发请求。因此,公司没有采用王工的方案。
【问题2】基于DNS的负载均衡属于传输层负载均衡技术,其主要原理是在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。基于HTTP重定向服务器的负载均衡属于应用层负载均衡技术,其主要原理是服务器使用HTTP重定向指令,将一个客户端重新路由到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后贡发请求,从而达到负载均衡的目的。
【问题3】第一种情况的描述说明系统需要提供应用会话数据支持。通常采用会话服务器机制在服务器端存放应用会话数据。但需要注意的是,应用会话数据大多数情况下是不可恢复的,因此采用支持应用会话数据容错的解决方案非常重要。第二种情况的描述要求保证特定用户的服务质量。当数据量不断增长时,由于在会话服务器或缓存服务器,业务服务器和会话(或缓存)服务器之间可能会反复移动较大量的数据,从而无法保证服务质量。因此,通常的做法是基于应用层负载均衡器实现客户端联系,将某个客户端的所有请求转发到相同的服务器,使得一个用户会话的所有请求被同一服务器实例处理,从而保证服务质量。

<二十六>mvc
【说明】某软件公司欲开发一个网络设备管理系统,对管理区域内的网络设备(如路由器和交换机等)进行远程监视和控制。公司的系统分析师首先对系统进行了需求分析,识别出如下3项核心需求:(a)目前需要管理的网络设备确定为10类20种,未来还将有新类别的网络设备纳入到该设备管理系统中;(b)不同类别的网络设备,监视和控制的内容差异较大;同一类网络设备,监视和控制的内容相似,但不同厂商的实现方式(包括控制接口格式、编程语言等)差异较大;(c)网络管理员能够在一个统一的终端之上实现对这些网络设备的可视化呈现和管理操作。针对上述需求,公司研发部门的架构师对网络设备管理系统的架构进行了分析与设计,架构师王工认为该系统可以采用MVC架构风格实现,即对每种网络设备设计一个监控组件,组件通过调用网络设备厂商内置的编程接口对监控指令进行接收和处理;系统管理员通过管理模块向监控组件发送监控指令,对网络设备进行远程管理;网络状态、监控结果等信息会在控制终端上进行展示。针对不同网络设备的差异,王工认为可以对当前的20种网络设备接口进行调研与梳理,然后通过定义统一操作接口屏蔽设备差异。李工同意王工提出的MVC架构风格和定义统一操作接口的思路,但考虑到未来还会有新类别的网络设备接入,认为还需要采用扩展接口的方式支持系统开发人员扩展或修改现有操作接口。公司组织专家进行架构评审,最终同意了王工的方案和李工的改进意见。
【问题1】请用300字以内的文字解释什么是MVC架构风格以及其中的组件交互关系,并根据题干描述,指出该系统中的M、V、C分别对应什么。
【问题2】扩展接口模式结构通常包含四个角色:基础接口、组件、扩展接口和客户端,它们之间的关系如下图所示。其中每个扩展接口需要通过扩展基础接口获得基本操作能力,然后加入自己特有的操作接口,并通过设置全局唯一接口ID对自身接口进行标识。每个具体的组件需要实现扩展接口完成实际操作。客户端不与组件直接交互,而需要通过与扩展接口交互提出调用请求,扩展接口根据请求查找并选择合适的实现组件响应客户端请求。请根据下图所示和题干描述,指出扩展接口模式结构中的四个角色分别对应网络设备管理系统的哪些部分;并以客户端发起调用操作这一场景为例,填写表1中的(1)~(5)。

1、MVC架构风格最初是Smalltalk-80中用来构建用户界面时采用的架构设计风格。其中M代表模型(Model),V代表视图(View),C代表控制器(Controller)。在该风格中,模型表示待展示的对象,视图表示模型的展示,控制器负责把用户的动作转成针对模型的操作。模型通过更新视图的数据来反映自身的变化。在本系统中,模型(M)代表监控组件、视图(V)代表控制终端、控制器(C)代表管理模块。
2、1.扩展接口2.组件3.操作接口4.接口ID分析:各个角色与网络设备管理系统的对应关系为:基础接口对应统一操作接口;组件对应监控组件;扩展接口对应新网络设备的操作接口;客户端对应控制终端。

<二十七>web
【说明】某电子产品制造公司,几年前开发建设了企业网站系统,实现了企业宣传、产品介绍、客服以及售后服务等基本功能。该网站技术上采用了Web服务器、动态脚本语言PHP。
随着市场销售渠道变化以及企业业务的急剧拓展,该公司急需建立完善的电子商务平台。公司张工建议对原有网站系统进行扩展,增加新的功能(包括订单系统、支付系统、库存管理等),这样有利于降低成本、快速上线;而王工则认为原有网站系统在技术上存在先天不足,不能满足企业业务的快速发展,尤其是企业业务将服务全球,需要提供24小时不间断服务,系统在大负荷和长时间运行下的稳定性至关重要。建议采用应用服务器的Web开发方法,例如J2EE,为该企业重新开发新的电子商务平台。
【问题1】王工认为原有网站在技术上存在先天不足,不能满足企业业务的快速发展,根据你的理解,请用300字以内的文字说明原系统存在哪几个方面的不足。
【问题2】请简要说明应用服务器的概念,并重点说明应用服务器如何来保障系统在大负荷和长时间运行下的稳定性以及可扩展性。
【问题3】J2EE平台采用了多层分布式应用程序模型,实现不同逻辑功能的应用程序被封装到不同的构件中,处于不同层次的构件可被分别部署到不同的机器中。请填写图4-1中(1)~(5)处的空白,完成J2EE的N层体系结构。

1、PHP是面向过程的语言,只要业务流程发生变化,修改工作量很大,所以可修改性差,同时可复用性也差。PHP语言在可靠性方面比J2EE平台差,J2EE平台有大量增强可靠性的成熟解决方案,而PHP只是一种简单的脚本语言,在可靠性方面缺乏成熟解决方案。PHP对于不同的数据库采用不同的数据库访问接口,而Java通过JDBC来访问数据库,通过不同的数据库厂商提供的数据库驱动方便地访问数据库,访问数据库的接口比较统一。所以原架构在数据库连接方面修改起来工作量也是很大的。
2、应用服务器是指通过各种协议把商业逻辑曝露给客户端的程序。1、若系统负荷很大,可以布署多台应用服务,多台应用服务器分担任务,以达到性能要求。2、应用服务器可以通过灵活的增加服务器完成扩展,所以可扩展性很好。3、应用服务器可长时间稳定运行。因为当一台应用服务器出现故障时,可以将当前运行的事务转移至正常应用服务器上完成执行,不影响业务正常执行,从而保障高可靠性与稳定性。
3、(1)Applet(2)Servlet(3)EJB容器
(4)SessionBean(5)EntityBean

<二十八>质量属性

[说]某文化产业集团委托软件公司开发一套文化用品商城系统,业务涉及文化用品销售、定制、竞拍和点评等板块,以提升商城的信息化建设水平。该软件公司组织项目组完成了需求调研,现已进入到系统架构设计阶段。考虑到系统需求对架构设计决策的影响,项目组先列出了可能影响系统架构设计的部分需求如下:
(a)用户界面支持用户的个性化定制;(b)系统需要支持当前主流的标准和服务,特别是通信协议和平台接口;(c)用户操作的响应时间应不大于3秒,竞拍板块不大于1秒;(d)系统具有故障诊断和快速恢复能力;(e)用户密码需要加密传输;(f)系统需要支持不低于2G的数据缓存;(g)用户操作停滞时间超过定时限需要重新登录验证;(h)系统支持用户选择汉语、英语或法语三种语言之一进行操作。项目组提出了两种系统架构设计方案:瘦客户端C/S架构和胖客户端C/
S架构,经过对,上述需求逐条分析和讨论,最终决定采用瘦客户端C/S架构进行设计。

[问题1]在系统架构设计中,决定系统架构设计的非功能性需求主要有四类:操作性需求、性能需求、安全性需求和文化需求。请简要说明四类需求的含义。
[问题2]根据表1-1的分类,将题干所给出的系统需求(a)(h)分别填入(1)(4)表1-1需求分类

[问题3]请说明瘦客户端C/S架构能够满足题干中给出的哪些系统需求(只需要回答出三个系统需求)。

[问题1]系统性能需求(Performance Requirements):指响应时间、吞吐量、准确性、有效性、资源利用率等与系统完成任务效率相关的指标。可靠性、可用性等指标可归为
此类。安全性需求(Security Requirements):系统向合法用户提供服务并阻止非授权用户使
用服务方面的系统需求。操作性需求
(Operational Requirements):与用户操作使用系统相关的一些需求。文化需求(Cultural Requirements):带有文化背景因素的系统需求。
[问题2](1)(a)(b)(2)(c)(d)(f)(3)(e)(g)(4)(h)
[问题3]b,c,h

<二十九>软件质量属性

某软件开发公司欲为某电子商务企业开发一个在线交易平台,支持客户完成网上购物活动中的在线交易。在系统开发之初,企业对该平台提出了如下要求:(1)在线交易平台必须在1s内完成客户的交易请求。(2)该平台必须保证客户个人信息和交易信息的安全。(3)当发生故障时,该平台的平均故障恢复时间必须小于10s。(4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行硬件升级必须在6小时内完成。针对这些要求,该软件开发公司决定采用基于架构的软件开发方法,以架构为核心进行在线交易平台的设计与实现。
【问题1】软件质量属性是影响软件架构设计的重要因素。请用200字以内的文字列举六种不同的软件质量属性名称,并解释其含义。
【问题2】请对该在线交易平台的4个要求进行分析,用300字以内的文字指出每个要求对应何种软件质量属性;并针对每种软件质量属性,各给出2种实现该质量属性的架构设计策略。
【1】性能(Performance)、可用性(Availability)、可靠性(Reliability)、健壮性(Robustness)、安全性(Security)、可修改性(Modification)、可变性(Changeability)、易用性(Usability)、可测试性(Testability)、功能性(Functionality)和互操作性(Inter-
operation)等。这些质量属性的具体含义是:
(1)性能是指系统的响应能力,即要经过多长时间才能对某个事件做出响应,或者在某段时间内系统所能处理事件的个数。(2)可用性是系统能够正常运行的时间比例。(3)可靠性是指软件系统在应用或错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力。(4)健壮性是指在处理或环境中,系统能够承受压力或变更的能力。(5)安全性是指系统向合法用户提供服务的同时能够阻止非授权用户使用的企图或拒绝服务的能力。(6)可修改性是指能够快速地以较高的性能价格比对系统进行变更的能力。(7)可变性是指体系结构经扩充或变更成为新体系结构的能力。(8)易用性是衡量用户使用一个软件产品完成指定任务的难易程度。(9)可测试性是指软件发现故障并隔离、定位其故障的能力特性,以及在一定的时间和成本前提下,进行测试设计、测试执行的能力。(10)功能性是系统所能完成所期望工作的能力。
(11)互操作性是指系统与外界或系统与系统之间的相互作用能力。
【问题2】(1)在线交易平台必须在1s内完成客户的交易请求。该要求主要对应性能,可以采用的架构设计策略有增加计算资源、改善资源需求(减少计算复杂度等)、资源管理(并发、数据复制等)和资源调度(先进先出队列、优先级队列等)。(2)该平台必须严格保证客户个人信息和交易信息的保密性和安全性。该要求主要对应安全性,可以采用的架构设计策略有抵御攻击(授权、认证和限制访问等)、攻击检测(入侵检测等)、从攻击中恢复(部分可用性策略)和信息审计等。(3)当发生故障时,该平台的平均故障恢复时间必须小于lOs。该要求主要对应可用性,可以采用的架构设计策略有Ping/Echo、心跳、异常和主动冗余等。(4)由于企业业务发展较快,需要经常为该平台添加新功能或进行硬件升级。添加新功能或进行平台升级必须在6小时内完成。该要求主要对应可修改性,可以采用的架构设计策略有软件模块泛化、限制模块之间通信、使用中介和延迟绑定等。

<三十>数据库
【说明】某软件公司欲开发一个基于Web2.0的大型社交网络系统。就该系统的数据架构而言,李工决定采用公司熟悉的数据架构,使用通用的商用关系型数据库,系统内部数据采用中央集中方式存储。该系统投入使用后,初期用户数量少,系统运行平稳。6个月后,用户数出现了爆炸式增长,系统暴露出诸多问题,集中表现在:1.用户执行读写操作时,响应时间均变得很慢;2.随着系统功能的扩充,原有数据格式发生变化,又出现新的数据格式,维护困难;3.数据容量很快超过系统原有的设计上限,数据库扩容困难;4.软件系统不断出现右机,整个系统可用性较差。经过多次会议讨论,公司的王工建议采用NoSQL数据库来替代关系数据库,以解决上述问题。但李工指出NoSQL数据库出现时间不长,在使用上可能存在风险。公司技术人员对NoSQL数据库产品进行了认真测试,最终决定采用NoSQL数据库来替代现有的数据库系统。

【问题1】分别解释产生问题(1)~(4)的原因。
【问题2】请针对问题(1)~(4),分别指出NoSQL数据库的哪些特点促使公司最终采用了NoSQL数据库。
【问题3】请指出该系统采用NoSQL数据库时可能存在的问题。

【问题1】其原因主要是:(1)用户响应时间慢。大型社交网络系统要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强可以,但是应付上万次SQL写数据请求,硬盘I/O就已经无法承受了。特别是涉及到多表连接操作,会导致响应变慢。(2)数据格式变化。大型社交网络系统随着用户的使用,会不断地增加新的功能,导致原有数据格式发生变化,甚至出现新的数据格式。但关系数据库中采用元组方式组织数据,难以使用新型数据格式,难以维护。(3)数据容量超过设计上限。对于大型社交网络系统,往往会在很短时间内产生海量数据。关系数据库多采用中央数据存储,使得数据容量受限于前期设计的上限,很难实现数据容量的横向扩展。(4)系统可用性差:关系数据库采用中央数据存储,容易成为系统的性能瓶颈,单点故障很容易导致系统崩溃,负载过高往往导致系统出现宕机现象。

【问题3】该系统采用NoSQL数据库时可能存在的问题有:(1)NoSQL数据库的现有产品不够成熟,大多数产品处于初创期。(2)NoSQL数据库并未形成一定的标准,产品种类繁多,缺乏官方支持。(3)NoSQL数据库不提供对SQL的支持,学习和应用迁移成本较高。(4)NoSQL数据库支持的特性不够丰富,现有产品提供的功能比较有限。

<三十一>微服务架构
某公司拟开发一个网络约车调度服务平台,实现基于互联网的出租车预约与管理。公司的系统分析师王工首先进行了需求分析,得到的系统需求列举如下:系统的参与者包括乘客、出租车司机和平台管理员三类;系统能够实现对乘客和出租车司机的信息注册与身份认证等功能,并对乘客的信用信息进行管理,对出租车司机的违章情况进行审核;系统需要与后端的银行支付系统对接,完成支付信息审核、支付信息更新与在线支付等功能;针对乘客发起的每一笔订单,系统需要实现订单发起、提交、跟踪、撤销、支付、完成等业务过程的处理:系统需要以短信、微信和电子邮件多种方式分别为系统中的用户进行事件提醒。
【问题1】请说明微服务架构的优点和缺点。
【问题2】识别并设计微服务是系统开发过程中的一个重要步骤,请对题干需求进行分析,对微服务的种类和包含的业务功能进行归类,完成表1-1中的(1)~(4)。表1-1微服务名称及所包含业务的功能

【问题3】答对4条即可应用网关是实现微服务的主要技术之一,请简述应用网关的作用。
【问题1】微服务优点:(1)每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。(2)微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。(3)微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。(4)微服务能使用不同的语言开发。(5)去中心化。每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。微服务缺点:(1)很难在不采用分布式事务的情况下跨服务实现功能(2)测试工作更加困难(3)跨服务实现要求功能要求团队之间的紧密协作(4)部署复杂
【问题2】(1)支付信息审核(2)支付信息更新(3)在线支付(4)订单管理
【问题3】1、提供统一入口2、可以进行权限身份认证等安全管理3、可以根据流量进行限流4、数据缓存5、性能监控等6、异常重试7、服务降级

<三十二>设计模式
【说明】某软件企业为影音产品销售公司W开发一套在线销售系统,以提升服务的质量和效率。项目组经过讨论后决定采用面向对象方法开发该系统。在设计建模阶段需要满足以下设计要求:W公司经常进行促销活动。根据不同的条件(如订单总额、商品数量、产品种类等),公司可以提供百分比折扣或现金减免等多种促销方式供提交订单的用户选择。实现每种促销活动的代码量很大,且会随促销策略不同经常修改。系统设计中需要考虑现有的促销和新的促销,而不用经常地重写控制器类代码。该在线销售系统需要计算每个订单的税率,不同商品的税率及计算方式会有所区别。所以W公司决定在系统中直接调用不同商品供应商提供的税率计算类,但每个供应商的类提供了不同的调用方法。系统设计中需要考虑如果公司更换了供应商,应该尽可能少地在系统中修改或创建新类。项目组架构师决定采用设计模式来满足上述设计要求,并确定从当前已经熟练掌握的设计模式中进行选择,这些设计模式包括:适配器模式(Adapter)、构造器模式(Builder)、命令模式(Command)、外观模式(Facade)、中介模式(Mediator)、原型模式(Prototype)、代理模式(Proxy)、状态模式(State)和策略模式(Strategy)等。

【问题1】设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用200字以内文字说明三者的作用。
【问题2】请将项目组已经掌握的设计模式按照其作用分别归类到创建型、结构型和行为型模式中。
【问题3】针对题目中所提出的设计要求(1)和(2),项目组应该分别选择何种设计模式?请分别用200字以内文字说明具体的解决方案。
【问题1】创建型模式主要用于创建对象,为设计类实例化新对象提供指南。结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南。行为型模式主要用于描述类或对象的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。
【问题2】创建型模式:构造器模式、原型模式。结构型模式:适配器模式、外观模式、代理模式。行为型模式:命令模式、中介模式、状态模式和策略模式。
【问题3】(1)策略模式解决方案:在具有公共接口的独立类中定义每个计算。可以利用该模式创建各种促销类,它们从同一个超类继承。每个类都有相同名称的标准接口方法,用于根据订单编号计算将要折扣的金额总数。计算每个促销的内部代码对促销类来说完全不同。(2)适配器模式解决方案:增加一个类作为适配器,转换类的接口到客户端类期望的另一个接口。实现一个适配器类,这个类为系统的其他部分提供了一个不变的方法供调用,为了集成不同商品供应商提供的税率计算类,编写一个适配器类的子类,包含调用购买类所需的代码。该子类将系统的调用映射到某个供应商的税率计算类。如果要更换供应商,那么只需要写一个新的适配器子类,其他保持不变。

<三十三>安全
【说明】某软件公司拟开发一套信息安全支撑平台,为客户的局域网业务环境提供信息安全保护。该支撑平台的主要需求如下:1.为局域网业务环境提供用户身份鉴别与资源访问授权功能;2.为局域网环境中交换的网络数据提供加密保护;3.为服务器和终端机存储的敏感持久数据提供加密保护;4.保护的主要实体对象包括局域网内交换的网络数据包、文件服务器中的敏感数据文件、数据库服务器中的敏感关系数据和终端机用户存储的敏感数据文件;5.
服务器中存储的敏感数据按安全管理员配置的权限访问;6.业务系统生成的单个敏感数据文件可能会达到数百兆的规模;7.终端机用户存储的敏感数据为用户私有;8.局域网业务环境的总用户数在100人以内。
【问题1】在确定该支撑平台所采用的用户身份鉴别机制时,王工提出采用基于口令的简单认证机制,而李工则提出采用基于公钥体系的认证机制。项目组经过讨论,确定采用基于公钥体系的机制,请结合上述需求具体分析采用李工方案的原因。
【问题2】针对需求7,项目组经过讨论,确定了基于数字信封的加密方式,其加密后的文件结构如图所示。请结合需求说明对文件数据进行加密时,应采用对称加密的块加密方式还是流加密方式,为什么?并对该机制中的数据加密与解密过程进行描述

【问题3】对数据库服务器中的敏感关系数据进行加密保护时,客户业务系统中的敏感关系数据主要是特定数据库表中的敏感字段值,客户要求对不同程度的敏感字段采用不同强度的密钥进行防护,且加密方式应尽可能减少安全管理与应用程序的负担。目前数据库管理系统提供的基本数据加密方式主要包括加解密API和透明加密两种,请用300字以内的文字对这两种方式进行解释,并结合需求说明应采用哪种加密方式。

【问题1】(1)基于口令的认证方式实现简单,但由于口令复杂度及管理方面的原因,易受到认证攻击;而在基于公钥体系的认证方式中,由于其密钥机制的复杂性,同时在认证过程中私钥不在网络上传输,因此可以有效防止认证攻击,与基于口令的认证方式相比更为安全。
(2)按照需求描述,在完成用户身份鉴别后,需依据用户身份进一步对业务数据进行安全保护,且受保护数据中包含用户私有的终端机数据文件,在基于口令的认证方式中,用户口令为用户和认证服务器共享,没有用户独有的直接秘密信息,而在基于公钥的认证方式中,可基于用户私钥对私有数据进行加密保护,实现更加简便。(3)基于公钥体系的认证方式协议和计算更加复杂,因此其计算复杂度要高于基于口令的认证方式,但业务环境的总用户数在100人以内,用户规模不大,运行环境又为局域网环境,因此基于公钥体系的认证方式可满足平台效率要求。

【问题2】应采用流加密方式。因为需求中提及“单个敏感数据文件可能会达到数百兆的规模”,文件数据量较大,使用流加密方式可以获得更高的加解密效率。数据加密与解密过程如下:其加密过程为:首先生成一个对称密钥,使用用户公钥加密这个对称密钥后存储在文件头,然后用生成的对称密钥加密文件数据存储;其解密过程为:用户首先使用自己的私钥解密被加密的对称密钥,再用该对称密钥解密出数据原文。
【问题3】目前数据库管理系统提供的基本数据加密支持主要有以下两种:(1)加解密APl:
数据库管理系统提供可在SQL,语句中调用的加解密APl,应用可以利用这些API构建自己的基础架构,对数据进行加密保护。(2)透明加密:安全管理员为数据库敏感字段选择加密方式及密钥强度,应用访问受保护数据时只需使用口令打开或关闭密钥表,对数据的加密和解密由数据库管理系统自动完成。加解密API方式的灵活性强,但构建和管理复杂;而透明加密方式管理简单,应用程序负担轻,但灵活性较差。用户要求尽可能减少安全管理与应用程序的负担,因此应选择透明加密方式。

<三十四>mvc

【说明】某商业银行欲开发一套个人银行系统,为用户提供常见的金融服务,包括转账、查询、存款变更和个人信息管理等功能。该软件除了业务需求外,还有一些特殊的表现层需求:A.根据用户级别的不同,界面和可用功能是不同的;B.支持Web、Windows、手机App等多种不同类型的界面;C.考虑到将来功能的扩展,需要系统支持界面的定制以及动态生成等功能,以降低系统维护和新功能发布的成本。经过对需求的讨论,该银行初步决定采用MVC模式设计该个人银行系统的表现层,采用XML作为GUI的描述语言,并应用XML,的界面管理技术来实现灵活的界面配置、界面动态生成和界面定。
【问题1】MVC模式强制性地将一个应用处理流程按照模型、视图、控制的方式进行分离,三者的协作关系如图所示。

【问题2】请从设计模式的角度,简要说明设十方案采用XML作为GUI描述语言的机制。
【问题3】基于XML的界面管理技术可实现灵舌的界面配置、界面动态生成和界面定制,其思路是用XML生成配置文件及界面所需的元数居,按不同需求生成界面元素及软件界面,其技术框架如图所示,回答1-3 并简要解释说明其含义

【问题1】(1)选择视图;(2)业务处理;(3)状态查询MVC模式对该个人银行系统的作用:(1)允许多种界面的扩展,视图的变更与增加,与模型无关;(2)易于维护,控制器和视图随着模型的扩展而扩展,只要保持公共接口,控制器和视图的旧版本可以继续使用;(3)可支持功能强大的用户界面。
【问题2】从设计模式的角度来说,整个XML表现层解析的机制是一种策略模式。在调用显示GUI时,不是直接调用特定的表现技术的API,而是装载GUI对应的XML配置文件,然后根据特定的表现技术的解析器解析XML,得到GUI视图实例对象。这样,对于GUI开发人员来说,GUI视图只需要维护一套XML文件即可。
【问题3】(1)界面定制;(2)界面动态生成;(3)界面配置界面定制:对用户界面的动态修改过程,在软件运行过程中,用户可按照需求和使用习惯,对界面元素的属性进行修改。软件运行结束后,界面定制的结果被保存。界面动态生成:系统通过DOMAPI读取XML配置文件的表示层信息,通过数据存取类读取数据库中的数据层信息,运行时由界面元素动态生成界面。界面配置和定制模块在软件运行前后修改配置文件、更改界面内容。界面配置:对用户界面的静态定义,通过读取配置文件的初始值对界面配置。由界面配置对软件功能进行裁剪、重组和扩充,以实现特殊需求。
<三十五>数据库
【说明】某软件公司欲开发一个基于Web 2.0的大型社交网络系统。就该系统的数据架构而言,李工决定采用公司熟悉的数据架构,使用通用的商用关系型数据库,系统内部数据采用中央集中方式存储。该系统投入使用后,初期用户数量少,系统运行平稳。6个月后,用户数出现了爆炸式增长,系统暴露出诸多问题,集中表现在:1.用户执行读写操作时,响应时间均变得很慢;2.随着系统功能的扩充,原有数据格式发生变化,又出现新的数据格式,维护困难;3.数据容量很快超过系统原有的设计上限,数据库扩容困难;4.软件系统不断出现宕机,整个系统可用性较差。经过多次会议讨论,公司的邹月平邹工建议采用NoSQL数据库来替代关系数据库,以解决上述问题。但李教授指出NoSQL数据库出现时间不长,在使用上可能存在风险。公司技术人员对NoSQL数据库产品进行了认真测试,最终决定采用NoSQL数据库来替代现有的数据库系统。

【问题1】请比较关系数据库与NoSQL数据的特点,如表4-1所示,以此来说明该系统更适合采用NoSQL数据库。请完成表4-1中的(1)~(5)处空白。表4-1关系数据库与NoSQL 数据库特征比较

【问题2】公司最终决定采用邹工的方案,同时配合分布式缓存技术减轻数据库服务器压力,目前有Memcache和Redis两种方案,请从数据类型、持久化和分布式存储三个方面比较两种技术的区别。

【问题1】(1)弱一致性(2)结构化数据(3)高(强)事务性(4)强(5)有限数据
【问题2】在数据类型方面:Memcache支持简单Key/Value类型,而Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。在持久化方面:
Memcache不支持数据持久化,Redis支持支持数据持久化。在分布式存储方面:Memcache服务器需要通过hash一致化来支撑主从结构,而Redis支持多种方式,主从、sentinel、cluster等。

<三十六>质量属性
【说明】某软件公司拟为某市级公安机关开发一套特种车辆管理与监控系统,以提高特种车辆管理的效率和准确性。在系统需求分析与架构设计阶段,用户提出的部分需求和关键质量属性场景如下:(a)系统用户分为管理员、分管领导和普通民警等三类;(b)正常负载情况下,系统必须在0.5秒内对用户的车辆查询请求进行响应;(c)系统能够抵御99.999%的黑客攻击;(d)系统的用户名必须以字母开头,长度不少于5个字符;(e)对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;(f)网络失效后,系统需要在2分钟内发现并启用备用网络系统;(g)在系统升级时,需要保证在1个月内添加一个新的消息处理中间件;(h)查询过程中涉及到的车辆实时视频传输必须保证20帧/秒的速率,且画面具有600?80的分辨率;()更改系统加密的级别将对安全性和性能产生影响;(j)系统主站点断电后,需要在3秒内将请求重定向到备用站点;
(k)假设每秒中用户查询请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的查询请求”这一要求是可以实现的;(l)对用户信息数据的授权访问必须保证99.999%的安全性;(m)目前对“车辆信息实时监控“业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;(n)更改系统的Web界面接口必须在1周内完成;(o)系统需要提供远程调试接口,并支持系统的远程调试。在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。
【问题1】在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图1中(1)、(2)空白处;并选择题干描述中的(a)(o),将恰当的序号填入(3)(6)空白处,完成该系统的效用树。

【问题2】在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点请从题干描述中的(a)~(o)各选出1个属于系统架构风险、敏感点和权衡点的描述。
【问题3】该项目的四种质量属性分别用什么设计策略实现?(每种举例2个,只写名词即可)

【问题2】(m)描述的是系统架构风险;(e)描述的是敏感点;(i)描述的是权衡点。

【问题3】可用性|心跳、Ping/Eche、冗余、进程监视器
可修改性|抽象、信息隐藏、限制通信路径、运行时注册
性能|优先级队列、增加十锦资原、减少计算开销、引入并发机制、采用资源调度等。
安全性|用户认证,用户摆权,追踪市计,限制方问
<三十七>wbe和安全和嵌入式
【说明】随着人们生活水平的提高,人们对于物质文化生活要求提高的同时,对于居家安全也越来越重视。某软件公司长期从事智能移动应用开发,现决定开发一套适用于家庭使用的便捷式智能安防系统。系统包括两个层面,其一为硬件层面,基于嵌入式操作系统实现动态拍摄,并上传到视频服务器;其二为用户软件层面,基于Web界面,用户通过安全认证后可在线查看监控视频。项目组召开会议对以下需求进行了重点讨论:(1)系统终端用户的界面呈现较丰富,包括图片、视频及语音消息。
(3)付费VIP客户视频可以保存18个月,普通用户视频只能保存1个月,滚动覆盖。(3)系统上线后需应对大量客户端并发请求处理,并发用户数可能会有上万人的规模;系统预期用户呈明显地域集中分布特征。
【问题1】项目组在讨论实现需求(3)的技术方案时,首先确定了以下技术原则:(a)系统中用户信息按类别划分不同数据库或表存放。(b)系统应提供热备份机制以防止服务器意外失效。(c)为满足大规模并发处理要求,系统软硬件投入可根据需要追加。项目组经过集思广益,抽取了HTML静态化、缓存、P2P、集群与镜像、负载均衡等候选技术手段。请结合需求(3)及相应技术原则,分析上述技术手段在本项目中的可行性,将结果填入表格5-1中。
表5-1技术手段可行性分析

【问题2】本项目涉及到了嵌入式系统的知识。根据你的理解,请用300宇以内文字说明嵌入式系统的主要特点。

【问题3】为了提高系统的安全性和可靠性,便于应用软件的可重用性,需要选择一款满足安防要求的嵌入式操作系统,并在操作系统之上开发视频监控软件。请根据你对嵌入式操作系统选择方法的理解,判断表5-2给出的有关选择嵌入式操作系统的观点是否正确。表5-2选择嵌入式操作系统的8种观点
【问题1】(1)HTML静态化手段可实现对系统经常访问的网页进行静态化以提高系统访问效率,但系统页面通常需要根据数据库中的用户信息以及用户的选择动态显示。因此不适合采用。(2)缓存技术手段:系统应用需要频繁访问数据库,可以对经常访问的数据建立缓存,以提高并发访问效率。因此适合。(3)p2p视频播放技术:视频播放实现边下边播完善用户体验,节省服务器带宽,降低成本,支持边下边播断点续传,支持多源下载,以提高并发访问效率。因此适合。(4)根据需求(3),系统需有效处理大量并发请求,且系统预期用户呈明显地域集中分布特征,因此可以采用集群与镜像手段提高用户的并发访问效率,且技术原则(b)要求系统应提供热备份机制以防止服务器意外失效,因此可以采用镜像机制提高系统的可靠性,根据题干中技术原则(c),又可根据需要追加集群与镜像所需的软硬件投入。因此适合。(5)负载均衡将是大型Web应用解决高负荷访问和大量并发请求时常用的有效解决方法,在系统采用集群和镜像技术手段时,负载均衡也是系统必须采用的相应配合手段。因此适合。综上不难看出,除HTML静态化手段外,其他四种技术手段均可应用于本系统,以提高大规模用户并发访问的处理效率。

【问题1】(1)HTML静态化手段可实现对系统经常访问的网页进行静态化以提高系统访问效率,但系统页面通常需要根据数据库中的用户信息以及用户的选择动态显示。因此不适合采用。(2)缓存技术手段:系统应用需要频繁访问数据库,可以对经常访问的数据建立缓存,以提高并发访问效率。因此适合。(3)p2p视频播放技术:视频播放实现边下边播完善用户体验,节省服务器带宽,降低成本,支持边下边播断点续传,支持多源下载,以提高并发访问效率。因此适合。(4)根据需求(3),系统需有效处理大量并发请求,且系统预期用户呈明显地域集中分布特征,因此可以采用集群与镜像手段提高用户的并发访问效率,且技术原则(b)要求系统应提供热备份机制以防止服务器意外失效,因此可以采用镜像机制提高系统的可靠性,根据题干中技术原则(c),又可根据需要追加集群与镜像所需的软硬件投入。因此适合。(5)负载均衡将是大型Web应用解决高负荷访问和大量并发请求时常用的有效解决方法,在系统采用集群和镜像技术手段时,负载均衡也是系统必须采用的相应配合手段。因此适合。综上不难看出,除HTML静态化手段外,其他四种技术手段均可应用于本系统,以提高大规模用户并发访问的处理效率。

【问题2】(1)系统专用性强。嵌入式系统是针对具体应用的专门系统。它的个性化很强,软件和硬件结合紧密。一般要针对硬件进行软件的开发和移植,根据硬件的变化和增减对软件进行修改。(2)系统实时性强。许多嵌入式系统对外部事件要求在限定的时间内及时作出响应,具有实时性。根据实时性的强弱,通常将嵌入式系统分为实时嵌入式系统和非实时嵌入式系统,其中大部分为实施嵌入式系统。
(3)软硬件依赖性强。嵌入式系统的专用性决定了其软硬件的互相依赖性很强,两者必须协同设计,以达到共同实现预定功能的目的,并满足性能、成本和可靠性等方面的严格要求。(4)处理器专用。嵌入式系统的处理器一般是为某一特定目的和应用而专门设计的。通常具备功耗低、体积小和集成度高等特点,能够将许多在通用计算机上需要由板卡完成的任务和功能集成到芯片内部,从而有利于嵌入式系统的小型化和移动能力的增强。(5)多种技术紧密结合。嵌入式系统通常是计算机技术、半导体技术、电力电子技术、机械技术与各行业的具体应用相结合的产物。通用计算机技术也离不开这些技术,但它们相互结合的紧密程度不及嵌入式系统。(6)系统透明性。嵌入式系统在形态上与通用计算机系统差距甚大。它的输入设备往往不是常见的鼠标和键盘之类的设备,甚至不用输出装置,用户可能根本感觉不到它所使用的设备中有嵌入式系统的存在,即使知道,也不必关心嵌入式系统的相关情况。(7)系统资源受限。嵌入式系统为了达到结构紧凑、高可靠性和低成本的目的,其存储容量、l/0设备的数量和处理能力都比较有限。
【问题3】(1)v(2)?(3)√(4)V(5)
V(6)V(7)?(8)V

<三十八>构件集成
【说明】随着信息化的发展,某保险集团公司的中心账务系统,从区域中心模式已经升级到全国中心模式。但是处理各种代收代付业务的中间业务系统,目前仍然采用区域中心模式,由各区域分部自行负责,使得集团总部对于中间业务管理比较困难。因此,集团总部计划将中间业务系统全部升级到总部统一管理模式。各区域分部采用基于web的中间业务系统,均为各区域自行建设的,系统的硬件平台、软件系统、数据模式等均有非常大的差异。为统一管理,集团总部决定重新开发一套集中控制模式的中间业务系统,用来替代各区域的中间业务系统,但要求能够支持目前各区域的所有中间业务。
【问题1】在如何对待遗留系统上,项目组存在两种不同的策略:淘汰策略和继承策略。请简要解释这两种策略,并说明新开发的中间业务系统适合采用哪种策略及其原因。

【问题2】中间业务系统中,最为核心的是业务数据。因此,在新旧系统切换时存在一项重要的工作:数据迁移。考虑到各区域中间业务系统的巨大差异,因此需要做好数据迁移前的准备工作。请简要说明数据迁移准备工作的内容。
【问题3】项目组邹工提出采用REST架构风格设计实现该中间业务系统,而薛工提出采用RPC风格来实现该系统,项目组经过热烈的讨论之后决定采用邹工的方案。请根据你对于这两种模式的理解,用300字描述这两种风格的不同之处,以及REST风格的设计原则包括哪些。

【问题1】(1)淘汰策略:遗留系统的技术含量低,具有较低的业务价值,因此需要全面重新开发新系统以替代遗留系统;一般是企业的业务发生了根本变化,遗留系统已经基本上不再适应企业运作的需要;或者是遗留系统的维护人员流失,维护文档资料丢失。评价后发现,开发新系统比维护与改造旧系统从成本上更经济合算。(2)继承策略:遗留系统技术含量低,已经满足企业运作的功能或性能要求,但有较高的业务价值,目前企业的业务尚需依赖该遗留系统。因此,开发系统替代遗留系统时,需要完全兼容遗留系统的功能模型和数据模型。适合采用的是继承策略。因为集团总部中心需要管理所有中间业务,而目前的各区域系统从技术上不满足全国中心的需求,需要重新开发新的中间业务系统;同时,新系统必须支持当前各区域的所有中间业务。因此,必须完全兼容目前各系统的功能模型和数据模型。
【问题2】(1)待迁移数据源的详细说明,包括数据的存放方式、数据量和数据的时间跨度。(2)建立新旧系统数据库的数据字典,对现有系统的历史数据进行质量分析,以及新旧系统数据结构的差异分析。(3)新旧系统代码数据的差异分析。(4)建立新旧系统数据库表的映射关系,对无法映射字段的处理方法。(5)开发或购买、部署ETL工具。(6)编写数据转换的测试计划和校验程序。(7)制定数据转换的应急措施。
【问题3】1、REST相对于RPC更为轻量化,RPC服务提供方与调用方接口依赖太高,会导致编码格式的复杂性,而REST服务提供方和调用方的依赖只是依靠定义好的规则,不存依赖问题。2、REST服务很好的实现了跨平台,任何一个语言(JavaScript、Vue、HTML5、Bootstap等)的调用方都可以根据接口定义来实现,而RPC服务对平台有要求限制,在某些情况下很难实现复用。3、Rest 完全通过HTTP 协议实现的,使用HTTP协议处理数据通信。所以REST架构对资源的操作就包括了HTTP协议中提供的GET、POST、PUT、PATCH、DELETE、COPY、HEAD等众多操作方法
5条关键原则包括:(1)网络上的所有事物都被抽象为资源。(2)每个资源对应一个唯一的资源标识。(3)通过通用的连接件接口对资源进行操作。(4)对资源的各种操作不会改变资源标识。(5)所有的操作都是无状态的。

<三十九>软件架构风格

【说明】某软件公司为其新推出的字处理软件设计了一种脚本语言,专门用于开发该字处理软件的附加功能插件。为了提高该语言的编程效率,公司组织软件工具开发部门为脚本语言研制一套集成开发环境。软件工具开发部门根据字处理软件的特点,对集成开发环境进行了需求分析,总结出以下3项核心需求:1集成开发环境需要提供对脚本语言的编辑、语法检查、解释、执行和调试等功能的支持,并要实现各种功能的灵活组合、配置与替换。2集成开发环境需要提供一组可视化的编程界面,用户通过对界面元素拖曳和代码填充的方式就可以完成功能插件核心业务流程的编写与组织。3在代码调试功能方面,集成开发环境需要实现在脚本语言编辑界面中的代码自动定位功能。具体来说,在调试过程中,编辑界面需要响应调试断点命中事件,并自动跳转到当前断点处所对应的代码。针对上述需求,软件工具开发部门对集成开发环境的架构进行分析与设计,王工认为该集成开发环境应该采用管道一过滤器的架构风格实现,李工则认为该集成开发环境应该采用以数据存储为中心的架构风格来实现。公司组织专家对王工和李工的方案进行了评审,最终采用了李工的方案。
【问题1】请用200字以内的文字解释什么是软件架构风格,并从集成开发环境与用户的交互方式、集成开发环境的扩展性、集成开发环境的数据管理三个方面说明为什么最终采用了李工的设计方案。
【问题2】在对软件系统架构进行设计时,要对架构需求进行分析,针对特定需求选择最为合适的架构风格,因此实际的软件系统通常会混合多种软件架构风格。请对核心需求进行分析,说明为了满足需求(2)和(3),分别应采用何种架构风格,并概要说明采用相应架构风格后的架构设计过程。

【问题1】软件架构风格是指描述特定软件系统组织方式的惯用模式。组织方式描述了系统的组成构件和这些构件的组织方式,惯用模式则反映众多系统共有的结构和语义。从集成开发环境与用户的交互方式看,用户通常采用交互式的方式对脚本语言进行编辑、解释执行与调试。在这种情况下,采用以数据存储为中心的架构风格能够很好地支持交互式数据处理,而管道一过滤器架构风格则对用户的交互式数据处理支持有限。从集成开发环境的扩展性来看,系统核心需求要求实现各种编辑、语法检查、解释执行等多种功能的灵活组织、配置与替换。在这种情况下,采用以数据存储为中心的架构风格,以数据格式解耦各种功能之间的依赖关系,并可以灵活定义功能之间的逻辑顺序。管道一过滤器架构风格同样以数据格式解耦数据处理过程之间的依赖关系,但其在数据处理逻辑关系的灵活定义方面较差。从集成开发环境的数据管理来看,集成开发环境需要支持脚本语言、语法树(用于检查语法错误)、可视化模型、调试信息等多种数据类型,并需要支持数据格式的转换。以数据存储为中心的架构将数据存储在统一的中心存储器中,中心存储器能够表示多种数据格式,并能够为数据格式转换提供各种支持。管道一过滤器架构风格通常只能支持有限度的数据格式,并且在数据格式转换方面的灵活性较差。
【问题2】为了满足需求(2),应该采用解释器架构风格。具体来说,需要:①为可视化编程元素及其拖拽关系定义某种语言,并描述其语法与语义;②编写解释器对该语言进行解释;
③生成对应的脚本语言程序。为了满足需求(3),应该采用隐式调用架构风格。具体来说,首先需要定义“断点在调试过程中命中”这一事件,并实现当断点命中后的屏幕定位函数。集成开发环境维护一个事件注册表结构,将该事件与屏幕定位函数关联起来形成注册表中的一个记录项。在调试过程中,集成开发环境负责监听各种事件,当“断点在调试过程中命中”这一事件发生时,集成开发环境查找事件注册表,找到并调用屏幕定位函数,从而实现脚本语言编辑界面与调试代码的自动定位。

<四十一>uml
【问题2】用例图包括哪几个基本元素,并用300字以内的文字进行简要说明。
【问题3】在00A方法中,构建用例模型一般需要经历几个阶段。

【问题2】(1)参与者。参与者是指存在于系统外部并与系统进行交互的任何事物,既可以是使用系统的用户,也可以是其他外部系统和设备等外部实体。(2)用例。用例表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。(3)通信关联。通信关联表示的是参与者和用例之间的关系,或用例与用例之间的关系。箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者,箭尾所指方是对话的主动发起者。如果不想强调对话中的主动与被动关系,可以使用不带箭头的关联实线。
【问题3】在00A方法中,构建用例模型一般需要经历4个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用例模型,其中前三个阶段是必需的。

<四十二>设计模式
【说明】某软件公司承接了一个软件开发的项目,为共享单车租赁公司开发一套单车租赁服务系统,公司项目组对此项目进行了初步分析,具体描述如下:1)非注册用户可通过该系统进行注册,成为平台的合法用户,其中包括提供身份、手机号等信息,在线支付押金;2)非注册用户如果是支付宝会员的,可以通过支付宝的第三方服务直接关联注册成会员,且芝麻信用积分在500分以上的可不用支付押金,少于500分的需要支付押金;3)将采购的共享单车注册到租赁服务系统后方可投入使用。即将单车的标识信息录入到系统;4)注册用户通过手机或支付宝第三方服务登录到租赁服务系统中,通过扫描二维码或输入车辆编号以进行系统确认,系统后台确认车辆状态后下达解锁指令;5)用户在用完车辆后关闭车锁,车辆自身将闭锁状态上报到租赁服务系统中,完成车辆状态的更新和用户租赁费用结算;6)系统不定时推出积分奖励方案,每200积分可提升会员等级,不同等级的会员在费用结算时会有不同的折扣;7)系统开辟积分商城,会员可以使用积分去兑换或购买合作伙伴的产品及服务。8)每个合作伙伴的类提供了不同的调用方法,系统设计中需要考虑如果公司更换了合作伙伴,应该尽可能少地在系统中修改或创建新类。项目组薛工、邹工等分析之后达成一致:(1)采用面向对象分析与设计方法开发系统;(2)决定采用设计模式来满足上述设计要求,并确定从当前已经熟练掌握的设计模式中进行选择,这些设计模式包括:适配器模式(Adapter)、构造器模式(Builder)、命令模式(Command)、外观模式(Facade)、中介模式(Mediator)、原型模式(Prototype)、代理模式(Proxy)、状态模式(State)和策略模式(Strategy)等。
【问题1】请分析下面AR所列出的共享单车租赁服务系统中的概念类及其方法,在图1-1所示用例图(1)(12)处补充所缺失信息。A.用户,B.共享单车,C.用户管理,D.注册,E.注销,F.用户查询,G单车管理,H.租赁,1.归还,J.单车查询,K.费用管理,L.保证金管理,M.租赁费管理,N.数据存储管理,0.用户数据存储管理,P单车数据存储管理,Q.费用结算,R.身份认证

【问题2】设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用200字以内文字说明三者的作用。
【问题3】针对题目中所提出的设计要求(7)~(8),项目组应该分别选择何种设计模式?请分别用200字以内文字说明具体的解决方案。
【问题一】:(1)D.注册(2)F用户查询(3)C.用户管理(4)R.身份认证(5)A.用户(6)N.数据存储管理(7)P单车数据存储管理(8)1.归还(9)B.共享单车(10)K.费用管理(11)L.保证金管理(12)Q.费用结算
【问题二】:创建型模式主要用于创建对象,为设计类实例化新对象提供指南。结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南。行为型模式主要用于描述类或对象的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。
【问题三】:(1)策略模式解决方案:在具有公共接口的独立类中定义每个计算。可以利用该模式创建各种促销类,它们从同一个超类继承。每个类都有相同名称的标准接口方法,用于根据会员等级计算将要折扣的金额总数。(2)适配器模式解决方案:增加一个类作为适配器,转换类的接口到客户端类期望的另一个接口。实现一个适配器类,这个类为系统的其他部分提供了一个不变的方法供调用,为了集成不同商品供应商提供的优惠计算类,编写一个适配器类的子类,包含调用购买类所需的代码。该子类将系统的调用映射到某个供应商的优惠计算类。如果要更换供应商,那么只需要写一个新的适配器子类,其他保持不变。

<四十三>质量属性
【说明】某校园软件提供商拟升级目前正在使用的教务管理系统,以提高教务管理以及在线业务办理的效率和安全性。公司研发部门在需求分析的基础上,给出了新教务系统的架构设计。公司组织相关人员召开了针对架构设计的评估会议,会上用户提出的需求、架构师识别的关键质量属性场景和评估专家的意见等内容部分列举如下:(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求;(b)学生在线报名之后进行在线支付,必须保证99.999%
的安全性;(c)系统升级后采用学号做为用户名;(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统;(e)在高峰负载情况下,学生发起支付请求后系统必须在10秒内完成支付功能;(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能;(g)对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;(h)需要在30人月内为系统添加公司新购买的选课中间件;(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性;(i)主站点断电后,需要在3秒内将访问请求重定向到备用站点;(k)用户信息数据库授权必须保证99.999%可用;()系统需要根据校方的要求对界面风格进行修改,修改工作必须在1人月内完成;(m)系统需要部署在WAF的后面,以防止来自应用层的各种攻击。

【问题1】在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入下图中(1)、(2)空白处;并选择题干描述的(a)(m),填入(3)(6)空白处,完成该系统的效用树

【问题2】在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)~(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。
【问题3】WAF在信息系统等级保护中起着非常重要的作用。然而随着国家对于网络信息安全的重视,等级保护即将迎来2.0时代,请用300字以内文字简要说明等保2.0与1.0的区别。

【问题2】系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。根据上述分析可知题干描述中,(i)描述的是系统架构风险;(g)描述的是敏感点;
(f)描述的是权衡点。
【问题3】(1)覆盖各地区、各单位、各部门、各企业、各机构,也就是覆盖全社会。(2)覆盖所有保护对象,包括网络、信息系统,以及新的保护对象,云平台、物联网、工控系统、大数据、移动互联等各类新技术应用。(3)将可信验证列入各级别和各环节的主要功能要求。(4)《信息系统安全等级保护基本要求》改为:《网络安全等级保护基本要求》,与《网络安全法》保持一致。

<四十四>服务总线
2企业服务总线(Enterprise Service Bus,ESB)是传统中间件技术与XML、Web服务等技术结合的产物,主要支持异构系统集成。ESB基于内容的路由和过滤,具备复杂数据的传输能力,并可以提供一系列的标准接口。ESB的主要功能有:(1)服务位置透明性;(2)传输协议转换;(3)消息格式转换;(4)消息路由;(5)消息增强;(6)安全性;(7)监控与管理

<四十五>mvc
【说明】在目前的大环境下,某房企决定转移业务重心,将原来以售卖为主的业务转变为互联网租房业务,为此拟开发一套基于Web的云管业务系统,该系统按租户视图、系统管理视图以及业务视图划分为多个相应的Web应用,需求中还包含诸如文件处理、安全防护等扩展功能。
【问题1】在选择系统所采用的Web开发框架时,项目组对阿里巴巴开发的WebX框架与轻量级Spring MVC框架进行了对比分析,最终决定采用WebX框架进行开发。请用300字以内文字,从多应用支持、基础服务支持以及可扩展性这三个方面对WebX与Spring MVC框架进行对比。
【问题2】在确定系统采用的持久层技术方案时,项目组梳理了系统的典型持久化需求,对照需求对比分析了Hibernate和MyBatis两种持久化方案,请分析两种持久化方案对4-1中所列项目需求的支持情况,将候选答案序号A或B填入表4-1相应位置。【候选答案:A.支持B.不支持或支持差】表4-1两种持久化方案对项目需求的支持情况

【问题3】王工负责订单系统的数据库设计与开发,初步设计的核心订单关系模式为:
orders(order_no,customer_no,order_date,product_no,price,…?);考虑订单数据过多,单一表的设计会对系统性能产生较大影响,仅仅采用索引不足以解决性能问题。因此,需要将订单表拆分,按月存储。王工采用反规范化设计方法来解决,给出了相应的解决方案。常见的反规范化设计包括增加冗余列、增加派生列、重新组表和表分割。为解决题干所述需求,王工采用的是哪种方法?请用300字以内的文字解释说明该方法,并指出其优缺点。

【问题1】(1)基础服务支持:因为WebX在阿里巴巴和淘宝用了很多年,对于超大访问量的电子商务网站,WebX经受了考验,被证明是成熟可靠的。(2)多应用支持:WebX和Spring MVC一样,完全建立在Spring框架之上,可以使用Spring的所有特性。WebX被设计成多个层次,层次间的分界线很清晰,每个层次都足够开放和易于扩展。(3)可扩展性:
WebX对Spring做了扩展,一个组件可以扩展另一个组件,也可以被其他组件扩展。这种机制使WebX具有较好的扩展性,且比未经扩展的Spring更易使用。
【问题2】(1)A(2)B(3)B(4)A
(5)A(6)B
【问题3】王工采用的是表分割方式中的水平分割(分割参数是:“月”)。表分割包括水平分割与垂直分割两种形式:水平分割:按记录进行分割,不同的记录可以分开保存,每个子表的列数相同。分割的条件可能是某列或多列数据的值,如时间参数。垂直分割:按列进行分割,即把一条记录分开多个地方保存,每个子表的行数相同。把主键和一些行放到一个表,然后把主键和另外的列放到另一个表中,通过主键进行关联。优点:水平分割后可以降低在查询时需要读取的数据和索引页数,同时也降低了索引的层数,提高查询速度。缺点:水平分割会给应用增加复杂度,在查询时需要多个表名,查询所有数据需要union操作。

<四十六>开发进度
【说明】某软件公司拟开发一套电子商务系统,王工作为项目组负责人负责编制项目计划。由于该企业业务发展需要,CEO急于启动电子商务系统,要求王工尽快准备一份拟开发系统的时间和成本估算报告。项目组经过讨论后,确定出与项目相关的任务如表所示。其中,根据项目组开发经验,分别给出了正常工作及加班赶工两种情况下所需的时间和费用。

【问题1】请用400字以内文字说明王工拟编制的项目计划中应包括哪些内容。
【问题2】请根据上表,分别给出正常工作和最短工期两种情况下完成此项目所需的时间和费用。
【问题3】如果项目在系统调研阶段用了7天时间才完成,公司要求尽量控制成本,王工可在后续任务中采取什么措施来保证项目能按照正常工作进度完成?
【问题4】如果企业CEO想在34天后系统上线,王工应该采取什么措施来满足这一要求?这种情况下完成项目所需的费用是多少?
【问题1】王工在接到任务后开始项目计划的编制工作,编制的计划应包括:(1)项目总计划(包括范围计划、工作范围定义、活动定义、资源需求、资源计划、活动排序、费用估算、进度计划及费用计划)。(2)项目辅助计划(质量计划、沟通计划、人力资源计划、风险计划、采购计划)。项目计划用于协调所有项目计划编制文件、指导项目执行和控制的文件。其关键组成部分包括项目简介或概览、如何组织项目的描述、用于项目的管理和技术过程,描写所要完成的工作的部分、进度信息和预算信息。
【问题2】正常工作:时间41天,成本74200元;(2)最短工期:时间27天,成本91600元。
【问题3】在“B提交项目计划“和1安装部署”任务中采用加班工作措施,以使得项目能够按照正常工作进度完成。
【问题4】在“A系统调研”、“B提交项目计划”、“H测试修改”和1安装部署“任务中采用加班工作措施。项目所需费用79700元。

<47> REST风格
【说明】随着信息化的发展,某保险集团公司的中心账务系统,从区域中心模式已经升级到全国中心模式。但是处理各种代收代付业务的中间业务系统,目前仍然采用区域中心模式,由各区域分部自行负责,使得集团总部对于中间业务管理比较困难。因此,集团总部计划将中间业务系统全部升级到总部统一管理模式。各区域分部采用基于web的中间业务系统,均为各区域自行建设的,系统的硬件平台、软件系统、数据模式等均有非常大的差异。为统一管理,集团总部决定重新开发一套集中控制模式的中间业务系统,用来替代各区域的中间业务系统,但要求能够支持目前各区域的所有中间业务。

【问题1】在如何对待遗留系统上,项目组存在两种不同的策略:淘汰策略和继承策略。请简要解释这两种策略,并说明新开发的中间业务系统适合采用哪种策略及其原因。
【问题2】中间业务系统中,最为核心的是业务数据。因此,在新旧系统切换时存在一项重要的工作:数据迁移。考虑到各区域中间业务系统的巨大差异,因此需要做好数据迁移前的准备工作。请简要说明数据迁移准备工作的内容。
【问题3】项目组邹工提出采用REST架构风格设计实现该中间业务系统,而薛工提出采用RPC风格来实现该系统,项目组经过热烈的讨论之后决定采用邹工的方案。请根据你对于这两种模式的理解,用300字描述这两种风格的不同之处,以及REST风格的设计原则包括哪些。

【问题1】(1)淘汰策略:遗留系统的技术含量低,具有较低的业务价值,因此需要全面重新开发新系统以替代遗留系统;一般是企业的业务发生了根本变化,遗留系统已经基本上不再适应企业运作的需要;或者是遗留系统的维护人员流失,维护文档资料丢失。评价后发现,开发新系统比维护与改造旧系统从成本上更经济合算。(2)继承策略:遗留系统技术含量低,已经满足企业运作的功能或性能要求,但有较高的业务价值,目前企业的业务尚需依赖该遗留系统。因此,开发系统替代遗留系统时,需要完全兼容遗留系统的功能模型和数据模型。适合采用的是继承策略。因为集团总部中心需要管理所有中间业务,而目前的各区域系统从技术上不满足全国中心的需求,需要重新开发新的中间业务系统;同时,新系统必须支持当前各区域的所有中间业务。因此,必须完全兼容目前各系统的功能模型和数据模型。
【问题3】1、REST相对于RPC更为轻量化,RPC服务提供方与调用方接口依赖太高,会导致编码格式的复杂性,而REST服务提供方和调用方的依赖只是依靠定义好的规则,不存依赖问题。2、REST服务很好的实现了跨平台,任何一个语言(JavaScript、Vue、HTML5、Bootstap等)的调用方都可以根据接口定义来实现,而RPC服务对平台有要求限制,在某些情况下很难实现复用。3、Rest 完全通过HTTP协议实现的,使用HTTP协议处理数据通信。所以REST架构对资源的操作就包括了HTTP协议中提供的 GET、POST、PUT、PATCH、DELETE、COPY、HEAD等众多操作方法
5条关键原则包括:(1)网络上的所有事物都被抽象为资源。(2)每个资源对应一个唯一的资源标识。(3)通过通用的连接件接口对资源进行操作。(4)对资源的各种操作不会改变资源标识。(5)所有的操作都是无状态的。

(48)Nosql 和关系数据库
【问题1】

【问题2】公司最终决定采用邹工的方案,同时配合分布式缓存技术减轻数据库服务器压力,目前有Memcache和Redis两种方案,请从数据类型、持久化和分布式存储三个方面比较两种技术的区别。

【问题1】(1)弱一致性(2)结构化数据(3)高(强)事务性(4)强(5)有限数据
【问题2】
在数据类型方面:Memcache支持简单Key/
Value类型,而Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储。在持久化方面:Memcache不支持数据持久化,Redis支持支持数据持久化。在分布式存储方面:Memcache服务器需要通过hash一致化来支撑主从结构,而Redis支持多种方式,主从、sentinel、cluster等。

(49)架构风格
【说明】某软件公司承接了一个软件开发的项目,为共享单车租赁公司开发一套单车租赁服务系统,公司项目组对此项目进行了初步分析,具体描述如下:
1)非注册用户可通过该系统进行注册,成为平台的合法用户,其中包括提供身份、手机号等信息,在线支付押金;
2)非注册用户如果是支付宝会员的,可以通过支付宝的第三方服务直接关联注册成会员,且芝麻信用积分在500分以上的可不用支付押金,少于500分的需要支付押金;
3)将采购的共享单车注册到租赁服务系统后方可投入使用。即将单车的标识信息录入到系统;
4)注册用户通过手机或支付宝第三方服务登录到租赁服务系统中,通过扫描二维码或输入车辆编号以进行系统确认,系统后台确认车辆状态后下达解锁指令;
5)用户在用完车辆后关闭车锁,车辆自身将闭锁状态上报到租赁服务系统中,完成车辆状态的更新和用户租赁费用结算;
6)系统不定时推出积分奖励方案,每200积分可提升会员等级,不同等级的会员在费用结算时会有不同的折扣;
7)系统开辟积分商城,会员可以使用积分去兑换或购买合作伙伴的产品及服务。
8)每个合作伙伴的类提供了不同的调用方法,系统设计中需要考虑如果公司更换了合作伙伴,应该尽可能少地在系统中修改或创建新类。
项目组薛工、邹工等分析之后达成一致:
(1)采用面向对象分析与设计方法开发系统;
(2)决定采用设计模式来满足上述设计要求,并确定从当前已经熟练掌握的设计模式中进行选择,这些设计模式包括:适配器模式(Adapter)、构造器模式(Builder)、命令模式(Command)、外观模式(Facade)、中介模式(Mediator)、原型模式(Prototype)、代理模式(Proxy)、状态模式(State)和策略模式(Strategy)等。
【问题1】请分析下面AR所列出的共享单车租赁服务系统中的概念类及其方法,在图1-1所示用例图(1)(12)处补充所缺失信息。A.用户,B.共享单车,C.用户管理,D.注册,E.注销,F.用户查询,G单车管理,H.租赁,1.归还,J.单车查询,K.费用管理,L.保证金管理,M.租赁费管理,N.数据存储管理,0.用户数据存储管理,P单车数据存储管理,Q.费用结算,R.身份认证

【问题2】设计模式按照其应用模式可以分为三类:创建型、结构型和行为型,请用200字以内文字说明三者的作用。
【问题3】针对题目中所提出的设计要求(7)~(8),项目组应该分别选择何种设计模式?请分别用200字以内文字说明具体的解决方案。

【问题一】:(1)D.注册(2)F.用户查询(3)C.用户管理(4)R.身份认证(5)A.用户(6)N.数据存储管理(7)P单车数据存储管理(8)1.归还(9)B.共享单车(10)K.费用管理(11)L.保证金管理(12)Q.费用结算
【问题二】:创建型模式主要用于创建对象,为设计类实例化新对象提供指南。结构型模式主要用于处理类或对象的组合,对类如何设计以形成更大的结构提供指南。行为型模式主要用于描述类或对象的交互以及职责的分配,对类之间交互以及分配责任的方式提供指南。
【问题三】:(1)策略模式解决方案:在具有公共接口的独立类中定义每个计算。可以利用该模式创建各种促销类,它们从同一个超类继承。每个类都有相同名称的标准接口方法,用于根据会员等级计算将要折扣的金额总数。(2)适配器模式解决方案:增加一个类作为适配器,转换类的接口到客户端类期望的另一个接口。实现一个适配器类,这个类为系统的其他部分提供了一个不变的方法供调用,为了集成不同商品供应商提供的优惠计算类,编写一个适配器类的子类,包含调用购买类所需的代码。该子类将系统的调用映射到某个供应商的优惠计算类。如果要更换供应商,那么只需要写一个新的适配器子类,其他保持不变。

(50)Web
【说明】随着人们生活水平的提高,人们对于物质文化生活要求提高的同时,对于居家安全也越来越重视。某软件公司长期从事智能移动应用开发,现决定开发一套适用于家庭使用的便捷式智能安防系统。系统包括两个层面,其一为硬件层面,基于嵌入式操作系统实现动态拍摄,并上传到视频服务器;其二为用户软件层面,基于Web界面,用户通过安全认证后可在线查看监控视频。项目组召开会议对以下需求进行了重点讨论:(1)系统终端用户的界面呈现较丰富,包括图片、视频及语音消息。
(2)付费VIP客户视频可以保存18个月,普通用户视频只能保存1个月,滚动覆盖。(3)系统上线后需应对大量客户端并发请求处理,并发用户数可能会有上万人的规模;系统预期用户呈明显地域集中分布特征。
【问题1】项目组在讨论实现需求(3)的技术方案时,首先确定了以下技术原则:(a)系统中用户信息按类别划分不同数据库或表存放。(b)系统应提供热备份机制以防止服务器意外失效。(c)为满足大规模并发处理要求,系统软硬件投入可根据需要追加。项目组经过集思广益,抽取了HTML静态化、缓存、P2P、集群与镜像、负载均衡等候选技术手段。请结合需求(3)及相应技术原则,分析上述技术手段在本项目中的可行性,将结果填入表格5-1中。表5-1技术手段可行性分析

【问题2】本项目涉及到了嵌入式系统的知识。根据你的理解,请用300宇以内文字说明嵌入式系统的主要特点。
【问题3】为了提高系统的安全性和可靠性,便于应用软件的可重用性,需要选择一款满足安防要求的嵌入式操作系统,并在操作系统之上开发视频监控软件。请根据你对嵌入式操作系统选择方法的理解,判断表5-2给出的有关选择嵌入式操作系统的观点是否正确。表5-2选择嵌入式操作系统的8种观点

【问题1】(1)HTML静态化手段可实现对系统经常访问的网页进行静态化以提高系统访问效率,但系统页面通常需要根据数据库中的用户信息以及用户的选择动态显示。因此不适合采用。(2)缓存技术手段:系统应用需要频繁访问数据库,可以对经常访问的数据建立缓存,以提高并发访问效率。因此适合。(3)p2p视频播放技术:视频播放实现边下边播完善用户体验,节省服务器带宽,降低成本,支持边下边播断点续传,支持多源下载,以提高并发访问效率。因此适合。(4)根据需求(3),系统需有效处理大量并发请求,且系统预期用户呈明显地域集中分布特征,因此可以采用集群与镜像手段提高用户的并发访问效率,且技术原则(b)要求系统应提供热备份机制以防止服务器意外失效,因此可以采用镜像机制提高系统的可靠性,根据题干中技术原则(c),又可根据需要追加集群与镜像所需的软硬件投入。因此适合。(5)负载均衡将是大型Web应用解决高负荷访问和大量并发请求时常用的有效解决方法,在系统采用集群和镜像技术手段时,负载均衡也是系统必须采用的相应配合手段。因此适合。综上不难看出,除HTML静态化手段外,其他四种技术手段均可应用于本系统,以提高大规模用户并发访问的处理效率。

【问题2】(1)系统专用性强。嵌入式系统是针对具体应用的专门系统。它的个性化很强,软件和硬件结合紧密。一般要针对硬件进行软件的开发和移植,根据硬件的变化和增减对软件进行修改。
(2)系统实时性强。许多嵌入式系统对外部事件要求在限定的时间内及时作出响应,具有实时性。根据实时性的强弱,通常将嵌入式系统分为实时嵌入式系统和非实时嵌入式系统,其中大部分为实施嵌入式系统。
(3)软硬件依赖性强。嵌入式系统的专用性决定了其软硬件的互相依赖性很强,两者必须协同设计,以达到共同实现预定功能的目的,并满足性能、成本和可靠性等方面的严格要求。
(4)处理器专用。嵌入式系统的处理器一般是为某一特定目的和应用而专门设计的。通常具备功耗低、体积小和集成度高等特点,能够将许多在通用计算机上需要由板卡完成的任务和功能集成到芯片内部,从而有利于嵌入式系统的小型化和移动能力的增强。
(5)多种技术紧密结合。嵌入式系统通常是计算机技术、半导体技术、电力电子技术、机械技术与各行业的具体应用相结合的产物。通用计算机技术也离不开这些技术,但它们相互结合的紧密程度不及嵌入式系统。
(6)系统透明性。嵌入式系统在形态上与通用计算机系统差距甚大。它的输入设备往往不是常见的鼠标和键盘之类的设备,甚至不用输出装置,用户可能根本感觉不到它所使用的设备中有嵌入式系统的存在,即使知道,也不必关心嵌入式系统的相关情况。
(7)系统资源受限。嵌入式系统为了达到结构紧凑、高可靠性和低成本的目的,其存储容量、I/O设备的数量和处理能力都比较有限。
【问题3】(1)v(2)x(3)√(4)V(5)V(6)v(7)x(8)V

(51)质量属性
【说明】某校园软件提供商拟升级目前正在使用的教务管理系统,以提高教务管理以及在线业务办理的效率和安全性。公司研发部门在需求分析的基础上,给出了新教务系统的架构设计。公司组织相关人员召开了针对架构设计的评估会议,会上用户提出的需求、架构师识别的关键质量属性场景和评估专家的意见等内容部分列举如下:(a)在正常负载情况下,系统必须在0.5秒内响应用户的交易请求;(b)学生在线报名之后进行在线支付,必须保证99.999%
的安全性;(c)系统升级后采用学号做为用户名;(d)网络失效后,系统需要在2分钟内发现错误并启用备用系统;(e)在高峰负载情况下,学生发起支付请求后系统必须在10秒内完成支付功能;(f)系统拟采用新的加密算法,这会提高系统安全性,但同时会降低系统的性能;(g)
对交易请求处理时间的要求将影响系统数据传输协议和交易处理过程的设计;(h)需要在30人月内为系统添加公司新购买的选课中间件;(i)现有架构设计中的支付部分与第三方支付平台紧耦合,当系统需要支持新的支付平台时,这种设计会导致支付部分代码的修改,影响系统的可修改性;(j)主站点断电后,需要在3秒内将访问请求重定向到备用站点;(k)用户信息数据库授权必须保证99.999%可用;(1)系统需要根据校方的要求对界面风格进行修改,修改工作必须在1人月内完成;(m)系统需要部署在WAF的后面,以防止来自应用层的各种攻击。
【问题1】

【问题2】在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点,并进行合理的架构决策。请用300字以内的文字给出系统架构风险、敏感点和权衡点的定义,并从题干(a)~(m)中各选出1个对系统架构风险、敏感点和权衡点最为恰当的描述。
【问题3】WAF在信息系统等级保护中起着非常重要的作用。然而随着国家对于网络信息安全的重视,等级保护即将迎来2.0时代,请用300字以内文字简要说明等保2.0与1.0的区别。

(1)性能
(2)可修改性
(3)(e)
(4)(j)
(5)(1)
(6)(k)
【问题2】系统架构风险是指架构设计中潜在的、存在问题的架构决策所带来的隐患。敏感点是为了实现某种特定质量属性,一个或多个系统组件所具有的特性。权衡点是影响多个质量属性,并对多个质量属性来说都是敏感点的系统属性。根据上述分析可知题干描述中,(i)描述的是系统架构风险;(g)描述的是敏感点;(f)描述的是权衡点。
【问题3】(1)覆盖各地区、各单位、各部门、各企业、各机构,也就是覆盖全社会。(2)覆盖所有保护对象,包括网络、信息系统,以及新的保护对象,云平台、物联网、工控系统、大数据、移动互联等各类新技术应用。(3)将可信验证列入各级别和各环节的主要功能要求。(4)《信息系统安全等级保护基本要求》改为:《网络安全等级保护基本要求》,与《网络安全法》保持一致。

(52)微服务架构
某公司拟开发一个网络约车调度服务平台,实现基于互联网的出租车预约与管理。公司的系统分析师王工首先进行了需求分析,得到的系统需求列举如下:系统的参与者包括乘客、出租车司机和平台管理员三类;系统能够实现对乘客和出租车司机的信息注册与身份认证等功能,并对乘客的信用信息进行管理,对出租车司机的违章情况进行审核;系统需要与后端的银行支付系统对接,完成支付信息审核、支付信息更新与在线支付等功能;针对乘客发起的每一笔订单,系统需要实现订单发起、提交、跟踪、撤销、支付、完成等业务过程的处理:系统需要以短信、微信和电子邮件多种方式分别为系统中的用户进行事件提醒。
【问题1】请说明微服务架构的优点和缺点。
【问题2】识别并设计微服务是系统开发过程中的一个重要步骤,请对题干需求进行分析,对微服务的种类和包含的业务功能进行归类,完成表1-1中的(1)~(4)。表1-1微服务名称及所包含业务功能

【问题3】答对4条即为可应用网关是实现微服务的主要技术之一,请简述应用网关的作用。

【问题1】微服务优点:
(1)每个微服务都很小,这样能聚焦一个指定的业务功能或业务需求。
(2)微服务能够被小团队单独开发,这个小团队是2到5人的开发人员组成。
(3)微服务是松耦合的,是有功能意义的服务,无论是在开发阶段或部署阶段都是独立的。
(4)微服务能使用不同的语言开发。
(5)去中心化。每个微服务都有自己的存储能力,可以有自己的数据库。也可以有统一数据库。
微服务缺点:
(1)很难在不采用分布式事务的情况下跨服务实现功能
(2)测试工作更加困难(3)跨服务实现要求功能要求团队之间的紧密协作
(4)部署复杂

【问题2】
(1)支付信息审核(2)支付信息更新(3)
在线支付(4)订单管理
【问题3】
1、提供统一入口2、可以进行权限身份认证等
安全管理3、可以根据流量进行限流4、数据缓
存5、性能监控等6、异常重试7、服务降级

(53)持久层
【说明】在目前的大环境下,某房企决定转移业务重心,将原来以售卖为主的业务转变为互联网租房业务,为此拟开发一套基于Web的云管业务系统,该系统按租户视图、系统管理视图以及业务视图划分为多个相应的Web应用,需求中还包含诸如文件处理、安全防护等扩展功能。
【问题1】在选择系统所采用的Web开发框架时,项目组对阿里巴巴开发的WebX框架与轻量级Spring MVC框架进行了对比分析,最终决定采用WebX框架进行开发。请用300字以内文字,从多应用支持、基础服务支持以及可扩展性这三个方面对WebX与Spring MVC框架进行对比。
【问题2】在确定系统采用的持久层技术方案时,项目组梳理了系统的典型持久化需求,对照需求对比分析了Hibernate和MyBatis两种持久化方案,请分析两种持久化方案对4-1中所列项目需求的支持情况,将候选答案序号A或B填入表4-1相应位置。【候选答案:A.支持B.不支持或支持差】表4-1两种持久化方案对项目需求的支持情况

题3】王工负责订单系统的数据库设计与开发,初步设计的核心订单关系模式为:
orders(order_no,customer_no,order_date,product_no,price,…?);考虑订单数据过多,单一表的设计会对系统性能产生较大影响,仅仅采用索引不足以解决性能问题。因此,需要将订单表拆分,按月存储。王工采用反规范化设计方法来解决,给出了相应的解决方案。常见的反规范化设计包括增加冗余列、增加派生列、重新组表和表分割。为解决题干所述需求,王工采用的是哪种方法?请用300字以内的文字解释说明该方法,并指出其优缺点。

【问题1】(1)基础服务支持:因为WebX在阿里巴巴和淘宝用了很多年,对于超大访问量的电子商务网站,WebX经受了考验,被证明是成熟可靠的。(2)多应用支持:WebX和Spring MVC一样,完全建立在Spring框架之上,可以使用Spring的所有特性。WebX被设计成多个层次,层次间的分界线很清晰,每个层次都足够开放和易于扩展。(3)可扩展性:
WebX对Spring做了扩展,一个组件可以扩展另一个组件,也可以被其他组件扩展。这种机制使WebX具有较好的扩展性,且比未经扩展的Spring更易使用。
【问题2】(1)A(2)B(3)B(4)A(5)A(6)B
【问题3】王工采用的是表分割方式中的水平分割(分割参数是:“月”)。表分割包括水平分割与垂直分割两种形式:水平分割:按记录进行分割,不同的记录可以分开保存,每个子表的列数相同。分割的条件可能是某列或多列数据的值,如时间参数。垂直分割:按列进行分割,即把一条记录分开多个地方保存,每个子表的行数相同。把主键和一些行放到一个表,然后把主键和另外的列放到另一个表中,通过主键进行关联。优点:水平分割后可以降低在查询时需要读取的数据和索引页数,同时也降低了索引的层数,提高查询速度。缺点:水平分割会给应用增加复杂度,在查询时需要多个表名,查询所有数据需要union操作。

(54)质量属性
【说明】某软件公司拟为某市级公安机关开发一套特种车辆管理与监控系统,以提高特种车辆管理的效率和准确性。在系统需求分析与架构设计阶段,用户提出的部分需求和关键质量属性场景如下:(a)系统用户分为管理员、分管领导和普通民警等三类;(b)正常负载情况下,系统必须在0.5秒内对用户的车辆查询请求进行响应;(c)系统能够抵御99.999%的黑客攻击;
(d)系统的用户名必须以字母开头,长度不少于5个字符;(e)对查询请求处理时间的要求将影响系统的数据传输协议和处理过程的设计;(f)网络失效后,系统需要在2分钟内发现并启用备用网络系统;(g)在系统升级时,需要保证在1个月内添加一个新的消息处理中间件;(h)查询过程中涉及到的车辆实时视频传输必须保证20帧/秒的速率,且画面具有600?80的分辨率;()更改系统加密的级别将对安全性和性能产生影响;(i)系统主站点断电后,需要在3秒内将请求重定向到备用站点;(k)假设每秒中用户查询请求的数量是10个,处理请求的时间为30毫秒,则“在1秒内完成用户的查询请求”这一要求是可以实现的;()对用户信息数据的授权访问必须保证99.999%的安全性;(m)目前对“车辆信息实时监控”业务逻辑的描述尚未达成共识,这可能导致部分业务功能模块的重复,影响系统的可修改性;(n)更改系统的Web界面接口必须在1周内完成;(o)系统需要提供远程调试接口,并支持系统的远程调试。在对系统需求和质量属性场景进行分析的基础上,系统的架构师给出了三个候选的架构设计方案。公司目前正在组织系统开发的相关人员对系统架构进行评估。
【问题1】在架构评估过程中,质量属性效用树(utility tree)是对系统质量属性进行识别和优先级排序的重要工具。请给出合适的质量属性,填入图1中(1)、(2)空白处;并选择题干描述中的(a)(o),将恰当的序号填入(3)(6)空白处,完成该系统的效用树。

【问题2】在架构评估过程中,需要正确识别系统的架构风险、敏感点和权衡点请从题干描述中的(a)~(o)各选出1个属于系统架构风险、敏感点和权衡点的描述。
【问题3】该项目的四种质量属性分别用什么设计策略实现?(每种举例2个,只写名词即可)

(1)|性能
(2)|可用性
(3)|b
(4)|c
(5)|f
(6)|g

【问题2】
(m)描述的是系统架构风险;(e)描述的是敏感点;(i)描述的是权衡点。
【问题3】
可用性|心跳、Pina/tche、冗余、进程监视器
可修改性|抽象、信息隐藏、限制通信路径、运行时注册
性能|优先级队列、增加计算资源、减少计算开销、引入并发机制、采用资源调度等。
安全性|用户认证,用户接权,追踪审计,限制访问

(55)Uml
【问题2】(1)参与者。参与者是指存在于系统外部并与系统进行交互的任何事物,既可以是使用系统的用户,也可以是其他外部系统和设备等外部实体。(2)用例。用例表示系统所提供的服务,它定义了系统是如何被参与者所使用的,它描述的是参与者为了使用系统所提供的某一完整功能而与系统之间发生的一段对话。(3)通信关联。通信关联表示的是参与者和用例之间的关系,或用例与用例之间的关系。箭头表示在这一关系中哪一方是对话的主动发起者,箭头所指方是对话的被动接受者,箭尾所指方是对话的主动发起者。如果不想强调对话中的主动与被动关系,可以使用不带箭头的关联实线。
【问题3】在00A方法中,构建用例模型一般需要经历4个阶段,分别是识别参与者、合并需求获得用例、细化用例描述和调整用例模型,其中前三个阶段是必需的。

更多推荐

架构案例分析

本文发布于:2023-04-21 08:09:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/9639e4e27bb381828789cd51d5958645.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:案例分析   架构

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!

  • 92799文章数
  • 23613阅读数
  • 0评论数