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

ASP.NET
FreeTextBox(版本3.1.6)在ASP.Net 2.0中使用方法
.NET 常用功能和代码小结
在 .NET Framework 2.0 中未处理的异常导致基于 ASP.NET 的应用程序意外退出
asp.net IList查询数据后格式化数据再绑定控件
asp.net sql存储过程
asp.net 简单实现禁用或启用页面中的某一类型的控件
asp.net(c#)获取内容第一张图片地址的函数
The remote procedure call failed and did not execute的解决办法
ASP.NET 在线文件管理
asp.net 读取并修改config文件实现代码
ASP.NET Cookie 操作实现
asp.net Silverlight中的模式窗体
Silverlight中动态获取Web Service地址
asp.net Silverlight应用程序中获取载体aspx页面参数
asp.net 水晶报表隔行换色实现方法
asp.net 获取Gridview隐藏列的值
手动把asp.net的类生成dll文件的方法
asp.net 使用ObjectDataSource控件在ASP.NET中实现Ajax真分页
动态指定任意类型的ObjectDataSource对象的查询参数
asp.net Md5的用法小结

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


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

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