Posted on 2005-12-27 01:22
canonical 阅读(736)
评论(0) 编辑 收藏 所属分类:
设计理论
实际观测到的结果是系统内在结构的外在表现,而软件开发是从需求分析开始,经历系统分析,设计并实现的过程,即从用户需求逆推出软件的结构。这种根据外在
表现求解内部结构的模型的过程,在数学上称为反问题(inverse
problem)。关于反问题,一个众所周知的难点在于解的不适定性。因为不同的结构可以有类似的外在表现,因而反问题的解是不稳定的。在一个既定的情况
下,我们按照某种粗略的外在度量标准,从反问题的众多近似解中选择了一个。但是当所需的外在表现发生微小变化后,我们第一次选择出来的结构可能无法适应这
一微扰,而我们再次求解出来的结构可能与原先的结构有着巨大的差别。因而原先选择的解在结构上是不稳定的。在数学上,我们称之为奇异解(singular
solution)。在数学上,在求解反问题的时候为了避免选择到奇异解,经常采用的技术手段就是类似于级列理论的所谓镇定方法。即我们提出一系列的模
型,对它们进行一维参数化。当参数较大时相当于对原有模型的一种近似,原有模型的细节被淹没在正定泛函的大范围结构中,整体呈现出一种简单的结构,而当参
数越来越小时,原有模型的细节被逐渐识别出来,整体模型逐渐复杂化,最终参数为0时恢复到原始情况。常见的模拟退火算法(simulated
annealing)就属于这一策略族。通过模型的连续性,我们建立了一个复杂模型与一个简单模型(因而物理意义明确)之间的一条连续的纽带,沿着这条可
退化的途径,我们才有可能回避奇异解,保证复杂模型的物理有效性。
在软件设计中,我所提出的级列设计思想正是这样一种渐进演化的设计思想。我们极力维护模型的可退化性,保证复杂的模型不至于锁定在错误的角落中。而基于模型的连续性,我们对于未来的发展进行外推才有了一定的根据。