盒式结构开发
未经允许,严禁转载本栏目内容
本文经许可转载自软件工程专家网www.21cmm.com,
未经CSDN许可,请勿随便转载,谢谢合作[url=http://www.21cmm.com/prelogin.asp?page=/bbs/index.asp?Type=D][/url]
"净室软件规范"描述了对系统或程序的两个功能性的观点。第一个基于外部行为(黑盒),第二个基于状态机(状态盒)。以下将描述第三个观点--用于实现状态盒并展示特定的外部行为的过程或算法(明盒)。
自顶向下的循环过程必须做出许多设计决定。通过此过程,一个复杂系统的最高层规范转变为在计算机上执行的代码体。盒式结构方法本身不做出设计决定,但设计者最好考虑整个解空间。解空间包括了所有可能的实现--好的、坏的、拙劣的,也有快速的和慢速的解,易于修正和维护的和难以维护的解,在一个情况下可被接受但在另一种情况下不可行的方案。所以设计决定必须考虑很多经常发生冲突的情况。
对行为的高层黑盒描述在特定需求下应惟一。在黑盒和反映行为的状态盒之间存在着一对多的关系。这里既有控制状态信息也有数据信息,在这两者之间还常常存在平衡。最小的控制状态信息可能可能使性能无法接受,最终导致设计含有过多的控制信息。同样,在表中存储的数据和按需求重新计算的数值之间也存在着平衡。
下图显示了一般的解空间,其中有一个惟一的黑盒和几个可能的状态盒,所有这些状态盒都反映了黑盒的行为。盒式结构强调了这样的关系,并且提醒设计者考虑那些与所设计的所有特性相关的状态盒。赞扬特定的状态盒会(暂时地)排除许多解和限制,但不会完全确定明盒选项。
在一个给定的状态盒和许多实现其功能的明盒或算法之间存在一对多的关系。同样,对明盒的选择会限制但不完全决定最终的解。如文中所述,明盒总是被定义为结构化的程序,其中可以包含更底层的黑盒。如果给定一个必须满足的清晰的规范,明盒中的每个黑盒就是惟一的了。这个逐步细化的过程产生了一个盒结构的分层结构图,如下图。
在一个设计过程中始终保持修正和评估的开放性是很重要的。设计者不应该忽视这样一个事实:他要考虑的是整个解空间,以及选择一个从最高层黑盒到最终解的路径。更好的思路冬天冬天在设计过程中出现,很少有例外。最开始的方案几乎不可能是最好的,因此与其让一个差的设计进行下去,不如在对差的设计做再分析后找出更好的方法。设计的过程可被看作是分析与选择--要做出一系列的选择,估计并可能重新考虑。
对选择的控制在很大程度上取决于结构。如果存在生产线结构,那么就会在解决方案中使用一些功能、状态和算法。设计者也应尽可能采取重新使用已有结构而不是重新开发盒式结构方法本身不创建结构和作出设计决定;这些任务应由设计者完成。然而了解整个解空间后,盒式结构有利于提高结构质量,在分析和决策后找出其他的可供选择的结构。