某网上书店系统分析报告书1报告简介本报告在某网上书店系统规划报告的基础上,对要实现的电子商务系统进行需求调查,使用UML用例图和活动图来描述调查得到的需求。
然后,对调查得到的需求进行详细的分析和描述,编写需求模型报告。
本报告还要根据形成的需求模型一步步得到分析模型,使用类图和协作图来分析各个用例,画出系统的分析类和用例实现过程,编写分析模型报告。
2 建立需求模型概述2.1 建立用例模型的体系结构图根据对某网上书店系统规划报告中功能模块的分析,结合对实际电子商务系统的调查,最终得出系统的体系结构图。
该网上书店体系结构图如下图所示。
图1 “网上书店”体系结构图在UML中,这种体系结构的表现方式是通过分组元素(即包元素)来实现的,在Rational Rose中应该按如下步骤建立该需求体系结构。
首先在Rational Rose的Use Case View中的Main用例图中使用建立“网上书店系统”包,如下图2所示。
图2 “网上书店系统”包然后双击该包图,进入下一级用例图中,建立“管理员子系统”和“用户子系统”两个包,再分别双击两个包,进入相应的包以建立下一级结构,最终得到系统的体系结构。
用例模型的体系结构图如图3所示。
图3 用例模型的体系结构图2.2 用例图的画法建立了用例模型的体系结构图之后,下面以用户子系统的“图书选购”功能为例介绍用例图的画法。
在“图书选购”上单击右键,建立“图书选购”用例图,如图4所示。
图4 创建“图书选购”用例图在这个用例中,有一个参与者(即顾客)和一个用例(即图书选购),根据分析可知,“图书选购”用例可以分解成两个用例,即“浏览图书”和“加入购物车”,最终得到用例图“图书选购”,如图5所示。
图5 “图书选购”用例图2.3创建“图书选购”活动图在上述步骤中仅仅画出“图书选购”的用例图,是不能够准确地表达“图书选购”这一用例的商业流程的,还需要对这一用例进行解释和说明,活动图就是一个对用例进行解释说明的很好的工具,下面是创建“图书选购”活动图的过程。
首先在“图书选购”包中通过单击右键创建“图书选购”活动图,如图6所示。
图6 创建“图书选购”活动图然后根据需求调查的结果,画出活动图。
使用泳道来区分活动的发出者,如图7所示。
图中的和分别表示用例的启动和终止。
要注意区分图中状态机的图标和活动图中活动图标的不同,用来表示一个个的活动。
图7 “图书选购”活动图接下来的工作是对用例进行描述,也就是对需求进行文档化描述。
事实上有许多种描述方法,既可以只用一段自然文字和使用结构化的一段文字描述,也可以使用图形进行描述(事实上,活动图就是对用例的一种描述)。
下面通过使用给出的用例的文档化模版对用例进行描述,用例描述如下:在给出的用例文档化模版中,前置条件说明了用例开始前应该使系统所处的状态,后置条件说明了用例结束后对系统的改变。
基流也叫做事件的成功流,说明了在整个过程中没有任何错误的情况下用例的事件流程。
实际上,作为用例描述,应该可以在用例模型中显示,Rational Rose在用例中添加了用例描述的功能。
用户双击用例“图书选购”图标,得到它的细节界面,如图8所示。
图8 添加用例描述在Documentation文本框中添加用例的描述和非功能性需求。
对体系结构中的每个包的每个元素都做完以上几项(即用例图、活动图和用例)描述之后,就基本完成了需求模型的建立。
这里说基本并不是完全的意思,即在系统的开发进程中发现一些新的需求和描述不正确的需求时,可继续在此基础上对其进行修改和维护。
2建立需求模型的详细步骤3.1 “用户注册”模块1)使用用例图“用户注册”用例图如图9所示图9 “用户注册”用例图2)使用活动图“用户注册”活动图如图10所示图10 “用户注册”活动图3.2 “用户登陆”模块1)使用用例图“用户登陆”用例图如图11所示图11 “用户登陆”用例图2)使用活动图“用户登陆”活动图如图10所示图12“用户登陆”活动图33.3“图书选购”模块1)使用用例图“图书选购”用例图如图13所示图13“图书选购”用例图2)使用活动图“图书选购”活动图如图14所示图14“图书选购”活动图33.4“购物车管理”模块1)使用用例图“购物车管理”用例图如图15所示图15“购物车管理”用例图2)使用活动图“购物车管理”活动图如图16所示33.5“查看订单”模块1)使用用例图“查看订单”用例图如图17所示图17“查看订单”用例图2)使用活动图“查看订单”活动图如图18所示图18“查看订单”活动图33.6“管理员登陆”模块1)使用用例图“管理员登陆”用例图如图19所示图19“管理员登陆”用例图2)使用活动图“管理员登陆”活动图如图20所示图20“管理员登陆”活动图33.7“图书管理”模块1)使用用例图“图书管理”用例图如图21所示图21“图书管理”用例图2)使用活动图“图书管理”活动图如图22所示33.8“订单管理”模块1)使用用例图“订单管理”用例图如图23所示图23“订单管理”用例图2)使用活动图“订单管理”活动图如图24所示图24“订单管理”活动图34建立分析模型概述在前述内容中,我们使用用例图、活动图和用例的一种结构化文档描述方法对系统的需求进行了分析。
需求模型表现了业务人员眼中系统存在的状态和工作的流程,而分析工作流程的目的是在于找出实体类、控制类和边界类。
这些类是业务活动中应该存在的一些实体概念,将其提取出来抽象成为类,然后再使用协作图分析它们之间的交互情况,从而不仅又一次明确了功能需求,也为在设计阶段设计出真正的可编程的类打下了基础,因此这是一个承前启后的过程。
现在需要从上述功能结构的描述中找出可以作为分析类存在的功能实体,进而通过筛选得到分析类。
发现类一般要依靠用例描述中的名词或者动宾短语。
从上面的功能描述中筛选出所有的名词和动宾短语,如“图书”、“选购图书”、“用户”、“购物车”、“选书页面”等。
现在假设这5个词就是分析模型中要找的类,下面分析它们的职责。
“图书”:其职责是很好界定的,即是客观世界的图书在软件系统中的映射,用来保存图书的基本信息。
“选购图书” :其他的职责在于接收用户选择的图书信息,并将信息转移到购物车类中,是一个控制其他类运行的类。
“用户”:是客观世界中书店的顾客,在软件系统中的映射。
“购物车”:是顾客的购物车或者是顾客挑完书后拿着书的手在软件系统中的映射。
“选书页面” :从语言中可以看出它是一个用来交互的类,是用来浏览图书信息的。
实际上,分析类可以分为实体类、控制类和边界类3类。
从名字中可以看出:实体类对应现实生活中的物体,是它们在软件系统中的映射;控制类用来对各个类之间进行协调和控制;边界类是软件系统用来与参与者进行交互的类。
下面介绍3种类的不同表示方法。
下面介绍3 种类的不同表示方法。
单击创建一个类图,然后点选创建三个类1、2、3。
双击打开各自的细节选项卡(class specification),在stereotype下拉条中选择entity、control或者boundary,从而分别将其改变成实体类、控制类和边界类,如图25所示。
图25 实体类、控制类和边界类4.2画出分析类图筛选得到分析类后就要画出分析类图了。
首先要弄清楚各类之间的关系,这时采用一个小技术CRC卡片就十分有效。
CRC(Class卡片的上面为类的名称,左面为类的职责,右面标示出与其有关系的类。
因此,在一个存在很多类的系统中,可以逐个地考虑该类与其他所有类是否有关系、有什么样的关系,保证不会遗漏类之间的关系。
从而在完成了对发现的类之间的关系判断之后,就可以画出类图了。
当然,在此之前还是要像上个实验一样建立体系结构。
在logic view中加入包——“网上书店系统分析模型”,然后按照各自的功能模块分包,最终得到体系结构。
通过以上步骤,得到“图书选购”用例的分析类图,如图27所示。
图27 “图书选购”用例分析类图在画出分析类图后,仍然需要对类图中的每个类进行描述,说明其各自的职责。
这些可以添加在细节选项卡(class specification)的documentation中。
4.3进行分析模型中的用例实现画出分析类图后,就需要进行分析模型中的用例实现了。
所谓用例实现是指使用已经发现的类并进行交互,从而使其完成用例所应该完成的功能。
用例实现的关键就是弄清楚分析类是怎样交互而完成任务的。
用例实现是使用交互图中的协作图来完成的,以“选购图书”为例,在“选购图书”包上创建“选购图书”协作图,如图28所示。
图28 创建“图书选购”协作图在图中创建类对象以及它们之间的交互过程,如图29所示。
图29 “图书选购”协作图5建立分析模型的详细步骤5.1 “用户注册”模块1)使用分析类图“用户注册”分析类图如图30所示:图30 “用户注册”分析类图2)使用协作图“用户注册”协作图如图31所示:图31 “用户注册”协作图5.2 “用户登陆”模块1)使用分析类图“用户登陆”分析类图如图32所示:图32 “用户登陆”分析类图2)使用协作图“用户登陆”协作图如图33所示:图33 “用户登陆”协作图5.3 “图书选购”模块1)使用分析类图“图书选购”分析类图如图34所示:图34 “图书选购”分析类图2)使用协作图“图书选购”协作图如图35所示:图35 “图书选购”协作图5.4 “购物车管理”模块1)使用分析类图“购物车管理”分析类图如图36所示:图36 “购物车管理”分析类图2)使用协作图“购物车管理”协作图如图37所示:图37 “购物车管理”协作图5.5“查看订单”模块1)使用分析类图“查看订单”分析类图如图38所示:图38 “查看订单”分析类图2)使用协作图“查看订单”协作图如图39所示:图39 “查看订单”协作图5.6“管理员登陆”模块1)使用分析类图“管理员登陆”分析类图如图40所示:图40 “管理员登陆”分析类图2)使用协作图“管理员登陆”协作图如图41所示:图41 “管理员登陆”协作图5.7 “图书管理”模块1)使用分析类图“图书管理”分析类图如图42所示:图42 “图书管理”分析类图2)使用协作图“图书管理”协作图如图43所示:图43 “图书管理”协作图5.8 “订单管理”模块1)使用分析类图“订单管理”分析类图如图44所示:图44 “订单管理”分析类图2)使用协作图“订单管理”协作图如图45所示:图45 “订单管理”协作图。