如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
第9章软件工程管理软件工程管理概述软件规模和开发工作量估算软件项目估算功能点FP(FunctionPoint)。FP=UFP×(0.65+0.01×SUM(Fi))估算功能点的步骤1.计算未调整的功能点数UFPUFP=a1×Inp+a2×Out+a3×Inq+a4×Maf+a5×Inf其中,ai(1≤i≤5)是信息域特性系数,值由相应特性的复杂级别决定。复杂性校正值Fi1.系统是否需要可靠的备份和恢复?2.是否需要数据通信?3.是否有分布处理的功能?4.是否性能成为关键?5.系统是否运行在既存的高度实用化的操作环境中?6.系统是否需要联机数据项?7.联机数据项是否需要建立多重窗口显示和操作,以处理输入处理。8.主文件是否联机更新?9.输入、输出、文件、查询是否复杂?10.内部处理过程是否复杂?11.程序代码是否可复用?12.设计中是否包括了转移和安装?13.系统是否设计成可以重复安装在不同机构中14.系统是否设计成易修改和易使用?计算技术因子对软件规模的综合影响程度DI:技术复杂性因子TCP由下式计算:TCP=0.65+0.01×DI计算功能点数FPFP=UFP×TCP一旦计算出功能点,就可仿照LOC的方式度量软件的生产率、质量和其它属性:生产率=FP/PM(人月)质量=错误数/FP成本=元/FP文档=文档页数/FP功能点度量是为了商用信息系统应用而设计的。代码行度量与功能点度量的比较CoCoMo模型基本的CoCoMo模型基本的CoCoMo模型参数中间的CoCoMo模型15种影响软件工作量的因素fi中间CoCoMo模型与各种开发方案对工作量的影响一般情况下,由N个程序员组成的小组共同开发一个程序的工作量,满足:程序员小组的生产率:单个程序员与程序员小组生产率的比为事实:盲目增加程序员人数会推迟软件完成的日期CoCoMo2模型进度计划甘特图GanttChart工程网络技术通常用两张表来定义网络图。一张表给出与一特定软件项目有关的所有任务(也称为任务分解结构WorkBreakdownStructure);另一张表给出应当按照什么样的次序来完成这些任务(有时称为限制表RestrictionList)。PERT技术和CPM方法都为项目计划人员提供了一些定量的工具。确定关键路径,即决定项目开发时间的任务链。在关键路径上的各个任务都是时间余量为零的关键任务,不能有任何时间延误。应用统计模型,对每一个单独的任务确定最可能的开发持续时间的估算值。计算边界时间,以便为具体的任务定义时间窗口。上述示例工程中各项任务的进度安排,可用Gantt图画出:(先安排关键路径上的任务)人员组织软件项目组织的建立开发组织采用什么形式,要针对软件项目的特点来决定,同时也与参与人员的素质有关。组织原则(1)尽早落实责任:在软件项目工作开始时,要尽早指定专人负责,使他有权进行管理,并对任务的完成负全责。(2)减少接口:一个组织的生产率随完成任务中存在的通信路径数目增加而降低。要有合理的人员分工、好的组织结构、有效的通信,减少不必要的生产率的损失。(3)责权均衡:软件经理人员所负的责任不应比委任给他的权力还大。组织结构的模式1)按课题划分的模式把软件开发人员按课题组成小组,小组成员自始至终参加所承担课题的各项任务。他们应负责完成软件产品的定义、设计、实现、测试、复查、文档编制、甚至包括维护在内的全过程。2)按职能划分的模式把参加开发项目的软件人员按任务的工作阶段划分成若干个专业小组。要开发的软件产品在每个专业小组完成阶段加工(即工序)以后,沿工序流水线向下传递。例如,分别建立计划组、需求分析组、设计组、实现组、系统测试组、质量保证组、维护组等。各种文档资料按工序在各组之间传递。3)矩阵形模式这种模式实际上是以上两种模式的复合。一方面,按工作性质,成立一些专门组,如开发组、业务组、测试组等;另一方面,每一个项目又有它的经理人员负责管理。每个软件人员属于某一个专门组,又参加某一项目的工作。技术员负责项目的具体分析与开发,文档资料的编写工作。后援工程师支持主程序员的工作,为主程序员提供咨询,也做部分分析、设计和实现的工作。并在必要时能代替主程序员工作。主程序员制小组还可以由一些专家(如通信专家或数据库设计专家)、辅助人员(如打字员和秘书)、软件资料员协助工作。(2)民主制小组在民主制小组中,遇到问题,组内成员之间可以平等地交换意见。工作目标的制定及做出决定都由全体成员参加。虽然也有一位成员当组长,但工作的讨论、成果的检验都公开进行。这种组织形式强调发挥小组每个成员的积极性。有人认为这种组织形式适合于研制时间长、开发难度大的项目。(3)层次式小组在层次式小组中,组内人员