当前课程知识点:软件理论与工程 > 第6章 项目管理 > 6.3 软件配置管理 > 6.3 软件配置管理
大家好
我们现在继续开始
软件理论与工程第六章第三节
软件配置管理
我是主讲人高广宇
我们首先 想一想
为什么要进行软件配置管理
软件配置管理到底是什么
我们主要先回答这两个问题
但实际上为什么会提出软件配置管理
它其实最主要的一个问题的来源在于
随着我们现在整个科技和技术的发展
复杂的软件系统及其开发过程
它开放的系统越来越大
功能越来越复杂
它也涉及到了越来越多的软件开发人员
当然 也就涉及到多种文档对象和类型
包括各种各样的数据模型
甚至还包括
各种不同的版本
最简单来说
比如说我们开发一个软件
我们通常具有pc版的
安卓版的 iphone版的 多种
甚至还会有各种的
面向特定应用或环境的版本
还有多种平台的 linux的 windows的等等
多个开发地点
在这种情况下
同样的一个软件
我怎么样能够保证它
既是围绕的同样的一堆需求
同样一个功能
但是 又是面向不同的环境
不同的需求来进行开发
实际上 我们就需要通过软件配置管理
来明确地描述
如何在不同的环境
不同的上下文条件下
去做软件的一个开发
所以 所有方面都需要考虑
并且我们需要去进行正确的管理
这就是软件配置管理
以往的软件开发过程中
它也通常存在各种各样的问题
当然也就前面提到的这些情况下
一些比较具体的问题
比如说 版本难以控制
资源变化频繁导致失控
配置审核问题
文档和程序严重脱钩
测试工作不规范等等
因为软件复杂了之后
涉及的环节非常多
涉及到的人也非常多
我们需要有一套规范来明确
各自的任务和各自的需要符合的规则
这其实就是软件配置管理所关注的内容
当然前面这些问题导致的后果会非常多
我就不一一细讲了
大家可以直接课后去看一下
传统的做法
通常就是说
我们通过建立各种各样的文件
通过手工去保持各种各样的版本
它面临的一个问题
比如说站在程序员的角度上来说
我要更改一个文件
但我不知道哪个是最新的
我最后修改了哪几行以及原因
对我帮助很大
但是我又不知道 我也没有清楚的去记录
比如说大家一起共同开发的时候
改得乱七八糟
并没有协调一致
并没有去讨论
所以导致 做很多无用功
甚至 最后本来一个很好的程序
改的乱七八糟的
然后就没法去直接运行
这都是各种各样的问题
从程序员的角度
从项目经理的角度上
调试的过程中
项目成员也经常会因为一些问题
大家各自不想承担责任
出现"扯皮"
所以也搞不清楚到底是谁造成的责任
还有包括项目版本太多等等
包括交付给用户使用的产品又"缺斤少两"
到底是在需求阶段
用户没有说清楚
还是说我们在整个过程中漏掉了
或者在哪个环节
这些都是问题
所以 我们需要去开展软件配置的管理
实施软件配置管理
它有什么好处
第一个
它能够加强开发过程的一个控制
加强产品质量的可控性
还能够
节约费用
因为能够缩短开发周期
提高效率
也有利于知识库的建立
代码对象库 业务及经验库
有时候能重用 复用
还能够规划一个管理
前面讲了这么多
软件配置管理 能解决的问题
我们形式化的定义一下
到底什么是软件配置管理
我们引用一下《Code Complete》
书中的一段话来强调一下
配置管理
它是能够系统的处理变更
从而使得软件系统可以随时保持其完整性
所以 配置管理
有的时候又可称为"变更控制"
可以用来评估提出的变更请求
跟踪变更 并保存系统在不同时间的状态
当然还有另外一个定义
比较简单
简单来说就是说
对软件开发组所建立的软件的修改
进行标识 组织和控制的一种艺术
其目标就是减少错误
提高生产力
比较实际
还有像[IEEE]的定义
咱们这里就不一一去讲了
大家可以课后再自己去体会
反正大概我们理解一下
软件配置管理的作用
就是我们要在质量体系的诸多支持活动中
去有机地把其它支持活动组织起来
形成一个整体 相互促进
保证质量体系的实施
它的目的
是建立和维护在整个软件生存周期中
软件项目产品的一个完整性
它主要的内容又包括
及时地确定软件的配置
系统地控制软件的配置的变更
并保证整个软件生命周期
软件配置的完整性和可追溯性
所以 我们总结一下软件配置管理
贯穿于整个软件生命周期
为软件研发 提供了一套管理办法
和活动原则
而且 软件配置管理
无论是对于软件企业管理人员
还是研发人员都非常的重要
软件配置管理
通常也可以凝练为三个方面的内容
版本控制
变更控制和过程支持
我们的下节内容里
也会把版本控制进一步的细化去讲解
我们今天这一节 就讲到这里
好 谢谢大家
-课程概述
-1.1 软件的本质
-1.2 软件工程
--1.2 软件工程
-1.3 软件过程结构
-1.4 过程模型
--1.4 过程模型
-1.5 敏捷开发方法
-第1章 习题
--第1章 习题
-2.1 需求工程过程
-2.2 需求获取
--2.2 需求获取
-2.3 需求分析
--2.3 需求分析
-2.4 过程建模
--2.4 过程建模
-2.5 面向对象建模
-第2章 习题
--第2章 习题
-3.1 设计概述
--3.1 设计概述
-3.2 设计的概念
-3.3 设计模型元素
-3.4 体系结构概述
-3.5 体系结构风格
-3.6 构件级设计
-3.7 UI设计
--3.7 UI设计
-3.8 基于模式的设计
-第3章 习题
--第3章 习题
-4.1 UML概述
-4.2 UML 及UML中的事物
-4.3 UML关系和图
-4.4 UML 图细节(上)
-4.4 UML 图细节(下)
-第4章 习题
--第4章 习题
-5.1 软件测试策略
-5.2 测试传统的应用系统
-5.3 测试面向对象的应用系统
-5.4 测试web应用系统
-5.5 测试移动应用系统
-第5章 习题
--第5章 习题
-6.1 软件项目估算
-6.2 软件过程管理
-6.3 软件配置管理
-6.4 项目版本控制及调试
-第6章 习题
--第6章 习题