计算机软件工程是一门涵盖软件开发全过程的学科,其中包括了对软件项目的管理、成本估算、团队组织、进度安排以及质量保证等多个重要方面。本课件主要讲述了软件工程管理的关键概念和模型。
管理的主要目的是确保软件项目能在预定的时间和预算内顺利完成,包括软件的计划、开发和维护。管理内容涉及费用管理、质量管理以及项目进度和人员组织等多个层面。费用管理不仅需要估算软件的开发成本,还要有效利用资源;质量管理则包括了配置管理,确保软件质量达到预期标准。
软件估算模型是项目规划的基础。其中,静态单变量资源模型假设资源(如开发工作量、时间或人数)与软件特征(如源程序长度)成比例。Putnam模型则通过源程序长度、开发时间和全生存期工作量之间的关系来估算资源需求。COCOMO模型则更为复杂,依据软件类型(组织型、半独立型、嵌入型)调整工作量,以更准确地预测成本和时间。
在软件成本估计中,自顶向下和由底向上的方法分别从整体和部分出发进行成本估算。自顶向下先估算总成本,再分配到各个任务;而由底向上则是先估算每个子任务的成本,再汇总。算法模型估计则利用历史数据和适用的模型进行成本预测。
人员分配与组织是软件开发中的关键环节。Rayleigh-Norden曲线揭示了项目中人力资源分配的规律,指出在不同阶段需要的人力数量变化。Brooks定律指出,增加未经验的人员可能会延长项目周期,强调了人员组织结构的重要性。常见的组织形式有层次型结构(软件经理、项目经理、开发小组)和主程序员小组。
项目进度安排通过计划评审技术(PERT)和甘特图来规划和监控。PERT图找出关键路径,确定项目中最关键的任务,而甘特图则直观展示任务的开始和结束时间,帮助管理者监控进度。
在软件质量管理方面,质量保证是确保软件满足规范和标准的过程,涉及到软件可靠性、程序正确性证明等。CMM模型和ISO9000标准提供了软件质量管理和认证的框架,软件度量则用于评估和改进软件开发过程。
软件工程管理涉及众多相互关联的要素,需要综合运用各种模型和方法,以确保项目的成功执行和软件质量的保证。有效的管理能提高软件开发的效率和质量,降低风险,实现客户满意度和商业目标。