0引言
文档存在于软件项目的整个生命周期之中,是软件项目的组成部分,文档管理是软件项目质量的控制方式之一,也是软件项目管理不可忽视的一部分内容。然而,“重结果,轻过程”一直是软件项目中存在的最大弊病,轻视文档管理就是一个典型的例子,不习惯及时整理归档,总觉得不重要,每每需要什么文档的时候,要么习惯问别人,要么会从杂乱无章信息中查询,花费了大量时间和精力。为了提高软件项目的成功率,文档管理必须要引起高度重视,即使对于即兴讨论、邮件、网上聊天及传阅资料等文档,也尽量定期备份整理,应该做到每天都要回顾信息,及时进行文档归类,最好还要建立信息索引,提高查询速度和效率。
1程序与文档合一基本概念的提出
规范的文档系统应当包括的属性是:能够准确地描述软件,并且简单易懂;能够迅速进行错误定位和影响分析,及时修正设计;能够提高软件维护质量,方便程序修改时理解程序。可以看出,在软件项目中,文档与程序密不可分,紧密结合。程序与文档合一的概念就是基于此提出的。这一概念的提出使得软件项目的最终产品——软件成为真正意义上的软件,即程序+文档,程序包含文档,文档集成在程序中,文档成为程序基本的表现形式。
2软件项目程序与文档合一的基本要求及流程项目
2.1基本要求
在软件项目的管理过程中,要顺利开展程序与文档合一的管理,应满足以下基本要求:
①在选择开发环境时不仅要考虑环境对设计、开发的完美支持,而且要考虑对维护文档的支持;②软件人员在设计、开发过程中要考虑到便于维护和文档检索,程序与文档存储在同一位置、同一系统中;③使用相同工具进行程序与文档的书写、检索,在编写和维护程序的同时形成文档,在书写文档时编写、维护程序;④程序与文档合一的管理工作,不仅存在于系统的设计、开发阶段,而且存在于系统的维护阶段,它贯穿于软件项目的整个生命周期。
2.2技术流程
(1)文档即时嵌入存储到程序中。根据程序与文档合一的概念和文档从程序中提取的要求,文档必须存放在程序中,甚至可以将文档作为固有源代码的一部分。正常情况下,程序与文档应当分别存放在编程对象的不同表或不同的字段中,在编译与运行时分离。文档即时嵌入存储到程序中,实际可以看做程序与文档结合在一个编程对象中,结合在统一的开发环境中。同时,保证在修改代码时,可以同时修改文档;修改文档时,可以同时人工检查和修改程序,并在多次文档生成修改中不会丢失手工输入的文档信息。
(2)在程序中做好文档的检索模块。对单个对象或构件的检索方式是采用一部分文档存放在一个编程对象中,它可以随源代码一起检索和维护。这种检索为分析和维护单个构件或对象提供了文档支持。可以通过建立多种视图、编写程序对整个系统进行文档的检索和获取,完成对整个系统的分析,对整个系统进行实时文档支持。检索模块可以包括构件说明与数据描述,还有对构件与构件之间、构件与数据之间关系属性进行的描述。从而,提高了文档检索的可用性、易用性和连贯性,保证文档更加有效,解决和维护问题更加便捷。
(3)寻找程序与文档合一的最佳方法。一是表现在标准掌握上,时刻养成好的习惯,按照国家软件标准的文档样式建立文档模板,按模板生成或更新文档,并且利用合成软件进行创建、编辑或打印。
二是表现在开发工具选择上,基于OLE等技术使文档可以很好地利用Word等文档处理软件,在随后的维护改进中,可以方便地维护影响分析、记录维护进程、生成文档,便于识别、取构件,分析、形成结构文档和过程文档。三是表现在构件环境上,根据上述分析,文档分布和获取对开发环境提出了要求,开发环境应该是设计工具、开发工具的集成,尽量采用基于CASE技术的开发环境,在设计、开发、维护过程中形成文档并植入程序代码中,使文档成为程序的一部分。
2.3管理流程
程序与文档合一的软件项目管理与其他项目管理过程基本一致,就是通过合理地组织和利用一切可以利用的程序设计理念、需求信息和相关文档方案等资源,按照计划的成本和计划的进度,完成一个计划要求的目标。下面,按照项目计划、项目控制和后期管理三部分分别对程序与文档合一的软件项目管理进行论述。
(1)项目计划是软件项目进入系统实施的启动阶段,主要工作内容包括:项目实施范围确定、工作成果定义、实施过程风险评估、时间计划制订、成本和预算计划制订、人力资源计划制订等。在这些工作中,常常会出现“重程序,轻文档”的问题。因此,应注意以下问题:
①将程序与文档合一明确列入项目范围及产品范围内,提到程序,则必然包含文档;
②在评估项目实施过程中的风险时,要从技术、管理等多个方面考虑程序与文档合一可能存在的风险,例如技术方面的风险包括开发环境不支持、开发人员不习惯等;
③在制订进度、成本和资金计划时,要为程序与文档合一留出余地,例如在制订进度计划时,不仅要考虑程序的开发进度,还要考虑与之相伴随的文档开发进度;
④通过培训、招聘等方式,在人力资源上为程序与文档合一工作做好准备,既要有足够的人员保障这一工作的顺利开展,又要使相关的人员能够从事这一工作。在项目计划阶段,第一项计划活动就是估算,这项计划活动决定了以后项目工作的进展。估算的内容包括项目持续时间、工作量、人员需求等,并基于这些估算项目的资金需求。当然,还必须估算所需要的资源(硬件及软件)和可能涉及到的风险。对软件项目持续时间和工作量的估算是基于软件规模预测的基础上的。目前,软件项目中常用的规模度量方法有代码行(LOC)法和功能点(FP)法。在程序与文档合一的软件项目中,无论采用哪一种度量方法,均应加入一项内容,即对文档的考虑。例如,在使用LOC方法时,不仅要衡量代码行,还要衡量所对应的文档多少及复杂程度。在软件规模度量的基础上,可以使用一种或多种技术对软件项目工作量进行估算,这些技术主要分为两大类:分解和经验建模。常规的分解技术需要划分出主要的软件功能,接着估算实现每一个功能所需的程序规模或人月数,而实施程序与文档合一时,不仅要考虑软件功能和程序规模,还要将所对应的文档工作量计算进去。在使用经验建模技术建立模型时,需要有文档工作经验的人参与。
(2)在项目实施过程的控制阶段,由于任务已经详细地分解,总体的解决方案和技术框架已经确立,详细设计的目的就是主要针对某个特定的模块或对象,根据需求、技术框架的要求和模块间接口,实现相应的功能,并伴随完成相应的文档,做到文档与程序同步。
在该阶段中,评审是一项重要内容。评审由评审小组负责,通常以小组内部的评审会的方式进行,参与人有项目小组内部的人员及其负责人,由开发者介绍其工作情况、程序设计思路、文档工作成果概要等,其他人了解并对其设计质量进行评审。这在编码和调试阶段尤其重要。在编码阶段,主要需要在编码工作结束后,进行代码和文档审核,这项工作非常重要,主要应该由项目小组的技术负责人完成,审核的目的并不是为了检验代码的正确性,而是需要对编码是否按照规范以及文档是否满足要求进行审核。主要内容包括:①变量、包、方法等的命名是否符合规则,以及相应文档说明和注释是否完整,是否符合规范;②代码的可读性、编写风格是否符合规范,是否及时生成了相应文档;③是否有明显的造成系统运行低效率的处理方法;④公共变量的定义和使用以及相应文档是否规范;⑤是否及时做好程序和文档的合一工作,能否为全面测试及今后系统正常工作提供坚实的基础。
(3)后期管理。以项目验收为标志的后期管理是整个项目生命周期中的一个重要环节。一般来说,软件项目的验收包括两个阶段,第一个阶段是验收测试,当验收测试成功结束后,会有一个阶段的试运行阶段,只有当两个阶段全部结束后,整个项目才算真正结束,该软件也进入其运行维护期。验收测试应按照软件的需求、质量要求进行测试验收,需要多方参与,验收内容除一般软件项目的常规内容外,还要对文档质量以及程序与文档合一的效果进行验收。在项目通过验收、软件投入使用后,即进入维护阶段,这是后期管理的主要工作,也是检验程序与文档合一工作有效性的实践环节。需要注意的是,一方面,在进行维护时需要使用前面的程序与文档合一工作的成果;另一方面,对程序与文档合一的软件项目而言,维护是贯穿软件整个生命周期的,在维护阶段不仅要使用文档,还要维护文档。程序与文档合一的维护是随着人们需求变化而变化的,只有满足了要求才是最好的,才能使软件系统更加完善,修改和扩充工作才能更得心应手。
|