摘要:本文对软件开发型信息化项目的监理工作按照流程进行了设计:招标阶段、总体规划阶段、需求分析阶段、概要设计阶段、详细设计阶段、编码和测试阶段、系统试运行阶段;并介绍了每个阶段监理方应承担的工作。 关键词:软件开发型 项目监理 流程
Abstract: This paper designs the surveillance flows of information engineering that focused on software development: the phase of inviting public bidding、of laying out、of demand analysis、 of outline design、of detail design、of coding and testing 、of system test run , and presents the necessary work that the surveillant should do in the different phase.
Key words: project of software development surveillance flow
一、三种类型的信息化监理项目介绍
按照信息化工程项目本身的特点,信息化工程项目监理可以划分为三类:硬件网络集成项目的监理、软件产品实施型信息化项目的监理以及软件开发型信息化项目的监理。下面分别介绍这三类监理工作的特点:
硬件网络集成项目的监理:这类项目,主要包括综合布线和网络系统集成。这类监理最主要的特点是,硬件网络集成项目的评测标准是非常明确,易于执行的。比如,综合布线的监理依据有“中国工程建筑标准化协会标准CESC89:97.5建筑与建筑群综合布线系统工程施工和验收规范”、“中华人民共和国通信行业标准YD/T926.11997大楼通信综合布线系统”等,网络质量监理依据有“ANSIX3T9.5光纤分布式数据接口标准规范”等,这些都是直接面向结果的规范。所以,相对于软件产品实施型信息化项目的监理和软件开发型信息化项目的监理,硬件网络集成项目的监理是比较简单的。
软件产品实施型信息化项目的监理:这类项目,主要是面向各厂商开发出来的产品软件,选择出合适的软件产品,并根据企业需求进行实施。相对于硬件网络集成项目的监理,这类项目涉及到对于软件应用的评测,而目前对于软件评测,国家还没有相应的标准来控制。事实上,软件实施评测也不容易形成统一的标准,这造成了此类项目监理一定的难度。
软件开发型信息化项目的监理:这类项目,主要是基于一定的硬件网络设施,由承建方根据建设方需求开发出一套能够满足建设方需求的软件系统。由于软件开发工作,是知识密集程度非常高的工作,在某种程度上,也是非常个性化的。目前对于软件开发项目的各种标准,多是针对软件开发过程的控制,比如术语、文档等。因此这类项目监理也有一定难度。
笔者将结合自身的软件开发型项目监理的经历,就此类信息化项目监理工作的流程研究进行初步的试探。
由于建设方和监理方的关系始于双方监理合同的签订,所以本文的监理流程从监理合同签订开始。但鉴于在合同签订前监理方的前期准备工作是监理后续工作的基础,因此先描述监理方的准备工作是非常必要的。
在签订监理合同之前,监理公司首先应对建设单位进行需求调研。此次需求调研的直接目的是为了编制更详细的项目建议书以获得监理合同,同时也是为招投标阶段编制招标文件做准备。此次调研主要明确如下问题:建设方在该项目上总体上要达到什么目标?细分后分别是什么目标?质量上要达到什么要求?时间方面的要求?投资预算多少?等。最后完成项目建议书和初步监理规划。
下面将详细叙述每个阶段的特点及监理方在该阶段的工作。
二、软件开发型项目监理基本流程
1、招投标阶段
在招投标阶段,监理方主要工作是根据前期调研工作,协助建设方编制招标文件,协助建设方评标及保管合同及文档。其中招标文件应包括:投标人须知、招标项目性质、技术要求、质量要求、工期要求、培训要求、验收要求、报价要求、投标人资质等级要求、投标保证金要求、投标文件编制要求、评标标准、履约担保函、合同主要条款等内容。而协助评标工作主要则从以下方面入手:
⑴、技术方面
对于技术方面的评比,一般有两种方法:一是比较法,二是打分法。比较法一般是从标书的技术部分中选取一些关键技术进行横向比较,谁的参数最接近标书要求,谁的技术评比的名次就越靠前。相对于比较法,打分法的精确性更高些。打分法也是从标书中选择关键技术参数,按照预定好的权值计算分值进行打分,分数高者就在技术方面具有更大优势。两种方法各有长短。打分法一般适用于需要提取的关键技术种类比较多比较复杂且具有较大的成熟度、能较清晰划分高下的情况,但在目前的评标工作中,一般都是采用比较法。
在技术方面,同时还应该考虑投标单位的技术背景等信息。比如公司具有的CMM等级,是否有过类似项目的开发经验以及过去项目的客户反馈等。
⑵、价格方面
在价格方面,监理方应协助招标方对评标价进行评比。在核算时应注意如下因素:
①、总报价是否等于各分项报价之和。如果总报价不等于各分项报价之和,则以各分项报价之和为准,价差按误差处理。
②、货币转换。如果投标价所使用的货币不一样,则需根据开标当日中国国家外汇管理局公布的各种货币对美元汇率的卖出价,将非美元报价折算成美元报价后再进行比较。
③、报价缺项的处理。对照投标文件的要求核对每一项报价,如果发现有缺项报价,按规定必须先发函澄清,如果属实则将这一标中所报该项的平均报价补充投标商缺项报价计算评标价格,并且注明该项补遗的相关指标在招标文件中的序号及理由。如果缺项的总金额超过开标价格的5%时,则可视为重大偏差。
④、超范围投标项目的处理。投标商在投标文件中超过投标文件规定范围投报的项目,原则上不能作为增减因素修改评标价格,也不可以发函澄清其报价。只有当超范围投标项目在报价表中有单独列名报价时,经批准可以从评标价格中扣除,并且在表下注明该项报价在投标文件中的编号以及理由。
经过调整补充所得到的报价则称为评标价,对评标价进行评比和排序即得到价格方面的评测结果。
⑶、其它方面
任何产品的生产,都着重对质量、成本和交货期三方面的控制。对于软件开发项目,除了技术因素和价格因素,交货期也是一个重要的指标。所以投标书所报的交货期也需重点考虑。与此同时,技术规范中所要求的有关服务费用,投标人的信誉,售后服务等因素也需要考虑到。
2、总体规划阶段
在招投标阶段确定中标人,甲乙双方签订合同之后,整个项目就形成了建设方、承建方和监理方的三方并存协作的一个团体,因此合理统一的规划就是项目成功的基础。总体规划阶段的主要任务,就是在承建方制定出项目规划后,对其项目规划审查,并根据承建方的项目规划,修订前期制定的监理项目规划。
监理规划的性质,是监理方对整个项目工作的初步设计,是具体的监理活动的基础。监理规划一般由监理方在该项目的总监理工程师制定。其基本内容应包括:
⑴、工程概况。包括工程名称、建设地址,项目组成及规模,预计总投资额,预计项目工期,工程质量等级,设计、开发单位名称,工程特点等。
⑵、监理范围和目标。监理范围一般包括在工程各阶段的质量控制、进度控制和投资控制,以及其它委托服务。监理目标以三大控制为目标。
⑶、主要监理措施。
⑷、监理组织机构。
⑸、项目监理工作制度。如监理方内部的工作会议制度、监理日志制度、监理周报和月报制度,监理方与另两方的定期沟通制度等。
这个阶段结束时,监理方应提交:监理规划。
3、需求分析阶段
需求分析是项目建设的基石,监理方在需求分析阶段应以尊重承建方的项目管理和项目分析能力为前提,在具体的任务开展上不深入、不干扰承建方的自主权。同时,监理方要充分发挥好项目监督及沟通建设方和承建方之间的桥梁作用。
需求分析的工作方法,通常有三个阶段。
第一阶段:访谈阶段。这一阶段是和具体用户方的领导层、业务层人员的访谈式沟通,目的是从宏观了解用户需求方向和趋势,了解现有组织构架、业务流程、软硬件环境及使用情况。实现手段通常是事先将调查问卷发放到待调研部门,然后在约定时间围绕问卷进行交流访谈。
第二阶段:深入阶段。这一阶段的工作是建立在访谈阶段工作完成,承建方已经了解了用户的组织构架、业务流程、软硬件环境及使用情况等基本现状的基础之上。承建方根据以往项目经验以及业务专家的经验,和建设方共同探讨业务模型的合理性、准确性和发展方向等问题,得到相对先进的业务模型。
第三阶段:确认阶段。在完成上两阶段的工作之后,就需要对具体的流程细化,对数据进行确认了。根据前两个阶段的工作,承建方应草拟出一份需求分析报告,并提供原型演示系统,和建设方进行进一步的讨论,最终确定一份需求分析报告。
需要指出的是,在系统建设的过程中,特别在采用迭代法的开发模式时,需求分析的工作需一直进行下去,而在后期的需求改进中,工作则基本集中在后两个阶段中。
监理方在这三个阶段的工作,按照内容可以分为两部分:监督和沟通。监督工作包括对需求分析阶段的各种文档的保管监督,对承建方的访谈活动的监督,对需求分析报告、原型演示系统的确认等;沟通工作则表现在当建设方和承建方由于知识背景不同而在访谈过程中沟通不顺畅的时候,监理方应利用自身优势使得双方顺利理解对方。
需求分析阶段,监理方可参考的标准有:GB938588计算机软件需求说明编写指南。
这个阶段监理方应提交:在需求分析进行前提交需求分析阶段监理细则、监理日志、在需求分析结束后提交需求分析阶段总结报告。
4、概要设计阶段
概要设计,即将软件需求转化为数据结构和软件的系统结构,一般包括数据设计和系统结构设计。其中数据设计侧重于数据结构的定义,系统结构设计定义软件系统各主要成份之间的关系。
在承建方进行概要设计的过程中,监理方需要监督以下方面:
⑴、制定规范
在进入软件开发阶段之初,首先应为软件开发组制定在设计时应该共同遵守的标准,以便协调组内各成员的工作。包括:
阅读和理解软件需求说明书,确认用户要求能否实现,明确实现的条件,从而确定设计的目标,以及它们的优先顺序;
根据目标确定最合适的设计方法;
规定设计文档的编制标准;
规定编码的信息形式,与硬件,操作系统的接口规约,命名规则。
⑵、软件系统结构的总体设计
根据需求分析,基于功能层次结构建立系统,其中包括采用某种设计方法,将系统按功能划分成模块的层次结构、确定每个模块的功能、建立与已确定的软件需求的对应关系、确定模块间的调用关系、确定模块间的接口、评估模块划分的质量。
⑶、处理方式设计
处理方式设计要确定为实现系统的功能需求所必需的算法,评估算法的性能;确定为满足系统的性能需求所必需的算法和模块间的控制方式;确定外部信号的接收发送形式。
⑷、数据结构设计
根据需求分析报告进行数据库设计。数据库设计包括确定软件涉及的文件系统的结构以及数据库的模式、子模式,进行数据完整性和安全性的设计;确定输入,输出文件的详细的数据结构;结合算法设计,确定算法所必需的逻辑数据结构及其操作;确定对逻辑数据结构所必需的那些操作的程序模块(软件包);限制和确定各个数据设计决策的影响范围;若需要与操作系统或调度程序接口所必须的控制表等数据时,确定其详细的数据结构和使用规则;数据的保护性设计;数据的一致性设计;冗余性设计等。
⑸、可靠性设计
可靠性设计也叫做质量设计。在运行过程中,为了适应环境的变化和用户新的要求,需经常对软件进行改造和修正。在软件开发的一开始就要确定软件可靠性和其它质量指标,考虑相应措施,以使得软件易于修改和易于维护。
⑹、概要设计阶段的文档
概要设计阶段完成时应编写以下文档:概要设计说明书、数据库设计说明书、用户手册、制定初步的测试计划。
针对上述工作,监理方应按如下标准评定承建方的概要设计:
⑴、可追溯性:确认该设计是否覆盖了所有已确定的软件需求,软件每一成份是否可追溯到某一项需求;
⑵、接口:确认该软件的内部接口与外部接口是否已经明确定义,模块是否满足高内聚和低耦合的要求,模块作用范围是否在其控制范围之内;
⑶、风险:确认该设计在现有技术条件下和预算范围内是否能按时实现;
⑷、实用性:确认该设计对于需求的解决方案是否实用;
⑸、技术清晰度:确认该设计是否以一种易于翻译成代码的形式表达;
⑹、可维护性:确认该设计是否考虑了方便未来的维护;
⑺、质量:确认该设计是否表现出良好的质量特征;
⑻、各种选择方案:看是否考虑过其它方案,比较各种选择方案的标准是什么;
⑼、限制:评估对该软件的限制是否现实,是否与需求一致;
⑽、其它具体问题:对于文档、可测试性、设计过程等进行评估。
这个阶段监理方应提交:在概要设计进行前提交总体设计阶段监理细则、监理周记、在概要设计完成后提交概要设计监理报告。
5、详细设计阶段
详细设计阶段的直接目标是编写详细设计说明书,为此,承建方应做如下工作:
⑴、确定每个模块的算法,用工具表达算法的过程,写出模块的详细过程性描述;
⑵、确定每一模块的数据结构;
⑶、确定模块接口细节。
监理方在这个阶段主要是在进度上进行控制,主要手段是定期与承建方沟通,检查文档。
这个阶段监理方应提交:在详细设计进行前提交详细设计阶段监理细则、监理周记、在详细设计完成后提交详细设计说明书的确认报告。
6、编码及测试阶段
编码是将详细设计阶段的设计思想用某种计算机语言实现的过程。监理方应从结构化程序设计原则来进行编码工作的监理:
⑴、使用语言中的顺序、选择、重复等有限的基本控制结构表示程序逻辑;
⑵、选用的控制结构只准许有一个入口和一个出口;
⑶、程序语句组成容易识别的块,每块只有一个入口和一个出口;
⑷、复杂结构应该用基本控制结构进行组合嵌套来实现;
⑸、语言中没有的控制结构,可用一段等价的程序段模拟,但要求该程序段在整个系统中应前后一致;
通常测试是伴随着编码而同时进行的。广义上软件测试并非只在这个阶段才有,而是贯穿软件需求分析、概要设计、详细设计等阶段的。本处的测试,则指代码测试。在测试阶段,监理方应依据测试原则对承建方的测试进行监督:
⑴、应尽早的和不断的进行软件测试;
⑵、测试用例应由测试输入数据和对应的预期输出结果这两部分组成;
⑶、程序员应避免检查自己的程序;
⑷、在设计测试用例时,应包括合理的输入条件和不合理的输入条件;
⑸、充分注意测试中的群集现象,即一般测试后程序中残存的错误数目与该程序中已发现的错误数目成正比;
⑹、严格执行测试计划,排除测试的随意性;
⑺、应当对每一个测试结果做全面检查。
⑻、妥善保存测试计划,测试用例,出错统计和最终分析报告,为维护提供方便。
在编码及测试阶段监理方可参考的标准有:GB938688计算机软件测试文件编制规范、GB/T1250490计算机软件质量标准保证计划规范、GB/T1250590计算机软件配置管理计划规范、GB/T1553295计算机软件单元测试等。
7、系统试运行阶段
由于信息化软件一般都是比较大型的软件,因此在完成了系统测试后还需要经过一段时间的试运行。系统试运行实际是测试的延续,检查系统的稳定性、适用性等。监理方在这个阶段的主要工作有:
⑴、审核竣工文档资料的完整性、可读性及其与工程实际的一致性;
⑵、审核操作系统、应用系统等软件配置与设计方案的符合性;
⑶、检测验证系统功能性能与合同的符合性;
⑷、检查人员培训计划落实情况;
⑸、出具验收报告;
⑹、帮助用户制定系统运行管理规章制度;
⑺、在保修期内定期或不定期对项目进行质量检查、督促承建方按合同要求进行维护。
小结
从监理合同签订开始到最后系统试运行结束,监理方工作在职能上可以归结为两点:沟通与监督。沟通的目标是建设方与承建方信息对等,沟通的手段是定期或不定期召开工作会议;监督的目标是在质量、进度和投资上进行控制,监督的手段是合同管理和文档管理。
参考文献
1.葛乃康,罗四维信息工程建设监理电子工业出版社2002年
2.张海藩软件工程导论清华大学出版社1998年
3.黄学战项目需求阶段的监理角色和方法论中国计算机报2003年第三期
作者: 张冰 来源:e-works http://www.csai.cn 2005年08月23日