用组织分析框架看编程
前言
虽然我不参与政治,但是需要了解政治。我是程序员,政治是一种规则,编程也是一种规则,两者有相通性,可以触类旁通。编程其实就是组织设计,就是设定法律,通过思考时间复杂度与空间复杂度,选出自身情况上最优的方法。
管理学讲的计划,其实就是编程的算法;
管理学讲的决策,就是编程的判断算法,好比操作系统中的处理机调度,面对进程的调度,有四种调度算法,先来先服务(由提交时间决定)、短作业优先(由执行时间决定)、最高响应比优先(响应时间/执行时间)、优先级优先。这四种算法其实就是决策中的一种体现。我们过安检、新生入学、银行服务都有这样的一种决策;
管理学讲的组织,其实就是编程中的设计方案,讲究高内聚,低耦合;
管理学讲的控制就是程序中的异常处理。
文章目录
- 用组织分析框架看编程
- 前言
- 笔记
- 软件工程与管理学相通的地方
- 操作系统与管理学相通的地方
- 编程与管理学相通的地方
- 总结
笔记
其实一开始上管理学,我没有把管理学看得这么重,之前也根本不关心管理。当时虽然慢慢了解,我发现管理学和我大三学的软件工程十分相通。管理学可以应用于实际。
软件工程与管理学相通的地方
软件工程
软件危机:“已完成”的软件,不满足用户的需求,进度不能保障,开发成本难测;质量没有保证。
其实和管理的问题一样。
软件工程的定义是:将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护过程,以及对所选方法的研究。
和管理学的定义一样。
软件生命周期:1可行性研究、2需求分析、3设计、4编码、5测试、集成、维护阶段。6.软件
前三部分和管理学的计划设计一样。需求分析(分析目的)、可行性分析(分析可行性)、设计;
- 可行性研究的目的是:用最小的代价在尽可能短的时间内确定问题是否能够解决。
- 可行性研究的四大要素是:经济上可行,技术可行,法律允许、社会环境可行。
其实就是PEST分析
需求工程是指应用有效的技术和方法进行需求分析,确定客户需求,帮助分析人员理解问题,定义目标系统的外部特征的一门学科。需求工程中的主要活动有:需求获取、需求分析、需求规格说明、需求验证和需求变更管理。
其实和激励相关
软件设计的主要原则:模块独立性和信息隐藏。反映模块独立性有两个标准:内聚和耦合。内聚衡量一个模块内部各个元素彼此结合的紧密程度,耦合衡量模块之间彼此依赖的程度。
和组织设计相关
软件测试的定义:是为了发现错误而执行程序的过程,其目的在于以最少的时间和人力,系统地找出软件中潜在的各种错误和缺陷。
和控制相关
操作系统与管理学相通的地方
操作系统其实在编程中有十分重要的指导作用。有利于优化时间复杂性和空间复杂性。
在面对调度的时候(时间复杂性)
调度算法:先来先服务(由提交时间决定)、短作业优先(由执行时间决定)、最高响应比优先(响应时间/执行时间)、优先级优先
和管理的决策和相通,和现实问题的银行工作、政府工作一致。面对各种问题如何做出决策。
在面对存储的时候(空间复杂性)
置换算法:FIFO、OPT、LRU
连续分配方式:单一连续分配、固态分区法(区号、起始地址、大小)、动态分区法(最佳适应法)、动态可重定位分区分配;
其实就是把每一个空间用到极致。不过编程用算法实现,显示我们也有一样的思想。
编程与管理学相通的地方
编程太笼统,我们可以从编程基本功看管理学的妙处。数据结构、算法、设计模式。
总结
暂时写到这,这里面逻辑很多,暂时没有推敲。点到即止。