主营:PDM/PLM软件
发布时间:2013-09-23 07:15:51
项目管理的三层视域描述模型本节提出了一种独特的三层视域的项目管理描述模型,它分别从控制流、数据流和资源约束三个角度全面地描述了一个项目,描述模型结构可如图13-4所示。
图13-4项目管理的三层视域描述模型
项目数据流
项目数据流描述了项目内部各种相关的生产、库存、销售数据的流动和变化过程,是确定项目控制流的基础。目前存在的描述数据流的最常用工具是数据流程图(DFD)。数据流程图是一种结构化系统分析方法,它采用图示化的形式说明在一个系统中或系统的一个局部中,输入的数据是什么,输出的数据是什么,对数据进行怎样的转换和处理。数据流程图可以清晰地表达信息系统中的数据流程和信息流程,是描述企业业务流程的形象工具。
建立数据流程图时,一般采用自顶向下的结构化分解方法,首先用少数几个高度概括的处理过程描述整个系统的逻辑功能、数据流程及其与外界的数据交换,然后分别对其中的每个处理过程进行分解,建立下一层的数据流程图,直到最底层为止。
项目管理的设计思想
项目的生命周期
项目管理并不存在固定模式,本文提出的项目的生命周期也不能说是一个放之四海而皆准的管理模式。我们的目标也并不是想要寻找这样一种模式,而只是想提出一种大多数企业都适用的通用模式。这种出发点决定了PDM系统中采用的项目生命周期是一个较高层次上的管理模型,而不是一个细化到可以适合每一企业特点的专用模式。
PDM系统中采用的项目生命周期分以下五步,其控制流程可如图13-5所示。
.项目目标需求分析。项目是面向目标的,通常只有当项目目标确定后系统才考虑建立项目。但是项目的初始目标往往只是知道“要解决的问题是什么”,是不详细、不明确的。因此第一步首先要运用各种分析手段解决“确定项目必须具备哪些功能”的工作。
.项目子任务的分解和设计。这一步的工作是根据项目目标需求分析进行子模块划分,并规定每一子模块的任务、目标及相互依赖关系。
.项目子任务的规划和排序。这一步的工作是根据子任务的相互依赖关系生成项目的任务流程图。
.项目子任务的运行和调度。这一步的工作是对各子任务的运行进行有序调度,其最终目标是在不违反规划好的任务流程图的时序关系和任务资源约束前提下找到使项目具有最短开发周期的调度方法。
.项目目标评估。这一步的工作是对项目的最终完成情况有一个全面、清晰的了解,从而方便项目的今后改进。
图13-5 项目生命周期
任务的分解和设计
PDM系统中子任务分解的方法可采用经典的自顶向下的层次分解方法。任务的层次结构通常可分为三类:
联合结构。联合结构是应用最广泛的层次摸型,在联合结构中,每一任务结点被划分为若干个子任务结点,每一子任务结点都更详细定义了其父结点的一个任务子集。完父任务结点的前提是所有子任务结点都必须完成。
分离结构。另一种较普遍的层次模型是分离结构,与联合结构不同的是在分离结下,只需有一个子任务结点完成就可保证其父结点完成任务。
混合结构。混合结构是任务树内部同时具有联合结构和分离结构的一种层次模型,最简单的一种混合结构可以用“与或树”表示。另一种常用的混合联合结构和分离结构的技术是带优先级的层次分解技术。这种技术的特点是赋予子任务结点不同的优先级,具有高优先级的任务结点采用联合结构,而具有低优先级的任务结点则采用分离结构的处理模式。
PDM系统中的任务分解树以联合结构为主,在某些情况下也支持混合结构的任务层次分解。PDM系统提供了一个图示化的任务树编辑器,充分支持用户的子任务分解工作。任务树编辑器的基本设计思想有三点:
(1)子任务的完全层次分解。PDM中的任务划分严格遵循了逐步分解的层次结构,
上层只传递给下层一个任务目标,而对任务的设计细节、实现方法则不作过多的干涉只起修改协调的作用。
2)局部充分自治。下层设计者在完成上层任务目标和不违反全局资源约束的前提下可以充分发挥能动性.能够在局部范围内解决的问题决不提交到上层解决。
(3)支持分权和并行工作模式。PDM系统并不要求所有的任务分解工作都由一个人完成,系统允许任务负贵人将某些子任务的分解工作移交给另一些人完成,同时支持们的并行工作。
一个子任务分解的实例如图13-6所示。
图13-6子任务分解实例
子任务的规划
子任务规划工作的目的是生成项目的任务流程图。当子任务数量很多的情况下,由项目管理员人工规划各子任务的执行步骤是非常困难的。在PDM系统中,我们设计实现了一个基于图论的子任务规划算法,该算法不仅能自动地根据各子任务的依赖和时序关系排序,而且还能找到某些子任务的不合理分解,并提出优化建议。
算法的提出首先是基于这样的假设:项目管理员在分解和设计完项目所属的子任务后,往往己经明确了每一子任务的前序任务,即得到了任务的初始关系图,但还不能立即得出项目的任务流程图。当子任务数量不多的情况下,由前者转化为后者当然不难。但在项目任务复杂,子任务数量很多的情况下,人工完成这一工作则比较困难。
首先考虑最简单的情况,假设某一项日中存在三个子任务A、B、C,已知任务A无前序任务,任务B有前序任务A,任务C有前序任务B,图13-7表示了这一情况,由于图13-7初始状态下即是一个链式任务流程,故不需任何转换。
图13-7 图13-8
接着,对上述情况略作修改,假设该项目仍然在三个子任务A、B、C,且任务A和任务B的前序任务不变,任务C则有前序任务A、B,我们采用了半序网的拓扑排序法来解决这一问题,该拓扑排序法可描述如下:
算法13-1:半序网的拓扑排序法
步骤1.初始化一个队列ORDER;
步骤2.若半序网中无结点,返回ORDER队列:
步骤3.找出所有无子结点的结点(因为是半序网,所以保证了必然存在这样的结点):
步骤4.对于步骤3中找到的结点,做以下工作:
(1)将结点放入ORDER队列中:
(2)删除该结点以及半序网中与该结点相关的所有边。
步骤5.返回步骤2.
图13-9经过该算法转换后得到队列{A,B,C},该队列即可惟一转换为图13-7所示的链式任务流程。
以上考虑的都是串行任务流程的情况。假设如图13-9所示,某一项目中存在四个子任务A、B、C、D,已知任务A无前序任务,任务B有前序任务A,任务C有前序任务A,任务D则有前序任务A、B、C。显然在这种情况下任务B和C可以并行执行。我们的对策是修改上述的半序网的拓扑排序算法,在步骤4中引入优先权的概念,即如果步骤3找到了多个结点,则将它们赋予相同的优先权后存入队列ORDER中,图13-9经过该扩展拓扑排序算法处理后得到队列{A, (B、C), D},即B、C可以并行执行,该队列可惟一转换为图13-10所示的任务流程。
如果项目管理员的子任务分解工作完成得妥当的话,那么得到的初始任务关系图都是半序网,即其中不存在环。但是,在实际情况中,特别是在子任务数目非常巨大的情况下,其中初始任务关系图中有可能包含环。为此我们引入了强分支的搜索算法,可在初始关系图中隔离出环。该算法以基于图的深度优先搜索算法实现,它可描述为:
算法13-2:强分支搜索算法
步骤1.初始化队列ORDER1和ORDER2:
图13-9 图13-10
步骤2.从任意一个初始结点N开始对任务的初始关系图G进行深度优先搜索,在队列ORDER1中记录下所有被访问过的结点。深度优先搜索的递归过程可简单表示为:
.将当前结点加入一全局队列L中;
.寻找每一个不在队列L中的当前结点的后序结点;
.如果不存在这样的结点,过程返回,反之将每一个这样的结点作为当前结点递归进行深度优先搜索。
步骤3.将任务关系图G的每一条弧线的箭头颇倒,得到新的任务关系图G';
步骤4.从同一个初始结点N开始对任务关系图G'也进行深度优先搜索,将所有被访问过的结点都记录到队列ORDER2中;
步骤5.对两个队列ORDER1和ORDER2作交集,得到的就将是一个环.把这个环压缩成一个大结点,从而产生了一个新的任务关系图Gt:
步骤6.对图G,重复以上步骤,直到从任意结点开始的深度优先搜索都找不到这样的环后结束。
根据强分支搜索算法得到的环中各结点对应的子任务是相互依赖的。在 PDM系统的项目管理中不支持这种情况。因此当系统检侧到这样的环后,将提醒项目管理员手工消除这样的环,或者将这些子任务自动结合成为一个大的子任务。
结合强分支搜索算法和树的拓扑排序算法,PDM系统中任务流程图的自动生成算法如下:
算法13-3:任务流程图自动生成算法
步骤1.将各个子任务的相互依赖条件转换成任务初始关系图G:
步骤2.对图G采用寻找强分支的搜索算法.找出最小的环并予以隔离形成一个新的任务关系图G':
步骤3.重复步骤2直至任务关系图中不再存在环,从而形成了一个半序网;
步骤4.对该半序网调用扩展拓扑排序算法,得到一个带优先权的任务队列:
步骤5.将该队列转换成任务流程图.转换方法是:
.把具有同一优先权的所有子任务放到任务流程图的同一层次中:
.精简每一子任务的前序任务,只保留位于该子任务的前一层次的前序任务,删除其余的前序任务;
.加入有向边连接所有的前序任务和后序任务。经过该算法处理后,图13-11所示的任务初始关系图被自动转换为图13-12所示的任务流程图。
图13-11 任务初始关系图
图13-12 任务流程图
但是到目前为止,我们还没有考虑“或”分支任务的情况。对一个具有或关系前序任务的子任务来说,无法直接应用上述算法。假设一个任务结点T具有m个前序任务结点,其中有n个前序任务结点只需有一个完成便可激活该任务的执行。换句话说,这n个前序任务结点之间是“或”的关系,对此我们的解决策略是:
.首先将任务结点T分解为n个结点(T1,T2,…,Tn),每一结点均具有m-n 1个前序任务结点。将所有具有或关系前序任务的任务结点都经过此过程转换后就去除了任务关系图中的所有或分支:
.接着将经过上述变换得到的任务关系图应用算法13-3得到没有或分支子任务的任务流程图.由于不,T2,..., T,具有相同的后序任务结点,因此这些结点在经过算法13-3处理后应具有相同的优先权;
.重新合并T1,T2,...,Tn为一个统一的结点T,将T1,T2,....,Tn的前序结点的交集作为T的公共前序任务结点,差集之间则具有或关系,T同时具有与T1,T2,…Tn相同的后序任务结点,从而得到了或关系的任务流程图。
最后要指出,对于循环的任务结点,在PDM系统的任务流程图自动生成处理中将其视为一个结点。至于循环的次数、循环的结束条件等必须由项目管理员指定。
任务的调度
任务调度的目标,是在不违反规划好的任务流程图的时序关系和任务资源约束前提下,在最短的时间周期内完成高质量的项目。
关于项目任务调度的一个经典算法是关键路径法,它可以说是一切任务调度算法的基础。首先对其作一简单介绍。
项目关键路径上任务结点的完成情况对整个项目的生命周期起着至关重要的作用。对于项目管理员来说,对这些任务结点的完成情况应予以充分的注意和密切的监控。从另一个角度看,这些任务结点也就是决定该项目能否如期完成的瓶颈,应用了项目关键路径法后,对于一个复杂的工程项目,项目管理员不再需要面面俱到,而只需集中注意力于这些任务结点便可起到事半功倍的效果。
给定一个任务流程图,找到其中的关键路径的方法是图论的一个基本问题。关于这一问题的详细描述可见文献[卢开澄81][肖位枢92]。建立在关键路径法上的任务调度算法有EZ算法[Sarkar 89]、MCP算法、MD算法[Wu et al. 90]、ETF算法[Hwang et al. 89]、DLS算法[Sih et al. 93], DSC算法[Yang et al. 94]等。这些算法在进程调度、并行处理等领域得到了广泛的应用。但我们却不能直接将它们应用于PDM系统的项目管理模块中。
本文由:http://www.pdm.so 英泰PDM发布,转载请声明
免责声明:以上信息由会员自行提供,内容的真实性、准确性和合法性由发布会员负责,产品网对此不承担任何责任。产品网不涉及用户间因交易而产生的法律关系及法律纠纷, 纠纷由您自行协商解决。
风险提醒:本网站仅作为用户寻找交易对象,就货物和服务的交易进行协商,以及获取各类与贸易相关的服务信息的平台。为避免产生购买风险,建议您在购买相关产品前务必 确认供应商资质及产品质量。过低的价格、夸张的描述、私人银行账户等都有可能是虚假信息,请采购商谨慎对待,谨防欺诈,对于任何付款行为请您慎重抉择!如您遇到欺诈 等不诚信行为,请您立即与产品网联系,如查证属实,产品网会对该企业商铺做注销处理,但产品网不对您因此造成的损失承担责任!
联系:304108043@qq.com是处理侵权投诉的专用邮箱,在您的合法权益受到侵害时,欢迎您向该邮箱发送邮件,我们会在3个工作日内给您答复,感谢您对我们的关注与支持!
上海御云信息科技有限公司 电话: 传真: 联系人:
地址: 主营产品:PDM/PLM软件
Copyright © 2025 版权所有: 产品网
免责声明:以上所展示的信息由企业自行提供,内容的真实性、准确性和合法性由发布企业负责。产品网对此不承担任何保证责任。
您好,欢迎莅临,欢迎咨询...