『软件工程5』详解软件项目管理之软件的度量

软件项目管理——软件的度量

  • 一、度量的目的
    • 1、引例
    • 2、度量的目的
    • 3、度量的作用
  • 二、测量、度量和指标区别
    • 1、引例
    • 2、测量、度量和指标的区别
    • 3、思考题
  • 三、过程度量和项目度量
    • 1、过程
    • 2、项目
  • 四、度量的方式
    • 1、物理世界中的测量
    • 2、软件测量
  • 五、面向规模的度量
    • 1、定义
    • 2、有用度量的计算——举例阐述
  • 六、面向功能的度量
    • 1、定义
    • 2、功能点度量的计算
    • 3、扩展的功能点度量 —— 特征点
    • 4、调和不同的度量方法
  • 七、软件质量度量
    • 1、软件质量的度量
    • 2、软件质量的度量指标
  • 八、DRE
    • 1、DRE的全称
    • 2、衡量DRE的两种角度
    • 3、思考题 —— think more

对于一件事物来说,当你能够测量你所说的并将其用数字表达出来时,你就会对它有了一些了解;但当你不能测量,不能用数字表达它时,你对它的了解就会很贫乏。

上面这句话表明一个事实,当你想要得到一个可量化的结果时,你需要先去测量它,有了测量结果后,才会有度量。对于事物是这样,而对于软件项目管理来说也是如此。一个好的软件项目管理,需要经过多方面的测量和度量,才能更好的呈现出一个比较满意的结果。

在接下来的这篇文章中,将讲解关于软件项目管理中软件的度量

一、度量的目的

1、引例

引用Lord Kelvin曾说过一句话: ①当你能够测量你所说的并将其用数字表达出来,你就对它有了一些了解;②但当你不能测量,不能用数字表达它时,你对它的了解就很贫乏、很不令人满意;③它可能是知识的开始,但你在思想上还远没有进入科学的境地。

这句话说明,想要得到一个可量化的结果,需要先去测量它,有了测量结果后,才会有度量;也就是说,测量是度量的基础

2、度量的目的

进行度量工作,是为了了解产品开发的技术过程产品本身

  • 度量开发过程的目的是为了改进过程

  • 度量产品的目的是为了提高产品的质量

3、度量的作用

  • 度量的作用是为了有效地定量地进行管理。

二、测量、度量和指标区别

1、引例

假设有A和B两个人,我们都知道A比B高。但不知道A比B高多少?

这个时候是不是就得经过测量身高才能知道具体值。

所以,A和B的身高值即为测量值。

经过测量,A的身高为189cm,B的身高为170cm。

得出结论,A比B高19cm。

所以,A比B高19cm是度量值。

2、测量、度量和指标的区别

(1)测量(measure) —— 对一个产品或过程的某个属性的范围、数量、维数、容量或大小提供了一个定量的指示。

(2)度量(metrics) —— 对一个系统、部件或过程具有的某个给定属性的度的一个定量测量。

(3)指标(indicator) —— 软件工程师收集测量并开发度量,这样就可以获得“指标(indicator)”;指标是一个度量或度量的组合,它对软件过程软件项目产品本身提供了更深入的理解。

3、思考题

Q:指出下面这段话中哪些是测量,哪些是度量,哪些是指标

有四个软件小组共同完成一个大型项目,但是每个小组必须进行技术评审,

经过检查每人每小时所发现的错误数,管理者发现采用更加正式评审方法的两个小组比起另外两个小组,每人每小时所发现的错误数要高40%

假设其它参数相同,这就给管理者提供一个指标:正式的评审方法比起其他评审方法在时间投资上能得到更大的回报,他可能会建议所有小组都采用正式的评审方法。

A:从上面这段话中可以得出,每人每小时所发现的错误数为测量值,更加正式的评审方法为指标,每人每小时所发现的错误数要高40%为度量值

得出结论,测量是度量的基础,度量是为了得到指标,它们的关系为:测量->度量->指标。

三、过程度量和项目度量

软件过程度量主要用于战略的目的,软件项目度量则是战术的

1、过程

(1)过程度量

  • 在软件发布之前的错误数的测量;
  • 交付给最终用户并由最终用户报告的缺陷的测量;
  • 交付的工作产品生产率)的测量;
  • 花费的工作量的测量;
  • 花费的时间的测量;
  • 进度是否一致的测量。

(2)过程指标

  • 使得软件工程组织能够洞悉一个已有过程的功效(如范型、软件工程任务、工作产品及里程碑);

  • 使得管理者和开发者能够评估哪些部分可以起作用,哪些部分不行;

  • 过程度量(Metrics)的收集跨越所有的项目,并经历很长的时间,目的是获得改善软件过程的指标。

2、项目

(1)项目度量

  • 大多数软件项目度量的第一个应用是在估算时发生的;
  • 从过去的项目中收集的度量可用来作为估算现在软件项目的工作量及时间的基础;
  • 所花费的工作量及时间的测量可以和预估算值进行比较,项目管理者使用这些数据来监督和控制项目的进展。

(2)项目度量的目的

  • 能指导进行一些进度上的必要调整,以避免延迟、减少问题及风险,从而使得开发时间减到最少;

  • 项目度量可在项目进行的基础上评估质量,在必要时修改技术方法以改进质量。

(3)项目指标

  • 评估正在进行的项目的状态;
  • 跟踪潜在的风险;
  • 在问题造成不良影响之前发现它们;
  • 调整工作流程或任务;
  • 评估项目组在控制软件工程工作产品的质量的能力。

四、度量的方式

1、物理世界中的测量

(1)直接测量 —— 例如,测量一个螺栓的长度;

(2)间接测量 —— 例如,用次品率来测量生产出的螺栓质量。

2、软件测量

软件测量与物理测量一样,也同样分为两类。

(1)直接测量

过程 —— 软件工程过程直接测量包括所投入的成本和工作量;

产品 —— 软件产品直接测量包括产生的代码行数(LOC)、执行速度、存储量大小、在某种时间周期中所报告的差错数。

(2)间接测量

产品 —— 软件产品的间接测量包括功能性、复杂性、效率、可靠性、可维护性和许多其它的质量特性。

五、面向规模的度量

1、定义

(1)面向规模的度量是对软件和软件开发过程的直接度量

(2)可以建立一个面向规模的数据表格来记录项目的某些信息。

2、有用度量的计算——举例阐述

项目LOC工作量成本文档页数错误缺陷人员
Alpha1210024168365134293
Beta27200624401224321865
Gamma20200433141050256646

Q:该表格列出了在过去几年完成的每一个软件开发项目和关于这些项目的相应的面向规模的数据。那么,从该表中可以获得哪些有用信息?三个项目哪个项目的软件质量最高?哪个项目的生产率最高?哪个项目的单位成本最高?

:LOC即Line Of Code,表示代码行数;PM即Person Month,表示每人每月。

需要注意的是:在表格中记载的工作量和成本是整个软件工程的活动(分析、设计、编码和测试),而不仅仅是编码活动

对于每一个项目,可以根据表格中列出的基本数据计算简单的面向规模的生产率和质量等的度量。

A:根据表格可以对所有的项目计算出以下有用度量

生产率 = KLOC/PM(人月);(成正比)

质量 = 错误数/KLOC;(成正比)

质量 = 缺陷数/KLOC;(成反比)

成本 = 元/LOC;(成正比)

文档 = 文档页数/KLOC。(成正比)

六、面向功能的度量

1、定义

(1)面向功能的软件度量是对软件和软件开发过程的间接度量

(2)面向功能的度量主要考虑程序的“功能性”和“实用性”,而不是对LOC计数;

(3)该度量是一种叫做功能点方法的生产率度量法,利用软件信息域中的一些计数软件复杂性估计的经验关系式而导出功能点FP。

2、功能点度量的计算

(1)图例

功能点度量的计算

需了解以下公式

FP=总计数值х(0.65+0.01 х ΣFi);

“ 0.65+0.01 х ΣFi ” :复杂度调整因子。

  • FP即Function Points,表示功能点;

  • 总计数值是所有加权计数项的和;与五个信息域有关,即输入,输出,查询,文件,接口,且需考虑加权因子;

  • Fi为复杂度校正值,需回答14个问题,详情看第(3)点

(2)五个信息域

  • 用户输入数:各个用户输入是面向不同应用的输入数据;
  • 用户输出数:各个用户输出是面向应用的输出信息,包括报表,屏幕信息,错误信息等。在报表中的各个数据项不应该再分别计数;
  • 用户查询数:查询是一种联机的交互操作,每一个不同的查询都要计算;
  • 文件数:每一个逻辑主文件都应计数。逻辑主文件是指逻辑上的一组数据,可以是一个大数据库的一部分,也可以是一个单独的文件;
  • 外部接口数:与系统中其他设备通过外部接口读写信息次数均应计数。

(3)关于复杂性校正值Fi

  1. 系统是否需要可靠的备份和恢复?
  2. 是否需要数据通信?
  3. 是否有分布处理的功能?
  4. 是否性能成为关键?
  5. 系统是否运行在现存的高度实用化的操作环境中?
  6. 系统是否需要联机数据项?
  7. 联机数据项是否需要建立多重窗口显示和操作,以处理输入处理?
  8. 主文件是否联机更新?
  9. 输入、输出、文件、查询是否复杂?
  10. 内部处理过程是否复杂?
  11. 程序代码是否可复用?
  12. 设计中是否包括了转移和安装?
  13. 系统是否设计成可以重复安装在不同机构中?
  14. 系统是否设计成易修改和易使用?

(4)关于计算

一旦收集到上述数据,就可以计算出与每一个计数相关的复杂性值

一个信息域是简单的、平均(中等)的还是复杂的,由使用功能点方法的机构自行确定,从而计算出加权计数

计算功能点,使用如下的计算公式

FP=总计数值×[0.65+0.01 × ∑(Fi)],总计数值是所有加权计数项的和;

Fi(i=1…14)是复杂性校正值,它们应该通过逐一回答14个问题来确定,详情看第(3)点;

③④注意点

  • Fi的取值0~5:0表示没有影响;1表示微小影响;2表示轻度;3表示中度;4表示显著;5表示重大;

  • ∑(Fi)是求和函数。

一旦计算出功能点,就可仿照LOC的方式度量软件的生产率、质量和其它属性:

生产率=FP/PM(人月);(成正比)

质量=错误数/FP;(成正比)

质量 = 缺陷数/FP;(成反比)

成本=元/FP;(成正比)

文档=文档页数/FP;(成正比)

(5)基于FP的软件度量

  • 每个FP的错误数(Errors per FP) —— 质量

    每个FP的缺陷数(Defects per FP) —— 质量

  • 每个FP的花费($ per FP) —— 成本

  • 每个FP的文档页数(Pages of documentation per FP) —— 文档

  • 每人月完成的FP数(FP per person-month) —— 生产率

(6)思考题——think more

功能点FP和总计数值之间的关系,最小值是()x 总计数值,最大值是()x 总计数值。

如果14个问题的复杂度调整值总和为42,总计数值假设为100,则功能点FP的值为___。

解析:

  • 最小值为0.65 x 总计数值,最大值为1.35 x 总计数值。

  • 功能点FP的值为 FP = 总计数值×[0.65+0.01 × ∑(Fi)] = 100 x (0.65 + 0.01 x 42) = 100 x 1.07 = 107

3、扩展的功能点度量 —— 特征点

(1)基础知识

扩展的功能点也叫特征点度量法,是另外一种功能点度量;

②功能点度量最初主要是用于商业信息系统应用中;

强调数据维而排除了功能维及行为(控制)维;

因此,功能点度量不适合用于很多工程及嵌入式系统(它们强调功能及控制)。

(2)特征点

功能点测量的超集(superset),适用于算法复杂性较高的应用,主要应用于系统和工程软件的应用,例如,实时系统、过程控制软件及嵌入式软件应用。

(3)特征点的计算

特征点的计算

由上图可以发现

FP信息域值计算的基础上增加了一个新的软件特性,即算法——特定计算机程序中所包含的一个界定的计算问题;

在特征点的计算中,权值是固定的,而原来功能点的度量计算中,权值有简单、平均、复杂三种取值。

PS:权值即加权因子

4、调和不同的度量方法

Q:如果我知道LOC的数量,有没有可能估算功能点(FP)的数量?

A:代码行数和功能点之间的关系依赖于用来实现软件的程序设计语言设计质量

那么不同程序语言建造一个功能点所需的平均代码行数是多少呢?

如下图所示

不同的语言中建造功能点所需LOC

看到这里,小伙伴们对功能点是否有一定了解了呢?

不妨试问下自己,如果开发一个信息系统需要用到56000行VB代码3000行SQL代码,那么该系统的功能点(FP)是多少?
56000LOC47LOC/FP+3000LOC40LOC/FP≈1192+75=1267个\frac{56000 LOC}{47 LOC/FP}+\frac{3000 LOC}{40 LOC/FP} ≈ 1192+75 = 1267个 47LOC/FP56000LOC+40LOC/FP3000LOC1192+75=1267

七、软件质量度量

1、软件质量的度量

质量度量贯穿于软件工程的全过程以及软件交付给用户使用之后。

(1)交付前度量

  • 在软件交付之前得到的度量可作为判断设计和测试质量好坏的依据;
  • 这一类度量包括程序复杂性有效的模块性总的程序规模

(2)交付后度量

  • 在软件交付之后的度量则把注意力集中于还未发现的缺陷数系统的可维护性方面;

2、软件质量的度量指标

为了实现实时的质量评估,工程师们必须采用技术测量客观地评估质量,而不能采用主观的方法。以下列出4种客观的度量指标:

(1)正确性(最重要)

  • 一个程序必须正确地运行,并为它的用户提供某些输出;
  • 正确性要求软件执行所要求的功能;
  • 关于正确性的最常用的测量是每KLOC的缺陷数(Defects/KLOC),这里的缺陷数定义为“验证结果与需求不符的地方”。

思考

Q:缺陷数越高越好还是越少越好?

A:缺陷数越高,软件质量越低;所以缺陷数应该尽可能少。

(2)可维护性

  • 可维护性是指遇到错误时程序能被修改的容易程度,维护所占的工作量比其他活动都大,它无法直接测量

  • 面向时间:

    有一种简单的面向时间的度量,称MTTC(平均变更时间),可以作为可维护性的度量;

    这个时间包括分析变更要求设计适当的修改实现变更并测试、及把变更发送给所有的用户

  • 面向成本:

    还有一种面向成本的可维护性度量,称损坏度,指的是软件发布给最终用户后修改遇到缺陷的成本

思考

Q1:MTTC越低,可维护性越好还是越差呢?

A1:MTTC即平均变更时间,变更时间越少,说明软件质量越好;所以,MTTC越低,可维护性越好。

Q2:当每千代码行的缺陷数降低的同时,损坏度有可能提高吗?

A2:损坏度即遇到缺陷的成本。
举个例子:
假设在一个软件中,遇到50个缺陷,这50个缺陷都是些很小很细微的问题,很快就能修复完,那么所花费的成本也就不会很高;

再或者在另一个软件中,遇到5个缺陷,这5个缺陷刚好是5个非常重大的漏洞问题,需要很多时日才能修复完,那么所花费的成本就会很高,即损坏度提高;

所以,缺陷数低并不代表成本就会低,这也就意味着,当每千代码行的缺陷数降低的同时,损坏度有可能提高。

(3)完整性

  • 完整性是度量一个系统在安全方面的抗攻击的能力
  • 软件的三个成分,程序、数据和文档都会遭到攻击;
  • 度量完整性,需要定义两个附加的属性:危险性安全性
  • 危险性是特定类型的攻击将在一个给定时间内发生的概率;
  • 安全性是排除特定类型攻击的概率;
  • 一个系统的完整性可定义为 完整性=∑[1-危险性×( 1-安全性) ] 其中,对每一个攻击的危险性和安全性都进行累加。

思考

Q:某个攻击的危险性是70%,安全性是40%,那它的完整性等于多少?

A:完整性 = ∑ [1-危险性×( 1-安全性) ] = 1 - 0.7(1 - 0.4) = 1 - 0.7x0.6 = 1 - 0.42 = 0.58

试想下,一个完整性为0.58的系统,它合格吗?

评论区留下你的答案~

(4)可用性

如果一个程序不具有“用户友好性”,即使它所执行的功能很有价值,也常常会失败。可使用性量化“用户友好性”,并依据以下四个特征进行度量:

  • 为学习系统所需要的体力上的智力上的技能;
  • 为达到适度有效使用系统所需要的时间;
  • 当软件被某些人适度有效地使用时所度量的在生产率方面的净增值
  • 用户角度对系统的主观评价 (可以通过问题调查表得到)。

八、DRE

1、DRE的全称

DRE,即Defect Removal Efficiency,表示缺陷排除效率。

2、衡量DRE的两种角度

(1)DRE=E/(E+D)

  • DRE是对质量保证及控制活动中滤除缺陷能力的一个测量;
  • E是软件交付给最终用户之前所发现的错误数,D是软件交付之后所发现的缺陷数。

(2)DREi=Ei/(Ei+Ei+1)DRE_i =E_i/(E_i+E_{i+1} )DREi=Ei/(Ei+Ei+1)

  • DRE也能够用于在项目中评估一个小组在错误传递到下一个活动或任务之前发现这些错误的能力。在这种情况下,我们定义DRE为:

即,DREi=Ei/(Ei+Ei+1)即,DRE_i =E_i/(E_i+E_{i+1} ) ,DREi=Ei/(Ei+Ei+1)

  • EiE_iEi是在软件工程活动i中所发现的错误数, Ei+1E_{i+1}Ei+1是在软件工程活动i+1中所发现的错误数,这些错误起源于软件工程活动i中未能发现的错误。
  • 可以把EiE_iEi理解为前一个活动Ei+1E_{i+1}Ei+1理解为后一个活动

3、思考题 —— think more

软件团队将软件交付给了最终用户。在使用的第一个月中,用户发现了8个缺陷。在交付之前,软件团队在正式的评审和所有的测试任务中发现了72个错误。那么,项目总的缺陷排除效率公式是DRE=E/ ( + ),最后的结果是____(写成小数点的形式)。

解析:

  • 项目总的缺陷排除效率公式是 DRE=E/(E+D);

  • 最后的结果是 DRE = 72 / (72 + 8) = 0.9。

PS 本文篇幅较长,有错别字欢迎评论区纠正,随时改进~
如果这篇文章对你有帮助,记得留下star哦~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/308075.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

7-2 旅行售货员 (10 分)(TSP问题思路加详解)

一题目 某售货员要到若干城市去推销商品,已知各城市之间的路程(或旅费)。他要选定一条从驻地出发,经过每个城市一遍,最后回到驻地的路线,使总的路程(或总旅费)最小。 输入格式: 第一行为城市数n 下面n行…

从零开始内建你的安全测试流程

一、 安全测试的意义安全问题,没发生的时候我们可以侥幸,一旦发生生产安全问题,对很多公司来说可能就是黑天鹅事件了。平台的安全,是我们测试中不可舍弃的一环,而且需要长期持续的关注。二、 从哪里入手很多公司没有专…

『软件测试1』你需要了解的软件测试基础知识

软件测试基础一、 软件缺陷的概述1、什么是软件缺陷2、软件缺陷的类型3、软件缺陷的案例4、软件缺陷的产生原因5、软件缺陷的分类6、软件缺陷的处理流程7、多学一招:缺陷报告(由测试人员完成)8、常见软件缺陷管理工具9、修复软件缺陷的成本二…

直连路由和静态路由(实验)

一:概念 1:直连路由概念 根据 路由 器学习路由信息、生成并维护 路由表 的方法包括直连路由(Direct)、 静态路由 (Static)和 动态路由 (Dynamic)。直连路由:路由器接口所连接的子网的路由方式称为直连路由; 非直连路由:通过路由协议从别的路…

使用 GB28181.Solution + ZLMediaKit + MediaServerUI 进行摄像头推流和播放

使用 GB28181.Solution ZLMediaKit MediaServerUI 进行摄像头推流和播放独立观察员 2020 年 8 月 25 日一、摄像机 GB28181 配置打开 国标 28181 配置页面,勾上 “接入使能”:打钩的是重要的配置信息,主要就是 SIP 服务器的信息和摄像头自己…

将 .NET Framework 项目转换为 .NET Standard 项目

将 .NET Framework 项目转换为 .NET Standard 项目独立观察员 2020 年 8 月 20 日如今 .NET Core 是未来发展的主流(至少在 .NET 5 发布之前),而我们如果要改造一个项目为 .NET Core 项目,则它引用的项目应当先改造为 .NET Standa…

7-3 最短路径 (20 分)(分支限界+思路+详解)

一:题目 给定一个有N个顶点和E条边的无向图,顶点从0到N−1编号。请判断给定的两个顶点之间是否有路径存在。如果存在,给出最短路径长度。 这里定义顶点到自身的最短路径长度为0。 进行搜索时,假设我们总是从编号最小的顶点出发&a…

一份【软件工程】的学习指南已到达,请注意查收!!

软件工程——起始篇一、引言二、学习【软件工程】的原因1、软件设计师证书2、相关领域人员必备技能三、【软件工程】的学习方法1、不要盲目为了学习而学习2、规划学习路线四、结束语【软件工程】应该是大学计算机专业必修的一门课,对于开发者来说,可能有…

『软件工程6』详解软件项目管理之软件范围与估算

软件项目管理——软件范围与估算一、软件项目计划1、目标2、步骤二、软件范围1、软件范围定义2、软件范围——引例三、影响估算的因素四、软件项目资源1、软件项目资源构成2、分析图3、人力资源4、硬件资源5、软件工具6、可复用构件五、软件工作量与成本的估算1、基于LOC估算工…

【翻译】.NET 5 Preview8发布

今天,.NET 5预览8发布了,对于.NET5.0的功能开发已经完成了,这必须要排除待处理的bug,预览8是最后一次预览版本。预计11月正式的.NET5.0版本发布之前还将发布两个正式之前的候选版本,这篇文章描述了.NET5.0版本中的一系…

7-1 页面置换算法--FIFO (50 分)(思路详解)

一:题目 先初始化页面大小,和物理块数。连续输入页面的逻辑地址,以“-1”作为结束标志,采用FIFO页面置换算法、固定分配局部置换分配策略。输出该页面的页号和页内位移,若该页不在内存,并且还有剩余的物理块&#xff…

7-2 页面置换算法--LRU (50 分)

一:题目(思路详解运行时错误解决) 先初始化页面大小,和物理块数。连续输入页面的逻辑地址,以“-1”作为结束标志,采用LRU页面置换算法、固定分配局部置换分配策略。输出该页面的页号和页内位移,若该页不在内存,并且还…

『软件测试3』八大典型的黑盒测试方法已来袭,快快接住!

文章目录一、等价类划分法1、定义2、等价类划分法步骤3、设计测试用例步骤4、案例:学生选修课程二、边界值分析法1、边界值分析法概述2、设计测试用例3、边界值设计原则三、错误推测法1、错误推测法概述2、错误推测法基本思想四、因果图设计法1、因果图设计法概述2、…

使用Jenkins来发布和代理.NetCore项目

Back toStudy!注:书接上文,上回《【CI/CD系列】使用Docker安装Jenkins》咱们说到了使用Docker镜像的方式,来建立Jenkins服务,用来持续集成和持续发布项目,但是上一篇文章有两个问题:01创建的容器不能操作和…

数据库课设(足球联赛管理系统)

一:前言 如果有关注博主的粉丝,可能会发现贴心杰又缺更好几天了,但是我是宠粉杰啊,怎么可能会忘了我的宝贝粉丝呢,只不过是临近期末,各种大作业课设如期而至,这几天我在写数据库课设&#xff0…

.NET Core实用技巧(一)如何将EF Core生成的SQL语句显示在控制台中

前言笔者最近在开发和维护一个.NET Core 项目,其中使用几个非常有意思的.NET Core 相关的扩展,在此总结整理一下。EF Core 性能调优如果你的项目中使用了 EF Core, 且正在处于性能调优阶段,那么了解 EF Core 生成的 SQL 语句是非常关键的。那…

695.岛屿的最大面积(026)BFS

二:思路 1.这里的遍历数据方式为BFS广度遍历 2.当我们遇到一个‘1’的时候,我们就遍历他的左右上下(邻接点),如果是1那就入队,直到队列 为空为止。 3.我们记录每个岛屿的面积是采用 我们设置初始值为1,当每遇到一个邻…

『软件工程8』软件项目进度安排与跟踪,一招学会计算关键路径

项目进度安排与跟踪一、项目进度安排的定义及原则1、进度安排的定义2、进度安排的基本原则二、通信开销1、通信开销的定义2、通信路径计算3、案例分析三、工作量分配1、40-20-40规则2、工作量分配图例3、工作量分布推荐四、项目进度安排方法1、关键路径方法(CPM,Critical Path …

await,async 我要把它翻个底朝天,这回你总该明白了吧

一:背景1. 讲故事await,async 这玩意的知识点已经被人说的烂的不能再烂了,看似没什么好说的,但我发现有不少文章还是从理论上讲述了这两个语法糖的用法,懂得还是懂,不懂的看似懂了过几天又不懂了&#xff0…

栈在前端中的应用,顺便再了解下深拷贝和浅拷贝!

详解栈在前端中的应用一、栈是什么二、栈的应用场景三、前端与栈:深拷贝与浅拷贝1、JS数据类型(1)js数据类型的分类(2)js数据类型的定义和存储方式(3)js数据类型的判断方式2、深究浅拷贝和深拷贝…