软件开发管理系统设计与实现_第1页
软件开发管理系统设计与实现_第2页
软件开发管理系统设计与实现_第3页
软件开发管理系统设计与实现_第4页
软件开发管理系统设计与实现_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、学校代号10532学号G0*分类号密级 工程硕士学位论文软件开发管理系统设计与实现学位申请人姓名吴赟培养单位软件学院导师姓名及职称叶柏龙教授学科专业软件工程研究方向软件项目管理论文提交日期学校代号:10532学号:G0*密级:湖南大学硕士学位论文软件开发管理系统设计与实现学位申请人姓名:吴赟导师姓名及职称:叶柏龙教授培养单位:软件学院专业名称:软件工程论文提交日期:2011年月日论文答辩日期:2011年月日答辩委员会主席:Software development management system design and implementationByWu YunB.E.(Hunan Univ

2、ersity2006A thesis submitted in partial satisfaction of theRequirements for the degree ofMaster of EngineeringInSoftware EngineeringIn theGraduate SchoolOfHunan UniversitySupervisorProfessor Ye BoLongJuly,2011湖南大学学位论文原创性声明本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的

3、成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。作者签名:日期:年月日学位论文版权使用授权书本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权湖南大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。本学位论文属于1、保密,在_年解密后适用本授权书。2、不保密。(请在以上相应方框内打“”作者签名:日期:年月日导师签名:日期:年月日硕士学位论文摘要软件配置管理是CMM中的一

4、个关键过程域,贯穿于整个软件生命周期中,其目的是建立和维护软件产品的完整性、一致性和可追踪性.讨论了软件配置管理的基本概念,提出了一种基于CMM实施配置管理的流程,重点讨论了配置标识、版本控制、变更控制、配置状态统计和配置审核等实践活动.本文以软件配置管理的功能为主线,聚集于对国内企业的开发过程的特点,针对特定环节,浅谈可能存在的问题以及相应的解决方法或实现途径。本文是讨论软件开发管理系统的设计和实现的研究。主要研究的内容包括:1.2.整个系统的体系结构的设计。针对这样一个复杂的大型系统,怎样的架构才能保障整个系统的顺利建立,并保证长期稳定的运行;3.对于复杂的管理系统,如何提供完善的维护管理

5、,以实现实时,科学管理。通过对软件开发管理系统的设计和实现的研究,体现了软件开发管理的一种实现方案。通过此课题的研究,使得研究成果能够运用于软件开发过程管理中,提高软件项目的开发速度,提升软件服务质量,从而为软件项目的顺利实施提供了基础保障。关键词:软件配置管理;CMM;SCM;.NET;软件开发管理系统设计与实现AbstractCMM software configuration management is a key process in the field,throughout the entire software life cycle,the goal is to establish

6、 and maintain the integrity of software products, consistency and traceability.Discusses the basic concepts of software configuration management is proposed based on CMM implemented a configuration management process,focusing on the configuration identification,version control,change control, config

7、uration status and configuration auditing statistical practice.This software configuration management functions to the main line,gathered in the process of development of domestic enterprises,the characteristics of specific aspects of possible problems and corresponding solutions or Realization.This

8、 article is to discuss the development and management system software design and implementation of research.The main contents include:1.The whole system architecture design.For such a large and complex systems,how to protect the structure of the smooth establishment of the whole system,and to ensure

9、 long-term stable operation;2.Research data collection.Data collection,the whole management system is based.The integrity of data acquisition, real-time and correctness of the normal operation of the entire system of protection;3.For complex management system,how to provide comprehensive maintenance

10、 and management,in order to achieve real-time,scientific management.Software development management system through the design and implementation of research,development and management software reflected a realization.Through this research project, making the research results can be applied to softwa

11、re development management,improve the speed of software development projects,improve software quality of service forthe software project to provide a basis for the smooth implementation of safeguards.Key Words:software configuration management;CMM;SCM;. NET;目录学位论文原创性声明.I 摘要.I Abstract.II 目录.IV 第1章绪论

12、. (11.1课题的背景和意义 (11.2国内外配置管理现状综述 (21.3本文的主要研究内容 (61.4本文的组织结构 (7第2章相关理论知识介绍 (82.1CMM (8处理任务的组织方式 (202.3Oracle技术 (20第三章软件开发过程管理系统开发设计规划 (223.1系统总体技术方案设计 (223.2系统功能结构设计 (24系统总体功能结构设计 (243.3系统处理流程设计 (253.4子系统功能结构设计 (263.5任务子系统处理流程设计 (29部门人员维护 (30岗位权限维护 (30菜单维护 (30子系统维护 (303.6辅助功能子系统流程设计 (31留言管理 (31通告发布

13、(313.7系统开发环境 (32基本要求 (32硬件要求 (32软件要求 (323.8运行环境设计 (32运行环境要求 (32第四章软件开发过程管理系统的实现 (334.1系统框架和权限控制 (33功能组 (33功能组 (414.2任务系统详细设计 (46功能组 (464.3文件配置管理详细设计 (58【cf_create_package】函数 (58【cf_delete_package】函数 (59【cf_import_file】函数 (59【cf_export_file】函数 (60【cf_delete_file】函数 (60【cf_relateto_file】函数 (614.4版本配置管

14、理详细设计 (61【cv_version】函数 (61【cv_delete_version】函数 (62【cv_create_scheme】函数 (634.5版本查询模块详细设计 (64【ver_doc_query】函数 (64【ver_code_query】函数 (644.6版本变更控制模块详细设计 (65【cu_file_apply】函数 (65【cu_file_abort】函数 (66【cu_file_audit】函数 (66【cu_file_checkoutto】函数 (67【cu_file_checkout】函数 (67【cu_test_createplan】函数 (68【cu_te

15、st_checkinfrom】函数 (68【cu_test_checkin】函数 (69【cu_test_accept】函数 (70【cu_test_abort】函数 (70【cu_test_commit】函数 (71【cu_test_audit】函数 (714.7工作剪报功能模块 (724.8通告发布功能模块 (74总结与展望 (76参考文献 (77致谢 (78第1章绪论1.1课题的背景和意义随着上个世纪70年代的“软件危机”的产生使人们发现,传统的“软件作坊”往往依赖于人们急于创造财富的心理,生产处于一种混沌的、无序的状态,软件的质量得不到保证,甚至中途撤销软件项目的事也常有发生。随着软件

16、产业的发展,软件产品的规模越来越大,开发越来越复杂,开发中所产生的大量中间产品也越来越难于控制,以前传统的生产方式已经不能满足需求了。是采用现代化的管理方法,还是沿用传统的研发手段,已成为软件业发展的关键。与此同时,为了使软件开发组织能够从初始混乱的开发过程,过渡到可重复、可管理的有序化过程,进而上升到更高的成熟度水平,我们需要采取一些方法来规范软件的开发过程,进行有效的软件开发管理。正是在这种背景下,“软件工程”和“软件配置管理”概念被提出,经过长时间的实践,已经形成了一套比较成型的理论体系。软件配置管理是软件过程的一个关键部分,是支持项目团队开发和维护,是软件产品演化过程趋于稳定的一系列控

17、制规则。软件配置管理系统在软件质量管理中起着重要的作用,是CMM I质量管理体系得核心内容之一,是一门用来记录并控制软件产品数据的管理学科。软件开发过程是一个持续不断变化的过程,在这个过程中会产生许多信息,同时由于不可避免的变更,软件产品相关文档、资料、数据的残缺与不一致,软件代码当前实现状态不清晰,不同个人对软件的更改冲突等,成了软件产品开发过程中普遍存在的问题,其结果是出现各类软件故障或造成软件可维护性、可继承性较差。软件配置管理正是为解决这些问题而提出的,它为软件开发提供了一套管理办法和活动原则。随着软件开发规模的不断增大,现在人们越来越认识到配置管理是适应软件开发需求的一种非常有效和现

18、实的技术,对于提高软件质量和软件开发过程的可靠性有着重要意义。什么是软件配置管理软件配置管理(Software ConfigurationManagement, SCM,是一套规范、高效的软件开发基础结构。SCM可以系统地管理软件系统中的多重版本;全面记载系统开发的历史过程,包括为什么修改,谁作了修改,修改了什么;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。SCM对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。(引用GB

19、/T11457(1995软件工程术语、CMMII等相关定义配置管理的发展配置管理的概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标准。而软件配置管理概念的提出则在20世纪60年代末70年代初,加利福利亚大学的Leon Presser教授撰写了一篇名为“Change and ConfigurationControl”的论文,提出控制变更和配置的概念,这篇论文同时也是他在管理该项目(这个过程进行过近1400万次修改的一个经验总结。之后在1975年,他成立了一家名为SoftTool的公司,开发了自己的配置管理工具:C C C,这也是最早的配置管理工具之一。

20、随着软件行业的不断发展,软件配置管理越来越成熟,从最初的仅仅实现版本控制,发展到现在的提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列全面的管理能力,已经形成了一个完整的理论体系。同时在软件配置管理的工具方面,也出现了大批的产品,如:最著名的ClearCase;开源产品CVS;入门级工具Microsoft VSS;新秀Hansky Firefly。4配置管理的主要活动配置管理的主要活动包括:识别配置、变化控制、状态记录和报告以及配置审计。识别配置是指找出需要管理的中间产品,使其处于配置管理的控制之下,并维护它们之间的相关关系,一般来说,这些中间产品主要包括项目文档,源代码,

21、执行程序,相关设备及资料等;变化控制是指记录变化的有关信息(包括变化的内容、原因和实现者等,用以保障软件产品的质量;状态记录和报告是指通过记录各个配置的变化状态,达到记录和报告整个软件的变化过程的目的;配置审计是指利用配置记录验证软件达到了预期的要求。1.2国内外配置管理现状综述国内企业相对于欧美的企业留给别人的印象一般是客户需求繁杂,开发流程单一,开发规模较小,维护期变更繁多。这些特点从本质上来说,可能是由于人的性格特点决定的,他们的细致入微和对所要求事情的精益求精使得我们在做软件项目时,各个细节都要清清楚楚,每件事情都能条理清晰。面对这种情况,软件配置管理的作用和功能显得尤为重要,它给项目

22、提供了一个清晰的流程,合理的控制。如果在项目组内实施的话,便于配置项历史记录的回溯,可以节约对人来说尤其注重的时间,也能本质上提高软件产品的质量;如果是基于企业级建立的话,更是能积累软件财富,提高了软件重用率和软件的生产力,而且极大程度上降低了开发人员流动造成的风险,因为本项目的人员即使无奈被调出,其它项目组由于有着相同的开发规范,被调入的人员和本项目组的人员沟通也会比较容易,具体操作也会非常容易上手。于是,软件配置管理的实施成为一种必然。1关于配置标识在软件开发过程中,为了便于控制和管理,对所有软件配置项,都应按一定的方式进行命名和组织,一般命名采用字符串描述,表明对象的类型(例如:文档、程

23、序、数据。虽然客户业务上千差万别,但是从项目的开发产出和最终的产品交付清单上来看,交付物大体上还是相似的,因此,配置项如果在开始时就收集建立得比较合理完善的话,在经过类似CCB的机构审核和各个项目组的PM批准后,会给日后的工作少去很多不必要的麻烦。另外,有一点值得一提的是,当你在一个部门项目组工作过,如果换到另一个部门的项目组,你会很快熟悉新的工作环境,因为各家国内企业都具备着很多的共性,配置项的命名等具有很大的相似性,这恐怕是国内企业在配置项上的一个最大特色了。在人员的配备上,根据实际情况,可以安排相应人数的配置管理员进行配置库的创建,以及日后的工作空间的维护。2关于版本管理理想状态下,每个

24、配置项我们都希望只保存一个版本,既节省空间又看上去清晰,可是实际情况往往是一个项目要保持多个版本,并且随着系统的进一步维护,版本的数量会明显增加。笔者曾经做过这样一个维护项目:维护初期的时候只有少量的用户,后来,随着业务的推广以及产品知名度的提高,又增加了不少的用户,但是这些新增用户的业务流程和以前设计的有些不同,于是,一开始的时候我们采取开发维护两个系统的方法,可是后来又对这两个系统进行了一体化的处理,这样,又恢复到了一个系统的维护。其间,版本产生了不少的演化。版本管理的重要性不言而喻。由此,就引出了配置管理的版本控制,它主要为了解决下列问题:(1根据不同用户的需要配置不同的系统;(2保存系

25、统老版本,为以后调查问题使用;(3建立一个系统新版本,使它包含某些决策而抛弃另一些;(4支持两位以上工程师同时在一个项目中工作;(5高效存储项目的多个版本。外包企业中的版本控制相对来说是比较简单的,以上要解决的五个问题都会涉及到,但相对来说不需要考虑得很复杂深入,这是因为项目相对较小(一般80人/月左右,就算项目很大的话,这个性格上谨小慎微,极度害怕失败的民族的客户一般会为了降低风险,要求开发方把一个大项目切割成几个小项目来完成,这样,虽然给日后的管理造成一定的影响,但是软件产品的成功概率会大大增加。随着项目的分割变小,涉及人员的减少,使得多个软件开发人员同时对一个配置项进行操作与处理的情况也

26、相对降低许多,即使偶尔遇上诸如此类的事情也可以通过相对简单的方式(例如沟通协同解决。人对于版本控制的安全授权机制一般都非常重视,它贯穿于软件开发周期的各个时期,各个方面。一旦项目启动,不同的项目组成员都会被分配到一个唯一的用户ID号,这表明了用户会拥有一个可供任意使用的私人空间,而且根据不同的工作内容,这唯一的用户ID号也相应地明确了不同的用户权限:负责软件升级者有最大的读、写、运行的权限,一般开发人员在交付的目录下只有读权限,而在团队共享的集成工作空间的开发目录下有读、写、运行的权限等。当然,安全授权机制的方案可以有很多种,可以根据不同的情况进行制定,但是结论是我们应该认识到的:它对各个配置

27、项的管理起到了一个不可估量的作用,既减少了发生错误的概率,也会使项目组成员更有责任感,良好习惯的培养预示着项目开发团队的光明前景,良好的开始是成功的一半。3关于变更控制变更在软件项目的开发期和维护期中都是非常常见的现象,可以毫不夸张地说,变更控制的成功与否将很大程度上影响到客户对开发项目组的满意度,因为人是比较暧昧的民族,我们认为一定的事情他会说可能,我们认为可能的事他一般不会提,直到他能基本确认要发生,所以一旦客户要求变更,基本上是很难说不的,能行得通的方法就是和他们谈时间,但我们怎么可能和这种工作起来不要命的民族相比,谈多了,会认为我们干活不卖力,谈少了,又觉得太对不起自己的开发团队,成天

28、加班怎么行,这真是骑虎难下,进退两难的境地啊!此时,作为软件配置管理的核心功能之一的变更控制管理就要发挥其里程碑式的作用了,合理制定变更流程,以此来提高办事效率,会使我们的变更井然有序,能以最佳的状态去面临每一次很难说不的变更。从变更流程本身来说,实际上并不会太复杂,有过几次变更经验,对此做一个好好的总结和思考,很快便会制定出一个适合的流程来。但是,一旦建立了,就要严格遵守,客户一般不会轻易变化他们的变更请求方式,所以,从这个层面上讲,我们制定好了的流程一般也不会需要什么很大的过程改进。先期的试验项目如果获得成功的话,在整个公司的推广上应该不会带来很大的障碍,当然,各个项目组进行适当的裁剪也是

29、可取的,毕竟,这个世界上不会有两片相同的树叶。有时候变更的内容较为简单,但是人对测试的要求是相当严格的,一个很简单的变更可能会要求有很多条测试CASE,并且会要求一个不少的交付,这样的测试严格程度在国内一般的软件企业中是少见的。客户对变更履历的要求也是非常严格的,所有的文件一旦发生变更,不管是大是小,时间是宽松或紧张,都会要求我们留下详细的履历,因为在他们眼里,凡是发生的变更都是重要的。为了保证配置项的可追溯性和可读性,这一点的确是非常必要的。4关于配置审核确认变更是否已正确实施有两种措施,一种是正式的技术复审,另一种是软件配置审核。正式的技术复审着重考虑所修改对象在技术上的正确性,复审人员对

30、该对象是否与其他软件配置项以及在修改中可能发生的疏忽和副作用进行全面的评估。软件配置审核作为一种补充措施,主要考虑在正式复审中未被考虑的因素。由此我们可以看出,软件配置管理工作不仅仅是项目组内配置管理员的工作,它是充当各个角色的项目组成员之间的协同工作,只有彼此相互配合,这样才能把配置工作做好。从实际情况来看,复审人员的工作责任是多而重的。复审人员在产品交付前或维护工作中定期对项目进行的配置审核活动所涉及到的范围非常广泛,例如整个配置管理的流程是否被遵循,是否遵守软件工程标准,对配置项是否做了特别的标记,所有的相关配置项是否已一并修改,对已发生变更请求的配置项的标识号是否保证了唯一,修改的日期

31、和执行修改的人员是否已经注明等等。这种审核活动起到了一个监督、控制的作用,原本做得好的项目组继续保持,有欠缺的及时查缺补漏,这样从旁处着手分寸拿捏恰到好处的话,会给软件配置管理在整个软件生命周期里的实施有一个很大的牵引力。在国内企业中,这种类似活动还是比较常见的,而且每次所要确认的相关点还会很多,充分借鉴了人注重细微处的好习惯。5关于配置状态报告为了让开发团队和客户了解项目所处的状况,配置状态报告还是要进行的。当某个软件配置项被赋予新标记或更新标记时,或被批准一项修改申请时,或配置审核完成时都将执行一次配置状态报告。由于它能跟踪任意模式的配置项,提供完整的各种变化的历史版本和汇总信息,所以信息

32、累计起来,会为本项目组的管理控制和以后相似的开发和维护提供一个很有力的参考依据。配置状态报告的模板大体一致,有变更状态,配置库状态,发行信息,备份信息等栏目内容,实际上概述发生了什么事情,谁做的,何时发生的,有什么影响这样一些问题。各个项目组PM,软件配置管理人员,客户等所希望看到的配置状态统计信息的内容可能会有不少的差异。项目组PM可能关心当前发布修复了哪些BUG,分别是什么类型的,是不是都顺利交付了等等;而客户如果心中有杆秤,他可能会更注意实际的工作量等。总之,关注方面千人千面,因人而异。我们要善加利用这个有用的资源。6关于管理工具的应用一些满足软件组织切合实际需求的管理工具可以促使软件配

33、置管理更为合理有效,这是众所周知的;但是要想选择一款完全合适的,的确不是一件容易的事。如果是免费的,功能不很完备的,未必适合公司的管理配置的整个流程;如果是付费的,功能庞大的,可能经过裁剪会制定出合适的,但是购买的价格可想而知。对日软件外包企业现在在中国各大城市遍地开花,不象几年前奇货可居,所以如今,就按日方付给中方的元/人月(工资来讲也日趋缩小,外包企业可能承接的外包量越来越多,性价比却不见得有所提高,企业盈利也不会有什么质的飞跃。针对这种情况,企业领导也不见得会付巨资去买一些高档管理工具,最好的方法应该就是先用免费工具去实现配置管理中的一些基本功能,然后可以根据实际需要自己去开发一些小工具

34、,要知道对日软件外包企业中虽然很少有配置管理专家,但是却会有了解自身企业需要的管理和技术人才,两者相互补足,随着时间的推移,功能的逐步完善,到时就会通过自己企业的力量开发出一套适合自身流程的工具。这样,既节约了成本投入,又有了合适的工具,更重要的是在企业内部也会使得管理和技术人员得到很好的沟通,更利于开展工作,一举三得,何乐不为。3.1合适的配置管理工具选择分析由于软件配置管理过程十分繁杂,管理对象错综复杂,如果是采用人工的办法不仅费时费力,还容易出错。因此,引入一些自动化工具是大有益处的,同时也是做好软件配置管理的必要条件。目前,国外关于配置管理的研究相当活跃,也出现了一些产品和原型系统。其

35、中具有代表性的软件配置管理产品主要包括有Rationnal公司的Clearcase,Platinum公司的CCC/Harvest,Microsoft的VisualSoureSafe等。配置管理系统主要有格勒诺布尔大学的Adele,Compaq系统研究中心的Vesta等(1常用软件配置管理工具简介·IBM公司的Rational C1earCase是最好的商用版本控制软件,功能强大,但价格比较贵;而且用户在使用它之前一般都要经过培训,很难无师自通;·CVS是开放源码组织维护的软件,在Linux 平台尤其有广泛的应用,完全免费,但缺乏技术支持;·VSS是Microsof

36、t公司的产品,在Windows平台的中小型项目开发管理上方便快捷,但它只能在Windows下运行,不能在Unix,Linux下运行。(2选择软件配置管理需要考虑的因素·功能是否符合实际需求,是否符合团队特点;·性能是否满意;·费用是否可以接受;·售后服务如何。(3配置管理工具选择参考方案综合以上配置管理工具选择需要考虑的因素及中小型软件企业的特点,提出以下工具选择参考方案:·开发人员较少,资金有限的软件企业建议首先采用VisualStudio软件包中的VSS做为配置管理工具。由于VSS安装、配置、操作都十分简单,上手容易,这样在执行配置管理的过

37、程中,工具的培训不会带来太大的阻力,大家可以集中精力理解配置管理,从而很快就在团队中形成了版本控制、配置管理的氛围与习惯;然后再构建CVS 服务器,作为整个开发组织的配置管理工具,CVS能够有效地支援Windows、Linux两个平台上的应用开发,其性能优秀,而且免费。·开发团队规模较大,资金相对雄厚的软件企业建议采用Rational C1earCase等商用版本控制软件,这样可避免像CVS、VSS等工具由于本身某些方面的功能不足而带来的不方便,从而可以帮助软件企业更好地实施软件配置管理。1.3本文的主要研究内容本课题是对软件开发管理系统的设计和实现的研究。该系统设计分为两大模块,分

38、别是任务控制子系统和版本控制子系统。其中版本控制子系统采用传统的CS结构,任务控制子系统拟采用BS架构。主要研究的内容包括:1.整个系统的体系结构的设计。针对这样一个复杂的大型系统,怎样的架构才能保障整个系统的顺利建立,并保证长期稳定的运行;2.数据采集的研究。数据的采集,是整个管理系统的基础。数据采集的完整性、实时性和正确性是整个系统的正常运行的保障;3.对于复杂的管理系统,如何提供完善的维护管理,以实现实时,科学管理。通过对软件开发管理系统的设计和实现的研究,体现了软件开发管理的一种实现方案。通过此课题的研究,使得研究成果能够运用于软件开发管理中,提高软件项目的开发速度,提升软件服务质量,

39、从而为软件项目的顺利实施提供了基础保障。1.4本文的组织结构本文主要研究了软件开发管理系统的设计与实现。文章的结构安排如下:第二章介绍相关理论背景知识;第三章是系统的概述,包括系统的体系结构以及开发环境的介绍;第四章介绍了系统的详细设计;最后是结论,对论文的作了总结,并对系统的改进提出了自己的建议和设想。第2章相关理论知识介绍本系统应用到的技术包括:CMM、.NET技术、Oracle技术。2.1CMM1概述能力成熟度集成模型(CapabilityMaturityModelIntegration,CMM I是由美国卡耐基·梅隆大学的软件工程研究所(SE I组织开发,于2002年发布的一

40、种规范、实用的途径来管理软件过程的模型1.CMM I通过指导软件开发人员的活动来改进软件过程,以达到软件过程可复用性、可定量管理、可有效控制的目的.软件配置管理(Software Configuration Manage2ment,SCM是CMMI可重复级的一个关键过程域(Key ProcessArea,KPA,其目的是在整个项目的软件生命周期中,保持软件产品的完整性和可追踪性,这包含了对改变的控制和所有能影响到改变的软件因素的管理.基线为了有效地控制变动,SCM专门引入了基线的概念.基线常对应于开发过程中的里程碑,其标志是有一个或多个SCI的交付,且这些SCI已经过技术审核而获得认可.对于已

41、成为基线的SCI,在进行修改时,必须按照一个特殊的、正式的过程进行评估,确认.基线一般分为功能基线、指派基线和产品基线.功能基线:系统分析与软件定义阶段结束时,产生系统设计规格说明中对待开发软件系统的规格说明,经正式评审和审批后建立该基线.指派基线:需求分析阶段产生软件需求的规格说明,经正式评审和审批后建立该基线.产品基线:组装与系统测试结束时,经系统测试与确认后,产生有关所开发的产品的全部配置项的规格说明,经正式评审、鉴定和审批后建立该基线.角色软件配置管理过程中主要涉及到的角色包括项目经理、配置控制委员会(Configuration ControlBoard,CCB、SCM小组、CM经理、

42、配置管理员、系统集成员、开发人员和测试人员,不同的角色具备且只能具备自己职责范围内的相应权限.项目经理是整个软件开发活动的负责人,主要的职责是制定和修改项目的配置管理策略,批准和发布配置管理实施计划,审阅CCB的报告.配置管理员根据配置管理计划执行各项管理任务,完成配置审核并提交报告,对开发人员进行相关的培训.CCB负责指导和控制配置管理的各项具体活动的进行,审核变更申请,根据配置管理员的报告决定相应的对策,为项目经理的决策提建议.对于普通的小型软件项目而言,CCB可由项目经理或者配置管理员替代.CM经理负责为项目团队提供全面的配置管理基础设施和环境,并支持配置管理活动的角色.版本版本是某一配

43、置项的已标识了的实例.在一般的开发中,修改后的文件保存会直接覆盖原有文件,而在配置管理中,配置项文件在发生变更后保存是形成该文件的新版本,与原有版本一同存在,这样使整个开发过程有迹可寻,确保回溯性和可视性.基于CMM的软件配置管理的实施SCM是CMM中的一个基础构件,在这个KPA中包含了业界普遍认可的、行之有效的最佳实践,然而,在该模型中,并没有给予如何实施配置管理的指导,只告诉实施人员在配置管理过程中应该做什么以及一些简单的方法.这给采用该模型进行软件过程改进、实施配置管理的组织带来了一定的难度.在实施配置管理的过程中,由SCM组与项目经理一起制定SCM计划.要将制定配置管理计划的任务分配到

44、指定的人员,要确保负责制定配置管理计划的人员在目标、规程和方法等内容方面接受培训,同时要确保所有受影响的部门或者个人都要参与评审配置管理计划.创建配置管理环境(1设置软件配置组织结构SCM过程实施必须有一个独立的机构,如SCM组.配置管理组由配置管理专职人员组成,目前主要由CM经理、配置管理员.SCM过程中还涉及到其他的角色,具体见前文所述.(2建立SCM文件体系SCM实施文件体系包括:第1层的SCM方针政策,描述SCM的目标、方法、途径,由CM经理编制;第2层次的SCM过程,是整个文件体系的核心,将SCM标准的包括执行活动在内的所有共同特性的关键实践予以文件化和制度化,由CM经理组织人员编制

45、;第3层次的配置管理规范和适合目标机构的配置管理基本章程,为具体执行SCM活动提供作业规范或模板,一般由从事这项具体工作的人员编制,由CM经理审核,经项目经理批准.下层的文件支持上层的文件,形成金字塔构架的文件体系.(3提供SCM所需的资源组织必须提供足够的资源以保证具备实施SCM的执行能力.在实施CMM过程中,SCM是最需要软件工具支撑的KPA.这些工具包括SCM软件、配置状态统计软件等,如Rational Clear Case、CVS等.选择工具时须考虑SCM目标和过程,组织的规模、软件开发方式和特点.在购买了工具软件后,必须对操作人员进行上岗培训.(4建立软件配置管理库系统建立软件配置管

46、理库系统的主要目的是用来存放软件基线.它可以对软件配置管理进行多级的控制,譬如在产品的开发周期中,不同的阶段有着不同力度的配置管理,随着产品不断成熟,控制力度也随之增强;提供对库中配置项的存储和修改的功能,支持在相关组之间和库中不同控制级间共享和传输配置项;支持生成软件配置管理的报告文档以及软件基线内容的报告文档.标识配置项确定置于配置管理下的配置项,确保已确定的每个配置项有唯一标识,用于跟踪和管理.在选定配置项时应遵循下列准则之一:(1两个或以上的组共同使用的工作产品(2可能因需求的差错或变更而做相应变化的工作产品(3彼此相关并且其中之一发生变更将会使得其他工作产品发生变更的工作产品;(4对

47、整个项目至关重要的工作产品.版本控制版本控制是SCM的核心,其目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,保证产品的可追溯性.在本方法中,根据配置项的状态及其变迁,制定了版本标识规则与版本控制流程.配置状态统计配置状态统计记录和报告管理SCI所需的信息,如基线和对基线的变更的实现状态.以便于开发人员及时地了解或查阅配置项的当前状态和历史版本,避免因沟通不当而造成的软件开发版本的混乱.配置审核配置审核主要作用是作为变更控制的补充手段,其目的是验证软件基准库内容的一致性和完整性.通常在每次产品发布之前(即在里程碑评审后实施配置审核.执行配置审核有以下活动:(1组成审核小

48、组,并明确各自的职责.(2收集审核材料,确定审核内容和日程安排.(3进行功能审核:检验软件基准库内容是否一致,如验证配置项的实际功能与软件需求规格说明一致,确认当前基线配置项的正确性,完整性,完备性.(4进行物理审核:检验软件基准库内容是否完整,如验证项目的配置管理工作是否符合适用的标准和规程;验证交付的产品确实包含所有必需的项目,如正确版本的源代码、资源、文档等.(5形成配置审核报告,并上报相关人员.(6跟踪审核发现的问题的纠正措施直至问题解决,纠正情况记录于审核问题跟踪记录中.SCM的对象是软件研发活动中的全部开发资产.因SCM覆盖了整个软件开发过程,故它是改进软件过程、提高过程能力成熟度

49、的理想切入点.随着信息技术的不断发展,在软件项目开发过程中形成大量的信息资源,如需求文档、设计文档、代码、测试文档、原代码、软件说明书和手册等。同时,软件项目开发和维护是一个不断增加、反复修改的过程,软件项目不仅要求实现对文档、代码的增删改、浏览、检索和统计汇总等静态管理,还需要记录、跟踪和回溯文档、代码的设计历史,这对积累设计经验、实现软件维护创新尤为重要。所以,在软件项目开发和维护过程中建立本企业的知识库及经验库,有效地控制和使用软件信息资源,为开发维护人员提供一个实时的配置管理平台,是软件系统开发与实施的基础。1软件项目开发和维护过程问题分析1.1版本难以控制软件开发和维护过程的特点是连

50、续性,从软件项目立项、需求分析、总体设计到系统运维的过程中兼具功能变化和新增功能,或者适应不同的环境(如不同的操作系统、根据不同用户的要求开发了特点各异的版本,这些版本之间存在大量的共享模块(图表、原代码、文档等等,经过多人次修改后,发现实际有用的版本却不知去向了。1.2资源变化频繁企业的软件开发过程中其资源急剧增加,由于没有控制好软件变化过程,项目经过了几次大改动,几乎记不起原来是什么样子了;根据用户提出的多次变更要求更改后的软件,与用户的需要相距甚远,无法恢复原来的版本;如某维护人员未经正常的软件变化申请,自行修改软件中的某一错误,虽然局部错误是改正了,但由于没有考虑到局部改动对全局的影响

51、,使得整个系统不能正常工作,造成开发过程的停滞。1.3配置审核问题对软件开发和维护的变化没有正常的审核过程,对于用户所提出的变更要求,缺少必要的审查和确认程序,发布出去的产品中,缺少文档,或者文档与应用不一致。1.4项目管理问题项目组成员间源代码的更新和保存记录变得越来越复杂,终端使用混乱,下层终端应用软件存在多个版本或同一版本存放在不用路径,给下层使用人员也带来不便,造成终端操作人员在使用软件过程中出现多次打开,数据重复上传的现象,并且在问题出现时无法快速追踪到故障原因。2、软件项目开发和维护过程中的配置管理技术2.1基本定义配置管理定义(configuration management主要

52、解决软件开发和软件维护过程中的方法和规则,通过在特定的时刻选择软件配置,系统地控制对配置的修改,并在整个软件生命周期中维护配置的完整性和可追踪性。2.2开发原则软件项目应充分考虑其项目的特点,配置管理定义软件开发和维护过程应遵循以下原则:各个项目存储库的按类别进行定义,满足对开发维护过程实施科学、有效、规范的管理;版本管理标准化,按项目的生命周期过程进行版本控制管理(版号+版次,如A文档1.0,1.2等,保持程序、文档和数据的完整性和可追溯性;支持团队并行开发和异地开发,满足用户的不同要求;查询统计功能,可帮助管理层监控、跟踪、分析项目开发过程和结果;具备良好的可配置性、可维护性、适应性和具有

53、版本管理及权限动态管理功能。在软件开发这个庞大而复杂的过程中,需要涉及到各种文档(包括需求文档、技术文档、数据、程序代码等,而且在开发过程中往往涉及大量人员(包括项目经理、需求调查人员、文档书写人员、软件开发人员、软件维护人员等。因此客户需求的变动、系统结构的变更都会导致对软件的修改,小到可能只是对某个源文件中的某个变量的定义改动,大到重新设计程序模块甚至可能是整个需求分析变动。本文提出的软件配置管理流程模型能够对软件开发进行有效的配置管理,使软件开发从初始混乱的过程过渡到可复用、可管理的有序化过程。2.软件开发配置管理两段模型的提出配置管理(Configuration Management,

54、CM作为软件工程的一个方面,在过去的30年内得到了长足的发展。随着自动化配置工具的不断发展完善,配置管理手段逐步走向自动化方式。目前比较流行的CM工具有很多,例如:MicroSoft公司的VSS,RationalRose公司的ClearCase等。这些CM工具大体上包括以下几个方面的内容:、版本控制:标识、记录配置项的功能和物理特征。变更控制(Change Control:是软件配置管理的核心,它通过创建产品基线,在产品的整个生命周期中控制它的发布和变更。配置状态统计(CSA,Configuration Status Accounting涉及记录和报告变更过程,持续地记录配置的状态以及保持基线

55、产品和其变更建议的历史,并使相关人员了解配置和基线的情况。配置审计(Configuration Audit用来验证配置管理过程,以保证配置库中所有配置项的完整性。然而对于分布于不同地点的开发人员来共同协作开发的大型软件项目而言,配置管理是一项十分复杂的工作,而且目前可以应用的自动化配置管理技术仅限于配置管理的几个方面。对于一些大的开发项目团队来说,他们更倾向于拥有自己的开发配置管理系统,然而这一工作开销却异常巨大,往往维护配置管理系统的开销比维护应用程序开发更大。而且CM的解决方案只有10%的技术成分,其余的则是管理过程和用户培训。因此对于一个软件开发项目来说,无论选择何种策略和方法,配置管理

56、的制定和实施都不是一件容易的事情。因此要实施配置管理,就必需引进良好管理模式。3.软件开发配置管理的两段模型软件开发配置管理,是对软件开发的过程进行的配置管理,是整个软件生命周期中重要内容。完整的软件开发配置管理流程可以分为两部分:制定软件配置管理方案和实施软件配置管理方案。3.1制定流程要实现软件配置管理,首先要根据需求分析文档在开发组织中成立CEB(Configuration Establishment Board,配置构造委员会,它是由负责人、配置管理专家,系统开发技术人员等成员临时组成的配置构造小组,负责配置管理方案制定过程中的所有工作。CEB通过分析用户需求分析文档,评估开发组织情况,从项目经理或技术经理或相关权威技术专家中挑选出部分人员,及邀请客户组织中相关专业的专家组成CCB(ConfigurationControl Board,配置控制委员会,用以评审开发过程中的变更。下一步CEB制定出配置管理计划,该计划主管配置管理的领导审核,审核通过,发布该配置管理计划,部署配置工具及配置库,其后便可以进行项目开发了。之所以配置管理计划的制定要在项目开始之前,是因为如果不在项目开始之初制定软件配置管理计划,那么软件配置管理的许多关键活动就无法及时有效的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论