免费智能真题库 > 历年试卷 > 信息系统监理师 > 2021年下半年 信息系统监理师 下午试卷 案例
  第2题      
  知识点:   监理单位   软件配置管理   数据说明   语句结构   编码   测试过程   规范化   配置管理   配置管理工具   配置项   评审   人工智能   软件配置   完整性   医疗   注释

 
【说明】
某三级甲等医院拟建设医疗影像诊断系统,通过医疗影像识别算法将原来的放射科医生经验诊断升级为人工智能辅助诊断,希望将诊断时间由10~15分钟缩短为10~15秒、诊准确率从约90%提升到>99%。
医院将系统建设交给系统集成公司A,委托监理单位B监理全部建设过程。
为确保软件配置项完整性和可跟踪性,A公司采用了配置管理工具,B单位监理工程师老黄认为专业工具能够充分实现软件配置管理监理的目标,于是将监理重点放到需求规格说明书及设计说明书的评审上,对设计说明书的功能、性能、接口、质量、限制、各种选择方案等方面设计了充分的检查点,并组织了同行评审
在项目测试过程中,测试团队发现了很多bug,老黄认为主要原因是编码不够规范,提出了一些整改要求,包括:
(1)变量名称应完整表达变量含义,不得使用缩写;
(2)代码文件不得注释,非代码行不得写入源程序;
(3)数据说明的次序应当规范化,说明语句中变量安排应当有序化;
(4)语句结构以执行效率为最高原则,语句越复杂说明程序员水平越高。
 
问题:2.1   (5分)
老黄为设计说明书设计的检查点不全面,请补充其他的检查点。
 
问题:2.2   (5分)
请指出老黄对软件编码规范提出的整改要求中的不当之处,并说明原因。
 
问题:2.3   (4分)
软件配置管理监理的目标包括哪些?
 
问题:2.4   (4分)
编制良好的需求规格说明书应满足一定的原则,请判断下列需求规格说明书的编制原则或相关描述是否正确。(正确打√,错误打×)
(1)需求规格说明书应实现与功能分离,描述“怎样实现”而不是“做什么”。()
(2)需求规格说明书应使用面向对象的规格说明语言。()
(3)某信息系统的子系统,需要描述与其他子系统交互的方式。()
(4)需求规格说明书是系统自身的需求描述,不需要包括系统运行的环境。()
(5)需求规格说明书必须是一个认识的模型,而不是设计的模型。()
(6)需求规格说明书必须是可操作的,能够用它决定已提出实现方案是否能够满足规格说明。()
(7)需求规格说明书应考虑周全,不容许存在不完备性。()
(8)需求规格说明书应松散地构造,以便能很容易地加入和删去一些段落。()
 
 
 

   知识点讲解    
   · 监理单位    · 软件配置管理    · 数据说明    · 语句结构    · 编码    · 测试过程    · 规范化    · 配置管理    · 配置管理工具    · 配置项    · 评审    · 人工智能    · 软件配置    · 完整性    · 医疗    · 注释
 
       监理单位
        项目监理方服务于信息系统建设合同的建设方与承建方。接受建设方委托后,监理方作为工程承包合同的监督者,所执行的原则是使工程承包合同成为“平等条约”;作为工程承包合同管理和工程款支付的签认者,所执行的原则是等价交换。因此监理方是为双方的利益服务的,而不仅仅为委托方服务。
        根据工程监理的深入程度不同,信息系统工程监理可分为如下三种。
        (1)咨询式监理。只解答用户方就企业信息化过程中提出的问题,其性质类似于业务咨询或方案咨询。这种方式费用最少,监理方的责任最轻,适合于对信息化有较好把握,并且技术力量较强的用户方采用。
        (2)里程碑式监理。将信息系统的建设划分为若干个阶段,在每一个阶段结束都设置一个里程碑,在里程碑到来时通知监理方进行审查或测试。一般来讲,这种方式比咨询式监理的费用要多,监理方也要承担一定的责任。不过,里程碑的确定需要承建方的参与,或者说监理合同的确立需要开发方的参与,否则就会因对里程碑的界定不同而引起纠纷。
        (3)全程式监理。一种复杂的监理方式,不但要求对系统建设过程中的里程碑进行审查,还应该派相应人员全程跟踪并收集系统开发过程中的信息,不断评估承建方的开发质量和效果。这种方式费用最高,监理方的责任也最大,适合于那些对信息系统的开发不太了解且技术力量偏弱的用户采用。
        监理单位的主要作用如下。
        (1)信息系统工程监理可以帮助建设单位更合理地保证工程的质量、进度和投资,并合理且客观地处理好它们之间的关系。监理由独立的第三方依据相关技术标准来对工程建设进行监督,这样对信息系统工程的建设质量更能起到保驾护航的作用。在项目建设全过程中,监理单位要依据国家有关法律和相关技术标准,遵循守法、公平、公正、独立的原则,对信息系统建设的过程进行监督和控制。即在确保质量、安全和有效性的前提下,合理安排进度和投资。监理单位要帮助建设单位对工程有关方面控制进行再控制,对承建单位项目控制过程进行监督管理。
        (2)在信息系统工程建设中,建设单位和承建单位有许多问题存在争议,双方都希望由第三方在工程的立项、设计、实施、验收及维护等各个阶段的效果都给予公正、恰当且权威的评价,这就需要监理单位来协调和保障这些工作的顺利进行。
        (3)由于建设单位在信息技术等相关领域普遍存在缺乏人才和经验不足的问题,实践证明建设单位自行管理对于提高项目投资的效益和建设水平是无益的。通过第三方的专业服务,帮助建设单位对项目实施控制,并对建设单位和承建单位都做出约束,是监理作用一个重要体现。
 
       软件配置管理
        在软件配置管理方面,监理的主要工作如下。
        (1)确保应用软件系统建设承建单位的配置管理组织和环境按照软件项目计划的要求成立并配备。
        (2)控制承建单位依据书面规程,为应用软件系统建设项目制定软件配置管理计划。
        (3)监督承建单位使用审批通过的、文档化的软件配置管理计划作为实施软件配置管理活动的基础。
        (4)控制承建单位依据的书面规程,对所有配置项/单元的更改请求和问题报告实施初始准备、记录、评审、批准和跟踪。
        (5)监督承建单位依据书面规程,控制对基线的更改。
        (6)控制承建单位编制软件配置管理报告,证明软件配置管理活动和软件基线库的内容,并提供给建设单位。
        (7)监督承建单位依据书面规程进行软件基线库的审核,进行软件配置管理活动状态的跟踪和记录。
        (8)定期审查软件配置管理活动和软件配置管理基线,以验证它们与文档定义的一致性。
        (9)审核软件配置管理活动及其工作产品,并给出软件配置管理监理报告。
 
       数据说明
        在编写程序时,需注意数据说明的风格。为了使程序中的数据说明更易于理解和维护,必须注意以下几点。
        (1)数据说明的次序应当规范化,使数据属性容易查找。
        (2)当多个变量名用一个语句说明时,应当对这些变量按字母的顺序排列。
        (3)如果设计了一个复杂的数据结构,应当使用注释来说明在程序实现时这个数据结构的固有特点。
 
       语句结构
        在设计阶段确定了软件的逻辑流结构,但构造单个语句则是编码阶段的任务。语句构造力求简单,直接,不能为了片面追求效率而使语句复杂化。
        (1)在一行内只写一条语句,并且采取适当的移行格式,使程序的逻辑和功能变得更加明确。
        (2)程序编写首先应当考虑清晰性,不要刻意追求技巧性,使程序编写得过于紧凑。
        (3)程序编写得要简单,写清楚,直截了当地说明程序员的用意。
        (4)除非对效率有特殊的要求,否则程序编写要做到清晰第一,效率第二。不要为了追求效率而丧失了清晰性。事实上,程序效率的提高主要应通过选择高效的算法来实现。
        (5)首先要保证程序正确,然后才要求提高速度。反过来说,在使程序高速运行时,首先要保证它是正确的。
        (6)对编译程序做简单的优化。
        (7)尽可能使用库函数。
        (8)避免使用临时变量而使可读性下降。
        (9)尽量用公共过程或子程序去代替重复的功能代码段。
        (10)用调用公共函数去代替重复使用的表达式。
        (11)使用括号来清晰地表达算术表达式和逻辑表达式的运算顺序。
        (12)避免不必要的转移。同时如果能保持程序的可读性,则不必用GOTO语句。
        (13)尽量只采用三种基本的控制结构来编写程序。
        (14)用逻辑表达式代替分支嵌套。
        (15)避免使用空的ELSE语句和IF…THEN IF…的语句。
        (16)避免使用ELSE GOTO和ELSE RETURN结构。
        (17)使与判定相联系的动作尽可能地紧跟着判定。
        (18)避免采用过于复杂的条件测试。
        (19)尽量减少使用“否定”条件的条件语句,不要让读者绕弯子想。
        (20)避免过多的循环嵌套和条件嵌套。
        (21)不要使GOTO语句相互交叉。
        (22)避免循环的多个出口。
        (23)使用数组,以避免重复的控制序列。
        (24)尽可能用通俗易懂的伪码来描述程序的流程,然后再翻译成必须使用的语言。
        (25)数据结构要有利于程序的简化。
        (26)要模块化,使模块功能尽可能单一化,模块间的耦合能够清晰可见。
        (27)利用信息隐蔽,确保每一个模块的独立性。
        (28)从数据出发去构造程序。
        (29)不要修补不好的程序,要重新编写。也不要一味地追求代码的复用,要重新组织。
        (30)对太大的程序,要分块编写、测试,然后再集成。
        (31)对递归定义的数据结构尽量使用递归过程。
        (32)注意计算机浮点数运算的特点,例如浮点数运算10.0×0.1通常不等于1.0。
        (33)不要单独进行浮点数的比较。用它们做比较,其结果常常发生异常情况。
        (34)避免不恰当地追求程序效率,在改进效率前,要做出有关效率的定量估计。
        (35)在程序中应有出错处理功能,一旦出现故障时不要让机器进行干预,导致停工。
 
       编码
               编码过程
               在给定了软件设计规格说明书后,下一步的工作就是编写代码。一般来说,编码工作可以分为四个步骤:
               (1)确定源程序的标准格式,制订编程规范。
               (2)准备编程环境,包括软硬件平台的选择,包括操作系统、编程语言、集成开发环境等。
               (3)编写代码。
               (4)进行代码审查,以提高编码质量。为提高审查的效率,在代码审查前需要准备一份检查清单,并设定此次审查须找到的bug数量。在审查时,要检查软件规格说明书与编码内容是否一致;代码对硬件和操作系统资源的访问是否正确;中断控制模块是否正确等。
               编码准则
               在嵌入式系统中,由于资源有限,且实时性和可靠性要求较高,因此,在开发嵌入式软件时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。也就是说,代码的执行速度要越快越好,系统占用的存储空间要越小越好,软件开发和维护的时间要越少越好。
               具体来说,在编写代码时,需要做到以下几点:
               .保持函数短小精悍。一个函数应该只实现一个功能,如果函数的代码过于复杂,将多个功能混杂在一起,就很难具备可靠性和可维护性。另外,要限制函数的长度,一般来说,一个函数的长度最好不要超过100行。
               .封装代码。将数据以及对其进行操作的代码封装在一个实体中,其他代码不能直接访问这些数据。例如,全局变量必须在使用该变量的函数或模块内定义。对代码进行封装的结果就是消除了代码之间的依赖性,提高了对象的内聚性,使封装后的代码对其他行为的依赖性较小。
               .消除冗余代码。例如,将一个变量赋给它自己,初始化或设置一个变量后却从不使用它,等等。研究表明,即使是无害的冗余也往往和程序的缺陷高度关联。
               .减少实时代码。实时代码不但容易出错、编写成本较高,而且调试成本可能更高。如果可能,最好将对执行时间要求严格的代码转移到一个单独的任务或者程序段中。
               .编写优雅流畅的代码。
               .遵守代码编写标准并借助检查工具。用自动检验工具寻找缺陷比人工调试便宜,而且能捕捉到通过传统测试检查不到的各种问题。
               编码技术
                      编程规范
                      在嵌入式软件开发过程中,遵守编程规范,养成良好的编程习惯,这是非常重要的,将直接影响到所编写代码的质量。
                      编程规范主要涉及的三方面内容:
                      .命名规则。从编译器的角度,一个合法的变量名由字母、数字和下画线三种字符组成,且第一个字符必须为字母或下画线。但是从程序员的角度,一个好的名字不仅要合法,还要载有足够的信息,做到“见名知意”,并且在语意清晰、不含歧义的前提下,尽可能地简短。
                      .编码格式。在程序布局时,要使用缩进规则,例如变量的定义和可执行语句要缩进一级,当函数的参数过长时,也要缩进。另外,括弧的使用要整齐配对,要善于使用空格和空行来美化代码。例如,在二元运算符与其运算对象之间,要留有空格;在变量定义和代码之间要留有空行;在不同功能的代码段之间也要用空行隔开。
                      .注释的书写。注释的典型内容包括:函数的功能描述;设计过程中的决策,如数据结构和算法的选择;错误的处理方式;复杂代码的设计思想等。在书写注释时要注意,注释的内容应该与相应的代码保持一致,同时要避免不必要的注释,过犹不及。
                      性能优化
                      由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。以算术运算为例,在编写代码时,需要仔细地选择和使用算术运算符。一般来说,整数的算术运算最快,其次是带有硬件支持的浮点运算,而用软件来实现的浮点运算是非常慢的。因此,在编码时要遵守以下准则:
                      .尽量使用整数(char、short、int和long)的加法和减法。
                      .如果没有硬件支持,尽量避免使用乘法。
                      .尽量避免使用除法。
                      .如果没有硬件支持,尽量避免使用浮点数。
                      下图是一个例子,其中两段代码的功能完全一样,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。下图(a)采用数组下标的方法,在定位第i个数组元素时,需要将i乘以结构体元素的大小,再加上数组的起始地址。下图(b)采用的是指针访问的方法,先把指针fp初始化为数组的起始地址,然后每访问完一个数组元素,就把fp加1,指向下一个元素。在一个奔腾4的PC上,将这两段代码分别重复10 700次,右边这段代码需要1ms,而左边这段代码需要2.13ms。
                      
                      算术运算性能优化的例子
 
       测试过程
        软件测试过程一般包括:测试需求分析、测试策划、测试设计和实现、测试执行、测试总结(包括评价过程和总结),如下图所示。
        
        软件测试过程
               测试需求分析
               根据被测软件的需求规格说明或设计文档,进行测试需求分析,包括:
               (1)确定需要的测试类型及其测试要求并进行标识(编号),标识应清晰、便于识别。测试类型包括功能测试、性能测试等类型;测试要求包括状态、接口、数据结构、设计约束等要求。确定的测试类型和测试要求均应与要求的测试级别(单元测试、部件测试、配置项测试、系统测试)、测试类型相匹配。
               (2)确定每个测试项的优先级。
               (3)确定每个测试项的测试充分性要求。
               (4)根据被测软件的重要性、测试目标和约束条件,确定每个测试项应覆盖的范围及范围所要求的覆盖程度。
               (5)确定每个测试项测试终止的要求,包括测试过程正常终止的条件(如测试充分性是否达到要求)和导致测试过程异常终止的可能情况。
               (6)确定测试项与软件需求规格说明或设计文档的追踪关系。
               将测试需求分析结果按所确定的文档要求,形成测试需求规格说明或写入测试计划。
               应对测试需求规格说明或测试需求分析结果进行评审,评审内容如下:
               (1)测试级别和测试对象所确定的测试类型及其测试要求是否恰当。
               (2)每个测试项是否进行了标识,并逐条覆盖了测试需求和潜在需求。
               (3)测试类型和测试项是否充分。
               (4)测试项是否包括了终止要求。
               (5)文档是否符合规定的要求。
               测试策划
               根据软件需求规格说明或设计文档等进行测试策划,策划一般包括:
               (1)确定测试策略,如部件或配置项测试策略。
               (2)确定测试需要的技术或方法,如测试数据生成与验证技术、测试数据输入技术、测试结果获取技术。
               (3)确定要受控制的测试工作产品,列出清单。
               (4)确定用于测试的资源要求,包括软硬件设备、环境条件、人员数量和技能等要求。
               (5)进行测试风险分析,如技术风险、人员风险、资源风险和进度风险等。
               (6)确定测试任务的结束条件。
               (7)确定被测软件的评价准则和方法。
               (8)确定测试活动的进度。应根据测试资源和测试项,确定进度。
               应将测试策划结果,按所确定的文档要求形成测试计划。
               测试设计和实现
               应根据测试需求规格说明和测试计划进行测试设计和实现,应完成如下工作:
               (1)按需要分解测试项。将需要测试的测试项进行层次化的分解并进行标识,若有接口测试,还应有高层次的接口图说明所有接口和要测试的接口。
               (2)说明最终分解后的测试项。说明测试用例设计方法的具体应用、测试数据的选择依据等。
               (3)设计测试用例。
               (4)确定测试用例的执行顺序。
               (5)准备和验证所有的测试用数据。针对测试输入要求,设计测试用的数据,如数据类型、输入方法等。
               (6)准备并获取测试资源,如测试环境所必须的软、硬件资源等。
               (7)必要时,编写测试执行需要的程序,如开发部件测试的驱动模块和桩模块以及测试支持软件等。
               (8)建立和校核测试环境,记录校核结果,说明测试环境的偏差。
               应将测试设计与实现的工作结果,按照所确定的文档要求编写测试说明,测试说明一般应包括:
               (1)测试名称和项目标识。
               (2)测试用例的追踪。说明测试所依据的内容来源,并跟踪到相应的测试项的标识(编号)。
               (3)测试用例说明。简要描述测试的对象、目的和所采用的测试方法。
               (4)测试用例的初始化要求,包括硬件配置、软件配置(包括测试的初始条件)、测试配置(如用于测试的模拟系统和测试工具)、参数设置(如测试开始前对断点、指针、控制参数和初始化数据的设置)等的初始化要求。
               (5)测试用例的输入。每个测试用例输入的描述中应包括的内容:
               ①每个测试输入的名称、用途和具体内容(如确定的数值、状态或信号等)及其性质(如有效值、无效值、边界值等)。
               ②测试输入的来源(如测试程序产生、磁盘文件、通过网络接收、人工键盘输入等),以及选择输入所使用的方法(如等价类划分、边界值分析、猜错法、因果图以及功能图等)。
               ③测试输入是真实的还是模拟的。
               ④测试输入的时间顺序或事件顺序。
               (6)测试用例的期望测试结果。期望测试结果应有具体内容(如确定的数值、状态或信号等),不应是不确切的概念或笼统的描述。必要时,应提供中间的期望结果。
               (7)测试用例的测试结果评估准则。评估准则用以判断测试用例执行中产生的中间或最后结果是否正确。评估准则应根据不同情况提供相关信息,如:
               ①实际测试结果所需的精确度。
               ②允许的实际测试结果与期望结果之间差异的上、下限。
               ③时间的最大或最小间隔。
               ④事件数目的最大或最小值。
               ⑤实际测试结果不确定时,重新测试的条件。
               ⑥与产生测试结果有关的出错处理。
               ⑦其他有关准则。
               (8)实施测试用例的执行步骤。编写按照执行顺序排列的一系列相对独立的步骤,执行步骤应包括:
               ①每一步所需的测试操作动作、测试程序输入或设备操作等。
               ②每一步期望的测试结果。
               ③每一步的评估准则。
               ④导致被测程序执行终止伴随的动作或指示信息。
               ⑤需要时,获取和分析中间结果的方法。
               (9)测试用例的前提和约束。在测试用例中还应说明实施测试用例的前提条件和约束条件,如特别限制、参数偏差或异常处理等,并要说明它们对测试用例的影响。
               (10)测试终止条件。说明测试用例的测试正常终止和异常终止的条件。
               (11)确定测试说明与测试计划或测试需求规格说明的追踪关系,给出清晰、明确的追踪表。
               (12)测试说明应经过评审,得到相关人员的认同,测试说明评审内容如下:
               ①测试说明是否完整、正确和规范。
               ②测试设计是否完整和合理。
               ③测试用例是否可行和充分。
               测试执行
               应按照测试计划和测试说明的内容和要求执行测试,主要完成下列工作:
               如实填写测试记录,当结果有量值要求时,应准确记录实际的量值。
               (1)测试记录应受到严格管理,并规范格式,至少包括测试用例标识、测试结果和发现的缺陷。
               (2)应根据每个测试用例的期望测试结果、实际测试结果和评估准则,判定测试用例是否通过。
               (3)当测试用例不通过时,应根据不同的缺陷类型,采取相应的措施:
               ①对测试工作中的缺陷,如测试说明的缺陷、测试数据的缺陷、执行测试步骤时的缺陷、测试环境中的缺陷等,记录到相应的表格中,并实施相应的变更。
               ②对被测软件的缺陷应记录到软件问题报告中。
               ③软件问题报告的格式应规范。
               (4)当所有的测试用例都执行完毕后,实验室应根据测试的充分性要求和有关记录,分析测试工作是否充分,是否需要进行补充测试:
               ①当测试过程正常终止时,如果发现测试工作不足,或测试未达到预期要求时,应进行补充测试。
               ②当测试过程异常终止时,应记录导致终止的条件、未完成的测试或未被修正的错误。
               测试总结
               应根据被测软件文档、测试需求规格说明、测试计划、测试说明、测试记录、测试问题及变更报告和软件问题报告等,对测试工作和被测软件进行分析和评价,主要完成下列工作:
               (1)对测试工作进行分析和评价,分析和评价内容应包括:
               ①总结测试需求规格说明、测试计划和测试说明的变化情况及其原因。
               ②在测试异常终止时,说明未能被测试活动充分覆盖的范围及其理由。
               ③确定无法解决的软件测试事件并说明不能解决的理由。
               (2)对被测软件进行分析和评价,分析和评价内容应包括:
               ①总结测试中所反映的被测软件与软件需求(或软件设计)之间的差异。
               ②可能时,根据差异评价被测软件的设计与实现,提出改进的建议。
               ③当进行配置项测试或系统测试时,当需要时,测试总结中应对配置项或系统的性能做出评估,指明偏差、缺陷和约束条件等对于配置项或系统运行的影响。
               (3)分析测评项目中的数据和文档,以供以后的测试使用。数据如:缺陷数据(包括缺陷描述、类型、严重性等)、用例数据、管理数据(如生产率、工作量、进度等);文档如:好的用例设计、好的需求规格说明等。
               (4)应根据被测软件文档、测试需求规格说明、测试计划、测试说明、测试记录和软件问题报告等有关文档,对测试结果和问题进行分类和总结,按所确定的文档要求编写测试报告。测试报告除了应包括对测试结果的分析,还应包括对被测软件的评价和建议。
               测试总结评审应在测试报告编制工作完成后进行,以确定是否达到测试目的,给出评审结论。评审的具体内容和要求包括:
               (1)审查测试文档与记录内容的完整性、正确性和规范性。
               (2)审查测试活动的独立性和有效性。
               (3)审查测试环境是否符合测试要求。
               (4)审查软件测试报告与软件测试原始记录和问题报告的一致性。
               (5)审查实际测试过程与测试计划和测试说明的一致性。
               (6)审查测试说明评审的有效性,如是否评审了测试项选择的完整性和合理性、测试用例的可行性和充分性。
               (7)审查测试结果的真实性和正确性。
 
       规范化
        关系数据库设计的方法之一就是设计满足适当范式的模式,通常可以通过判断分解后的模式达到几范式来评价模式规范化的程度。范式有:1NF、2NF、3NF、BCNF、4NF和5NF,其中1NF级别最低。这几种范式之间成立。
        通过分解,可以将一个低一级范式的关系模式转换成若干个高一级范式的关系模式,这种过程叫作规范化。下面将给出各个范式的定义。
               1NF(第一范式)
               【定义7.10】若关系模式R的每一个分量是不可再分的数据项,则关系模式R属于第一范式。记为R∈1NF。
               例如,供应者和它所提供的零件信息,关系模式FIRST和函数依赖集F如下:
               FIRST(Sno,Sname,Status,City,Pno,Qty)
               F={Sno→Sname,Sno→Status,Status→City,(Sno,Pno)→Qty}
               对具体的关系FIRST如下表所示。从下表中可以看出,每一个分量都是不可再分的数据项,所以是1NF的。但是,1NF存在4个问题:
               
               FIRST
               (1)冗余度大。例如每个供应者的Sno、Sname、Status、City要与其供应的零件的种类一样多。
               (2)引起修改操作的不一致性。例如供应者S1从“天津”搬到“上海”,若不注意,会使一些数据被修改,另一些数据未被修改,导致数据修改的不一致性。
               (3)插入异常。关系模式FRIST的主码为Sno、Pno,按照关系模式实体完整性规定主码不能取空值或部分取空值。这样,当某个供应者的某些信息未提供时(如Pno),则不能进行插入操作,这就是所谓的插入异常。
               (4)删除异常。若供应商S4的P2零件销售完了,并且以后不再销售P2零件,那么应删除该元组。这样,在基本关系FIRST找不到S4,可S4又是客观存在的。
               正因为上述4个原因,所以要对模式进行分解,并引入了2NF。
               2NF(第二范式)
               【定义7.11】若关系模式R∈1NF,且每一个非主属性完全依赖于码,则关系模式R∈2NF。
               换句话说,当1NF消除了非主属性对码的部分函数依赖,则称为2NF。
               例如,FIRST关系中的码是Sno、Pno,而Sno→Status,因此非主属性Status部分函数依赖于码,故非2NF的。
               若此时,将FIRST关系分解为:
               FIRST1(Sno,Sname,Status,City)∈ 2NF
               FIRST2(Sno,Pno,Qty)∈2NF
               因为分解后的关系模式FIRST1的码为Sno,非主属性Sname、Status、City完全依赖于码Sno,所以属于2NF;关系模式FIRST2的码为Sno、Pno,非主属性Qty完全依赖于码,所以也属于2NF。
               3NF(第三范式)
               【定义7.12】若关系模式R(U,F)中不存在这样的码X,属性组Y及非主属性使得X→Y,成立,则关系模式R∈3NF。
               即当2NF消除了非主属性对码的传递函数依赖,则称为3NF。
               例如,FIRST1?3NF,因为在分解后的关系模式FIRST1中有Sno→Status,Status→City,存在着非主属性City传递依赖于码Sno。若此时将FIRST1继续分解为:
               FIRST11(Sno,Sname,Status)∈ 3NF
               FIRST12(Status,City)∈3NF
               通过上述分解,数据库模式FIRST转换为FIRST11(Sno,Sname,Status)、FIRST12(Status,City)、FIRST2(Sno,Pno,Qty)三个子模式。由于这三个子模式都达到了3NF,因此称分解后的数据库模式达到了3NF。
               可以证明,3NF的模式必是2NF的模式。产生冗余和异常的两个重要原因是部分依赖和传递依赖。因为3NF模式中不存在非主属性对码的部分函数依赖和传递函数依赖,所以具有较好的性能。对于非3NF的1NF、2NF其性能弱,一般不宜作为数据库模式,通常要将它们变换成为3NF或更高级别的范式,这种变换过程称为“关系模式的规范化处理”。
               BCNF(Boyce Codd Normal Form,巴克斯范式)
               【定义7.13】关系模式R∈1NF,若X→Y且时,X必含有码,则关系模式R∈BCNF。
               也就是说,当3NF消除了主属性对码的部分函数依赖和传递函数依赖,则称为BCNF。
               结论:一个满足BCNF的关系模式,应有如下性质。
               (1)所有非主属性对每一个码都是完全函数依赖。
               (2)所有非主属性对每一个不包含它的码,也是完全函数依赖。
               (3)没有任何属性完全函数依赖于非码的任何一组属性。
               例如,设R(Pno,Pname,Mname)的属性分别表示零件号、零件名和厂商名,如果约定,每种零件号只有一个零件名,但不同的零件号可以有相同的零件名;每种零件可以有多个厂商生产,但每家厂商生产的零件应有不同的零件名。这样我们可以得到如下一组函数依赖:
               Pno→Pname,(Pname,Mname)→Pno
               由于该关系模式R中的候选码为(Pname,Mname)或(Pno,Mname),因而关系模式R的属性都是主属性,不存在非主属性对码的传递依赖,所以R是3NF的。但是,主属性Pname传递依赖于码(Pname,Mname),因此R不是BCNF的。当一种零件由多个生产厂家生产时,零件名与零件号间的联系将多次重复,带来冗余和操作异常现象。若将R分解成:
               R1(Pno,Pname)和R2(Pno,Mname)
               就可以解决上述问题,并且分解后的关系模式R1、R2都属于BCNF。
               4NF(第四范式)
               【定义7.14】关系模式R∈1NF,若对于R的每个非平凡多值依赖X→→Y且时,X必含有码,则关系模式R(U,F)∈4NF。
               4NF是限制关系模式的属性间不允许有非平凡且非函数依赖的多值依赖。
               注意:如果只考虑函数依赖,关系模式最高的规范化程度是BCNF;如果考虑多值依赖,关系模式最高的规范化程度是4NF。
               连接依赖5NF
               连接依赖:当关系模式无损分解为n个投影(n>2)会产生一些特殊的情况。下面考虑供应商数据库中SPJ关系的一个具体的值,如下图所示。
               
               关系SPJ是三个二元投影的连接
               第一次SP、PJ投影连接“”起来的结果比原始SPJ关系多了一个元组“S2,P1,J2”,即上图中带下画线的元组。第二次连接的结果去掉了多余的元组,从而恢复了原始的关系SPJ。在这种情况下,原始的SPJ关系是可3分解的。注意,无论我们选择哪两个投影作为第一次连接,结果都是一样的,尽管在每种情况下中间结果不同。
               SPJ的可3分解性是基本与时间无关的特性,是关系模式的所有合法值满足的特性,也就是说,这是关系模式满足一个特定的与时间无关的完整性约束。将这种约束简称为3D(3分解)约束。上述情况就是连接依赖要研究的问题。
               连接依赖:如果给定一个关系模式R,R1,R2,R3,…,Rn是R的分解,那么称R满足连接依赖JD*{R1,R2,R3,…,Rn},当且仅当R的任何可能出现的合法值都与它在R1,R2,R3,…,Rn上的投影等价。
               形式化地说,若R=R1∪R2∪…∪Rn,且,则称R满足连接依赖JD*{R1,R2,R3,…,Rn}。如果某个Ri,就是R本身,则连接依赖是平凡的。
               为了进一步理解连接依赖的概念,我们考虑银行数据库中的子模式:贷款(L-no,Bname,C-name,amount)。其中:
               .贷款号为L-no的贷款是由机构名为Bname贷出的。
               .贷款号为L-no的贷款是贷给客户名为C-name的客户。
               .贷款号为L-no的贷款的金额是amount。
               我们可以看到这是一个非常直观的逻辑蕴涵连接依赖:
               JD*((L-no,Bname),(L-no,C-name),(L-no,amount))
               这个例子说明了连接依赖很直观,符合数据库设计的原则。
               【定义7.15】一个关系模式R是第五范式(也称投影-连接范式PJNF),当且仅当R的每一个非平凡的连接依赖都被R的候选码所蕴涵,记作5NF。
               “被R的候选码所蕴涵”的含义可通过SPJ关系来理解。关系模式SPJ并不是5NF的,因为它满足一个特定连接依赖,即3D约束。这显然没有被其唯一的候选码(该候选码是所有属性的组合)所蕴涵。其区别是,关系模式SPJ并不是5NF,因为它是可被3分解的,可3分解并没有为其(Sno,Pno,Jno)候选码所蕴涵。但是将SPJ3分解后,由于3个投影SP、PJ、JS不包括任何(非平凡的)连接依赖,因此它们都是5NF的。
 
       配置管理
        随着信息系统软件版本不断变化,开发时间的紧迫以及多平台开发环境的采用,使得软件开发、维护面临越来越多的问题,其中包括对当前多种软件的开发和维护、保证产品版本的精确、重建先前发布的产品、加强开发政策的统一和对特殊版本需求的处理等等。
        信息系统软件配置管理是一种应用于整个软件工程过程的标识、组织和控制修改的围绕软件资产的管理技术。界定软件的组成项目,对每个项目的变更进行管控(版本控制),并维护不同项目之间的版本关联,以使软件在开发过程中任一时间的内容都可以被追溯。其关键活动包括:配置管理计划、配置项管理、版本控制、变更控制、配置审计、状态报告等。
               配置管理计划
               根据信息系统软件运维制度和规范、标准,制定配置管理计划,主要包括以下内容。
               (1)该项目对配置管理的要求。
               (2)实施配置管理的责任人、组织及其职责。
               (3)需要开展的配置管理活动及其进度安排。
               (4)采用的方法和工具等。
               配置与配置项
               “配置”是在技术文档中明确说明并最终组成软件产品的功能或物理属性。因此“配置”包括了即将受控的所有产品特性,及其内容及相关文档,软件版本,变更文档,软件运行的支持数据,以及其他一切保证软件一致性的组成要素。
               为了方便对“配置”进行管理,“配置”经常被划分为各类配置项,这类划分是进行软件配置管理的基础和前提。配置项是一组软件功能或者物理属性的组合,在配置管理过程中,配置项被作为一个单一的实体对待。配置项包括各种管理文档和技术文档,源程序与目标代码,以及运行所需的各种数据等。同时,应该建立配置库来管理所有的配置项。
               版本控制
               版本是表示一个配置项具有一组定义的功能的一种标识。随着功能的增加,修改或删除,配置项的版本随之演变。应当记录每个软件配置项的所有历史记录,并记录该软件配置项由何人创建,何人在何时因何原因进行了修改等信息,以及对这些软件配置项版本的进行检索和信息查询等活动。
               变更控制
               变更在信息系统软件运维过程中是不可避免的。变更控制是配置管理的一个重要组成部分,包含评估、协调、批准/拒绝、实施对配置项的变更。
               配置审计
               配置审计是对配置管理的独立的查检过程,确认受控软件配置项满足需求并就绪。其内容如下。
               (1)功能审计:配置项的变更控制是否和配置管理计划中的描述相一致。
               (2)物理审计:配置项的完整性、正确性、一致性和可跟踪性。
               状态报告
               状态报告用来记录和报告有效管理配置所需要的必要信息。这些信息包括一个已批准的配置标识清单,变更请求当前的处理状态,以及批准的变更的实现情况。配置状态报告可以跟踪对软件的更改的过程,它保证对正在进行和已完成的变更进行记录、监视并通报给相关人员。
 
       配置管理工具
        随着虚拟化和云计算的发展,导致了企业内外需要加以管理的服务器数量大幅增长。配置管理工具主要用于配置和维护数十台、数百台、乃至数千台服务器。目前,主要的服务器配置管理工具包括Ansible、Chef、Puppet、SaltStack等。
 
       配置项
        GB/T 11457—2006对配置项的定义为:“为配置管理设计的硬件、软件或二者的集合,在配置管理过程中作为一个单个实体来对待。”配置项的例子有:交付的软件产品和数据,用于创建或支持软件产品的支持工具,供应商提供的软件和客户提供的设备/软件,各类文档,源代码,可执行代码,测试用例,运行软件所需的各种数据等。
        在信息系统的开发过程中需加以控制的配置项可以分为基线配置项和非基线配置项两类。例如,基线配置项可能包括所有的设计文档和源程序等;非基线配置项可能包括项目的各类计划和报告等。所有配置项的操作权限应由CMO(配置管理员)严格管理,基本原则是:基线配置项向开发人员开放读取的权限;非基线配置项向PM、CCB及相关人员开放。
 
       评审
        对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方法的可行性,关键的处理及内外部接口定义的正确性、有效性、各部分之间的一致性等都一一进行评审。
 
       人工智能
               人工智能技术发展概述
                      人工智能技术流派发展简析
                      人工智能是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。让机器实现人的智能,一直是人工智能学者不断追求的目标,不同学科背景或应用领域的学者,从不同角度,用不同的方法,沿着不同的途径对智能进行了探索。其中,符号主义、连接主义和行为主义是人工智能发展历史上的三大技术流派。
                      符号主义又称为逻辑主义,在人工智能早期一直占据主导地位。该学派认为人工智能源于数学逻辑,其实质是模拟人的抽象逻辑思维,用符号描述人类的认知过程。早期的研究思路是通过基本的推断步骤寻求完全解,出现了逻辑理论家和几何定理证明器等。上世纪70年代出现了大量的专家系统,结合了领域知识和逻辑推断,使得人工智能进入了工程应用。PC的出现以及专家系统高昂的成本,使符号学派在人工智能领域的主导地位逐渐被连接主义取代。
                      连接主义又称为仿生学派,当前占据主导地位。该学派认为人工智能源于仿生学,应以工程技术手段模拟人脑神经系统的结构和功能。连接主义最早可追溯到1943年麦卡洛克和皮茨创立的脑模型,由于受理论模型、生物原型和技术条件的限制,在20世纪70年代陷入低潮。直到1982年霍普菲尔特提出的Hopfield神经网络模型和1986年鲁梅尔哈特等人提出的反向传播算法,使得神经网络的理论研究取得了突破。2006年,连接主义的领军者Hinton提出了深度学习算法,使神经网络的能力大大提高。2012年,使用深度学习技术的AlexNet模型在ImageNet竞赛中获得冠军。
                      行为主义又称为进化主义,近年来随着AlphaGo取得的突破而受到广泛关注。该学派认为人工智能源于控制论,智能行为的基础是“感知—行动”的反应机制,所以智能无需知识表示,无需推断。智能只是在与环境交互作用中表现出来,需要具有不同的行为模块与环境交互,以此来产生复杂的行为。
                      在人工智能的发展过程中,符号主义、连接主义和行为主义等流派不仅先后在各自领域取得了成果,各学派也逐渐走向了相互借鉴和融合发展的道路。特别是在行为主义思想中引入连接主义的技术,从而诞生了深度强化学习技术,成为AlphaGo战胜李世石背后最重要的技术手段。
                      深度学习带动下的人工智能发展
                      深度学习已经在语音识别、图像识别等领域取得突破。深度学习全称深度神经网络,本质上是多层次的人工神经网络算法,即从结构上模拟人脑的运行机制,从最基本的单元上模拟了人类大脑的运行机制。深度学习已经开始在计算机视觉、语音识别、自然语言理解等领域取得了突破。在语音识别领域,2010年,使用深度神经网络模型的语音识别相对传统混合高斯模型识别错误率降低超过20%,目前所有的商用语音识别算法都基于深度学习。在图像分类领域,目前针对ImageNet数据集的算法分类精度已经达到了95%以上,可以与人的分辨能力相当。深度学习在人脸识别、通用物体检测、图像语义分割、自然语言理解等领域也取得了突破性的进展。
                      海量的数据和高效的算力支撑是深度学习算法实现的基础。深度学习分为训练(training)和推断(inference)两个环节。训练需要海量数据输入,训练出一个复杂的深度神经网络模型。推断指利用训练好的模型,使用待判断的数据去“推断”得出各种结论。大数据时代的到来,图形处理器(Graphics Processing Unit,GPU)等各种更加强大的计算设备的发展,使得深度学习可以充分利用海量数据(标注数据、弱标注数据或无标注数据),自动地学习到抽象的知识表达,即把原始数据浓缩成某种知识。当前基于深度学习的人工智能技术架构如下图所示。
                      
                      基于深度学习的人工智能技术应用架构图
               人工智能技术
                      人工智能关键技术
                             机器学习
                             机器学习(Machine Learning)是一门涉及统计学、系统辨识、逼近理论、神经网络、优化理论、计算机科学、脑科学等诸多领域的交叉学科,研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能,是人工智能技术的核心。基于数据的机器学习是现代智能技术中的重要方法之一,研究从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测。根据学习模式、学习方法以及算法的不同,机器学习存在不同的分类方法。
                             根据学习模式将机器学习分类为监督学习、无监督学习和强化学习等。
                             (1)监督学习。监督学习是利用已标记的有限训练数据集,通过某种学习策略/方法建立一个模型,实现对新数据/实例的标记(分类)/映射,最典型的监督学习算法包括回归和分类。监督学习要求训练样本的分类标签已知,分类标签精确度越高,样本越具有代表性,学习模型的准确度越高。监督学习在自然语言处理、信息检索、文本挖掘、手写体辨识、垃圾邮件侦测等领域获得了广泛应用。
                             (2)无监督学习。无监督学习是利用无标记的有限数据描述隐藏在未标记数据中的结构/规律,最典型的无监督学习算法包括单类密度估计、单类数据降维、聚类等。无监督学习不需要训练样本和人工标注数据,便于压缩数据存储、减少计算量、提升算法速度,还可以避免正、负样本偏移引起的分类错误问题。主要用于经济预测、异常检测、数据挖掘、图像处理、模式识别等领域,例如组织大型计算机集群、社交网络分析、市场分割、天文数据分析等。
                             (3)强化学习。强化学习是智能系统从环境到行为映射的学习,以使强化信号函数值最大。由于外部环境提供的信息很少,强化学习系统必须靠自身的经历进行学习。强化学习的目标是学习从环境状态到行为的映射,使得智能体选择的行为能够获得环境最大的奖赏,使得外部环境对学习系统在某种意义下的评价为最佳。其在机器人控制、无人驾驶、下棋、工业控制等领域获得成功应用。
                             根据学习方法可以将机器学习分为传统机器学习和深度学习。
                             (1)传统机器学习。传统机器学习从一些观测(训练)样本出发,试图发现不能通过原理分析获得的规律,实现对未来数据行为或趋势的准确预测。相关算法包括逻辑回归、隐马尔科夫方法、支持向量机方法、K近邻方法、三层人工神经网络方法、Adaboost算法、贝叶斯方法以及决策树方法等。传统机器学习平衡了学习结果的有效性与学习模型的可解释性,为解决有限样本的学习问题提供了一种框架,主要用于有限样本情况下的模式分类、回归分析、概率密度估计等。传统机器学习方法共同的重要理论基础之一是统计学,在自然语言处理、语音识别、图像识别、信息检索和生物信息等许多计算机领域获得了广泛应用。
                             (2)深度学习。深度学习是建立深层结构模型的学习方法,典型的深度学习算法包括深度置信网络、卷积神经网络、受限玻尔兹曼机和循环神经网络等。深度学习又称为深度神经网络(指层数超过3层的神经网络)。深度学习作为机器学习研究中的一个新兴领域,由Hinton等人于2006年提出。深度学习源于多层神经网络,其实质是给出了一种将特征表示和学习合二为一的方式。深度学习的特点是放弃了可解释性,单纯追求学习的有效性。经过多年的摸索尝试和研究,已经产生了诸多深度神经网络的模型,其中卷积神经网络、循环神经网络是两类典型的模型。卷积神经网络常被应用于空间性分布数据;循环神经网络在神经网络中引入了记忆和反馈,常被应用于时间性分布数据。深度学习框架是进行深度学习的基础底层框架,一般包含主流的神经网络算法模型,提供稳定的深度学习API,支持训练模型在服务器和GPU、TPU间的分布式学习,部分框架还具备在包括移动设备、云平台在内的多种平台上运行的移植能力,从而为深度学习算法带来前所未有的运行速度和实用性。目前主流的开源算法框架有TensorFlow、Caffe/Caffe2、CNTK、MXNet、Paddle-paddle、Torch/PyTorch、Theano等。
                             此外,机器学习的常见算法还包括迁移学习、主动学习和演化学习等。
                             (1)迁移学习。迁移学习是指当在某些领域无法取得足够多的数据进行模型训练时,利用另一领域数据获得的关系进行的学习。迁移学习可以把已训练好的模型参数迁移到新的模型指导新模型训练,可以更有效地学习底层规则、减少数据量。目前的迁移学习技术主要在变量有限的小规模应用中使用,如基于传感器网络的定位,文字分类和图像分类等。未来迁移学习将被广泛应用于解决更有挑战性的问题,如视频分类、社交网络分析、逻辑推理等。
                             (2)主动学习。主动学习通过一定的算法查询最有用的未标记样本,并交由专家进行标记,然后用查询到的样本训练分类模型来提高模型的精度。主动学习能够选择性地获取知识,通过较少的训练样本获得高性能的模型,最常用的策略是通过不确定性准则和差异性准则选取有效的样本。
                             (3)演化学习。演化学习对优化问题性质要求极少,只需能够评估解的好坏即可,适用于求解复杂的优化问题,也能直接用于多目标优化。演化算法包括粒子群优化算法、多目标演化算法等。目前针对演化学习的研究主要集中在演化数据聚类、对演化数据更有效的分类,以及提供某种自适应机制以确定演化机制的影响等。
                             知识图谱
                             知识图谱本质上是结构化的语义知识库,是一种由节点和边组成的图数据结构,以符号形式描述物理世界中的概念及其相互关系,其基本组成单位是“实体—关系—实体”三元组,以及实体及其相关“属性—值”对。不同实体之间通过关系相互联结,构成网状的知识结构。在知识图谱中,每个节点表示现实世界的“实体”,每条边为实体与实体之间的“关系”。通俗地讲,知识图谱就是把所有不同种类的信息连接在一起而得到的一个关系网络,提供了从“关系”的角度去分析问题的能力。
                             知识图谱可用于反欺诈、不一致性验证、组团欺诈等公共安全保障领域,需要用到异常分析、静态分析、动态分析等数据挖掘方法。特别地,知识图谱在搜索引擎、可视化展示和精准营销方面有很大的优势,已成为业界的热门工具。但是,知识图谱的发展还有很大的挑战,如数据的噪声问题,即数据本身有错误或者数据存在冗余。随着知识图谱应用的不断深入,还有一系列关键技术需要突破。
                             自然语言处理
                             自然语言处理是计算机科学领域与人工智能领域中的一个重要方向,研究能实现人与计算机之间用自然语言进行有效通信的各种理论和方法,涉及的领域较多,主要包括机器翻译、语义理解和问答系统等。
                             (1)机器翻译。机器翻译技术是指利用计算机技术实现从一种自然语言到另外一种自然语言的翻译过程。基于统计的机器翻译方法突破了之前基于规则和实例翻译方法的局限性,翻译性能取得巨大提升。基于深度神经网络的机器翻译在日常口语等一些场景的成功应用已经显现出了巨大的潜力。随着上下文的语境表征和知识逻辑推理能力的发展,自然语言知识图谱不断扩充,机器翻译将会在多轮对话翻译及篇章翻译等领域取得更大进展。目前非限定领域机器翻译中性能较佳的一种是统计机器翻译,包括训练及解码两个阶段。训练阶段的目标是获得模型参数,解码阶段的目标是利用所估计的参数和给定的优化目标,获取待翻译语句的最佳翻译结果。统计机器翻译主要包括语料预处理、词对齐、短语抽取、短语概率计算、最大熵调序等步骤。基于神经网络的端到端翻译方法不需要针对双语句子专门设计特征模型,而是直接把源语言句子的词串送入神经网络模型,经过神经网络的运算,得到目标语言句子的翻译结果。在基于端到端的机器翻译系统中,通常采用递归神经网络或卷积神经网络对句子进行表征建模,从海量训练数据中抽取语义信息,与基于短语的统计翻译相比,其翻译结果更加流畅自然,在实际应用中取得了较好的效果。
                             (2)语义理解。语义理解技术是指利用计算机技术实现对文本篇章的理解,并且回答与篇章相关问题的过程。语义理解更注重于对上下文的理解以及对答案精准程度的把控。随着MCTest数据集的发布,语义理解受到更多关注,取得了快速发展,相关数据集和对应的神经网络模型层出不穷。语义理解技术将在智能客服、产品自动问答等相关领域发挥重要作用,进一步提高问答与对话系统的精度。在数据采集方面,语义理解通过自动构造数据方法和自动构造填空型问题的方法来有效扩充数据资源。为了解决填充型问题,一些基于深度学习的方法相继提出,如基于注意力的神经网络方法。当前主流的模型是利用神经网络技术对篇章、问题建模,对答案的开始和终止位置进行预测,抽取出篇章片段。对于进一步泛化的答案,处理难度进一步提升,目前的语义理解技术仍有较大的提升空间。
                             (3)问答系统。问答系统分为开放领域的对话系统和特定领域的问答系统。问答系统技术是指让计算机像人类一样用自然语言与人交流的技术。人们可以向问答系统提交用自然语言表达的问题,系统会返回关联性较高的答案。尽管问答系统目前已经有了不少应用产品出现,但大多是在实际信息服务系统和智能手机助手等领域中的应用,在问答系统鲁棒性方面仍然存在着问题和挑战。
                             自然语言处理面临四大挑战:一是在词法、句法、语义、语用和语音等不同层面存在不确定性;二是新的词汇、术语、语义和语法导致未知语言现象的不可预测性;三是数据资源的不充分使其难以覆盖复杂的语言现象;四是语义知识的模糊性和错综复杂的关联性难以用简单的数学模型描述,语义计算需要参数庞大的非线性计算。
                             人机交互
                             人机交互主要研究人和计算机之间的信息交换,主要包括人到计算机和计算机到人的两部分信息交换,是人工智能领域的重要的外围技术。人机交互是与认知心理学、人机工程学、多媒体技术、虚拟现实技术等密切相关的综合学科。传统的人与计算机之间的信息交换主要依靠交互设备进行,主要包括键盘、鼠标、操纵杆、数据服装、眼动跟踪器、位置跟踪器、数据手套、压力笔等输入设备,以及打印机、绘图仪、显示器、头盔式显示器、音箱等输出设备。人机交互技术除了传统的基本交互和图形交互外,还包括语音交互、情感交互、体感交互及脑机交互等技术,以下对后四种与人工智能关联密切的典型交互手段进行介绍。
                             (1)语音交互。语音交互是一种高效的交互方式,是人以自然语音或机器合成语音同计算机进行交互的综合性技术,结合了语言学、心理学、工程和计算机技术等领域的知识。语音交互不仅要对语音识别和语音合成进行研究,还要对人在语音通道下的交互机理、行为方式等进行研究。语音交互过程包括四部分:语音采集、语音识别、语义理解和语音合成。语音采集完成音频的录入、采样及编码;语音识别完成语音信息到机器可识别的文本信息的转化;语义理解根据语音识别转换后的文本字符或命令完成相应的操作;语音合成完成文本信息到声音信息的转换。作为人类沟通和获取信息最自然便捷的手段,语音交互比其他交互方式具备更多优势,能为人机交互带来根本性变革,是大数据和认知计算时代未来发展的制高点,具有广阔的发展前景和应用前景。
                             (2)情感交互。情感是一种高层次的信息传递,而情感交互是一种交互状态,它在表达功能和信息时传递情感,勾起人们的记忆或内心的情愫。传统的人机交互无法理解和适应人的情绪或心境,缺乏情感理解和表达能力,计算机难以具有类似人一样的智能,也难以通过人机交互做到真正的和谐与自然。情感交互就是要赋予计算机类似于人一样的观察、理解和生成各种情感的能力,最终使计算机像人一样能进行自然、亲切和生动的交互。情感交互已经成为人工智能领域中的热点方向,旨在让人机交互变得更加自然。目前,在情感交互信息的处理方式、情感描述方式、情感数据获取和处理过程、情感表达方式等方面还有诸多技术挑战。
                             (3)体感交互。体感交互是个体不需要借助任何复杂的控制系统,以体感技术为基础,直接通过肢体动作与周边数字设备装置和环境进行自然的交互。依照体感方式与原理的不同,体感技术主要分为三类:惯性感测、光学感测以及光学联合感测。体感交互通常由运动追踪、手势识别、运动捕捉、面部表情识别等一系列技术支撑。与其他交互手段相比,体感交互技术无论是硬件还是软件方面都有了较大的提升,交互设备向小型化、便携化、使用方便化等方面发展,大大降低了对用户的约束,使得交互过程更加自然。目前,体感交互在游戏娱乐、医疗辅助与康复、全自动三维建模、辅助购物、眼动仪等领域有了较为广泛的应用。
                             (4)脑机交互。脑机交互又称为脑机接口,指不依赖于外围神经和肌肉等神经通道,直接实现大脑与外界信息传递的通路。脑机接口系统检测中枢神经系统活动,并将其转化为人工输出指令,能够替代、修复、增强、补充或者改善中枢神经系统的正常输出,从而改变中枢神经系统与内外环境之间的交互作用。脑机交互通过对神经信号解码,实现脑信号到机器指令的转化,一般包括信号采集、特征提取和命令输出三个模块。从脑电信号采集的角度,一般将脑机接口分为侵入式和非侵入式两大类。除此之外,脑机接口还有其他常见的分类方式:按照信号传输方向可以分为脑到机、机到脑和脑机双向接口;按照信号生成的类型,可分为自发式脑机接口和诱发式脑机接口;按照信号源的不同还可分为基于脑电的脑机接口、基于功能性核磁共振的脑机接口以及基于近红外光谱分析的脑机接口。
                             计算机视觉
                             计算机视觉是使用计算机模仿人类视觉系统的科学,让计算机拥有类似人类提取、处理、理解和分析图像以及图像序列的能力。自动驾驶、机器人、智能医疗等领域均需要通过计算机视觉技术从视觉信号中提取并处理信息。近来随着深度学习的发展,预处理、特征提取与算法处理渐渐融合,形成端到端的人工智能算法技术。根据解决的问题,计算机视觉可分为计算成像学、图像理解、三维视觉、动态视觉和视频编解码五大类。
                             (1)计算成像学。计算成像学是探索人眼结构、相机成像原理以及其延伸应用的科学。在相机成像原理方面,计算成像学不断促进现有可见光相机的完善,使得现代相机更加轻便,可以适用于不同场景。同时计算成像学也推动着新型相机的产生,使相机超出可见光的限制。在相机应用科学方面,计算成像学可以提升相机的能力,从而通过后续的算法处理使得在受限条件下拍摄的图像更加完善,例如图像去噪、去模糊、暗光增强、去雾霾等,以及实现新的功能,例如全景图、软件虚化、超分辨率等。
                             (2)图像理解。图像理解是通过用计算机系统解释图像,实现类似人类视觉系统理解外部世界的一门科学。通常根据理解信息的抽象程度可分为三个层次:浅层理解,包括图像边缘、图像特征点、纹理元素等;中层理解,包括物体边界、区域与平面等;高层理解,根据需要抽取的高层语义信息,可大致分为识别、检测、分割、姿态估计、图像文字说明等。目前高层图像理解算法已逐渐广泛应用于人工智能系统,如刷脸支付、智慧安防、图像搜索等。
                             (3)三维视觉。三维视觉即研究如何通过视觉获取三维信息(三维重建)以及如何理解所获取的三维信息的科学。三维重建可以根据重建的信息来源,分为单目图像重建、多目图像重建和深度图像重建等。三维信息理解,即使用三维信息辅助图像理解或者直接理解三维信息。三维信息理解可分为,①浅层:角点、边缘、法向量等;②中层:平面、立方体等;③高层:物体检测、识别、分割等。三维视觉技术可以广泛应用于机器人、无人驾驶、智慧工厂、虚拟/增强现实等方向。
                             (4)动态视觉。动态视觉即分析视频或图像序列,模拟人处理时序图像的科学。通常动态视觉问题可以定义为寻找图像元素,如像素、区域、物体在时序上的对应,以及提取其语义信息的问题。动态视觉研究被广泛应用在视频分析以及人机交互等方面。
                             (5)视频编解码。视频编解码是指通过特定的压缩技术,将视频流进行压缩。视频流传输中最为重要的编解码标准有国际电联的H.261、H.263、H.264、H.265、M-JPEG和MPEG系列标准。视频压缩编码主要分为两大类:无损压缩和有损压缩。无损压缩指使用压缩后的数据进行重构时,重构后的数据与原来的数据完全相同,例如磁盘文件的压缩。有损压缩也称为不可逆编码,指使用压缩后的数据进行重构时,重构后的数据与原来的数据有差异,但不会影响人们对原始资料所表达的信息产生误解。有损压缩的应用范围广泛,例如视频会议、可视电话、视频广播、视频监控等。
                             目前,计算机视觉技术发展迅速,已具备初步的产业规模。未来计算机视觉技术的发展主要面临以下挑战:一是如何在不同的应用领域和其他技术更好的结合,计算机视觉在解决某些问题时可以广泛利用大数据,已经逐渐成熟并且可以超过人类,而在某些问题上却无法达到很高的精度;二是如何降低计算机视觉算法的开发时间和人力成本,目前计算机视觉算法需要大量的数据与人工标注,需要较长的研发周期以达到应用领域所要求的精度与耗时;三是如何加快新型算法的设计开发,随着新的成像硬件与人工智能芯片的出现,针对不同芯片与数据采集设备的计算机视觉算法的设计与开发也是挑战之一。
                             生物特征识别
                             生物特征识别技术是指通过个体生理特征或行为特征对个体身份进行识别认证的技术。从应用流程看,生物特征识别通常分为注册和识别两个阶段。注册阶段通过传感器对人体的生物表征信息进行采集,如利用图像传感器对指纹和人脸等光学信息、麦克风对说话声等声学信息进行采集,利用数据预处理以及特征提取技术对采集的数据进行处理,得到相应的特征进行存储。识别过程采用与注册过程一致的信息采集方式对待识别人进行信息采集、数据预处理和特征提取,然后将提取的特征与存储的特征进行比对分析,完成识别。从应用任务看,生物特征识别一般分为辨认与确认两种任务,辨认是指从存储库中确定待识别人身份的过程,是一对多的问题;确认是指将待识别人信息与存储库中特定单人信息进行比对,确定身份的过程,是一对一的问题。
                             生物特征识别技术涉及的内容十分广泛,包括指纹、掌纹、人脸、虹膜、指静脉、声纹、步态等多种生物特征,其识别过程涉及到图像处理、计算机视觉、语音识别、机器学习等多项技术。目前生物特征识别作为重要的智能化身份认证技术,在金融、公共安全、教育、交通等领域得到广泛的应用。下面将对指纹识别、人脸识别、虹膜识别、指静脉识别、声纹识别以及步态识别等技术进行介绍。
                             (1)指纹识别。指纹识别过程通常包括数据采集、数据处理、分析判别三个过程。数据采集通过光、电、力、热等物理传感器获取指纹图像;数据处理包括预处理、畸变校正、特征提取三个过程;分析判别是对提取的特征进行分析判别的过程。
                             (2)人脸识别。人脸识别是典型的计算机视觉应用,从应用过程来看,可将人脸识别技术划分为检测定位、面部特征提取以及人脸确认三个过程。人脸识别技术的应用主要受到光照、拍摄角度、图像遮挡、年龄等多个因素的影响,在约束条件下人脸识别技术相对成熟,在自由条件下人脸识别技术还在不断改进。
                             (3)虹膜识别。虹膜识别的理论框架主要包括虹膜图像分割、虹膜区域归一化、特征提取和识别四个部分,研究工作大多是基于此理论框架发展而来。虹膜识别技术应用的主要难题包含传感器和光照影响两个方面:一方面,由于虹膜尺寸小且受黑色素遮挡,需在近红外光源下采用高分辨图像传感器才可清晰成像,对传感器质量和稳定性要求比较高;另一方面,光照的强弱变化会引起瞳孔缩放,导致虹膜纹理产生复杂形变,增加了匹配的难度。
                             (4)指静脉识别。指静脉识别是利用了人体静脉血管中的脱氧血红蛋白对特定波长范围内的近红外线有很好的吸收作用这一特性,采用近红外光对指静脉进行成像与识别的技术。由于指静脉血管分布随机性很强,其网络特征具有很好的唯一性,且属于人体内部特征,不受到外界影响,因此模态特性十分稳定。指静脉识别技术应用面临的主要难题来自于成像单元。
                             (5)声纹识别。声纹识别是指根据待识别语音的声纹特征识别说话人的技术。声纹识别技术通常可以分为前端处理和建模分析两个阶段。声纹识别的过程是将某段来自某个人的语音经过特征提取后与多复合声纹模型库中的声纹模型进行匹配,常用的识别方法可以分为模板匹配法、概率模型法等。
                             (6)步态识别。步态是远距离复杂场景下唯一可清晰成像的生物特征,步态识别是指通过身体体型和行走姿态来识别人的身份。相比上述几种生物特征识别,步态识别的技术难度更大,体现在其需要从视频中提取运动特征,以及需要更高要求的预处理算法,但步态识别具有远距离、跨角度、光照不敏感等优势。
                             虚拟现实/增强现实
                             虚拟现实(VR)/增强现实(AR)是以计算机为核心的新型视听技术。结合相关科学技术,在一定范围内生成与真实环境在视觉、听觉、触感等方面高度近似的数字化环境。用户借助必要的装备与数字化环境中的对象进行交互,相互影响,获得近似真实环境的感受和体验,通过显示设备、跟踪定位设备、触力觉交互设备、数据获取设备、专用芯片等实现。
                             虚拟现实/增强现实从技术特征角度,按照不同处理阶段,可以分为获取与建模技术、分析与利用技术、交换与分发技术、展示与交互技术以及技术标准与评价体系五个方面。获取与建模技术研究如何把物理世界或者人类的创意进行数字化和模型化,难点是三维物理世界的数字化和模型化技术;分析与利用技术重点研究对数字内容进行分析、理解、搜索和知识化方法,其难点是在于内容的语义表示和分析;交换与分发技术主要强调各种网络环境下大规模的数字化内容流通、转换、集成和面向不同终端用户的个性化服务等,其核心是开放的内容交换和版权管理技术;展示与交换技术重点研究符合人类习惯数字内容的各种显示技术及交互方法,以期提高人对复杂信息的认知能力,其难点在于建立自然和谐的人机交互环境;标准与评价体系重点研究虚拟现实/增强现实基础资源、内容编目、信源编码等的规范标准以及相应的评估技术。
                             目前虚拟现实/增强现实面临的挑战主要体现在智能获取、普适设备、自由交互和感知融合四个方面。在硬件平台与装置、核心芯片与器件、软件平台与工具、相关标准与规范等方面存在一系列科学技术问题。总体来说虚拟现实/增强现实呈现虚拟现实系统智能化、虚实环境对象无缝融合、自然交互全方位与舒适化的发展趋势。
                      基于深度学习的人工智能技术体系
                      当前,基于深度学习的人工智能算法主要依托计算机技术体系架构实现,深度学习算法通过封装至软件框架的方式供开发者使用。软件框架是整个技术体系的核心,实现对人工智能算法的封装,数据的调用以及计算资源的调度使用。为提升算法实现的效率,其编译器及底层硬件技术也进行了功能优化,具体架构分为基础硬件层、深度神经网络模型编译器及软件框架等。
                      (1)基础硬件层。基础硬件层为算法提供了基础计算能力。硬件层涵盖范围除了中央处理器(Central Processing Unit,CPU)及GPU外,还包括为特定场景应用而定制的计算芯片,以及基于计算芯片所定制的服务器,包括GPU服务器集群,各类移动终端设备以及类脑计算机等。
                      (2)深度神经网络模型编译器。深度神经网络模型编译器是底层硬件和软件框架,以及不同软件框架之间的桥梁。该层旨在为上层应用提供硬件调用接口,解决不同上层应用在使用不同底层硬件计算芯片时可能存在的不兼容等问题。其涵盖范围包括针对人工智能计算芯片定向优化的深度神经网络模型编译器,以及针对不同神经网络模型表示的规定及格式。
                      (3)软件框架层。软件框架层实现算法的模块化封装,为应用开发提供集成软件工具包。该层涵盖范围包括针对算法实现开发的各类应用及算法工具包,为上层应用开发提供了算法调用接口,提升应用实现的效率。
                      (4)基础应用技术。当前人工智能的商业化实现主要是基于计算机视觉、智能语音、自然语言处理等基础应用技术实现,并形成了相应的产品或服务。
               人工智能产业体系
               人工智能产业生态主要分为核心业态、关联业态、衍生业态三个层次,如下图所示。
               
               人工智能产业生态图
                      智能基础设施
                      智能基础设施为人工智能产业提供计算能力支撑,其范围包括智能传感器、智能芯片、分布式计算框架等,是人工智能产业发展的重要保障。
                             智能芯片
                             智能芯片从应用角度可以分为训练和推理两种类型。从部署场景来看,可以分为云端和设备端两步大类。训练过程由于涉及海量的训练数据和复杂的深度神经网络结构,需要庞大的计算规模,主要使用智能芯片集群来完成。与训练的计算量相比,推理的计算量较少,但仍然涉及大量的矩阵运算。目前,训练和推理通常都在云端实现,只有对实时性要求很高的设备会交由设备端进行处理。
                             按技术架构来看,智能芯片可以分为通用类芯片(CPU、GPU、FPGA)、基于FPGA的半定制化芯片、全定制化ASIC芯片、类脑计算芯片(IBM TrueNorth)。另外,主要的人工智能处理器还有DPU、BPU、NPU、EPU等适用于不同场景和功能的人工智能芯片。
                             随着互联网用户量和数据规模的急剧膨胀,人工智能发展对计算性能的要求迫切增长,对CPU计算性能提升的需求超过了摩尔定律的增长速度。同时,受限于技术原因,传统处理器性能也无法按照摩尔定律继续增长,发展下一代智能芯片势在必行。未来的智能芯片主要是在两个方向发展:一是模仿人类大脑结构的芯片,二是量子芯片。智能芯片是人工智能时代的战略制高点,预计到2020年人工智能芯片全球市场规模将突破百亿美元。
                             智能传感器
                             智能传感器是具有信息处理功能的传感器。智能传感器带有微处理机,具备采集、处理、交换信息等功能,是传感器集成化与微处理机相结合的产物。智能传感器属于人工智能的神经末梢,用于全面感知外界环境。各类传感器的大规模部署和应用为实现人工智能创造了不可或缺的条件。不同应用场景,如智能安防、智能家居、智能医疗等对传感器应用提出了不同的要求。未来,随着人工智能应用领域的不断拓展,市场对传感器的需求将不断增多,2020年市场规模有望突破4600亿美元。未来,高敏度、高精度、高可靠性、微型化、集成化将成为智能传感器发展的重要趋势。
                             分布式计算框架
                             面对海量的数据处理、复杂的知识推理,常规的单机计算模式已经不能支撑。所以,计算模式必须将巨大的计算任务分成小的单机可以承受的计算任务,即云计算、边缘计算、大数据技术提供了基础的计算框架。目前流行的分布式计算框架如OpenStack、Hadoop、Storm、Spark、Samza、Bigflow等。各种开源深度学习框架也层出不穷,其中包括TensorFlow、Caffe、Keras、CNTK、Torch7、MXNet、Leaf、Theano、DeepLearning4、Lasagne、Neon等等。
                      智能信息及数据
                      信息数据是人工智能创造价值的关键要素之一。我国庞大的人口和产业基数带来了数据方面的天生优势。随着算法、算力技术水平的提升,围绕数据的采集、分析、处理产生了众多的企业。目前,在人工智能数据采集、分析、处理方面的企业主要有两种:一种是数据集提供商,以提供数据为自身主要业务,为需求方提供机器学习等技术所需要的不同领域的数据集;另一种是数据采集、分析、处理综合性厂商,自身拥有获取数据的途径,并对采集到的数据进行分析处理,最终将处理后的结果提供给需求方进行使用。对于一些大型企业,企业本身也是数据分析处理结果的需求方。
                      智能技术服务
                      智能技术服务主要关注如何构建人工智能的技术平台,并对外提供人工智能相关的服务。此类厂商在人工智能产业链中处于关键位置,依托基础设施和大量的数据,为各类人工智能的应用提供关键性的技术平台、解决方案和服务。目前,从提供服务的类型来看,提供技术服务厂商包括以下几类:
                      (1)提供人工智能的技术平台和算法模型。此类厂商主要针对用户或者行业需求,提供人工智能技术平台以及算法模型。用户可以在人工智能平台之上,通过一系列的算法模型来进行人工智能的应用开发。此类厂商主要关注人工智能的通用计算框架、算法模型、通用技术等关键领域。
                      (2)提供人工智能的整体解决方案。此类厂商主要针对用户或者行业需求,设计和提供包括软、硬件一体的行业人工智能解决方案,整体方案中集成多种人工智能算法模型以及软、硬件环境,帮助用户或行业解决特定的问题。此类厂商重点关注人工智能在特定领域或者特定行业的应用。
                      (3)提供人工智能在线服务。此类厂商一般为传统的云服务提供厂商,主要依托其已有的云计算和大数据应用的用户资源,聚集用户的需求和行业属性,为客户提供多类型的人工智能服务;从各类模型算法和计算框架的API等特定应用平台到特定行业的整体解决方案等,进一步吸引大量的用户使用,从而进一步完善其提供的人工智能服务。此类厂商主要提供相对通用的人工智能服务,同时也会关注一些重点行业和领域。
                      需要指出的是,上述三类角色并不是严格区分开的,很多情况下会出现重叠,随着技术的发展成熟,在人工智能产业链中已有大量的厂商同时具备上述两类或者三类角色的特征。
                      智能产品
                      智能产品是指将人工智能领域的技术成果集成化、产品化,具体的分类如下表所示。
                      
                      人工智能的产品
                      
                      随着制造强国、网络强国、数字中国建设进程的加快,在制造、家居、金融、教育、交通、安防、医疗、物流等领域对人工智能技术和产品的需求将进一步释放,相关智能产品的种类和形态也将越来越丰富。
               人工智能对电子商务的发展影响
                      人工智能技术在电子商务领域的应用
                      目前,人工智能采用的主流技术主要涉及机器学习和人机交互。机器学习(Machine Learning)是计算机科学的一个分支,也可以认为是模式识别或人工智能、数据挖掘(Data Mining)、概率论、统计学(statistics)等多个学科的交叉学科。机器学习与数值优化(Numerical Cptimization)具有很高的重合度。机器学习在电商领域的应用主要体现在以下几个方面。
                             人工智能助手
                             人工智能助手(聊天机器人),其主要功能是自动回复顾客问题,对简单的语音指令作出响应,并通过采用自然语言处理系统提供产品推荐。电子商务网站和移动端页面上的聊天对话框正是基于机器学习的算法,将其编程为以个性化方式与客户通信。聊天机器人能够帮助消费者找到合适的产品,检查产品供应情况,并比较各种产品,最后帮助消费者付款;如果有任何投诉或疑问,聊天机器人也可以帮助客户联系相应的服务人员。消费者可以通过文字,语音甚至图片与这些机器人进行“交谈”。2017年3月,阿里巴巴发布了人造智能服务机器人“Shop Xiaomi”,即是淘宝商家的聊天机器人,其经过商家授权和调试后,聊天机器人可以取代一些客户服务,从而减少了人工客户服务的工作量,同时能够增添个性化风格。
                             推荐引擎
                             推荐引擎是建立在机器学习算法框架基础上一套完整的推荐系统。使用AI算法可以实现海量数据集的深度学习、统计编程和预测、分析顾客行为,并利用算法预测哪些产品可能会吸引顾客。首先根据潜在客户最近的搜索,推荐引擎中的机器学习算法能够根据计算结果记录被搜索产品的关键细节,然后,推荐引擎为浏览器生成适合的建议,并将其列在个人页面上,最终帮助消费者快速找到所需产品。降维算法的应用开启了人工智能对推荐系统的改造,人工智能对推荐系统最深刻的变革,就是不再把推荐系统看作是独立的推荐结果组合,它是整个人机交互行为,通过引入时间维度来实现系统和用户的动态维度。许多电商公司,例如:亚马逊、阿里巴巴淘宝网、京东商城等都使用推荐引擎来识别其产品的目标受众。
                             智慧物流
                             智慧物流是指:利用信息技术使装备和控制智能化,从而用技术装备取代人的一种物流发展模式。与传统物流模式相比,智能物流可以大大提高提高服务质量和运营效率。智慧物流的概念最早由IBM公司在2009年提出。最初,IBM公司提出建立一个通过感应器、RFID标签、制动器、GPS和其他设备及系统生成实时信息的“智慧供应链”。人工智能最直接的影响是后端供应链和物流链接,面对快速变化的需求和竞争市场,预测库存并非简单,而人工智能和深度学习的算法可以在订单周转预测中派上用场,可以确定订单周转的关键因素。机器学习系统的优势在于它们可以随着时间的推移不断学习而变得更加智能,使商家预测库存需求变得更加准确。目前,在智能物流仓储领域,阿里巴巴和京东都已经发布了无人值守的自动化智能存储系统。
                             最优定格
                             当前的电商行业正在蓬勃发展,即使对于小规模库存的在线零售商,这种长期持续的价格调整也是一个很大的挑战。利用能够快速处理大数据的人工智能技术,已基本能够解决大量产品的自动定价问题。对产品的评分、物流、价格和服务质量都会影响最终的综合排名结果,因此,对于商家而言,最优定价非常困难,而这种需要深入研究的定价问题正是人工智能所擅长的。通过先进的深度机器学习算法,人工智能技术可以持续评估市场动态并改变竞争环境以解决最优定价问题。
                      电子商务应用人工智能技术的未来趋势
                      随着研究技术的飞速发展和不断推进,深度学习平台、语音分析技术、生物识别技术、图像与视频分析技术、机器人自动处理系统、文本分析和自然语言处理(NLP)等主流人工智能技术在接下来仍将稳步发展。根据人工智能技术的商业价值、技术成熟度、发展阶段等方面的发展状况,AI将在未来通过以下几种方式推动电子商务的发展变革。
                             视觉搜索引擎
                             计算机视觉搜索引擎主要功能是让消费者可以将照片或特定风格的图片上传,然后在APP客户端中搜索样式、品类、风格相似的商品。视觉搜索功能(特别是通过手机)可以“读取”该项目的线索、颜色、形状、大小、面料和品牌。这能够帮助消费者找到他们正在寻找的商品。视觉搜索引擎的功能建立了从线上到线下的联系,从离线到在线体验只需要很少的流程和操作步骤,为消费者提供了一种创新、自主的体验。
                             个性化服务
                             在移动电子商务时代,由于消费者对移动设备的偏好,个性化电子商务体验对销售的影响将更加明显。未来购物将使用AI来收集用户在网站上发布的信息,例如产品评论等,以更好的为其提供实质性服务。不管是在线商店,实体店还是移动应用程序,人工智能都为所有这些渠道带来无缝的客户体验。借助深度学习的AI算法,网上零售商可以不断学习每一个新信号,从而更好的展示个性化产品。
                             尽管人工智能发展迅速,但仍有许多问题亟待解决:不确定性问题、不可解释问题、数据共享问题、隐私保护问题、伦理道德问题、人工智能系统的鲁棒性等。这些都是人工智能技术将要面临的巨大挑战。
 
       软件配置
        软件配置是指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读和人工可读)和各种版本的文档、程序及其数据的集合。该集合中的每一个元素称为该软件产品软件配置中的一个配置项。
 
       完整性
        完整性(Integrity)是指网络信息或系统未经授权不能进行更改的特性。例如,电子邮件在存储或传输过程中保持不被删除、修改、伪造、插入等。完整性也被称为网络信息系统CIA三性之一,其中I代表Integrity。完整性对于金融信息系统、工业控制系统非常重要,可谓“失之毫厘,差之千里”。
 
       医疗
        现代先进的医疗诊断技术的共同特点是以现代物理技术为基础,借助计算机技术对医疗影像进行数字化和重建处理。计算机在成像过程中起到至关重要的作用。随着临床要求的不断提高以及多媒体技术的发展,出现了新一代具有多媒体处理功能的医疗诊断系统。多媒体医疗影像系统在媒体种类、媒体介质、媒体存储及管理方式、诊断辅助信息、直观性和实时性等方面都使传统诊断技术相形见绌。
        事实上,在医疗诊断中经常采用的实时动态视频扫描、声影处理等技术都是多媒体技术成功应用的例证。多媒体数据库技术从根本上解决了医疗影像的另一关键问题——影像存储管理问题。多媒体和网络技术的应用还使远程医疗从理想变成现实。
 
       注释
        与C语言相同。多行注释:/*…*/。单行注释://。
   题号导航      2021年下半年 信息系统监理师 下午试卷 案例   本试卷我的完整做题情况  
1 /
2 /
3 /
4 /
5 /
 
第2题    在手机中做本题