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