当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 谈谈软件工程设计的艺术

ASP.NET
ASP.NET开发:简化应用程序的开发支持Web标准
asp.net XMLHttpRequest实现用户注册前的验证
asp.net 页面间传值方法小结
asp.net url重写浅谈
asp.net 验证码生成和刷新及验证
C#精髓 GridView72大绝技 学习gridview的朋友必看
实例说明asp.net中的简单角色权限控制
asp.net网站开发包wq.dll打包下载
js与ASP.NET 中文乱码问题
asp.net checkbox 动态绑定id GridView删除提示
asp.net TextBox回车触发事件 图片在img显示
asp.net 脏字典过滤问题 用正则表达式来过滤脏数据
asp.NET 脏字过滤算法
asp.NET 脏字过滤算法 修改版
asp.net sql 数据库处理函数命令
asp.net Javascript 的几种写法与提示
ASP.NET MVC学习笔记
asp.net 中国身份证号码验证代码 非正则
Asp.net中使用Sqlite数据库的方法
asp.net 中文字符串提交乱码的解决方法

ASP.NET 中的 谈谈软件工程设计的艺术


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 54 ::
收藏到网摘: n/a

谈谈软件工程设计的艺术如果生活的方式与你背道而驰,如果正确的行为被你视而不见,毁灭就会降临,难得保全。马基雅维利, 约1514年作为最重要的事情之一,如果不是唯一最重要的,一个系统的核心性质是它必须在其生命周期内保持一种 稳定的 结构。艾瓦耳。雅可布森以上的两段话,一是引自一位文艺复兴时期的实用主义政治学家,另一是引自一位当代设计大师。这两段话很好的反映了软件设计工程所面临的困境,两个相反方向的作用力,就象阴阳相生相克:一方面,软件设计需要尽一切可能减少开发时间,使软件尽快面市,同时也对市场的和客户需求的变化作出 迅速的反应;而另一方面,我们又必须花费足够的时间以保证软件的设计有一个好的架构,这样我们可以降低软件的维护费用,而且软件可以有较长的生命期。软件设计过分强调任何一个方面都会造成软件工程投资的极大浪费甚至失败。过分强调软件开发的速度,而忽视软件架构的设计是那些对软件开发工程缺乏经验者最容易犯的错误。糟糕的软件架构设计会导致所谓的1.0版现象,即软件只能开发到第一版。后续开发往往因为修改原有代码过於困难而夭折。因为设计者缺乏长远的目光和足够的项目开发经验而导致过於急躁的作出架构上的决策,因而导致软件结构的支离破碎是很可悲的,往往很多好的软件设计创意就这样胎死腹中。另一个极端同样会导致灾难,因为如果过於强调软件结构的优雅和可扩展性,导致过多的开发时间放在软件架构设计上,结果使 软件的开发时间过长,等到软件推向市场的时候,虽然设计上是完美的,但是竞争对手却早已占据了市场。软件设计的完美主义者容易犯这样的错误。这种人通常是设计方面的行家里手,而且对软件结构的完美有着不懈的追求。但是正是过於追求完美才是工程开发方面的大忌。不是每一个软件的设计都有时间和精力(同时也是财力)做到象STL那样的完美设计。通常一个好的软件设计会努力在这两个互斥的极端之间达到一种平衡。就象儒家讲的中庸。这两个极端之间的张力是随着软件开发的领域,环境,条件,时间,客户的要求,竞争对手现有的水平,等等变化而变化的。就象水形之常变。但是若能领会其中的道,能够把握其中的艺术,就能够象庖丁解牛一样“以无厚而入有间”,游刃而有余了。但是关键在於经验的积累和对平衡的领悟。经验可以很大一部分从前人那里得来,但是对道的把握却是另一度的思维空间了。 所以说软件工程既是科学又是艺术。但是值得注意的是,这绝对不应当成为忽视软件工程规范的借口,就象杨振宁可以谈论科学研究的艺术并不表示柯云路之流的所谓“生命科学”就不是纯粹的胡扯。设计一个容易维护并且有很强生命力的软件不是一件很容易的事;设计一个能够很快实现的软件也不是小菜一碟。平衡这两者来给出一个可行的,健壮的设计,使软件能够在市场上获得成功并生存下去是一件需要奇迹般力量的事业, 然而我们却必须在普通的工作中用我们的创造力去完成这个奇迹。