1. 团队组织与管理
开发团队组织模式
- 民主式结构:团队成员完全平等,享有充分民主,成员之间通过协商做出决策。
- 主程序员式结构:以主程序员为核心,主程序员既是项目管理者也是技术负责人,团队其他人员的职能进行专业化分工。
- 矩阵式结构:将技术与管理工作进行分离,技术负责人负责技术上的决策,管理负责人负责非技术性事务的管理决策和绩效评价。
2. 软件项目计划
- 问题描述
例子
开发问题描述
- 定义顶层设计
顶层设计描述了最初从系统到子系统的分解,它描述了系统的软件体系结构。
子系统分解应该是高层的,专注于功能,并且要保持稳定。
每一个子系统可以被分配给一个团队或一个人 ,由他负责其定义和实现。
- 定义项目工作分解
项目工作分解是将项目整体分解成较小的、易于管理和控制的若干子项目或工作单元,直到可交付成果定义的足够详细,足以支持项目将来的活动。
- 建立初始时间表
在项目工作分解的基础上,进一步估算活动所需的时间和资源,并按照一定的顺序将这些活动进行组织和调度,从而创建项目的进度计划表。
3. 软件项目估算
软件项目估算的首要原则:对结果进行估计,而不是活动。
- 专家判断
通过借鉴历史信息,专家提供项目估算所需的信息,或根据以往类似项目的经验,给出相关参数的估算上限。- 参数估算
通过对大量的项目历史数据进行统计分析,使用项目特性参数建立经验估算模型,估算诸如成本、预算和持续时间等活动参数。
- 功能点方法是依据软件信息域的基本特征和对软件复杂性的估计,估算出软件规模。这种方法适合于在开发初期进行估算,并以功能点为单位度量软件规模。
- 结构性成本模型COCOMO( COnstructive COst MOdel )是一种利用经验模型进行工作量和成本估算的方法。(并不能适用于所有情况)
- 用例点估算是在面向对象软件开发项目中用于估计规模和工作量的方法,它比
功能点方法要简单一些。
- 机器学习方法
神经网络是采用一种学习方法导出一种预测模型, 这种方法使用历史项目数据训练网络,通过不断学习找出数据中的规律,再用其估算新项目的工作量。
- **
- **