51Testing软件测试论坛

标题: 软件配置管理 [打印本页]

作者: cd_sz2000    时间: 2011-8-12 15:36
标题: 软件配置管理
Topic
软件开发生命周期(Software Development Life Cycle, SDLC)
软件配置管理(Software Configuration Management,SCM)

软件开发生命周期
Software Development  Life Cycle

同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡等阶段,一般称为软件生存周期(软件生命周期)。把整个软件生存周期划分为若干阶段,使得每个阶段有明确的任务,使规模大,结构复杂和管理复杂的软件开发变的容易控制和管理。通常,软件生存周期包括可行性分析与开发项计划、需求分析、设计(概要设计和详细设计)、编码、测试、维护等活动,可以将这些活动以适当的方式分配到不同的阶段去完成。

软件生命周期(SDLC)的六个阶段
                 1、问题的定义及规划
                 2、需求分析 (Functional Specifications)
                 3、软件设计 (Software Design )
                 4、程序编码 (Coding)
                 5、软件测试 (Software Testing)
                 6、运行维护

问题的定义及规划
    此阶段是软件开发方与需求方共同讨论,主要确定软件的开发目标及其可行性。

     输出物:
              项目的立项背景等

需求分析 (Functional Specifications)
    在确定软件开发可行的情况下,对软件需要实现的各个功能进行详细分析。

     输出物:
            业务需求文档,包括业务流程逻辑说明,
                                        业务模块说明等
软件设计 (Software Design )
    此阶段主要根据需求分析的结果,对整个软件系统进行设计,如系统框架设计,数据库设计等等。软件设计一般分为总体设计(High Level  Design)和详细设计(Detail Level Design)。

     输出物:
           设计文档,比如 数据库设计,整体的架构设计,各模块的设计,项目的运行环境说明, 操作界面设计等

程序编码 (Coding)
    此阶段是将软件设计的结果转换成计算机可运行的程序代码。在程序编码中必须要制定统一,符合标准的编写规范。以保证程序的可读性,易维护性,提高程序的运行效率。

     输出物:
            项目各模块的源代码
软件测试 (Software Testing)
    在软件设计完成后要经过严密的测试,以发现软件在整个设计过程中存在的问题并加以纠正。整个测试过程分单元测试(Unit Testing)、功能测试(Function Testing),集成测试(Integration Testing),性能测试(Performance Testing),用户验收测试(User Acceptance Testing) 等。测试的方法主要有白盒测试和黑盒测试两种。在测试过程中需要建立详细的测试计划并严格按照测试计划进行测试,以减少测试的随意性。
  
     输出物:
  测试计划,测试案例,测试数据,测试脚本,测试报告等

运行维护
     软件维护是软件生命周期中持续时间最长的阶段。在软件开发完成并投入使用后,由于多方面的原因,软件不能继续适应用户的要求。要延续软件的使用寿命,就必须对软件进行维护。软件的维护包括纠错性维护和改进性维护两个方面。


SDLC 中输出物最多的阶段是:
    需求分析
    软件设计
    程序编程
    软件测试

SDLC 过程 是一个不断变化的过程。 变化的驱动来源于需求的改变。 客户(用户)的需求是在增量变化中的,需求的改变会引起设计的改变,设计的改变反馈到程序的编码的改变,同时需求的改变也会影响到测试文档的改变.软件配置管理(SCM)的目的就在于控制SDLC 过程中的所有这些变化,及时的反馈这些变化,跟踪这些变化 ,关联这些变化,报告这些变化。

V模型



软件配置管理
  Software Configuration Management

*软件配置管理是一种标识、组织和控制修改的技术。软件配置管理应用于整个软件工程过程。我们知道,在软件建立时变更是不可避免的,而变更加剧了项目中软件开发者之间的混乱。SCM活动的目标就是为了标识变更、控制变更、确保变更正确实现并向其他有关人员报告变更。从某种角度讲,SCM是一种标识、组织和控制修改的技术,目的是使错误降为最小并最有效地提高生产效率。

     软件配置管理,对SDLC中的每个阶段的输出物进行有效管理,贯穿于整个SDLC,它为软件研发提供了一套管理办法和活动原则。

     每个阶段的输出物包括:

     程序(源代码,目标代码,可执行程序,函数,子程序等) 文档(需求定义,系统分析,系统设计,高层设计,低层设计,测试规格说明书,测试计划,安装手册,发布说明,用户手册等)

     数据(测试数据和项目数据)


*软件配置管理可以提炼为三个方面的内容:

Version Control-版本控制

Change Control-变更控制

Process Support-过程支持


*Version Control-版本控制

    版本控制是全面实行软件配置管理的基础,可以保证软件技术状态的一致性。我们在平时的日常工作中都在或多或少地进行版本管理的工作。比如有时我们为了防止文件丢失,而拷贝一个后缀为bak或日期的备份文件。当文件丢失或被修改后可以通过该备份文件恢复。版本控制是对系统不同版本进行标识和跟踪的过程。版本标识的目的是便于对版本加以区分、检索和跟踪,以表明各个版本之间的关系。一个版本是软件系统的一个实例,在功能上和性能上与其他版本有所不同,或是修正、补充了前一版本的某些不足。实际上,对版本的控制就是对版本的各种操作控制,包括检入检出控制、版本的分支和合并、版本的历史记录和版本的发行。


*Change Control-变更控制

    进行变更控制是至关重要的。但是要实行变更控制也是一件令人头疼的事情。我们担忧变更的发生是因为对代码的一点小小的干扰都有可能导致一个巨大的错误,但是它也许能够修补一个巨大的漏洞或者增加一些很有用的功能。


*Process Support-过程支持
    一般来说,人们已渐渐意识到了软件工程过程概念的重要性,而且人们也逐渐了解了这些概念和软件工程支持技术的结合,尤其是软件过程概念与配置管理(CM)有着密切的联系,因为配置管理(CM)理所当然地可以作为一个管理变更的规则(或过程)。但是,传统意义上的软件配置管理主要着重于软件的版本管理,缺乏软件过程支持的概念。在大多数有关软件配置管理的定义中,也并没有明确提出配置管理需要对过程进行支持的概念。因此,不管软件的版本管理得多好,组织之间没有连接关系,组织所拥有的是相互独立的信息资源,从而形成了信息的"孤岛"。

*软件配置管理活动:
    对于任何一个管理流程来说,保证该流程正常运转的前提条件就是要有明确的角色、职责和权限的定义。特别是在引入了软件配置管理的工具之后,比较理想的状态就是:组织内的所有人员按照不同的角色的要求、根据系统赋予的权限来执行相应的动作。

*发生了什么(What)?
*为什么要发生(Why)?
*谁做的(Who)?
*什么时候发生的(When)?
*在哪儿改变的(Where)?
作者: AwL_1124    时间: 2011-9-7 10:33
详细
作者: MonaDuan    时间: 2011-9-15 10:43

作者: shimltester    时间: 2011-9-26 11:47

作者: yinpengxs    时间: 2011-9-28 15:46
好贴 正好需要这方面的知识
作者: li241808285    时间: 2011-9-30 10:32
值得学习




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2