毕业设计(论文)基于MP、RUP的软件过程研究.doc
《毕业设计(论文)基于MP、RUP的软件过程研究.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于MP、RUP的软件过程研究.doc(20页珍藏版)》请在三一办公上搜索。
1、摘 要随着计算机的应用和普及,计算机的性能逐年增强,用户对运行于计算机和因特网上的软件的功能和性能的渴望也随之增加,用户希望更好更复杂更快的软件来满足他们的需要;与此同时,市场的激烈竞争迫使现代软件企业必须更快地生产出用户需要的复杂软件。这样导致了软件危机的出现。面对软件危机Rational公司推出的RUP软件开发过程和微软公司推出的MP软件开发过程在软件开发方面都取得了很大的成功。然而MP、RUP方法的提出并未真正的解决软件危机,同时人们希望通过追求寻找解决软件危机的最佳方法。针对现代软件产业所处的困境,鉴于现有的软件工程领域的软件生命周期模型在解决软件开发问题方面存在的局限性,本文提出了M
2、RUP软件开发过程,MRUP过程是基于对MP、RUP的研究,并针对其中的一些局限提出的一种新的软件过程。关键字:微软过程;RATIONAL统一过程;MRUP过程;研究目 录第一章 绪论31.1研究背景31.2 研究意义和目的41.3研究内容6第二章、MP方法的介绍62.1微软过程概述62.2生命周期72.3人员72.4方法72.5产品92.6四要素之间的关系92.7本章小结9第三章、RUP的介绍103.1RATIONAL统一过程概述103.2 RUP的过程结构113.3 RUP的动态结构113.4 RUP的静态结构153.5本章小结15第四章 MRUP软件过程模式164.1MRUP的概述164
3、.2MRUP过程模式的生命周期及相关错误的规避164.3MRUP过程模式的人员164.4MRUP过程模式方法174.5MRUP过程模式的产品184.6 MRUP过程模式的生命周期、人员、方法与产品四要素间的关系184.7本章小结18第五章 总结与展望18总结18展望19致 谢19参考文献19第一章 绪论1.1研究背景1946年,世界上第一台电子计算机诞生在美国宾夕法尼亚大学的摩尔学院,由此拉开了计算机软件的发展史。从宏观角度而言,计算机软件发展主要经历了以下三个阶段。(1)第一阶段程序设计阶段20世纪60年代以前还没有软件开发的说法,那时只有程序设计的概念,最多在写出程序后配有程序结构说明各使
4、用说明。经典的程序设计方法为“程序设计=数据结构+算法”。(2)第二阶段软件工程阶段20世纪70年代以来,人们认识到软件的工作不能仅限于编写程序,软件开发工作在程序编写之前和之后还有很多重要的工作不能忽略,例如需求分析、测试、维护等等。在总结“软件危机”教训后,人们认识到并建立软件工程的思想。软件工程摒弃了认为只有充满编程技巧的程序才能高水平地发挥个人才能的观念,强调程序的可读性、可理解性、可测试性和易修改性等工程化的原则。(3)第三阶段软件过程阶段从20世纪90年代开始,人们更加强软件开发的效率、软件的质量以及软件开发相关的管理工作,建立了“软件过程”的概念。软件过程不仅包括软件开发过程,还
5、包括了支持性、管理性过程。到目前为止,人们对软件工程的研究主要是对软件生命周期模型的研究。典型的生命周期模型包括瀑布模型、演化模型、螺旋模型、喷泉模型等。(1)瀑布模型瀑布模型规定了软件生命周期各阶段的不同活动,包括定义阶段的项目计划和需求分析,开发阶段的设计、编码和测试,维护阶段的运行维护。这些活动自上而下,相互衔接,呈线性图状,如同瀑布流水,逐级下落。但此模型适用于用户需求明确、稳定的软件项目。(2)演化模型演化模型包括两大步骤:第一步进行试验开发,得出产品“原型”,其目标在于弄清软件需求并探索其可行性;第二步在原型基础上开发出较为满意的软件产品。因此演化模型又称为原型模型。演化模型减少了
6、软件因需求不明确给开发工作带来的风险。(3)螺旋模型螺旋模型沿螺线旋转,每旋转一圈都历经笛卡儿坐标系中四个象限的四个方面活动制订计划、风险分析、实施工程及客户评估。螺线自内向外每旋转一圈便开发一个更为完善的新的软件版本。采用的是一种自上而下的工作方式。螺旋模型将瀑布模型和演化模型进行结合,同时加入了这两种模型中都忽略的风险分析,可应用于指导客户需求不太稳定的软件开发以及大型软件开发中。(4)喷泉模型相对于螺旋模型,喷泉模型引入了“面向对象的分析设计方法”。此模型由于各阶段均采用了“对象”这一统一范式,整个过程看起来像喷泉从喷出到落下再喷出的周而复始过程产生的光滑水柱,属自底向上的工作方式。相对
7、螺旋模型而言,喷泉模型除具有模型的“迭代演化”特点外,还具有软件过程各阶段的无缝衔接性,并且对软件复用和软件生命周期内多项开发活动的并行与集成提供了支持。这四种模型均对软件过程中各过程阶段的活动密切关注,而对过程活动的执行者及分工、过程中使用的方法和工具、过程中各阶段的目标等方面的论及则很少甚至没有。因而,用于指导软件开发实践时,表现出较差的可操作性。1.2 研究意义和目的软件生命周期模型未能改变现代软件产业整体处于困境的现状,且不同的软件开发项目在不同的方面有着不足和缺陷,并且不幸的是,有太多的项目最终失败了,但是我们可以从这项目中找出一些共同的症状:对于最终用户的需求理解不够准确。对需求的
8、变更束手无策。脆弱的架构。软件质量低劣。测试的不充分导致对项目的缺陷发现比较晚。软件性能令人无法接受。拙劣的进度计划和评估。缺乏资源。不具备项目管理方法。缺少管理层的支持。一个不可靠的构造和发布过程。尽管不同的项目以不同的方式失败,但是似乎大多数的失败是由于以下几点根本原因综合造成的:特别的需求管理。模糊和不精确的交流。程序模块互不兼容,及不易扩展。过度复杂。未检测出需求、设计和实现之间的不一致性。测试不足。对项目状况的评估过于乐观。未解决存在的风险。对变化无法掌控。为了解决上面的软件问题。它需要一个过程来集成软件的许多方面,它需要一个通用的方法,该方法能:(1)提供应如何对整个开发团队的开发
9、活动进行组织指导。(2)综合指导单个开发人员和开发团队。(3)规定开发成果是什么。(4)提供监控和衡量一个项目中的产品和活动的标准。一个定义良好且管理良好的过程是区别成效卓著的项目和不成功项目之间的重要指标。“MRUP开发过程”正是我们在软件开发上面临的难题的解决之道。“MRUP开发过程”是在MP与RUP的基础上对软件开发过程的一种研究,利用此方法对提高一个软件企业的过程能力,及时且高质的完成软件开发,进而提高企业的综合能力都有深远的意义。1.3研究内容本文的研究内容主要包括以下几个部分:介绍MP方法理论,并对其中的一些优缺点进行阐述。学习和研究RUP过程,提出了RUP方法的优缺点。基于MP、
10、RUP提出了MRUP方法,并且依次从生命周期、人员、方法、产品等方面对其进行了描述。第二章、MP方法的介绍2.1微软过程概述微软公司是世界上最大的、也是最成功的软件公司之一,其产品涵盖多个领域。但微软公司并未通过CMM认证,也并未宣称自己使用过RUP和其它过程。微软公司有自己的软件开发过程,且其过程被几十年实践证实是非常行之有效的。到底微软过程是一个怎么样的过程呢?微软解决方案框架(Microsoft solution Framework , MSF )回答了以上问题。MSF是微软顾问咨询部于1994年根据微软公司成功的产品开发经验总结、设计而成的框架体系,该设计该框架体系的目的是帮助企业提升
11、利用IT技术解决商务问题的能力。经过不断的改进和发展,微软将公司内部的产品开发人员、顾问咨询人员以及微软公司全球的客户和合作伙伴在项目设计。开发各管理方面经过实践检验的、可重复、可借鉴的成功经验都集成到MSF之中,从而为不同规模的组织结构和不同类型的IT项目提供从项目组织规划和产品发布管理的全方位指导和帮助,是一套高效、灵活、可扩展的软件开发管理体系。MSF是一个框架结构的经验知识库,它包括以下方面的内容。企业结构设计方案。项目开发准则。应用程序模型。企业信息基础设施的实施方法。其中项目开发准则中的过程模型和组织模型分别是从软件过程中的过程、人员及组织、方法、产品等不同方面阐述了MSF的一些经
12、验,而这些方面实质构成了一套软件过程模式,即微软过程(Microsoft process, MP)模式。2.2生命周期微软过程的每一个生命周期发布一个递进的软件版本,各生命周期持续、快速地循环。每个生命周期分为五个阶段,分别是:构想阶段、计划阶段、开发阶段、稳定阶段和发布阶段。且分别结束于前景和范围得到认可、项目计划得到认可、项目范围内的所有产品特性开发完成、可发布版本准备就绪和产品发布完成这五个主要的里程碑。这五个阶段均涉及产品管理、程序管理、开发、测试、发布各角色及其活动,并且在每个阶段之间都设立了缓冲时间。2.3人员微软过程根据项目组中的所有职能将人员划分六种角色,分别是产品管理角色、程
13、序管理角色、开发角色、测试角色发布管理角色。由产品经理、程序经理、开发工程师、测试工程师、用户体验人员和发布管理人员担任。项目组中虽然多个角色可合并由一个个体担任,但项目组内的开发人员不兼任其他角色,也不会让两个有明显利益冲突或制约关系的职能角色合并。且这六种角色中他们的关系是对等的。在人员管理上,要求所有的成员都参与设计,共同决策,共同管理。让大家都有明确的目标,阐述产品的前景,让所有成员都有了解产品前景,并对其有清晰的认识和明确的认同,使每一位成员能以自己为产品的美好前景贡献力量而感到自豪。把每个角色的人员划分成多个小型的、多元化的项目组,每个小型的项目组人数控制在10个以下,且每个项目组
14、成员在同一地点办公,以方便交流与沟通。2.4方法微软通常采用“同步稳定产品开发法”。典型项目的生命周期包括三个阶段:计划阶段:完成功能的说明和进度表的最后制定开发阶段:写出完整的源代码稳定化阶段:完成产品,使之能够批量生产(Roll Out)在开发和稳定化阶段的所有时间中,一个项目通常会将2/3的时间用于开发,1/3的时间用于稳定化。这种里程碑式的工作过程使微软经理们可以清楚地了解产品开发过程进行到了哪一步,也使他们在开发阶段的后期有能力灵活地删去一些产品特性以满足进度要求。并且针对每个阶段的活动均提出了一些行之有效的方法和技术。2.4.1计划阶段主要是做以下事情:(1).把你准备做什么样一个
15、产品搞清楚,这个产品有什么特性。(2).这个产品有没有市场,用户为何需要这个产品以及该产品的走势。(3).这个产品大概是个什么样子,是否有个大概的原型展示方便高层决策。(4).设计的功能,目标,优先级,大概的进度。微软在这个计划阶段保存了很多可行性研究分析和产品规划的内容在里面,更多的是一个产品规划的内容。2.4.2开发阶段开发阶段的计划对三四个主要的里程碑版本都逐个分配一组特性,规定出特性的细节和技术上的相关性,记录下单个开发员的任务以及对进度的估计。在开发阶段中,开发员在功能性说明的指导下写源代码,测试员写出测试项目组以检查产品的特性与工作范围是否正常,用户体验人员则编写出文档草案。当测试
16、员发现错误时,开发员并不是留待以后处理,而是马上改正,并在整个开发阶段内使测试不断地、自动地进行。这就改善了产品的稳定性并且使版本发布日期更易估计。当达到项目中的一定阶段点后(40%时),开发员就试图“锁定”产品的主要功能要求或特性,从此,只允许小范围的改动。如果在此点之后开发员想作大的改动,他们必须与程序经理以及开发经理进行讨论协商,也许还要征求产品部门经理的意见。(这里有两点,一个是提倡及早的发现缺陷和持续的集成,一个是后期严格的对需求变更进行控制)一个项目是围绕着3或4个主要的内部版本,或“里程碑子项目”来组织开发阶段的。一般用2至4个月来开发每一个主要的里程碑版本。每个版本都包括其自身
17、的编码、优化、测试以及调试活动。项目为意外事故保留总开发1/3的时间,即“缓冲时间”。(应该说1/3时间是足够多的,一般研发项目很难预备这么足够的Buffer)。当对最后一个主要的里程碑版本做了测试与稳定化之后,产品就要进行“外观固定”,即确定产品的主要用户界面,如菜单、对话框以及文件窗口等。此后有关用户界面将不再进行大的改动,以免引起同步修改相应文档的困难。2.4.3稳定化阶段稳定化阶段着重于对产品的测试与调试。项目在此阶段尽量不再增加新的功能,除非是竞争产品或者市场发生了变化。稳定化阶段也包括了缓冲时间,以应付不可预见的问题或者延迟。在软件的开发流程中,软件的测试与开发是一种“矛与盾”的关
18、系,互为补充,缺一不可。在微软,可能这种关系发挥到了极至:有时开发部门与测试部门互相较着劲,开发经理和测试经理的地位是相同的,有时甚至测试经理的地位甚至凌驾于开发经理之上,但他们之间没有根本的利益冲突,只有一个共同的目标:将产品的质量提高。为了保证产品的质量,微软一直采取零缺陷管理、手工测试与自动测试相结合、内部测试与外部测试相结合的原则。2.5产品微软过程的产品主要包括各类文档、源代码、可执行文件以及相应的文档代码。且微软过程提出了以产品特性及优先级指导整个项目。2.6四要素之间的关系在微软过程中,生命周期的进度、方法、人员及方法工具等项目资源、产品的功能与性能三者之间存在一种相互制约的均衡
19、三角形关系。均衡三角形的任意一边的改变将导致另外一边或两边的变化。产品的开发关键是在进度、资源、产品功能与性能三者之间寻找一个最佳的均衡。2.7本章小结微软过程是一套比较完整的软件过程模式,作为一种针对商业环境下具有有限资源和有限时间限制的项目的软件过程模式,它综合了诸多软件过程模式的优点,并且在人员及其组织过程中的方法等方面提出了独具特色的、操作性很强的实践规范,是一套优秀的成功项目开发实践经验总结。但是,微软过程也存在某些缺陷,如对方法和工具的选择、产品的优先级等方面的论述不够全面,并且有的原则本身也存在问题。 第三章、RUP的介绍3.1Rational 统一过程概述Rational统一过
20、程(Rational Unified Process, RUP)是由Rational公司推出的一种软件过程产品,其目标是:按照预先制定的时间计划和经费预算,开发高质量的软件产品以满足用户的需求。RUP提高了团队生产力。对于所有的关键开发活动它为每个团队成员提供了能使用准则、模板、工具指导来进行访问的知识基础,而通过对相同知识基础的理解,无论你是进行需求分析、设计、测试、项目管理或配置管理,均能确保全体成员共享相同的知识、过程和开发软件的视图。RUP的活动创建和维护模型。并且能对大部分开发过和提供自动化的工具支持。此过程以适合于在范围项目和机构的方式捕捉了许多现代软件开发过程的最佳实践部署。RU
21、P包括6项最佳实践: (1)迭代式开发。在软件开发的早期阶段就想完全、准确的捕获用户的需求几乎是不可能的。实际上,我们经常遇到的问题是需求在整个软件开发工程中经常会改变。迭代式开发允许在每次迭代过程中需求可能有变化,通过不断细化来加深对问题的理解。迭代式开发不仅可以降低项目的风险,而且每个迭代过程以可以执行版本结束,可以鼓舞开发人员。(2)管理需求。确定系统的需求是一个连续的过程,开发人员在开发系统之前不可能完全详细的说明一个系统的真正需求。RUP描述了如何提取、组织系统的功能和约束条件并将其文档化,用例和脚本的使用以被证明是捕获功能性需求的有效方法。(3)基于组件的体系结构。组件使重用成为可
22、能,系统可以由组件组成。基于独立的、可替换的、模块化组件的体系结构有助于管理复杂性,提高重用率。RUP描述了如何设计一个有弹性的、能适应变化的、易于理解的、有助于重用的软件体系结构。(4)可视化建模。RUP往往和UML联系在一起,对软件系统建立可视化模型帮助人们提供管理软件复杂性的能力。RUP告诉我们如何可视化的对软件系统建模,获取有关体系结构于组件的结构和行为信息。(5)验证软件质量。在RUP中软件质量评估不再是事后进行或单独小组进行的分离活动,而是内建于过程中的所有活动,这样可以及早发现软件中的缺陷。(6)控制软件变更。迭代式开发中如果没有严格的控制和协调,整个软件开发过程很快就陷入混乱之
23、中,RUP描述了如何控制、跟踪、监控、修改以确保成功的迭代开发。RUP通过软件开发过程中的制品,隔离来自其他工作空间的变更,以此为每个开发人员建立安全的工作空间。3.2 RUP的过程结构RUP软件开发生命周期是一个二维的软件开发模型(见图2.1)。纵轴代表核心工作流是静态的一面,横轴代表时间显示过程动态的一面,用周期、阶段、迭代、里程碑等名词描述。图2.1 RUP的二维结构过程3.3 RUP的动态结构软件的生命周期被分解为周期,每一个周期工作在产品新的一代上,RUP将周期分为四个个的阶段先启阶段、精化阶段、构建阶段、产品化阶段。每个阶段终结于良好定义的里程碑某些关键决策必须做出的时间点,因此关
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 毕业设计 论文 基于 MP RUP 软件 过程 研究
![提示](https://www.31ppt.com/images/bang_tan.gif)
链接地址:https://www.31ppt.com/p-2389227.html