什么是软件的重大变化?

时间:2014-02-11 13:28:46

标签: architecture

在我们公司,我们有一个突破性变化的定义。

这是一个改变

 - that changes a method signature.
 - that changes the behavior of a method.
 - that changes settings, configuration.
 - that adds dependencies to a module, assembly etc..

您是否认为这是对突破性变化的良好/完整定义?有什么遗失的吗?您是否会认为数据库架构中的更改也发生了重大变化(例如新列或新表)?

提前致谢。

编辑:刚刚找到此A definitive guide to API-breaking changes in .NET

1 个答案:

答案 0 :(得分:8)

第一点是决定英语中“突破性变化”的含义*。在某些地方,它只是阻止代码编译/运行的东西。

到目前为止,从您的列表中,我认为您的意思是需要其他人进行相应更改的更改。在这种情况下,由于产品的每个模块都应该有一个定义良好的接口(无论是其他模块,公共REST接口,系统的文件系统,gui,webapp等),那么突然改变就是从其中一个接口中删除某些东西(或添加一个新的要求供其使用) - 实际上,如果你不能使用以前版本的产品并交换只是< / em>具有更改的模块,然后它是一个破坏的模块。

所以,是的,数据库更改通常会破坏更改(除非有自动升级的代码,并且可能根据需要自动降级)。

重点是什么不是一个突破性的变化 - 模块内的变化或未记录的接口(即不应该使用的变化)不会破坏变化。如果这样的事情确实破坏了你的产品,那么封装就会失败。

*或您选择的(人类)语言。