第六周作业 :软件项目管理学习小结

软件项目管理学习小结

最近自己学习了一下课本第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,优化级

一个软件开发组织可以用一系列小的改良性步骤迈入更高的成熟度等级。

在学习了这一章的内容之后对于软件项目管理有了一个比较深刻的认识。当前项目中遇到的一些问题也在这一章找到了一些答案。

原文地址:https://www.cnblogs.com/TOM96/p/5378368.html