项目开发管理技术之项目版本控制、软件建模、软件测试、项目文档管理

 

1.     版本控制技术及工具
版本控制是程序开发、管理必不可少的工具,特别是在多人协作的团队中,适宜的版本控制工具可以提高开发效率,消除很多由代码版本带来的问题。通过使用版本控制技术及工具,可以确保在软件项目开发中不同的开发人员所涉及的同一文档都得到正确的更新。

1.1     常用版本控制工具     
1.       CVS (Concurrent Versions System)

CVS 是一款开放源代码软件,其功能强大、跨平台、支持并发版本控制而且免费,所以它在中小型软件企业中得到广泛使用。CVS最大的遗憾就是缺少相应的技术支持,许多问题的解决需要自己寻找资料,甚至是研究源代码。CVS是一个典型的服务器/客户端软件,支持远程管理,项目组分布开发时一般都采用CVS做代码及文档的版本控制。

2.       SVN (SubVersion)

SVN是对CVS的缺点进行改进产生的版本控制工具,相比于CVS而言,SVN更为简单易用,且SVN有其特定平台的客户端工具。如TortoiseSVN,是为windows外壳程序集成到windows资源管理器和文件管理系统的SVN客户端,使用相当方便。

3.       Clearcase

Clearcase是Rational公司一款重量级的软件配置管理工具。与CVS和SVN不同的是,Clearcase涵盖的范围包括版本控制、建立管理、工作空间管理和过程控制。Clearcase贯穿于整个软件生命周期,支持现有的绝大多数操作系统,但它的安装、配置、使用相对较复杂,需要进行团队培训。

 

2.     软件测试技术及工具
随着软件应用领域越来越广泛,软件质量的优劣也日益受到人们的重视,软件质量保证能力的强弱成为了直接影响业界发展与生存的重要因素。软件测试作为软件质量保证的主要内容,是一个成熟软件企业的重要组成部分,它是软件生命周期中一项非常重要且复杂的工作,对软件可靠性保证具有极其重要的意义。

2.1     软件测试技术
软件测试的目的是对软件质量或可接受性做出判断,发现软件开发过程存在的问题。在实际的项目开发流程中,经常用到的软件测试方法有:单元测试,集成测试,功能测试,验收测试等。

1.       单元测试

单元测试主要是开发者针对开发过程中程序内部的函数、类、变量等数据进行正确性测试。开发人员根据需求,在经过详细设计之后开始着手编写代码。一般情况下,每完成一个函数(类)之后,就要进行单元测试,以验证编写的函数能完成详细设计说明中的功能。目前常用的单元测试工具有Junit测试、C++Test等等。

2.       集成测试

集成测试是在单元测试的基础上,将所有模块按照详细设计的要求组装成子系统或系统,进行集成测试。与单元测试侧重单个函数(类)功能的正确性不同的是,集成测试侧重于模块间的接口正确性以及集成后的整体功能的正确性。

3.       功能测试

功能测试即软件的黑盒测试。单元测试和集成测试保证了开发是可以正常运行,执行起来的效率是最高的,但无法保证需求所需的功能是正确实现的。根据用户需求设计的功能测试(黑盒测试),可以按照严格的按照需求说明,测试新开发的系统是否完全符合用户的要求以及是否符合实际的操作流程和业务逻辑。

4.       验收测试

在验收测试中,相关的用户根据需求说明文档对系统进行测试和验收,决定是否接收系统,它是一项确定产品是否能够满足合同或用户所规定需求的测试。验收测试的目的是确保系统已经准备就绪,可以投入日常使用,让最终用户使用需求中描述的功能。

2.2     软件测试工具
1.       Junit测试

Junit测试是目前J2EE平台上最为流行的单元测试工具,它是程序员测试,即所谓的白盒测试。在Junit测试中,程序员知道被测试的软件如何完成功能和完成什么样的功能,因此在继承了TestCase后就可以用Junit进行自动测试。

2.       C++ Test测试

C++ Test是Parasoft公司出品的一个针对C/C++源代码进行自动化单元测试的工具,它可以对源代码进行三种测试:白盒测试、黑盒测试以及回归测试。鉴于C/C++在嵌入式领域的广泛应用,Parasoft同时为嵌入式程序提供了相应的版本,支持Eclipse和Visual Studio,可以批处理执行。

3.       WinRunner测试

Winrunner工具用于功能性测试,最主要的功能是自动重复执行某一固定的测试过程。它记录下手工测试的一系列操作,在环境相同的情况下重放,检查程序在相同的环境中有无异常的现象或与实际结果不符的地方。

4.       LoadRunner测试

LoadRunner是一种预测系统行为和性能的工业标准级压力测试工具,近几年来一直是软件压力测试的首选工具。它可以模拟成千上万的并发操作,对应用系统、Web Service、Web服务器、数据库等进行压力和性能测试,兼容Window和Unix操作系统。

 

3.     文档管理技术
项目文档管理,是指在一个项目开发进程中将提交的文档进行收集管理的过程。通常,文档管理在项目开发中不是很受重视,当发现其重要性时,往往为时已晚,整个项目可能因此变得管理混乱,问题产生后无据可查。文档管理对于一个项目的顺利进行有着至关重要的作用,其关键性不容忽视。

3.1     文档管理技术
软件项目中的文档是用来记录、描述、展示软件项目开发过程中一系列信息的处理过程,它描述和规定了软件项目开发的每一个细节,使用软件的操作命令,对产品使用过程中意见及产品缺陷、质量等方面的说明。

文档的编写需要了解和遵循文档的行业标准。现有软件开发中常见的文档种类如下:

1.       开发文档

这类文档是在软件项目开发过程中,体现了软件开发人员前一阶段工作的成果,同时又是后一阶段工作的依据。这类文档包括可行性研究报告、软件项目开发计划、软件需求规格说明、系统规格说明书、软件功能说明书和数据字典等。

2.       管理文档

这类文档是在软件项目开发过程中,由软件开发人员制定的需提交管理部门的一些工作计划、工作方案和工作报告。通过阅读这些文档,管理人员能够了解软件项目开发活动安排、进度、资源使用等情况。这类文档包括项目开发计划、测试计划、测试方案、开发进度报告和项目总结报告等。

3.       用户文档

这类文档是软件开发人员为使用该软件的网点经办人员准备的有关该软件产品使用、操作的资料,主要是操作手册及新功能介绍方面的文档。

 

4.     软件建模工具
随着软件开发规模越来越大,面向对象分析与设计的优势突显,软件开发建模在公司项目开发中呈现越来越频繁的趋向。开发中常用的软件建模技术有两种,UML建模以及数据库建模,前者作为一种可视化建模语言,主要用于面向对象模型的分析与设计;后者用于数据库的逻辑设计,生成的是项目数据库的实体关系图。

4.1     常用的软件建模工具
1.       Rational Rose

Rational Rose是一款强大的UML建模工具,它使改进和维护设计、从模型生成报表、在平行协作环境中与他人共同进行建模工作变得十分方便。同时,作为一款优秀的分析和设计工具,Rose具有强大的正向和逆向工程能力。正向工程指的是由设计产生代码,逆向工程指由代码归纳出设计,Rose可以通过逆向工程对历史系统做出分析,然后进行改进,再通过正向工程产生新的系统代码,这样的设计方式称之为再工程。

2.       Visio

Visio是目前国内用得最多的Case工具,可以用于常见的case设计及UML建模。它提供了日常使用中的绝大多数框图的绘画功能(包括信息领域的各种原理图,设计图),同时提供了部分信息领域的实物图。Visio的优势在于使用方便,安装后的Visio既可以单独运行,也可以在Word中作为对象插入,与Word集成良好。Visio支持UML的静态和动态建模,对UML的建模提供了单独的组织管理。

3.       PowerDesigner

简练实用的建模工具,既是数据库建模传统的优秀工具,也可以用于UML建模。PowerDesigner在数据库建模方面功能强大,使用非常方便,自8.0版本后支持逆向工程、再工程,同时开始支持UML建模的UseCase/Sequence/Class视图。

4.       ER/Studio

另外一款常用的数据库建模工具,是一款模型驱动的数据结构管理和数据库设计产品。与PowerDesigner相比更为精简,且同样支持逆向工程及再工程,在数据库兼容性以及UML建模上与PowerDisigner有一定差距。

你可能感兴趣的:(软件工程与项目管理)