软件工程导论(13)

第13章 软件项目管理

13.1 估算软件规模

代码行技术

特点:比较简单的定量估算软件规模的方法

优点:代码是所有软件开发项目都有的“产品”,而且很容易计算代码行数
缺点:
1)仅是软件配置的一个成分,用它的规模代表整个软件的规模并不合理;
2)不同语言实现,代码行数不同
3)不适用于非过程语言

功能点技术

概念:对软件信息域特性和软件复杂性的评估结果,估算软件规模(使用功能点FP为单位度量软件规模)

信息域5特性:输入项数(Inp)、输出项数(Out)、查询数(Inq)、主文件数(Maf)、外部接口数(Inf)

*估算功能点的步骤:

  1. 计算未调整的功能点数UFP
  2. 计算技术复杂性因子TCF
  3. 计算功能点数FP
    FP=UFPxTCF

13.2 工作量估算

工作量估算单位:人月

*静态单变量模型

总体形式:E=A+B×(ev)C
(A、B、C是常数,ev是估算变量,E是以人月为单位的工作量)

*动态多变量模型

形式:E=(LOC×B0.333/P)3×(1/t)4
(是以人月为单位的工作量、t是以月或年为单位的项目持续时间、B是特殊技术因子、P是生产率参数)

启示:开发同一个软件,延长项目持续时间可降低完成项目所需的工作量

*COCOMO2模型

与COCOMO模型相比,改动有:新增加了4个成本因素、略去了原始模型中的两个成本因素、增加某些成本因素的影响降低另一些成本因素的影响

13.3 进度计划

估算开发时间

Brooks规律描述的现象:向一个已经延期的项目增加人力,只会使得它更加延期

*项目规模与项目组总生产率的关系:Ltot=P(Ll(P1)r)(给定L、l、r,存在最佳项目组规模P使得总生产率Ltot最高)

Gantt图

作用:制定进度计划的工具

工程网络图

用箭头代表作业,圆圈代表事件
事件不占事件和资源,作业占时间和资源

估算工程进度:圆圈中加入最早开始时间EET和最迟发生时间LET,估计出EET和LET
关键路径:EET=LET的事件连成的路径,这些事件必须准时发生

13.4 人员组织

民主制程序员组

组员完全平等,相互协商共有n(n-1)/2条信道
多用于开发人员大多经验丰富的情况下

主程序员组

用经验技术好的程序员作为主程序员,其它组员只用和主程序员交流
多用于开发人员大多缺乏经验的情况下
缺点:主程序员难找

现代程序员组

取消主程序员的大部分行政管理工作,把民主制程序员组合主程序员组的优点结合起来

13.5 质量保证

软件质量

概念:软件与明确和隐含地定义的需求相一致的程度

软件质量保证措施

软件质量保证措施(SQA):

  • 技术复审
  • 走查
  • 审查
    早期发现错误的好方法
  • 程序正确性的证明

13.6 软件配置管理

概念:软件配置管理是在软件的整个生命期内管理变化的一组活动
目标:使变化更正确且更容易被适应,在必须变化时减少所需花费的工作量

软件配置

软件配置项:应用于整个软件过程的软件质量保证活动

基线:
有助于人们在不严重妨碍合理变化的前提下来控制变化
可以作为进一步开发的基础,只有通过正式的变化控制过程才能改变它(软件需求规格书是一个基线)

软件配置管理过程

5项任务:标识、版本控制、变化控制、配置审计、状态报告

13.7能力成熟度模型

概念:用于评价软件机构的软件过程能力成熟度的模型

能力成熟度由低到高的5级:

  • 初始级
    软件过程的特征是无序的,有时甚至是混乱的
  • 可重复级
    建立了基本的项目管理过程(过程模型),可跟踪成本、进度、功能、质量
  • 已定义级
    已定义了完整的软件过程(过程模型),软件过程已经文档化和标准化
  • 已管理级
    软件过程可度量,能在可度量的范围内运行
  • 优化级
    软件过程是可优化的
posted @   kksk43  阅读(309)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
特效
黑夜
侧边栏隐藏
点击右上角即可分享
微信分享提示