瀑布模型:一终理想化开发模型,需要有明确的需求分析
指定计划 -> 需求分析 -> 软件设计 -> 程序编写 -> 软件测试 -> 运行维护
原型法:采用一种动态定义需求的方法,不需要明确的需求

螺旋模型:结合瀑布模型和演化模型的有点,加入了风险分析,
制定计划 -> 风险分析 -> 实施工程 -> 客户评估

喷泉模型:主要描述面向对象的开发过程,主要特点是迭代,所有活动没有明显边界,可交叉进行
2、项目管理
软件项目本身是复杂的,如果没有仔细计划,复杂的项目是不可能成功的。
软件产品不可见,没有标准的软件过程,大型软件项目常常是一次性项目。
软件项目管理的核心问题:成本、质量、进度,也是软件项目管理的铁三角。
软件项目管理主要活动:启动软件项目(确定项目目标和范围,考虑解决方案,根据解决方案判断社会依据,技术方面可行性分析决定是否启动项目)、度量(对产品质量进行一个量化)、估算、风险分析、进度安排、追踪和控制
软件项目开发过程三大阶段:项目启动 -> 项目实施(计划-执行-监控-需求变更) -> 项目关闭
软件项目估算有自定向下和自底向上,自顶向下是一种通常采用的方法,并不能有效地解决项目估算问题,经常容易使得复苏安与实际值产生很大的差异
自底向上通常能够较为可观的、可操作的估算结果,而且还能使得项目组成员主动参与,并且通常能够对自己的承诺全力守信,从而树立了一个良好的文化,但是通常得到的值比预期值小,时间更久,因此很多项目不能有效的使用它。
软件规模估算有LOC和PF估算法
LOC估算是软件的代码行数,以KLOC(千行代码)为单位,将系统分为很多功能模块来估算代码行数。
PF估算法是一种衡量工作量大小的单位,功能点=信息处理规模X技术复杂度;技术复杂度=0.65+调节因子
技术复杂度是从:数据通信、分布式处理、性能、配置项负载、事物率、在线数据项、用户使用效率、在线更新、复杂处理、重用型、安装容易程度、操作性容易程度、多个地点、修改容易程度等14个方面复杂度取0~0.05之间的值相加在加上0.65得到技术复杂度
软件工作量估算,工作量单位人天,人月,人年,工作量=规模/产能
IBM模型就是同类项目经验总结出来的规范,相当于经验模型
普特南模型
COCOMO模型分为三级,基本模型对整个系统进行计算,中级模型将软件系统模型分为系统和部件两个层次,系统由部件组成,将软件开发所需要的人力看作是程序大小和一系列的成本驱动函数;详细模型将系统模型分为三个层次,系统,子系统,模块,初级的是静态的单变量模型,中级的是多变量模型
软件成本估算,当我们估算出软件工作量,多少人月完成项目,就可进一步估算软件成本
软件项目组织与计划,CANT图使用水平线段表示任务的工作阶段,线段起点和终点代表任务开始时间和结束时间,线段的长度表示人物完成所需的时间,优点是标明了个任务的计划进度和当前进度,动态反映项目进展。缺点是难以反映多个任务之间存在的复杂逻辑关系
PERT技术和CPM方法,PERT技术叫做计划评审技术,CPM方法叫做关键路径法。他们都是安排开发进度,指定软件开发计划的最常用的方法,他们都采用网络图来描述一个项目的任务网络,也就是从一个项目的开始到结束,应当完成的任务用贴图或表的形式表示出来
计划和执行,项目计划包含项目组计划和个人项目计划
进度监控与计划修正,EVA分析法先对已完成的工作部分原来预算花费的成本,实际花费的成本,原计划到分析日期的总成本预算,进度偏差分析成本偏差分析,进度效能指标。