以文本方式查看主题

-  计算机科学论坛  (http://bbs.xml.org.cn/index.asp)
--  『 软件工程论坛 』   (http://bbs.xml.org.cn/list.asp?boardid=48)
----  关于设计的思考  (http://bbs.xml.org.cn/dispbbs.asp?boardid=48&rootid=&id=23021)


--  作者:pennyliang
--  发布时间:10/13/2005 6:18:00 PM

--  关于设计的思考
什么是设计这个问题都存在很大争议.
有些认为代码是设计
有些人为形成实现模型的描述是设计,设计必须是文档,设计图等.
有些管理项目强调原理(rationale)的管理.

我人为代码是设计,但是设计不仅仅是代码,代码仅仅可以表达较低的抽象层次,不能说明原
理性的东西,和使用这种设计的原因.设计草图是具体设计的开始,也是设计的部分,设计的
最终结果是代码,通过编译器build后的是产品.

综上所述,我认为应该是"提前设计+源代码+基本原理"=设计


--  作者:liulianx
--  发布时间:11/13/2005 11:19:00 PM

--  
不好意思,本人认为您的说法不够正确。

我觉得设计的主要亩的是为采用最合适的方法解决一些问题。通过对问题的深层次分析然后找出合理的解决方法,这才是设计。


--  作者:enorm
--  发布时间:12/6/2005 9:49:00 PM

--  
设计是现实世界向计算机世界转化的过程
--  作者:enorm
--  发布时间:12/9/2005 9:11:00 PM

--  
设计是分析模型向计算机模型的过程
--  作者:jiachong
--  发布时间:12/28/2005 1:01:00 PM

--  
我认为首先设计的确存在多个层次,甚至需求分析也可以叫设计,因为这里有一个人为的提炼过程
所以我感觉:设计=模型,包含三个要素
1)直接影响系统的实现  2)体现了人的主观决策(包含创造性劳动)  3)严格规范的表达

那么业务模型,体系结构模型,类图,代码都是模型,也都是设计

但代码有时候也可能不是设计,例如前一层次上的设计已经细到编码时不需要任何主观决策了,不过这时候编码工作可以由机器来完成了

下列这些不是:记录的原始需求、项目计划、编译(或自动生成)得到的低层次代码、测试用例等

btw:这个版还真是冷清,只有版主在吆喝话题


--  作者:pennyliang
--  发布时间:12/30/2005 8:20:00 PM

--  
按照meyer提出的契约式设计和测试驱动的开发原理,specification 和 code应该和二唯一,这样才能保证符合“程序正确性原理”即代码和规约(想要的目标)一致。然而代码不能代表一切设计,代码始终不能代替原理(rationnale),也就是代码必须附加一部分的文档说明的原因。
--  作者:jiachong
--  发布时间:12/30/2005 8:37:00 PM

--  
似乎不能这么绝对,比如有的简单系统看看代码就能明白
我所接触的系统也不大,文档的确需要,最重要的文档是数据表结构(有表和字段注释更佳)
--  作者:webmaster
--  发布时间:12/31/2005 11:46:00 AM

--  
我指的文档很大程度上是一些设计决策,设计决定(design desition),为什么这样设计,这样设计的好处,原理和公理不同,公理更大程度受到客户的约束,比如商业逻辑,原理主要来自于程序设计过程,很大程度受到技术当前时代的设计理念,以及问题分析本身。
--  作者:jiachong
--  发布时间:1/1/2006 6:48:00 PM

--  
这倒也是,最终形态(代码)产物体现出来的是完整的解空间方案,但如果没有其它辅助材料,开发者也很难理解其中的逻辑
我说的那些小项目一般接手的开发者在了解一点基本的业务知识(例如别人讲一讲)的基础上,结合数据库文档和界面逻辑(界面操作中包含了很大一部分业务逻辑),这样很多情况下就可以理解没有明确文档化的设计了
--  作者:wcdxyl
--  发布时间:3/28/2006 2:05:00 PM

--  
设计字面意思是:按照任务的目的和要求,预先定出工作方案和计划,绘出图样
为解决这个问题而专门设计的图案。

软件设计的面就更广一些,凡是为了完成软件功能而预先定出的文档或者图样都算软件设计,代码不能叫设计,只能叫开发。


--  作者:jiachong
--  发布时间:3/29/2006 12:49:00 PM

--  
这也很很难说了,设计这东西看是广义还是狭义了
我认为当前大多数编码也可以认为是设计,因为参杂了很多创造性的工作在里面
什么时候编码不包含任何创造性的工作了,coder也就消失了,取而代之的是工具(例如现在的编译器)
--  作者:wcdxyl
--  发布时间:3/29/2006 4:13:00 PM

--  
呵呵,其实一个真正的项目经理是不允许程序员写代码的时候有什么创意的,因为所谓的创意就代表风险,没有人能预料,只有用成熟,稳定的技术才能保证工程的质量。
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
62.500ms