第27卷第5期 通 信 学 报 2006年5月 Journal on Communications May 2006 基于风险管理的软件生命周期模型研究 12 ఫޟള, ߛ৫(1. 国信朗讯科技网络技术有限公司, 上海 200127; 2.同济大学 经济与管理学院, 上海 200092) 摘 要针对现有软件项目风险管理中存在的问题通过对几种常见软件生命周期模型的分析探讨了将改进的瀑布型模型的每一阶段与风险管理相结合的风险识别法提出了基于风险管理的软件生命周期模型的研究使项目管理人员能将风险模板作为一种工具对可能发生的风险进行有效的控制和管理并对软件风险的关联和转移有新的认识 关键词风险管理软件生命周期模型研究 中图分类号 文献标识码A 文章编号1000-436X(2006)05-0135-06 Research on software lifecycle model based on risk management 12QIAN Hong-sheng, HUANG Li-ping (1. Guoxin Lucent Technologies Network Technologies Co., Ltd, Shanghai 200127, China; 2. Economy and Management Institute, Tongji University, Shanghai 200092,China) ?Abstract: To the problems exiting in software risk management, analyzed some familiar software lifecycles, discussed the way of risk identifying combing every phase of upgraded waterfall model with risk management, elicited software lifecycle model based on risk management. Hereby project managers can use risk pattern as a tool in controlling and managing potential risk effectively, get a new concept on risk association and transfer. Key words: risk management; software lifecycle; module research 技术要求也越来越高软件开发的风险也越来越1 引言 大因此如何加强软件项目管理技术的研究也随着世界进入了信息时代信息化在促进了软引起了全世界各国理论工作者和项目管理人员的件系统规模发展的同时也增加了软件开发的复杂普遍关注特别是在软件项目管理中引入了风险管程度和风险性项目管理技术是20世纪50年代以理的概念之后人们对于软件开发开始有了危机后发展起来的一种工程管理方法它的出现马上引感正是由于有了这种危机感才使得软件项目管起了人们的广泛关注并立刻被应用到了设备制造理技术的研究也进入了一个新的发展时期 和航天科技的项目管理之中并从根本上改变了人对于任何软件项目而言风险是客观存在的们的思维方法工作程序提高了工作效率降低你不可能视而不见它真实地存在人们所寄希望成了项目的风险程度 功的软件项目的每一个环节之中必需去正视它软件项目管理是一种特殊的项目管理它既有研究它的发生和发展探索它产生的各种原因掌一般项目管理的普遍性又具有其特殊性随着社握它的变化规律这样对风险进行有效的管理才是会信息化应用的发展软件系统的规模越来越大一种科学的方法任何回避风险视而不见任其收稿日期2006-03-13修回日期2006-04-01 췲랽쫽뻝
136 通 信 学 报 第27卷 发展而不采取有效的措施的态度都会使得风险最第六类基于柔性的软件开发模型(flexible [18,19]终将变成灾难 software system) 在研究软件项目管理的过程中人们发现软件柔性软件系统是指在一定范围内满足和适应用如同任何事物一样都有一个孕育诞生成长户需求不断发生变化的应用软件系统这样的软衰亡的过程把这种过程称之为软件生命周期件系统在使用环境和用户需求发生变化时不要software life cycle各国学者纷纷从不同的技术修改或者稍加修改就能满足用户的需求柔性软发展途径和软件项目管理的理念出发提出了适合件系统又可细分为面向用户需求的柔性面向系[1~5] 不同软件开发环境的软件生命周期模型统的柔性面向环境的柔性以及面向数据流程和本文主要研究风险管理在软件生命周期模型操作的柔性 中的应用并在改进型的瀑布模型的不同阶段引入第七类第四代自动代码生成模型 (fourth 核心风险模板和过程风险模板作为一种风险识别generation techniques) 的工具这对于提高我国大型软件系统开发的风险该模型简称4GT要求软件开发人员只对系统的管理能力具有重要的现实意义 高层进行说明将用户需要解决的问题采用标准化的语言和图形与用户进行沟通并经过特殊的软件工具2 软件生命周期模型的分类 自动生成代码和操作界面将复杂的软件开发变成一目前国际上一般把软件生命周期分为以下几种标准化定制工序降低了用户需求确认过程中的不[20~22] 个大类 确定因素快速地生成应用系统软件[6~8] 第一类瀑布型模型(waterfall model)现有软件开发的风险管理理论缺乏与软件生这是一种较为典型的软件生命周期模型是命周期模型的关联性分析风险识别的工具和方法W. Royce于1970年提出的模型该模型要求软件难以满足我国软件系统开发中风险控制和风险管系统应采用自上而下分阶段开发的方式 理的需要造成目前软件系统开发的成功率较低?[9,10]第二类原型生存型模型(prototyping model) 本文提出的基于风险管理的软件生命周期模型将该模型是在用户需求确认后快速生成一个原风险管理与软件生命周期模型每一个阶段的风险型系统通过用户对该系统的主要功能和用户界面识别结合了起来便于项目管理人员能较早地发现生成的确认来明确软件开发范围的一种方法 可能存在的潜在风险从而提高软件系统开发的风 第三类快速开发模型 (rapid application de-险防范能力[11~13] velopment model)3 基于风险管理的软件生命周期模型的提出 该模型是为了减少与用户需求确认的不确定因素将很少的时间用于需求确认而是采用请最本文的主要内容是研究基于风险管理的软件终用户直接加入到开发团队开发人员利用专用的生命周期模型该模型的研究主要从以下几个方面技术工具进行系统规划设计和代码生成快速搭建进行 一个系统的开发模型 1) 依据瀑布型模型的基本特点和理论框架在第四类渐进式软件开发模型(evolutionary 深入研究纯瀑布模型可能存在的缺陷和在我国大[14]software process model) 型软件开发这一特殊环境下应用可能会发生的问该模型又可细分为增量型模型(incremental 题提出一套基于风险管理的软件生命周期模型的model)螺旋型模型(spiral model)单元组装模型理论 (component assembly model)和多点开发模式2) 在软件生命周期模型中首次引入核心风(concurrent development model)采用渐进式的开发险的观点将每一个过程中可能发生的风险进行模式逐步逼近软件系统的最终设计目标 归类分析更重要的是提出了一种风险预测的方[15~17] 第五类智能模型 (intelligent model)法使软件开发项目管理人员能较早地注意到某该模型主要是在软件开发中引入专家组或专一阶段可能会发生的风险为风险的管理创造有家系统的概念采用一定的专家评审机制规范和利条件 帮助软件开发人员去完成目标系统的开发工作 3) 在一般风险管理研究的基础之上对影响到 췲랽쫽뻝
第5期 钱鸿生等基于风险管理的软件生命周期模型研究 137 ? 图1 基于风险管理的软件生命周期模型体系结构图 整个软件项目开发过程的风险表现进行归纳提出很大的风险特别是在大型软件系统的开发中作了过程风险的概念 为软件生命周期模型的应用成功率较低 基于风险管理的软件生命周期模型的体系结构 本文根据国际上对与纯瀑布型软件生命周期提出的基于风险管理的软件生命周期模型体模型的最新研究成果结合作者在实证研究中的结系结构如图1所示 论对该模型提出了以下几点改进措施 体系的主要特征 1) 提出现场改进盒的观点由于在分析纯瀑布本文提出的基于风险管理的软件生命周期模型模型的缺陷时已经认识到了该模型缺乏与现场型是基于纯瀑布模型的一种改进模型其主要特点的沟通这一事实为了增强与软件最终用户的交是在软件生命周期的每一个阶段引入了核心风险流本研究引入了现场改进盒的观点将软件发布模板并对整个软件开发过程提出了COST过程风现场的用户意见反馈作为了整个软件生命周期模险的观点该体系的建立基于以下一些基本思路 型中不可缺少的一个环节 Ղ௸҃ଆ֥ڿࣉ֥ࠫ۱ჰᄵ 2) 建立了闭环的信息反馈结构已经知道纯瀑根据对传统纯瀑布型模型软件生命周期模型布模型的软件生命周期模型是一个自上而下的开的分析我们认为该模型的主要问题是在软件生命放型结构模型本研究在分析了该模型的这一问题周期不同的阶段没有任何信息反馈的渠道软件开后认为为了降低软件开发的风险在纯瀑布型模发自上而下顺序进行因此要求整个软件开发要有型的改进中必须在合适的地点引入信息反馈渠道 很强的计划性一旦计划发生变更就会造成软件3) 以需求分析为中心的原则本研究认为对纯开发成本的迅速上升甚至导致整个软件开发项目瀑布型模型改进的另一个原则应该是以用户需求的失败这些缺陷使得纯瀑布型模型在使用中存在确认为中心的原则在纯瀑布型模型的一般讨论 췲랽쫽뻝
138 通 信 学 报 第27卷 中我们并没有对这个问题予以充分的认识本研 ނྏڄགაݖӱڄག֥ܱ৳ٳ༅ 究认为从改进纯瀑布型模型的结构性能提高该模在图1中基于风险管理的软件生命周期模型型风险控制的观点出发必须强调对于用户需求分体系结构图中模型的右面是一组带数字的小圆析这一重要环节的研究加强该环节的研究是降低圈该数字由2位数组成前一位数字代表软件生整个软件项目开发风险的重要举措 命周期的第几个阶段后一位数字代表在这一阶段4) 在每一个阶段引入风险模板对纯瀑布型模核心风险中的风险因素的编号在纵向的项目风险型深入研究后发现软件工程学在研究软件生命周中的成本风险将上面的几个小圆联系在了一起这期模型的一般情况下是不考虑风险管理的作用的就表明在过程风险中的成本风险是与软件生命周软件工程学认为软件生命周期模型是研究软件项期模型中的核心风险有关联的其关联关系可用图目开发的一般过程而风险管理是一种应用技术和2表示 项目管理的技术两者是独立的本研究认为这两图2是把过程风险中与成本风险有关的一列核者是有着紧密的相关性因此在软件生命周期模心风险列出在图2中点划线以上是核心风险点型的每一个阶段都定义了风险模板并将风险模板划线以下是过程风险核心风险中实线箭头表示正作为软件项目风险管理的识别工具这将大大有利常的风险发生顺序而虚线部分则暗示了后续的风于在软件生命周期模型的不同阶段加强对于风险险对前面的风险关联和影响这一事实已经在实践的识别和风险的控制作用 中得到了证实称之为风险的前后关联 ࠎႿڄག֥ܵೈࡱളଁᇛ௹ଆ֥หׄ 在基于风险管理的软件生命周期模型中对于风险的研究是该模型的一个重要研究内容从整个模型架构体系的框架中将风险管理融入到了软件生命周期的每一个阶段在该模型中基于风险的?管理主要有以下几个考虑 1) 在软件项目开发核心风险的基础上引入风险模板使风险模板不但成为一种快速的风险识别工具同时也能加强对风险的预测和动态管理机制保证在软件项目开发的过程中不断对可能发生 的风险进行管理并能不断总结经验完善原有的图2 核心风险与过程风险的关联图 风险模板提出适应软件项目长期发展的新的模板内容风险的前后关联表明在软件生命周期模型 2) 加强过程风险的归纳和检验本课题研究一中前一阶段风险排除或消失后后面阶段出现新方面注重软件生命周期的每一个阶段的风险问题的风险可能会触发出前面已经发生过的风险例如 另一方面将与软件生命周期阶段无关而与整个软编号为的关联是当软件系统正式投入使用件开发执行的过程有关的风险作为基于风险管理以后对于现场的支持中可能发生的风险如支持的软件生命周期模型的一个重要内容来加以研究内容响应时间支持人员以及与用户配合方面出同时将过程风险归纳为COST分析法即过程风现的问题会反作用于利益风险而利益风险就是项险重点在于研究成本风险cost risk组织风险目的总支出总收入和企业效益有关的风险即当organization risk系统风险system risk和计支持风险发生时公司的利益风险就会发生增加的划风险可能性 time schedule risk 3) 风险模板与过程风险的关联分析在基于风编号为的关联同样当功能风险发生在险管理的软件生命周期模型的研究中将核心风险项目验收阶段以后如用户对于软件系统的功能与过程风险进行了相关性分析这一分析不但揭示界面显示的内容以及可操作性发生了变化或对了核心风险与过程风险的相关性更重要的是发现软件开发商的解决方案不满意时则在功能风险了风险逆向变化的特性发生的同时就可能会引起前面计划风险的增加 췲랽쫽뻝
第5期 钱鸿生等基于风险管理的软件生命周期模型研究 139 即计划执行计划变更和计划管理的风险会随之增加 编号为的关联质量风险是指质量体系质量控制而引起的风险一旦发生质量风险就需要投入人力进行质量评审和质量改进工作这将会使整个计划发生变更为了达到一定的质量目标就必需有充足的时间予以保证 编号为的关联当系统已经进入到维护使用 阶段后由于维护人员的变更和培训难度的增加图3 风险积累与风险转移图 并在维护中发现一些系统的缺陷性问题就会造成维护风险同时由于需要重新投入研发人员进行从图3中可以看出用户需求风险在分析阶段故障排除与系统软件的改进因此整个研发风险会出现一个峰值该峰值表明在用户需求阶段的主将增加原来预留的售后服务人员不够用只能重要风险是用户需求的确认在项目确认阶段用户新投入研发力量从而造成其他研发软件项目的人需求从零开始一旦项目确认以后即进入需求分员紧缺形成研发风险 析该阶段用户正式提出软件系统的开发要求但编号为的关联在项目验收阶段发现大量是双方有一个较长时间的谈判和妥协的过程这一功能性问题造成项目验收无法完成即引起了功过程逐步把双方的分歧点缩小趋向于形成一个系能风险该风险将导致研发人员必须配合现场验收统软件功能的轮廓从理论上讲该阶段完成以后在原来的软件系统上进行大量的补丁修改补丁修用户需求就应该确认完毕需求风险就回逐步降改增加以后会引起软件系统的不稳定即由于补丁低但是实际情况往往是用户在双方确定的用户确增加会引起系统稳定性的问题 认书上完成签字也不能说明用户需求已经全部确?通过以上一些风险的前后关联分析可以看定需求风险在较长一段时间内仍然会存在 出由于这种风险前后的关联性特性促使我们不在图3中看到实线部分是理想的用户需求风得不更加重视软件风险管理的监控和管理工作自险影响的分布图在需求分析阶段完成以后并不是始自终加强软件开发项目的风险管理以确保项目所有的需求风险都解决了而是必须保持与用户的的顺利实施 沟通渠道逐渐地缩小与用户需求之间的差距当项目进入验收阶段或维护使用阶段以后用户需求4 风险积累与风险转移问题的研究 已经转化成实际的软件应用系统用户需求发生的在应用基于风险管理的软件生命周期模型的概率为零风险的影响程度也降低为零 过程中可发现不同软件生命周期阶段的风险有一但是实证研究表明用户需求会随着项目开发个积累和转移的过程所谓的风险转移是指某一种进程的发展出现风险的转移即用户需求风险不是风险可能在某一阶段出现但其同样的表现会在另在需求确认阶段结束以后马上降低为零而是有一一阶段重复发生这种现象在在用户需求风险或系个在其他阶段继续发生的可能性甚至会出现在该统架构的风险方面表现尤甚风险的积累与转移有图中的验收测试阶段突然又发生一个较高的需求风[23, 24] 一定内在的联系险的影响的现象该需求风险转移的虚线部分即可作者认为风险的积累与风险的转移是在软件开发以被视作是前几个阶段需求风险的积累又可以被项目中风险的特殊的表现形式风险的积累是指软视为需求风险在经历了一段时间以后又转移到了验件开发中的风险有时候会随着对外界的情况发生变化收测试阶段这就从另一个侧面较好地解释了风险后逐步积累达到一定程度后对项目开发造成一定影积累和风险转移的关系即风险转移的基础是该风响的现象风险的转移则是一种风险自动或在被人工险还有残留存在积累到了一定程度以后会有一个干预后暂时消失后在另外的地方再次发生的现象 总的爆发这就形成了表面上风险转移这个事实 需求风险的积累和转移在整个软件生命周期风险转移的事实告诉我们在整个软件的开发过中的分布如图3所示 程中我们用风险模板只能确定该风险在某一阶段可 췲랽쫽뻝
140 通 信 学 报 第27卷 能会发生的概率很大这对于我们集中精力处理这一[14] GILB T. Principles of Software Engineering Management[M]. USA: Addison-Wesley, 1988. 阶段可能发生的风险是有积极意义的但是这并不[15] SAHAY B, KRISHNA S. Work practices and local improvisations 是说过了该阶段以后该风险就不存在了或者在以后within global software teams: a case of a UK subsidiary in India[A]. 阶段再也不会发生同样的风险了实践证明只要有风Proc IFIP Information Flows, Local Improvisations and 险残留的存在风险的危害就在积累等累积达到一Work Practices' Conf, IFIP [C].Cape Town, South Africa, 定程度以后如果项目管理人员轻视了该风险的管2000. 理在未来的某一个时刻该风险就会再次光顾并造[16] ANDRES H, ZMUD R. A contingency approach to software project 成一定的影响这就要求我们的风险管理应该是可连coordination[J]. Journal of Management Information Systems, 2002, 续的对于根据风险模板识别到的风险在项目还未18(3):41-72. 终止前始终不能放松对其的监控和管理[17] CARMEL E, AGARWAL R. Tactical approaches for alleviating distance in global software development[J]. IEEE Software, 2001,18(2):22-29. 5 结束语 [18] SINDRE G, OPDAHL A. Eliciting security requirements by misuse cases[A].Int'l Conf on Technology of Object-Oriented Languages and 本文提出了基于风险管理的软件生命周期模型Systems TOOLS-Pacific 2000[C]. Sydney, Australia,-23. 的框架体系以及风险的关联性研究的问题结合大[19] KELLNER H. Software process modeling:principles of entity process 型软件项目风险管理实证案例的研究阐述了核心风models[A]. Proc 11th Intl Conference on Software Engineering[C]. 险模板和过程风险的概念对于提高我国大型软件系Kaiserslautern, Germany, -19. 统开发和风险管理的水平具有一定的积极意义 [20] IEEE Std 1540-2001: IEEE Standard for Software Life Cycle Proc-esses-Risk Management[S]. IEEE Inc, New York, 2001. 参考文献 [21] ISO/IEC 15939:Informantion Technology Software Measurement Process[S].ISO/IEC,2001. [1] LIENTZ B, SWANSON E. Software Maintenance Management[M]. [22] NORMAN . Software Acquisition Life Cycle Measure Addison-Wesley, USA ,1980. ?Plan based on the Revised[R].IEEE P1633\AIAA . [2] TRACZ W. Software Reuse: Emerging Technology[M].IEEE Com-[23] LAING V. Principal Components of Orthogonal Object-Oriented puter Society Press,1988. Metrics[R].White Paper, Analyzing Results of NASA,2006. [3] NAUR P, RANDALL B. Software Engineering[M]. A Report on a [24] SCHNEIDEWIND N. Requirement risk reliability[A]. Supplementary Cnference Sponsored by the NATO Science Committee, NATO,1969. proceedings of the 13th International Symposium on Software Reli-[4] IEEE Standards Collection:Software Engineering[S]. IEEE Standard ability Engineering Annapolis[C]. Maryland, 2002. 12-15. -1990, 1993. [5] PAULK M. Capability Maturity Model for Software[D]. Software E作者简介 ngineering Institute, Carnegie Mellon University,Pittsburgh PA, 1993. [6] RACCOON Chaos model and the chaos life cycle[J]. ACM 钱鸿生1955-男上海人同济Software Engineering Notes,1995,20(1):55-56. 大学博士生国信朗讯科技网络技术有限[7] ROYCE W. Managing the development of large software systems: son-公司副总经理高级工程师主要研究方向为通信7号信令系统现代通信网络管cepts and techniques [A].Proc WESCON, Los Angeles[C]. USA, 1970. 理技术的研究现代数据库系统及应用研[8] HANNA M. Farewell to waterfalls[J].Software Magazine, 1995,15(5):38-46. 究软件项目管理技术 [9] PERRZ B, PROTOTYPING L. A process monitoring experiment[J]. IEEE Trans Software Engineering, 1994, 20(10):774-784. [10] BROOKS F. The Mythical Man-Month[M]. Addison-Wesley, USA, 黄立平1943-男江西石城人1975. 同济大学教授博士生导师主要研究方[11] MARTIN J. Rapid Application Development[M]. USA: Prentice-Hall, 向为现代信息技术与信息系统应用研究1991. 客户智能的理论与方法研究现代数据库[12] NIERSTRAS Z. Component-oriented software development[J]. 系统及应用研究数据挖掘技术研究物Communications of the ACM, 1992,35(9):160-165. 流管理及信息系统电子商务系统与应用[13] DEILLY J. Does RAD live up to the hype[J]. The IEEE International 研究 Software, 1995,12(5): 24-26. 췲랽쫽뻝
基于风险管理的软件生命周期模型研究作者:钱鸿生, 黄立平, QIAN Hong-sheng, HUANG Li-ping作者单位:钱鸿生,QIAN Hong-sheng(国信朗讯科技网络技术有限公司,上海,200127), 黄立平,HUANG Li-ping(同济大学,经济与管理学院,上海,200092)刊名:通信学报英文刊名:JOURNAL ON COMMUNICATIONS年,卷(期):2006,27(5)引用次数:0次 参考文献(24条) E Software Maintenance Management W Software Reuse:Emerging Technology B Software Engineering Standard Standards Collection:Software Engineering M Capability Maturity Model for Software L The Chaos model and the chaos life cycle 1995(1) W Managing the development of large software systems:soncepts and techniques M Farewell to waterfalls 1995(5) L A process monitoring experiment 1994(10) F The Mythical Man-Month J Rapid Application Development Z Component-oriented software development 1992(9) J Does RAD live up to the hype 1995(5) T Principles of Software Engineering Management S Work practices and local improvisations within global software teams:a case of a UK subsidiary inIndia R A contingency approach to software project coordination 2002(3) R Tactical approaches for alleviating distance in global software development 2001(2) A Eliciting security requirements by misuse cases H Software process modeling:principles of entity process models Std Standard for Software Life Cycle Processes-Risk Management Technology Software Measurement Process F Acquisition Life Cycle Measure Plan based on the Revised V Principal Components of Orthogonal Object-Oriented Metrics N Requirement risk reliability 2002 相似文献(5条)1.学位论文 钱鸿生 基于风险管理的软件生命周期模型研究 2006 本文根据软件工程学的基本原理,结合国际上软件生命周期模型的最新研究成果,对具有自主知识产权的大型软件开发(Software Developing)过程中的风险管理所面临的一些问题进行了较为全面的论述,在此基础上综合应用系统论、方法论和运筹学的有关知识,提出了一种新型的软件生命周期模型的研究框架和思路,即基于风险管理的软件生命周期模型。 首先作者提出了课题的来源,选题的依据和论文研究的结构和方法,并论述了本课题研究对于促进我国软件产业的成熟和发展,以及对提高软件项目管理(SoftwareProject Management)的水平可能产生的积极作用与影响。 然后作者对国际上软件生命周期模型研究中不同的建模思路和方法进行了论述,并从软件生命周期模型的一般过程的分析中,提出了分阶段进行风险识别的观点和过程风险的概念。 随后在进行了风险管理和软件生命周期模型关联分析的基础之上,揭示了在软件生命周期不同阶段中核心风险客观存在的事实,并从核心风险的要素分析中进一步提出了核心风险模板的概念,为从事软件项目管理人员提供了一种对可能出现的风险进行预测和判断的工具,从而为基于风险管理的软件生命周期模型体系的建立奠定了基础。 同样在提出了软件生命周期不同阶段核心风险的基础之上,对于影响整个软件开发过程可能发生的各类风险,提出了与软件开发及项目管理整个过程有关的过程风险模型,即COST模型图,并且分析了组织风险对于软件项目管理可能造成的重要影响。 作者运用基于风险管理的软件生命周期模型的一些基本观点,对各类风险概率的分布与风险识别的技术方法进行了重点研究,并把这种研究称之为风险管理的有效性分析,认为这种有效性分析是在基于风险管理的软件生命周期模型的核心风险模板和过程风险模板体系下的一种积极有效的应用,对于提高风险管理的效益和改进风险管理的技术,具有十分重要的意义。 案例分析是对一个典型的中美合资的大型软件企业—国信朗讯公司,在软件项目管理过程中应用本文提出的基于风险管理的软件生命周期模型进行了实证研究和成果分析。 最后在总结和展望中,作者对本文提出的一些基本观点进行了归纳分析并对基于风险管理的软件生命周期模型的理论意义和实际使用价值进行了探讨,同时指出了本论文研究中尚且存在的一些问题,为该课题进一步地研究提出了新的目标。2.学位论文 涂争光 软件风险管理方法量化研究 2005 近年来,随着软件理论和技术的不断发展,软件风险管理已成为软件工程领域内保证软件质量的必不可少的关键过程之一。如何对影响软件开发风险的因素进行分析和设计软件风险管理分析数据库是进行软件风险管理的主要课题之一。这项工作能够有效地帮助软件开发人员防范、应对和规避软件风险,同时对提高软件产业的投资回报率和成功率具有一定的理论意义和工程参考价值。 软件风险管理就是为解决影响软件项目、过程或产品的风险而制定的准则。逃避风险永远无法获胜。除非在软件的开发过程中,一直处于无风险的状态。只有充分地理解和学习软件风险管理的知识和技能,同时在实践中不断地积累经验才能有效地进行风险防范和控制,达到减少风险的影响程度和实现利益最大化追求的目的
。 本文从分析国内外软件风险管理的发展现状入手,系统地介绍了目前国内外现行软件风险分析经典的模型,详细地分析了影响软件开发成功的各种因素,并按照软件生命周期将这些影响因素按照类别、属性进行分类、归纳整理,详细划分了软件风险因素,这样便于软件开发人员能够有针对性地识别、监控风险,也为建立软件风险量化数据库模型打下了坚实的基础;同时介绍了软件风险定性和定量分析方法,分析、比较了定性和定量分析方法的优缺点,在文中着重介绍了软件风险定量分析方法的内容。 本文再结合软件风险定性、定量分析方法的角度,探讨了软件风险定性、定量分析方法的策略,同时结合软件开发过程中风险动态分布变化的特点,借鉴风险决策树方法,准确量化在软件开发过程中的风险因素,从而能够时刻关注、跟踪、监控软件风险,并且通过具体化该模型的各功能和模块,能将该模型应用到软件风险管理之中。 本文所有这些工作的作用和目的是:1)较为详尽、系统地介绍了软件风险管理的理论基础,有助于软件开发人员对软件风险管理能有一个全面的认识;2)本文详细地分析了影响软件开发的风险因素(项),并对其进行分类,组织成系统的层次结构,使软件开发人员能够有效地识别和规避风险;3)本文着重介绍了软件风险定量、定性分析方法,并比较其优缺点,4)结合风险决策树,构建了综合风险估测模型,使用了面向对象思想实现了一个软件风险分析模型。3.期刊论文 窦广建 关于软件项目管理研究浅析 -中国科技纵横2009(7) 软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对人员(People)、产品(Product)、过程(Process)和项目(Project)进行分析和管理的活动.软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个软件生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质的完成软件交付用户使用.而研究软件项目管理为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则,方法,同时避免前人的失误.4.学位论文 龙能 基于CMM的软件需求管理平台设计与实现 2004 目前软件组织在产品生产过程中普遍存在开发周期长,自动化程度低,质量难以控制,用户满意率差,生存期短,失败率高等问题。解决上述问题的根本出路在于提高软件组织的过程改进能力和过程管理能力。卡内基-梅隆大学软件工程研究所(SEI/CMU)提出的软件能力成熟度模型CMM(CapabilityMaturityModel)是软件组织开展软件工程管理的一套规范而严格的系统化管理模型,已成为国际公认的评价软件组织能力、帮助改善软件质量、提高软件过程改进能力的方法。但由于CMM只给出了进行软件过程改进的文档化说明,并没有给出具体的实施步骤,其模型和理论体系未能从实践的角度、以可操作的形式给软件组织提供改进其软件开发流程和项目管理方式的平台,而这方面的工作是实施软件过程管理的基础和前提条件。 本文系统地介绍了CMM的发展、总体框架、内部层次、过程可视性和评估方法,对与软件过程相关的国际、国内标准,即ISO9000系列、ISO/IEC软件生命周期过程和CMM能力成熟度模型进行了归纳、分析和比较,结合TQM(全面质量管理思想)、软件生命周期模型、CMM、及CMM的理论模型——IDEAL模型,提出了一个具有针对性和可操作性的软件过程改进模型——集成化过程改进模型,并详细讨论了该模型的内部结构和具体内容,以及集成化过程改进模型的理论模型——IPSDCA模型的设计。 在对CMM体系的内容进行探讨和分析的基础上,本文根据CMM划分的5个成熟度等级、18个关键过程域涵盖的内容,将整个软件生命周期涉及的活动,按照性质重新整合,划分为19个过程域,分属项目管理、项目研发、组织支持三类软件过程。借鉴Rational公司开发RUP核心工作流的思想,本文引入“线性+并行+迭代”的技术方法,在软件开发的早期,采用并行和迭代的手段实现需求分析、设计和系统测试的增量式开发,分别对软件技术开发过程域模型和软件技术管理过程域模型进行了设计,实现了在软件项目开发生命周期的全过程中对需求进行全程管理。在软件生命周期前五个项目研发过程域——需求开发、技术预研、系统设计、实现与测试、系统测试的末期都设有缓冲时间——技术评审,以在最高的效率和较好地对未来作出预计之间求得平衡,为软件组织能够应付意外的困难和影响时间进度的变故提供了一种解决方法。 鉴于软件过程度量是贯穿整个软件过程的一个尺度,是控制软件产品质量和软件过程质量的必不可少的手段,作者对度量实施的途径和方法作了探讨,开发了基于问题驱动的度量过程模型,为整个软件开发过程提供了控制手段。 在探讨了需求管理对软件开发活动以及提高软件过程能力方面的重要性之后,对集成化过程改进模型包含的19个过程域中的风险管理、立项管理、结项管理、需求开发、需求管理5个过程域进行了技术实现,开发出帮助软件组织建立和执行软件需求管理的工具——软件需求管理平台,它为需求分析阶段提供了定义良好的层次化结构,向软件组织提供项目需求分析阶段的软件支持环境,有助于组织对待开发产品的特性进行灵活的增加、删除与改进。 文中还给出了平台系统的设计框架和具体实施要求,整个需求管理平台基于三层分布式结构进行开发,前台提供客户端的各种应用程序,中间层以组件的形式实现类和对象,后台数据库服务层分类存放涉及需求分析的组织信息、产品信息和外部支持信息(如将未被评审通过的多个需求变体放置在后台数据库层的定义过程库,已评审通过的需求基线放置在标准过程库),各层之间以邮件通信和消息驱动的方式支持项目相关人员的相互交流和并行开发,在文章的最后对全文进行总结,探讨了针对不同软件项目的开发过程,具体使用该软件需求管理平台时的一些注意事项,指出研究的不足之处和进一步研究的展望。 借助软件需求管理平台,软件组织能对需要的软件功能和约束进行提取、组织和文档化,有助于项目相关人员清晰地理解待开发软件产品所要解决的问题的定义和范围,在迭代的需求分析过程、需求管理过程、需求变更控制过程等方面,平台针对所有的关键开发活动提供了必要的规程、模板和工具指导,并以交互通信的方式确保全体成员共享软件组织的经验知识,需求分析人员能较容易地规定出产品特性的细节和技术上的相关性,以及对某个需求特性进行更集中的讨论,从而提前发现必须解决的问题以及有关待开发产品需要变更的一些功能,从而在软件开发过程中实现需求管理和软件开发后续活动的同步控制。 CMM已经成为继ISO9001之后软件组织普遍关注的焦点,文中叙述的软件需求管理平台实现了基于CMM的集成化过程改进模型的19个过程域中的5个过程域的内容,但还没有实现该模型的全部内容,因此,软件需求管理平台目前还不能支持多项目的开发,这在一定程度上降低了在软件组织内部大范围交互式共享组织经验知识的可能性,这些都是下一阶段研究工作的重点。5.学位论文 鄢进华 SDH传送网网管自动化测试的研究和应用 2005 光同步数字传送网网管是一套基于电信管理网络框架设计的综合传输设备网络管理平台,用于管理各种数字和光波分复用类型的传输设备.随着软件系统功能越来越复杂和庞大,加上研发进度的紧张和市场要求的严格,长期以来采用的人工测试方法不仅工作效率低下而且造成工作压力的增大.目前先进的软件工程理论和计算机技术给软件测试带来了新的机遇和挑战,软件测试将向自动化测试技术为主的方向发展.本课题研究的目的在于针对传输网管研究其实现测试自动化的方法,从而为开发传输网管的自动化测试支撑平台提供技术实现方法.本文通过研究传输网管的体系结构,设计了一套以传输网管测试支撑平台和IBM公司的Rational Suite自动化测试工具为基础的自动化测试方案,在方案实现中主要做了如下四个方面的研究工作:(1)根据分布式产生器DSG构建的网络通讯机制,分析了网管与网元间通讯的原理,给出了通讯协议和功能处理的实现方法.(2)研究电信管理网络规范,采用多服务器和客户端的通讯模式设计了网元仿真测试模块,满足了在实验室有限资源条件下无法实现网管在管理大量网元时的性能测试需求.(3)根据软件界面在软件生命周期中动态变化特性,将软件风险管理的思想应用于测试脚本的编写方法中,从而解决了界面动态的变化给脚本重用性和可靠性带来的危机.(4)分析了软件的可测试性的特点,建立起了一套在应用层面解决图形对象的识别方法,并深入研究了微软的活动控件可获取性技术和IBM公司的活动控件代理器的对象识别技术原理.本文研究成果,构建出了传输网管自动化测试的整体框架,克服了自动化测试工具在使用中遇到的技术和应用上的困难,提高了测试的能力和技术手段. 本文链接: