模块分解原理与三权分立

news/2024/7/10 23:00:06 标签: 编程, 软件测试, 游戏, .net, Blog
<iframe align="top" marginwidth="0" marginheight="0" src="http://www.zealware.com/csdnblog01.html" frameborder="0" width="728" scrolling="no" height="90"></iframe>
模块分解原理与三权分立
相关文章链接: 模块分解原理探索
前一篇 模块分解原理探索的文章中谈到了模块需要按专业领域分解,怎么这篇文章的标题上突然冒出了三权分立,软件怎么和政治制度扯到一起去了?
表面看这两个东西好像是风牛马不及,但如果把软件系统和整个社会系统做一个类比的话,也许能看出一些端倪来。
在软件中,有需求,设计,编程,测试这几个大的核心专业领域,再来看三权分立,立法、司法、行政看起来似乎是三种权力,实际上立法主要是游戏规则设计,相当于软件中的设计领域,司法系统主要是问题定位和纠错的,类似于软件中的测试领域,行政主要是执行和实现,相当于软件中的编程领域。
三权分立表面上看是三种权力分立,但从模块分解原理来看,实际上是将三个不同专业领域分解出来成为三个对等的权力部门,我想这才是三权分立的真正伟大之处。
虽然三权分立的思想很伟大,但是也不是说它就没有问题,主要问题出在分解出来的专业领域只有三个,专业领域覆盖面不全面。后来孙中山先生提出了所谓的“五权分立”学说,分为行政、立法、司法、考试、弹劾五个权力机构,想进一步细化权力以弥补三权分立的不足之处,但不幸的是五权分立并没有完全符合模块分解原理,弹劾实际上属于纠错领域和司法属于同一领域,而考试则并不是和其他几个领域对等的领域,而是属于各个领域的公共子领域。
从前面社会系统和软件系统的类比中可以看出,三权分立缺乏对需求专业领域的覆盖,需求领域没有被单独分离出来,人们的需求没有得到专业化的处理,当政府没有按照人们的需求去做时,人们只能通过等极端低效的方式来进行表达自己的需求。其实相当于编码人员不按照需求规格来实现编程是同一个道理。我想这也是西方采用三权分立的国家也会经常发生问题的重要原因之一。
除了需求领域外,社会系统中其实还有其他一些领域,如公共服务领域(相当于软件的客户支持)等。目前行政系统中将公共服务领域和其他对等的领域混合在一起,所以行政系统成了最容易出问题的地方。当然需求、设计、测试、编程各个领域中也存在子领域分解的问题,同样需要按照模块分解原理来分解。
当然社会系统是复杂的,模块分解原理只能解决其中的一部分问题,即国家组织结构设计中的组织结构分解问题,并不能解决组织结构设计中所有的问题。
顺便提一下,可能有人想知道,社会系统中的权力相当于软件中的什么呢?其实软件中的接口就相当于社会系统中的权力。官僚性组织中之所以问题频生,没有设计合理的接口以及不按接口行事是其根本原因,特别是各个组织机构的首脑人物具有随意改动规则和制订制度的权力(可以看作可以做任何事情的超级接口),使得社会矛盾逐渐累积。这其实相当于软件编程人员不按高层设计制订的接口去实现、擅自改变接口是一回事。


Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=1585827



http://www.niftyadmin.cn/n/596580.html

相关文章

用c语言编写正态分布函数,C / C ++中的累积正态分布函数

这里给出的普通CDF的实现是单精度近似&#xff0c;其已经用double替换了float&#xff0c;因此仅精确到7或8个有效(十进制)数字。对于Hart的双精度近似的VB实现&#xff0c;请参见West对累积正态函数的更好近似的图2。编辑&#xff1a;我将West的实现转换为C &#xff1a;doubl…

mysql基本常用命令_MySQL常用命令(一)

Cmd提示框中的MySQL基础命令(一)命令&#xff1a;连接mysql服务器 mysql -h localhost -u root -p展示所有数据库 show databases;选择数据库 use database;展示所选数据下所有表 show tables;设定数据库编码 set names gbk;用SQL语言查询数据库select * from table;退出mysql服…

安装 PHP-Redis 模块

安装 PHP-Redis 模块https://github.com/phpredis/phpredis1.下载后上传到服务器解包 phpize #先使用phpize生成configure配置文件 ./configure --with-php-config/usr/local/php/bin/php-config #配置make #编译make install #安装安装完成之后&#xff0c;出现下面的…

mysql九九查询法_mysql日期查询法

话说有一文章表article&#xff0c;存储文章的添加文章的时间是add_time字段&#xff0c;该字段为int(5)类型的&#xff0c;现需要查询今天添加的文章总数并且按照时间从大到小排序&#xff0c;则查询语句如下&#xff1a; 0203 1 select * from article where date_format(fro…

C语言循环之空心梯形,循环-空心梯形

#include "stdio.h"int main(){int i, j, k, n, num, temp_num;scanf("%d %d", &n, &num);getchar();num num % 10;int width n*2 n-2; //宽度&#xff0c;字符数for (i 1; i < n; i){//前面空格部分for (j 1; j < (i-1)*2; j){printf(…

模块分解原理的探索

<iframe align"top" marginwidth"0" marginheight"0" src"http://www.zealware.com/csdnblog01.html" frameborder"0" width"728" scrolling"no" height"90"></iframe>模块分解原…

java 大并发 金额更新,线上账务系统余额并发更新问题记录,账务余额

线上账务系统余额并发更新问题记录&#xff0c;账务余额线上账务系统余额并发更新问题记录某电商平台&#xff0c;某天线上用户报bug说账户余额信息与交易流水对不上。可以认为是数据库并发更新问题&#xff0c;由此定位出具体原因&#xff0c;并给出解决方案。问题现象场景描述…

android实现多画面播放,Android实现炫酷播放效果

本文实例为大家分享了Android实现播放效果的具体代码&#xff0c;供大家参考&#xff0c;具体内容如下一、首先看效果二、实现原理使用贝塞尔曲线实现滑动效果&#xff0c;在使用属性动画实现水波纹效果&#xff0c;然后就能实现以上效果三、实现1、先封装动画框架&#xff0c;…