请问:如何去读几十万行的VC原代码!

superzxq 2001-11-26 05:55:51
现有一套几十万行的VC原代码由我修改测试中的bug!
我从未接触过这套软件。
也不太清楚如何利用调试工具帮助自己读程序!
请高手指点!
...全文
5514 77 打赏 收藏 转发到动态 举报
写回复
用AI写文章
77 条回复
切换为时间正序
请发表友善的回复…
发表回复
love4cz 2001-11-30
  • 打赏
  • 举报
回复
几十万行,模块间连接的再清晰,也要用个文档将各关系记下并理清,不然到后面是一定会晕!
cen 2001-11-30
  • 打赏
  • 举报
回复
首先是资金,人员要充足。
没有钱、没有人,最好就别接这个活。因为风险太高,往往会以失败告终。
虽然你可以凭个人的毅力来做,但是这只对你一个人的技术提高,对公司没有什么价值。
公司要求是按时按质完成目标。

我进行了一个估算。

1.8G而且有bug,假如按 0.5 -1Bug/M 估计Bug数目 900 - 1800.
按源代码计算: 假设源代马 500000L
如果经过比较好的测试的半成品,5 or 20 bugs per 10000 source code计算
约 500000 * 5或20 /10000 = 250 - 1000 bugs

如果是国内公司开发且未经测试
否则 5 - 20 per 1000 source code 计算
约 500000 * (5 或 10) / 1000 = 2500 - 10000 bugs

应修复的Bugs * 0.7 = 500

分成两组,
一组对核心控制程部分进行分析(作什么,不管代码怎么做),
一组对模块进行检查
如果是C++开发的,将系统分为子系统,构件(偶合性性低的模块),全局量,
按文档分代码,说明文档, 资源,数据文档, 其它文档,。集中人力一个子系统,一个子系统的进行.

在主要类/功能模块控制流程比较清楚以后进行细致的Debug, 确定错误与修改影响的范围
设计测试用例搭建测试桩与驱动,要注意修改后的单元/系统测试比较充分,以免引入新的bug。

如果开发文档不齐全,按人均600--1000L/天(1.5万-3万L/月)的速度处理,
有开发文档*1.5
代码可读性较好的*1.1, 差的 * 0.6
无文档但源码好 * 0.8

记录的分析的结果:结构/类名,类说明,公共变量/接口说明,状态,关键流程
类的关联关关系(派生,友元,包含)依赖,
流程描述,分析;
全局量的说明
定期汇总并且更新数据分析结果,整理出全局关键项表(如宏,函数,全局变量),公布给所有项目成员
(建议使用自动工具 rational 工具/配置库 如VSS,cvs,维护系统模型)

影响到别人的结果要求项目所有人员都被通知。
要不断协调进度安排,定时讨论出现的问题。
有专门的人员负责对技术难题的指导与反复变更控制
要对bugs修复情况进行跟踪并确认完成。
使用配置管理分析出的报告与代码。

开发周期 500000/600 + bugs * 50L/bugs(每个bug的估计编码量) /200(L/人天) ~= 958 人天
950 * 1.2 /22 天 = 53人月
5个做10个月,10个人做5.5个月 人均3500元月, 花费约20万元

另外要注意培训(专业,调试,分析,工具使用,编码/文档规范,工作规范)以及group成员的团队合作

(以上计算数据是参考数据,实际的估算数据要根据公司,人员实际情况来进行计算)
TalentSprite 2001-11-30
  • 打赏
  • 举报
回复
可怜!
禽兽v5 2001-11-30
  • 打赏
  • 举报
回复
除了前面各位的几个精彩论点之外,我想说一点:
  拆车也是一门学问。
loveruby1314 2001-11-30
  • 打赏
  • 举报
回复
依照每一个的模块的功能一个一个的仔细的品味,然后看模块与模块间是怎样连接的。ok!!
superzxq 2001-11-30
  • 打赏
  • 举报
回复
to cen(陈*):
看了阁下的帖子,我对阁下除感激之情外,深表敬佩!
看来阁下对软件工程有深刻理解!而且技术水平也胜我百倍!
坦白的说,我既非技术总监,也非项目经理,不过是混饭吃的小程序员!
我现在工作的公司没人了解这套程式。我主管是位博士,对次也是模模糊糊!
而且博士并不爱回答技术问题!
我是混一天是一天!一有空就研究Windows低层开发!
过了年再说吧!
谢谢各位的关心和支持!

victorchen_2000 2001-11-29
  • 打赏
  • 举报
回复
linux + 大量的应用程序,开发工具的源码都没有1.8G呢。
哪家公司的开发人员那么精通垃圾制作啊。
lwd2k 2001-11-29
  • 打赏
  • 举报
回复
排版打印出来,用笔批阅之。
lwd2k 2001-11-29
  • 打赏
  • 举报
回复
如果是窃取的成果还差不多,要是本公司的代码这么乱还搞什么软件工程!
Dev 2001-11-29
  • 打赏
  • 举报
回复
你就重写一个程序交差算了!

^_^
zj_ok 2001-11-29
  • 打赏
  • 举报
回复
老大,你太哭了
0aaron 2001-11-29
  • 打赏
  • 举报
回复
一定要有耐心
lty 2001-11-29
  • 打赏
  • 举报
回复
一个‘好’主意:你看不懂,你的领导也看不懂,除非设了套害你,你就装模做样看几天,说程序看似一点小bug,其实结构存在巨大缺陷,必须重新构思,也就是说得重新开发。
veaven 2001-11-29
  • 打赏
  • 举报
回复
头晕~~~~
我倒~~~~~
ultra_albert 2001-11-29
  • 打赏
  • 举报
回复
你好,我现在和你有同样的任务,我正领导一个Team读代码,核心代码是19M,写的很好,德国的开放原码,但是基本也没有注释。现在我有一些建议,希望与你探讨:
1.如果这个任务在很段的时间由你一人完成,这就是你的Leader 的错。你应该对他说 NO!
这很重要。
2. 先知道项目是干什么的,位于计算机工程的什么领域。从朋友,书籍,在网上搜寻该领域的资料和标准。
3. 不管借不借助工具,形成你自己的 该项目的 数据结构的定义和含义和类的接口,功能,关系(派生,友元,包含等)以及全局函数和数据;主程序的流程结构 的 分析报告。和 项目中 信息的 数据流图给你的Leader.
canguru 2001-11-29
  • 打赏
  • 举报
回复
to superzxq() 逆向工程的工具我只知道rose,visio2002,和HOW(只见过文档)。希望对你有用。
rediori 2001-11-29
  • 打赏
  • 举报
回复
苦差事,我自己写的项目也快有20M了,我现在自己都不敢看,^_^
yyshitian 2001-11-29
  • 打赏
  • 举报
回复
我没有看过VC的源码,C的我还是看得过,一个系统下来也有200M,最开始我从没想过一下子要看懂,慢慢来吧,找一切可能找到的注释来看,找MAIN(),通过它找出几条主线。

我从不看一个一个小功能模块。我只要明白它是做什么用,能达到什么功能。这样我觉得条理出来了,系统也就算看懂了
CFree 2001-11-29
  • 打赏
  • 举报
回复
买来的东西,更应该有文档的呀
zxl_l 2001-11-29
  • 打赏
  • 举报
回复
新建一个工程,然后按功能要求从原系统不断copy重组,并加注解和文档。
加载更多回复(57)

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧