配置管理(Configuration Management,CM)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在 软件生命周期 中各个阶段都能得到精确的产品配置。
配置控制重点关注可交付成果及各个过程的技术规范,而变更控制则着眼于识别、记录、批准或否决对项目文件、可交付成果或基准的变更。
配置管理可以分为三步:
一、识别配置项。找到是哪些功能有改动?
二、记录并报告配置项状态。记录并报告那些功能现在的状态。
三、配置项核实与审计。用那些因素现在的状态和以前的状态进行对比,确定原本计划调整的功能否有更改、是否落实。
软件配置管理 的最终目标是管理软件产品。由于软件产品是在用户不断变化的需求驱动下不断变化,为了保证对产品有效地进行控制和追踪,配置管理过程不能仅仅对静态的、成形的产品进行管理,而必须对动态的、成长的产品进行管理。由此可见,配置管理同软件开发过程紧密相关。配置管理必须紧扣软件开发过程的各个环节:管理用户所提出的需求,监控其实施,确保用户需求最终落实到产品的各个版本中去,并在产品发行和用户支持等方面提供帮助,响应用户新的需求,推动新的开发周期。
配置管理通俗点说就是:你要变更,好,你变哪了咋变的,你万一骗我呢。我要去查查看看你说的和你做的一致么。
配置管理系统和变更管理系统之间的关系如下图:
首先,什么是配置管理系统
配置管理系统的定义是,整个项目管理系统的一个子系统。它由一系列正式的书面程序组成,用于对以下工作提供技术和管理方面的指导与监督:识别并记录产品、成果、服务或部件的功能特征和物理特征;控制对上述特征的任何变更;记录并报告每一项变更及其实施情况;支持对产品、成果或部件的审查,以确保其符合要求。该系统包括文件和跟踪系统,并明确了为核准和控制变更所需的批准层次。
配置管理系统的作用:
1.识别产品和组成部分功能和属性
2.控制上述特征的变更
3.记录每个变更实施情况
4.辅助审核,核实是否符合要求
在项目中,使用包含变更控制过程的配置管理系统的目标是
1.建立一种先进的方法,以便规范地识别和提出对既定基准的变更,并评估变更的价值和有效性;
2.通过分析各项变更的影响,为持续验证和改进项目创造机会;
3.建立一种机制,以便项目管理团队规范地向有关干系人沟通变更的批准和否决情况。
配置管理项
1.从哪里来(谁创建,什么时候,为什么)
2.目前在哪里
3.将到哪里去
在PMP中,有配置管理系统,但这个系统不是我们一向认为的某个特定的软件系统之类的。是一种可以有系统管理,如果没有系统管理,人工通过文件或者架构设置工作流程都可以进行管理的系统。所以在PMP中的所有系统,都可以这样理解。
配置管理系统如何理解,就要看它存在的目的。它存在的目的就是为了管理变更。所以,配置管理系统里面最重要的就是变更管理系统(这个是PMP的重点)。而配置管理系统比变更管理系统多出一部分,多出来的这部分是什么,就是配置管理系统区别于变更管理系统的部分。顾名思义,变更管理系统,只是负责管理变更,那么没有变更前,是怎样的呢,这个就是配置惯例系统负责的工作。
在PMP考试中,重中之重是变更控制过程,配置管理系统是一个要点,但不算重点。因为,根据PMBOK所重点提到的,在项目管理中,用到了包含变更控制过程的配置管理系统,所以重点是变更控制。而配置管理系统属于项目管理信息系统的一部分。
配置管理(Configuration Management,CM)是通过技术或行政手段对软件产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软件产品的演化过程,确保软件开发者在软件生命周期中各个阶段都能得到精确的产品配置。
配置管理过程是对处于不断演化、完善过程中的软件产品的管理过程。其最终目标是实现软件产品的完整性、一致性、可控性,使产品极大程度地与用户需求相吻合。它通过控制、记录、追踪对软件的修改和每个修改生成的软件组成部件来实现对软件产品的管理功能。
以下是虚拟主机管理系统安装的服务器教程:
1. 选择适合你的操作系统,并下载相应的软件包。例如,如果你想在Linux上安装Web服务器,可以选择Apache或Nginx。
2. 打开终端窗口,使用root用户登录到服务器上。
3. 解压缩下载的软件包。你可以使用tar命令来完成这个任务。
4. 进入解压后的目录,运行configure命令来检查系统配置并生成Makefile。
5. 运行make命令来编译软件。这可能需要几分钟时间,具体取决于你的系统和硬件配置。
6. 运行make install命令来安装软件。这将把编译好的文件安装到系统中,并创建必要的配置文件。
7. 启动Web服务器。你可以运行start命令来启动Apache或Nginx。如果你使用的是Nginx,你需要设置端口号。默认情况下,Apache监听80端口,而Nginx监听8080端口。
8. 在浏览器中输入服务器地址(通常是IP地址)来访问Web页面。你应该看到一个欢迎页面或者错误页面,表示Web服务器已经成功安装并启动了。
以上就是虚拟主机管理系统安装的服务器教程,希望对你有所帮助。
首先登陆Windows Azure管理平台,创建新的Windows Azure Affinity Group和Storage Account,为随后创建Windows Azure虚拟主机作准备,
1. 创建Windows Azure Affinity Group,点击左边的菜单“Network”选项,在页面中选择“Affinity Group”
点击页面下方的“Create”按钮,创建新的Affinity Group,输入唯一的Affinity Group名称,根据自己所在国家选择距离最近的服务器区域,中国用户推荐选择“East Asia”,然后点击完成。
2. 创建Windows Azure Storage Account, 点击左面菜单“Storage”选项,然后点击页面左下的“New”按钮,
选择Data Services => Storage => Quick Create => 输入自定义URL,选择上步创建的Affinity Group,另外选中“Enable Geo-Replication” 然后点击右下的创建帐户按钮。
3. 创建Windows Azure虚拟主机, 在左侧菜单,选择 “Virtual Machines”选项,默认情况下,virtual machines是空白,
点击页面左下方的“+New”按钮,创建一个新的虚拟主机实例,
选择Compute => Virtual Machine => From Gallery, 页面将载入当前云平台所支持的操作系统镜像文件,
在操作系统镜像文件列表中选择“Windows Server 2012, October 2012”,然后点击右下的按钮,
在虚拟机设置选项中,填写虚拟主机名称,默认登陆用户名是Administrator,设置密码,然后在“Size”中选择“Medium(2 cores, 3.5GB Memory)”,然后点击右下的按钮
为虚拟主机选择设置Storage Account和Affinity Group,这两项,在前文已经设置完成,直接在菜单中选择即可,而DNS名称需要设置唯一的名称,随后远程登陆时将会使用该域名。
在点击创建虚拟主机后,系统将进入镜像恢复和创建系统配置步骤,该步骤完全自动操作完成,无需开发人员干预。
在Virual Machines页面,可以查看当前主机是否已经创建完成,以及运行状态。
当虚拟主机状态为“Running”的时候,即可创建连接到该主机。
4. 在Windows Azure虚拟主机创建Windows 8开发环境
虚拟主机创建完成后,点击虚拟主机名称,即可进入系统资源详细页面,从中可以了解到当前系统资源使用状况以及主机详细信息。
在页面下方,点击“Connect”按钮,会自动生成后缀名为"rdp"的文件,然后提示下载,该文件为远程登陆文件,通过前文安装的远程登陆工具即可导入,运行该文件后,用户即可登陆到Windows Azure虚拟主机。
双击下载的“rdp”文件,将提示连接服务器信息,并且要求输入用户名和密码,
这里用户名密码需要填写前文创建的“Administrator”账号信息。
登陆成功后,即可看到Windows Server 2012操作系统桌面,
为了方便Windows8应用开发,下面需要对操作系统进行简单的设置,首先进入"Server Manager",
点击右边菜单“Manage” => "Server Manager Properties",
在弹出窗口中选中“Do not start Server Manager automatically at logon”,这样在每次启动时,就不会再入Server Manager应用,节省系统资源和带宽。
返回,Server Manager窗口,选择右上菜单“Tools”, 然后选择“Computer Management”选项,
点击后,即可进入Computer Management窗口,在窗口左边菜单中右键点击“Users”目录,然后选择“New User...”,
在新用户添加窗口中,添加用户“Developer”,密码自定义设置,该用户将在后文作为开发账户使用,因为在云平台虚拟主机中,Administrator不能直接作为开发账户,所以才需要创建该用户账户。
创建用户完成后,右键点击“Groups”菜单,然后,右键点击“Administrators”用户组,
添加“Developer”用户进入Administrator管理员用户组,
完成用户和用户组设置后,关闭相关窗口,返回Server Manager窗口,点击“Tools” => ”Services“
在Services窗口中,找到”Windows Audio“服务,设置”Startup Type“为”Automatic“,然后点击”OK“关闭窗口。
然后选择”Windows Audio Endpoint Builder“服务,同样设置”Startup Type“为”Automatic“,然后点击”OK“关闭窗口。
在Services窗口右键点击”Windows Audio“和”Windows Audio Endpoint Builder“,点击“Start”运行两个服务。
返回Server Manager主窗口,选择“Local Server”,
在右边窗口中,选择“IE Enhanced Security Configuration”,设置“Administrators”和“Users”为“Off”,
然后使用快捷键“Windows” + R,会弹出Run窗口,输入“RegEdit”命令,进入注册表编辑窗口,
进入注册表“Computer\HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Main”,双击“ApplicationTileImmersiveActivation”注册键,修改值为“1“,然后点击”OK“保存退出。
返回到Server Manager窗口,在”Add Roles and Features Wizard”中,选择“Role-Based or feature-based installation”,点击“Next”按钮,根据自身开发需求,添加服务器应用,例如可以在该窗口添加“Web Server(IIS)”服务等。
需要注意的是,在该窗口中,需要添加Windows 8桌面样式,以方便随后开发Windows Store应用调试使用,
在添加“Desktop Experience"完成后,需要关闭所有应用窗口,重新启动Windows Azure虚拟主机。重启虚拟主机有以下方法,
1)使用Alt + F4,打开退出菜单,选择”Restart“
2)在Windows Azure虚拟主机管理页面,选择”Restart“菜单重新启动机器。
5. 安装Windows 8应用开发工具
添加Windows 8桌面风格,需要一段时间,可以通过Windows Azure虚拟主机页面监控服务器状态是否启动完毕。
主机启动完成后,使用远程桌面登陆,这次登陆使用前文创建的”Developer“账户,
登陆成功后,使用IE浏览器,打开Windows 8开发工具在线安装页面,点击“Download Now”,在线安装Windows8开发工具。
在提示窗口中点击“Run”,随后的窗口中,即可安装Windows8开发工具。
安装完成后,点击“Launch”,即可进入Visual Studio激活窗口,
点击“Register online”使用你的微软邮箱账号注册,即可获得免费产品注册码,输入注册码后,即可激活Visual Studio开发工具。
在第一次运行时会提示输入微软账号登陆,获取开发人员许可证,
使用微软账号登陆,登陆成功后,即可获取免费开发人员许可证书。
完成以上设置后,即可打开Visual Studio创建第一个Windows Store应用,正式开始Windows 8应用开发之旅了。
SQL Server配置管理器是SQL Server中一个非常重要的管理工具,它可以帮助用户管理SQL Server实例以及其他组件。如果你需要找到SQL Server配置管理器,可以按照以下步骤进行:首先,点击“开始”菜单,然后在搜索框中输入“SQL Server配置管理器”。当你看到搜索结果列表中的SQL Server配置管理器时,你可以点击它来打开配置管理器。一旦你打开了SQL Server配置管理器,你将会看到它列出了所有可用的SQL Server组件和服务。在这个列表中,你可以找到你想要管理的实例并右键单击它以打开相关属性和设置。需要注意的是,如果你无法在开始菜单中找到SQL Server配置管理器,你可以考虑在程序文件夹中寻找它。默认情况下,SQL Server配置管理器位于“C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio”文件夹中。拓展:使用SQL Server配置管理器,你可以轻松管理SQL Server组件和服务,例如数据库引擎、分析服务、报告服务和集成服务等。通过配置管理器,你可以更改SQL Server实例的网络配置、服务帐户、服务器级别设置等。此外,配置管理器还可以协助用户配置和管理SQL Server的客户端别名、SQL Server浏览器服务、SQL Server错误日志等。总之,SQL Server配置管理器是SQL Server中一个非常重要的工具,如果你需要管理SQL Server实例或组件,你可以按照以上步骤找到它,并享受其丰富的功能。
这个错误可能是由于 WMI (Windows Management Instrumentation) 服务未能正确运行导致的。WMI 是 Windows 管理工具中的一个基础组件,它对于 SQL Server 的正常运行非常重要。以下是一些可能的解决方案:重新启动 WMI 服务可以通过以下步骤重新启动 WMI 服务:1)打开 "运行" 对话框,输入 "services.msc" 并按 Enter 键打开 "服务" 管理器。2)在服务列表中找到 "Windows Management Instrumentation" 服务,并右键单击它。3)选择 "重启" 选项,等待服务重启完成。4)重新启动 SQL Server 服务并检查问题是否已解决。2、重新安装 SQL Server如果尝试重新启动 WMI 服务后问题仍然存在,可以考虑重新安装 SQL Server。在重新安装 SQL Server 之前,建议先备份数据库以避免数据丢失。3、进行系统修复如果以上方法都无法解决问题,可以尝试运行系统修复工具来修复可能存在的操作系统文件损坏或其他系统问题。可以尝试使用 Windows 自带的 "sfc /scannow" 命令或其他系统修复工具来进行修复。【摘要】
SQL Server 配置管理器里的SQL Server服务里的SQL Server(MSSQLSERVER)启动不了WMI提供程序错误找不到指定模块〔0x8007007e〕【提问】
这个错误可能是由于 WMI (Windows Management Instrumentation) 服务未能正确运行导致的。WMI 是 Windows 管理工具中的一个基础组件,它对于 SQL Server 的正常运行非常重要。以下是一些可能的解决方案:重新启动 WMI 服务可以通过以下步骤重新启动 WMI 服务:1)打开 "运行" 对话框,输入 "services.msc" 并按 Enter 键打开 "服务" 管理器。2)在服务列表中找到 "Windows Management Instrumentation" 服务,并右键单击它。3)选择 "重启" 选项,等待服务重启完成。4)重新启动 SQL Server 服务并检查问题是否已解决。2、重新安装 SQL Server如果尝试重新启动 WMI 服务后问题仍然存在,可以考虑重新安装 SQL Server。在重新安装 SQL Server 之前,建议先备份数据库以避免数据丢失。3、进行系统修复如果以上方法都无法解决问题,可以尝试运行系统修复工具来修复可能存在的操作系统文件损坏或其他系统问题。可以尝试使用 Windows 自带的 "sfc /scannow" 命令或其他系统修复工具来进行修复。【回答】
配置管理(Configuration Management,CM)是通过技术或行政手段对软体产品及其开发过程和生命周期进行控制、规范的一系列措施。配置管理的目标是记录软体产品的演化过程,确保软体开发者在软体生命周期中各个阶段都能得到精确的产品配置。 基本介绍 中文名 :配置管理 外文名 :Configuration Management 解释 :通过技术对软体产品进行控制 用于 :软体开发 简介,功能,并行开发支持,修订版管理,版本控制,管理过程,建立管理,过程控制,代码共享,流程,制定配置管理计画,配置库管理,版本控制,变更控制,配置审计,实施,经验,节约费用,有利于知识库的建立,规范管理,精髓,版本控制,变更控制,配置控制,状态报告,配置审计,配置管理的商业模型,CICO模型,组织模型,长事务模型,变更集模型,配置管理的套用,结束语, 简介 配置管理过程是对处于不断演化、完善过程中的软体产品的管理过程。一致性、可追溯性,使产品极大程度地与用户需求相吻合。它通过控制、记录、追踪对软体的修改和每个修改生成的软体组成部件来实现对软体产品的管理功能。 早在七十年代初期加利福利亚大学的Leon Presser教授就撰写了一篇论文,提出控制变更和配置的概念,之后在1975年,他成立了一家名为SoftTool的公司,开发了自己的配置管理工具:CCC,这也是最早的配置管理工具之一。之后,随着软体开发规模的逐渐增大,越来越多的公司和团队意识到了软体配置管理的重要性,而相应的软体配置管理工具也如雨后春笋一般,纷纷涌现,比较有代表性的有:Marc Rochkind的SCCS(Source Code Control System)和Walter Tichy的RCS(Revision Control System),这两种工具对日后的配置管理工具的发展做出了重大的贡献,目前绝大多数广泛使用的配置管理工具基本上都是基于这两者的设计思想和体系架构。 配置管理在软体开发过程和项目管理过程中的作用 随着软体系统的日益复杂化和用户需求、软体更新的频繁化,配置管理逐渐成为软体生命周期中的重要控制过程,在软体开发过程中扮演着越来越来重要的角色。一个好的配置管理过程能覆盖软体开发和维护的各个方面,同时对软体开发过程的巨观管理,即项目管理,也有重要的支持作用。良好的配置管理能使软体开发过程有更好的可预测性,使软体系统具有可重复性,使用户和主管部门用软体质量和开发小组有更强的信心。 软体配置管理的最终目标是管理软体产品。由于软体产品是在用户不断变化的需求驱动下不断变化,为了保证对产品有效地进行控制和追踪,配置管理过程不能仅仅对静态的、成形的产品进行管理,而必须对动态的、成长的产品进行管理。由此可见,配置管理同软体开发过程紧密相关。配置管理必须紧扣软体开发过程的各个环节:管理用户所提出的需求,监控其实施,确保用户需求最终落实到产品的各个版本中去,并在产品发行和用户支持等方面提供帮助,回响用户新的需求,推动新的开发周期。通过配置管理过程的控制,用户对软体产品的需求如同普通产品的订单一样,遵循一个严格的流程,经过一条受控的生产流水线,最后形成产品,发售给相套用户。从另一个角度看,在产品开发的不同阶段通常有不同的任务,由不同的角色担当,各个角色职责明确,泾渭分明,但同时又前后衔接,相互协调。 好的配置管理过程有助于规范各个角色的行为,同时又为角色之间的任务传递提供无缝的接合,使整个开发团队像是一个交响乐队一样和谐而又错杂地行进。正因为配置管理过程直接连线产品开发过程、开发人员和最终产品,这些都是项目主管人员所关注的重点,因此配置管理系统在软体项目管理中也起着重要作用。配置管理过程演化出的控制、报告功能可帮助项目经理更好地了解项目的进度、开发人员的负荷、工作效率和产品质量状况、交付日期等信息。同时配置管理过程所规范的工作流程和明确的分工有利于管理者应付开发人员流动的困境,使新的成员可以快速实现任务交接,尽量减少因人员流动而造成的损失。 功能 并行开发支持 因开发和维护的原因,要求能够实现开发人员同时在同一个软体模组上工作,同时对同一个代码部分作不同的修改,即使是跨地域分布的开发团队也能互不干扰,协同工作,而又不失去控制。 修订版管理 跟踪每一个变更的创造者、时间和原因,从而加快问题和缺陷的确定。 版本控制 能够简单、明确地重现软体系统的任何一个历史版本。 产品发布管理:管理、计画软体的变更,与软体的发布计画、预先定制好的生命周期或相关的质量过程保持一致;项目经理能够随时清晰地了解项目的状态。 配置管理 管理过程 建立管理 基于软体存储库的版本控制功能,实现建立(build)过程自动化。 过程控制 贯彻实施开发规范,包括访问许可权控制、开发规则的实施等。 变更请求管理:跟踪、管理开发过程中出现的缺陷(Defect)、功能增强请求(RFE)或任务(Task),加强沟通和协作,能够随时了解变更的状态。 代码共享 提供良好的存储和访问机制,开发人员可以共享各自的开发资源。 流程 制定配置管理计画 配置管理员制定《配置管理计画》,主要内容包括配置管理软硬体资源、配置项计画、基线计画、交付计画、备份计画等。CCB审批该计画。 配置库管理 配置管理员为项目创建配置库,并给每个项目成员分配许可权。各项目成员根据自己的许可权操作配置库。配置管理员定期维护配置库,例如清除垃圾档案、备份配置库等。 版本控制 在项目开发过程中,绝大部分的配置项都要经过多次的修改才能最终确定下来。对配置项的任何修改都将产生新的版本。由于不能保证新版本一定比老版本“好”,所以不能抛弃老版本。版本控制的目的是按照一定的规则保存配置项的所有版本,避免发生版本丢失或混淆等现象,并且可以快速准确地查找到配置项的任何版本。 配置项的状态有三种:“草稿”、“正式发布”和“正在修改”,本规程制定了配置项状态变迁与版本号的规则。 变更控制 在项目开发过程中,配置项发生变更几乎是不可避免的。变更控制的目的就是为了防止配置项被随意修改而导致混乱。 修改处于“草稿”状态的配置项不算是“变更”,无需CCB的批准,修改者按照版本控制规则执行即可。 当配置项的状态成为“正式发布”,或者被“冻结”后,此时任何人都不能随意修改,必须依据“申请→审批→执行变更→再评审→结束”的规则执行。 配置审计 为了保证所有人员(包括项目成员、配置管理员和CCB)都遵守配置管理规范,质量保证人员要定期审计配置管理工作。配置审计是一种“过程质量检查”活动,是质量保证人员的工作职责之一。 实施 实施配置管理系统,一般的步骤和需要考虑的问题如下: 1.规划、调整网路开发环境 一个规划良好的开发环境,是实施配置管理系统的前提。在此阶段,要对配置管理系统做出规划,主要考虑以下问题: 网路的频宽、拓扑结构 伺服器的选择、命名规范 存储区的定位 开发人员及组的命名规约等 2.设计配置管理库 根据项目开发的要求,设计开发资源的存储模式,良好的存储模式有利于减轻管理上的负担,增强配置管理库的访问性能,同时便于控制访问许可权,保护软体资产。 3.定义配置管理系统的角色 在此阶段,需要确定与配置管理相关的所有角色,包括他所有角色相应的活动。在开发过程中,一个开发人员可能兼任多种角色,但一项任务在同一时刻只能由一个角色来执行。 一般配置管理中的角色主要包括: 项目经理:项目经理在配置管理方面的职责是依靠配置管理员、系统管理员和系统体系结构设计人员的帮助,制定项目的组织结构和配置管理策略。这些工作包括:定制开发子系统,定制访问控制,制定常用策略,制定集成里程碑,以及进行系统集成。 配置管理员:配置管理员的职责是根据项目经理制定的开发组织结构和策略,实施、维护配置管理的环境。其主要职责如下:创建配置管理库,对存储库进行日常备份和恢复,维护配置管理环境,及管理配置管理相关的用户。 软体开发人员:软体开发人员依据项目的开发和配置管理策略,创建、修改和测试开发工件。 集成人员:对软体进行归并,形成相应的基线或发布版本。 QA人员:需要对软体配置管理有较深的认识,其主要工作是跟踪当前项目的状态,测试,报告错误,并验证其修复结果。 4.制定配置管理流程 这是配置管理实施的一个重要阶段,其主要目的是根据项目开发的需要,制定相应的配置管理流程,以更好地支持开发,主要活动包括: 定制并行开发策略:合理的并行开发策略应该具有以下特点:协调项目的复杂性和需求,统一创建分支类型和元数据,为开发过程中的变更集成制定有效的规范,适时反映开发过程中方法和需求的变化。 发布版本管理:软体开发过程中的一个关键活动是提取工件的相关版本,以形成软体系统的阶段版本或发布版本,我们一般将其称为稳定基线。一个稳定基线代表新开发活动的开始,而一系列定制良好的活动之后又会产生一个新的稳定基线。有效地利用此项功能,在项目开发过程中可以自始至终管理、跟踪工件版本间的关联。 一般来讲,实施配置管理系统,相关人员需要接受以下培训: 配置管理 管理员培训:针对配置管理员,主要学习配置管理工具管理相关内容。 开发人员培训:针对开发人员,主要学习配置管理工具与开发相关的常用操作。 管理流程培训:针对全体人员,目的是了解配置管理策略和流程,以及如何与开发管理、项目管理相结合。 经验 围绕配置管理,世界一些致力于软体工程研究的公司在深入理解ISO 9000的基础上,推出了各种符合ISO 9000配置管理标准的工具软体,如INTERSOLV公司的PVCS、Rational公司的Clear Case等。这些配置管理工具面向软体规范化、工程化、自动化的需要,帮助开发团队提高科学管理水平,从而提高工程效率,降低工程成本。现以PVCS为例,结合实际经验,谈谈实施配置管理的益处: 节约费用 1.缩短开发周期 利用PVCS的Version Manager对程式资源进行版本管理和跟踪,建立公司的代码知识库,保存开发过程中每一过程版本,这样大大提高了代码的重用率,还便于同时维护多个版本和进行新版本的开发,防止系统崩溃,最大限度地共享代码。同时项目管理人员可以通过Version Manager查看项目开发日志,测试人员可以根据开发日志和不同版本对软体进行测试,工程人员可以从Version Manager上得到不同的运行版本,并且Version Manager 可以安装在Web Server供外地施工人员存取最新版本,无需开发人员亲临现场。 利用Tracker组建开发团体之间的问题跟踪及讯息通迅,通过其Notify模组与电子邮件结合起来大大加强了开发团体之间的沟通,Reporter模组可对发现的问题进行整理、以报表方式分类报出,作为开发的指导。 以上为PVCS的两个主要模组,科学地套用可以大大提高开发效率,避免了代码覆盖、沟通不够、开发无序的混乱局面,如果利用了公司原有的知识库,则更能提高工作效率,缩短开发周期。 2 .减少施工费用 利用PVCS进行软体配置管理后,建立开发管理规范,把版本管理档案挂接在公司内部的Web伺服器上,内部直接通过Netscape访问Version Manager,工程人员通过远程进入内部网,获取所需的最新版本。开发人员无需下现场,现场工程人员通过对方系统管理员收集反馈意见,书面提交到公司内部开发组项目经理,开发组内部讨论决定是否修改,并作出书面答复。这样做,可以同时回响多个项目点,防止开发人员分配到各个项目点、分散力量、人员不够的问题,同时节约大量的旅差费用。 有利于知识库的建立 1.代码对象库 软体代码是软体开发人员脑力劳动的结晶,也是软体公司的宝贵财富,长期开发过程中形成的各种代码对象就像一个个零件坯一样,是快速生成系统的组成部分。长期的一个事实是:一旦某个开发人员离开工作岗位,其原来所作的代码便基本成为垃圾,无人过问。究其原因,就是没有专门对各人的有用对象进行管理,把其使用范围扩大到公司一级,进行规范化,加以说明和普及。Version Manager为对象管理提供了一个平台和仓库,有利于建立公司级的代码对象库。 2.业务及经验库 通过PVCS Version Manager的注释及Tracker,可形成完整的开发日志及问题集合,以文字方式伴随开发的整个过程,不依某个人的转移而消失,有利于公司积累业务经验,无论对版本整改或版本升级,都具有重要的指导作用。 规范管理 1.量化工作量考核 传统的开发管理中,工作量一直是难以估量的指标,靠开发人员自己把握,随意性相当大,靠管理人员把握,主观性又太强。采用PVCS管理后,开发人员每天下班前对修改的档案 Check In,其中记述当天修改细节描述,这些描述可以作为工作量的衡量指标。 2.规范测试 采用PVCS以后,测试有了实实在在的工作,测试工作人员根据每天的修改细节描述对每一天的工作做具体的测试,对测试人员也具有可考核性,这样环环相扣,大大减少了其工作的随意性。 3. 加强协调与沟通 采用PVCS后,通过Version Manager文档共享及其特定锁机制、Tracker与电子邮件的集成,大大加强了项目成员之间的沟通,做到有问题及时发现、及时修改、及时通知,但又不额外增加很多的工作量。 精髓 具体来讲,配置管理包含如下内容: 标识:识别产品的结构、产品的构件及其类型,为其分配唯一的标识符,并以某种形式提供对它们的存取。 控制:通过一定的机制控制对配置项的修改。 状态报告:记录并报告配置项以及元数据的状态。 配置审计:确认产品的完整性并维护配置项间的一致性。 从上面的描述知道,配置管理的基本单位是配置项。 从“哲学”意义上讲,它记录配置项的三个方面: 从哪里来?此项可归结为的问题,(Who)谁创建的?(When)什么时间创建的?(Why)为什么创建此配置项? 当前在哪里?此项纪录配置项当前的存储位置以及状态。 将到哪里去?通过配置控制来把配置项“组装”到正确的版本中去。 配置项可以是大粒度的,也可以是小粒度的。如果跟踪个别需求,那么不必要把整个需求规格说明文档定义为一个配置项,可以把每个需求定义为配置项;如果把软体开发工具也放入配置管理系统,那么把配置项定义为档案级就不合适了,只需要跟踪开发工具的版本,即把整个配置工具定义为一个配置项就足够了。 简而言之,配置项可以是档案级粒度的,也可以是档案版本级粒度的。当然,粒度越小管理的成本越高,但是配置的精度也就越高。 一个完整的SCM系统要具有三个核心功能:版本控制、变更控制、配置控制以及两个支持功能:状态统计和配置审计。 版本控制 版本,亦称配置标识,是指某一特定对象的具体实例的潜在存在。这里的某一特定对象是指版本维护工具管理的软体组成单元,一般是指源档案;具体实例则是指软体开发人员从软体库中恢复出来的某软体组成单元的具有一定内容和属性的一个真实拷贝。例如,对源档案的每一次修改都生成一个新版本。 版本控制就是对在软体开发过程中所创建的配置对象的不同版本进行管理,保证任何时候都能取到正确的版本以及版本的组合。 当前,这方面典型的工具有如VSS和CVS。 变更控制 变更控制是通过对变更请求(Change Request,简称CR)进行分类、追踪和管理的过程来实现的。变更的起源有两种:功能变更和缺陷修补(Bug-Fix)。功能变更是为了增加或者删除某些功能。缺陷修补则是对已存在的缺陷进行修补。 配置管理 对变更进行控制的机构称为变更控制委员会(Change Control Board,简称CCB)。变更控制委员会要定期召开会议,对近期所产生的变更请求进行分析、整理,并做出决定。而且要遵循一定的变更机制。 下面是一个典型的变更机制: 可以随着变更过程的推进,提升配置项的状态。 这方面的工具有Bugzilla。 配置控制 配置控制使用户能够通过对适当版本的选择来组成特定属性(配置)的软体系统,这种灵活的“组装”策略使得配置管理系统像搭积木似的使用已有的积木(版本)组装成各种各样、不同功能的模型。 软体产品的每个版本都是一组配置项(原始码、文档、数据)的集合。配置控制就是要保证每个配置的完整性和精确性。 举个例子来说,要发布软体的32.6版本,那么就要把原始码、文档、数据中所有应该包含到这个版本中的正确配置项检出。 在开发过程中,在不同阶段要建立各种基线。基线的建立是配置控制功能的典型套用。所以说,基线是具有里程碑意义的一个配置。 一般的商业软体配置管理工具都具有配置控制的功能,只是灵活性和精确性有差别。 状态报告 状态报告要回答所谓4W的问题: What:发生了什么事? Who:谁做的此事? When:此事是什么时候发生的? Why:为什么做此事? 状态报告还要能够报告所有配置项以及变更请求的状态。 配置审计 配置审计要审查以下项: 整个配置管理过程是否符合规范 配置项是否与需求一致,记录正确 配置的组成是否具有一致性 其它 由于现在软体行业越来越重视质量,许多项目专门成立质量保证部门专门来进行配置审计。所以现在也可以说,配置审计是一个SQA(软体质量保证)活动。 配置管理的商业模型 配置管理的实施包括两部分:工具和规范。 在软体开发过程自动化的今天,没有工具的支持而实施配置完整的配置管理是不能想像的。因此选择一个符合公司或项目的工具至关重要。在配置管理系统中,可归纳出以下四种模型。当前商业工具一般采用其中一种或几种模型。 CICO模型 组织模型 长事务模型 变更集模型 通过对商业模型的理解,可以帮助了解某种工具是否适合某个公司或项目。 CICO模型 CICO模型主要关注的是单个档案的版本控制。图显示了一个支持CICO模型的CM系统的工作过程。用户利用库和档案系统来进行工作。档案被版本化并存储到库中,新版本的产生由库工具控制。然而, 档案在库中不是可以直接存取的,用户必须去检出(即Check out)一个档案的版本到工作空间中以便读取它的内容。更改后的档案可以被检入库中(即Check in),产生档案的一个新版本。 此模型的代表工具是SCCS和CVS。 组织模型 组织模型由CICO模型自然导出,建立于构件版本图的基础之上,同时依赖于存储库和工作空间的概念,可以通过对构件加锁进行并发控制。组织模型的重点是在CM系统支撑下加强了对创建配置、对有关的历史信息的管理和使用他们作为工作环境的支持。 组织模型中的配置由系统模型和版本选择规则组成。系统模型列出了组成系统的所有的构件。版本选择规则指出了组成配置的每一个构件选择版本。选择规则用于系统模型,选择构件版本,即绑定一个构件到某一版本。这个模型的操作方式是:开发人员根据模型的构件定义整个系统,并在每一步骤中给每个构件选择合适的版本。版本操作的工作方式如图所示。 CM支持主要关心的是维护系统和其构件的版本历史,并选择符合一致性配置的构件版本。只有在所选构件的版本与所选其它构件版本一致时才认为一个配置版本。 此模型的代表工具是CCC。 长事务模型 长事务模型主要支持包括一系列原子变更的全系统演变和由团队开发人员对系统变更的协调。开发人员主要操作配置而非单独的构件。事务提交的结果是新配置版本,一系列连续的变更结果生成一系列的配置版本,称为开发路径。 在长事务模型中,开发人员主要的工作对象是配置,开发人员首先选择系统配置版本,接下来把关注重点放在系统结构上。构件的版本由配置隐式决定。长事务由两个概念组成:工作空间和并发控制方案。工作空间来源于存储库或一个封闭工作空间中的一个固定配置。工作空间由工作配置和一系列已保存的配置组成。工作配置代表构件和系统结构能够被动态更改的配置。提供通过工作空间进行的透明库访问、将高效的库存储技术套用于工作空间和管理派生构件的版本。 此模型的代表系统是NSE。 变更集模型 主要集中于对系统配置的逻辑变更的支持。在这个模型中引入的变更集表示组成逻辑变更的对不同构件修改的集合,它是创建变更的活动完成后对逻辑变更的记录。支持这个模型的CM系统用户可以直接操作变更集。在变更集模型中,配置可描述为由基线和一组变更集组成。 变更传播给其它配置可通过包含各自变更集来进行。开发人员使用不同的集成策略将逻辑变更集包含到一个新的系统发行中。这样的好处非常明显,例如,维护10个不同版本的产品,现在要对所有的版本修改一个缺陷(Bug)。如果相同的工具简单的重复10次显然是不可接受的。而通过变更集把这个逻辑变更从一个版本自由的传到另外一个版本。 开发人员可跟踪逻辑变更和确定这些变更是否属于特定配置。这种配置管理的方法,因为其将重点放于逻辑变更上,所以被称作面向变更的配置管理。它不同于现在的其他3种CM模型,因为其它3种CM模型使用的面向版本的方法把重点放在构件和配置版本上。 在单一构件的情况下,变更集是两个档案版本之间区别的集合,通常指的是增量内容。对配置来说,变更集就是两个配置版本之间区别的集合。这组区别就是两个配置版本间的修改构件增量集合,即变更构件集的增量。 面向变更的观点不同于面向版本的观点。这有两点不同,一是逻辑变更的显式表示允许对与单个构件和配置有关的变更集进行跟踪。二是引用单个变更集并有选择地将它们纳入配置管理中的这种能力提供了对系统演化管理的支持,这种演化是基于将逻辑变更传播到维护的系统配置进行的。 此模型的代表工具是UCM和SABLIME。 配置管理的套用 云安全措施中最重要的要素就是配置管理。 在SaaS环境中,配置管理是完全由云供应商负责处理的。如有可能,客户可通过鉴证业务准则公告(SSAE)第16号、服务组织控制(SOC)报告或ISO认证以及云安全联盟的安全、信任和保证注册证明向供应商提出一些补丁管理和配置管理实践的要求。 在PaaS环境中,平台的开发与维护都是由供应商来负责的。应用程式配置与开发的库和工具可能是由企业用户管理的,因此安全配置标准仍然还是属于内部定义范畴。然后,这些标准都应在PaaS环境中被套用和监控。 结束语 配置管理本身无论从理论和实践都在不断丰富和发展。例如,配置管理套用于“知识库”的管理就产生了“内容管理”这一新的领域。配置管理提供的状态报告和数据统计也为软体度量提供了决策依据。配置管理为项目管理提供了各种监控项目进展的视角,为项目经理确切掌握项目进程提供了保证。配置管理也为开发人员提供了一个协作的平台,在此平台上,大家能够更有效率的交流和协作。可以说,配置管理是软体开发的基石! 配置管理近年来在中国得到了极大的认可,可以毫不夸张的说,没有配置管理,就谈不上软体开发,就谈不上软体质量,就谈不上软体业的发展。随着软体业规模的扩大,配置管理的实施不是要不要的问题,而是什么时间、如何实施的问题了。
软件配置管理是贯穿软件开发过程始终的一项工作。对于一个软件项目来说,软件配置管理规范至少包括以下的内容:
(1)配置项及其命名规则。
(2)配置库文件目录结构。
(3)角色和权限定义。
(4)配置项变更流程。
(5)配置项发布。
(6)基线定义和基线变更。
项目中的基线有两个方面:一是作为里程碑的基线;另一个是模块的阶段性成果基线(对工作产品而言),一般来说都要避免变更基线。对这两种不同的基线,其影响的范围不同,确立和变更方式也不一样。
项目的基线变更控制委员会由客户代表、产品经理、项目经理和技术经理组成,对发布的里程碑类基线的变更必须由变更控制委员会确认并由QA进行变更记录,所有被变更影响的配置项都需要重新同步后再次发布;而对于仅仅作为工作状态保留的基线,一般只需要建立基线的小组确认更改并在QA进行记录即可。
软件配置管理的目的为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。软件配置管理软件配置管理是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。软件配置管理,又称软件形态管理、或软件建构管理,简称软件形管。界定软件的组成项目,对每个项目的变更进行管控(版本控制),并维护不同项目之间的版本关联。以使软件在开发过程中任一时间的内容都可以被追溯,包括某几个具有重要意义的数个组合。软件配置管理,贯穿于整个软件生命周期,它为软件研发提供了一套管理办法和活动原则。软件配置管理无论是对于软件企业管理人员还是研发人员都有着重要的意义。