scm 软件配置管理

目录

    • 1、为什么需要使用SCM
    • 2、什么是SCM
    • 3、作用
      • 变更控制:
      • 版本控制的内容
      • 版本控制策略
    • 4、版本控制工具

1、为什么需要使用SCM

1. 更改源文件,但不知道哪个是最新的;
2. 我不了解文件的修改过程,尤其是最后修改了哪几行以及为什么修改;
1. Make时,经常用错文件的版本;
多人修改一个文件,有些人的结果被冲掉了;
程序误删了,只能重写;
花了一周时间,终于查出了一个错误,
但发现有个同事上周前已经修改了同样的错误,
但我却不知道,造成浪费;2. 整个项目由若干部分组成,项目初期各人做各人的一部分,
后期合并联调,但是周期很长,达数周甚至数月,开销非常大;
调试过程中,经常出现“扯皮”,搞不清楚哪的问题
版本太多,有的太旧,查看不方便
估计项目成员的工作进度和工作成果比较困难3. 交付给用户的产品“缺斤少两”,用户在安装时才发现问题
用户使用时发现的问题不能够及时得到解决
不能过确切了解项目的进度,总是得到“差不多”“大概”之类的模糊回答
公司的运作过程无法控制,“不按我说的做”

2、什么是SCM

SCM是一种标识、组织和控制修改的技术。

它应用于整个软件生存期。
在软件建立时会经常产生变更,
而变更加剧了项目中软件人员之间的混乱。
之所以产生混乱,是因为在进行变更前没有仔细分析,
或没有进行变更控制。因为变更在任何时刻都可能发生,
因此软件配置管理活动的目标就是为了标识变更,控制变更,
确保变更正确地实现,向其他有关的人报告变更。
软件配置管理是一组追踪和控制活动,
它们开始于软件开发项目开始之时,结束于软件被淘汰之时。
从某种角度讲,SCM是一种标识、组织和控制修改的技术,
目的是使错误降为最小并最有效地提高生产效率。

SCM是一门用来记录并控制软件产品数据的管理学科。

3、作用

产品的经历

软件产品数据:需求文档设计文档源码数据库脚本测试用例(测试脚本)测试报告培训文档(教育文档)上线记录

SCM的主要任务有两个:
第一,变更控制;第二,版本控制

变更控制:

唯一不变的就是变化本身,接受变更是不争的实事。
软件产品易于掌握的特性和不可见性,
往往导致它的构建人员面临着永恒的变更。
因此必须制定相应的变更管理计划,防止变更失控

流程:
1.识别变更。
2.评价变更对项目整体的影响(变更的可行性)。
3.寻找处理变更的备选方案。
4.征求项目干系人的意见。
5.批准或否决变更。
6.追踪变更的实施情况。

  • 版本控制:

版本控制系统是保存文件多个版本的一种机制。
版本控制软件可以帮助你得到以下益处:

别人正在修该某文件的同时,你可以同时修改这个文件。
你能方便地将你机器上的全部项目文件更新到当前版本。
你可以回溯到任何文件的任意版本。
你可以获得一份文件更改的历史记录。
你无需本地备份,因为版本控制提供了安全保障

版本管理:记录每个版本

方式一:将最原始的文件存下来,后面都是存变化的部分
方式二:将最新的文件存下来,前面的都是存变化的部分

取文件的时候,一般都是取最新的文件 一般采用方式2

版本控制的内容

版本控制的目标是能够随时获取软件在整个生命周期中任意时间点的文件状态。因此,任何与项目相关的文件都应该进行版本控制。以下内容应该进行版本控制:
管理相关文档(包括项目章程、合同、项目范围说明书、各类计划、各类核对表等项目管理过程中涉及的文档)
开发相关文档(包括编码规范、需求分析、概要设计、详细设计、数据字典、API帮助手册、测试报告等涉及软件构建的文档)

  • 系统原型
  • 源代码
  • 实例代码
  • 测试脚本
  • 数据库脚本
  • 构建和部署脚本
  • 配置文件

版本控制策略


1. 先下手为强
2. 保证频繁地提交可靠代码
3. 对提交权限进行限制(读写权限)
4. 确保团队中所有人在下班前提交代码,并在开发中都能及时获取最新版本
5. 使用意义明确的提交注释
6. 及时同步并定义明确的基线

4、版本控制工具

  1. git
    码云
    github,最大同性交友网站
  2. svn
SVN是一款非常知名的中央版本控制系统。
(与中央版本控制系统对应的是分布式版本控制系统,如git。
分布式版本控制系统支持大型开源团队的需要,
一般项目使用中央版本控制系统足以。)
版本控制系统用于维护应用程序每次修改的完整历史,
包括源代码、文档、数据、脚本等等。它的另一个重要用途,
让团队一起工作在应用程序的不同部分,同时维护系统记录.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420586.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

一款纯css3实现的超炫动画背画特效

之前为大家介绍了很多款由纯css3实现的特效。今天要再给大家带来一款纯css3实现的超炫动画背画特效。代码非常简单&#xff0c;没有引用任何其它js代码。css代码也不多。效果非常炫。一起看下效果图&#xff1a; 在线预览 源码下载 实现的代码。 html代码&#xff1a; <di…

springboot指定首页(静态资源导入)

ResourceProperties小小的源码分析1. 静态资源该放在哪里&#xff1f;2. 首页该如何自动展示&#xff1f;1. 静态资源该放在哪里&#xff1f; springboot 集成了spring-webmvc,这个都是知道的。 该框架的特点是自动装配。 先看WebMvcAutoConfiguration自动装配类 public void…

Mybatis日常操作遇到的问题

如果参数是一个基本类型&#xff08;不是一个类对象&#xff09;&#xff0c;在写sql需要对这个基本类型判断时&#xff0c;这个基本类型的名称必须是value,因为mybatis对于单个基本类型而言&#xff0c;默认名称是value&#xff0c;自定义的名称在用于if/when时&#xff0c;代…

log4j日志收集

目录1. log4j 是什么1. 日志管理工具2. 有哪些组成部分&#xff1f;3. 日志级别2. 输出端与日志格式化器Appender&#xff08;输出端&#xff09;Layout&#xff08;日志格式化器&#xff09;3. log4j.properties占位符&#xff0c;格式化日志4. 使用1. log4j 是什么 1. 日志管…

【从零之三(更)】自定义类中调用讯飞语音包错误解决办法

原文&#xff1a;http://blog.csdn.net/monkeyduck/article/details/24302655 在科大讯飞语音包的Mscdemo中它的方法都是写在Activity中的&#xff0c;这样其实并不是很好&#xff0c;因为Activity只是负责UI交互的&#xff0c;如果项目很简单自然可以&#xff0c;但是一旦比较…

php常用代码(一)

一&#xff1a;获取上个小时 方法1&#xff1a;date("H",strtotime("-1 hours"); 方法2&#xff1a;date(H,time()-60*60); 方法3&#xff1a;echo substr(0.(--date(H) & 23),-2); 转载于:https://www.cnblogs.com/Alight/p/3998203.html

spring 整合quartz

定时框架quartz1. 使用场景2. corn表达式3. 简单使用4. 注意点1. 使用场景 定时任务 周期性执行 &#xff08;每隔多长时间&#xff09; 定时执行&#xff08;每天几点&#xff09; 系统之间的数据交换 两个系统之间的数据 数据整理 报表打印… 2. corn表达式 corn 表达式…

poi excel文档生成与读取

阿帕奇poi excel文档操作1. introduce2. 轮子3. demo 以九九乘法表为例3.1 xls的生成3.2 xlsx的生成3.3 读取xlsx1. introduce poi是什么 答&#xff1a;用于excel的操作的&#xff0c;可以对集合&#xff0c;map进行操作生成对应的excel文档。做报表。 对应的iText是pdf操作的…

hdu4405:概率dp

题意&#xff1a; 总共有n1个格子&#xff1a;0-n 初始情况下在 0号格子 每次通过掷骰子确定前进的格子数 此外 还有一些传送门可以瞬间从 u 点传送到 v 点&#xff08;必须被传送&#xff09; 求走到&#xff08;或超过&#xff09;n点总共需要掷多少次骰子 分析&#xff1a; …

echarts生成图表

目录1. echarts是一个优秀的js绘图框架2. 如何使用echats框架绘图&#xff1f;3. 更多彩蛋1. echarts是一个优秀的js绘图框架 ECharts&#xff0c;一个使用 JavaScript 实现的开源可视化库&#xff0c;可以流畅的运行在 PC 和移动设备上&#xff0c;兼容当前绝大部分浏览器&…

HDU 1394 线段树or 树状数组~

Minimum Inversion Number   Description The inversion number of a given number sequence a1, a2, ..., an is the number of pairs (ai, aj) that satisfy i < j and ai > aj. For a given sequence of numbers a1, a2, ..., an, if we move the first m > 0 nu…

servlet,springmvc,springboot转发时页面静态资源404问题

目录不讨论静态资源过滤的问题。。。这个问题重定向不会404&#xff0c;因为重定向是找到了对应的页面&#xff0c;是浏览器决定的。 而转发在相同目录下转发会找到资源。但是从controller&#xff08;根目录&#xff09;里面转发到根目录的下面的目录&#xff0c;转发能过去&…

消除过期的对象引用

http://www.oak.hk/blog/2014/09/28/eliminate-obsolete-object-refrences/ 转载于:https://www.cnblogs.com/reader2012/p/4006299.html

mysql数据库面试总结

mysql数据库相关1. 数据库事务的四个特性及含义2. 视图的作用&#xff0c;视图可以更改么2.1 什么是视图&#xff0c;作用3. drop,delete与truncate的区别4. 索引的工作原理及其种类5. 连接查询的种类6. 数据库范式7. 数据库优化的思路7.1 sql语句的优化7.2 数据库结构优化7.3 …

SQL Server 中索引的禁用与删除

主题 1、 禁用索引 alter index index_name on table_name disable; 主题 2、 删除索引 drop index table_name.index_name; 转载于:https://www.cnblogs.com/JiangLe/p/4007095.html

关于split与StringTokenizer的理解

关于split与StringTokenizer的理解 一.split 依据匹配给定的正則表達式来拆分此字符串。此方法返回的数组包括此字符串的子字符串&#xff0c;每一个子字符串都由还有一个匹配给定表达式的子字符串终止&#xff0c;或者由此字符串末尾终止。数组中的子字符串按它们在此字符串中…

springboot, thymeleaf 教你快速搭建网站

目录项目结构国际化curd操作404页面拦截器地址&#xff1a; https://github.com/sevenyoungairye/spring-boot-study员工管理员系统&#xff0c;页面用html thymeleaf模板数据库用的是map集合&#xff0c;没用真实的数据库项目结构 国际化 默认中文 中文&#xff0c;英文切换…

springboot 整合druid

目录1. maven依赖2. yml配置3. druid配置类编写4. 后台性能监控https://github.com/sevenyoungairye/spring-boot-studydruid优点&#xff1a;提供性能监控&#xff0c;配置灵活丰富 1. maven依赖 <!-- mysql驱动 springboot内置 --><dependency><groupId>…