1、考虑在建造新建筑时描述业主、建筑师和承包商职责的示例。为高中同学聚会项目创建一个类似的类比,其中有同学聚会委员会、专业活动策划人和负责实际活动的酒店活动供应商。
在高中同学聚会项目中,同学聚会委员会就如同建造新建筑中的业主,他们拥有举办一场成功同学聚会的愿景和想法,对聚会的整体风格、规模、预算等有自己的期望和规划。
专业活动策划人则类似于建筑师,他们要在同学聚会委员会的愿景基础上,进一步细化和完善方案,比如确定聚会的具体流程、活动安排、场地布置等细节。同时,专业活动策划人还需要将这些详细的计划和要求传达给酒店活动供应商。
酒店活动供应商就相当于承包商,他们依据专业活动策划人提供的详细方案,负责实际活动的管理和执行,包括场地的搭建、餐饮的供应、活动的组织等工作,以确保同学聚会能够按照计划顺利进行。
2、活动图的目的是什么?
活动图可用于记录用例的活动流程,有时可替代用例描述中的活动流程部分,有时用于补充用例描述;
能提供活动流程的更图形化视图,便于识别输入和输出发生的时间;
在处理复杂的用例活动流程时很有帮助,可展示更丰富的用户体验。
3、模型有哪三种类型?
三种类型的模型分别是
文本模型
、
图形模型
和
数学模型
。
文本模型
:如备忘录、报告、叙述文和列表等;
图形模型
:使用图片和其他图形元素创建图表;
数学模型
:是用数学公式描述系统的技术方面。
4、功能需求和非功能需求的区别是什么?
需求分类
功能需求
功能需求是系统必须执行的活动,即系统将应用的业务用途。例如:
–
生成电子资金转账
–
计算佣金金额
这些功能是 payroll 系统的核心业务操作。
非功能需求
非功能需求是系统除必须执行或支持的活动之外的特性。可以使用
FURPS 框架
来识别和分类这些需求。
FURPS 框架
F – 功能
:等同于功能需求。
U – 可用性
:描述与用户相关的操作特性。
R – 可靠性
:描述系统的可靠性。
P – 性能
:与系统响应时间和资源使用相关的特性。
S – 安全
:涉及系统数据和用户信息的安全性。
其中,
URPS
描述的是非功能需求,如可用性需求和可靠性需求等。
5、描述面试准备、进行和后续跟进的步骤。
面试流程指南
准备步骤
确定面试目标
确定参与的正确用户
确定参与的项目团队成员
列出要讨论的问题和事项
审查相关文件和材料
确定时间和地点
告知所有参与者目标、时间和地点
进行步骤
提前规划,提前到达,确保房间准备好且所需资源可用
限制面试时间
寻找异常和错误情况
询问“如果……会怎样”的问题
深入探究细节
做好详细记录
识别并记录未回答的问题
后续跟进步骤
吸收、理解并记录所获信息,通常通过构建业务流程模型和撰写非功能需求的文本描述来完成,并将结果分发给参与者进行验证
跟踪未解决的问题
根据需要进一步阐述或缺失信息的领域列出新问题,为下一次面试做准备
6、在信息收集活动中进行供应商研究有哪些好处?
在信息收集活动中进行供应商研究有三点好处:
有助于用户产生更好执行其业务功能的新想法;
现有解决方案可能是先进且一流的,如果不进行研究,开发团队可能设计出过时的系统,企业需要跟上竞争实践的解决方案;
购买解决方案通常比自行构建更便宜、风险更小。
7、在事实查寻中应包含哪些类型的利益相关者?
利益相关者分类
内部利益相关者
组织内与系统交互或对其运营或成功有重大利益的人。
外部利益相关者
组织控制和影响之外与系统交互或对其运营或成功有重大利益的人。
运营利益相关者
在工作或生活中定期与系统交互的人。
执行利益相关者
不直接与系统交互,但使用系统产生的信息或对其运营和成功有重大财务或其他利益的人。
其他相关方
客户(为项目提供资金的个人或团体)
组织的技术与支持人员
RMO的CSMS项目利益相关者
电话/邮件销售订单代表
仓库和运输人员
营销人员
各级经理
高级管理人员
客户
外部托运人
8、在调查过程中你会遇到的一个问题是范围蔓延(即用户对额外功能和特性的请求)。范围蔓延的发生是因为用户对当前系统可能存在问题,并且系统调查可能是第一次有人倾听他们的需求。你如何防止系统包含超出项目进度或预算限制的新功能?
为防止系统包含超出项目进度或预算限制的新功能,可采取以下措施:
优先确定系统需求,明确哪些功能是绝对必要的,哪些是可选择的。
分析师需理解组织和用户工作,以更好回答哪些功能真正重要。
由于资源有限,分析师要准备好证明系统范围的合理性,仔细评估优先级可避免因用户提出更多建议导致的范围蔓延。
需求优先级还有助于确定项目迭代的数量、组成和顺序,高优先级需求通常纳入早期项目迭代,以便分析师和用户有足够机会完善系统部分。
9、当爱德华考虑应纳入哪些其他利益相关者时,他应使用哪些标准?制定一些准则来帮助他列出要纳入的人员名单。
利益相关者的考虑维度
可从以下维度考虑利益相关者:
1. 内部与外部
内部利益相关者
:是组织内与系统交互或对其运营或成功有重大利益的人,如企业的员工、非营利组织的志愿者和学生等。
外部利益相关者
:是组织控制和影响之外的人,如战略合作伙伴、监管机构等。需要注意的是,界限可能模糊。
2. 运营与执行
运营利益相关者
:是在工作或生活中定期与系统交互的人,例如:
与会计或计费系统交互的会计师
与生产调度系统交互的工厂主管等
执行利益相关者
:如高级管理人员、董事会成员等,通常关注系统的整体战略和决策。
其他分类方式
此外,还可根据利益相关者对项目的
兴趣和参与程度
,将其分为:
紧密参与项目的人
仅接收定期状态报告的人
通过
利益相关者分析
,可以确定他们对项目信息的需求。
10、列出开发序列图(SSD)的主要步骤。
基于活动图开发SSD分为四个步骤:
识别输入消息;
使用前面描述的消息符号描述从外部参与者到系统的消息;
识别并添加输入消息的任何特殊条件,包括迭代和真假条件;
识别并添加输出返回消息。
11、使用CRUD技术的目的是什么?
CRUD技术的应用
CRUD技术用于验证用例,确保已识别出维护领域模型类图所代表的数据所需的所有用例。该技术可与用户目标技术配合进行交叉检查,确保考虑到所有可能性,避免遗漏更新或存档数据的用例。
此外,CRUD技术还可用于总结所有用例和数据实体/领域类,展示用例与数据之间的联系,明确各系统的范围。
12、识别常见的模型以及它们之间的关系。
常见的模型
常见的模型包括以下几种:
文本模型
用于描述详细且难以用其他方式呈现的需求
示例:事件列表和用例描述
图形模型
便于理解复杂关系
部分图形模型类似系统的现实部分
分析活动中的图形模型通常代表更抽象的事物
许多图形模型依据
统一建模语言(UML)
绘制
数学模型
描述系统技术方面的公式
用于表示科学和工程应用的功能需求
也可描述业务系统在会计和库存控制等领域的需求
可用于描述非功能需求和操作参数
统一建模语言(UML)
是系统开发的标准模型构建和符号集
使分析师和最终用户能够描绘和理解系统
模型的关系
这些模型相互补充
共同用于系统需求的分析和设计
13、在序列图上显示重复的两种方式是什么?
以下是将给定文本内容调整为markdown格式的结果:
第一种方式是使用循环框架(loop frame),将消息及其返回置于一个较大的矩形(循环框架)内,框架顶部的小矩形中有描述性文本控制大矩形内消息的行为;
第二种方式是使用带有星号和方括号的缩写符号,星号(*)置于消息前表示只要方括号内的真假条件评估为真,消息就会重复。
14、序列图上使用的三种框架类型是什么?
Loop 框架、Alt 框架和 Opt 框架。
Loop 框架表示循环内的一组消息;
Alt 框架类似于 if-then-else 语句或 switch 语句,允许触发不同的消息集;
Opt 框架是一组消息的可选调用。
15、序列图中表示真假条件的符号是什么?
方括号 [ ]
16、解释消息的参数是什么。
消息的参数列表
消息的参数列表包含通过消息传递给目标对象的项目。在编程术语中,这些是调用方法时传递的参数。
示例
创建客户账户用例
:
createNewCustomer
消息的参数应包含客户的基本信息,如:
姓名
电话
电子邮件地址
enterAddress
消息的参数用于识别完整地址,通常包括:
街道地址
城市
州
邮政编码
enterCreditCard
消息的参数
cc-info
代表:
信用卡账号
到期日期
安全码
17、给定汽车保险系统的以下类和关联列表,列出用例“向现有保单添加新车辆”的前置条件和后置条件。系统中的类包括:保单(Policy)、被保险人(InsuredPerson)、被保险车辆(InsuredVehicle)、保险范围(Coverage)、标准保险范围(StandardCoverage,按评级类别列出标准保险价格)、标准车辆(StandardVehicle,列出所有制造过的车辆类型)。系统中的关系包括:保单拥有被保险人(一对多)、保单拥有被保险车辆(一对多)、车辆拥有保险范围(一对多)、保险范围是标准保险范围的一种、车辆是标准车辆的一种。
## 前置条件
- 存在一个有效的现有保单
- 新车辆属于标准车辆类型
## 后置条件
- 新车辆被添加到现有保单中
- 保单与新车辆建立了一对多的关联
- 新车辆关联了至少一种保险范围
- 系统更新了保单和车辆的相关信息
18、系统分析的目标与系统设计的目标有何不同?
系统分析与设计的目标
系统分析
目标
:使用户理解并详细说明新系统应实现的功能
即
:明确系统的需求
系统设计
目标
:详细描述信息系统如何实际实施以提供所需的解决方案
即
:确定系统如何工作以及系统的结构组件
19、列出并简要描述每个设计活动。
描述环境
:确定系统如何与其他系统以及组织现有技术进行交互。
设计应用程序组件
:明确信息系统的关键部分以及系统部署时它们之间的交互方式。
设计用户界面
:设计用户与信息系统的交互方式。
设计数据库
:确定数据如何被捕获、结构化和存储,以供信息系统后续使用。
设计软件类和方法
:为每个应用程序组件设计内部结构,以确保高效构建、快速部署和可靠运行。
20、为什么要描述环境,而其他关键设计元素(如用户界面和数据库)则需要进行设计?
原因在于设计师对环境和系统其他部分的控制程度不同。
通常,单个系统的设计师对环境几乎没有或完全没有控制权,例如 RMO CSMS 中的 DBMS、用户身份管理系统和外部系统等都超出了设计师的控制范围,系统组件必须适应现有的环境元素。
此外,虽然组织对其技术架构有控制权,但这种控制权很少延伸到单个系统的设计师,技术架构支持组织的所有系统,新系统的设计必须适应它。只有在组织做出技术架构变更决策后,更新架构才会成为设计新系统的第一步。
21、在设计活动中所描述的环境的关键要素有哪些?
在设计活动中,环境的关键要素包括
外部系统
和
技术架构
。
外部系统
在外部系统方面,需要额外了解以下信息:
–
消息格式
:传入和传出消息的精确格式
–
地址信息
:源和目的地的 Web 或网络地址
–
通信协议
:所使用的通信协议类型
–
安全方法
:数据传输中的安全机制
–
错误处理
:错误检测和恢复机制
技术架构
技术架构是指组织所采用的:
–
计算硬件
–
网络硬件和拓扑结构
–
系统软件
在新系统设计中,通常需要
适应现有技术架构
。在某些情况下,组织可能会决定对技术架构进行更改,此时
更新架构将成为设计新系统的第一步
。
22、列举至少三个应用组件的例子。
类中的一个方法
在线商店的订单接受子系统
包含数千行源代码的程序
整个网站
嵌入网页中的脚本
用 Java、C# 等面向对象编程语言编写的类和方法
用 JavaScript 和 PHP 等脚本语言编写的组件
23、设计安全和控制措施会对哪些其他元素的设计产生影响?
安全和控制措施的设计会影响其他设计活动,如用户界面、数据库或应用程序组件的设计,因为它们需要嵌入到所有其他设计活动中。
24、解释输入表单的四种完整性控制类型。你最常看到哪种?为什么它们很重要?
四种完整性控制类型
数值限制控制
:检查数字数据输入,确保输入值合理,如拒绝负值或超过特定阈值的值。
完整性控制
:确保描述对象或交易的所有必需数据值都存在,如输入送货地址时检查信息是否足够。
数据验证控制
:确保包含代码或标识符的数字字段正确,如检查输入的字母成绩是否符合预定义的有效成绩。
字段组合控制
:审查各种数据输入组合,确保输入正确的数据,如保险政策中申请日期必须早于或等于保险生效日期。
最常看到的可能是
数据验证控制
,因为在很多表单中都会对输入的特定格式数据进行验证。
这些控制很重要,因为它们能防止无效或错误的数据进入系统,保证业务交易适当且正确,确保交易记录和处理准确,保护组织资产。
25、安全控制的两个主要目标是什么?
安全控制的两个主要目标是:
为用户和应用系统维护一个稳定、正常运行的操作环境(通常是每周7天、每天24小时);
在不安全环境(如公共无线网络和互联网)中传输信息和交易时保护它们。
26、列出并简要描述欺诈三角的三个要素。系统设计师对哪个要素能施加最大的控制?
欺诈三角
欺诈三角包含以下三个要素:
1. 动机
定义:对欺诈结果的渴望或需求
常见因素:金钱通常是主要动机
其他可能因素:对地位、权力的渴望,或成为“团队成员”的需求
2. 合理化
定义:实施欺诈的借口或未来“弥补”欺诈的意图
示例:
员工为避免破产伪造财务报告
员工偷钱偿还赌债、支付医疗费并打算日后归还
3. 机会
定义:实施欺诈的条件或环境
控制措施:
系统设计师能对机会要素施加最大控制
可通过设计和实施有效控制措施来最小化或消除机会
27、简要定义或描述认证、访问控制列表和授权。
认证是识别请求访问敏感资源的用户的过程,用户可通过用户名和密码、智能卡、挑战问题与响应、生物识别方法(包括指纹和视网膜扫描、语音识别)等方式进行认证,多因素认证使用多种方法以提高可靠性。
访问控制列表是附加或链接到特定资源的列表,它描述了用户或用户组以及允许的访问性质(如读取数据、更新数据或执行程序),不在访问控制列表中的用户无法使用相关资源。
授权是根据访问控制列表允许或限制特定已认证用户对特定资源的访问过程。
28、单密钥(对称)加密是如何工作的?它的优点和缺点分别是什么?
## 工作方式
对称密钥加密使用相同的密钥对数据进行加密和解密。
## 优点
- 可用于加密文件和数据库中存储的数据
- 防止绕过操作系统或数据库管理系统直接访问物理数据存储的未授权访问
## 缺点
- 发送者和接收者使用相同密钥,该密钥必须安全创建和共享
- 若密钥与用该密钥加密的消息通过同一通道传输,安全性会受损
- 在众多用户间共享密钥会增加密钥被盗的可能性
## 应用场景
因此,对称密钥加密常用于文件和数据库中存储的数据,在网络传输数据时仅与非对称加密结合使用。
29、列出并简要描述三层架构各层的功能。每层通常部署在何种类型的计算设备上?
三层架构各层功能及典型部署设备如下:
视图层
–
功能
:格式化屏幕和报告,HTML由客户端计算机上的Web浏览器解释和显示,格式化HTML的软件组件位于应用服务器上。
–
典型部署设备
:客户端计算机(如桌面和笔记本电脑)。
业务逻辑层
–
功能
:包含处理业务规则的所有逻辑。
–
典型部署设备
:应用服务器计算机。
数据层
–
功能
:由数据库服务器和应用服务器上访问数据所需的应用程序组成,负责制定查询。
–
典型部署设备
:数据库服务器。
30、在设计和部署现代系统时,为何互操作性是如此重要的考虑因素?
现代信息系统的设计与互操作性
现代信息系统由众多硬件和软件组件组成,这些组件必须协同工作。为确保互操作性,系统设计师需要:
了解和描述系统运行的当前环境
包括现有硬件、软件组件、网络以及已使用的协议和 API。
寻找合适的现有软件组件和服务
这些组件应能为新系统提供所需功能,并与现有环境和待构建组件具备互操作性。
构建无法购买或作为服务使用的组件
这些组件必须与所有其他系统组件和现有环境实现互操作。
以可行的方式构建、测试、部署和长期运行系统
整个开发和运维过程需充分考虑组件的组装与集成。
因此,
互操作性
是设计和部署现代系统时的重要考虑因素。
31、请描述系统设计师在描述系统环境时应提出并回答的关键问题。
1. 支持或限制系统的现有或拟议技术环境的关键特征是什么:
a. 将使用哪些操作系统?
b. 将使用哪些其他系统软件(如 Web 服务器、数据库管理和入侵检测软件)?
c. 网络消息以何种方式进行过滤或保障安全?是否需要进行任何更改以支持与外部系统或用户界面设备的交互?
d. 哪些 API 和开发工具与现有技术环境兼容?
2. 正在开发的系统将与哪些外部系统和数据库进行交互:
对于每个系统或数据库,回答以下问题:
a. 每次交互的时间和频率是多少?
b. 系统输入和输出的数据内容是什么?
c. 流向或来自外部系统的数据将使用哪些协议进行格式化和编码?
d. 每次流入和流出的安全要求是什么?
e. 将使用哪些安全方法和协议来满足安全要求?
3. 将使用哪些设备进行自动输入和输出:
a. 流向或来自这些设备的数据将使用哪些协议进行格式化和编码?
b. 每次流入和流出的安全要求是什么?
c. 将使用哪些安全方法和协议来满足安全要求?
d. 哪些 API 和开发工具与现有技术环境以及所需的自动输入和输出兼容?
4. 将使用哪些用户界面技术:
a. 用户将位于何处?
b. 用户将使用哪些硬件设备?
c. “智能”用户界面设备将运行哪些操作系统?
32、设计师在设计应用组件时如何使用用例及相关信息?
设计师设计应用组件时可从自上而下或自下而上的角度回答哪些组件将执行哪些功能的问题。
无论哪种方法,设计师都会寻找系统功能之间的相似性来指导分解或分组。
可通过关注事件和用例等具体分析活动描述来确定或衡量系统功能之间的相似性,具体考虑以下方面:
用例中交互的参与者
与相同参与者交互的用例软件可归为一个应用组件。
用例交互的共享数据
与相同领域类交互的用例可归为一个应用组件。
用例触发的事件
由相同外部、时间或状态事件触发的用例可归为一个应用组件。
33、列举典型智能手机上的三种嵌入式软件。嵌入式软件对应用软件开发人员有什么好处?
三种嵌入式软件
工具栏
,如 Acrobat PDF 工具栏
插件
,如亚马逊提供的用于预览音乐片段的插件
小部件
,如时间温度或股票市场小部件
对应用软件开发人员的好处
可复用已安装软件
多个应用外观和感觉相似
应用开发工具包可自动化许多编程任务
提供与设备中已嵌入软件的直接接口
34、简要定义技术架构和应用架构这两个术语。它们有何不同?又如何相互依存?
技术架构与应用架构的关系
技术架构定义了支持应用软件及其所提供服务的基础设施。应用软件通过将应用组件分配到特定硬件设备,并通过网络和协议连接来部署在技术架构上。
应用架构则需确保软件便于构建、部署、操作和未来更新。
二者不同之处
技术架构
侧重于基础设施层面。
应用架构
主要关注软件自身特性。
二者之间的依存关系
糟糕的技术架构会为应用软件提供薄弱基础,影响其性能、可靠性等特性。
良好的技术架构则能增强这些特性并带来其他益处,如降低运营成本和便于灵活更新。
注意
:高质量的技术架构无法弥补糟糕的应用架构,应用软件自身的设计至关重要。
35、Web服务对设计和构建现代应用软件为何重要?系统设计师需要就Web服务做出哪些决策?
Web服务在现代应用软件设计与构建中的重要性
Web服务对设计和构建现代应用软件具有重要意义,原因如下:
扩展软件功能
:信息系统开发人员可以扫描可用的Web服务范围,并将其集成到自己的软件中,从而以最小的开发成本扩展软件功能。
提升用户群
:开发人员还可以将自身软件的部分功能作为Web服务提供给其他系统,进而扩大软件的潜在用户群。
系统设计师需要做出的关键决策包括:
战略层面
决定将哪些可用的Web服务纳入自己的软件;
确定自身软件的哪些功能应作为Web服务提供给其他系统。
更详细层面
选择接受Web服务调用和双向传递数据所使用的协议;
确保传递数据的安全保障;
判断系统部分是否应构建为Web服务,以便于内部系统的使用;
为Web服务用户提供性能和可用性保证;
确定满足这些保证所需的服务器、网络和其他资源。
36、考虑当前智能手机、当前平板电脑和屏幕尺寸在15英寸及以上的当前笔记本电脑之间的物理特性差异。同时考虑面向学生的网络应用程序,这些应用程序用于获取课程学习材料、注册课程和支付大学相关费用。哪些设备需要独特的视图层?为什么?这些应用程序是否应该构建为可安装的应用程序?为什么应该或不应该?
视图层与应用程序适配策略
智能手机、平板电脑和大屏幕笔记本电脑需要
独特的视图层
,因为它们在
屏幕尺寸
、
输入方式
等物理特性上存在显著差异。
智能手机
屏幕较小,需采用
简单聚焦的布局
,导航和交互依赖
触摸屏幕
。
平板电脑
屏幕稍大,但与智能手机一样依赖
触摸交互
。
大屏幕笔记本电脑
屏幕较大,并配有
键盘
、
鼠标
等输入设备。
为了提供良好的用户体验,适配各设备的特性,需要为不同设备设计
独特的视图层
。
是否构建为可安装应用程序的考量
是否将应用构建为
可安装应用程序
,需综合考虑其优劣。
优势:
可以利用设备的
嵌入式软件架构
实现
软件复用
提供
相似的外观和感受
加快
应用开发
劣势:
存在
兼容性问题
增加
复杂性
适用场景
构建为可安装应用
:适用于使用频繁、需要
离线使用
或需
深度集成设备功能
的应用。
采用网页应用
:适用于使用不频繁、只需
在线访问
的应用。
37、用例图如何在用户界面设计中发挥作用?
# 用例图在用户界面设计中的作用
用例图是用户界面设计的基础,它基于用例定义构建。用例图能图形化描绘子系统中的用例和用户,项目团队可通过它了解应用程序的工作方式,识别需要开发的屏幕和报告。
大多数用例需要用户直接交互,是对话或表单的起点,可帮助确定用户与系统交互时的输入和输出,为用户界面设计提供依据。
此外,菜单可用于组织用例和调用特定用例或用户对话,用例图有助于设计师决定包含哪些用例和用户界面、需要哪些菜单以及需要多少菜单级别。
38、系统序列图如何在用户界面设计中发挥作用?
## 系统序列图(SSD)
系统序列图(SSD)用于描述信息流入和流出系统自动化部分的流程,它能记录输入和输出,识别参与者与系统之间的交互。
通过识别从用户流入系统的特定信息以及从系统返回给用户的信息,SSD是帮助进行用户界面初始设计的有效工具。
此外,将视图层添加到序列图中时,SSD中识别和记录的所有输入消息都必须由用户界面处理,可借此验证与用户共同开发的用户界面是否与应用程序设计一致。若存在无输入窗口的消息或无消息的窗口,就能知道部分设计不完整,需要更多定义。
39、什么是故事板法?
故事板法简介
故事板法是指通过一系列草图展示对话期间显示屏变化的技术。这些草图无需过于详细,只需能够传达基本的设计概念即可。设计师可以使用可视化编程工具(例如
Visual Basic
)或演示程序(例如
PowerPoint
)来实现故事板。
40、描述项目早期必须做出的直接影响用户界面设计的三个主要决策。
1. **应用程序构建方式**:决定应用程序是作为定制的独立软件应用程序构建,还是基于浏览器构建。独立应用程序将利用该平台开发库中可用的控件和人机界面对象;基于浏览器的应用程序则需符合浏览器提供的控件和配置,某些情况下可能需要同时支持两种环境。
2. **应用程序设计的设备类型**:有些应用程序仅设计为在台式机和笔记本电脑上运行,有些在平板电脑上运行,还有些专门为智能手机等小型设备设计,部分软件可能需要在多种设备上运行。
3. **操作系统平台**:不同类型设备有不同的常用操作系统,如台式机和笔记本电脑常见的有 Windows、Apple Mac OS 和 Ubuntu 等;平板电脑有 Windows 8 和 Windows RT、Apple iOS 等;智能手机有 Google Android、Apple iOS 等。每个平台可用的人机界面对象不同,会影响设计,基于 Web 的应用程序虽有更多共性,但各平台的浏览器仍略有不同。

