从几个方面评价软件设计的合理性?

1、问题的提出

      很多程序员写程序,想到哪写到哪,缺乏一个整体规划。结果随着代码的堆积,软件内部结构就乱得一团糟。想要修改一个地方,影响这、影响那,牵一发而动全身。最后不得不重构,甚至从根基重构—直接推倒重来! 一个欠设计的系统会随着规模的扩大加速死亡;而一个设计考究的系统,则可以长久保持年轻,后期维护成本也会降低。 

2、软件设计评价

      软件设计分为几个层面:框架级、组件级、类级、算法级。 

      框架级:框架可以认为是软件系统搭建所基于的平台(平台比框架还多了一些开发工具)。框架主要目的是实现系统的非功能需求,例如通用控件、通用组件、组件装配、运行管理、可移植性、可扩展性、可伸缩性、灵活性、可维护性等等。框架的好坏,体现在它满足软件系统的非功能需求的程度。 

      组件级:组件的意义是把复杂系统拆解成几个简单独立的部分,这些部分能够被独立开发、独立部署、独立运行。组件设计非常强调组件的独立性,首先从单一职责、功能内聚去评价,满足这些条件才容易独立开发。独立部署是指组件可以单独部署和卸载,而对系统不会造成破坏性影响。不过独立运行不等于独立实现业务功能,有些大功能还需要通过与其他组件相互协作才能完成,独立运行是指即使组件所依赖的外部条件不具备,其行为也不会超出受控范围。 

      类级:类设计的目的是封装、抽象、复用。封装就是不要把脆弱的内部暴露到外部,抽象就是为将来的功能扩展预留灵活性,而复用则是封装和抽象的副产物。复用是双刃剑,既能提高效率,却也增加类之间的耦合度,不利于系统变更。把继承复用改为组合复用能在一定程度上降低这种危害。 

      算法级:算法级是一个可伸缩性很强的概念,可能是在一个类方法内部,也可能贯穿好几个类。关键算法是软件的精髓,甚至是软件致胜的秘密武器。例如Windows的窗口绘制机制、机器学习算法、机器翻译算法等。算法主要考虑性能、可靠性、安全性几个方面。 

3、软件合理性设计评价的运用

     1)在设计评审时进行评价,不合理的设计需要修改,否则不予通过;

     2)用于评估系统是否该进行重构;

文章知识点与官方知识档案匹配,可进一步学习相关知识算法技能树首页概览33962 人正在系统学习中

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2009年10月21日
下一篇 2009年10月22日

相关推荐