zoukankan      html  css  js  c++  java
  • 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型的对数、正切函数、线性函数

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

        

  • 相关阅读:
    前沿技术解密——VirtualDOM
    Ques核心思想——CSS Namespace
    Unix Pipes to Javascript Pipes
    Road to the future——伪MVVM库Q.js
    聊聊CSS postproccessors
    【译】十款性能最佳的压缩算法
    Kafka Streams开发入门(9)
    Kafka Streams开发入门(8)
    【译】Kafka Producer Sticky Partitioner
    【译】99th Percentile Latency at Scale with Apache Kafka
  • 原文地址:https://www.cnblogs.com/panpanwelcome/p/6021094.html
Copyright © 2011-2022 走看看