精华内容
下载资源
问答
  • 文章目录维护性的度量和设计原则软件维护和演化软件维护软件演化维护性的指标维护性的几个名字关于维护性的问题一些维护性的指标模块化设计和模块化原则模块化编程评估模块性的五个标准模块设计五个规则...

    可维护性的度量和设计原则(1)

    软件维护和演化

    软件维护

    • 软件维护指在软件发布后对软件中的错误进行修改以提升性能或者其他特性的活动。
    • 软件维护是软件产品最困难的方面,因为它与其他所有的软件开发阶段都相关。
    • 修复代码后
      • 测试修改是否正常:使用特殊构造的测试用例
      • 检查回归性错误:使用存储的测试数据,并将特殊构造的测试用例添加到存储的测试数据中,以便将来进行回归测试
      • 记录所有更改
    • 软件维护的种类
      • 纠正性维护(Corrective maintenance):纠正软件产品中的问题
      • 适应性维护(Adaptive maintenance):对软件产品进行修改,以使软件产品能够适应新的变化的环境
      • 完善性维护(Perfective maintenance):增强软件产品以提高性能或增加可维护性
      • 预防性维护(Preventive maintenance):修改软件产品,以便在软件产品成为有效故障之前检测并纠正软件产品中的潜在故障。

    软件演化

    • 软件演化是在软件维护中使用的一个概念,指最初开发软件的过程,然后由于各种原因反复更新软件。
    • 典型系统的90%以上的成本出现在维护阶段,并且任何成功的软件都将不可避免地得到维护。
    • Lehman’s Laws:一个软件是为了解决现实世界中的问题而产生的,它如何表现应该和它运行的环境紧密相关,因此这样的软件需要适应不同的需求和环境。

    可维护性的指标

    可维护性的几个名字

    • Maintainability:软件易于被修改以纠正错误、提升性能或者其他特性、适应变化的环境的能力。
    • Extensibility:一个软件易于增加新的功能的能力。
    • Flexibility:软件对于用户的需求、外部技术和社会环境而易于改变的能力。
    • Adaptability:一个交互系统能够根据用户或环境提供的信息改变它的行为的能力。
    • Manageability:可以高效,轻松地监控和维护软件系统,以保持系统的正常、安全地运行。
    • Supportability:在软件部署后还有多大的受支持程度。

    关于可维护性的问题

    • 结构和设计简单性:改变事物有多容易
    • 紧密或松散耦合的事物(即关注点分离)
    • 包装/模块中的所有要素是否具有凝聚力,其责任是否明确且密切相关
    • 它是否具有过于深入的继承层次结构,还是有利于组合而不是继承
    • 方法定义中有多少独立的执行路径(即圈复杂度)
    • 存在多少代码重复

    一些可维护性的指标

    • Cyclomatic Complexity:度量软件的结构复杂性
      • 计算程序流中独立路径的个数
      • 程序流越复杂,需要的测试就更多,可维护性也更低
      • 计算公式:CC = E-N+2, CC=P+1, CC=number of areas
        maintain1
    • Lines of Code
      • 很高的代码行数预示着可能有些类或者方法尝试实现太多的功能,而这些功能应该被分开
      • 也可能意味着类或者方法难以维护
    • Halstead Volume:基于源代码中运算符和操作数的个数
    • Maintainability Index(MI):计算一个0到100的指标,代表了软件维护的相对容易程度,基于以下几个指标计算:
      • Halstead Volume (HV)
      • Cyclomatic Complexity (CC)
      • The average number of lines of code per module (LOC)
      • The percentage of comment lines per module (COM)
        1715ln(HV)0.23CC16.2ln(LOC)+50.0sin(2.46×COM)171-5\ln (HV)-0.23CC-16.2\ln (LOC)+50.0\sin (\sqrt {2.46\times COM})
    • Depth of Inheritance:继承关系越深,系统就会越难理解
    • Class Coupling:通过参数,局部变量,返回类型,方法调用,通用或模板实例化,基类,接口实现,在外部类型上定义的字段以及属性修饰来测量与唯一类的耦合
      • 良好的软件设计要求类型和方法应具有高内聚和低耦合性
      • 高耦合表明设计难以重用和维护,因为它与其他类型有很多相互依赖性
    • Unit test coverage :指自动单元测试都涵盖了代码库的哪些部分

    模块化设计和模块化原则

    模块化编程

    • 是一种软件设计方法,讲程序的功能分散到独立的、可交互的模块中,这样每个模块都实现整体功能的仅一个方面
    • 模块化是高层的功能分解技术
      • 结构化编程中是如何根据控制流分解代码
      • OOP中是指对象的使用方式
    • 设计的目标是将系统划分为模块,并以下列方式在组件之间分配责任:
      • 模块内的高内聚
      • 模块之间的低耦合
    • 模块化降低了程序员在任何时候必须处理的总复杂性,假设:
      • 将功能分配给远离的模块,将相似的功能组合在一起(关注点分离)
      • 模块之间有小而简单,定义良好的接口(信息隐藏)
    • 内聚和耦合的原理可能是评估设计可维护性的最重要的设计原则

    评估模块性的五个标准

    • Decomposability (可分解性)
      • 将问题分解为各个可独立解决的子问题
      • 目标:使模块间的依赖关系显式化和最小化
      • 自顶向下的函数式设计:
        module1
    • Composability (可组合性)
      • 可以容易的将模块组合起来形成新的系统
      • 目标:使模块可以在不同的环境下复用module2
    • Understandability (可理解性)
      • 每个子模块都可以被系统设计者容易地理解
      • 例子:序列依赖(AA\rarrBB\rarrCC
        module3
    • Continuity (可持续性)
      • specification中的一个小的改变只会影响一小部分模块而不会影响整个系统架构
      • 例子:为模块提供的服务通过统一的标识提供
        module4
    • Protection (保护性)
      • 运行时异常情况限制在小范围的模块内
      • 例子:在源处验证输入
        module5

    模块设计的五个规则

    • Direct Mapping(直接映射)
      • 模块的结构与现实世界问题领域的结构一致
    • Few Interfaces(尽可能少的接口)
      • 模块应该尽可能少地与其他模块通信
    • Small Interfaces(尽可能小的接口)
      • 如果两个模块通信,那么它们应该交换尽可能少的信息
    • Explicit Interfaces(显式接口)
      • 当A与B通信时,应明显地发生在A与B的接口之间
    • Information Hiding(信息隐藏)
      • 经常发生变化的设计决策应该尽可能隐藏在抽象接口后面

    内聚和耦合

    • 耦合(Coupling)
      • 耦合是模块之间依赖性的度量。 如果一个模块中的更改可能需要更改另一个模块,则两个模块之间存在依赖关系。
      • 模块之间的耦合程度由以下因素确定:
        • 接口数量
        • 接口复杂度
        • 通信复杂度
    • 内聚(Cohesion)
      • 内聚是衡量模块的功能或职责的相关程度
      • 如果模块的所有元素都朝着相同的目标努力,则模块具有高内聚
    展开全文
  • 消息的定义:是指包含信息的语言,文字和图像等,表达客观事物和主观思维活动的状态 信号:是把消息变换成电信号,声信号等适合信道传输的物理量 那什么是信息呢? 1)指事物中包含的内容 2)是事物在运动状态或...

    一、基础介绍

    1.1 基本概念

    物质、能量和信息是构成客观世界的三要素

    1.2 消息、信息、信号的区别

    消息的定义:是指包含信息的语言,文字和图像等,可表达客观事物和主观思维活动的状态
    信号:是把消息变换成电信号,声信号等适合信道传输的物理量

    那什么是信息呢?
    1)指事物中包含的内容
    2)是事物在运动状态或存在形式上的不确定性的描述(即不确定性越大,信息越多)

    信息与消息的关系是什么?
    消息是信息的载体,包含关系

    消息与信号的联系是什么?
    信号是把消息转换成电信号等,然后在信道上面传输,所以信号是消息的运载工具。

    1.3 信息论主要研究对象

    在这里插入图片描述

    1.4 香农信息定义

    1)信息:是事物运动状态或存在形式的不确定性的描述。同学系统中接受信息的过程就是消除不确定性。
    2)过程:不确定的清除就获得了信息,信息量与不确定性的程度有关
    3)信息的度量:信息熵

    二、信息的度量

    2.1.1 自信息

    在这里插入图片描述

    2.1.2 互信息

    在这里插入图片描述

    2.2 平均自信息(信息熵,信源熵,熵)

    在这里插入图片描述

    2.3 条件熵、联合熵

    都是在联合概率空间下进行计算
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    2.4 平均互信息

    在这里插入图片描述

    2.6 各种熵之间的关系

    在这里插入图片描述

    展开全文
  • 信息是指消息中所包含有效内容,或者说是预先不知道而待知内容。 比如说1949年新中国成立,这对于我来说是已知,那么它对我来说就没有信息量。再比如,明天会下雨,这对我来说就有一定的信息量。 那么如何...

    信息及其度量

    通信的根本目的在于传输消息所包含的信息。

    信息是指消息中所包含的有效内容,或者说是预先不知道而待知的内容。
    度量消息中信息的方法(1)与消息的种类无关(2)与消息的重要程度无关(3)消息所表达的事件越不可能发生,越不可预测,信息量就越大。
    比如说1949年新中国成立,这对于我来说是已知的,那么它对我来说就没有信息量。再比如,明天会下雨,这对我来说就有一定的信息量。
    那么如何度量消息中所含的信息量?

    可见,消息中所含的信息量与 不可预测性或不确定性有关
    根据概率论知识,事件的不确定性可用事件出现的概率来描述。
    故若用P(x)表示发生信息的概率,I表示消息中所含的信息量,则易知:
    (1)消息中所含的信息量是该消息出现的概率的函数,即:I=I [P(x)]
    (2)P(x)越小,I越大,P(x)越大,I越小。且当P(x)=1的时候,I=0;P(x)=0,I=∞
    (3)若干相互独立事件构成的消息,所含信息量等于各独立事件信息量之和,也就是说,信息具有相加性。
    即:I[P(x1)P(x2)…]=I[P(x1)]+I[P(x2)]+……
    故综合易得:
    ### 一、离散消息的信息量x为在这里插入图片描述
    通常一般广泛使用的单位为比特
    比如求二进制信源(0,1)等概独立发送符号时,每个符号的信息量
    因为等概独立,故发送每个符号的概率为1/2,根据公式易得每个符号的信息量为1bit。
    ### 二、离散消息的平均信息量
    平均信息量即信源中每个符号所含信息量的统计平均值
    在这里插入图片描述
    等概时,熵最大,Hmax=㏒₂(1/P(x))

    # 通信系统性能指标
    从研究信息传输的角度来说,有效性和可靠性是通信系统的主要性能指标
    ### 一、有效性
    (1)对于模拟通信系统,传输同样的信源信号,所传输的传输带宽越小,频带利用率越高,有效性越好。信号带宽与调制方式有关。
    (2)数字通信系统有效性的指标
    1)码元传输速率RB(传码率、波特率)
    1.定义:每秒传送的码元个数
    2.单位:波特(Baud)
    3.计算:若一个码元的时间长度为Ts秒
    则RB=1/Ts

    2)信息传输速率Rb(传信率、比特率)
    1.定义:每秒传输比特数(信息量)
    2.单位:bit/s,可简记为b/s或bps
    3.RB与Rb转换:Rb=RB*H

    3)频带利用率—把带宽和传输速率联系起来
    1.定义:单位带宽内的传输速率
    在这里插入图片描述
    ### 二、可靠性
    (1)对于模拟通信系统,通常用接收端输出信号与噪声功率比(S/N)来度量,它反映了信号经传输后的保真程度和抗噪声能力
    (2)对于
    数字通信系统
    的可靠性可用差错概率来衡量。差错概率常用误码率和误信率来衡量。

    在这里插入图片描述

    小结

    通信的目的是传输消息中所包含的信息。消息是传输信息的物理表现形式,信息是消息的有效内容。
    信号是消息的传输载体。根据携载消息的信号参量是连续取值还是离散取值,信号分为模拟信号和数字信号。
    通信系统有不同的分类方法。按照信道中传输的是模拟信号还是数字信号,相应的把通信系统分成模拟通信系统和数字通信系统。
    数字通信已经成为当前通信技术的主流。与模拟通信技术相比,数字通信系统具有抗干扰能力强,差错可控,保密性好等优点。缺点是占用带宽大,同步要求高。
    按消息传递的方向和时间关系,通信方式可以分为单工、半双工及全双工通信。按数据码先排列的顺序可分为并行传输和串行传输。
    信息量是对消息发生概率(不确定性)的度量。一个二进制码元含1b的信息量;一个M进制码元含log2M比特的信息量。等概发送的时候,信源熵最大值。
    有效性和可靠性是通信系统的两个主要指标。两者相互矛盾而又对立统一,且可以互换。在模拟通信系统模型中,有效性可用带宽衡量,可靠性可用输出信噪比衡量。在数字通信系统中,有效性用频带利用率表示,可靠性用误码率、误信率来表示。
    信息速率是每秒发送的比特数;码元速率是每秒发送的码元个数。码元速率在数值上小于等于信息速率。码元速率决定了发送信号所需的带宽。

    展开全文
  • 相关性分析是指对两个或多个具备相关性变量元素进行分析,相关性不等于因果。 一、离散与离散变量之间相关性 1、卡方检验 卡方检验是一种用途很广计数资料假设检验方法。它属于非参数检验范畴...

    在做数据分析时,为了提炼观点,相关性分析是必不可少,而且尤为重要的一个环节。但是,对于不同类型的数据,相关性分析的方法都各不相同。本文,主要按照不同的数据类型,来对各种相关性分析方法进行梳理总结。

    相关性分析是指对两个或多个具备相关性的变量元素进行分析,相关性不等于因果性。

    一、离散与离散变量之间的相关性

    1、卡方检验

    卡方检验是一种用途很广的计数资料的假设检验方法。它属于非参数检验的范畴,主要是比较两个及两个以上样本率( 构成比)以及两个分类变量的关联性分析。其根本思想就是在于比较理论频数和实际频数的吻合程度或拟合优度问题。

    它在分类资料统计推断中的应用,包括:两个率或两个构成比比较的卡方检验;多个率或多个构成比比较的卡方检验以及分类资料的相关分析等。

    (1)假设,多个变量之间不相关

    (2)根据假设计算得出每种情况的理论值,根据理论值与实际值的差别,计算得到卡方值 及 自由度

    df=(C-1)(R-1)

    (3)查卡方表,求p值

    卡方值越大,P值越小,变量相关的可能性越大,当P<=0.05,否定原假设,认为变量相关。

    2、信息增益 和 信息增益率

    在介绍信息增益之前,先来介绍两个基础概念,信息熵和条件熵。

    信息熵,就是一个随机变量的不确定性程度。

    条件熵,就是在一个条件下,随机变量的不确定性。

    (1)信息增益:熵 - 条件熵

    在一个条件下,信息不确定性减少的程度。

    Gain(Y,X)=H(Y)-H(Y|X)

    信息增益越大,表示引入条件X之后,不纯度减少得越多。信息增益越大,则两个变量之间的相关性越大。

    (2)信息增益率

    假设,某个变量存在大量的不同值,例如ID,引入ID后,每个子节点的不纯度都为0,则信息增益减少程度达到最大。所以,当不同变量的取值数量差别很大时,引入取值多的变量,信息增益更大。因此,使用信息增益率,考虑到分支个数的影响。

    Gain_ratio=(H(Y)-H(Y|X))/H(Y|X)

    二、连续与连续变量之间的相关性

    1、协方差

    协方差,表达了两个随机变量的协同变化关系。如果两个变量不相关,则协方差为0。

    Cov(X,Y)=E{[X-E(X)],[Y-E(Y)]}

    当 cov(X, Y)>0时,表明 X与Y 正相关;

    当 cov(X, Y)<0时,表明X与Y负相关;

    当 cov(X, Y)=0时,表明X与Y不相关。

    协方差只能对两组数据进行相关性分析,当有两组以上数据时就需要使用协方差矩阵。

    协方差通过数字衡量变量间的相关性,正值表示正相关,负值表示负相关。但无法对相关的密切程度进行度量。当我们面对多个变量时,无法通过协方差来说明那两组数据的相关性最高。要衡量和对比相关性的密切程度,就需要使用下一个方法:相关系数。

    2、线性相关系数

    也叫Pearson相关系数, 主要衡量两个变量线性相关的程度。

    r=cov(X,Y)/(D(X)D(Y))

    相关系数是用协方差除以两个随机变量的标准差。相关系数的大小在-1和1之间变化。再也不会出现因为计量单位变化,而数值暴涨的情况了。

    线性相关系数必须建立在因变量与自变量是线性的关系基础上,否则线性相关系数是无意义的。

    三、连续与离散变量之间的相关性

    1、连续变量离散化

    将连续变量离散化,然后,使用离散与离散变量相关性分析的方法来分析相关性。

    2、箱形图

    使用画箱形图的方法,看离散变量取不同值,连续变量的均值与方差及取值分布情况。

    如果,离散变量取不同值,对应的连续变量的箱形图差别不大,则说明,离散变量取不同值对连续变量的影响不大,相关性不高;反之,相关性高。

     

     

     

     

    展开全文
  • 今天向大家分享的这篇文章《利用Model Inspector测量模型度量》,主要涉及到我们的模型级检测工具Model Inspector,还想了解代码级别及模型级别检测工具更多信息的请积极留言告诉我们哦! 1.何为模型度量? ...
  • 关于耦合度以及低耦合度必要

    千次阅读 2018-07-01 14:22:29
    耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量是指一程序中,模块及模块之间信息或参数依赖程度。内聚性是一个和耦合性相对概念,一般而言低耦合性代表高内聚性,反之亦然。耦合性...
  • 信息论(一):概述

    2018-09-07 21:24:21
    1. 什么信息 1.1 在通信中对信息的表达: ...存在普遍性,有序性,相对性,可度量性,可扩充性,可储存、传输与携带,可压缩性,可替代性,可共享性,时效性。 1.3 香农信息——概率信息 信息...
  • 信息粒度

    千次阅读 2016-10-29 18:57:20
    熵理论和信息粒度是度量信息系统不确定性的两种主要方法。信息粒度物理意义粒度计算...所谓粒是指一些元素集合, 这些元素具有不分辨、 相似或函数和功能内聚等。粒子大小定义和度量是构建信息粒度
  • 通信系统主要性能指标

    千次阅读 2013-09-29 23:48:27
    可靠性是指接收信号准确程度。 有效性的度量: a.码元传输速率:单位时间内传输码元数目; b.信号传输速度:单位时间内信号信息量或比特数; c.频带利用率 可靠性度量: a.误码率:错误接受码元数在传输总码元数...
  • 耦合与内聚概念

    2020-03-31 13:58:50
    高内聚是指类与类之间关系而定,高,意思是他们之间关系要简单,明了,不要有很强关系,不然,运行起来就会出问题。一个类运行影响到其他类。由于高内聚具备可靠重用,可读性等优点,模块设计推荐...
  • 交叉熵简单介绍

    2018-08-22 23:14:56
    交叉熵(Cross Entropy)主要用于度量两个概率分布间差异性信息。语言模型性能通常用交叉熵和复杂度(perplexity)来衡量。交叉熵意义用该模型对文本识别难度,或者从压缩角度来看,每个词平均要用几个...
  • 客观权重确定有很多方法,如...在信息论中,熵对系统状态不确定性的一种度量信息量越大,不确定就越小,熵也就越小;信息量越小,不确定越大,熵也就越大。根据各项指标变异程度,利用信息熵这个工具,计算各个...
  • 决策树 信息与熵以及它们量化(过往来客买个沙甜西瓜吧) 1 熵:一种事物不确定被称为熵(该挑什么样西瓜,具有...5 熵的度量:先明确所谓的度量是指确定一套统一标准,然后将需要需要度量的事物皆.
  • 耦合

    2019-09-30 23:09:45
    耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量是指一程序中,模块及模块之间信息或参数依赖程度。 内聚性是一个和耦合性相对概念,一般而言低耦合性代表高内聚性,反之亦然。耦合...
  • 软件 函数 对象耦合

    2014-12-12 11:29:03
    耦合性(英语:Coupling,dependency,或称耦合力或耦合度)是一种软件度量是指一程序中,模块及模块之间信息或参数依赖程度。 内聚性是一个和耦合性相对概念,一般而言低耦合性代表高内聚性,反之亦然。...
  • 一条信息的信息量大小和它的不确定有直接的关系,信息量的度量就等于不确定的多少 熵(Entropy)被用于描述一个系统中的不确定(the uncertainty of a system) 信息熵”香农(Shannon)《通信的数学原理》论文中...
  • 数据结构笔记(一)

    2016-02-03 14:42:00
    数据结构学习笔记 1. 绪论 ...注:这里鲁棒性是指算法要能够适应系统各种极端情况,以及一些在考虑范围内变化。 d.算法效率:效率前提是保证计算性,然后再从时间和空间角度度量...
  • SNART方法

    2015-09-01 09:46:14
    ——M代表可度量(Measurable),绩效指标数量化或者行为化,验证这些绩效指标数据或者信息是可以获得; ——A代表可实现(Attainable),绩效指标在付出努力情况下可以实现,避免设立过高或过低目标...
  • 高内聚、低耦合

    2017-07-27 13:22:00
    起因:模块独立性指每个模块只完成系统要求独立子功能,并且与其他模块联系最少且接口简单,两个定性的度量标准――耦合和内聚。  耦合也称块间联系。软件系统结构中各模块间相互联系紧密程度一种...
  • 信息安全等级保护,信息信息载体按照重要等级分级别进行保护一种工作,在中国、美国等很多国家都存在一种信息安全领域工作。在中国,信息安全等级保护广义上为涉及到该工作标准、产品、系统、信息等...
  • 一文读懂人工智能

    2021-01-07 02:33:05
    定义:模式是指存在于时间和空间中可观测性、可度量性和可区分性的信息;模式识别是对模式进行分析与处理,进而实现描述、辨识、分类与解译。 基本任务:从标记样本中训练识别系统或者从无标识样本中发现模式。 2. ...
  • 模式所指的不是事物本身,而是从事物获得的信息,因此,模式往往表现为具有时间和空间分布的信息。 • 模式直观特性: – 观察区分 – 相似 • 机器学习目标:针对某类任务T,用P衡量性能,根据...
  • 软件工程知识点

    2012-12-02 21:34:25
    在进行概要设计时,模块独立性是一个有关质量重要技术性指标,可以使用模块内聚、耦合这两个定性参数对模块独立性进行度量。 2.软件详细设计 设计工作第二步是详细设计,它以概要设计为依据,用于确定软件...
  • 交叉熵--损失函数

    2019-11-23 16:07:51
     交叉熵(Cross Entropy)Shannon信息论中一个重要概念,主要用于度量两个概率分布间差异性信息。语言模型性能通常用交叉熵和复杂度(perplexity)来衡量。交叉熵意义用该模型对文本识别难度,或者从...
  • 4.3.6 保持统计信息时效性的策略 129 4.4 通用服务 130 4.4.1 统计信息历史 130 4.4.2 创建和删除备份表 131 4.4.3 导出、导入、获取和设置操作 132 4.4.4 日志 132 4.5 小结 133 第5章 配置查询...
  • 高内聚低耦合

    2020-07-04 20:50:31
    高内聚是指类与类之间关系而定,高,意思是他们之间关系要简单,明了,不要有很强关系,不然,运行起来就会出问题。一个类运行影响到其他类。由于高内聚具备可靠重用,可读性等优点,模块设计推荐...
  • 由于数据元素在计算机存储空间中位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中各数据元素之间逻辑关系(即前后件关系),在数据存储结构中,不仅要存放各数据元素的信息,还需要存放各...
  • 2020-10-27

    2020-10-27 21:49:10
    一名大一新生,我选专业大数据技术与应用。... 4、(Variability):妨碍了处理和有效地管理数据过程。 容量度量最小单位bit(位),从小到大为:bit、B、KB、MB、GB、TB、PB、EB、ZB、...
  •  本书还提供了dba完成本职工作必备基本uniix、sql、pl/sql和数据建模知识,也给出了许多富有趣味性的例子,通过这些实例详细、循序渐进地说明了oracle database 11g数据库各个概念和特性。 作译者  Sam...

空空如也

空空如也

1 2 3
收藏数 44
精华内容 17
关键字:

信息的可度量性是指