- 热门文章:
- · 源代码就是设计
- · 泛型编程与设计新思维
- · 用JAVA和XML构建分布式系统
- · 网站可用性设计指南
- · VC面向对象开发分析与设计实例解析
- · 从软件设计到应用系统实现
- · 了解AOP
- · web应用文章(1)
- · 常规应用系统设计要点
- · 成为优秀的软件模型设计者
- · 软件:创新是一个过程
- · 用户需要什么-软件的工程可用性
试论软件设计原则
试论软件设计原则
作者:中博 出处:博客中国
软件开发过程千差万别,开发资金规模从几万到几千万,开发方式从面向过程到模式驱动,开发人员从几个人到几百人,开发环境从Windows到Linux,人员水平从刚刚毕业的非计算机专业的员工到经验丰富、能力有限的高手。
软件设计的好坏,似乎完全取决于设计人员的能力、思维见地,判断一个软件设计的好坏,似乎只能看其发布后的用户评价,靠时间来检验。那么,在软件设计过程中是否存在一些基本的原则,在不同的开发过程中,真正的指导、提高软件设计的水平呢?
一、功能分解
功能分解是非常朴素、普通的思想。然而,也是非常容易遗忘的思想。很多的设计人员总是雄心勃勃,试图设计出非常复杂的算法,非常完美的结构,陶醉于自己定义的世外桃源,不是将问题简化,而是将问题复杂化。而实践证明,这些出发点就是有偏差的。软件领域以外的很多实践和经验,都证明了分工、分解是处理复杂系统的基本前提。何况较很多系统更加复杂的软件系统?
二、代码重用
很多的软件方案中,开宗明义自己的设计原则是面向对象,那么,我们把需求影射成为一个一个的对象,就是好的设计吗?事实上,如何划分、设计真正好的对象,是非常难以掌握的,如果面向对象在实践中没有很大的问题,就不会有时髦的重构了。实际上,翻开任何一本解释面向对象的书,都会提到,面向对象的基本初衷是代码重用。那么,如果把代码重用作为设计原则,设计人员总是考虑如何能够代码重用的设计,则其效果会大大高于没有什么可操作性的面向对象原则
三、减少耦合
如果将设计好的对象之间用有向箭头连在一起,很多时候会变成了一张网,如果将对象的方法之间用有向箭头连在一起,则看起来像信手涂鸦。对于设计人员,能够将其中的关系一一说明白,已经是不错的了,而对于的开发人员,则变成了黑洞。如果过一段时间、或者用户需求有些变化,对很多人讲,这样的设计会成为噩梦,这是比较极端的情况。但是也能说明,在设计各个层面减少耦合是设计人员需要随时提醒自己的。
四、规律的规律
如果设计人员确实还有能量,可以考虑一些超越用户给定需求的PATTERN,很多情况下,是从用户的需求得到一些PATTERN,而不是相反。
五、常识和品味
政治局常委起何作用?一般的轿车百公里油耗是多少,这些和我们的软件设计有关么?是的,有很大的关系。设计人员会得到各个角度、各个层次的信息,需要作出方方面面的决策,而归根结底,这些决策的依据很多是设计人员的常识和品味,不同的人有不同的常识和品味,而设计人员的常识和品味是否足够高,一般只能随着系统的使用才能看出来。
- · 掌握可用性规则
- · 走进Java原型开发
- · 软件开发中的设计问题
- · 应用原型的制作与原型制作工具的使用
- · 什么是Web Service
- · 什么时候应该使用Web Service
- · 典型的Web Service结构
- · 用户需要什么-软件的工程可用性
- · 可用性:软件贴近用户的重要标准
- · 软件的性能设计
- · .NET架构的核心开发技术
- · 敏捷软件开发(中篇)
- · 敏捷软件开发(上篇)
- · 用敏捷方法推进CMM过程改进
- · 中国与印度软件开发之比较
- · 软件工程的若干探讨
- · 软件复用为软件开发提速
- · 软件工程标准初探
- · 互联网应用
- · 浅谈网站工程的管理与规范
- · 技术讨论指南
- · TSP群组软件开发过程
- · 参与变革,发现更多可重用的…
- · 蠢人的黄金
- · 代码复用的规则
- · 统一软件开发过程
- · RUP白皮书
- · 利用 RUP开发大规模系统
- · 利用 Rational Unified Pro…
- · RUP:通过用例应用需求管理
- · 软件工程与能力成熟度模型C…
- · CMM5级标准
- · 软件工程与能力成熟度模型C…
- · 如何实施CMM?
- · 系统安全工程能力成熟模型(…
- · CMM与“持续改进”
- · 实施软件质量保障体系CMM/T…
- · 软件项目管理(CMM)经验谈
