打印

什么是概念一致性?

[复制链接]
4148|19
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
chen3bing|  楼主 | 2010-10-19 18:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
我在一篇**中看到下面一段文字:
软件和其它一切事物一样,都遵循着一致性规则。持续地更改只会让软件变成一潭烂泥,其破坏了原始设计的概念一致性。软件产品变成泥沼是不可避免的事情,但是因为程序员不考虑软件概念一致性,而导致软件产品更为快速地成为泥沼,这种速度快得可能会在软件产品还没有完成时,软件产品已经变得没有价值。设计概念一致性的失败通常都会导致软件项目的失败(而第二大导致软件项目失败的原因,则是发布的软件并不是用户想要的)。当软件变成烂泥的速度正在呈指数级下降,则太多的项目在被完结前都面临着激增的时间和成本。
请问,什么是概念一致性?谢谢!

相关帖子

沙发
chen3bing|  楼主 | 2010-10-19 18:33 | 只看该作者
高手支招啊!

使用特权

评论回复
板凳
HWM| | 2010-10-19 18:34 | 只看该作者
“概念一致性”应该是自洽的意思,不能兜个圈子后便自相矛盾了。

软件中的修改和此意不同。如果一个软件经修改后面目全非了,那不是软件当初的定位不妥就是修改方向错了。

软件工程包括如下几个方面:

1)分析——分析需求得到分析文档和系统说明书。
2)设计——遵循合适的设计方法得到设计文档。
3)编码——运用一定的程序设计语言具体实现设计文档的意图。
4)调试——测试代码。
5)维护——系统维护。

通常分析阶段的出错几率很小,如果错了(无论是功能理解或成本预算上的)这个项目基本就完了。设计阶段的错误可以有,但不能是原则性的,否则同样是致命的。编程错误则可能会多些,但如果经调试后还存在着大量的BUG,那基本也大告不妙。因为软件工程的整个过程中,维护成本是最高的。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
chunyang + 3
地板
highgear| | 2010-10-19 21:41 | 只看该作者
顶楼上 HWM.
一致性是我们经常挂在嘴边的词: “要保持一致性“, 意思是说, 要保持设计思路的连贯性, 不能相互矛盾, 或者是相同的设计应用必须遵循相同的规则。设计者不能随意的更改设计原则, 这会让实施者无所适从, 实施者也不能任意的践踏应用规则, 这会让后期的实施混乱不堪。例如, 程序一般有一定的层次, 一个更高层次的程序直接调用最底层的函数, 有时对程序员有很大的诱惑力, 这能简化程序, 提高效率, 但这种方式是被规则所禁止, 所以宁可调整中间层次, 也不能践踏应用规则。

使用特权

评论回复
评分
参与人数 1威望 +3 收起 理由
chunyang + 3
5
chunyang| | 2010-10-19 21:44 | 只看该作者
3楼、4楼说的很好,卖弄技巧是技术的大敌。

使用特权

评论回复
6
程序匠人| | 2010-10-19 22:05 | 只看该作者
这是一个很有潜力的话题。

软件的修改,最好是从源头上进行。但是在实际工作中,工程师往往对修改过程过于随性。目标仅仅是以完成眼面前的任务,手段往往是采用打补丁的方式。只求结果,不管过程。

最后补丁叠补丁,直到把程序改烂掉。

使用特权

评论回复
7
HWM| | 2010-10-19 22:12 | 只看该作者
这是一个很有潜力的话题。

软件的修改,最好是从源头上进行。
程序匠人 发表于 2010-10-19 22:05

这通常是指功能性改动或扩展,自然必须重新分析、设计....,当然旧的框架或模块也是可以重用的。

但如果是修改错误,则最好是解决在当下。如果是涉及到设计乃至分析阶段,那基本是个兴师动众的事情了。说明当初就没有做好。

使用特权

评论回复
8
HWM| | 2010-10-19 22:21 | 只看该作者
所谓“一致性”,应该理解为“规则的一致性”。其实这个理念不仅应该在软件业内提倡。

使用特权

评论回复
9
highgear| | 2010-10-19 22:37 | 只看该作者
8 楼没错, 这应该就是 rule of law 的本意吧。好像现在每个行业都有一定的法规之外的不成文规则---"潜规则“。

使用特权

评论回复
10
singleywy| | 2010-10-20 19:49 | 只看该作者
规则与技术,这两者?

使用特权

评论回复
11
fzu_csc| | 2010-10-20 21:52 | 只看该作者
规则的一致性?

如果指的是这个,那最基础的应该就是编程的规约吧。

使用特权

评论回复
12
ouxueguo| | 2010-10-21 08:32 | 只看该作者
看过 见识

使用特权

评论回复
13
老鱼探戈| | 2010-10-21 12:35 | 只看该作者
路过
观摩观摩

使用特权

评论回复
14
nayaix| | 2010-10-22 18:29 | 只看该作者
学习了

使用特权

评论回复
15
香水城| | 2010-10-23 12:43 | 只看该作者
3楼说出了软件工程应包括的几个方面:分析、设计、编码、调试和维护,这也是实际工作中应实施的步骤,这些步骤的工作是按正向的顺序开展,可以有反复但不能倒序开展,即先进行分析、再进行设计、再进行编码,但不能先编码再设计,也不能先设计再分析。

个人认为“概念一致性”就是后序步骤的工作,必须遵守前序步骤所制定的规则、概念和架构,如果破坏了这个原则,则相当于对上述步骤的倒序发展,结果自然是项目的失败或成本的大幅上升。


以盖房子为例:需要先挖坑、再打地基、再盖房子,最后进行内外装饰,如果是先盖房子、再打地基、最后挖坑,谁也不知道这个房子最后会是什么样。

同样是盖房子的例子:如果设计时是5层的住宅楼,则随后的挖坑、打地基和盖房子都会按照5层住宅楼的标准进行;假如地基打好之后,改变了项目的要求(即改变了最初的概念),需要一个5层楼的工厂,如果不把已经完成的挖坑和打地基的工作推倒重来,以后盖起来的厂房将是十分危险的。

使用特权

评论回复
16
fzu_csc| | 2010-10-23 16:36 | 只看该作者
看下图

未命名.JPG (50.35 KB )

未命名.JPG

使用特权

评论回复
17
错乱僧| | 2010-10-24 08:24 | 只看该作者
mark一下。还是需要建立这些观念

使用特权

评论回复
18
zhiyonghe| | 2010-10-24 11:10 | 只看该作者
有点犯糊:$

使用特权

评论回复
19
xlsbz| | 2010-10-25 12:02 | 只看该作者
软件没有完美 只有妥协

使用特权

评论回复
20
qq995923742| | 2010-10-26 14:19 | 只看该作者
。。。。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

439

主题

2540

帖子

2

粉丝