壹佰网|ERP100 - 企业信息化知识门户

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4124|回复: 8

软件如何用PDM管理?

[复制链接]
发表于 2007/7/22 22:03:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。如果您注册时有任何问题请联系客服QQ: 83569622  。

您需要 登录 才可以下载或查看,没有帐号?注册

x
这是很多电子企业上PDM的一个难题,我个人这方面实施经验欠缺,先拿一些高手的资料,引出好玉来!
 楼主| 发表于 2007/7/22 22:05:59 | 显示全部楼层

软件配置管理(SCM)简介

一、引言

    软件开发过程中随着工作的进展会产生许多信息,如:需求分析说明、设计说明、源代码、可执行码、用户手册、测试用例、测试结果和这些内容形成的相应的技术文档;以及合同、计划、会议记录、报告等管理文档。另一方面,软件开发过程中出现变更是不可避免的。面对如此庞大且变动中的信息集合,如何使其有序高效地产生、存放、查找和利用成为软件工程项目十分突出的问题。如果没有一套严谨、科学的管理办法,出现混乱和差错几乎是必然的。软件配置管理正是为解决这个问题而提出的,它为软件开发提供了一套管理办法和活动原则,成为贯穿软件开发始终的重要质量保证活动。

    二、软件配置管理的概念

    要想掌握一种技术,首先要深刻理解他的概念。那么什么是软件配置管理呢?这个名词英文是Software Configuration Management,通常我们将它缩写为SCM。我们可以从以下几个角度理解和掌握它的真正含义:

    (1)《ISO/IEC 12207(1995)信息技术--软件生存期过程》:配置管理过程是在整个软件生存期中实施管理和技术规程的过程,它标识、定义系统中软件项并制定基线;控制软件项的修改和发行;记录和报告软件项的状态和修改申请;保证软件项的完整性、协调性和正确性;以及控制软件项的储存、装载和交付。

    (2)《ISO 9000-3(1997)质量管理和质量保证标准--第3部分:ISO 9001:1994 在计算机软件开发、供应、安装和维护中的使用指南》:软件配置管理是一个管理学科,它对配置项的开发和支持生存期给予技术上和管理上的指导。配置管理的应用取决于项目的规模、复杂程度和风险大小。

    (3)巴比齐(W.Babich):软件配置管理能协调软件开发,使得混乱减少到最小。软件配置管理是一种标识、组织和控制修改的技术,目的是最有效地提高生产率。

    (4)《GB/T 11457(1995)软件工程术语》:软件配置管理是标识和确定系统中配置项的过程,在系统整个生存周期内控制这些项的投放和更动,记录并报告配置的状态和更动要求,验证配置项的完整性和正确性。

    一言以蔽之,配置管理是门通过一系列技术、方法和手段来维护产品的历史、鉴别和定位产品独有的版本、在产品开发和发布阶段控制变化,从而使管理制度化、有效减少重复性工作、保证产品的质量和效率的科学。
三、软件配置管理术语
    软件配置管理是软件工程学科中涉及概念较多的一项内容,为了便于说明,下面给出一些相关术语的定义。
    (1)项目委托单位 project entrust organization
    指为产品开发提供资金并通常也是(但有时也未必)确定产品需求的单位或个人。
    (2)项目承办单位 project undertaking organization
    指为项目委托单位开发、购置或选用软件产品的单位或个人。
    (3)软件开发单位 software development organization
    软件开发单位是指直接或间接受项目委托单位委托而直接负责开发软件的单位或个人。
    (4)用户 user
    指实际全胜软件来完成某项计算、控制或数据处理等任务的单位或个人。
    (5)软件 software
    指计算机程序及其有关的数据和文档,也包括固化了的程序。
    (6)重要软件 critical software
    指其故障会影响到人身安全、会导致重大经济损失或社会损失的软件。
    (7)软件生存周期 software life cycle
    指从软件系统设计对软件系统提出应用需求开始,经过开发,产生出一个满足需求的计算机软件系统,然后投入运行,直至该软件系统退役为止。其间经历系统分析与软件定义、软件开发以及系统的运行与维护等三个阶段。其中软件开发阶段一般又分成需求分析、概要设计、详细设计、编码与单元测试、组装与集成测试、系统测试以及安装与验收等七个阶段。
    (8)软件开发库 software development library
    指在软件生存周期的某一个阶段期间,存放与该阶段软件开发工作有关的计算机可读信息和人工可读信息的库。
    (9)软件受控库 software controlled library
    指在软件生存周期的某一个阶段结束时,存放作为阶段产品而释放的、与软件开发工作有关的计算机可读信息和人工可读信息的库。软件配置管理就是对软件受控库中的各软件项进行管理,因此软件受控库也叫做软件配置管理库。
    (10)软件产品库 software product library
    指在软件生存周期的系统测试阶段结束后,存放最终产品而后交付给用户运行或在现场安装的软件的库。
    (11)接口控制 interface control
    指描述有关由一个或多个部门提供的两个或两个以上的配置项接口的所有功能特性和物理特性的过程。在实现之前,要确保对这些功能特性和物理特性所建议的修改已经过评审和批准。
    (13)功能基线 functional baseline
    指在系统分析与软件定义阶段结束时,经过正式评审和批准的系统设计规格说明书中对待开发系统的规格说明;或是指经过项目委托单位和项目承办单位双方签字同意的协议书或合同中所规定的对待开发软件系统的规格说明;或是由下级申请经上级同意或直接由上级下达的项目任务书中所规定的对待开发软件系统的规格说明。功能基线是最初批准的功能配置标识。
    (13)指派基线 allocated baseline
    指在软件需求分析阶段结束时,经过正式评审和批准的软件需求的规格说明。指派基线是最初批准的指派配置标识。
    (14)产品基线 product baseline
    指在软件组装与系统测试阶段结束时,经过正式评审的批准的有关所开发的软件产品的全部配置项的规格说明。产品基线是最初批准的产品配置标识。
    (15)软件配置 software configuration
    指一个软件产品在软件生存周期各个阶段所产生的各种形式(机器可读或人工可读)和各种版本的文档、程序及其数据的集合。该集合中的每一个元素称为该软件产品软件配置中的一个配置项(configuration item)。
    (16)释放 release
    指在软件生存周期的各个阶段结束时,由该阶段向下阶段提交该阶段产品的过程。它也指将系统测试阶段结束时所获得的最终产品向用户提交的过程。后面这个过程也叫做交付(delivery)。
    (17)配置控制委员会 configuration control board
    一组负责评估和审批配置项的变更的人员,以确保所有的变更都是经过审核的。
    (18)配置标示
    配置管理的一个要素,由为系统所选的配置项及纪录它们功能和物理特性的技术文档组成;经核准的配置项的技术文档是由说明书、图、表等组成的。
    (19)配置控制
    配置管理的一个要素,由评估、协调、批准或不批准,和对正式创建配置标识的配置项实施变更等活动组成。
    (20)配置状态统计
    配置管理的一个要素,由为有效管理所需的记录和报告信息组成。这些信息包括经核准的配置标识表、需要变更的配置状态和实施经审核的变更状态组成。

    四、常用缩写
    CCB configuration control board 配置控制委员会
    CI configuration item 配置项
    CM configuration management 配置管理
    CMP configuration management 配置管理计划
    CR change request 变更请求
    FCA functional configuration audit 功能配置审核
    GUI graphical user interface 图形用户界面
    PCA physical configuration audit 物理配置审核
    SCM software configuration management 软件配置管理

  五、软件配置管理的任务
    软件配置管理是软件质量保证的重要一环,其主要责任是控制变化,同时,也负责配置项和软件的版本标识、软件配置的设计、以及配置中所有变化的报告。可以认为,软件配置管理的工作是要解决下列问题:
    (1) 采用什么方式去表示和管理数量不少的程序、文档等的各种版本?
    (2) 在软件产品交付用户之前和交付之后如何控制变更?实现有效的变更?
    (3) 谁有权批准变更以及安排变更的优先级?
    (4) 用什么方法估计变更可能引起的其它问题?
    这些问题的解决正是软件配置管理应完成的任务:配置标识、版本管理、变更管理、配置审核及配置报告。

    六、配置管理工具
    1、 太平洋公司代理的MKS公司开发的产品
    (1) Source Integrity(SI)--版本管理工具
    (2) Track Integrity--问题跟踪、变更管理工具

    2、 Rational公司的产品
    (1) ClearCase--版本控制工具
    (2) ClearQuery--变更管理工具

    3、 在国内,使用最多的版本管理工具可能就是微软的Studio Package中带的VSS

    4、 较早被使用的版本管理工具--PVCS

    5、另外国内的SCM工具为北大青鸟的JBCM
    JBCMIS简介:
    http://www.beidasoft.com/BBS/PostAttachment.aspx?PostID=16

    七、结束语
    配置管理的过程实际是软件开发过程中质量管理的精髓所在,版本管理提高了开发者的工作效率,而变更控制则提高了整个开发团队的工作效率。两者的紧密结合,将为软件开发项目提供一道坚实的质量防火墙,使软件开发项目的质量管理过程规范而有效。
 楼主| 发表于 2007/7/22 22:06:50 | 显示全部楼层
软件配置管理(Software Configuration Management,SCM),是软件工业化开发和工程化管理的基本手段;是为减少软件开发中出现的混乱,使得软件开发过程有序化,可管理的现实、可靠的手段;是为保证软件配置项的完整性和正确性,在整个软件生命周期内应用配置管理的过程,通常包括配置标识、配置控制、配置状态记实、配置评价、软件发行管理和交付等。

SCM是一种按规则实施的管理软件开发和维护过程以及其软件产品的方法 [Ovum 96]

SCM是一套用于在开发和维护的各个阶段管理各种程序中间产品的规则 [STSC 94]


软件配置管理活动包括配置标识、配置控制、变更管理、配置状态记实、配置评价、软件发行管理和交付等活动。


实施软件配置管理(SCM),其目的是为保证软件项目开发中的产品在其生命周期内的完整性和一致性。包括:

1)软件配置管理活动是有计划的。

2)所选择的软件工作产品是经过标识的、受到控制的并是可用的。

3)所标识的软件工作产品的更改是受控的。

4)让相关小组和个人及时了解软件基线及软件配置项的状态和内容。
 楼主| 发表于 2007/7/22 22:07:14 | 显示全部楼层

zhizhi

软件配置管理和 pdm 的思路和目的有共通之处。有的搞软件配置的专业人士也在关注 pdm 的功能和应用。

很多企业除了有机械电子设计任务外,产品中也有软件开发任务,而且和机械电子硬件关系很密切。所以迟早这个问题应该在统一的平台上解决。

继续关注这个话题。
 楼主| 发表于 2007/7/22 22:07:41 | 显示全部楼层

suzigang

对!

我们在很早的时候就研究过PDM啦,其实一般的PDM里也具备一定的SCM功能,但那类功能一般都是简单的版本控制等类功能,但PDM系统管理管理的许多东西的“关系性”都比较复杂,一般得需要SCM工具的支持!在我们实施的SCM工具的很多应用,那些企业都是做设备的多(或者说也带有硬件的开发或者设计),有部分也已经上了PDM系统的!

另外,我们已经从04年就开始考虑统一的SCM工具支撑平台啦(意思是在一个统一的研发管理平台里可支持不同的SCM工具的协同使用,这些工具包括JBCM、ClearCase、CCC-Harvest、PVCS、CVS及VSS等,当然也包括其他研发管理工具的协同,如计划管理、需求管理、缺陷管理及测试管理等),将来可能要考虑与其他信息系统的集成和协同工作。

欢迎大家讨论!特别是SCM工具在传统行业研发管理中的应用与实施!

也欢迎大家对具体需求进行讨论!
 楼主| 发表于 2007/7/22 22:08:04 | 显示全部楼层

zhizhi

我调查过一点 borland 的一个软件配置管理工具的功能(名字忘记了)。

据我所知,现有 pdm 提供的功能基本可以满足软件开发工作的需要。也许唯一的问题是缺乏现成的接口。不同软件编译工具需要开发不同的接口。为了方便操作,也许专门开发一个适合软件研发维护任务的界面有好处。软件和硬件的元件在一个 pdm 中统一管理是可以的。至于深入到软件内部的东西,如变量、结构、接口、形参、对象、继承关系等等,也有可能用现有 pdm 功能解决。
发表于 2007/7/23 02:49:20 | 显示全部楼层

软件管理PDM关键是管好文件的版本

软件的特点是文件特多,文件组成各种“包”,表现为目录组织和工程文件。
其实CVS,Subversion把软件SCM管理得很好啦,VSS也基本够用。
PDM把文档之间的复杂关联往往管理的较好,对于基本的目录组织文件的方式却反而别扭。
其实软件管理,不需要那么多集成。源代码都是人编的,关键是方便拿出来给人看,编写编译都还是必须下载到本地然后进IDE。
软件开发过程中文件更新频繁,代码的版本回溯和基线管理很重要。
界面也不要复杂,就是一个Windows资源管理器的方式(或者客户端就是资源管理器本身)最好,最直观。
软件开发文件多,性能很重要。
一个软件(一包文件)作为一个整体,需要与产品中零部件对象、其它机械、电子CAD图纸和相关文件建立关联,以及版本一致性管理。可以把软件当成一个特殊的零部件,加入整个产品。
粗浅认识,希望指正!
发表于 2007/7/23 09:03:16 | 显示全部楼层
软件的过程管理,用PDM不好管.
这个有成熟的工具RELATION等等,能管好.

如果只管结果,挺好管的.
 楼主| 发表于 2007/7/23 13:44:28 | 显示全部楼层
我个人认为目前的主流PDM设计不是为软件开发管理服务的,软件管理需要专业的工具.

例如软件需要回溯可能存在的任何一个时间点的中间代码,需要反复试错和迭代,而图纸不需要.

再例如软件的审核是通过测试,不是某个人来审核,专业的工具用专业工具管理,PDM最后只要记录一个软件版本信息,到对应代码库中有下载接口就够了
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|Archiver|小黑屋|手机版|壹佰网 ERP100 ( 京ICP备19053597号-2 )

Copyright © 2005-2012 北京海之大网络技术有限责任公司 服务器托管由互联互通
手机:13911575376
网站技术点击发送消息给对方83569622   广告&合作 点击发送消息给对方27675401   点击发送消息给对方634043306   咨询及人才点击发送消息给对方138011526

GMT+8, 2025/11/29 01:13 , Processed in 0.016341 second(s), 14 queries , File On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表