结构化与面向对象分析方法之间关系的研究

2010-05-13 09:17白桂梅
现代电子技术 2009年20期

摘 要:通过对具体实例的剖析,揭示DFD与UML之间的对应关系,从而提出结构化软件分析方法与面向对象软件分析方法存在的对应关系,在软件需求分析方法上实现了二者的相互转换,这种对应与转换关系对现有结构化软件的维护及再工程具有指导意义。

关键词:结构化开发方法;面向对象开发方法;UML;DFD;E-R图

中图分类号:TP311.5文献标识码:A

文章编号:1004-373X(2009)20-137-03

Research of Corresponding Relation between Structured Analysis and Object-oriented Analysis

BAI Guimei

(Luoyang Institute of Science and Technology,Luoyang,471023,China)

Abstract:With studying of an example,the relation between DFD and UML diagram is discovered.So the corresponding relation between structured analysis and object-oriented analysis is raised.The analysis transforming from one to another is realized.This relation has directing signification of structured software′s maintenance or reengineering.

Keywords:structured development method;object-oriented development method;UML;DFD;E-R diagram

0 引 言

对传统的结构化软件开发方法,在需求分析阶段要对系统中数据的加工过程(即从开始的数据输入到最终系统输出数据的加工处理过程)用数据流图(DFD)加以描述,对系统所涉及的永久性数据的存储与组织用实体关系(E-R)图来描述。进入软件设计阶段后,DFD将转换为系统结构(SC)图,E-R图则被转换为数据库中的表[1]。

面向对象的分析方法,需求分析阶段首先要给出UML图中的用例图与类图[2]。用例图是由系统之外的执行者(称为主角或角色)与执行者感受到的一系列动作(称为用例)所构成,用例图包括主角、用例以及主角与用例之间的联系[3]。类图则要从问题域的研究、描述中抽象提取。在初步的用例图与类图的基础上可根据需要分析给出UML的其他图,比如状态图、顺序图、活动图、协作图等[4]。进入设计阶段后需进一步规划、设计类的属性与方法,给出方法体的实现流程。

1 结构化分析方法与面向对象分析方法的对应关系

以实例说明系统结构化分析方法与面向对象分析方法的对应关系。在超市型书店中,顾客可以从书架上自由选书,然后到收款台付款和打印单据。为方便顾客,书店还向顾客提供查询服务,可以依据顾客提供的信息,如书号、书名、作者或出版社,查询书店中有无相应的图书。书店管理人员日常需要详细记录进书与售书情况,需要经常查询库存书和销售情况,还要统计销售量、销售利润最大的图书(比如10种)信息,为书店进书提供依据[5]。书店只设一个收款台,用一台微机即可实现经营管理。

从系统功能的角度分析,该系统应包括以下四个部分。

(1) 进书登记。登记本店购进图书的书名、书号、作者、出版社、进价、定价、库存数等信息;

(2) 售书登记。登记售书日期、书号、售出数量、单据号、开单人等消息,打印销售单据;

(3) 查询统计与报表。随时显示和打印给定时间段内的售书情况,并结算销售金额与利润;统计销售量、销售利润最大的10种图书;随时显示和打印库存书清单;

(4) 购书查询。可查询有无某书号、书名、作者、出版社的书。

1.1 系统E-R图

系统所包含的实体有库存书、单据,二者之间具有售书关系,所对应的E-R图如图1所示。

图1 系统E-R图

1.2 系统的DFD

DFD是自顶向下逐步细化的层次图,其中包含四种元素,即用矩形框表示的起点与终点;有向线表示的数据流;圆角框表示的加工;以及双横线表示的文件。该系统所对应的DFD如图2~图5所示[2,4]。

图2 顶层DFD

图3 一层DFD

图4 二层DFD

图5 三层DFD

数据字典的内容如下:

(1) 文件条目

库存表=0{入库书目+进书日期+库存数+封面+备注}m

售书表=0{书号+单据号+数量}m

单据表=0{单据号+开单日期+开单人+购书单位+总金额}m

(2) 数据流条目

书目=书号+书名+作者+出版社

入库书目=书目+进价+定价

售书输入=1{书号+数量}m

购书单=单据号+1{书名+定价+数量}m+总金额+付款金额+找零+开单日期

查询选择=[客户查询输入|管理员查询选择]

客户查询输入=[书号|书名|作者|出版社|书名+作者|书名+出版社|作者+出版社]

客户查询结果=书目+库存数+封面

起止日期=起始日期+终止日期

管理员查询选择=[销售额选择|销售量最大选择|销售利润最大选择]+ 起止日期

管理员查询结果=销售额查询结果+销售量最大查询结果+销售利润最大查询结果

报表选择=库存清单选择+售书选择+单据选择

报表输出结果=库存清单+售书报表+单据报表

库存清单=1{序号+入库书目+进书日期+库存数}m+书种数+总数量+总金额+报表生成日期

售书报表=1{书号+书名+1{单据号+数量+开单日期+开单人+购书单位}n+售出数}m+销售书种数+总金额+利润总计+起止日期

单据报表=1{单据号+开单日期+开单人+购书单位+1{书号+书名+数量+定价}n+合计金额}m+销售书种数+总金额+利润总计+起止日期

客户查询输入|=[书号|书名|作者|出版社|书名+作者|书名+出版社|作者+出版社]

管理员查询选择=[销售额选择|销售量最大选择|销售利润最大选择]+起止日期

销售额查询结果=0{书目+销售数量+销售金额}m+起止日期

销售量最大查询结果=0{书目+销售数量}10+起止日期

销售利润最大查询结果=0{书目+销售利润}10+起止日期

(3) 加工条目

基于数据流图中所标加工的清晰性,加工条目不再列出。

1.3 系统用例图与DFD的对应关系

DFD与UML的用例图有直接的对应关系,即DFD中的起点、终点就是用例图中的主角,DFD中的加工是用例图中的用例,下层对上层加工的细化对应用例图中用例的包含关系(《include》)[6],该系统的用例图如图6所示。

图6 用例图

DFD中判断加工对应用例图中的扩展关系(《extend》),如图7所示的部分DFD,其对应的部分用例图如图8所示[7]。

图7 部分DFD

图8 部分用例图

1.4 系统类图

从系统的DFD,E-R图及对问题域的描述,使用名词、动词分析法先找出候选类及其属性与操作[8],再通过CRC(Class Responsibility Collaborator)分析与RUP(Rational Unified Process)构造型进一步确定类(及其属性与操作)[9],可提取出如图9所示的系统类图。由图9可知,类图与DFD,E-R图也紧密相关。

图9 系统类图

2 结 语

以上通过具体实例说明了DFD,E-R图与UML的用例图、类图的对应关系,亦即传统的结构化分析方法与面向对象分析方法之间的对应关系。需要强调的是不管是传统的结构化软件开发方法,还是面向对象的软件开发方法,各阶段都是循环往复的迭代过程[10],需求分析阶段也不例外,它也是一个不断修正、完善的过程。

参考文献

[1]孙家广,刘强.软件工程理论、方法与实践[M].北京:高等教育出版社,2005.

[2]齐治昌,谭庆平,宁洪.软件工程[M].2版.北京:高等教育出版社,2004.

[3]国刚.UML与Rational Rose 2003软件工程统一建模原理与实践教程[M].北京:电子工业出版社,2007.

[4]Bernd Oestereich.软件开发方式——UML 面向对象分析与设计[M].2版.姜南,译.北京:电子工业出版社,2004.

[5]高春玲,张文学,白桂梅.数据库原理及应用Visual FoxPro[M].2版.北京:电子工业出版社,2005.

[6]王强,张晓鹏.用UML活动图集成用例的研究[J].计算机工程,2004,30(3):80-81.

[7]邓安远,王道乾,文俊浩.基于UML的期货公司管理平台的分析与建模[J].计算机工程与设计,2008,29(1):259-261.

[8]Leon Starr.How to Build Articulate Class Models[EB/OL].http://www.modelint.com/,August 6,2008.

[9]Andrew Watson.UMLsR vs.DSLs:A False Dichotomy[EB/OL].http://www.omg.org/docs/omg/08-09-03.pdf,2008.

[10]Roger S Pressman.软件工程:实践者之路[M].5版.北京:清华大学出版社,2005.