软件工程思想之八--维护与再生工程
维护过程是一个很漫长的过程。因为软件是在实验室生产出来的,难免有很多与实际情况不相符合的地方,因此在软件交付使用的初期难免出错,此时一般为纠错性维护。我觉得导致维护工作比较困难的几点原因如下:
1 非结构化维护:掌握的软件文件只有源程序,维护工作只能从分析源程序开始;
2 软件的可理解性差:主要关键在于对软件结构、接口、功能和内部过程的理解上。
3 软件的可修改性差:主要在于软件的可理解性、通用性(软件不需要修改就可以改变功能)、灵活(程序容易分解和组合)和简明度
4 软件的可移植性差:主要表现在对OS的依赖性、设备硬件的依赖性。前者比较容易理解。后者比较容易被疏忽。在C/C++版块中有这么一个例子
http://www.chinaunix.net/forum/viewtopic.php?t=123743
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(9)
和我现在的情况有些类似!
我以前做的是通信
都是做完后才投标的
所以可以说开发中只有协议可以看
没有客户可以提需求
后面的交流都是在开局后进行
不过我觉得做项目也一样。开发环境毕竟比较单纯,客户只能提供他所能想到的问题,开发者根据各种假设搭建环境。但是有很多情况是无法预先估计的。
具我所知,在中国做产品的没有两家。
基本上都是在做项目。
那要看是什么开发吧
如果是应用开发的话 如为专门客户订制软件
那当然是和客户一起做
如果自己做的软件是针对多数用户的 这时只有投入市场后才知道有怎样的结果 中间没有什么用户反馈
呵呵,也许是我的工作尽力太单纯,我只能看到我身边的情况!
软件从实验室走出来,那只是一种理想模式。
目前中国的大部分软件开发是和客户在一起做的。
等你软件开发完的时候对客户的培训也就结束了。
所以很多外围的维护都是让客户来做的。
一无所有兄,你所说得我基本赞同。但是我坚持软件已开始应该是从实验室
走出来的。因为开发的时候,你只能根据经验预测可能遇到的情况,然后模拟在使用中遇到的情况,检测软件的正确性和容错能力。
但是这些情况毕竟是假设。在现场有很多情况时超出估计范围的,无法事先
全部估计到。
软件不是从实验室走出来的,
也没有那个客户愿意给大家当实验品。
这其中只有失败和成功,没有什么中间路线可走。
软件的维护本来就是一个大框框。
对于不同开发模式下的维护会有一些不同。譬如螺旋型的软件需求方法对维护人员而言实际上只是一个阶段的区分,本质上和开发没有什么不同。
但总的而言还是体现在:时间,成本,质量这三个制约因素。