UML软件工程组织

论软件开发管理的作用——从PVCS谈起
清华大学软件技术中心 郑人杰

 

当今计算机工业发展迅速,软件产业更是如此,技术和产品的更新换代常令技术人员和管理人员感到明显的压力。我国信息技术产业的蓬勃发展促使各种先进技术和产品广泛应用,为国内的软件开发注入了活力。然而,值得注意的是,各种先进的操作系统,开发工具等在带来效益的同时,也使得我们的开发环境日益复杂化而难以管理。无组织的开发环境会导致潜在问题的产生,甚至影响整个系统。比如:团队沟通困难,软件重用率低下,开发人员各自为政,代码冗余度高,文档不健全等;结果造成数据丢失,开发周期漫长,产品可靠性差,质量低劣,软件维护困难,用户抱怨使用不便,项目风险增加等。

事实已经表明,随着整个软件业的迅速发展,没有得到有效管理的软件开发过程中所出现的风险和挑战将越来越突出。加强软件开发管理,通过管理和追踪软件开发环境中产生的变更,建立规范化的软件开发环境,早已为西方发达国家软件产业的发展实践证明是解决上述问题的唯一有效途径,并已在软件业发展领先的国家和地区得到普及。

A-软件开发管理的必要性


1.软件资源作为企业赖以发展的关键财富日益受到重视的同时,软件的开发逐渐转变成为一种工业化的生产过程,因此必须对其所有环节施加有效的管理和控制。

2.处于激烈市场竞争中的软件开发机构若想在预定的期限内用有限的资金,满足不断增长的软件产品需求,就必须努力加强软件开发过程的管理。

3.Client/Server已成为今天软件开发的主流,而在日益复杂的分布开发环境下,要实现团队开发所必须的代码共享就更为困难,需要跨越的平台增多。

4.一个应用系统的开发可能包含成百上千个软件模块以及数万行代码,而任何一个编程人员都不可能了解和追踪应用系统的各个片段。

5.任何一段软件代码对开发机构来说都是负有重要使命的软件财富,因而使其具备可管理性和可审核性就显得尤为重要。

6.软件产品与其它产品不同,在投入使用后的维护和支持工作十分重要,因此需要可靠的维护支持、有序的文档资料,以及完整的开发、维护记载。

B-软件开发管理工具———PVCS

先进的软件开发管理工具不仅具备版本管理、建立管理、构造管理、问题追踪这些基本的功能模块,还融合了需求管理、需求变更管理技术,并支持工作流程,以至Internet/Intranet应用的异地通讯和管理功能。在下面的篇幅中,我们以软件开发管理工具的主要代表产品———PVCS为例来分析软件开发管理在软件开发各阶段中所充当的重要角色。

·PVCS由下面8个功能模块组成,几乎覆盖了软件开发管理中的所有问题:

·PVCSVersionManager:存储任何类型的文件的变更资料,可快速得到系统中任何文件的各个版本。

·PVCSConfigurationBuilder:为软件系统提供了可靠的自动重建过程。它保证系统在任何时候对某一发布的产品准确地进行重建,避免发生错误,同时自动地对修改过的模块重新编译以节省时间。

·PVCSTracker:在整个开发过程中确定和追踪软件的每一变更的要求。

·PVCSNotify:将软件状态的变更通过E-mail通知组织机构中的其他成员。

·PVCSReporter:为GUI界面环境提供一个客户报表工具,使用它能很容易地生成和存储多个项目的报表。

·PVCSProductionGateway:提供了局域网间与大型机MVS系统双向同步互联。

·PVCSDeveloper'sToolkit:为PVCS客户提供了应用程序开发接口(API),使项目信息通过编程访问。

PVCSRequisitePro:实现了先进的需求管理,以及需求变更管理功能。

上述的8个模块既可以单独的安装和使用,也可以相互集成,建立工业化软件开发企业所需的完整的软件开发管理环境。PVCS不仅很好的解决了代码重用,数据丢失等问题,它还从下述的几个主要方面,满足了软件开发机构迅速增长的市场需求,成为全球开发机构首选的软件开发管理工具。

C-加快提高软件开发速度适应市场的压力

无论所开发的产品是为内部用户还是外部用户,都同样面临着要求加快开发速度的强大压力。一方面,软件产业的发展促进越来越多的供应商更快推出产品,为开发机构参与竞争提供了有利条件;另一方面,开发机构借助Internet/Intranet作为软件分发工具,使得开发周期从原来的数月甚至数年缩短到几天或几个小时。在这样不断增长的市场压力下,若不能及时地配备开发工作所需的开发管理工具,势必使产品长期停留在低水平上,并且开发机构也会因此而丧失原有竞争优势。面对上述挑战,开发机构需要软件开发管理体系能自动地建立、收集和管理信息系统,而且这样的管理体系必须是可重复的,可适用于其它开发项目,并在产品的生命周期中保持软件资源的完整性。总之,对开发过程的控制是加速开发过程和推出新产品的关键。

AmericanInternationalUnderwriters(AIU)公司的ITgroup负责公司系统内部保险单预定系统的建立和传送。为了更好地服务于国内及国际市场的用户,AIU从原来集中化的企业运作转为分散式结构。由于所需的源代码遍布于全球的各个角落,ITgroup很难找出所需代码并识别其应用系统的版本,因而这种状况极大地降低了开发人员的工作效率,增加了潜在的错误,减缓了产品推出的速度。

采用PVCS以后,AIU得以实现理想的软件开发管理环境,并能有序地管理所有的源代码,使系统的建立、测试和代码分发符合各种质量标准和程序,加快了内部系统的开发速度并提高了软件质量。

D--支持软件开发质量亟待提高的迫切需要

开发机构为了提高开发速度,往往在工作量投入不足的情况下推出未经过充分测试的产品; 而客户对投放市场的产品却抱有越来越高的期望值,这一矛盾发展的结果使开发机构迫于市场和用户的压力必须取得ISO9000质量认证,并遵循美国卡内基·梅隆大学软件工程研究所SEI的CapabillityMaturityModel(CMM)标准来改进自己的开发过程。这些质量标准,为软件产品在开发过程中进行内部产品的评估和管理提供了框架。能否赢得越来越多的销售合同,取决于该企业是否已得到ISO9000及SEICMM的质量认证。而软件开发管理是通过这些认证的基石,它能够提供符合高质量标准所必须的控制要求、安全要求,以及在取得认证后还必须达到的审核追踪要求。软件开发机构若想从初始混乱的开发过程过渡到可重复、可管理的有序化过程,进而上升到更高的成熟水平,软件开发管理则是最有力的支持。这一情况也可从以下事例得到证实:

WayneDivisionofDresserIndustries位于美国德克萨斯州的奥斯汀,为取得ISO9000-3认证全面应用了PVCS。WayneDivision负责为世界各地的主要跨国石油公司建立所需的应用开发系统,经常接触蜘蛛网般错综复杂的多用户、多产品、多应用系统的软件版本。Dresser开始准备ISO9000-3的认证时已在使用PVCS,他们发现ISO9000中所要求的软件开发程序和步骤已经是其使用PVCS所实现的开发过程管理的一部分。因而对于ISO9000来说,他们仅需按照ISO9000-3的标准进行简单的调整即可。

E--适应纷繁复杂的开发环境

今天的软件开发环境确是一个多样化的复杂集合体。多操作系统、多开发工具、多数据库和多对象类型造成的多重效果,形成了难以管理的纷繁复杂的开发环境。开发Internet及Client/Server应用系统的软件团队往往分布于各个不同的地点。这种情况下若没有一个自动化的通讯手段,追踪软件模块变更管理体系,使开发团队成员共享LAN或WAN的开发环境,就会不可避免地引起错误,造成时间和资源的浪费。

多重结构开发致使很多的对象类型需要管理。开发项目会产生多样化的档案格式,如文本档案、文件档案、图形格式、电子表格等。当开发环境中开发工具和对象类型发生变化时,软件开发管理的基础结构必须始终保持统一,手段必须足够灵活。能适合任何操作系统、测试系统、计算机语言和对象类型的开发环境,必须具有可扩展性以适应任何规模和结构的开发团队。最为重要的是,所采用的软件开发管理工具不仅要能够支持今天的复杂环境,而且应可以随时调整适应将来的需要。比如:ChaseManhattanBank即美国大通银行是一家拥有1000亿美元资产的跨国金融机构,使用各种工作站(包括独立的和与大型主机经LANs相连的)和LANs(均在WANs下与大型主机相连)。工作站运行在DOS、OS/2和Windows环境下,其中有一些还连接在Novell、OS/2Server、LANServer和LANManager中。ChaseManhattanBank之所以选择了PVCS,因为它是能够支持其所有硬件系统和操作系统平台的唯一产品。PVCS能够有效地管理任何对象类型并且可以在独立的工作站上运行,跨越单个LAN或多个LAN,使ChaseManhattanBank在这样复杂的环境中获得了成功。

F--解决开发过程中的需求管理问题


最近一份由TheStandishGroup提供的调查报告表明:30%以上的软件项目在没有完成之前就被取消;剩余的70%的项目不能完全实现所需的功能:平均完成每个项目的实际经费超过预算的189%,而实际时间则超过预期的222%。这些情况往往是软件开发项目遇到的致命问题,其原因在于以下几个方面:

需求管理水平低下 我们的应用系统缺乏吸收来自用户的需求变更能力,在项目开发进展的同时不能响应这种变化。

变更管理水平低下 需求的变更和其他开发产品的变更是不可避免的,而我们很少去追踪这些变更,也意识不到它给项目开发所带来的影响。

低水平的质量控制 缺乏系统质量控制的方法,不了解开发过程中影响质量的环节,并且缺乏反馈。

没有对开发经费和期限进行有效的控制 虽然可以精确地计划,但是出乎意料的变化却经常出现。

解决上面所有问题的基础在于需求管理。需求管理,是一种对软件应用开发系统的需求变更进行标识、组织、通讯和管理的系统方案。

PVCSResiquitePro是PVCS与世界上最先进的需求管理工具的完美集成。PVCSRequistePro提供了一个独特的MSWord的界面和需求数据库,使软件开发团队实现了实时的、直观的应用需求管理和需求追踪功能。同时,PVCSRequisitePro还确保用户完全符合CMM标准和ISO9000标准。

小结


PVCS是一个优秀的软件开发管理工具,在解决上述几方面问题中显示了优越性,它在应付复杂环境、增强竞争优势方面所发挥的重要作用已经得到了众多开发机构的一致承认。在我国,许多的软件机构往往将注意力放在先进的操作系统、平台,以及开发工具上,而忽视了对开发过程的管理和控制,殊不知所造成的管理混乱不仅使宝贵的投资难以收回,也使软件开发的质量和效率长期徘徊于低水平重复状态,更不用说因人员流失所导致的项目风险。而且上述情况将随着各种操作系统、开发工具,以及开发团队人员的增多而更加严重。尽早地应用软件开发管理工具对开发过程进行有效的管理和控制,有助于我国的软件开发水平一步跨越西方软件企业所走过的弯路,上升到一个新的高度。

※ 来源:·BBS 水木清华站 bbs.net.tsinghua.edu.cn·[FROM: case.cs.pku.edu]



版权所有:UML软件工程组织