标题：程序分析
简介
程序分析主要应用在程序优化、程序正确性验证等方面。相关技术包括类型系统、抽象解释、程序验证和模型检查等等。
程序分析是以某种语言书写的程序为对象，对其内部的运作流程进行分析。程序分析的目的主要有三点：一是通过程序内部各个模块之间的调用关系，整体上把握程序的运行流程，从而更好地理解程序，从中汲取有价值的内容。二是以系统优化为目的，通过对程序中关键函数的跟踪或者运行时信息的统计，找到系统性能的瓶颈，从而采取进一步行动对程序进行优化。最后一点，程序分析也有可能用于系统测试和程序调试中。当系统跟踪起来比较复杂，而某个BUG又比较难找时，可以通过一些特殊的数据构造一个测试用例，然后将分析到的函数调用关系和运行时实际的函数调用关系进行对比，从而找出错误代码的位置。
什么是程序分析
程序分析是对产品生产过程的工序状态进行记录、分析和改善的必要有效的IE手法，它是把工艺过程中的物流过程及人的工作流程以符号形式进行记录、设计的方法，通过它可以反映工序整体的状态，从而有效地掌握现有流程的问题点，并研究制定改善对策，以提高现有流程效率。 
这里特别强调的是程序分析的目的性，任何工作开始之前最为重要的是要抱有鲜明的目的，才能在工作中明确方向达到目标。因此我们要明确IE程序分析的目的是消除产品生产过程中的全部浪费与不合理，从而提高效率。所以加工、检查、停滞、搬运任何工序并不因为其存在而合理，衡量的标准是创造价值的合理，否则是浪费。由此看来除加工以外的任何过程都有浪费的嫌疑。掌握全部生产过程包括工艺过程、检验过程、运输过程的实际状态发现并去除过程浪费与不合理，是程序分析的主要目的和作用。 
程序分析的目的
程序分析的目的有如下几点： 
1、准确掌握工艺过程的整体状态 
工艺流程的顺序； 明确工序的总体关系； 各工序的作业时间确认； 发现总体工序不平衡的状态。 　2、发现工序问题点 
发现并改进产生浪费的工序； 发现工时消耗较多的工序，重排简化此工序； 减少停滞及闲余工序； 合并一些过于细分或重复的工作。 
程序分析的种类及图表
1、程序分析的种类 
程序分析包括：工艺程序分析；流程程序分析；布置与路线分析；闲余能量分析；操作时两手的移动分析。 
2、程序分析的图表 
进行程序分析时，应根据研究对象的不同而采用不同图表进行记录，如下图所示： 
程序分析的记录符号
实施的基本程序，一个十分重要的步骤是记录现行方法的全部事实。整个改进能否成功，主要取决于所记录事实的准确性，因为这是严格考查、分析和开发改进方法的基础。 
为了能方便、迅速、正确地表示任何工作的程序，美国机械工程师学会(ASME)将吉尔布雷斯设计出的40种符号加以综合制定出5种符号，1979年由美国制定为国家标准(ANSLYl5—1979)，以便以标准格式精确地记录详细信息。我国参考美国、日本等国标准，制定了自己的标准： 
这些程序分析记录符号在实际使用时还可根据具体情况灵活变换，设计出其它的派生符号，如： 
程序分析的技巧
掌握了记录符号和记录技术后，下一步是应用分析技术对记录的全部事实进行分析。程序分析的技巧具体包括的内容是“一个不忘，四大原则，五个方面和六大提问技术”。分别为： 
一个不忘——不忘动作经济原则； 四大原则——取消、合并、重排、简化； 五个方面——操作、运输、储存、检验、等待； 六大提问技术——对目的、方法、人物、时间、地点和原因进行提问。 　1、分析时的动作经济原则 
动作经济原则在程序分析时有极大的作用，应根据动作经济原则建立新方法并不断加以 改进。应用动作经济原则，可在同样或更少的花费下获得更多的产值。 
2、分析时的“ECRS”四大原则 
对现行的方案进行严格考核与分析的目的是为了建立新方法。在建立新方法时，要灵活运用下列四大原则。 
1) E(Eliminate)——取消。在进行“完成了什么”、“是否必要”及“为什么”等问题的提问中不能有满意答复者都属于不必要的，要给予取消，取消是改进的最佳方式。取消不必要的工序、操作或动作是不需要投资的一种改进，是改进的最高原则。 
2) C(Combine)——合并。对于无法取消而又必要者，看是否能合并，以达到省时简化的目的。如可合并一些工序或动作，或将由多人于不同地点从事的不同操作，改为由一人或一台设备完成。 
3) R(Rearrange)——重排。经过取消、合并后，可再根据“何人、何处、何时”三种提问进行重排，使其能有最佳的顺序，除去重复，办事有序。 
4) S(Simple)——简化。经过取消、合并、重排后的必要工作，就可考虑能否采用最简单的方法及设备，以节省人力、时间和费用。 
程序分析时通过“ECRS”四大原则，首先考虑取消不必要的工序、动作、操作；其次将某些工序或动作合并，以减少处理的手续；再次，是将工作台、机器以及储运处的布置重新调整，以减少搬运的距离。有时也许要变更操作或检验的顺序，以避免重复。最后是用最简单的设备、工具替代复杂的设备、工具，或用较简便、省力、省时的动作代替繁重的动作。 
3、分析时的五个方面 
由于记录是从操作、搬运、检验、储存和等待等五个方面进行的，所以分析也可以从这五个方面着手。 
1)操作分析。这是最重要的分析。它涉及到产品的设计。如产品设计有微小变动时，就很有可能改变整个制造过程；或通过操作分析省去某些工序，减少某些搬运；或合并某一工序；或将两处工序合二而一等。 
2)搬运分析。搬运问题需要考虑搬运的重量、距离及消耗时间。而运输问题应考虑运输方法和工具，这样可以减轻搬运工人的劳动强度和消耗的时间；合理安排厂区、车间或设备的位置，可以大大缩短运输的距离和时间。 
3)检验分析。检验的目的是剔除不合格的产品，应根据产品的功能和精度要求，选择合理适宜的检验方法及决定是否需要设计更好的工夹量具等。 
4)储存分析。应着重对仓库管理、物资供应计划和作业速度等进行检查分析。以保证材料及零件的及时供应，避免不必要的物料的积压。 
5)等待分析。等待应减至最低限度，要分析引起等待的原因，如等待是由设备造成的，则应从改进设备入手。 
实际分析时，应对以上五个方面按照提问技术逐一进行分析。然后采用“ECRS”四大原则进行处理，以寻求最佳、最经济合理的方法。 
4、分析时的六大提问 
为了使分析能得到最多的意见，而不致有任何遗漏，需要采用提问技术(即六大提问技术)依次进行提问。 
考察点
第一次提问
第二次提问
第三次提问 
目的
做了什么What
是否必要
有无其他更合适的对象 
原因
为何做Why
为什么要这样做
是否不需要做 
时间
何时做When
为何需要此时做
有无其他更合适的时间 
地点
何处做Where
为何需要此处做
有无其他更合适的地点 
人员
何人做Who
为何需要此人做
有无其他更合适的人 
方法
如何做How
为何需要这样做
有无其他更合适的方法与工具 
这种提问技术在国外又称6W技术，或5W1H技术。当进行程序分析时，以上问题必须有系统的一一询问，这种有系统的提问技巧仍是程序分析成功的基础，切不可有任何疏漏。上述的第一、第二次提问的目的在于弄清问题的现状，第三次提问在于研究和探讨改进的可能性。 
上述分析技巧，特别是“5W1H”技术、“ECRS”四大原则和动作经济原则，可在任何发现问题的场所使用。 
程序分析的实施及步骤

程序分析的实施1、程序分析的基本原则。尽可能取消不必要的工序；合并工序，减少搬运；安排最佳的顺序；使各工序尽可能经济化；找出最经济的移动方法；尽可能地减少在制品的储存。 
2、“ECRS”四大原则在工序、操作时应考虑的因素。必要的工序或操作；工作顺序的变更，设备的变更和更新；工厂、车间的布置或设备重新组合；操作、储存位置的改变；材料规格的重新订购，发挥操作者的个人技术特长。 
3、“ECRS”四大原则在搬运时应考虑的因素。取消不必要的操作；改变物品存放的场所或位置；改变工厂、车间布置；采用另一种搬运方法；重新制定工艺路线和工作顺序；重新进行产品设计；改变原材料或零部件的规格。 
4、等待时取消或缩短时间应考虑的因素。改变工作顺序、工厂、车间布置；改造设备或采用新设备。 
5、“ECRS”四大原则在检验时应考虑的因素。它们是否真的有必要?有何效果?有无重复性？别人做是否更适合？能否采用数理统计原理？ 
程序分析的步骤根据工作研究，程序分析大致可分为以下几个步骤。 
1、选择。选择所需研究的工作。 
2、记录。利用程序分析的图表对现行的方法全面记录。 
3、分析。采用“5W1H”提问技术，对所记录的事实进行逐项提问；并根据“ECRS”四大原则，对有关程序进行处理。 
4、建立。在上述基础上，建立最实用、最经济、最合理的新方法。 
5、实施。将所建立的新方法得以实现。 
6、维持。坚持规范及经常性的检查，维持标准方法不变。 
程序分析的注意事项
程序分析时有些需注意的地方，多加留意会更好地达到目的实现目标。 
1、注意明确区分分析对象是产品还是作业者。 
2、为达到改善目的，开始前首先明确分析的目的。 
3、最开始就要明确范围，不要遗漏问题。 
4、在现场与作业者和管理者共事分析。 
5、临时的工序流程变更是以最基本的主流程为基准进行分析。 
6、分析过程是思考改善方案。 
7、研讨改善方案时，以流程整体的改善为最优先考虑目标。 
程序分析的优缺点
1、程序分析的优点 
产品在流动的情况下被加工，什么样的工序都可以分析； 
与工序管理图对照易于分析； 
易于发现作业者的多余动作； 
作业者自已对作业方法的改善比较有效； 
彼此之间的时间关系及空闲时间清楚明了； 
人与机械的运转状态清楚明了。 
2、程序分析的缺点 
机械的分析可能应作业者的动作不规范而识别不到，以至于不能进行下一步工作； 
必须紧随作业者行动方可观察记录； 
彼此之间没有时间关系的情况下分析也没用； 
需要一定程度的时间精度要求。