胡 卫
(中共中央党校哲学教研部,北京,100091)
社会·文化
工程学的顶层设计方法及其社会领域适用性
胡 卫
(中共中央党校哲学教研部,北京,100091)
工程学的顶层设计方法的通用原理主要有三个方面:在设计路线上,其主要采用自顶而下的设计路线;在传递机制上,主要依靠顶层向下传递信息流实现顶层驱动;在问题解决路径上,遵循分治求精的认识循环过程。这些工程学的通用原理,在跨领域应用于社会领域时,需要注意两个领域的差异,具体问题具体分析。
顶层设计;自顶向下;社会领域;适用性
顶层设计这一在工程技术领域经常使用的设计方法,当前在社会科学领域也得到越来越广泛的使用。特别是在十七届五中全会和十八届三中全会之后,“顶层设计”一词在中央领导人的重要讲话中频繁出现,学术界对于这一方法在社会领域应用的研究也日益深入。作为工程学方法,顶层设计在使用时有其特定的条件和规律,要准确地理解和应用这一方法,特别是在研究社会问题时跨领域使用该方法,就需要追根溯源,对工程学的顶层设计方法做系统梳理,把握其通用原理和应用规律,并对其在社会领域的适用性做具体分析。
目前,顶层设计在工程技术上主要应用于机械电子产品设计、软件编程与工程、电子政务、智慧城市、生物工程、航空和建筑大型系统工程等领域。虽然应用领域不同,顶层设计方法在这些不同的工程技术领域应用时,都使用了通用的范畴,遵循了相近的设计思路和技术路线。具体来说,这些通用原理表现为以下三个方面:自顶向下的设计路线、顶层驱动的传递机制、分治求精的循环过程。
在设计路线的方向上通常有两种主要路线,一种是自底向上(bottom-up),一种是自顶向下(top-down design)。[1]
自底向上的方法是由部分到整体的设计路线。先设计好大系统的各个子系统,如先设计一个产品的零部件,一个大型程序的子程序等,然后将这些子系统进行组合装配。在设计的过程中,各个子系统的设计存在相对的独立性,总体的设计意图不一定能够完整存在于每个子系统之前。各个子系统之间是何种关系,在设计时也不能清晰地说明,这导致子系统之间的关联性较弱。有可能在各个子系统设计完成后,在进行整体装配时,各个子系统相互不匹配,无法进行对接,这又要回过头再次对子系统进行设计调试,使各个子系统之间能够形成匹配。如此发现问题,修改设计,再发现,再修改,反复进行(见图1)。在子系统之间关联性较弱、相互匹配关系不强的条件下,自底向上的方法是比较适用的。在这种情况下,一个子系统的改变不会影响到其他与之关联较弱的子系统的原有设计,不需要为了配合一个子系统的改变而修改其他子系统的设计。
图1 自底向上的设计路线
自顶向下则是相反的过程,是由整体到部分的设计路线。“顶层设计”的“顶层”首先说明设计是从顶层开始,其路线是自顶向下,从整个系统的最高一层出发来分析、设计整个系统,它强调的是最高层这一高度。这与“自上而下”是有区别的。“顶”是最上面的一层,而不是其他层面,强调设计层面高度的唯一性,而自上而下的“上”却可能是多个层级中的其中一个,不一定是最高层级。
顶层设计的整体设计是围绕顶层展开的总体构想,要先确定总体思路、设计总体布局和各个子系统功能结构,然后进入子系统的设计。所有子系统和各个模块都完全地指向和围绕顶层的核心目标,并且遵循顶层所设定的统一标准和子系统联接关系。[2]由此就可产生顶层设计所预期的系统性效应。
在纵向上,自顶向下是一个按系统层级展开的过程。每一个子系统都是上一级系统的组成部分,这样在设计子系统时,首先要考虑子系统之间的约束和定位关系,在完成整体方案设计和结构关系设计之后,再分别对子系统进行详细设计(见图2)。这样就自然地解决了子系统与上一层级的系统以及子系统之间的对接问题,每一级子系统都可以自动地从上一级系统获取统一的设计信息和标准,设计者不需要将精力花在层级对接与匹配问题上,而是主要做好子系统的设计。
顶层设计既是从整个系统的结构、功能、层次、标准进行的全盘统筹考虑,又是把复杂抽象问题和大型问题进行分解,实现具体化、程式化的设计方法。可以把顶层设计看成是抽象意志转换为具体实现路线图的中介,是路线图的路线图,其设计过程是一个设计意图从抽象到具体,逐步细化、反复迭代的往复过程。在往复过程中,顶层设计可以很好地协调各种变化,各个子系统可以按照大系统通用的规则快速地进行布局的调整、互换、调用。[3]新的局部设计变化不会引起各个子系统之间的不协调,这样就避免了许多重复性的工作。
图2 自顶向下的设计路线
顶层设计的自顶向下是顶层驱动的过程,其实质是由顶层向下传递信息流的过程。这其中传递的信息流是顶层总体设计意图,它反映的是整个大系统的设计总目标,各个层级的子系统的布局、位置关系,各个子系统之间的关联关系,整个大系统的设计的基准,等等。这些信息以系统化的、通用可理解的信息形式向下贯彻驱动。
所谓驱动,就是系统的下层必须是按照上一层系统整体约束条件进行设计,每一层次的子系统只在本级具有局部设计权限,而无法更改上层设定的设计要求和约束条件。按这种方式层层传导,每个子系统的设计可以保持设计的相对独立和一定范围内的自由,又在设计中遵从顶层发出的总体设计信息。众多的子系统在设计和装配工作中参照同样的顶层设计信息,可以有序地并行展开设计,实现子系统间的协同工作。
例如,在产品设计中,自顶向下方法传递的重要信息就是设计数据,其实质是数据从顶部模型传递到底部模型的参数化过程。一些产品设计软件,如Pro/E提供了多种数据传递的方法,可以根据设计对象的不同特点来选择需要传递的数据信息。
这些数据往往设定的是全局性关系,通过主要参数和尺寸,如零部件之间的装配点、位置、放置关系、基准平面、坐标系、轴和点等信息,集中设定顶层的设计标准与产品配置信息。这些信息进一步勾画出设计思想的轮廓来。在设定好了之后,系统的顶层就可以控制整体装配的结构和尺寸,每个零件就能够按照这些参数装配起来,形成顶层驱动的自顶向下信息与数据的传递关系。这样的好处是设计者对外部参考的依赖大大减少,在加入新的子系统和对子系统进行装配时,只要按照最初的设定信息自动进行就可以了,不需要因为新的变化再去重新设定子系统之间的关系,也不容易出现装配抵触的情况,从而大大提高了整体装配的效率与可维护性。
这种类似的传递机制同样存在于信息系统的设计中。例如,在电子政务系统设计中得到广泛应用的架构方法。美国政府使用架构方法开发出包括参考模型及一系列管理工具和实施指南在内的联邦政府总体架构(Federal Enterprise Architecture,FEA)。[4]FEA就是美国政务信息系统的顶层设计,其中的参考模型是其实现顶层驱动的核心要素。通过这些参考模型可以方便地跨机构分析、识别政务信息系统的重复投资,识别部门间数字鸿沟,识别联邦机构跨部门的合作机会。这样在FEA下,各部门可以用一种通用且统一的方式对联邦总体架构的重要组成元素进行描述,从而在全联邦政府范围内实现顶层驱动,改善信息技术资源的管理和利用。
此后,英国、德国、加拿大、澳大利亚、日本、韩国等国家都相继制定了本国的电子政务总体架构,欧盟还制定了泛欧电子政务服务互操作架构(EIF)。[5]这些国家和国际组织建立架构的共同特点,都是以业务与数据为核心设定信息流动的最为必须的技术政策和规范,实现自顶层向下的驱动与信息传递。目前,各国政务领域的信息系统建设已经形成了共同的发展趋势,架构方法成为了一套被普遍应用的通用方法,该方法加强了数据交换和系统的通用性,使政府部门之间的数据资源得以有效共享。
顶层设计是一个由抽象理念到具体实践的分治求精的循环过程。分治求精思想最先由计算机编程理论系统地提出,现在已经是系统工程的内核方法论之一。[6]1969年,IBM的研究员、Pascal语言之父沃斯(Niklaus Wirth)系统地提出采用“逐步求精”的结构化编程方法进行大型程序的设计。[7]这种算法目前已经是程序设计中最常用的算法之一。
用一句话概括分治求精就是:自顶而下,分而治之,逐步求精。它的基本思路是分-治-合,即分而治之,各个击破。[8]
分,即先对最高层次中的问题进行定义、设计,将规模较大的或者复杂的问题按照由大到小,由粗到细,由表及里的顺序进行分解,把原问题化作若干个在规模上小于原问题,而在形式上和原问题又完全相同的相对独立的子问题,这种分析方法的基本点在于“分解”。
治,即分别解决第一步分解后的子问题。若分解后的子问题规模较小且求解容易则直接求解;如果子问题无法解开,将其中未解决的子问题作为一个子任务放到下一层次中去解决;如果还无法解开,进一步将子问题向下分解为子问题的子问题。如此,分解和解决可能不是一次完成,也可能不是一层分解就能完成。这样逐层、逐个地进行定义、设计,直到所有层次上的问题均可以解决,就能设计出整个层次结构。
合,即自下往上合并底层问题的解。由于在“分”和“治”的过程中,每往下一层的分解都逐次逼近问题的最小化底部,而这个底部的最小问题明显是直接简单可解的“原子问题”。这样底层可解性保证了它的上一层同类问题的可解性,而上一层同类问题的可解性又保证了再上层的可解性,由此保证了直达顶层原始问题的解决。因此,在“合”的阶段,解决了的最底层子问题的解,就可以直接合并为更大规模问题的解,更大规模问题的解再进一步向上一层,可以合并为更高一层的解。由此,自底向上找出原问题的解,得到整个问题的解决设计方案。
可以看出,分-治-合是一个自顶而下,又自底而上的反复循环过程,这个过程其实是一个认识的不断深化过程,是对总体设计意图的细化,是设计意图变成现实的过程。例如,在程序设计中,这种逐步求精过程,第一步编写的程序抽象程度最高,第二步编写的程序抽象程度则有所降低……最后一步编写的程序即为可执行程序。这样一种渐进过程,易于保证程序设计的正确性及验证其正确性。[9]逐步求精中的“逐步”,就是每前进一步都是一次分解;“求精”则是每次都较其前一步增加“少量”的细节。这样,在相邻两步之间就只有微小的变化,比较容易验证它们的内容是否等效。
在其他工程技术领域也有类似分治求精方法。例如,产品设计的顶层设计一般经过概念设计、参数化设计和详细设计三个阶段。[10]其设计过程也是一个由抽象到具体的渐进过程,是在顶层驱动信息的基础上,复制、修改、完善并最终完成整个设计的过程。[11]系统工程过程也采用类似的方法。在大型系统工程设计时,人们不可能一开始就对整个需要设计的系统有完整清晰的认识,所以,必须经过分析-实践(验证试验)-再分析-再实践(验证试验)的反复循环认识过程。因此,系统工程过程也是一个自顶层开始,通过逐步求精的循环,将设计意图转化为系统规范和相应的体系结构的问题解决过程。[12]
虽然顶层设计方法源自工程技术领域,但是许多工程技术问题并不是仅仅靠技术就能解决,而是与社会问题紧密地关联在一起,因此顶层设计方法就自然地延展到了社会领域。例如,在电子政务、智慧城市等社会管理信息系统中,顶层设计已经不完全是技术问题,技术和信息系统只是基础,在这背后需要进一步考虑的是怎样解决社会问题,以及如何能够更好地形成促进技术与社会问题相结合的制度安排。目前,顶层设计方法在这些领域已经形成了一套比较成熟的思路。
在与工程技术关联较少的社会领域,顶层设计方法虽然已经开始普遍使用,但是在应用时遇到不少问题。这是因为,虽然在社会领域的一些社会问题也可以看成是系统工程的问题,但是社会问题与工程技术问题有一个根本的区别:工程设计中的零部件、原材料、子程序是可以完全按照人的意志进行操控的,与之不同的是,社会最终是由有意识的人所组成的。因而,需要对社会领域使用顶层设计方法做具体分析。
在社会领域,顶层设计不是只有顶层管理者设计,而是按照自顶而下的设计顺序,各个层级都参与设计的过程。在产品和程序设计中,一个设计者完全可能包揽了自顶而下的各个设计层次。而在社会领域,每个层次的主体都具备主体性和主观能动性,他们总是直接或间接地参与到整个设计过程中,无法完全排除掉每个层次的主体的意志。因此,社会领域的顶层设计不可能是纯粹的完全由顶层管理者来设计,而是在顶层设计指导下,自顶而下的各个层级都参与其中的设计,是顶层和基层都参与的层层设计。[13]
顶层设计在社会领域还有一个驱动机制的问题。在工程技术领域,顶层驱动是比较容易实现的,通过程序设定、参数设置就可以从顶层对下层和底层形成较严格的约束关系,构成权限控制。在社会领域,顶层驱动的对象是有自主意识的人,没有好的驱动机制,顶层驱动不一定能够很好地实现,顶层驱动好不好就决定了执行好不好。社会领域的顶层驱动必须有完备的顶层驱动制度安排,通过严格的组织结构和运行规则来保障顶层设计意图能够真实完整地自顶层向底层驱动传递。因此,社会领域的顶层设计仅仅有了施工方案、时间表和路线图还远远不够。顶层驱动必须是源源不断地、强有力地、持续地驱动,才能将设计蓝图最终变成现实。
社会领域的顶层设计更加依赖自顶而下和自下而上的分治求精循环过程。在工程技术领域,顶层设计的验证和试错成本较低,通常可以通过软件调试和实验室的实验完成,如果设计出现问题,可以通过几次逐步求精的循环,渐进地找到满意的设计方案。但是在社会领域,顶层设计的验证和试错成本无法准确估量。毕竟社会领域顶层设计的对象和最终落实依靠的都是有意识的人。社会系统是极其复杂的巨系统,其任何一个子系统的复杂程度都要超过工程技术系统,有时甚至都无法去验证其设计是否完全正确合理。如果解决社会问题的实验是可控的,在未出现大的错误之前,及时调整设计,可以把错误控制在有限范围内。但是如果实验出现颠覆性错误,整个社会陷入不可控制的正反馈漩涡之中,其造成的后果将是灾难性的,其试错成本已经无法估量。
社会领域的顶层设计应当更加重视分治求精,通过渐进的进步来探索验证设计的正确性,通过“试点”形式的社会实验来逐步优化设计思路,直到对整个设计的认识已经完整地系统深化之后,再稳妥地在全社会推开,从而将试错成本控制在合理范围内。顶层设计无论如何也离不开“摸着石头过河”,而且是深度地依赖于“摸着石头过河”,两者不是相互排斥的关系。一个完整的顶层设计,必然是经过自顶而下,再自底而上的反复循环过程后,不断逐步优化成为成熟的设计。这个过程中,“摸着石头过河”本身就是顶层设计的一个重要组成部分和循环必经的环节,两者是一体两面的关系,缺一不可。
总之,通过上述分析,可以看出,源自工程技术领域的顶层设计方法已经扩展至诸多学科领域,并且有了许多应用,开始形成一些共同范畴、原则、程序,已经具备了方法论性质。
[1] 刘文剑,金天国.产品自顶向下设计的研究现状及发展方向[J].计算机集成制造系统,2002,(1):2.
[2] 于施洋,王璟璇,杨道玲,等.电子政务顶层设计:基本概念阐释[J].电子政务,2011,(8):2.
[3]丁洁,卢慧.基于Pro/Engineer的Top-Down设计[J].Science&Technology Information,2012,(34):290.
[4] 王璟璇,于施洋,杨道玲,等.电子政务顶层设计:FEA方法体系研究[J].电子政务,2011,(8):19.
[5] 赵斌,王姝.我国电子政务云框架服务体系研究与实践[J].信息化建设,2011,(4):35.
[6] 陈红涛,袁建华,赵滟.系统工程的昨天、今天和明天[C].中国系统工程学会第十八届学术年会论文集——A04系统工程方法论.2014.
[7] Niklaus Wirth.Program Development by Stepwise Refinement[J].Communications of the ACM,1971,14(4):221-227.
[8] 何坤金.分治算法的探讨及应用[J].福建电脑,2015,(4):90.
[9] 王仕奎,谭泽富,赖于树.工科基础专业课程的“自顶向下,逐步求精”教学法[J].中国科教创新导刊,2012,(10):111.
[10] 刘文剑,金天国.产品自顶向下设计的研究现状及发展方向[J].计算机集成制造系统,2002,(1):1.
[11] 崔琼瑶,齐从谦.基于参数化技术的自顶向下设计及其应用[J].同济大学学报(自然科学版),2002,30(9):1088.
[12] 郭宝柱.再谈系统工程方法[J].航天工业管理,2007,(5):20.
[13] 许耀桐.顶层设计内涵解读与首要任务分析[J].人民论坛,2012,(17):8.
(责任编辑 杜生权)
Engineering Top-down Design Method and Its Applicability in Social Field
HU Wei
(Department of Philosophy,Party School of the Central Committee of C.P.C,Beijing,100091,China)
There are three main aspects of engineering top-down design method.Top-down route is mainly used in respect of designing route,and delivery of information flow from the top down is mainly relied on to realize top driving in respect of delivery mechanism,and awareness cycling process of partition refinement is followed in terms of problem-solving route.When these engineering general principles are applied multidisciplinarily in the field of social sphere,attention should be payed to the difference of these two areas.Specific analysis is required at the time of application.
top-down design;from the top down;social area;applicability
N945
A
2095-2082(2016)04-0066-06
2016-07-06
2015年度国家社会科学基金项目(15BZX007)
胡 卫(1978—),男,湖南长沙人,中共中央党校哲学教研部副教授,管理学博士。