软件开发方法

软件开发方法

ID:26068204

大小:260.00 KB

页数:18页

时间:2018-11-24

上传者:U-6858
软件开发方法_第1页
软件开发方法_第2页
软件开发方法_第3页
软件开发方法_第4页
软件开发方法_第5页
资源描述:

《软件开发方法》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

软件开发方法的概述组号第08组密级公开湖南科技职业学院软件学院信息检索与分析文档课题名称软件开发方法的概述专业软件技术班级CMU3093学期第三学期指导教师粟光好课题组长夏伟民小组成员黄岭梅、袁源二〇一〇年十一月18 软件开发方法的概述前言当今软件技术,特别是基于软件模型与软件开发方法技术的快速发展,不仅促进了社会生产力的发展,也给人类带来了一场生活方式、思想方式的大变革。由此我们步入了一个新的时代——软件模型开发时代。软件模型开发时代,各种软件已成为我们工作、学习、生活、交流甚至娱乐的重要组成部分。而这其中当然离不开软件模型的开发,了解软件,特别是了解软件开发方法对生活是十分有益。由于我们只是初步的涉猎,所以对软件开发模型和软件开发方法有片面的,狭隘的理解和认识也是正常的。这对后续更深层次的学习不免会带来些许困难,基于此,我们课题组成员一致认为:对软件开发方法做一次全面的了解是很有必要的!18 软件开发方法的概述目录前言2目录3任务分配4进度安排4主题一RUP51.1RUP的简介51.2统一软件开发过程RUP核心概念51.3开发过程中的各个阶段和里程碑61.4统一软件开发过程RUP裁剪61.5统一软件开发过程RUP的核心工作流61.6RUP的迭代开发模式81.7RUP小结8主题二UML102.1UML的简介102.2UML的内容102.3UML的主要特点112.4UML的应用领域112.5UML小结12主题三CMM133.1CMM的简介133.2CMM的基本思想133.3CMM的级别133.4CMM的特点153.5CMM的用途153.6CMM小结16参考文献1718 软件开发方法的概述任务分配姓名任务备注夏伟民主题一RUP的概述黄岭梅主题二UML的概述袁源主题三CMM的概述进度安排日期任务备注2010-11-05课题组的建立,主题的确定2010-11-08任务分配2010-11-15提交初步成果物18 软件开发方法的概述主题一RUP——夏伟民1.1RUP的简介RUP(RationalUnifiedProcess,统一软件开发过程)是一个面向对象且基于网络的程序开发方法论。RUP是一种软件工程的过程框架,是一个过程产品,用户可以使用RMC通过多种途径在企业中保持一致的开发过程,提供基于Eclipse的方法构建和发布工具,提供过程库,包括所有早期版本的RUP内容以及RUP的插件,捕获了并整合了现代软件开发中的最佳实践,适应更广泛项目和组织。1.2统一软件开发过程RUP核心概念RUP中定义了一些核心概念,如图1-1。图1-1RUP核心概念角色:描述某个人或者一个小组的行为与职责。活动:是一个有明确目的的独立工作单元。工件:是活动生成、创建或修改的一段信息。18 软件开发方法的概述1.3开发过程中的各个阶段和里程碑RUP中的软件生命周期在时间上被分解为四个顺序的阶段,分别是:初始阶段、细化阶段、构造阶段和交付阶段。每个阶段结束于一个主要的里程碑;每个阶段本质上是两个里程碑之间的时间跨度。在每个阶段的结尾执行一次评估以确定这个阶段的目标是否已经满足。如果评估结果令人满意的话,可以允许项目进入下一个阶段。1.4统一软件开发过程RUP裁剪RUP是一个通用的过程模板,包含了很多开发指南、制品、开发过程所涉及到的角色说明,由于它非常庞大所以对具体的开发机构和项目,用RUP时还要做裁剪,也就是要对RUP进行配置。RUP就像一个元过程,通过对RUP进行裁剪可以得到很多不同的开发过程,这些软件开发过程可以看作RUP的具体实例。RUP裁剪可以分为以下几步:Ø1)确定本项目需要哪些工作流。Ø2)确定每个工作流需要哪些制品。Ø3)确定4个阶段之间如何演进。Ø4)确定每个阶段内的迭代计划。Ø5)规划工作流内部结构。1.5统一软件开发过程RUP的核心工作流RUP中有9个核心工作流,分为6个核心过程工作流和3个核心支持工作流。Ø1)商业建模商业建模工作流描述了如何为新的目标组织开发一个构想,并基于这个构想在商业用例模型和商业对象模型中定义组织的过程、角色和责任。Ø2)需求需求工作流的目标是描述系统应该做什么,并使开发人员和用户就这一描述达成共识。为了达到该目标,要对需要的功能和约束进行提取、组织、文档化;最重要的是理解系统所解决问题的定义和范围。Ø3)分析和设计18 软件开发方法的概述分析和设计工作流将需求转化成未来系统的设计,为系统开发一个健壮的结构并调整设计使其与实现环境相匹配,优化其性能。分析设计的结果是一个设计模型和一个可选的分析模型。Ø4)实现实现工作流的目的包括以层次化的子系统形式定义代码的组织结构;以组件的形式(源文件、二进制文件、可执行文件)实现类和对象;将开发出的组件作为单元进行测试以及集成由单个开发者(或小组)所产生的结果,使其成为可执行的系统。Ø5)测试测试工作流要验证对象间的交互作用,验证软件中所有组件的正确集成,检验所有的需求已被正确的实现,识别并确认缺陷在软件部署之前被提出并处理。RUP提出了迭代的方法,意味着在整个项目中进行测试,从而尽可能早地发现缺陷,从根本上降低了修改缺陷的成本。测试类似于三维模型,分别从可靠性、功能性和系统性能来进行。Ø6)部署部署工作流的目的是成功的生成版本并将软件分发给最终用户。部署工作流描述了那些与确保软件产品对最终用户具有可用性相关的活动,包括:软件打包、生成软件本身以外的产品、安装软件、为用户提供帮助。在有些情况下,还可能包括计划和进行beta测试版、移植现有的软件和数据以及正式验收。Ø7)配置和变更管理配置和变更管理工作流描绘了如何在多个成员组成的项目中控制大量的产物。配置和变更管理工作流提供了准则来管理演化系统中的多个变体,跟踪软件创建过程中的版本。工作流描述了如何管理并行开发、分布式开发、如何自动化创建工程。同时也阐述了对产品修改原因、时间、人员保持审计记录。Ø8)项目管理软件项目管理平衡各种可能产生冲突的目标,管理风险,克服各种约束并成功交付使用户满意的产品。其目标包括:为项目的管理提供框架,为计划、人员配备、执行和监控项目提供实用的准则,为管理风险提供框架等。Ø9)环境18 软件开发方法的概述环境工作流的目的是向软件开发组织提供软件开发环境,包括过程和工具。环境工作流集中于配置项目过程中所需要的活动,同样也支持开发项目规范的活动,提供了逐步的指导手册并介绍了如何在组织中实现过程。1.6RUP的迭代开发模式RUP中的每个阶段可以进一步分解为迭代。一个迭代是一个完整的开发循环,产生一个可执行的产品版本,是最终产品的一个子集,它增量式地发展,从一个迭代过程到另一个迭代过程到成为最终的系统。在工作流中的每一次顺序的通过称为一次迭代,软件生命周期是迭代的连续。一次迭代包括了生成一个可执行版本的开发活动,还有使用这个版本所必需的其他辅助成分,如版本描述、用户文档等。因此一个开发迭代在某种意义上是在所有工作流中的一次完整的经过,这些工作流至少包括:需求工作流、分析和设计工作流、实现工作流、测试工作流。图1-2RUP的迭代过程与传统的瀑布模型相比较,迭代过程具有以下优点:Ø1)降低了在一个增量上的开支风险。Ø2)降低了产品无法按照既定进度进入市场的风险。Ø3)加快了整个开发工作的进度。1.7RUP小结RUP具有很多长处:提高了团队生产力,在迭代的开发过程、需求管理、基于组件的体系结构、可视化软件建模、验证软件质量及控制软件变更等方面,针对所有关键的开发活动为每个开发成员提供了必要的准则、模板和工具指导,并确保全体成员共享相同的知识基础。它建立了简洁和清晰的过程结构,为开发过程提供较大的通用性。但同时它也存在一些不足:18 软件开发方法的概述RUP只是一个开发过程,并没有涵盖软件过程的全部内容,例如它缺少关于软件运行和支持等方面的内容;此外,它没有支持多项目的开发结构,这在一定程度上降低了在开发组织内大范围实现重用的可能性。可以说RUP是一个非常好的开端,但并不完美,在实际的应用中可以根据需要对其进行改进并可以用OPEN和OOSP等其他软件过程的相关内容对RUP进行补充和完善。18 软件开发方法的概述主题二UML——黄岭梅2.1UML的简介UML(UnifiedModelingLanguage的缩写)统一建模语言,是非专利的第三代建模和规约语言。UML是在开发阶段说明、可视化、构建和书写一个面向对象软件密集系统的制品的开放方法。它展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。UML可以贯穿软件开发周期中的每一个阶段。已被OMG采纳作为业界的标准。它适于用数据建模,业务建模,对象建模,组件建模。同时UML是一个标准的图形表示法,它不是面向对象的分析和设计,也不是一种方法,它仅仅是一组符号而已。UML作为一种模型语言,它使开发人员专注于建立产品的模型和结构,而不是选用什么程序语言和算法实现。当模型建立之后,模型可以被UML工具转化成指定的程序语言代码。2.2UML的内容首先,UML融合了Booch、OMT和OOSE方法中的基本概念,而且这些基本概念与其他面向对象技术中的基本概念大多相同,因而,UML必然成为这些方法以及其他方法的使用者乐于采用的一种简单一致的建模语言;其次,UML不仅仅是上述方法的简单汇合,而是在这些方法的基础上广泛征求意见,集众家之长,几经修改而完成的,UML扩展了现有方法的应用范围;再而,UML是标准的建模语言,而不是标准的开发过程。尽管UML的应用必然以系统的开发过程为背景,但由于不同的组织和不同的应用领域,需要采取不同的开发过程。作为一种建模语言,UML的定义包括UML语义和UML表示法两个部分。Ø1)UML的语义描述基于UML的精确元模型定义。18 软件开发方法的概述Ø2)UML的表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。图2-1为UML构建图。图2-1UML构件图2.3UML的主要特点标准建模语言UML的主要特点可以归结为三点:Ø1)UML统一了Booch、OMT和OOSE等方法中的基本概念。Ø2)UML还吸取了面向对象技术领域中其他流派的长处,其中也包括非OO方法的影响。Ø3)UML在演变过程中还提出了一些新的概念。2.4UML的应用领域UML18 软件开发方法的概述的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。其中最常用的是建立软件系统的模型,但它同样可以用于描述非软件领域的系统,如机械系统、企业机构或业务过程,以及处理复杂数据的信息系统、具有实时要求的工业系统或工业过程等。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。图2-2为UML在嵌入式系统设计中的应用图。图2-2UML在嵌入式系统设计中的应用2.5UML小结UML(UnifiedModelingLanguage)即统一建模语言,是非专利的第三代建模和规约语言,它适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。UML融合了Booch、OMT和OOSE方法中的基本概念,它的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。总之,UML是一个通用的标准建模语言,可以对任何具有静态结构和动态行为的系统进行建模。18 软件开发方法的概述主题三CMM——袁源3.1CMM的简介CMM是CapabilityMaturiryModel(能力成熟度模型)的简称,是对于软件组织在定义、实施、度量、控制和改善其软件过程的实践中各个发展阶段的描述。它是在美国国防部的指导下,有软件开发团体和软件工程学院(SEI)及CarnegieMellon大学共同开发的,主要用于评价软件企业能力并帮助改善软件质量的标准。CMM为软件企业的过程能力提供了一个阶梯式的改进框架,它基于过去所有软件工程过程改进的成果,吸取了以往软件工程的经验教训,提供了一个基于过程改进的框架;它指明了一个软件组织在软件开发方面需要管理哪些主要工作、这些工作之间的关系、以及以怎样的先后次序,一步一步的做好这些工作而使软件组织走向成熟。CMM给软件组织提供如何对其开发和维护软件过程的控制,如何向软件工程和管理的优秀文化进化等方面的指导。3.2CMM的基本思想CMM的基本思想是,因为问题是由我们管理软件过程的方法引起的,所以新软件技术的运用不会自动提高生产率和利润率。CMM有助于组织建立一个有规律的、成熟的软件过程。改进的过程将会生产出质量更好的软件,使更多的软件项目免受时间和费用的超支之苦。3.3CMM的级别软件过程的改善不可能在一夜之间完成,CMM是以增量方式逐步引入变化的。它明确地定义了5个不同的“成熟度”等级,一个组织可按一系列小的改良性步骤向更高的成熟度等级前进。CMM标准共分为五个级别:初始级、可重复级、定义级、管理级和优化级,从低到高标志着软件生产的计划度越来越高、生产周期越来越短、成本也越来越低。其具体特点和关键过程如表3-1所示:能力等级特点关键过程18 软件开发方法的概述初始级整个软件过程的能力是不可预测的,因为随着工作进展软件过程经常被改变或修定。可重复级建立了基本的项目管理来跟踪进度、费用和功能特征,制定了必要的项目管理,能够利用以前类似的项目应用取得成功。需求管理、项目计划、项目跟踪和监控,软件子合同管理、软件配置管理、软件质量保障。定义级已经将软件管理和过程文档化、标准化综合成该组织的标准软件过程,所有的软件开发都使用该标准软件过程。组织过程定义、组织过程焦点、培训大纲、软件集成管理、软件产品工程、组织协调、专家审评。管理级收集软件过程和产品质量的详细度量,对软件过程和产品质量有定量的理解和控制。定量的软件过程管理和产品质量管理。优化级软件过程的量化反馈和新的思想和技术醋精过程的不断改进。缺陷预防、过程变更管理和技术变更管理。表3-1上面提到了CMM把软件开发组织的能力成熟度分为5个的等级。除了第1级外,其他每一级由几个关键过程方面组成。每一个关键过程方面都由上述5种公共特性予以表征。CMM给每个关键过程了一些具体目标。按每个公共特性归类的关键惯例是按该关键过程的具体目标选择和确定的。我们也可以通过图3-1对CMM的五个等级进行深一步理解。18 软件开发方法的概述图3-1CMM的五个等级3.4CMM的特点通过对软件开发过程中一些关键区域的精确定义,来使软件开发从一个不确定的“黑箱”操作过程,变成各环节是可视、可对偏差随时控制的“透明”操作过程。CMM倡导的是一种相互协作的开放式文化,它以通过提升整个组织的能力,达到提高产品质量,降低开发成本,加快开发进度的目的。3.5CMM的用途Ø1)CMM可用于软件过程改进,为组织策划、设计和实施对其软件过程的更改。Ø2)CMM可用于软件过程评估。为此一个经培训的软件专业人员组确定组织当前软件过程的状态,确定组织所面临的具有高优先级的软件过程的有关问题,并获得组织上对软件过程改进的支持。Ø3)CMM可用于软件能力评价。为此一个经培训的软件专业人员级鉴别合格的能完成软件工作的承包商或监控现有软件工作中所用软件过程的状态。设计CMM是为了指导软件组织,通过确定当前过程的成熟度和通过识别出对软件质量和过程改进至关重要的少数问题,来选择其过程改进策略。18 软件开发方法的概述3.6CMM小结CMM能标识一个成熟软件过程的实践和提供某些当前最高实践水平的例子,但这并不意味着它是详尽无漏的或是可以强制执行的。它只标识出有效软件过程的特征,但是成熟组织必须致力于成功项目来说是必不可少的全部问题,包括人、技术和过程。CMM未来的发展方向是实现软件过程成熟度的较高等级是增量式进化过程,要求对不断改进过程有长期的支持,软件组织可能用十年或更长的时间去建立持续过程改进的基础和文化。CMM现已经得到了众多国家软件产业界的认可,成为当今从事规模型软件生产不可缺少的一项内容。18 软件开发方法的概述参考文献主题一百度>百科http://baike.baidu.com/view/491030.htmhttp://www.ltesting.net/html/69/category-catid-169.html主题二http://www.dnbcw.com/UML.htmlhttp://search.download.csdn.net/search/UML主题三百度>百科http://baike.baidu.com.cn/Periodical_hbmsyxb200303007.aspxhttp://www.dnbcw.com/biancheng/java/dtiy45342.htmlhttp://search.download.csdn.net/search/CMM18 软件开发方法的概述18

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭