软件工程监理的一般流程与监理要点

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 3

IT 论坛

软件工程监理的一般流程与监理要点
吕晓峰

(广州市信息中心,广州 510030 )

摘 要:软件工程项目主观性强,对结果的量化评价指标不足,软件工程监理在检测结果的同时,更注重对
开发过程的监控。本文介绍了一套规范的监理流程和监理要点,用于实现对软件开发的全过程进
行监理。
关键词:软件工程监理;C M M ;软件生命周期模型;演化原型;敏捷方法

引 言 用户与开发方的沟通、协助开发方更好地领悟和描
述用户的需求;如何审核总体设计方案、协助确立
关于软件工程的高风险和低成功率早已是业
最佳技术路线、防范技术风险;如何组织验收测试、
界的共识,软件工程监理的引入正是基于这种共识
协助制定部署计划、避免新旧项目切换对正常业务
应运而生的。但是,与其他工程——比如综合布线
造成的冲击;如何审核用户与开发方的合同、防范
工程——相比,软件工程项目主观性更强,也缺乏
法律风险等。所以,本文的目的旨在抛砖引玉,为
对结果的量化评价指标。相应地,其监理也显得很
大家提供一个对软件工程监理进行讨论的靶子,从
虚、难以捉摸。
而有的放矢、集思广益,促进我国软件业的发展。
笔者在专职从事监理工作的一年多时间里,深
感在软件工程监理中,虽然对结果的检验依然重 1 软件工程监理的一般流程(图 1 )
要,但对过程的监控及其指导方法的地位则比其他
¡¢£¤¥¦
工程监理大大提升。据此,笔者参照“软件能力成
熟度模型”,瞄准“CMM3”级,总结整理出一套软件
工程监理的规范化流程和监理要点。当承接具体 ¡¢£¤¥¦ ¡¢£¤¥ ¡¢£¤¥¦ ¡¢£¤¥

监理项目时,可以根据规范流程进行裁剪、重组,迅
速整理出满足特定要求的监理规划。
¡¢£¤¥ ¡¢£¤¥¦ ¡¢£¤¥¦ ¡¢£¤¥¦
现在软件业界流行一种敏捷方法,主张以人为 ¡

本,将过程控制,尤其是文档弱化。笔者认为敏捷
方法是一种很好的启发,但注重对过程控制和监理 ¡¢£¤ ¡¢£¤ ¡¢£¤
系统部署、
¡¢£¤
现 也是一种很好的启发,关键在于运用时的灵活处 试 运行与改进
¡¢£¤¥¦

代 理,具体问题具体分析,根据项目的特点进行抉择
计 或综合运用。简单地说,小项目可适用敏捷方法, 验 收 、移
¡¢ ¡¢交 ¡¢£¤¥¦
¡¢£ ¡¢£¤¥¦
监理结算、
¡¢£¤
总¡¢£¤
结归档

大项目则应加强过程的监控。
机 图
¡¢1 软件监理的一般流程
¡¢£¤¥¦§¨©
( 当然,虽经艰苦努力,该程序仍是对软件工程
总 监理工作全貌所做的一个非常粗浅的描绘。而且, 2 软件工程监理控制要点
第 在软件工程监理中,规范的监理流程和内容要点只
一 能解决监理思路问题,具体实施时,监理工程师的 (1)可行性分析
八 知识和技能等自身素质则更加重要,比如如何增进 有时用户在确定监理方之前已经下定决心要


! M O D E R N C OM P U T E R 2004.6
"

IT 论坛
做这个项目了,即便如此,监理方仍然要做可行性 或 AIX 等;数据库,如 DB2、
Oracle 、SQL Server 等 ;
分析。这是因为,用户自己做的可行性分析可能不 基于三层体系架构设计的,还要配置应用服务器,
够全面(这种例子屡见不鲜),监理方利用自己的技 如 Web Sphere 、
Bea Weblogic、Appache / Tomcat ;开
术、经济、管理、法律、社会等各方面的人才,进行专 发工具:
PowerBuilder 、J2EE 或 .NET 等;测 试 工 具 :
业化的、全面的可行性分析,常常能发现一些难以 Rational SQA Suite、Code Wizard 等等。
察觉,但却可能决定系统成败或性能优劣的关键因 审核通过,由总监理工程师签发《开工令》,进
素,从而提供系统改进的思路。监理为用户防范风 入下一阶段;否则改进。
险,不但包括促使项目高效建成,还包括促使不合 (4)详细需求分析
理的项目尽快下马,以减少损失。 在这一阶段,监理方要督促建设方安排需求调
(2)确定开发商 查联络人,提出详细、合理的要求;软件公司人员及
选择开发商的条件,主要包括备选公司的资 时到位,在建设方、监理方配合下撰写《用户需求规
质、技术力量及项目组人员资质、软件产品、同业经 格说明书》。
验、售后服务等。大的软件工程项目,建设周期长、 以《用户需求规格说明书》初稿为分界,将需求
对于分工协作要求高,在选择开发商时,要重点考 分析划分为两个阶段:初稿形成前为第一阶段,浅
察有足够资质的大公司,这些公司要具备足够的技 层次,主要是搞清楚各部门的主要业务、明确大的
术力量以便同时投入、要有完善的文档管理以支持 架构、确定各模块的划分;初稿形成后发给各部门
分工协作和继承(当开发人员变动时,这一点非常 核实,然后讨论,此为第二阶段,深层次,监理工程
重要);而小的软件工程项目,建设周期短、投入人 师必须全程跟进,三方协同、深入详细地了解和挖
力少、分工也简单,这时项目组人员的资质和经验 掘用户需求,进而形成结构化需求分析文档。
就可能上升到比公司资质更重要的地位——尤其 如果是使用 UML 方法,在此阶段需生成 Use
是在采用敏捷方法的时候。 Case 图、对象图和对象类图。
审核用户与开发商之间拟签订的开发合同,是 需求分析完成,开发方填写 《阶段验收申请
确定开发商这一事件中的另一核心任务。软件工 表》,三方联签,转入设计阶段。
程的特点是主观因素和不确定因素太多,工作量和 需要注意的是,有时需求分析和概要设计不能
进度难以估算,在签订合同时要尽可能考虑到各种 截然分开,尤其是面向对象设计和演化原型设计,
功能需求、时间进度、技术进步、成本变更、知识产 采用螺旋式的软件生命周期模型,在分析阶段生成
权、维护与使用等各种风险。在开发方对功能需求 的 Use Case 图、粗略的对象图和对象类图,还要在
不十分明确的情况下,合同可以缓签。因此,严格 概要设计阶段进行不断地精化。
说来,确定开发商不是一个环节,而是一系列环节, (5)概要设计
它可能要到详细需求分析结束时才能完成,甚至可 根据《用户需求规格说明书》、结构化设计或面
能更后。 向对象设计规范对系统体系架构的设计、功能模块
(3)项目启动的监理 和业务逻辑的划分、数据库逻辑和物理设计(包括
项目启动阶段的监理内容,主要是对开发方提 表结构、表间关联、存储模式、视图、触发器和存储
交的项目组成人员(尤其是项目经理与核心技术人 过程等)、对象类和对象接口设计(过程和函数接口
员)、项目实施方案与实施计划(尤其是需求分析的 设计)、权限分配机制、界面设计等工作进行监督,

安排)进行审核。 对生成的设计图表和文档进行审核。有特别要求


此外,还要到现场检查开发环境和工具的配置 的系统,有时还需对特殊算法给出说明。

情况。主要是:项目管理工具(如 MS Project )和系 该阶段要产生《概要设计说明书》。其中,除上

统分析与设计工具(如 MS Visio、
Rational Rose),以 述内容外,如采用结构化设计方法,还需生成业务 (
及协同工作所需要的网络环境、通信软件等等。 流程图、数据流图和数据字典等;使用 UML 方法, 总
有些内容是在详细设计或系统部署时才需要 则需生成顺序图、协同图、状态图和活动图。 第
的,可以在相应阶段开始前检查,
也可以在此一并检 设计文档提交,由该项目的监理工程师审核其 一
查,包括:项目运行所要求的操作系统,
Unix、
Linux、 完备性和可操作性。符合要求后,进入下一阶段:


" 期
!M O D E R N C OM P U T E R 2004.6 !

IT 论坛
详细设计。 在系统试用期,要跟进到各部门收集反馈意
(6)详细设计 见。提出意见后,监理方要跟进检查改进情况。开
监理工程师要认真学习《概要设计说明书》,以 发方在改进过程中,要做好关联改动和回归测试。
便能够深入对单元模块的编写、具有特殊要求的过 系统试用期结束,遗留问题均已解决,就可以
程和函数的实现算法等进行代码审查监理。对于 组织验收。
普通的过程和函数,则由编码人员自主实现。 (9)验收与移交
编码阶段监理工程师要重点控制好开发进度、 验收的依据为:
《开发合同》、
《用户需求规格说
代码优化、编码说明和程序注释等。 明书》、经三方确认的变更、有关技术标准与规范。
(7)系统测试 各环节要满足验收依据的要求;竣工文件要包
编码结束,由开发方编写白盒测试用例和黑盒 括 完 整 、一 致 的 设 计 文 档 、使 用 说 明 书 、维 护 手 册
测试用例,并进行初测。 (参数配置、备份策略等)、培训计划。
测试包括:单元调试、代码回顾、集成调试、系 验收合格,系统和文档移交,签发《工程验收合
统联调(整体运行的可靠性,并发访问时的数据一 格证》。
致性、承受能力,长期运行的稳定性)、安全测试(权 最后,软件工程监理的宗旨,就是帮助用户防
限分配、CA 证书)、功能和性能测试等。 范风险,保证可行的项目高效地建设成功;而不可
细致、有计划的反复测试很重要。监理方要审 行的项目及时下马,减少损失。
核开发方的测试计划和白盒测试用例、黑盒测试用 软件工程监理中的风险控制,既包括为用户防
例,定期检查测试记录。 范风险,也要注意防范监理方自身的风险,但以前
监理方根据测试用例抽测、估算错误数,符合 者为主。而风险控制是通过质量控制、进度控制、
要求后,才能在运行环境中部署。 成本控制、开发队伍控制(尤其要控制项目经理和
(8)系统部署、试运行与改进 核心技术人员的变动)和合同管理实现的。
系统部署前,要编制部署方案,包括配置图、节
结 语
点图等,还应编写联机帮助。
监理方审核部署方案合格后,首先在用户单位 为了项目的成功建设,监理方要处理好和用
局部部署软、硬件运行环境、安装软件、进行必要的 户、开发商三者之间的关系。因为监理是通过开发
配置、调试,加载实验数据。 方间接地作用于项目的,只有开发方成功监理才可
通过运行审核后,才能正式部署(整体部署软 能成功;而另一方面,用户的满意度也非常重要。
硬件运行环境、产品发布、新旧系统割接、数据初始 (收稿日期:2004- 04- 02)

化和迁移)。

T he General Flow and Key Points




of Softw are Engineeringˊs Supervision
计 LU Xiao-feng

机 (Guangzhou Information Center , Guangzhou 510030 China )

总 Abs tract:Software Engineering is more optional, the evaluating to the result is difficult to measure. So, Software Engineeringˊs
第 Supervision should pay more attention to its developing process, besides inspect its result. This paper introduces a
一 general flow and Rey points of Software Engineeringˊs Supervision to supervise the whole developing process.
八 Key w ords : Software Engineeringˊs Supervision;CMM;Software Life Cycle Model;Evolving Prototyping ;Agile Methodology


" M O D E R N C OM P U T E R 2004.6
!

You might also like