周伟明的专栏

<<软件测试实践>> 已上市

用户操作
[即时聊天] [发私信] [加为好友]
周伟明ID:drzhouweiming
195511次访问,排名374好友2人,关注者28
软件技术爱好及研究者
drzhouweiming的文章
原创 50 篇
翻译 0 篇
转载 0 篇
评论 334 篇
周伟明的公告
一书已上市, 欢迎大家提出意见!
最近评论
domemy:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
domemy:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
domemy:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
domemy:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
domemy:Linux 环境下的多核调试
— Intel + Totalview 强强联合!
目前,在软件开发行业,各种性能优异的调试工具层出不穷。但是,它们中的绝大部分都只支持windows环境。即使能支持linux平台,操作起来也很不方便。因此,对于长期在linux上编写程序的开发人员来说,如何调试就成了一个令人头痛的问题!Intel软件 和 Total……
文章分类
    收藏
      相册
      最近文章
      1、多核新观念-象使用内存一样使用CPU?
      2、多核编程中的任务随机竞争模式的概率分析
      3、OpenMP创建线程中的锁及原子操作性能比较
      4、多核编程中的任务分组竞争模式
      5、称球问题的测试解法
      90%程序员写不出无BUG的二分查找程序?
      C/C++代码检视实例
      多核编程中的负载平衡难题
      多核编程中的锁竞争难题
      微软过桥问题与测试人员素养
      接口关系稳定原理探索
      接口设计定理
      模块分解原理与三权分立
      模块分解原理的探索
      测试驱动需求分析
      筑一座坝治好中国的沙漠
      存档
      软件项目交易
      订阅我的博客
      XML聚合  FeedSky
      订阅到鲜果
      订阅到Google
      订阅到抓虾
      订阅到BlogLines
      订阅到Yahoo
      订阅到GouGou
      订阅到飞鸽
      订阅到Rojo
      订阅到newsgator
      订阅到netvibes

      原创 接口设计定理收藏

      新一篇: 接口重构定理与Open-Close原则 | 旧一篇: 接口关系稳定原理探索

       
      接口设计定理
       
      相关文章链接: 模块分解原理探索
                              模块分原理与三权分立
                              接口关系原理探索
       
      前面几篇文章中讲过模块分解原理和接口关系稳定原理,这篇文章中将使用模块分解原理和接口关系稳定原理来推导一个重要的定理:接口设计定理。
      在讲解接口设计定理前,先看一下Robert C.Martin著的《敏捷软件开发》一书中提到的一个“开放-封闭”原则,意思是说“软件实体(模块、类、函数等)应该是可以扩展的,但是是不可修改的”。
      按照书中的意思,实际上应该把“开放-封闭”原则描述成“接口应该是可以扩展的,但是是不可修改的”,可能意思会更确切一些。
      许多人可能感兴趣的是如何设计接口才能满足“开放-封闭原则”。
      接口设计定理
      定义:把符合接口关系稳定原理的系统称为亚稳定系统,如果亚稳定系统中各个模块在发生变化时只需添加接口而不用修改已有的接口,那么称之为稳定系统
      根据稳定系统的定义,可以很容易得到以下推论:
      推论:稳定系统中的接口是满足“开放-封闭”原则的。
      当然满足“开放-封闭”原则的系统不一定是稳定系统,因为它不一定满足接口关系稳定原理。
      设计一个稳定系统成了构架设计的重要目标,下面给出接口设计定理的描述:
      接口设计定理:当系统中的每个模块的接口集合是它所属专业领域的最优接口集合的一个子集时,系统是稳定系统。
       
      当需求发生变化时,只需要将需求重新分解到各个专业模块里进行处理,由于每个专业模块已有接口集合都是所属专业领域的最优接口集合的一个子集,因此可以在整个专业领域的最优接口集合中找出对应的接口添加到已有的子集里使得新的问题得到解决,无需修改任何已有的接口,根据稳定系统的定义可以得出系统是稳定系统。
      根据接口设计定理,在设计模块的接口时,需要在模块所属的专业领域范围内来设计接口,然后从专业领域范围内的最优接口集合中选择一个能覆盖当前需求的最小接口子集就可以了。
      如何对整个专业领域设计最优接口集合呢?业界流行的“最小接口”和“人本接口”设计均属于最优的设计的一种。不过接口设计定理对设计人员的要求大大提高了,因为设计人员必须对系统中各个模块所属的不同专业领域都有非常全面的了解。
      最优接口集合设计还需要遵循软件安全性设计的一些原则,如“测试空间要尽量小且容易构造”,“设计空间要满足需求情况下尽可能的小”等。
      接口设计定理的意义
      接口设计定理的意义在于如果业界将各个专业领域的最优接口集合定义好的话,那么设计人员就可以利用已有的最优接口集合来选择子集所需要的子集。大大缩减设计人员进行接口设计的难度。
      不过现实情况中,许多专业领域都不成熟,无法对整个专业领域设计处最优接口集合,如果想要完全依赖接口设计定理来设计接口是很困难的,但是对已知成熟的专业领域,使用接口设计定理来设计接口是一个不错的选择。一般来说越上层的模块,接口设计的难度越大,而越下层的模块,接口设计的难度要低,因为下层模块通常都属于成熟的专业领域。
       
       

      发表于 @ 2007年04月28日 20:46:00|评论(loading...)|编辑

      新一篇: 接口重构定理与Open-Close原则 | 旧一篇: 接口关系稳定原理探索

      评论

      #wjliuyiqun 发表于2007-04-30 22:43:36  IP: 219.245.110.*
      总结的不错,辛苦了,具有参考性
      #ilexyang 发表于2007-10-26 09:29:03  IP: 221.6.17.*
      具有很好的参考,研究价值;
      但没有一定的coding经验,是没法看懂的
      发表评论  


      当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
      Csdn Blog version 3.1a
      Copyright © 周伟明