background image

         论软件需求分析方法和工具的选用——通信行业的应用
【摘要】
    本文以某通信公司的业务报表系统开发为例,讨论了软件需求分析工具与方法的选用。我
们认为,软件需求分析是软件工程中重要的一步,直接关系到后继工程的进行以及最终的
产品能否满足用户的需求,因此在整个工程中起着关键性的作用。采用适当的工具,有可能
显著减少需求阶段的错误,也可大幅度提高需求分析的质量和工作效率。当然工具的选用应
当与实际的项目相结合,充分地发挥工具的作用。本文结合我们工作的实际经历,简要讨论
了开发系统时所选用的工具及其应用,选用时所考虑的原则以及所碰到的问题。在文中也结
合多种开发方法(即传统的瀑布法、信息工程法、面向对象的方法)的比较,指出各种方法
的不足之处,说明我们所采用的工具对软件需求分析所起的作用,以及相应产生的效果。
【正文】
    我在某市一家通信公司工作,作为一名技术骨于,受领导委托,参与了开发本公司的业
务报表系统,我担任系统的需求分析、总体设计和部分代码的编写工作。
    我所在的企业作为一家通信运营公司,分为总部、省级公司和地市级分公司三级,各级公
司之间都有数据报表的要求。但是,每一个地市分公司因所处的地方不同,经营环境不同,
所面临的问题也不一样,因此形成了各具特色的数据报表(除地市分公司向省公司汇报的
之外)。公司又分设了许多部门,这些部门也都会需要数据,作为分析决策的依据。因此,
了解各个部门的需求就成了业务报表系统的关键。
    在调研的过程中,我选用了一种工具叫 Play CASE,可以从网上免费下载,有很强的功
能。下面就介绍一下,在需求分析阶段,我是如何使用这一工具的。
    第一步,了解业务组织结构。公司内部的数据实际上是在部门之间流动的。业务部门需要
知道在本地覆盖区内各基站的话务量、当天的话务量(即话务量的时空分布)。财务部门需
要知道本月各类用户的话费收入、预交款收入、与其他电信运营商的网间结算等。计划部门需
要各部门的分析数据。计费部门需要提供本月的账革统计数据、话单统计数据分布(比如分
别按照基站分布、时段分布以及按用户类别分布)、预交款统计数据、当前的欠费总额分布、
催缴情况等等。这些部门时常为了数据而产生了大量无谓的争议。在使用

Play CASE 工具时,

先要将这些部门录入到

Play CASE 的“业务部门”中.构成了一个信息源的接收点(或发送

点);而

Play CASE 通过图示表示了这些部门的关系,并转换成了相应的软件结构。实际上,

这是一种系统建模的方法,即把业务系统中的各个组织转变为软件功能中的各个结构。这样,
在需求分析阶段,明确哪些部门需要数据,从而保证了需求分析对整个公司的全面性,而
不会忽略掉某一个部门,导致需求分析的不完整。
    第二步,了解各个业务部门中的业务流程,使之通过 Play CASE 转换成软件的运行过程,
这是一种动态建模的方法。在上一步的基础上,追踪各个部门的行为,录入到

Play CASE 中,

并以形式化的语言描述各过程。对于复杂的过程,该工具还提供了进一步细化的方法,并且
形成了业务流程图和业务状态图。根据这些流程图、状态图与实际业务部门的业务相结合比
较,还是较为吻合的。在此步的实施过程中,运用了动态建模技术,使各部门业务流程的情
况在软件的运行过程反映出来,从而保证了需求分析阶段中运行过程的描述能真实地反映
实际情况,防止在后继的程序编写过程中,可能会经常发生的一类情况:程序员因为没有
理解业务流程而出现

“闭门造车”的现象,从软件的功能角度上保证了软件的正确性。

    第三步,将业务数据转变为软件数据,这一步工作实际上就是收集各部门所需要的数据。
分析各部门需要的数据都有哪些;以及数据是如何转换的,这可以归入

“功能建模”的范畴。

将这些相应数据录入到

Play CASE 中,选定所属的部门。这时就自动地建立了 DFD 图(数

据流程图),数据字典,省去了人工建立时的很大麻烦。
    第四步,将业务上的数据关系转变成软件中的数据关系。这里采用了面向对象的方法,把