(管理科学与工程专业论文)软件开发项目进度管理模型构造与系统仿真.pdf_第1页
(管理科学与工程专业论文)软件开发项目进度管理模型构造与系统仿真.pdf_第2页
(管理科学与工程专业论文)软件开发项目进度管理模型构造与系统仿真.pdf_第3页
(管理科学与工程专业论文)软件开发项目进度管理模型构造与系统仿真.pdf_第4页
(管理科学与工程专业论文)软件开发项目进度管理模型构造与系统仿真.pdf_第5页
已阅读5页,还剩95页未读 继续免费阅读

(管理科学与工程专业论文)软件开发项目进度管理模型构造与系统仿真.pdf.pdf 免费下载

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件开发项目进度管理模型构造与系统仿真 摘要 软件开发项目进度管理是指在项目的生命周期中,为了确保能够 在规定的时间内以及有限的约束条件下完成软件开发工作,对项目活 动的日程安排及其执行情况所进行的管理过程。进度管理具体包括两 方面内容:进度计划的制定与进度计划的控制。进度计划与进度控制 方法是否科学决定了一个软件开发项目能否按时按量的完成。随着信 息技术的迅猛发展,现代软件开发项目在规模上、复杂度上成倍增长 的同时,对项目的周期、按时完工率以及成本也提出了更高的要求。 在竞争日益激烈的软件市场,一个项目的延期很可能会影响到企业的 市场份额。因此,为了使项目的周期更短、确定性和稳定性更高,在 指导项目实施的过程中,传统软件开发项目的进度管理无论是在理论 方法上,还是在技术工具上都已经难以满足需要。 本文综述了传统软件开发项目的进度管理方法,分析了传统方法 中的优缺点,并在此基础上提出了改进的方法和工具,以弥补传统方 法的不足之处。本文提出的进度管理模型是以关键链为核心,从而提 高项目进度计划的有效性和稳定性。关键链技术是高德拉特提出的用 于计划和管理项目的方法,其核心思想是考虑了项目的资源和人的行 为因素,并利用缓冲区对项目的进度进行控制。其著作中仅对关键链 技术的步骤进行了简单的描述,并没有详细阐述应用过程中的具体问 题。本文结合软件开发项目的特点,对关键链技术在单项目中的应用 北京邮l 乜人学颀+ l 学位论文 作了研究,首次提出了基于启发式算法的抢占式的计划编制方法,以 及适用于软件开发项目的缓冲区设置方法,并用c + + 实现了进度调度 和计算缓冲区的工具开发。在进度管理的计划控制部分,本文利用 e x c e l 设计了用于反馈项目执行情况、监控缓冲区使用情况的工具, 用来进行项目进度的管理控制工作。 本文利用计算机模拟软件对项目实施过程中的不确定性进行模 拟,并通过项目计划的稳定性和缓冲区的利用率等指标,对文中提出 的缓冲区设置方法的优化效果进行分析。通过与传统的剪切粘贴法、 根方差法进行横向比较,结果表明本文提出的缓冲区设置方法在保证 较高稳定性的前提下,具有较高的缓冲区利用率,对缩短整个项目的 工期起到了直接的正面作用。 关键字:软件开发项目,进度管理,关键链,进度编排,蒙特卡洛 i i 北京邮电大学硕二l :学位论文 s c h e d u l i n gm a n a g e m e n tm o d e lo f s o f t w a r ed e v e l o p m e n tp r o j e c ta n d s y s t e ms i m u l a t i o n a b s t r a c t s c h e d u l i n gm a n a g e m e n to fs o f t w a r ed e v e l o p m e n tp r o j e c ti st h em a n a g e m e n t p r o c e s st oi m p l e m e n ts o f t w a r eu n d e rr e s t r i c t i v ec o n d i t i o n sa n dr e q u i r e dt i m e f r a m e ,a s w e l la sm a n a g et h es c h e d u l ea n di m p l e m e n t a t i o nd e t a i l so ft h ep r o j e c ta c t i v i t i e si nt h e p r o j e c tl i f ec y c l e t h ep r o c e s so fs c h e d u l i n gm a n a g e m e n ti n c l u d e st w oa s p e c t s : p r o j e c tp l a n n i n ga n dp r o j e c ts c h e d u l em a n a g e m e n t s c i e n t i f i cp l a n n i n ga n ds c h e d u l e m a n a g e m e n td e t e r m i n e sw h e t h e ras o f t w a r ed e v e l o p m e n tp r o j e c tc a nm e e tt h et i m e a n dq u a l i t yr e q u i r e m e n t s w i t ht h er a p i dd e v e l o p m e n to fi n f o r m a t i o nt e c h n o l o g y ; m o d e r ns o f t w a r ed e v e l o p m e n tp r o j e c t sa u g m e n tb o t hi ns c a l ea n dc o m p l e x i t y , i nt h e m e a nt i m et h eb a r so np r o j e c tc y c l e , o nt i m ec o m p l e t i o nr a t e sa n dc o s ta r e h i g h e r i n a ni n c r e a s i n g l yc o m p e t i t i v es o f t - w a r em a r k e t ,p r o j e c td e l a yi s l i k e l yt oa f f e c tt h e e n t e r p r i s em a r k e t t h e r e f o r e ,i no r d e rt os h o r t e np r o j e c tc y c l ea n di n c r e a s es t a b i l i t y , t h et r a d i t i o n a ls o f t w a r ed e v e l o p m e n tm a n a g e m e n th a sb e e nd i f f i c u l tt om e e tt h e i r n e e d sb o t hi nt h e o r ya n dt h et e c h n i c a lt o o l sw h e ng u i d i n gt h ei m p l e m e n t a t i o no ft h e p r o j e c t t h i s p a p e rs u m m a r i z e s t h et r a d i t i o n a ls o f t w a r e d e v e l o p m e n tp r o j e c t s m a n a g e m e n tm e t h o d s ,a n a l y z e st h ea d v a n t a g e sa n dd i s a d v a n t a g e sa n dp r o v i d e sa s c h e d u l i n gm a n a g e m e n tm o d e lf o rs o f t w a r ed e v e l o p m e n tp r o j e c ti no r d e rt om a k eu p t h ed e f i c i e n c i e so ft h et r a d i t i o n a lm e t h o d s t h em o d e li sb a s e do nc r i t i c a lc h a i nt h e o r y a tt h ec o r e ,t h e r e b ye n h a n c i n gt h ee f f e c t i v e n e s sa n ds t a b i l i t yo fp r o j e c ts c h e d u l e c r i t i c a lc h a i nt h e o r yi sam e t h o do fp l a n n i n ga n dm a n a g i n gp r o j e c t st h a tp u t sm o r e e m p h a s i so nt h er e s o u r c e sr e q u i r e dt oe x e c u t ep r o j e c tt a s k sd e v e l o p e db ye l i y a h um g o l d r a t t h o w e v e r , h i sb o o ko n l yd e s c r i b e ss i m p l es t e p so ft h et e c h n o l o g y ;t h e r ei sn o e l a b o r a t i o no ns p e c i f i ci s s u e si nt h ep r o c e s so fa p p l y i n gi t t h r o u g ha n a l y z i n gt h e c r i t i c a l c h a i n sa p p l i c a t i o ni ns i n g l e p r o j e c ts c h e d u l em a n a g e m e n tc o n s i d e r i n gt h e c h a r a c t e r i s t i c so fs o f t w a r ed e v e l o p m e n tp r o j e c t s ,t h i sp a p e rd e v i s ean e w p r e e m p t i v e s c h e d u l i n gm e t h o db a s e do nh e u r i s t i ca l g o r i t h ma n dp r i o r i t yr u l e s ,a sw e l la sab u f f e r s e t u pm e t h o da n di t sc + + i m p l e m e n t a t i o n i nt h es e c t i o no fs c h e d u l em a n a g e m e n t t h i sp a p e ra l s od e s i g n sat o o lu s i n gm i c r o s o f te x c df o rt h ep u r p o s eo fp r o v i d i n g i i i 北京邮电火学硕:f :学位论文 f e e d b a c k0 1 1t h ep r o j e c ti m p l e m e n t a t i o nd e t a i l sa n dm o n i t o r i n gt h eb u f f e rz o n e i no r d e rt oa n a l y z et h ee f f e c to fc r i t i c a lc h a i ne s p e c i a l l yt h eb u f f e rs e t u pm e t h o d , t h ep a p e rs i m u l a t e st h eu n c e r t a i n t yo ft h ep r o j e c tu s i n gc o m p u t e rs i m u l a t i o ns o f t w a r e c o m p a r i n gt h er e s u l tw i t ht r a d i t i o n a lb u f f e rs e t u pm e t h o dl i k ec & pa n dr s ef r o m t w oa s p e c t s ,w ef i n do u tt h a tt h en e wb u f f e rs e t u pm e t h o dc a ni n c r e a s et h eb u f f e r u t i l i z a t i o nr a t ew h i l es t i l lm a i n t a i n sh i g hs t a b i l i t yw h i c hp l a y sad i r e c tp o s i t i v ee f f e c t i ns h o r t e n i n gt h ep r o j e c td u r a t i o n k e yw o r d s :s o f t w a r ed e v e l o p m e n tp r o j e c t ,s c h e d u l i n gm a n a g e m e n t ,c r i t i c a l c h a i n ,p r o j e c ts c h e d u l i n g ,m o n t ec a r l o 独创性( 或创新性) 声明 本人声明所呈交的论文是本人在导师指导下进行的研究工作及取得 的研究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以 外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得 北京邮电大学或其他教育机构的学位或证书而使用过的材料。与我一同工 作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示 了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名:习醯塑 日期: 关于论文使用授权的说明 学位论文作者完全了解北京邮电大学有关保留和使用学位论文的规 定,即:研究生在校攻读学位期间论文工作的知识产权单位属北京邮电大 学。学校有权保留并向国家有关部门或机构送交论文的复印件和磁盘,允 许学位论文被查阅和借阅:学校可以公布学位论文的全部或部分内容,可 以允许采用影印、缩印或其它复制手段保存、汇编学位论文。( 保密的学 位论文在解密后遵守此规定) 保密论文注释:本学位论文属于保密在一年解密后适用本授权书。非 保密论文注释:本学位论文不属于保密范围,适用本授权书。 本人签名:二基瓷乏一日期:二盟2 芦j l 导师签名:日期: 北京邮电大学硕七学位论文第1 页共9 5 页 1 1 研究背景 第一章绪论 自从“软件危机 出现以来,人们逐渐意识到管理在项目实施过程中的 重要性,并将项目管理的知识应用到软件开发项目当中,从而取得了良好的 效果。进度管理是项目管理的核心,包括进度计划的制定与控制。进度管理 通过对项目的分解,进度计划的编制,以及资源的平衡与优化来生成项目的 进度计划。同时,通过对项目进度计划的执行情况进行实时地跟踪与控制, 从而保证了项目进度计划的顺利完成。科学的进度管理是项目计划、执行、 跟踪与控制的基础,是项目成败的关键。然而,随着信息技术的迅猛发展, 现代软件开发项目在规模上、复杂度上成倍增长的同时,对项目的周期、按 时完工率以及成本也提出了更高的要求。在竞争日益激烈的软件市场,一个 项目的延期很可能会影响到企业的市场份额。因此,为了使项目的周期更短、 确定性和稳定性更高,在指导项目实旖的过程中,传统软件开发项目的进度 管理无论是在理论方法上,还是在技术工具上都已经难以满足需要。 1 1 1 国外现状 j o h nm c m a n u s 和t r e v o rw o o d h a r p e r 博士研究了1 9 9 8 2 0 0 5 年2 1 4 个信 息系统开发项目的实施情况,所选取的项目案例涉及整个欧盟中的多个行业 ( 见表1 1 ) ,通过与项目经理的不断沟通并实时跟踪项目的进展,最终得出 了一份很有价值的研究报告。他们在研究报告中指出,在所有的项目中,仅 有1 2 5 的项目是成功的,而项目延期是造成项目失败的主要原因之一【l j 。 据统计,在2 0 0 4 年,整个欧盟由于项目失败所造成的经济损失达到1 4 2 0 亿 欧元。 表1 - 1 调查数量及其行业 序号行业项目数量 1 制造业 4 3 2零售业3 6 3 金融服务业 3 3 4 运输业 2 7 5医疗卫生1 8 6 教育业 1 7 7 国防j l :业 1 3 8 建筑业 1 2 软件开发项目进度管理模型构造与系统仿真 北京邮电人学硕上学位论文第2 页共9 5 页 9物流9 1 0 农业 6 合计2 1 4 另外,两位博士还对信息系统生命周期各个阶段项目的完成情况做出了 总结,如表1 2 所示。表中最后一列的括号部分表示延期的项目占所有完成 的项目的比例,该比例呈上升趋势。可见,项目延期的问题在软件开发项目 中频繁出现,对传统的进度管理方法提出了新的挑战,已经成为一个亟待解 决的问题。 表1 - 2 项目取消、完成与延期情况 阶段取消的项目完成的项目延期的项目 可行性分析无2 1 4无 需求分析 32 l l无 设计 2 81 8 33 2 ( 1 7 5 ) 编码 1 51 6 85 7 ( 3 3 9 ) 测试41 6 45 7 ( 3 4 8 ) 集成 l 1 6 3 6 9 ( 4 2 3 ) 试运行无1 6 3 6 9 ( 4 2 3 ) 比例2 3 8 7 6 2 1 1 2 国内现状 在国内,通过观察我国c m m ( 能力成熟度模型) 成熟度等级的分布情 况,也可以间接发现国内软件开发项目实施过程中存在的管理上的不足。 c m m 是专门为软件工程设计的质量管理标准,其成熟度等级反映了软件企 业的软件过程能力【2 】。c m m 把软件开发过程的成熟度由低到高分为五级, 分别为初始级、可重复级、已定义级、已管理级和优化级【2 j 。图1 1 为我国 软件行业c m m 等级的分布情况: 软件开发项目进度管理模型构造与系统仿真 北京“电大学哦学位论女 嚣3 # 9 5 图卜1 中国软件企业洲等级分布情况 我国太部分的软件企业仍然处于c m m 2 级,该级别的特点是:存在基本 的软件项目的管理行为,设计和管理技术是基于相似产品中的经验,故称为 “可重复”。处在这一级的企业在软件开发过程中采取了一定的管理措施, 这些措施是实现一个完备管理过程所必不可缺少的第一步。典型的措施包括 建立了基本的项目管理来跟踪进度、费用和功能特征。然而,c m m 2 级的企 业仅仅是定义了管理的基本过程,并没有确定具体的执行步骤。因此,项目 在时日j 和成本方面超过预期日标的风险仍然很高。 根据现有文献”圾笔者的实践经验,本文认为导致软件开发项目不能按 进度要求完成的主要因素有以下三个方面: 1 ) 项目进度计划不够准确。进度计划是整个软件丌发生命周期的重要环 节,也是项目管理的重要方面之一。进度计划是跟踪和管理的重要基础。许 多项目失败就是由于缺乏准确的项目进度计划以及缺乏对突发性园素的考 虑,导致项目进度管理失去控制。 2 ) 开发过程缺乏有效的控制和管理。由于丌发过程缺乏有效的监督和控 制机制,造成软件开发各个阶段的进度管理工作失去控制;另外,对软件开 发生命周期中的不同阶段,也缺乏有针对性的管理与控制措施。 3 ) 现有项目进度编制方法在进行进度计划编制时,任务的优先级得不到 保证。软件产品质量的高低是通过共性指标和个性指标来衡量的。其性指标 足指满足基本需求的功能,也可以称为发布标准( r e l e a s e c r i t e r i a ) ,因此具 有较高的优先级。面个性指标通常是指满足用户个性化需求的扩展功能,优 先级较低。因此,在编制进度计划时,如果让具有高优先级的任务得到优先 执行,即使项目的实际工期超出了预期,只要软件产品达到了发布标准,仍 然可以发布软件产品并结束项目,将产品的扩展需求推迟到下一个项目来完 成。 数据来源于上海欣体念管理咨询有限公日咨询报告,c m m i n c h i n a 戢什开发日m 厦管4 模型构遗1 y 系统仿真 北京邮电人学硕:l 学位论文 第4 页共9 5 页 1 2 研究内容及方法 关键链技术是高德拉特提出的用于计划和管理项目的方法,其核心思想 是考虑了项目的资源和人的行为因素,并利用缓冲区对项目的进度进行控 制。它对于前两个主要影响因素,能够起到有效的缓解作用,其有效性已经 得到了许多学者和行业专家的支持和认可。因此,将关键链技术应用到软件 开发项目的进度管理中,并克服传统软件开发项目进度管理的不足,构造基 于关键链的软件开发项目进度管理模型,对于解决项目延期进而减少经济损 失有着十分重要的理论和实践意义。 本文的研究思路如下: 1 ) 综述并分析传统软件开发项目进度管理的方法,找到传统方法的不足 之处并提出改进意见。 2 ) 基于现有的进度计划编制方法,提出改进的基于启发式算法的抢占式 的进度计划编制方法,保证具有高优先级的任务能够优先执行。 3 ) 构建基于关键链的软件开发项目进度管理模型。 4 ) 针对软件开发项目实施过程中的不同阶段,提出相应的进度管理与控 制方法。 5 ) 应用模拟仿真技术对本文提出的软件开发项目进度管理模型进行模 拟,并对模拟结果进行分析。 2 1 项目管理 第二章软件开发项目基础理论 项目管理是一个管理学中的术语,项目管理是将知识、技能、工具和技 术应用于项目活动2 之中,以达到项目的要求。项目管理包括两个方面的内容, 首先,它是一种管理活动,通过有意识地按照项目的特点和规律,对项目进 行组织和管理;另外,项目管理也是一门学科,它以管理活动为基础,通过 总结管理活动中的经验和规律,逐渐形成了一套完整的管理体系。项目管理 最早出现在美国,它是随着建设和管理大型项目的需要而产生的。随着时间 的推移,更多的指导方法被发明出来,这些方法可以用于形式上精确地说明 应该如何对项目进行管理。这些方法包括项目管理知识体系( p m b o k ) 、个 体软件过程( p s p ) 、i b m 全球项目管理方法( w w p m m ) 和p r i n c 2 方法。 这些技术力图把项目小组所需的活动进行标准化,使项目更容易管理和跟 2 项目活动也可以简称为活动、任务或工序,后文将不作区分。 软件开发项目进度管理模型构造与系统仿真 北京邮电入学硕士学位论文第5 页共9 5 页 踪。 项目管理的方法一般分为传统项目管理方法和敏捷项目管理方法。传统 项目管理方法需要识别一系列需要完成的步骤,项目的生命周期被分为五个 图2 - 1 项目生命周期的五个过程 项目管理贯穿于项目的整个生命周期,通过监督和控制项目的时间、成 本、质量、范围和风险对整个项目进行管理。 相对于传统的项目管理方法而言,敏捷项目管理方法是一种轻量级的项 目管理方法。敏捷项目管理方法的支持者认为传统项目管理方法大多数适合 于大规模、一次性的项目,所以一些小型项目如果使用这种复杂的模型在许 多情况下会导致不必要的代价和低可操作性。敏捷项目管理方法包括软件开 发中的极限编程方法、s e r u m 技术等。 2 2 软件开发项目管理 2 2 1 软件及其特点 计算机软件或简称软件,是运行在计算机系统上并完成特定任务的一系 列按照特定顺序组织的数据和指令的集合。一般来讲软件分为应用软件、系 统软件和中间件。其中系统软件为计算机使用提供最基本的功能,但是不针 对某一特定领域,如操作系统。而应用软件则j 下好相反,不同的应用软件根 据用户或所服务的领域提供不同的功能,如微软的o f f i c e 。中间件处于系统 软件和应用软件之间,常用于分布式环境中,为分布式系统中的各组件提供 服务,如w e b 服务器软件等。 软件与传统的工业产品不同。工业产品在设计好之后,主要的成本是原 材料成本、生产过程中的开销,如手机的成本在于其外壳的制造,内部控制 电路和屏幕等等。而软件的成本主要体现在设计和实现的成本,以及软件发 软件开发项目进度管理模型构造与系统仿真 北京邮电人学硕j :学位论文第6 页共9 5 页 布后的维护成本,在生产线上的成本很低。企业往往以光盘及网站下载的形 式销售其软件产品,而一张光盘的成本仅有几毛钱而已。另外,工业产品会 随着使用年限的增长而发生磨损、报废,但软件在使用过程中不会有任何磨 损。 软件是一种特殊的产品,人们通常只看到的是它的载体,而真正有意义 的是载体上的信息。因此,软件有其独特的地方,其特点可概括为: 表2 - 1 软件的特点及其描述 特点描述 软件是被开发或设计的,而不是传统意义上 软件属于逻辑产品,是人类脑力劳动的结品。 被制造的相比于传统的由机器制造的产品,软件是由 开发人员编写的代码和文档。 人力是软件开发的主要资源 软件开发项目通常需要大量的系统架构师、 分析师、开发人员和测试人员,其生产过程 以人为主。 软件可复崩软件产品主要是文档和代码,具有一次生产 并可多次使用的特点,不同于传统行业。例 如,汽车的底盘,在完成装配后就不能再利 用,而软件的部分代码或构件,可以直接通 过拷贝并编译后,重复利用。 软件是一个复杂的产品软件的复杂性主要体现在其逻辑的复杂性, 一个大型的软件通常需要包括大量的文档和 上千万的代码,如此庞大的数据量,即使是 项目的参与者也不可能了解项目的全部内 容。 2 2 2 软件危机 计算机系统是由硬件和软件组成。硬件是软件赖以生存的基础设施,而 软件才是真正体现应用的部分,是实现计算和应用的根本手段。硬件和软件 的相互依赖、相互促进,不断推动计算机技术的发展。在计算机系统发展的 不同阶段,人们对软件的认识程度也不断的上升。迄今为止,计算机系统已 经经历了四个不同的发展阶段【5 j 。 1 9 4 6 年,随着具有里程碑意义的e n i a c 机的问世,软件行业开始在美 国和欧洲的实验室出现。6 0 年代中期以前的这段时期,是计算机系统发展的 早期时代。在这个时期硬件的运算速度越来越快、价格越来越低的新型计算 机不断涌现,软件却是为每个具体应用而专门编写的,大多数人认为软件开 发是无需预先计划的事情。这时的软件实际上就是规模较小的程序,编写起 来相当容易,也没有什么系统化的方法,对软件的开发过程更没有进行任何 管理。在这种环境下,对软件的设计仅仅是开发人员头脑中隐含进行的一个 模糊的过程,除了程序文件以外,并没有详细的开发文档资料保存下来。 软件开发项日进度管理模型构造与系统仿真 北京邮电大学硕上学位论文 第7 页共9 5 页 6 0 年代中期到7 0 年代中期,多任务、多用户系统引入了人机交互的新 概念,开创了计算机应用的新天地。这个时期的一个重要特征就是出现了“软 件作坊 ,即产品软件得到了广泛的应用。然而,“软件作坊仍然沿用了早 期个体化开发的方法。随着计算机应用的日益普及,软件数量急剧膨胀,出 现了越来越多的问题。比如,修正程序运行时发现的b u g ;修改程序以满足 用户需求的改变;硬件或操作系统升级后,修改程序使其适应新的环境等。 上述种种工作,正以令人吃惊的速度耗费资源。“软件危机一就这样开始出 现了。1 9 6 8 年n t a o ( 北大西洋公约组织) 会议上,“软件工程的概念首 次被提出,一门新兴的工程学科也就此诞生。 7 0 年代中期到8 0 年代末,出现了微处理器,而且微处理器得到了广泛 的应用。以微处理器为核心的“智能 产品随处可见,其中最重要的智能产 品是个人计算机。这期间,局域网、广域网、宽带数字通信以及对实时数据 访问需求量的增加,都对软件开发者提出了更高的要求。 9 0 年代,计算机系统的发展已经不再看重单台计算机和程序,而是硬件 和软件的综合效果。由复杂系统控制的强大服务器及局域网、广域网,与先 进的应用软件相结合,已成为主流。计算机体系结构已经迅速从集中的主机 环境转变为分布的客户机服务器( 浏览器服务器) 环境。世界范围的互联 网络为人们进行广泛交流和资源的充分共享提供了条件。 在计算机系统的发展过程中,软件变得越来越复杂,开发软件的难度也 越来越大,许多严重的问题不断地涌现。软件危机是指在计算机软件的开发 和维护过程中所遇到的这一系列问题。这些问题不仅仅是异常的软件才具有 的,而是几乎所有的软件都或多或少的存在一些问题。具体来说,软件危机 主要表现为以下几个方面:对软件开发成本和进度的估计常常很不准确;用 户经常认为已完成的软件系统不能满足需要;软件产品的质量往往得不到保 障;软件常常是不可维护的;软件通常没有适当的文档资料;软件成本在计 算机系统总成本中所占的比例逐年上升;软件开发生产率提高的速度,既跟 不上硬件的发展速度,也远远跟不上计算机应用迅速普及与深入的速度。 2 2 3 软件开发项目管理及特点 随着时间的推移,软件的复杂程度和规模不断的扩大,个人化的作坊式 开发方式已经不能满足发展的需要。为了应对软件危机、提高软件项目的成 功率,各软件企业都在积极地将软件开发项目管理引入到开发活动中,对软 件的生产过程进行科学有效地管理。 软件开发项目管理是指为了使软件项目能够按照预定的成本、进度和质 量顺利完成,而对成本、人员、质量、风险进行分析和管理。现代软件开发 项目管理还具有一些新的含义,即有利于将企业开发人员的个人开发能力转 化为整个企业的开发能力,企业的开发能力越高,表明企业的软件生产越趋 向于成熟。 软件开发项目进度管理模型构造与系统仿真 北京邮电大学硕: = 学位论文 第8 页共9 5 页 软件开发项目不同于一般的工程项目,它区别于其它项目的本质是:在 软件项目中,人是主要因素,人的脑力劳动能够得到最大潜能的发挥和挖掘。 另外,由于软件产品的特殊性,与其它项目的区别可以归纳为: 以客户为中心的实现理念。软件开发项目运作的宗旨是为了提高客户满 意度。客户满意度是衡量软件产品质量的根本指标,并通过共性指标和个性 指标来衡量软件质量的高低。共性指标是指满足基础的、能够支持系统整体 功能的功能和性能指标;个性化指标则是软件产品追求的最高境界,即一个 软件产品能够适应各类不同使用习惯、不同观点的用户的使用,这也是软件 实现的难点,同时也是软件产品在竞争中取胜的重要因素之一。 不确定性。传统的工程项目,项目的活动通常是以机械方式完成的,任 务通过预先编制的指令按部就班地完成,只要机器不发生故障,就可以在规 定时间内完成任务。然而,软件开发项目是一个以人为主要资源的项目,进 行系统开发的人力密集的活动不能像纯机械的方式那样看待。人与机器的最 大区别就是:人具有主观能动性。因此,软件开发项目较传统的工程项目具 有更大的不确定性。 需要大量的复合型人才。软件开发项目是具有高科技含量的项目,需要 大量的掌握现代管理知识、信息技术和计算机技术的高科技人才的参与,项 目的准入门槛很高,而且相关知识的学习曲线也较长。因此,对于软件开发 项目的管理,需要现代化的管理手段和沟通方式,其它实体项目的传统管理 方法很难满足软件开发项目的需求。 软件的多次完善性。任何一个软件系统或产品,都不可能是一次完成并 永久使用的。面对信息技术的高速发展、软、硬件都在不断地更新。发布的 软件产品也可能因为硬件或基础软件( 如操作系统) 的升级,而无法正常使 用。因此,软件产品是一个不断完善、不断改进的过程性产品。许多企业也 意识到这一点,在产品发布后,不断收集用户的反馈并对软件进行修改和完 善。总而言之,软件开发项目的周期可能非常灵活,对于升级和需要改进的 软件产品,其项目周期可能较短,而对于从零开始的项目,项目周期可能很 长。因此,为了应付软件开发项目规模的多样性,许多重量型和轻量型的项 目管理方法也不断被提出。 项目管理理论是一种通用的管理方法,对项目的类型没有明确的定义。 为了使项目管理理论能够合理的应用到软件开发项目中,才有了软件开发项 目管理理论的出现,它实际上是传统项目管理理论的继承和扩充。 2 3 软件开发项目的生命周期 软件开发项目的生命周期是指软件开发项目从立项到结束的整个过程 以及过程中的各个阶段。生命周期的正确划分,是执行进度管理的前提。首 先,对项目执行情况的管理和控制需要持续项目的全部生命周期;其次,在 软件开发项目进度管理模型构造与系统仿真 北京邮电大学硕上学位论文第9 页共9 5 页 生命周期的各个不同阶段,进度管理的内容也有所不同。在软件开发过程中, 根据所采用的开发模型不同,其生命周期也不尽相同。然而,通过提取共性 特征并结合多年的行业经验,文献【6 】提出了般性的软件开发生命周期模型, 即全生命周期模型。该模型是软件开发全过程中活动和任务的框架,是软件 开发项目管理工作的基础。在了解软件开发项目全生命周期之前,首先回顾 一下经典的软件开发模型及其管理过程。 2 3 1 开发模型 软件开发模型是为了获得高质量软件所需要完成的一系列任务的框架, 并规定了完成各项任务的工作步骤。在完成开发任务时必须进行一些开发活 动,并且使用适当的资源( 人员、设备、工具等) ,在开发结束时将把输入 的软件需求转化为软件产品。在软件开发项目的实施过程中,选择有效的开 发模型对项目的成功( 在规定时间内,高质量的完成项目目标,甚至提前完 成) 有很大的影响。目前,比较典型的软件开发模型包括:瀑布模型、增量 模型和螺旋模型。 瀑布模型 瀑布模型是w i n s t o nw r o y c e 于1 9 7 0 年提出的软件开发模型,该模型 是2 0 世纪8 0 年代之前被广泛使用的开发模型,也是其它开发模型的基础。 瀑布模型规定软件的开发过程由一系列顺序执行的阶段组成,各阶段的活动 依次是:需求分析、系统设计、系统构造( 编码过程) 、系统集成、测试、 安装和维护,如图2 2 所示。传统的瀑布模型中各阶段的活动从顶向下按阶 段逐级执行,如同瀑布逐级下落,而且各个阶段在结束前,还需要对本阶段 的工作进行评审,以利于尽早发现问题。然而,传统的瀑布模型过于理想化, 在实际应用时通常采用带反馈环的瀑布模型( 图2 2 中的虚线箭头部分) ,如 果后面阶段在执行过程中发现前面阶段的错误,需要返回前面阶段修改错 误,犹如瀑布下落时在各个层级上浅起的水花。 软件开发项目进度管理模型构造与系统仿真 北京邮l 【i 人学硕1 :学位论文第l o 页共9 5 页 图2 - 2 瀑布开发模型 瀑布模型的优点包括:可强迫开发人员采用规范的方法( 例如,结构化 技术) 进行开发和设计;瀑布模型严格规定了每个阶段必须提交的文档,方 便在必要时进行查阅;各阶段的工作都要经过评审,从而保证了阶段成果的 正确性。 瀑布模型为软件开发与维护提供了一种有效的项目管理模式。然而,在 实际应用中各阶段的关系未必是简单的线性关系,从而暴露出以下缺点:由 于各阶段按顺序执行,用户只有在软件测试完成后,才能看到软件的实际运 行效果。因此,在开发过程中对用户需求理解的偏差,只有在后期才能发现, 如果不能满足需求,返工的成本将会很高。另外,瀑布模型假设软件是一次 性开发出来的。随着软件变得越来越复杂,软件产品可能需要经过不断地修 改和完善,才能最终得到用户的认可。 增量模型 增量模型也称为演化模型,如图2 3 所示。使用增量模型开发软件时, 软件产品被作为一系列的增量构件来设计、编码、集成和测试。每个构件由 多个相互作用的模块构成,并完成特定的功能。在确定增量构件时,要根据 软件产品的特点和开发人员的习惯分解,使构件的规模适中,规模过大或过 小都不好。另外,分解时唯一必须遵守的约束条件是:当把新的构件集成到 现有软件产品中时,所形成的产品必须是可以测试的。 软件开发项目进度管理模型构造与系统仿真 北京邮电大学硕士学位论文第1 1 页共9 5 页 图2 - 3 增量开发模型 采用前面提到的瀑布模型开发软件时,目标是一次就把一个满足客户所 有需求的产品提交给用户。增量模型则与之相反,它每次只提交一个仅满足 客户需求的一个子集的可运行的产品,分批地向用户提交产品。因此,增量 模型能够在较短时间内向用户提交具备一定功能的产品,并逐步增加产品功 能,用户在整个过程中可以有较充裕的时间学习和适应新产品,从而减少一 个全新软件可能给用户带来的冲击。 使用增量模型的难点是,在把每个新的增量构件集成到现有软件体系结 构中时,必须不破坏原来已经开发的产品,即现有的增量构件之间能够无缝 对接并协调工作。因此,在进行体系结构的设计时,要保证体系结构的开放 性,向现有产品中加入新构件的过程必须简单,从而加大了设计阶段的工作 量和难度。但是,从长远利益来讲,具有开放性的体系结构的软件,其可维 护性较高,在设计阶段多付出的劳动将在维护阶段获得回报。 螺旋模型 螺旋模型是将瀑布模型和增量模型相结合,并增加了风险分析机制而建 立的一种开发模型。该模型适合于大型的软件开发项目,它将整个项目划分 为制定计划、风险分析、实施开发以及客户评估四类活动,分别对应笛卡儿 坐标的四个象限,如图2 - 4 所示。 软件开发项目进度管理模型构造与系统仿真 北京邮 b 人学硕上学位论文第1 2 页共9 5 页 制定计划 :累积费用 一一一、 各步偷进度亢险分析 图2 - 4 螺旋开发模型 图2 - 4 中,纵坐标的长度表示当前累积的开发费用,螺旋线旋转过的角 度表示开发进度。螺旋线的每个周期对应于一个开发阶段。左上象限的任务 是,确定阶段目标、为完成这些目标选择方案及设定相关的约束条件。接下 来,进入下一阶段( 右上象限) ,从风险角度分析上一步的工作结果,努力 排除各种潜在风险,通常采用原型法来规避风险。如果风险很低或可以排除, 则启动下一个步骤( 右下象限) ,这个步骤中的工作相当于瀑布模型中所需 要完成的全部工作。最后是客户评价阶段,其主要工作是和客户一起评价工 作成果,并开始计划下一个阶段的工作。 螺旋模型的优点是:阶段性特征,使开发人员和系统用户对每一个阶段 的工作情况均有所了解;风险驱动,每一个阶段都要分析并排除潜在的风险。 如果风险不能排除,则停止开发工作或大幅度地削减项目规模,从而避免了 不必要的浪费。 2 3 2 软件开发项目的生命周期 软件开发项目的生命周期取决于项目所采用的开发( 过程) 模型。瀑布 模型是最早出现的模型,它将开发过程分为一系列的顺序执行的阶段,是一 种线性的思维模式。人们在解决复杂问题的时候,最简单的方法是将复杂问 题分解成一些简单问题并按顺序解决。因此,之后出现的一些开发模型,或 软件开发项目进度管理模型构造与系统仿真 北京邮t b 大学硕上学位论文 第1 3 页共9 5 页 多或少会有瀑布模型的影子,即模型本身也具备一定的线性特征。例如,增 量模型的每一个增量构件的开发过程都体现了瀑布模型的思想,一系列的增 量构件也是按一定顺序线性地完成。螺旋模型的开发实施过程( 笛卡尔坐标 的右下象限) 实际上是纯粹的瀑布模型,而且螺旋的周期性特征也暗含了一 定的线性特征。因此,一般以瀑布模型为基础来定义软件开发项目的生命周 期,这种生命周期模型是一种抽象的、与开发模型无关的生命周期模型,如 文献f 6 】中提出的全生命周期模型就是这样一种模型。 图2 5 全生命周期模型 软件开发项目的全生命周期模型将软件开发的生命周期分为四个相关 的阶段:立项阶段、软件设计阶段、软件实现阶段和项目的收尾阶段。各个 阶段还可继续包含若干个子任务。例如,软件实现阶段还需要完成软件编码、 测试和试运行等任务。阶段之间或子任务之间存在着线性、并行和反馈三种 关系。阶段与阶段之间是一种顺序执行的关系,每一个阶段的成果都是下一 个阶段的输入信息。如果某个阶段开始时,发现上一阶段的输出信息不能满 足需求,则要重新执行上一阶段的任务,即阶段问的反馈。在进入某阶段后, 阶段内各子任务之间可能会以线性、并行的方式执行。例如,开发人员在编 写一部分代码后,测试人员就可以帮助做单元测试或手动测试的工作,开发 和测试并行执行。如果某个子任务发现了其它任务的工作结果出现问题,如 测试人员发现代码存在漏洞,则需要反馈给开发人员,由开发人员重新编写 相应代码,从而修复问题代码。 软件开发项目进度管理模型构造与系统仿真 北京邮l 乜人学硕一l :学位论文 第1 4 页共9 5 页 软件开发项目的全生命周期是一种开发模型独立( d e v e l o p m e n tm o d e l i n d e p e n d e n t ) 的生命周期模型,其好处是可以在不考虑具体开发模型的基础 上,对软件开发项目进行一般性的研究,并得出一些具有指导意义的结论, 也是本文研究的基础。另外,即使采用了不同的开发模型,其生命周期都要 包含全生命周期中需要完成的工作,并以此为基础进行扩展,是全生命周期 的一个超集。全生命周期的阶段划分是以科学的指导思想和理论方法为依据 的,其正确性毋庸置疑。然而,任何类型的软件开发项目需要根据实际项目 的特点和应用情况,以全生命周期模型为基础,确定符合项目特征的生命周 期模型。 第三章软件开发项目中的进度管理方法分析 进度管理是指在项目的进展过程中,为了确保能够在规定的时间内实现 项目的目标,对项目活动的日程安排及其执行情况所进行的管理过程,进度 管理包括进度计划的制定和控制两部分【_ 7 1 。进度控制是指在执行计划的过程 中监督项目计划的执行,及时发现实际进度与计划的偏差,分析其原因并通 过采取必要的补救措施以保证软件项目进度按时完成的一种管理手段。项目 计划的制定是指根据现有的软、硬件资源和项目的实际需求制定出合理、经 济的项目活动的日程安排。根据二者在软件开发项目全生命周期中所处的位 置不同,进度管理同时具备点和线的特征。所谓点是指进度计划的制定发生 在软件开发项目全生命周期的项目启动阶段。在项目计划制定工作完成之 后,就需要开始对项目的执行过程进行监控,整个过程持续到项目的结束。 因此,项目的控制过程具有线的特征,其工作内容几乎占据了软件开发项目 的全部生命周期。 在本章后续小节中将对进度管理点的特征进行深入讨论,即详细介绍进 度的计划阶段需要完成的工作,包括:分析项目的特征、标识项目的活动、 工期估算、识别活动风险、分配资源、确定项目里程碑和发布项目计划等。 它们之间的关系可用图3 1 所示( 虚线框内的部分) 。 软件开发项目进度管理模型构造与系统仿真 北京邮电人学硕士学位论文 第1 5 页共9 5 页 3 1 分析项目的特征 3 1 1 技术策略 图3 - 1 进度管理的内容 技术策略是指通

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论