整体是混而为一的本体,是阳动阴静,内因外因,量变质变,有限无限的对立统一。整体是矛盾中的起伏平衡,是迷执中的当下明觉,是缺憾中的美丽和谐,是万物沉寂的一阳初动。整体时刻都在显现,只是被忽略了。
现代的软件工程同样不能缺少整体思维,否则将在日益复杂的需求面前作茧自缚。随着软件工程的需求越复杂,功能越庞大,代码的耦合度增加,软件的复杂度将成倍数增长,这是造成软件越来越难维护的原因,甚至成为软件的灾难。
显然统一开发模式(RUP)的用况描述以及它所驱动的分析模型、设计模型、测试用例、测试模型显得必不可少。用况描述通俗的说,就是在整个软件过程中详细记录在客户点击按钮等动作所触发的整个事件的发生序列,一直记录到软件系统返回给客户一个有意义的结果。
统一开发模式认为软件开发过程是个迭代的过程,体现的哲理是:事物是不断发展的,有着从量变到质变的过程。当编程语言由机器语言逐步演化成面向对象语言,当软件开发的管理模式由简单的模块管理进化到如今的以统一开发模式为参考的一系列管理标准。软件才开始以其丰富的形象化和高度的系统化进入哲学范畴。
对于枯燥的计算机语言来说,这是具有深远意义的进步。软件朝整体论跨进了一步,是非凡的进步,然而仍然有别于整体论。整体论认为,如果软件局部和开发过程符合圆满的软件整体,则局部和过程中就已经包含了结果的整体性。
简要的说,整体是一种状态,当苦思冥想无法让软件达到完美转而追求缺憾中的和谐完整,在转念的一刹那是整体。当代码杂乱无章设计肤浅粗糙而让人心烦意乱想离弃时却能凝神逸情坦然接受这一切而抽丝剥茧描述蕴含在代码中的思想,即使代码杂乱粗糙,在观念交替的一瞬间是整体。
当思维执着的一直想到山穷水尽而适时曲入柳暗花明,在曲直转折间的灵光一现是整体。本来没有绝对的曲直,曲直的混而为一是整体,就如阴阳动静转换的一刻是整体。
在软件开发过程中经常会有殚精极虑百思而不得的时候,越在这时,越容易将结果看的很重要。如果没有结果会认为前功尽弃,一无所获。这种观点与软件整体论背道而驰。整体论认为结果是发展着的,没有静止的结果,如果将结果看成跨越时间的成果,那么适度的不求甚解反而符合整体思想。
然而有一个基本点必须遵守,不求甚解必须以自圆其说为前提,否则叫不思进取。如果能真正做到自圆其说又何必苦求结果。在软件开发实践中,达不到预想的结果而不固执,将过程看成和结果一样重要,详细描述在此过程中的情景、思路、缺陷、程度、构想等信息,以至于能轻松过程再现。
这就是软件整体论所倡导的主要思想。而将整个软件开发过程管理好的最终结果往往是难题的圆满解决。因为整体论认为,整体的局部中包含着整体性,故完整的过程也孕育出圆满的结果。