软件工程分两部分:软件开发技术、软件工程管理
软件项目计划、成本估算、进度计算、风险分析、人员的组织形式
软件项目计划:
软件项目的任务:
① 研究:该项目的主要性能、功能以及系统界面
② 估算:经费、进度、资源
软件项目计划的内容:
1、 范围:①项目目标②主要功能③性能限制④系统界面⑤特殊要求⑥开发概述
2、 资源:①人力资源②硬件资源③软件资源④其他
3、 进度安排:①工程网络图②Gantt图③任务---资源表
4、 成本估算
5、 培训计划
其中:范围—对该软件项目的综合评述,定义其所要做的工作和性能限制
项目目标---这项目是做什么的,它的目标和要求
性能限制—总的软件性能特征,以及其他约束条件(主存、数据库、通信速度、负荷)
主要功能—该软件主要功能的描述,基于顶层的逻辑模型。(只涉及做什么,不涉及怎么做)
系统界面---描述与此项目有关的其他系统成分以及关系
特殊要求---对可靠性、实时性的特殊要求
开发概述---概括说明软件开发过程各个阶段工作(重点为需求定义,设计和维护)
人力资源—
① 求的人员数,应按各类人员分裂。(系统分析员、程序员、操作员)
② 对各类人员素质要求
③ 各类人力工作的时间阶段
硬件资源—除计算机外还需要的硬件
软件资源---用于项目开发所需的支持和应用软件
软件工程项目分类:规模各异,采用的管理水平、开发工具、方法各异,人员业务水平不同
成本估算:
估算方法:
① 自顶向下:对整个项目的总开发时间和总工作量作出估算,然后按它们各阶段、步骤和工作单元分配
② 自底向上:分别估算各工作单元所需的工作量和开发时间,然后相加得出总量。
大致分三类:专家估算法、类推估算法、算式算法
进度计算:常用三种方法:甘特图(条形图)、工程网络图,时标网络图
1、 甘特图:常用以描述把任务分解成子任务,以及每个子任务的进度安排如一个水平直方图。
① 水平线标示子任务的工作阶段,线段的起点和终点分别对应子任务的开工时间和完成时间。线段长度表示所需时间
② 横坐标为时间,纵坐标表示不同子任务的分段
③ 甘特图可以表示子任务的分解情况、各子任务并行和串行的关系、每个子任务的开始和终结时间
④ 不能表示各子任务间相互制约的关系,不能反映全貌,不能看出关键的控制作业