摘要:
2006年,我公司负责承建国内某电信运营商的综合增值业务平台。该系统充分利用该电信运营商的网络资源和用户资源进行统一业务门户、统一计费、统一业务展示。将业务展示、用户订购、退定及管理业务、用户使用业务计费等等都统一到这个平台上来。由于该系统同其它传统电信业务接口繁多、系统复杂,对系统的安全性和性能的要求比较高,因此对系统的需求分析就显得非常重要,直接关系到后继工程的进行及最终的系统能否满足客户的需求。采用适当的工具,不但能减少需求分析中的错误,也可大幅度提高需求分析的质量和工作效率。
我接受公司委托,担任该业务增值平台的需求分析、方案设计工作,并承担了一部分测试任务。
本文结合我工作的实际经历,简要描述了开发该增值业务平台是如何应用MS Viso软件中的UML工具对系统各个功能模块的业务流程进行需求描述、UML图形绘制的;接着说明了为什么选用面向对象的分析方法和UML建模工具进行增值平台系统设计的。
正文:
该电信运营商的综合增值业务平台功能复杂,他的功能主要划分为业务展示门户、CP网关(屏蔽各电信协议如CDMA、GMS、3G,是手机用户访问移动网络的统一入口)、AAA服务器(负责手机用户、CP/SP的认证、鉴权、计费)、管理门户、内容管理、还包括一组与传统电信业务的接口。开发这类功能复杂的系统,在整个系统的分析过程中,我们都采用面向对象的分析方法。这是因为我们在近几年的实践中已经坚信这种分析方法能够更加有效的表达和描述现实世界,软件要具有适用性和扩展性,就必须更接近于现实世界本身的发展规律。
为配合面向对象的分析方法,我们选用微软公司的Microsoft Viso工具UML图的绘制,如用例图、顺序图、活动图。最终的用户需求规范用Word编写,而各种UML图内嵌到Word文档中,
只要双击UML图形就可以打开Viso进行编辑和修改。
下面就举例来说明这些方法工具在需求分析中的综合应用。
在我们的业务展示需求分析中,我们经过和客户的详细沟通,将业务流程划分为用户登录、用户注册、用户对业务的订购、退订及管理等等,并将一个功能用表格描述,如用户订购业务的表格项如下:
功能编号 |
A0100 |
功能名称 |
用户订购业务 |
上下文
|
|
功能描述 |
用户定位到业务后,查看业务相关产品、描述、定购情况等信息。 |
参与者 |
最终用户 |
前置条件 |
用户登录成功,已定位到SP/CP业务入口链接 |
主要路径 |
|
可选路径 |
|
结果 |
用户看到业务、业务包详细信息,可以开始订购 |
补充说明 |
|
存在疑问 |
|
扩展 |
|
包含 |
|
服务优先权 |
|
其中在“上下文”的内容我们选用UML用例图来表示,主要描述该功能的参与者和实际的用例名称。而在“主要路径的”的内容上,我们选用UML的活动图来表示,用于描述该功能的程序执行流程。
第二个例子是系统有两个核心模块:CP网关和AAA服务器,CP网关用于接收用户发起的业务访问请求,向AAA服务器发送认证鉴权操作请求,并将认证鉴权结果返回给用户;而AAA服务器用于接受从CP网关产过来的对用户鉴权、SP\CP鉴权、业务鉴权、用户认证、用户使用业务的请求、实现对用户、SP/CP和业务的认证、鉴权功能。并向CP网关反馈认证、鉴权结果。
为了让用户和开发人员弄清楚这些复杂的业务流程以及所涉及的各个功能模块的调用关系,我们采用UML顺序图来描述这些业务流程。
以用户鉴权为例,它涉及到手机用户、CP网关、AAA服务器和业务逻辑模块四个独立的功能,它具体的业务流程如下所示,因为手机用户通过CP网关联入系统并由它发出对用户鉴权请求,然后将鉴权结果返回手机用户,为避免图形的复杂性,这里将手机用户和CP网关和二为一,统称为客户端。它的业务流程图用UML顺序图表示如下:
以上顺序图表示客户端通过发起用户鉴权请求,并从AAA的回复中获取用户的基本信息的整个业务流程。
之所以采用面向对象的分析方法结合丰富的UMl图示,主要是基于我们对软件需求的分析目标的看法,我们认为需求分析应当能正确地回答如下几个关键问题:
1) 用户的需求是否已经详细的考虑到了
2) 用户理解或明白我们描述的内容吗
3) 分析会否和设计相脱节
4) 开发人员明白我们的分析和设计吗
下面的叙述详细地回答了上面列出的几点:
1) 面向对象的分析设计可详尽的获取用户的需求
用户的需求可以分为显性需求和隐性需求,用户往往只顾及到到当前的及明显的需求,要达到需求的全面性,不仅仅只依靠有效的用户访谈和用户调查,采用UML提供的用例图和其它各种图的联合使用,可以让我们发现其中的遗漏。
2) 可以使用户充分地理解我们的表示方法,能够真正的明白我们描述的内容,该增值平台的需求规范是冗长而枯燥的,客户一般不容易理解,这就削弱了需求分析的正确性,通过面向对象的分析方法及UML业务流程图的绘制,可以更好的和用户交流,让用户了解系统的运作方式甚至实现的细节。
3) 分析和设计两个阶段互相融会贯通
这是我们选择面向对象的分析方法及Viso工具的重要原因,因为系统分析要向用户描述的不不仅是用户的需求,而且还包括解决方法,解决方法当然应当包括程序设计、数据库与系统配置。如果分析与设计严重脱节,不仅用户得到的软件与需求规范相差甚远,也有可能使程序员无法完成一个不可胜任的功能。如果不可能成功地完成设计而使需求分析重来,就会造成巨大的浪费和损失;而面向对象的分析方法使对象之间相对而言具有独立性,避免了因需求变化而导致全盘变动的局面,同时Viso工具也是分析与设计一一对应起来。
因而我们选用了以上的方法和工具。
至于需求分析工具的选择不仅是要看影响力和名气,而是要真正为我需用,应把握其精髓。我们认为需求分析工具的作用不外乎两个:一个是实际系统与环境的抽象的工具;二是需求表达的工具,第一类的代表是Rose、Viso等,第二类的代表是Word、Email、Web浏览器等沟通工具。
在这个项目中,我们利用了Viso、VS .Net 2005等集成开发环境。这些工具的使用,是我们提高了工作的效率。但就需求分析工具方面而言,我们觉得国内企业应用的还是太少了,这一方面是因为对需求分析不够重视,另一方面是因为管理水平还达不到相应的层次。
|