软件开发管理系统设计与实现.docx

上传人:b****5 文档编号:14454782 上传时间:2023-06-23 格式:DOCX 页数:90 大小:622.73KB
下载 相关 举报
软件开发管理系统设计与实现.docx_第1页
第1页 / 共90页
软件开发管理系统设计与实现.docx_第2页
第2页 / 共90页
软件开发管理系统设计与实现.docx_第3页
第3页 / 共90页
软件开发管理系统设计与实现.docx_第4页
第4页 / 共90页
软件开发管理系统设计与实现.docx_第5页
第5页 / 共90页
软件开发管理系统设计与实现.docx_第6页
第6页 / 共90页
软件开发管理系统设计与实现.docx_第7页
第7页 / 共90页
软件开发管理系统设计与实现.docx_第8页
第8页 / 共90页
软件开发管理系统设计与实现.docx_第9页
第9页 / 共90页
软件开发管理系统设计与实现.docx_第10页
第10页 / 共90页
软件开发管理系统设计与实现.docx_第11页
第11页 / 共90页
软件开发管理系统设计与实现.docx_第12页
第12页 / 共90页
软件开发管理系统设计与实现.docx_第13页
第13页 / 共90页
软件开发管理系统设计与实现.docx_第14页
第14页 / 共90页
软件开发管理系统设计与实现.docx_第15页
第15页 / 共90页
软件开发管理系统设计与实现.docx_第16页
第16页 / 共90页
软件开发管理系统设计与实现.docx_第17页
第17页 / 共90页
软件开发管理系统设计与实现.docx_第18页
第18页 / 共90页
软件开发管理系统设计与实现.docx_第19页
第19页 / 共90页
软件开发管理系统设计与实现.docx_第20页
第20页 / 共90页
亲,该文档总共90页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

软件开发管理系统设计与实现.docx

《软件开发管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《软件开发管理系统设计与实现.docx(90页珍藏版)》请在冰点文库上搜索。

软件开发管理系统设计与实现.docx

软件开发管理系统设计与实现

 

工程硕士学位论文

 

软件开发管理系统设计与实现

 

Softwaredevelopmentmanagementsystemdesignandimplementation

By

WuYun

B.E.(HunanUniversity)2006

Athesissubmittedinpartialsatisfactionofthe

Requirementsforthedegreeof

MasterofEngineering

In

SoftwareEngineering

Inthe

GraduateSchool

Of

HunanUniversity

Supervisor

ProfessorYeBoLong

July,2011

湖南大学

学位论文原创性声明

本人郑重声明:

所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。

除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。

对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。

本人完全意识到本声明的法律后果由本人承担。

作者签名:

日期:

年月日

学位论文版权使用授权书

本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。

本人授权湖南大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。

本学位论文属于

1、保密□,在______年解密后适用本授权书。

2、不保密□。

(请在以上相应方框内打“√”)

 

作者签名:

日期:

年月日

导师签名:

日期:

年月日

摘要

软件配置管理是CMM中的一个关键过程域,贯穿于整个软件生命周期中,其目的是建立和维护软件产品的完整性、一致性和可追踪性.讨论了软件配置管理的基本概念,提出了一种基于CMM实施配置管理的流程,重点讨论了配置标识、版本控制、变更控制、配置状态统计和配置审核等实践活动.

本文以软件配置管理的功能为主线,聚集于对国内企业的开发过程的特点,针对特定环节,浅谈可能存在的问题以及相应的解决方法或实现途径。

本文是讨论软件开发管理系统的设计和实现的研究。

主要研究的内容包括:

1.

2.整个系统的体系结构的设计。

针对这样一个复杂的大型系统,怎样的架构才能保障整个系统的顺利建立,并保证长期稳定的运行;;

3.对于复杂的管理系统,如何提供完善的维护管理,以实现实时,科学管理。

通过对软件开发管理系统的设计和实现的研究,体现了软件开发管理的一种实现方案。

通过此课题的研究,使得研究成果能够运用于软件开发过程管理中,提高软件项目的开发速度,提升软件服务质量,从而为软件项目的顺利实施提供了基础保障。

关键词:

软件配置管理;CMM;SCM;.NET;

Abstract

CMMsoftwareconfigurationmanagementisakeyprocessinthefield,throughouttheentiresoftwarelifecycle,thegoalistoestablishandmaintaintheintegrityofsoftwareproducts,consistencyandtraceability.DiscussesthebasicconceptsofsoftwareconfigurationmanagementisproposedbasedonCMMimplementedaconfigurationmanagementprocess,focusingontheconfigurationidentification,versioncontrol,changecontrol,configurationstatusandconfigurationauditingstatisticalpractice.

Thissoftwareconfigurationmanagementfunctionstothemainline,gatheredintheprocessofdevelopmentofdomesticenterprises,thecharacteristicsofspecificaspectsofpossibleproblemsandcorrespondingsolutionsorRealization.

Thisarticleistodiscussthedevelopmentandmanagementsystemsoftwaredesignandimplementationofresearch.

Themaincontentsinclude:

1.Thewholesystemarchitecturedesign.Forsuchalargeandcomplexsystems,howtoprotectthestructureofthesmoothestablishmentofthewholesystem,andtoensurelong-termstableoperation;

2.Researchdatacollection.Datacollection,thewholemanagementsystemisbased.Theintegrityofdataacquisition,real-timeandcorrectnessofthenormaloperationoftheentiresystemofprotection;

3.Forcomplexmanagementsystem,howtoprovidecomprehensivemaintenanceandmanagement,inordertoachievereal-time,scientificmanagement.

Softwaredevelopmentmanagementsystemthroughthedesignandimplementationofresearch,developmentandmanagementsoftwarereflectedarealization.Throughthisresearchproject,makingtheresearchresultscanbeappliedtosoftwaredevelopmentmanagement,improvethespeedofsoftwaredevelopmentprojects,improvesoftwarequalityofserviceforthesoftwareprojecttoprovideabasisforthesmoothimplementationofsafeguards.

KeyWords:

softwareconfigurationmanagement;CMM;SCM;.NET;

第1章 绪论

1.1课题的背景和意义

随着上个世纪70年代的“软件危机”的产生使人们发现,传统的“软件作坊”往往依赖于人们急于创造财富的心理,生产处于一种混沌的、无序的状态,软件的质量得不到保证,甚至中途撤销软件项目的事也常有发生。

随着软件产业的发展,软件产品的规模越来越大,开发越来越复杂,开发中所产生的大量中间产品也越来越难于控制,以前传统的生产方式已经不能满足需求了。

是采用现代化的管理方法,还是沿用传统的研发手段,已成为软件业发展的关键。

与此同时,为了使软件开发组织能够从初始混乱的开发过程,过渡到可重复、可管理的有序化过程,进而上升到更高的成熟度水平,我们需要采取一些方法来规范软件的开发过程,进行有效的软件开发管理。

正是在这种背景下,“软件工程”和“软件配置管理”概念被提出,经过长时间的实践,已经形成了一套比较成型的理论体系。

软件配置管理是软件过程的一个关键部分,是支持项目团队开发和维护,是软件产品演化过程趋于稳定的一系列控制规则。

软件配置管理系统在软件质量管理中起着重要的作用,是CMMI质量管理体系得核心内容之一,是一门用来记录并控制软件产品数据的管理学科。

软件开发过程是一个持续不断变化的过程,在这个过程中会产生许多信息,同时由于不可避免的变更,软件产品相关文档、资料、数据的残缺与不一致,软件代码当前实现状态不清晰,不同个人对软件的更改冲突等,成了软件产品开发过程中普遍存在的问题,其结果是出现各类软件故障或造成软件可维护性、可继承性较差。

软件配置管理正是为解决这些问题而提出的,它为软件开发提供了一套管理办法和活动原则。

随着软件开发规模的不断增大,现在人们越来越认识到配置管理是适应软件开发需求的一种非常有效和现实的技术,对于提高软件质量和软件开发过程的可靠性有着重要意义。

什么是软件配置管理软件配置管理(SoftwareConfigurationManagement,SCM),是一套规范、高效的软件开发基础结构。

SCM可以系统地管理软件系统中的多重版本;全面记载系统开发的历史过程,包括为什么修改,谁作了修改,修改了什么;管理和追踪开发过程中危害软件质量以及影响开发周期的缺陷和变化。

SCM对开发过程进行有效地管理和控制,完整、明确地记载开发过程中的历史变更,形成规范化的文档,不仅使日后的维护和升级得到保证,而且更重要的是,这还会保护宝贵的代码资源,积累软件财富,提高软件重用率,加快投资回报。

(引用《GB/T11457(1995)软件工程术语》、CMMII等相关定义)

配置管理的发展配置管理的概念源于美国空军,为了规范设备的设计与制造,美国空军1962年制定并发布了第一个配置管理的标准。

而软件配置管理概念的提出则在20世纪60年代末70年代初,加利福利亚大学的LeonPresser教授撰写了一篇名为“ChangeandConfigurationControl”的论文,提出控制变更和配置的概念,这篇论文同时也是他在管理该项目(这个过程进行过近1400万次修改)的一个经验总结。

之后在1975年,他成立了一家名为SoftTool的公司,开发了自己的配置管理工具:

CCC,这也是最早的配置管理工具之一。

  随着软件行业的不断发展,软件配置管理越来越成熟,从最初的仅仅实现版本控制,发展到现在的提供工作空间管理、并行开发支持、过程管理、权限控制、变更管理等一系列全面的管理能力,已经形成了一个完整的理论体系。

同时在软件配置管理的工具方面,也出现了大批的产品,如:

最著名的ClearCase;开源产品CVS;入门级工具MicrosoftVSS;新秀HanskyFirefly。

  4配置管理的主要活动配置管理的主要活动包括:

识别配置、变化控制、状态记录和报告以及配置审计。

  识别配置是指找出需要管理的中间产品,使其处于配置管理的控制之下,并维护它们之间的相关关系,一般来说,这些中间产品主要包括项目文档,源代码,执行程序,相关设备及资料等;变化控制是指记录变化的有关信息(包括变化的内容、原因和实现者等),用以保障软件产品的质量;状态记录和报告是指通过记录各个配置的变化状态,达到记录和报告整个软件的变化过程的目的;配置审计是指利用配置记录验证软件达到了预期的要求。

1.2国内外配置管理现状综述

国内企业相对于欧美的企业留给别人的印象一般是客户需求繁杂,开发流程单一,开发规模较小,维护期变更繁多。

这些特点从本质上来说,可能是由于人的性格特点决定的,他们的细致入微和对所要求事情的精益求精使得我们在做软件项目时,各个细节都要清清楚楚,每件事情都能条理清晰。

面对这种情况,软件配置管理的作用和功能显得尤为重要,它给项目提供了一个清晰的流程,合理的控制。

如果在项目组内实施的话,便于配置项历史记录的回溯,可以节约对人来说尤其注重的时间,也能本质上提高软件产品的质量;如果是基于企业级建立的话,更是能积累软件财富,提高了软件重用率和软件的生产力,而且极大程度上降低了开发人员流动造成的风险,因为本项目的人员即使无奈被调出,其它项目组由于有着相同的开发规范,被调入的人员和本项目组的人员沟通也会比较容易,具体操作也会非常容易上手。

于是,软件配置管理的实施成为一种必然。

  

  1 关于配置标识在软件开发过程中,为了便于控制和管理,对所有软件配置项,都应按一定的方式进行命名和组织,一般命名采用字符串描述,表明对象的类型(例如:

文档、程序、数据)。

虽然客户业务上千差万别,但是从项目的开发产出和最终的产品交付清单上来看,交付物大体上还是相似的,因此,配置项如果在开始时就收集建立得比较合理完善的话,在经过类似CCB的机构审核和各个项目组的PM批准后,会给日后的工作少去很多不必要的麻烦。

另外,有一点值得一提的是,当你在一个部门项目组工作过,如果换到另一个部门的项目组,你会很快熟悉新的工作环境,因为各家国内企业都具备着很多的共性,配置项的命名等具有很大的相似性,这恐怕是国内企业在配置项上的一个最大特色了。

在人员的配备上,根据实际情况,可以安排相应人数的配置管理员进行配置库的创建,以及日后的工作空间的维护。

  

  2 关于版本管理理想状态下,每个配置项我们都希望只保存一个版本,既节省空间又看上去清晰,可是实际情况往往是一个项目要保持多个版本,并且随着系统的进一步维护,版本的数量会明显增加。

  

  笔者曾经做过这样一个维护项目:

维护初期的时候只有少量的用户,后来,随着业务的推广以及产品知名度的提高,又增加了不少的用户,但是这些新增用户的业务流程和以前设计的有些不同,于是,一开始的时候我们采取开发维护两个系统的方法,可是后来又对这两个系统进行了一体化的处理,这样,又恢复到了一个系统的维护。

其间,版本产生了不少的演化。

版本管理的重要性不言而喻。

由此,就引出了配置管理的版本控制,它主要为了解决下列问题:

(1)根据不同用户的需要配置不同的系统;

(2)保存系统老版本,为以后调查问题使用;(3)建立一个系统新版本,使它包含某些决策而抛弃另一些;(4)支持两位以上工程师同时在一个项目中工作;(5)高效存储项目的多个版本。

  

  外包企业中的版本控制相对来说是比较简单的,以上要解决的五个问题都会涉及到,但相对来说不需要考虑得很复杂深入,这是因为项目相对较小(一般80人/月左右),就算项目很大的话,这个性格上谨小慎微,极度害怕失败的民族的客户一般会为了降低风险,要求开发方把一个大项目切割成几个小项目来完成,这样,虽然给日后的管理造成一定的影响,但是软件产品的成功概率会大大增加。

随着项目的分割变小,涉及人员的减少,使得多个软件开发人员同时对一个配置项进行操作与处理的情况也相对降低许多,即使偶尔遇上诸如此类的事情也可以通过相对简单的方式(例如沟通)协同解决。

  

  人对于版本控制的安全授权机制一般都非常重视,它贯穿于软件开发周期的各个时期,各个方面。

一旦项目启动,不同的项目组成员都会被分配到一个唯一的用户ID号,这表明了用户会拥有一个可供任意使用的私人空间,而且根据不同的工作内容,这唯一的用户ID号也相应地明确了不同的用户权限:

负责软件升级者有最大的读、写、运行的权限,一般开发人员在交付的目录下只有读权限,而在团队共享的集成工作空间的开发目录下有读、写、运行的权限等。

当然,安全授权机制的方案可以有很多种,可以根据不同的情况进行制定,但是结论是我们应该认识到的:

它对各个配置项的管理起到了一个不可估量的作用,既减少了发生错误的概率,也会使项目组成员更有责任感,良好习惯的培养预示着项目开发团队的光明前景,良好的开始是成功的一半。

3 关于变更控制变更在软件项目的开发期和维护期中都是非常常见的现象,可以毫不夸张地说,变更控制的成功与否将很大程度上影响到客户对开发项目组的满意度,因为人是比较暧昧的民族,我们认为一定的事情他会说可能,我们认为可能的事他一般不会提,直到他能基本确认要发生,所以一旦客户要求变更,基本上是很难说不的,能行得通的方法就是和他们谈时间,但我们怎么可能和这种工作起来不要命的民族相比,谈多了,会认为我们干活不卖力,谈少了,又觉得太对不起自己的开发团队,成天加班怎么行,这真是骑虎难下,进退两难的境地啊!

  

  此时,作为软件配置管理的核心功能之一的变更控制管理就要发挥其里程碑式的作用了,合理制定变更流程,以此来提高办事效率,会使我们的变更井然有序,能以最佳的状态去面临每一次很难说不的变更。

  

  从变更流程本身来说,实际上并不会太复杂,有过几次变更经验,对此做一个好好的总结和思考,很快便会制定出一个适合的流程来。

但是,一旦建立了,就要严格遵守,客户一般不会轻易变化他们的变更请求方式,所以,从这个层面上讲,我们制定好了的流程一般也不会需要什么很大的过程改进。

先期的试验项目如果获得成功的话,在整个公司的推广上应该不会带来很大的障碍,当然,各个项目组进行适当的裁剪也是可取的,毕竟,这个世界上不会有两片相同的树叶。

  

  有时候变更的内容较为简单,但是人对测试的要求是相当严格的,一个很简单的变更可能会要求有很多条测试CASE,并且会要求一个不少的交付,这样的测试严格程度在国内一般的软件企业中是少见的。

  

  客户对变更履历的要求也是非常严格的,所有的文件一旦发生变更,不管是大是小,时间是宽松或紧张,都会要求我们留下详细的履历,因为在他们眼里,凡是发生的变更都是重要的。

为了保证配置项的可追溯性和可读性,这一点的确是非常必要的。

  

  4 关于配置审核确认变更是否已正确实施有两种措施,一种是正式的技术复审,另一种是软件配置审核。

正式的技术复审着重考虑所修改对象在技术上的正确性,复审人员对该对象是否与其他软件配置项以及在修改中可能发生的疏忽和副作用进行全面的评估。

软件配置审核作为一种补充措施,主要考虑在正式复审中未被考虑的因素。

由此我们可以看出,软件配置管理工作不仅仅是项目组内配置管理员的工作,它是充当各个角色的项目组成员之间的协同工作,只有彼此相互配合,这样才能把配置工作做好。

  

  从实际情况来看,复审人员的工作责任是多而重的。

复审人员在产品交付前或维护工作中定期对项目进行的配置审核活动所涉及到的范围非常广泛,例如整个配置管理的流程是否被遵循,是否遵守软件工程标准,对配置项是否做了特别的标记,所有的相关配置项是否已一并修改,对已发生变更请求的配置项的标识号是否保证了唯一,修改的日期和执行修改的人员是否已经注明等等。

这种审核活动起到了一个监督、控制的作用,原本做得好的项目组继续保持,有欠缺的及时查缺补漏,这样从旁处着手分寸拿捏恰到好处的话,会给软件配置管理在整个软件生命周期里的实施有一个很大的牵引力。

在国内企业中,这种类似活动还是比较常见的,而且每次所要确认的相关点还会很多,充分借鉴了人注重细微处的好习惯。

  

  5 关于配置状态报告为了让开发团队和客户了解项目所处的状况,配置状态报告还是要进行的。

当某个软件配置项被赋予新标记或更新标记时,或被批准一项修改申请时,或配置审核完成时都将执行一次配置状态报告。

由于它能跟踪任意模式的配置项,提供完整的各种变化的历史版本和汇总信息,所以信息累计起来,会为本项目组的管理控制和以后相似的开发和维护提供一个很有力的参考依据。

  

  配置状态报告的模板大体一致,有变更状态,配置库状态,发行信息,备份信息等栏目内容,实际上概述发生了什么事情,谁做的,何时发生的,有什么影响这样一些问题。

各个项目组PM,软件配置管理人员,客户等所希望看到的配置状态统计信息的内容可能会有不少的差异。

项目组PM可能关心当前发布修复了哪些BUG,分别是什么类型的,是不是都顺利交付了等等;而客户如果心中有杆秤,他可能会更注意实际的工作量等。

总之,关注方面千人千面,因人而异。

我们要善加利用这个有用的资源。

  

  6 关于管理工具的应用一些满足软件组织切合实际需求的管理工具可以促使软件配置管理更为合理有效,这是众所周知的;但是要想选择一款完全合适的,的确不是一件容易的事。

如果是免费的,功能不很完备的,未必适合公司的管理配置的整个流程;如果是付费的,功能庞大的,可能经过裁剪会制定出合适的,但是购买的价格可想而知。

对日软件外包企业现在在中国各大城市遍地开花,不象几年前奇货可居,所以如今,就按日方付给中方的元/人月(工资)来讲也日趋缩小,外包企业可能承接的外包量越来越多,性价比却不见得有所提高,企业盈利也不会有什么质的飞跃。

针对这种情况,企业领导也不见得会付巨资去买一些高档管理工具,最好的方法应该就是先用免费工具去实现配置管理中的一些基本功能,然后可以根据实际需要自己去开发一些小工具,要知道对日软件外包企业中虽然很少有配置管理专家,但是却会有了解自身企业需要的管理和技术人才,两者相互补足,随着时间的推移,功能的逐步完善,到时就会通过自己企业的力量开发出一套适合自身流程的工具。

这样,既节约了成本投入,又有了合适的工具,更重要的是在企业内部也会使得管理和技术人员得到很好的沟通,更利于开展工作,一举三得,何乐不为。

  3.1合适的配置管理工具选择分析由于软件配置管理过程十分繁杂,管理对象错综复杂,如果是采用人工的办法不仅费时费力,还容易出错。

因此,引入一些自动化工具是大有益处的,同时也是做好软件配置管理的必要条件。

  目前,国外关于配置管理的研究相当活跃,也出现了一些产品和原型系统。

其中具有代表性的软件配置管理产品主要包括有Rationnal公司的Clearcase,Platinum公司的CCC/Harvest,Microsoft的VisualSoureSafe等。

配置管理系统主要有格勒诺布尔大学的Adele,Compaq系统研究中心的Vesta等

  

(1)常用软件配置管理工具简介·IBM公司的RationalC1earCase是最好的商用版本控制软件,功能强大,但价格比较贵;而且用户在使用它之前一般都要经过培训,很难无师自通;·CVS是开放源码组织维护的软件,在Linux平台尤其有广泛的应用,完全免费,但缺乏技术支持;·VSS是Microsoft公司的产品,在Windows平台的中小型项目开发管理上方便快捷,但它只能在Windows下运行,不能在Unix,Linux下运行。

  

  

(2)选择软件配置管理需要考虑的因素·功能是否符合实际需求,是否符合团队特点;·性能是否满意;·费用是否可以接受;·售后服务如何。

  

  (3)配置管理工具选择参考方案综合以上配置管理工具选择需要考虑的因素及中小型软件企业的特点,提出以下工具选择参考方案:

·开发人员较少,资金有限的软件企业建议首先采用VisualStudio软件包中的VSS做为配置管理工具。

由于VSS安装、配置、操作都十分简单,上手容易,这样在执行配置管理的过程中,工具的培训不会带来太大的阻力,大家可以集中精力理解配置管理,从而很快就在团队中形成了版本控制、配置管理的氛围与习惯;然后再构建CVS服务器,作为整个开发组织的配置管理工具,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2