编程范例和维护开发人员


9

我正在阅读《软件工程的事实和谬论》,其中有一部分内容需要维护。自从我多年以来一直是维护开发人员以来,我就收到了很多有趣的事实。这是三个。

  • 事实41:维护通常消耗软件成本的40%至80%(平均60%)。因此,它可能是软件最重要的生命周期阶段。
  • 事实42:增强功能约占软件维护成本的60%。纠错率约为17%。因此,软件维护主要是在向旧软件添加新功能,而不是对其进行修复。
  • 事实45:更好的软件工程开发会带来更多的维护,而不是更少。

这是违反直觉的,事实证明,好的软件因为易于更改而具有更多的维护性。因此,它的使用时间更长,是的,导致更多的变化。

哪种范例(例如功能,面向对象,过程)具有最佳的可维护性,是否有任何研究可以支持此范例?


我拥有《事实与谬论》的副本,并且对于每个事实(和谬误),都有各种出版物支持该事实。我没有副本,但是其中任何引用都讨论了范式对维护的影响吗?
Thomas Owens

这本书写于2003年,如今许多结论仍然有用。我很好奇人们是否对特定范式有任何新研究。维护似乎是讨论中被忽略的一部分。
KaizenSoze 2011年

如果事实和谬论中引用的任何研究或出版物都涉及特定范例的可维护性,则一种选择是在IEEE或ACM数据库中搜索引用该论文的其他文章和论文。如果您无权访问IEEE或ACM数据库,我回家后可以看一下我的书副本,看看是否可以进行这种搜索。不幸的是,我只能给你其他论文的名字,而不是论文本身。
Thomas Owens

Answers:


12

我认为您会发现功能,OO和过程等范例可能不会以有意义的方式与软件可维护性保持一致。

您可能会发现以下内容与软件可维护性更加相关:

  • 需求收集和需求工程的水平

  • 良好的开发实践:(松散耦合,高内聚性,单元测试,YAGNI ...)

  • 熟练和合格的软件工程师(他们的价值是白痴的10倍)

  • 合格且组织有条的技术质量检查团队

  • 由称职的项目经理领导的良好项目管理(比熟练的软件开发人员恕我直言更难找到)

  • 好的产品所有者或应用程序经理,强大的领导能力,良好的长期方向,对项目团队的良好反馈,总体愿景。


+1我想向列表中添加良好的文档
treecoder

+1将“注重价值”流程添加到列表中。该过程定义并驱动已完成和未完成的事情。过程测量的内容很重要,过程未测量的内容并不重要。人力资源人员开始用“白痴”填补座位时尤其如此。
mattnz 2011年

2

这是违反直觉的,事实证明,好的软件因为易于更改而具有更多的维护性。因此,它的使用时间更长,是的,导致更多的变化。

您似乎从维护量而不是成本百分比中看到了这一点。添加了更多功能的优质软件只是大量软件。如果维护百分比是固定的(因为它是好的软件,并且我们假设其他功能是作为好的软件添加的),则金额将会增加。它只是一块更大的一块,具有相同数量的切片。

根据您的要求,“好”软件是用以下功能编写的:功能,OOP或过程代码。如果该人不知道如何测量,是否可以给他一个激光引导的电锯节省木材?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.