[笔记]4.软件规模和开发的关系

本文探讨了软件工程中规模与人力成本、沟通、BUG率及生产力之间的非线性关系。指出随着项目规模增大,沟通路径数量呈指数增长,进而增加了时间和错误成本。同时,大规模项目中的需求和架构错误对质量的影响更为显著。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言:
    对非软件领域的其他领域[比如化工、船舶等等]的工程项目有了解的人,应该都知道:工程规模扩大,其他相应的人力成本,过程计算,工程周期等等并不是线形关系。更经常地,您会发现,有时候小工程和大工程适用的科学理论体系都是不同的。

    依据小工程的经验判断大工程问题是单纯的幻想,那么,软件领域又有哪些值得注意或者有趣的规律呢?

 

软件规模和沟通交流的关系
    多人项目潜在的交流途径为 N(N-1)/2 个。比如N=10,潜在交流途径则为45个。
    交流的途径越多,消耗的时间也就越多,交流出错的可能性就越大。

    改善途径:
    在可能的情况下,分解项目团队的规模。
    阅读和撰写文档是减少交流次数的有效方法之一。

软件规模和BUG的关系
    软件规模既影响BUG的数量,也影响BUG的类型。
    小的软件项目中,对质量影响最大的是开发者的技能。
    越大的软件项目中,需求和架构的错误对质量的影响逐步加大。但无论多么大型的项目,开发者带来的问题依然超过问题总数的50%以上。

在其他条件都相等的时候,大的软件项目生产率低于小的软件项目

项目大小[代码行]每人年的代码行数[括号里是cocomo II均值]
 1K2500 - 25000 [4000]
 10K2000 - 25000 [3200]
 100K1000 - 20000 [2600]
 1000K700 - 10000 [2000]
 10000K300 - 5000 [1600]



在其他条件都相等的时候,大的软件项目BUG率高于小的软件项目

项目大小[代码行]典型的BUG密度[千行BUG数]
 < 20000-25
2000 - 160000-40
16000 - 640000.5 - 50
64000 - 5120002 - 70
 > 5120004 - 100



放大轻量级的方法论要好过缩小重量级的方法论

随着项目规模的增加,工作量超过线形增长的活动有:
交流
计划
管理
需求分析
系统功能设计
接口设计和规格说明
架构
集成
消除缺陷
系统测试
文档生成

此外,其它活动基本还是线形的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值