最近本身学习了一下课本第13章软件项目管理,学完以后本身有一些感悟,而后写下这篇总结以便更好的巩固学习的知识程序员
做为项目的管理人,而做为项目计划第一项计划活动应该就是估算软件规模了。 估算软件规模的方法经常使用的有两个 1, 代码行技术,说简单了就是实现一个功能所需的代码行数。 具体的估算过程就是每一个人估算一个最小规模(a),最大规模(b),最可能的规模(m),而后分别算出三者的平均值aa,bb,mm, 而后最终结果L=(aa+4*mm+bb)/6; 单位为(LOC或KLOC) 2, 功能点技术,这种方法用功能点(FP)为单位估算软件规模, 用这种方法估算软件规模第一点就是要知道该技术定义的信息域的5个特性(Inp,Out,Inq,Maf,Inf) 而后就是“三步走” I,每一个特性分类为简单级,平均级,复杂级,而后每一个特性分配一个功能点数, 以后计算UFP=a[1]*Inp+a[2]*Out+a[3]*Inq+a[4]*Maf+a[5]*Inf ; 其中a[i]可从信息域特性系数表中得到 II, 计算技术复杂性因子TCF 这里要考虑14种技术因素对软件规模的影响,对于每个因素,要为之分配一个0-5的值, 而后把14种因素分配的值求和获得DI, 那么TCP = 0.65 + 0.01*DI III,这个时候就能够直接算出功能点数FP了 FP = UFP * TCF
根据软件规模这时候就能够估算软件的工做量了。工做量是软件规模的函数,单位一般是人月(pm)。 经常使用的估算模型有三种 1, 静态单变量模型 E = A + B * (ev)^C ; 这里A,B,C 是由经验导出的常数,E是计算结果(pm), ev是估算变量(KLOC 或P) 书上列举了一些估算模型,这里就再也不一一列举, 2, 动态多变量模型 E = ((LOC*B^0.333/P)^3 )*(1/t)^4 ; 这里E是计算结果(pm) t是项目持续时间(月或年),B是特殊技术因子,P是生产率参数,B,P可由对实际软件的估算得到。 3, COCOMO2 E = a*(KLOC^b)*(f[1]*f[2]*f[3]*….*f[n]) ; 这里E是计算结果(pm) a是模型系数,b是模型指数,KLOC是估计的源代码行数,f[i]是成本因素,可由对项目的估算得到。
当对项目的工做量估算好以后,就得估算开发时间并制定一个足够详细的进度表了 1,估算开发时间 通常的成本估算模型同时也提供了估算开发时间T的方程,这里能够经过查阅书籍得到估算开发时间的方程。 2,Gantt(甘特)图,工程网络图 关于图的制做书上有详细的介绍,对于这两种图而言,各有优缺点,通常联合使用这两种图来指定进度计划。
项目组组织结构是软件项目取得成功的关键,一般有如下几种组织结构 1,民主制程序员组 2,主程序员组 3,现代程序员组 根据场合的不一样采用不一样的组织方式。
归纳的说,软件质量就是“软件与明确的和隐含的定义的需求相一致的程度” 通常有如下几种措施来保证软件质量 1,技术复审 2,走查 3,审查 4,程序的正确性证实
因为软件开发的过程是迭代的,因此为了控制和管理软件开发过程出现的各类变化须要进行软件配置管理 软件配置包括:软件配置项,基线, 软件配置管理过程主要有如下几个步骤。 1,标识软件配置中的对象。 2,版本控制 3,变化控制 4,配置审计 5,状态报告
能力成熟度模型(CMM)用于评价软件机构的软件过程能力成熟度的模型 基本思想:因为软件开发过程当中存在的问题是因为人们管理软件过程的方法不当引发的, 因此新的软件技术的应用不会自动提升软件的生产率和质量, 能力成熟度模型有助于软件开发机构创建一个有规律,成熟的软件过程。 能力成熟度有5个等级分别以下: 1,初始级 2,可重复级 3,已定义级 4,已管理级 5,优化级
一个软件开发组织能够用一系列小的改良性步骤迈入更高的成熟度等级。网络
在学习了这一章的内容以后对于软件项目管理有了一个比较深入的认识。当前项目中遇到的一些问题也在这一章找到了一些答案。函数