_T("欢迎使用 %s"),wxVERSION_STRING);
wxMessageBox(msg,_T("关于"),wxOK|wxICON_INFOR-
MATION,this);
}
(4)程序入口类指定宏:IMPLEMENT_App()
wxWidgets 为了调用 OnInit
方法
快递客服问题件处理详细方法山木方法pdf计算方法pdf华与华方法下载八字理论方法下载
, 提供了一个宏 IMPLE-
MENT_APP(…),这个宏有一个参数,需要将 MyApp 做为参数
传入。 即 IMPLEMENT_APP(MyApp)。 这个宏相当于一个Win
Main 函数(和控制台程序的 main 函数类似),即在 WinMain 函
数中调用了 MyApp中的 OnInit 函数。在加入这个宏后,就可使
用一个 C++编译器将以上的源程序编译生成 exe文件。
程序执行的一般过程:①每个 wxWidgets 程序依照系统平
台的不同, 不同的 main 函数或者 winmain 函数或者其它类似
的函数被调用(这个函数是由 wxWidgets 提供的,而不是由应
用程序提供的)。②wxWidgets 初始化它自己的数据结构并且创
建一个 MyApp 的实例。 wxWidgets 调用 MyApp::OnInit 函数,
这个函数会创建一个 MyFrame 的实例。 ③MyFrame 的构造函
数通过它的基类 wxFrame的构造函数创建一个窗口,然后给这
个窗口增加图标,菜单栏和状态栏。 ④MyApp::OnInit 函数显
示主窗口并且返回真。wxWidgets 开始事件循环,等待事件发生
并且将事件分发给相应的处理。
3 结束语
跨平台类库 wxWidgets, 如同 MFC、QT 类库一样开发 GUI
应用程序,只有充分理解 wxWidgets 的框架结构、控件类等,才
能真正开发出符合要求的程序。 本文详细阐述了使用 wxWidg
ets工具包开发跨平台 GUI的主要控件 Frame,Panel,Sizer 的关
系,并结合实例给出了开发 GUI 程序的框架和流程,希望能对
用 C++语言开发跨平台程序的有志之士有所帮助。
参考文献:
[1] KEVIN HOCK,STEFAN CSOMOR,JULIAN SMART.Cross -Platfor-
mGUIProgrammingwithWxWidgets[M].UK:PrenticeHallPTR,2005,7.
[2] WxWidgets 跨平台 GUI 开发 [EB/OL].http://www.wesleywang.cn/
wiki/index.php/WxWidgets.2007,11.
[3] 熊凯,邓立苗,史新梁.利用 wxWidgets 工具包开发跨平台程序的
研究[J].莱阳农学院学报,2006(2).
[4] W.RICHARD STEVENS,BILL FENNER,ANDREW M.RUDOFF.
UNIX network programming:the sockets networking API[M].Addi-
son Wesley,2003,11.
(责任编辑:卓 光)
基于 CMMI的软件配置管理研究
金 兰
(华中科技大学武昌分校 计算机与电子系,湖北 武汉 430064)
摘 要: 软件工程过程中经常会遇到不正确性、 不可见性、 不完整性、 不一致性等一系列问题。 以软件配置管理
(Software Configuration Management,简称 SCM)作为研究对象,基于能力成熟度模型集成(Capability Maturity Model
Integration,简称 CMMI)
标准
excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载
,提出了软件配置管理的实施步骤。
关键词:能力成熟度模型集成;软件配置管理;配置标识;配置库;版本控制;变更控制
中图分类号:TP393.02 文献标识码:A 文章编号:1672-7800(2009)11-0042-04
0 引言
软件危机始终伴随着软件产业的发展,软件开发过程中产
生了如下一些常见的问题:软件产品缺乏可视性;缺乏完整性
和一致性;软件产品跟踪与审核的困难;制订下一阶段计划缺
乏依据。 为了解决这些问题及与之相关的众多软件研发的问
题,美国国防部资助卡内基梅隆大学软件工程研究所开发了软
件能力成熟度模型集成(Software Capability Maturity Model Inte-
gration,SW-CMMI)。
软件配置管理简称 SCM(Software Configuration Management),
是 CMMI2级中的关键过程域。 首先确认在开发过程中所有会产
生变动的软件产品的关键元素(如代码、
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
文档)为配置项,
并对其在接下来的所有变化进行相应管理, 保留有益的变更,
控制无益的变更。 SCM最根本、最简洁的定义就是用于管理软
件的变更的过程域, 它可以有效控制软件开发过程的混乱程
作者简介:金兰(1979-),女,湖北安陆人,硕士,华中科技大学武昌分校讲师,研究方向为软件工程,数据库,软件测试。
软 件 导 刊
Software Guide
第8卷%第11期
2009年 11月
Vol.8 No.11
Nov. 2009
第 11期
度,从而保证开发方向的正确性和产品质量的可靠性。
1 配置标识
配置管理的对象是配置项,一切功能的实施都必须在这之
上来操作。
1.1 选择配置项
配置项可以由一个或多个文件组成。 配置项要进行一定
的筛选,对于相当稳定,不易变化并且对最终产品没有直接影
响的工作产品可以不作为配置项进行管理,譬如状态报告。 而
项目计划,需求规格说明,设计文档,测试计划和数据,源代码,
可执行代码, 工具, 质量手册等这些就是比较典型的配置项。
另外还可以对配置项进行一定程度的集成, 譬如可以把用来
生成一个“构件”的几个代码文件设定为一个配置项来进行统
一管理。
1.2 标识配置项
配置项标识的内容包括:配置项名称、与其他配置项的联
系以及版本信息等。 标识的具体形式需具有以下 3个特点:唯
一性、关联性和描述性。
1.3 建立配置库
标识好了的配置项要集中存储形成配置库(SCL),软件开
发过程中的各配置项的各版本包括半成品或阶段产品以及最
终产品都要存放在 SCL里。
2 版本控制
为了适应不同环境特点和满足不同用户的个性需求,往往
一个项目保存多个版本。 软件配置管理的版本控制主要解决
下列问题:①根据不同用户的需要配置不同的系统;②保存系
统老版本,为以后调查问题使用;③建立一个系统新版本,使它
包含某些决策而抛弃另一些; ④支持两位以上工程师同时在
一个项目中工作;⑤高效存储项目的多个版本。
版本管理是针对各种软件配置项的修改和变化的管理 。
它的主要功能是记录和追踪文件的变更, 可以在任何时候恢
复任何一个配置项的任意版本,保证产品的可追溯性,为调整
代码、清除 BUG提供了很大帮助。版本管理的另一个主要功能
是支持并行开发, 它能有效地解决版本的同步以及不同开发
者之间的沟通问题,从而减少错误、保证质量、提高了效率。 版
本管理是软件配置管理的核心功能。
2.1 版本演进
版本控制规定:当开发人员编辑或修改一个文件时,必须
通过检出(Check out)方式来访问软件配置库(SCL)中的文件,
修改后再通过检入(Check in)方式以新的版本文件形式出现
在配置库中,而不是覆盖原始文件。
如图 1所示,文件在修改后以后的新版本与原先版本共同
保存在配置库中。 文件的任何变动都可以保留下来,从而不会
担心代码丢失的问题。
图 1 版本的演进
2.2 版本分支与合并
(1)对于同一产品的维护和开发
软件配置管理能够有序、高效地协调同一软件产品的维护
和开发工作。 以图 2为例进行说明。 某软件的当前发行版本为
3.0Version,以 3.0Version 为基线创建两个并行、独立的分支:分
支 3.0Patch和分支 4.0, 分别完成老版本的维护工作和新版本
的开发工作。 维护工作基线 3.0PBL1、3.0PBL2,开发工作基线
4.0BL0、4.0BL1、4.0BL2。 3.0Patch工作完成后可作为 3.0Version
的补丁程序进行发布。 鉴于 3.0Patch 和 4.0 开发的独立性,4.0
版本中仍然包含 3.0Version 中的缺陷,需要将 3.0Patch 的内容
合并(merge)到 4.0中。
图 2 对于同一产品的维护和开发
(2)同一产品不同版本之间的并行开发
假设 3.0Version 的开发尚未结束,当前基线为 3.0BETA,
图 3 同一产品不同版本之间的并行开发
以 3.0BETA 为基准,创建新的分支 3.1,实现 3.0 和 3.1 两个版
金 兰:基于 CMMI 的软件配置管理研究 43· ·
2009年软 件 导 刊
本的并行开发。 当 3.0Version 开发完后, 进行 3.0Version 的发
布。 同时,将从 3.0BETA 至 3.0Version 的变化部分合并到分支
3.1 中,从而使得分支 3.1 包含 3.0Version 中的全部功能,然后
继续进行 3.1的后续开发。 以图 3为例说明该并行开发配置管
理策略的实现机制。
(3)在软件的实际开发过程中,软件产品的不同的功能往
往由不同的开发人员或开发小组分工完成。如果不进行有效的
分支管理甚至不建立分支,势必存在以下问题:①集成或合并
版本时,正常的开发被迫停止;②当整个项目的个别功能没有
完成时,项目无法发布,用户可使用的软件功能为零。
以上问题带来的后果必然是开发效率的降低、项目整体进
度的延误、项目预算的超支等。为解决如上问题,可采取针对不
同功能的并行开发策略。以图 4为例进行说明。在主分支(main
分支)上建立一个集成分支,然后再在集成分支上建立两个独
立的功能 1分支和功能 2分支。开发完成的功能合并到集成分
支上,再将集成分支合并到主分支,并进行测试和发布。从而可
以实现完成多少功能,就发布多少功能的管理目标。
图 4 对于不同特性的并行开发
(4)对于同一个产品的多个定制版本开发
以图 5 为例说明同一产品的多个定制版本并行开发的配
置管理策略。
图 5 基于同一个产品的多个定制版本开发
首先确定产品的多个定制版本的公共部分, 即标准版本。
标准版本拥有自己的分支,以该分支为主分支,可以建立多个
独立的定制版本和补丁分支:①标准版本分支上进行后续的开
发;②补丁分支上修复标准版本的缺陷,并适时合并到标准版
本分支上;③定制版本分支上只进行定制部分的开发,并适时
进行从标准版本分支到定制版本分支的合并。
3 变更控制
在对各个软件配置项做出了识别,并且利用工具对它们进
行了版本管理之后,如何保证它们在复杂多变的开发过程中真
正的处于受控的状态,并在任何情况下都能迅速的恢复到任一
历史状态就成为了软件配置管理的重要任务之一。 因此,变更
控制就是通过结合人的规程和自动化工具,以提供一个变化控
制的机制。 变更管理的控制流程如图 6所示:
(1)制作更改申请单(CR)
每个软件开发组织都要事先结合软件本身的特点,按有关
规定设计一份标准格式的 CR。
(2)申请人提出更改申请
配置库管理员(CMO)负责接收 CR并审查 CR的清晰性和
完整性。 不符合要求的,及时退还给申请人;符合要求的,打上
跟踪标记,并记录在更改数据库中。
(3)由变更控制委员会(CCB)审核
CMO完成 CR审核和标识后,提交给 CCB讨论。 CCB讨论
的内容包括:更改的必要性、技术的可行性、其它更改策略的可
行性、所涉及的软件配置项、对系统功能和性能的影响、所需的
资源的合理性和充分性、 对整个开发进度和经费的影响等,最
后决策是否实施此项变更。
CCB可以做出批准、不批准或推迟更改请求的决定。 被拒
绝的 CR 要连同拒绝理由一并退回给更改申请人;需要延期的
CR则由 CMO 存档,在适当的时候再提交 CCB 讨论;已批准更
改的 CR则按后续步骤执行。
(4)提取软件配置项(SCI),进行修改
图 6 变更管理控制流程
44· ·
第 11期
CMO将获准的 CR交送开发组织负责人,由其负责安排相
应的资源,从配置库中提取 SCI 来实施更改。 在更改实施的过
程中,严格按设计、编码和测试的流程进行,同时,与程序相关
的文档也必须做出相应修改,以保证一致性。 一旦完成更改还
必须有反复的回归测试来保证变更已达到预期的目的,并且不
会影响其它的正常功能。
(5)提交修改后的 SCI
将修改后的 SCI 和相应的回归测试报告一并提交给
CMO,再次记录到更改数据库中。
(6)重建软件新版本
(7)CMO生成变更报告并通知给所有相关人员。
4 状态报告
配置状态报告就是根据配置项操作数据库中的记录来向
管理者报告软件开发活动的进展情况。这样的报告应该是定期
进行,并尽量通过 CASE 工具自动生成,用数据库中的客观数
据来真实的反映各配置项的情况。配置状态报告根据报告应着
重反映当前基线配置项的状态, 以作为对开发进度报告的参
照。同时也能从中根据开发人员对配置项的操作记录来对开发
团队的工作关系作一定的
分析
定性数据统计分析pdf销售业绩分析模板建筑结构震害分析销售进度分析表京东商城竞争战略分析
。
配置状态报告应该包括的主要内容:配置库结构和相关说
明、开发起始基线的构成、当前基线位置及状态、各基线配置项
集成分支的情况、各私有开发分支类型的分布情况、关键元素
的版本演进记录、以及其它应予以报告的事项。
状态报告中提供的数字是用数据库中的客观数据通过工
具自动生成,因此它可以真实的反映出各配置项的当前状态及
变更情况,比如可以客观地反映出更改申请单的已完成和未完
成工作量,这就避免了项目实际情况与进度报告不符的问题发
生,从而可以更有效的进行管理和控制。
5 配置审计
配置审计主要作用是作为变更控制的补充手段,其目标是
为了确保软件配置管理的有效性, 不允许出现任何混乱现象,
体现了配置管理的最根本要求。 在某些情况下,它被作为正式
的技术复审的一部分, 但当软件配置管理是一个正式的活动
时,该活动由软件质量管理人员单独执行。
6 结束语
软件配置管理的主要任务也就归结为以下 5 部分:对配置
项进行标识;对配置项进行版本控制;对配置项进行变更控制;
定期进行状态报告和定期进行配置审计。几个领域之间的关系
如图 7所示。配置标识和版本管理为基础,变更控制为核心,再
辅之以状态报告和配置审计作为监控的手段。
图 7 软件配置管理各关键领域之间的关系
软件配置管理对于改进软件过程、提升软件组织能力成熟
度有较大帮助。将配置管理的五大关键过程域融入到软件生命
周期的各个环节,确保了软件开发过程的正确性、完整性、一致
性和可追溯性。
参考文献:
[1] 徐玉明.软件配置管理改进
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
及其应用的研究[D].武汉:华中
科技大学,2006.
[2] 郑人杰.基于软件能力成熟度模型集成(CMMI)的软件过程改进:
方法与实施[M].北京:清华大学出版社,2003.
[3] 孙佳.软件配置管理方法研究及在项目开发中的实施策略[D].北
京:北京邮电大学,2005.
[4] 郭为,陈建明.软件配置管理服务模型研究[J].计算机工程与设
计, 2006(5).
[5] 庞胜.基于 CMM-SCM 的软件配置管理系统的研究与实现[D].南
京:南京大学,2004.
[6] (美)克里西斯 CMMI—过程集成与产品改进指南[M].北京:清
华大学出版社,2004.
[7] 陈帆,尹黎明,肖卫军,沈全勇.软件配置管理中的分支管理与协
作机制研究[J].计算机工程与科学,2005(1).
[8] 徐慧.ClearCase 配置管理及其应用[J].计算机工程,2005(16).
[9] 于宏霞,陈凯,白英彩 .基线技术在软件配置管理过程中的应用
[J]. 计算机应用与软件,2006(2).
[10] 张友生.CMM /CMMI 在中国的实施状况调查报告[J].计算机工
程与应用,2006,(7).
[11] 王志和,凌云.基于 CMMI 的软件配置管理在小型企业中的应用
[J].长沙大学学报,2007(2).
[12] 姜平利,傅育熙.软件配置管理及其实现[J].计算机工程,2004
(30).
(责任编辑:王 钊)
金 兰:基于 CMMI 的软件配置管理研究 45· ·