精华内容
下载资源
问答
  • 形象的说明CSMA/CD原理

    千次阅读 2012-08-30 17:44:46
    这个词看起来有些复杂,但如果我们将它分解几个小概念,便会发现它描述的规则十分类似于人们在进行彬彬有礼的谈话时所使用的规则。为了有助于描述以太网的操作,我们使用饭桌上的对话作为类比。  我们将以太网段...

    CSMA/CD原理  

    “CSMA/CD”的意思是带冲突检测的载波侦听多路访问,它描述了以太网协议控制节点间通信的方法。这个词看起来有些复杂,但如果我们将它分解几个小概念,便会发现它描述的规则十分类似于人们在进行彬彬有礼的谈话时所使用的规则。为了有助于描述以太网的操作,我们使用饭桌上的对话作为类比。

      我们将以太网段表示为饭桌,让几个代表节点的人坐在饭桌旁边很有礼貌地进行谈话。多路访问这个术语涵盖了我们上面讨论的内容:在一个以太网站点传输数据时,介质上的所有站点都会听到该传输行为,就像饭桌上一个人在讲话时,所有人都能够听到他(她)的讲话一样。

      现在,假设你也坐在桌旁而且有话想说。但是,当时我正在讲话。由于这是一次很有礼貌的谈话,因此你不应立即开口讲话并打断别人,而是等到我讲完后再开口。刚才描述的情况在以太网协议中称为载波侦听。在站点开始传输数据之前,它会“侦听”介质来确定其他站点是否正在进行传输。如果介质上很安静,站点便认为现在是一个适于传输数据的时间。
    载波侦听多路访问为控制会话提供了一个好的起点,但是仍然有一个难题需要解决。让我们回到用来类比的饭桌谈话上,想想谈话中有片刻寂静的情况。你和我都有一些话想说,我们都在发生片刻寂静时“侦听到了载波”,所以我们几乎同时开始讲话。用以太网术语来说,我们同时讲话时会发生冲突。

      在谈话时,我们可以很好地处理这种情况。在我们讲话的同时,都听到了对方也在讲话,因此我们都停止了讲话,以便对方能够继续。以太网节点在传输数据时也会侦听介质,确保它是在该时刻进行数据传输的唯一站点。如果站点听到它自己传输的数据以一种混乱的形式返回(如果其他站点也同时开始传输它们自己的消息便会发生这种情况),那么就知道发生了冲突。有时,我们将单个以太网段称作一个冲突区域,因为网段上的任何两个站点都无法在不产生冲突的情况下同时传输数据。如果站点检测到冲突,它们会停止传输数据,等待一个随机的时间长度,然后在检测到介质归于平静之后尝试再次传输数据。

      随机暂停并重试是协议的重要组成部分。如果两个站点在进行传输时发生冲突,那么它们都需要重新进行传输。在适于传输数据的下一个时间,上次发生冲突的两个站点都会准备好数据以便进行传输。如果它们在第一次机会来到时再次传输了数据,那么很可能无限期地一次又一次发生冲突。而随机延迟则可以使任何两个站点都不会连续发生多次冲突。



        例如,在上图中,如果计算机B向打印机C发送数据,计算机A和D也可以接收和查看帧。但是,在站点收到帧后,它会首先检查帧的目标地址,看看该帧是否是发送给自己的。如果不是,站点会丢弃该帧,而不会查看其内容。
    展开全文
  • 为了可以更加容易理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆数学公式和数学符号。但是,他5条公式是其核心内容。结合现代计算机,其实卡尔曼程序相当简单...
    1. 卡尔曼滤波器的介绍

    为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。

    在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。

    假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。

    好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。

    假如我们要估算k时刻的是实际温度值。首先你要根据k-1时刻的温度值,来预测k时刻的温度。因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5)。然后,你从温度计那里得到了k时刻的温度值,假设是25度,同时该值的偏差是4度。

    由于我们用于估算k时刻的实际温度有两个温度值,分别是23度和25度。究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的covariance来判断。因为Kg^2=5^2/(5^2+4^2),所以Kg=0.78,我们可以估算出k时刻的实际温度值是:23+0.78*(25-23)=24.56度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。

    现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.56度)的偏差。算法如下:((1-Kg)*5^2)^0.5=2.35。这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的2.35就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。

    就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值。他运行的很快,而且它只保留了上一时刻的covariance。上面的Kg,就是卡尔曼增益(Kalman Gain)。他可以随不同的时刻而改变他自己的值,是不是很神奇!

    下面就要言归正传,讨论真正工程系统上的卡尔曼。

    2. 卡尔曼滤波器算法
    在这一部分,我们就来描述源于Dr Kalman 的卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识,包括概率(Probability),随即变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。

    首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:
    X(k)=A X(k-1)+B U(k)+W(k) 
    再加上系统的测量值:
    Z(k)=H X(k)+V(k) 
    上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R(这里我们假设他们不随系统状态变化而变化)。

    对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的covariances 来估算系统的最优化输出(类似上一节那个温度的例子)。

    首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:
    X(k|k-1)=A X(k-1|k-1)+B U(k) ……….. (1)
    式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。

    到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新。我们用P表示covariance:
    P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2)
    式(2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A’表示A的转置矩阵,Q是系统过程的covariance。式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。

    现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):
    X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) ……… (3)
    其中Kg为卡尔曼增益(Kalman Gain):
    Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) ……… (4)

    到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要另卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance:
    P(k|k)=(I-Kg(k) H)P(k|k-1) ……… (5)
    其中I 为1的矩阵,对于单模型单测量,I=1。当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。这样,算法就可以自回归的运算下去。

    卡尔曼滤波器的原理基本描述了,式子1,2,3,4和5就是他的5 个基本公式。根据这5个公式,可以很容易的实现计算机的程序。

    下面,我会用程序举一个实际运行的例子。。。

    3. 简单例子

    这里我们结合第二第三节,举一个非常简单的例子来说明卡尔曼滤波器的工作过程。所举的例子是进一步描述第二节的例子,而且还会配以程序模拟结果。

    根据第二节的描述,把房间看成一个系统,然后对这个系统建模。当然,我们见的模型不需要非常地精确。我们所知道的这个房间的温度是跟前一时刻的温度相同的,所以A=1。没有控制量,所以U(k)=0。因此得出:
    X(k|k-1)=X(k-1|k-1) ……….. (6)
    式子(2)可以改成:
    P(k|k-1)=P(k-1|k-1) +Q ……… (7)

    因为测量的值是温度计的,跟温度直接对应,所以H=1。式子3,4,5可以改成以下:
    X(k|k)= X(k|k-1)+Kg(k) (Z(k)-X(k|k-1)) ……… (8)
    Kg(k)= P(k|k-1) / (P(k|k-1) + R) ……… (9)
    P(k|k)=(1-Kg(k))P(k|k-1) ……… (10)

    现在我们模拟一组测量值作为输入。假设房间的真实温度为25度,我模拟了200个测量值,这些测量值的平均值为25度,但是加入了标准偏差为几度的高斯白噪声(在图中为蓝线)。

    为了令卡尔曼滤波器开始工作,我们需要告诉卡尔曼两个零时刻的初始值,是X(0|0)和P(0|0)。他们的值不用太在意,随便给一个就可以了,因为随着卡尔曼的工作,X会逐渐的收敛。但是对于P,一般不要取0,因为这样可能会令卡尔曼完全相信你给定的X(0|0)是系统最优的,从而使算法不能收敛。我选了X(0|0)=1度,P(0|0)=10。

    该系统的真实温度为25度,图中用黑线表示。图中红线是卡尔曼滤波器输出的最优化结果(该结果在算法中设置了Q=1e-6,R=1e-1)。

    matlab下面的kalman滤波程序:

    clear
    N=200;
    w(1)=0;
    w=randn(1,N)
    x(1)=0;
    a=1;
    for k=2:N;
    x(k)=a*x(k-1)+w(k-1);
    end




    V=randn(1,N);
    q1=std(V);
    Rvv=q1.^2;
    q2=std(x);
    Rxx=q2.^2; 
    q3=std(w);
    Rww=q3.^2;
    c=0.2;
    Y=c*x+V;


    p(1)=0;
    s(1)=0;
    for t=2:N;
    p1(t)=a.^2*p(t-1)+Rww;
    b(t)=c*p1(t)/(c.^2*p1(t)+Rvv);
    s(t)=a*s(t-1)+b(t)*(Y(t)-a*c*s(t-1));
    p(t)=p1(t)-c*b(t)*p1(t);
    end


    t=1:N;
    plot(t,s,'r',t,Y,'g',t,x,'b');


    展开全文
  • 项目描述的一个段落在这里 入门 这些说明将为您提供在本地计算机上运行并运行的项目的副本,以进行开发和测试。 有关如何在实时系统上部署项目的注释,请参阅部署。 先决条件 您需要什么东西来安装软件以及如何安装...
  • 为了可以更加容易理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆数学公式和数学符号。但是,他5条公式是其核心内容。结合现代计算机,其实卡尔曼程序相当简单...
    1. 卡尔曼滤波器的介绍

    为了可以更加容易的理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆的数学公式和数学符号。但是,他的5条公式是其核心内容。结合现代的计算机,其实卡尔曼的程序相当的简单,只要你理解了他的那5条公式。

    在介绍他的5条公式之前,先让我们来根据下面的例子一步一步的探索。

    假设我们要研究的对象是一个房间的温度。根据你的经验判断,这个房间的温度是恒定的,也就是下一分钟的温度等于现在这一分钟的温度(假设我们用一分钟来做时间单位)。假设你对你的经验不是100%的相信,可能会有上下偏差几度。我们把这些偏差看成是高斯白噪声(White Gaussian Noise),也就是这些偏差跟前后时间是没有关系的而且符合高斯分配(Gaussian Distribution)。另外,我们在房间里放一个温度计,但是这个温度计也不准确的,测量值会比实际值偏差。我们也把这些偏差看成是高斯白噪声。

    好了,现在对于某一分钟我们有两个有关于该房间的温度值:你根据经验的预测值(系统的预测值)和温度计的值(测量值)。下面我们要用这两个值结合他们各自的噪声来估算出房间的实际温度值。

    假如我们要估算k时刻的是实际温度值。首先你要根据k-1时刻的温度值,来预测k时刻的温度。因为你相信温度是恒定的,所以你会得到k时刻的温度预测值是跟k-1时刻一样的,假设是23度,同时该值的高斯噪声的偏差是5度(5是这样得到的:如果k-1时刻估算出的最优温度值的偏差是3,你对自己预测的不确定度是4度,他们平方相加再开方,就是5)。然后,你从温度计那里得到了k时刻的温度值,假设是25度,同时该值的偏差是4度。

    由于我们用于估算k时刻的实际温度有两个温度值,分别是23度和25度。究竟实际温度是多少呢?相信自己还是相信温度计呢?究竟相信谁多一点,我们可以用他们的covariance来判断。因为Kg^2=5^2/(5^2+4^2),所以Kg=0.78,我们可以估算出k时刻的实际温度值是:23+0.78*(25-23)=24.56度。可以看出,因为温度计的covariance比较小(比较相信温度计),所以估算出的最优温度值偏向温度计的值。

    现在我们已经得到k时刻的最优温度值了,下一步就是要进入k+1时刻,进行新的最优估算。到现在为止,好像还没看到什么自回归的东西出现。对了,在进入k+1时刻之前,我们还要算出k时刻那个最优值(24.56度)的偏差。算法如下:((1-Kg)*5^2)^0.5=2.35。这里的5就是上面的k时刻你预测的那个23度温度值的偏差,得出的2.35就是进入k+1时刻以后k时刻估算出的最优温度值的偏差(对应于上面的3)。

    就是这样,卡尔曼滤波器就不断的把covariance递归,从而估算出最优的温度值。他运行的很快,而且它只保留了上一时刻的covariance。上面的Kg,就是卡尔曼增益(Kalman Gain)。他可以随不同的时刻而改变他自己的值,是不是很神奇!

    下面就要言归正传,讨论真正工程系统上的卡尔曼。

    2. 卡尔曼滤波器算法
    在这一部分,我们就来描述源于Dr Kalman 的卡尔曼滤波器。下面的描述,会涉及一些基本的概念知识,包括概率(Probability),随即变量(Random Variable),高斯或正态分配(Gaussian Distribution)还有State-space Model等等。但对于卡尔曼滤波器的详细证明,这里不能一一描述。

    首先,我们先要引入一个离散控制过程的系统。该系统可用一个线性随机微分方程(Linear Stochastic Difference equation)来描述:
    X(k)=A X(k-1)+B U(k)+W(k) 
    再加上系统的测量值:
    Z(k)=H X(k)+V(k) 
    上两式子中,X(k)是k时刻的系统状态,U(k)是k时刻对系统的控制量。A和B是系统参数,对于多模型系统,他们为矩阵。Z(k)是k时刻的测量值,H是测量系统的参数,对于多测量系统,H为矩阵。W(k)和V(k)分别表示过程和测量的噪声。他们被假设成高斯白噪声(White Gaussian Noise),他们的covariance 分别是Q,R(这里我们假设他们不随系统状态变化而变化)。

    对于满足上面的条件(线性随机微分系统,过程和测量都是高斯白噪声),卡尔曼滤波器是最优的信息处理器。下面我们来用他们结合他们的covariances 来估算系统的最优化输出(类似上一节那个温度的例子)。

    首先我们要利用系统的过程模型,来预测下一状态的系统。假设现在的系统状态是k,根据系统的模型,可以基于系统的上一状态而预测出现在状态:
    X(k|k-1)=A X(k-1|k-1)+B U(k) ……….. (1)
    式(1)中,X(k|k-1)是利用上一状态预测的结果,X(k-1|k-1)是上一状态最优的结果,U(k)为现在状态的控制量,如果没有控制量,它可以为0。

    到现在为止,我们的系统结果已经更新了,可是,对应于X(k|k-1)的covariance还没更新。我们用P表示covariance:
    P(k|k-1)=A P(k-1|k-1) A’+Q ……… (2)
    式(2)中,P(k|k-1)是X(k|k-1)对应的covariance,P(k-1|k-1)是X(k-1|k-1)对应的covariance,A’表示A的转置矩阵,Q是系统过程的covariance。式子1,2就是卡尔曼滤波器5个公式当中的前两个,也就是对系统的预测。

    现在我们有了现在状态的预测结果,然后我们再收集现在状态的测量值。结合预测值和测量值,我们可以得到现在状态(k)的最优化估算值X(k|k):
    X(k|k)= X(k|k-1)+Kg(k) (Z(k)-H X(k|k-1)) ……… (3)
    其中Kg为卡尔曼增益(Kalman Gain):
    Kg(k)= P(k|k-1) H’ / (H P(k|k-1) H’ + R) ……… (4)

    到现在为止,我们已经得到了k状态下最优的估算值X(k|k)。但是为了要另卡尔曼滤波器不断的运行下去直到系统过程结束,我们还要更新k状态下X(k|k)的covariance:
    P(k|k)=(I-Kg(k) H)P(k|k-1) ……… (5)
    其中I 为1的矩阵,对于单模型单测量,I=1。当系统进入k+1状态时,P(k|k)就是式子(2)的P(k-1|k-1)。这样,算法就可以自回归的运算下去。

    卡尔曼滤波器的原理基本描述了,式子1,2,3,4和5就是他的5 个基本公式。根据这5个公式,可以很容易的实现计算机的程序。

    下面,我会用程序举一个实际运行的例子。。。

    3. 简单例子

    这里我们结合第二第三节,举一个非常简单的例子来说明卡尔曼滤波器的工作过程。所举的例子是进一步描述第二节的例子,而且还会配以程序模拟结果。

    根据第二节的描述,把房间看成一个系统,然后对这个系统建模。当然,我们见的模型不需要非常地精确。我们所知道的这个房间的温度是跟前一时刻的温度相同的,所以A=1。没有控制量,所以U(k)=0。因此得出:
    X(k|k-1)=X(k-1|k-1) ……….. (6)
    式子(2)可以改成:
    P(k|k-1)=P(k-1|k-1) +Q ……… (7)

    因为测量的值是温度计的,跟温度直接对应,所以H=1。式子3,4,5可以改成以下:
    X(k|k)= X(k|k-1)+Kg(k) (Z(k)-X(k|k-1)) ……… (8)
    Kg(k)= P(k|k-1) / (P(k|k-1) + R) ……… (9)
    P(k|k)=(1-Kg(k))P(k|k-1) ……… (10)

    现在我们模拟一组测量值作为输入。假设房间的真实温度为25度,我模拟了200个测量值,这些测量值的平均值为25度,但是加入了标准偏差为几度的高斯白噪声(在图中为蓝线)。

    为了令卡尔曼滤波器开始工作,我们需要告诉卡尔曼两个零时刻的初始值,是X(0|0)和P(0|0)。他们的值不用太在意,随便给一个就可以了,因为随着卡尔曼的工作,X会逐渐的收敛。但是对于P,一般不要取0,因为这样可能会令卡尔曼完全相信你给定的X(0|0)是系统最优的,从而使算法不能收敛。我选了X(0|0)=1度,P(0|0)=10。

    该系统的真实温度为25度,图中用黑线表示。图中红线是卡尔曼滤波器输出的最优化结果(该结果在算法中设置了Q=1e-6,R=1e-1)。

    matlab下面的kalman滤波程序:
    clear
    N=200;
    w(1)=0;
    w=randn(1,N)
    x(1)=0;
    a=1;
    for k=2:N;
    x(k)=a*x(k-1)+w(k-1);
    end
    
    
    V=randn(1,N);
    q1=std(V);
    Rvv=q1.^2;
    q2=std(x);
    Rxx=q2.^2; 
    q3=std(w);
    Rww=q3.^2;
    c=0.2;
    Y=c*x+V;
    
    p(1)=0;
    s(1)=0;
    for t=2:N;
    p1(t)=a.^2*p(t-1)+Rww;
    b(t)=c*p1(t)/(c.^2*p1(t)+Rvv);
    s(t)=a*s(t-1)+b(t)*(Y(t)-a*c*s(t-1));
    p(t)=p1(t)-c*b(t)*p1(t);
    end
    
    t=1:N;
    plot(t,s,'r',t,Y,'g',t,x,'b');

    展开全文
  • 为了可以更加容易理解卡尔曼滤波器,这里会应用形象的描述方法来讲解,而不是像大多数参考书那样罗列一大堆数学公式和数学符号。但是,他5条公式是其核心内容。结合现代计算机,其实卡尔曼程序相当简单...
  • 程序的功能说明通常由动态说明和静态说明组成, 动态说明描述的是输入数据的次序和转移的次序,而静态说明描述的是输入条件与输出条件之间的对应关系。当程序中过于复杂并且存在大量的组合时,仅仅使用静态说明设计...

    1. 概述

    程序的功能说明通常由动态说明和静态说明组成, 动态说明描述的是输入数据的次序和转移的次序,而静态说明描述的是输入条件与输出条件之间的对应关系。当程序中过于复杂并且存在大量的组合时,仅仅使用静态说明设计的测试用例,往往是考虑不够的,所以采用动态说明来补充一定的测试用例时必要的。而功能图法就是使用动态描述来生成测试用例的方法,其本质是一种白盒和黑盒测试方法组合的测试用例设计方法。

    2. 定义

    功能图方法是用功能图形象的描述程序的功能说明,并机械的生成功能图的测试用例。功能图由状态迁移图和逻辑功能模型构成。
    其中状态迁移图和逻辑功能模型的相关描述如下:

    1. 状态迁移图用于表示输入数据序列以及相应的输出数据。在状态迁移图中,由输入数据和当前状态决定输出数据和后续状态。
    2. 逻辑功能模型用于表示在状态中输入条件和输出条件之间的对应关系。逻辑功能模型仅用于描述静态说明,输出数据仅由输入数据决定。测试用例则是由测试中经过一系列状态和在每个状态中必须依靠输入/输出数据满足的一对条件组成。

    附: 前面已经说过,这种方法是一种黑盒白盒测试方法相结合的设计方法,具体来说就是在从功能图导出测试用例时需要用到白盒测试方法中的路径覆盖和逻辑覆盖的测试用例设计方法。

    3. 状态迁移图法导出测试用例的步骤

    1. 明确状态节点。 分析被测对象的测试特性及需求规格说明书,明确被测对象的状态节点数量及相互迁移关系。
    2. 绘制状态迁移图。 利用圆圈表示状态节点,有向箭头表示状态间的迁移关系,根据需要在箭头旁边标识迁移条件。可以利用绘图软件绘制状态迁移图。
    3. 绘制状态迁移树。 根据状态迁移图,按照广度优先和深度优先搜索绘制状态迁移树。首先确定起始节点和终止节点,在绘制时,当路径上遇到终止节点时,不再扩展,遇到已经出现的节点也停止扩展。
    4. 抽取测试路径设计用例。 根据绘制好的状态迁移树,提取测试路径,从左到右,横向抽取,每条路径构成一条测试规则,然后再利用等价类和边界值等测试用例设计方法设计具体的测试用例。

    4. 实例

    一个编辑文本的软件中有可以改变字体颜色的功能,其中可选的颜色共有黑、红、蓝三种颜色。
    想要测试这个功能,首先,分析上述需求可以得出,该功能共有三种状态,假设红色为起始状态,那么可以得到如下的状态迁移图:
    在这里插入图片描述

    根据上述的状态迁移图,绘制出如下的状态迁移树:
    在这里插入图片描述
    然后,从状态迁移树中,可以导出以下规则:
    在这里插入图片描述
    最终,根据以上测试用例规则,可以导出如下测试用例:
    在这里插入图片描述

    展开全文
  • 这类病毒名字很多,选这个名字主要是它比较形象说明其感染方式,即将病毒代码分成多份,分别注入到程序各节由于对齐产生空白中。   1.核心——病毒描述表  将病毒代码分割成多份,分别注入到未知地址区域内...
  • 这类病毒名字很多,选这个名字主要是它比较形象说明其感染方式,即将病毒代码分成多份,分别注入到程序各节由于对齐产生空白中。1.核心——病毒描述表 将病毒代码分割成多份,分别注入到未知地址区域内,却能...
  • 功能图法 ...用功能图形象地表示程序功能说明, 并机械地生成功能图测试用例。 对于较复杂程序,由于存在大量组合情况,仅用静态说明组成规格说明对于测试来说往往是不够,必须...
  • 为了更形象的说明清楚问题,结合下面的例子: 问题描述 定义了一个增强类,对IDemoService类的所有方法进行增强 @Aspect @Component public class AspectDemo { /** * 定义切点:如果有此注解...
  • 一、面向对象方法学 传统软件工程方法学适用于中小型软件产品开发; 面向对象软件工程方法学...实例是由某个特定类所描述的一个具体对象。 消息 要求某对象执行某个操作的规格说明。 三部分: 接受消息的对象 消
  • 我在网上查找了所有的关于SQL JOIN的解释,但是没有找到一篇能用图像形象描述的。 有些是有图片的但是他们没有覆盖所有JOIN的例子,有些介绍实在简单空白得不能看。所以我决定写个自己的文章来介绍SQL JOINs. 详细...
  • Kurose和ROSS教授用形象生动和引人入性方式描述该领域出现原则,进而用从因特网体系结构提取出例子来说明这些原则。本书是修订版,反映了网络技术最新变化。  ·新增一章有关无线网络和移动网络内容,...
  • 知识表示:计算机可接受的描述知识数据结构。 知识范围:具体到一般;由说明到指定;确定到不确定 知识划分:常识性知识、领域性知识;事实性知识、过程性知识、控制性知识;确定、不确定知识;逻辑性知识、...
  • 我在网上查找了所有的关于SQL JOIN的解释,但是没有找到一篇能用图像形象描述的。 有些是有图片的但是他们没有覆盖所有JOIN的例子,有些介绍实在简单空白得不能看。所以我决定写个自己的文章来介绍SQL JOINs. 详细...
  • 关于观察者模式,网上有许多形象描述,在这里借用https://blog.csdn.net/qq_31428453/article/details/78412984文中的例子作进一步的说明,以期望加深自己的理解的同时可以惠及他人! 观察者模式: 1、观察者行为...
  • ...计算MP3 帧时长是 26ms来历时,提到两个重要概念...有没有具体形象的描述方法说明这两个概念? 例如第一概念“采样个数”,这个“采样个数”该如何理解,举例来说,好比是播种机播种,一次就可以播115
  • 大道至简这本书总体来说比较通俗易懂,同时在说明自己观点时候引用了许多古代例子,更加的形象生动有趣,可读性很强。 前几章主要思想如下: 程序=算法+结构+方法;编程第一要务是先把事情分析清楚,把事件...
  • 方法犹如水塘中气泡浮到水面,形象的成为“冒泡”。 算法描述: 相邻元素间比较,如果前一个比后一个大,交换两元素位置; 每一对相邻元素之间做同样工作,从开始第一对到结尾一对,这样最后元素...
  • 在上章内容中,互联力量描述了使用Static Resource表达式,引用其它元素的方法,本章重点谈下Silverlight XAML各元素间绑定。 单向绑定 我用简单和形象的例子说明这个问题,整个界面只要两个Silverlight控 件...
  • 7.功能图法 一个程序功能包括静态和动态说明... 功能图设计方法:功能图方法使用功能图形象地表示程序功能说明,并机械地生成功能图测试用例。我们在不同文档中看到“状态迁移图”、“流程图”、“菜单树...
  • (五)功能图法

    千次阅读 2015-04-14 14:14:14
    1.定义: 功能图方法其实是一种灰盒测试(因其具有黑盒...用功能图形象地表示程序功能说明,并机械地生成功能图测试用例。 功能图由状态迁移图和布尔函数组成.状态迁移图用状态和迁移来描述.一个状态指出数据输入
  • [原创]测试用例设计之“功能图”法 功能图法简介: 功能图方法其实是一种灰盒测试(因其兼有黑盒和白盒测试,...用功能图形象地表示程序功能说明,并机械地生成功能图测试用例 程序功能说明的组成 动态说明:...
  • UML类图知识

    2019-02-07 14:02:50
    每一个图形都是用来描述一个问题,根据对应问题,选择对象图形,再去看对应图形一些基本表示方法,这个就可以把自己软件思路,生动形象的描述出来。一共有13种图。大致结构如下: 1. 用例图 ...
  • 第3章 程序设计初步 本章要点 基本概念 赋值语句 C++输入与输出 关系运算和...算法表示方法有 自然语言 用人们使用语言描述算法 流程图 用一些图框线条以及文字说明形象 地直观地描述算法 伪代码 计算机语言程序
  • 格,避开难学少用粗枝繁叶,利用生动形象的比拟和浅显易懂语言 去描述Excel VBA中看似复杂概念和代码,借用实用例子来了解编 程思路和技巧,为读者提供练习和思考空间,讲练结合,让读者亲 自体验VBA...
  • 书中摒弃了枯燥乏味科技说明文风格,避开难学少用粗枝繁叶,利用生动形象的比拟和浅显易懂语言去描述Excel VBA中看似复杂概念和代码,借用实用例子来了解编程思路和技巧,为读者提供练习和思考空间,...
  • 我们先进行一个简单的纯SIP信令(不带语音连接建立)的UAC的SIP终端的程序开发的试验(即一个只能作为主叫不能作为被叫的的SIP软电话模型),我们创建一个MFC应用程序,对话框模式,照上面的说明,...

空空如也

空空如也

1 2 3 4 5
收藏数 89
精华内容 35
关键字:

形象描述的说明方法