• 2015上半年软件设计师考点,难点3


    软件维护

    软件交付后。

    占整个生存周期工作量的70%以上,代价极高

    类型:

      1.正确性维护(错误)

      2.适应性维护(外部环境、数据环境、市场、管理需求)

      3.完善性维护(新的功能、性能)

      4.预防性维护(可维护性、可靠性、未来变化)

        

      可维护性:被理解、校正、适应、增强功能的难易程度

      度量:可理解性、可测试性、可修改性、可靠性、可移植性、可使用性、效率

        方法:质量检查表;质量测试、质量标准;

      提高可维护性:明确的目标、优先级;先进的技术、工具;明确质量保证;选择可维护的程序语言;改进文档;开发时考虑维护

      非结构化维护:只有程序代码,没有设计文档、测试文档

      结构化维护:有完整的软件配置,从评价文档开始

      维护量因素:系统大小;程序设计语言;系统年龄;数据库技术的应用;先进的软件开发技术;其他;

      文档:决定性因素,比代码更重要。

        分类:用户文档、开发文档、管理文档、系统文档

      软件再工程:重构

        

        库存目录:分析哪些需要再工程;

        逆向工程:更高的抽象层次,抽取设计信息。根据以存在的产品反推设计数据的过程

          

        正向工程:新功能、高性能

        重构:调整程序代码,改善质量、性能、设计模式、架构、扩展性、维护性。不修改体系结构,关注设计细节、局部数据结构

      项目管理:计划、组织、协调、控制

        运用:知识、技能、工具、技术

        5要素:技术、方法、团队建设、信息、沟通

        错误管理

        风险管理:危机管理、失败处理、风险缓解、预防、消灭根源

          包括:风险评估(识别、分析、优先级)、风险控制(管理、化解、监控)

        人员管理:

      项目度量:软件度量、质量度量、继承度量

      风险管理:贯穿整个项目过程

    数据库

    数据依赖

      1.函数依赖:Functional Dependency,FD。

        平凡函数依赖、非平凡函数依赖

        

        完全函数依赖、部分函数依赖

             

        传递函数依赖    

      2.多值依赖:Multivalued Dependency,MVD。

        “1:0…*”,1对多。

        只要知道了R上的一个多值依赖X→→Y,就可以得到另一个多值依赖X→→Z,而且X、Y和Z是U的分割;“(2)”说明多值依赖是函数依赖的某种推广,函数依赖是多值依赖的特例

        

      3.其他

      候选码:

        

      主属性、非主属性

        

      全码:

        

      外部码:

      范式种类:

             

          1NF:属性不可分

          2NF:非主属性完全依赖与码

                  

          3NF:非主属性之间不依赖

              

          BCNF:主属性之间不依赖

                 

          4NF:

            

      规范化:

        目的:消除插入、删除异常、修改复杂、数据冗余

        实质:概念的单一化

        基本思想:逐步消除数据依赖中不合适的部分

        

        注意:

          

    推理规则:

      1.自反律

        

      2.增广律

            

      3.传递律

        

      4.合并规则:     1,3可证

      5.伪传递规则:  2,3可证

      6.分解规则:   1,3可证

    闭包

      

    覆盖=等价

      

    极小函数依赖集=最小函数依赖集=最小覆盖

      结果:不唯一

          

    分解:

      方法不唯一,关系模式等价

      函数依赖:减轻、解决各种异常情况

      无损连接:与自然连接的结果相等

        分解不丢失信息;不一定可以解决插入异常、删除异常、修改复杂、数据冗余……问题

          

    人工智能

    求最优解、近似最优解方法:

      1.枚举法:适合枚举空间小的

      2.启发式算法:找到特有的启发式规则

      3.搜索算法:在可行解集合的一个子集进行搜索

        

    遗传算法:

      自适应全局优化概率搜索算法。获取近似最优解、满意解。

      本质:生物的遗传、进化过程的模拟

      特点:强适应力、高优化力

        定义:

        Xi:一个遗传基因;

        等位基因:所有可能取值。

      遗传算子:搜索最优解。类似:染色体之间的交叉、变异

        选择:Selection。根据个体的适应度,按一定的规则、方法

        交叉:Crossover。交叉概率

        变异:Mutation。变异概率

      特点:

        1.以决策变量的编码最为运算对象:而非决策变量的值

        2.直接以目标函数值作为搜索信息:个体适应度。而非函数的导数值

        3.同时使用多个搜索点的搜索信息:而非单个搜索点

        4.使用概率搜索技术:自适应概率搜索技术,而非确定性的搜索方法。概率收敛于最优解。交叉概率+变异概率

      应用:函数优化、组合优化、生产调度问题、自动控制、机器人学、图像处理、人工生命、遗传编程、机器学习

      改进:

        1.自适应变异:防止“近亲繁殖”。双亲差异小,选取较大的变异率(增强搜索能力);双亲差异大,选取较小的变异率(防止破坏优良个体)

        2.部分替代法:部分个体被新个体取代,其他部分个体直接进入下一代。

        3.优秀个体保护法:一定数量的最优个体,直接进入下一代

        4.分布式遗传算法:分为若干个子群,相对独立、封闭(保证搜索的充分性、全局最优性);定期一定比例的迁移(防止向局部最优收敛)

    基本遗传算法:Simple Genetic Algorihms ,SGA

      只使用选择算子、交叉算子、变异算子。三种基本遗传算子

      固定长度的二进制符号串:表示群体中的个体

      等位基因:{0,1}。

      1.染色体编码方法

      2.个体适应度评价:确定被遗传到下一代群体中的概率,正比。适应度:非负值,可转换

      3.遗传算子:

        比例选择算子:有退还随机选择、赌盘选择。

        单点交叉算子:最常用,最基本。两两配对;随机交叉点;交叉互换染色体

        基本位变异算子:概率选择变异点;基因值取反;

              

      4.基本遗传算法的运行参数

        

      注意:

        

    蚁群算法:

      模拟:蚁群搜索食物源的寻优能力。个体间的信息交流、协作。正反馈现象

        

      解决:离散系统优化问题。随机搜索算法。利用整体信息

      1.适应阶段:候选解积累的信息,不断调整自身结构

      2.协作阶段:信息交流,产生更好的解

      优点:不需任何先验知识,随机选择路径。随着对解空间的“了解”,趋向最优

      1.记忆:禁忌列表,随时间,选择动态调整

      2.信息素通信:

      3.集群活动:群体智能建立路径选择机制。自催化、正反馈,增强型学习系统

      算法:

        1.蚁环算法:整体信息

          

        2.蚁量算法:局部信息

          

        3.蚁密算法:局部信息

          

      信息素更新:

        1.离线方式:同步更新。统一访问完后,统一对残留信息进行更新

          单蚂蚁离线更新:第s只蚂蚁完成对N个城市的访问后,对路径上的残留信息进行更新。记忆信息量相对较少

          蚁群离线更新:M只蚂蚁全部完成N个城市的访问后,统一对残留信息进行更新

        2.在线方式:异步更新。每执行一步,马上回溯更新线路上的信息素。记忆信息量最少

      相关参数:

        

      终止条件:

        1.给定的外循环最大数目

        2.最优解连续K次相同而停止的规则(算法已收敛,不需继续)

        3.目标控制规则。优化问题的下界、误差值。

      

      离散蚁群算法:

        包括:最优解保留策略蚁群系统、蚁群系统、最大最小蚁群系统、自适应蚁群算法……

        适合:离散优化问题。不能直接求解连续优化问题

        概念:路径、节点的生成;转移概率;能见度指标;信息素更新(局部、全局)

      

    粒子群算法:Particle swarm optimization,PSO

      本质:群体智能的进化

      模拟:鸟群捕食行为。社会群体中的信息共享机制

      特点:算法简单,容易实现

      应用:函数优化、神经网络训练、模式分类、模糊控制……

      极值:

        1.个体极值(pbest):粒子本身所找到的最好解

        2.全局极值(gbest):整个粒子群历代搜索过程中的最优解

      更新速度:动量(多样化)、个体认知(集中化)、社会认知(集中化)、

          

      参数:

          

        

      算法:

        

      改进算法:

        1.惯性权重法:

          惯性权重大,加强全局探测能力;惯性权重小,加强局部搜索能力。直接影响全局搜索能力

           适合:多峰函数。平衡猴脸的全局性、收敛速度

          (1)线性调整法:迭代次数增加,惯性权重线性下降。

             权重线性下降的粒子群算法(Linearly Decreasing Inertia Weight,LDW)。

              

          (2)模糊调整法:构造模糊推理机来动态修改惯性因子

            实现较困难,性能更好

            性能评测:CBPE,the Current Best Performance Evaluation

              

      2.收敛因子法:

        适合:单峰函数,速度限制放松

        

    人工神经网络算法

      特点:从环境中学习,近似于人类的学习能力

      模拟:生物神经系统。从外界环境学习知识;突触全值存储知识

        

      神经元:

        

        特点:

          

        分类:阈值型、S型、分段线性、概率型

      激活函数

      模型:分层网络、相互连接型网络

      信息处理:执行阶段、学习阶段

      学习方法:有导师学习(有监督学习)、无导师学习(无监督学习)、灌输式学习(“学习”是“死记硬背”)

        

      学习规则:各神经元的连接权值按一定的规则调整

        分类:

          

      循环控制:循环次数控制法、分阶段迭代次数控制法、精度控制法、综合控制法

      前向式神经网络算法:

        二值函数

        感知器算法:有导师学习

        适合:简单的分类问题

      BP神经网络算法:

        S型的对数、正切函数、线性函数

        包括:正向传播、误差信号的反向传播

        

  • 相关阅读:
    VUE课程参考---2、VUE基本使用
    VUE课程---1、VUE课程介绍
    JS数组常用方法---3、pop方法使用及原理
    JavaScript中数组元素删除的七大方法汇总
    Stack的三种含义
    JS数组常用方法---6、reverse方法
    数据库水平切分的实现原理解析---分库,分表,主从,集群,负载均衡器
    服务框架HSF分析之一容器启动
    淘宝HSF服务的原理以及简单的实现
    DAS 原文出自【比特网】
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/6021094.html
Copyright © 2020-2023  润新知