软件配置管理工具(软件配置管理与软件工具的区别是什么呢软件工程的一道问答题,请赐教)

本文目录
- 软件配置管理与软件工具的区别是什么呢软件工程的一道问答题,请赐教
- 软件配置管理工具的工具选择
- 设计一个可以用的软件,需要经过什么步骤
- 以下哪些属于常见的软件配置管理工具( )
- 追踪工具、版本管理工具和发布工具属于( )
- 软件开发项目中选用了配置管理工具对文档进行管理,下面关于配置权限符合配置管理要求的是()
- 软件配置管理工具的工具功能
软件配置管理与软件工具的区别是什么呢软件工程的一道问答题,请赐教
软件配置管理(Software Configuration Management,SCM)是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。
软件工具是指为支持计算机软件的开发、维护、模拟、移植或管理而研制的程序系统。它是为专门目的而开发的,在软件工程范围内也就是为实现软件生存期中的各种处理活动(包括管理、开发和维护)的自动化和半自动化面开发的程序系统。
软件配置管理工具的工具选择
目前配置管理工具可以分为3个级别:
(1)版本控制工具,是入门级的工具,例如:CVS、VSS。
(2)项目级配置管理工具,适合管理中小型的项目,在版本管理的基础上增加变更控制、状态统计的功能,例如:ClearCase、PVCS。
(3)企业级配置管理工具,在实现传统意义的配置管理的基础上又具有比较强的过程管理功能,例如:ALLFUSIONHarvest。在建立自己的配置管理实施方案时,一定要根据自己的管理需要,选择适合自己的工具,从而搭建一个最适合自己的管理平台。如果我们的管理目标是建立组织级配置管理架构,并且要实现配置管理的所有功能,从而为以后的过程管理行为提供基础数据的话,那么我们建议选择专用的配置管理工具。
1.支持的操作系统
这几款工具都支持各种主流的操作系统,如Windows、LINUX、UNIX,都支持分布式开发。CVS、Harvest、VSS、ClearCase的Server都可以安装在Windows、LINUX、UNIX、AIX等操作系统上。
2.版本管理功能
CVS与Harvest、VSS、ClearCase都可以进行版本管理,都支持并行开发。在与开发工具的集成方面,CVS可以与各种Java开发工具集成,而Harvest支持SCC接口,可与VB、VC等集成,此外支持与IBM的WSAD集成。
3.变更控制功能
Harvest、ClearCase支持并提供了邮件通知、表单(类似任务说明书或变更通知)等手段来加强团队的信息沟通,而且提供审批、晋升等手段来方便管理项目。Harvest是基于过程的变更,可有效的进行变更控制,它在进行配置管理时更注重软件开发的过程与生命周期的概念;ClearCase相比HarVest则更强调赋予发人员更大的发挥空间,通过集成ClearQuest可以有效地进行变更的跟踪与监控。CVS是基于文件的变更处理,不能跟踪、监控项目的变更,但是结合开放源码的BugTrackI具也能进行变更管理。
4.状态统计功能
CVS、Harvest、ClearCase均提供了强大的统计信息功能。
5.数据的安全性
Harvest提供了全面的权限控制,所有的软件资产存放在Oracle数据库中,利用Oracle的特性来保障数据的完整性与安全,并可以定时备份,在权限控制和安全性方面是这三个工具中是最好的;而CVS、ClearCase主要依赖操作系统的权限设置;但ClearCase采用自己的文件系统,在安全性方面也有严格的控制,而CVS的安全性与备份功能需要通过设置操作系统权限来实现。在配置管理的基本功能的实现上,CVS提供了版本管理和部分变更管理的功能,Harvest、ClearCase完成配置管理的功能的同时还可以帮助软件开发组织积累项目中的数据提升软件开发过程能力。
设计一个可以用的软件,需要经过什么步骤
一、设计步骤
1、概要设计,所谓概要设计,就是对将要开发的软件进行一个大概功能的设计,主要包括:软件所实现什么功能和功能实现的程度;一个软件的功能是无法估计的,只要有需要,就可以添加相应的功能,如果没有一个计划,盲目的做,那么这个项目到最后的期限是不可能做完的。这一点在整个的流程中也是相当重要的,它关系到能不能按期完成。
2、做完概要设计之后,还要对其进行详细的说明,对每个功能所包括什么小功能进行一一说明;这样开发人员在开发过程中才有一个明确的目标,以保障开发工作的合理分配和管理。
3、做完详细功能设计之后,就可以根据详细设计书并按照软件 开发代码规范进行编码了。
4、软件测试阶段,不能认为编码完成,软件就结束了,在软件开发过程当中,测试也是相当重要的;测试主要包括使用Junit工具单体测试和结合测试。只有测试才能知道这个软件有没有Bug,才能知道软件的健壮性。在规范化的研发流程中,编码工作在整个项目流程里最多不会超过1/2,通常在1/3的时间,所谓磨刀不误砍柴功,设计过程完成的好,编码效率就会极大提高,编码时不同模块之间的进度协调和协作是最需要小心的,也许一个小模块的问题就可能影响了整体进度,让很多程序员因此被迫停下工作等待,这种问题在很多研发过程中都出现过。编码时的相互沟通和应急的解决手段都是相当重要的,对于程序员而言,bug永远存在,必须永远面对这个问题。
5、测试编写好的系统。交给用户使用,用户使用后一个一个的确认每个功能,然后验收。
二、软件开发环境
软件开发环境在欧洲又叫集成式项目支持环境(Integrated Project Support Environment,IPSE)。 软件开发环境的主要组成成分是软件工具。人机界面是软件开发环境与用户之间的一个统一的交互式对话系统,它是软件开发环境的重要质量标志。存储各种软件工具加工所产生的软件产品或半成品(如 源代码、测试数据和各种文档资料等)的软件环境数据库是软件开发环境的核心。工具间的联系和相互理解都是通过存储在信息库中的共享数据得以实现的。
软件开发环境数据库是面向软件工作者的知识型信息数据库,其数据对象是多元化、带有智能性质的。软件开发数据库用来支撑各种软件工具,尤其是自动设计工具、编译程序等的主动或被动的工作。
较初级的SDE数据库一般包含通用子程序库、可重组的程序加工信息库、模块描述与接口信息库、软件测试与纠错依据信息库等;较完整的SDE数据库还应包括可行性与需求信息档案、阶段设计详细档案、测试驱动数据库、软件维护档案等。更进一步的要求是面向软件规划到实现、维护全过程的自动进行,这要求SDE数据库系统是具有智能的,其中比较基本的智能结果是软件编码的自动实现和优化、软件工程项目的多方面不同角度的自我分析与总结。这种智能结果还应主动地被重新改造、学习,以丰富SDE数据库的知识、信息和软件积累。这时候,软件开发环境在软件工程人员的恰当的外部控制或帮助下逐步向高度智能与自动化迈进。
软件实现的根据是计算机语言。时至今日,计算机语言发展为算法语言、数据库语言、智能模拟语言等多种门类,在几十种重要的算法语言中,C&C语言日益成为广大计算机软件工作人员的亲密伙伴,这不仅因为它功能强大、构造灵活,更在于它提供了高度结构化的语法、简单而统一的软件构造方式,使得以它为主构造的SDE数据库的基础成分——子程序库的设计与建设显得异常的方便。
事实上,以C&C为背景建立的SDE子程序库能为软件工作者提供比较有效、灵活、方便、友好的自动编码基础,尤其是C的封装等特性,更适合大项目的开发管理和维护。
三、开发工具
1、软件建模工具,用于描述系统的需求,辅助设计。
2、软件实施工具,用于程序设计,编码和编译,包括程序语言开发环境和集成开发环境。
3、前者主要提供程序语言的预编译,编译,链接的工具,后者包括代码器在内的器,代码生成器,运行环境和调试器。
4、模拟运行平台,用于模拟系统的实际运行环境。
5、软件测试工具,用于对系统,子系统,模块或单元进行测试的工具。
6、软件开发支撑工具,主要是软件配置管理工具。
以下哪些属于常见的软件配置管理工具( )
Rational ClearCase Microsoft SourceSafe CVS
追踪工具、版本管理工具和发布工具属于( )
【答案】:C
本题考查软件开发工具相关知识。参考《系统集成项目管理工程师(第2版)》P137。
软件开发工具是用于辅助软件生命周期过程的基于计算机的工具。通常使用这些工 具来支持特定的软件工程方法,减少手工方式管理的负担。工具的种类包括支持单个任务的工具及涵盖整个生命周期的工具。
软件需求工具包括需求建模工具和需求追踪工具。
软件设计工具包括软件设计创建和检查工具。
软件构造工具包括程序器、编译器、代码生成器、解释器、调试器等。
软件测试工具包括测试生成器、测试执行框架、测试评价工具、测试管理工具、性能分析工具。
软件维护工具包括理解工具(如可视化工具)和再造工具(如重构工具)。
软件配置管理工具包括追踪工具、版本管理工具和发布工具。
软件工程管理工具包括项目计划与追踪工具、风险管理工具和度量工具。
软件工程过程工具包括建模工具、管理工具、软件开发环境。
软件质量工具包括检查工具和分析工具。
软件过程管理
软件过程管理涉及技术过程和管理过程,通常包括以下几个方面。
(1)项目启动与范围定义:启动项目并确定软件需求。
(2)项目规划:制订计划,其中一个关键点是确定适当的软件生命周期过程,并完成相关的工作。
(3)项目实施:根据计划,并完成相关的工作。
(4)项目监控与评审:确认项目工作是否满足要求,发现问题并解决问题。
(5)项目收尾与关闭:为了项目结束所做的活动。需要项目验收,并在验收后进行归档、事后分析和过程改进等活动。
软件开发项目中选用了配置管理工具对文档进行管理,下面关于配置权限符合配置管理要求的是()
【答案】:A
本题考查的是配置管理中各角色的权限问题。 教程P410,所有配置项的操作权限应由CMO(配置管理员)严格管理,基本原则是:基线配置项向软件开发人员开放读取的权限;非基线配置项向PM、CCB及相关人员开放。
软件配置管理工具的工具功能
(1)配置支持。配置是一组有共同目的的中间软件产品,其中每一个中间软件产品称为一个配置项。软件配置管理支持用户建立配置项之间的各种关系,并对这些关系加以维护,维护这些关系有助于完成某些特定任务(例如Build)和标识某一变化对整个系统开发的影响。
(2)版本控制。版本控制是软件配置管理的基本要求,它可以保证在任何时刻恢复任何一个版本、版本控制还记录每个配置项的发展历史,这样就保证了版本之间的可追踪性,也为查找错误提供了帮助,版本控制也是支持并行开发的基础。
(3)变更控制。变更控制是指在整个软件生存周期中对软件变更的控制。变更控制系统记录每次变更的相关信息(变更的原因、变更的实施者以及变更的内容等)。这些信息有助于追踪出现的各种问题。
(4)构造支持。软件系统往往由许多配置项构成,建立整个系统是个复杂和费时的过程,软件配置管理工具可以记录和追踪每个配置项信息,帮助用户自动和快速地建立系统,和版本控制结合在一起,可以有效地支持同时开发系统的多个版本。
(5)过程支持。过程详细描述了各种人员在整个软件生存周期中如何使用整个系统,过程控制可以保证每一步都按照正确的顺序由合适的人员实施。过程控制本来是软件开发环境中一个独立的部分,现在软件配置管理也开始提供这部分功能。目前的软件配置管理工具对过程的支持还很不够,而且支持方式差别也很大,许多管理只是提供一个预先定义好的生存周期模型,并保证开发的每一步都按照这个模型规定进行。
(6)团队支持。团队支持是指多个开发人员同时开发一个软件系统。大多数软件系统都需要多个开发人员参与,有效的团队支持对开发人员是很有用的。团队支持主要包括工作区管理、并行开发管理和远程开发管理(某些软件配置管理工具还包括对开发人员支持)。
工作区管理是指为每个开发人员提供独立的工作区,开发人员可以互不干扰地进行工作,也可以选择某个时机向其他开发人员提供自己的最新修改结果或接受其他开发人员的修改结果。
并行管理是指多个开发人员同时进行的修改可以进行合并,并行开发管理可以尽可能地自动解决合并中可能出现的冲突。
远程开发管理是并行开发管理的特例,是指在广域网上并行开发的管理,许多适合于局域网的方法可能不适合广域网。
团队支持的基础是版本控制和版本合并。
(7)报告/查询。软件配置管理可以向用户提供配置库的各种查询信息,主要包括依赖关系报告、变化影响报告、Build报告、版本差异报告、历史报告、访问控制报告、冲突检测报告。实际上许多软件配置管理工具的此项功能是分散在各种相应的功能中的。
(8)审计控制。软件配置管理通过审计控制来验证软件配置管理过程,以保证配置库中所有配置项的完整性。简单的审计控制是记录软件配置管理工具执行的所有命令,复杂的审计控制还包括记录每个配置项的状态变化。
(9)其他功能。除了以上的主要功能外,软件配置管理还可以提供权限控制、人员管理和配置库管理等管理,这些功能主要是为软件配置管理实现以上功能提供保障。

更多文章:
软件配置管理工具(软件配置管理与软件工具的区别是什么呢软件工程的一道问答题,请赐教)
2026年9月12日 03:10
vb入门教材pdf(谁有autocad vba & vb.net开发基础与实例教程pdf版)
2026年9月12日 00:10
linux遍历目录(linux shell 遍历文件夹 并将结果保存 到变量)
2026年9月11日 22:40
js解析url参数为对象(js如何获取请求中的url以及参数)
2026年9月11日 18:10






