1本科实验报告课程名称:系统分析与设计实验项目:《学术出版物的网上商店在线销售系统》实验地点:逸夫楼302专业班级:软件1415班学号:2014005960学生姓名:朱伟指导教师:雷红2016年10月23日23一、实验目的通过《系统分析与设计》实验,使学生在实际的案例中完成系统分析与系统设计中的主要步骤,并熟悉信息系统开发的有关应用软件,加深对信息系统分析与设计课程基础理论、基本知识的理解,提高分析和解决实际问题的能力,使学生在实践中熟悉信息系统分析与设计的规范,为后继的学习打下良好的基础。二、实验要求学生以个人为单位完成,自选题目,班内题目不重复,使用UML进行系统分析与设计,并完成实验报告。实验报告以纸质版(A4)、电子版在课程结束前提交(10周)。三、实验主要设备:台式或笔记本计算机四、实验内容1选题及项目背景学学术术出出版版物物的的网网上上商商店店在在线线销销售售系系统统2定义某出版社拟开发一个在线销售各种学术出版物的网上商店(ACShop),其主要的功能需求描述如下:1、ACShop在线销售的学术出版物包括论文、学术报告或讲座资料等。2、ACShop的客户分为两种,未注册客户和注册客户。3、未注册客户可以浏览或检索出版物,将出版物添加到购物车中。未注册客户进行注册操作之后,成为ACShop注册客户。4、注册客户登录之后,可将待购买的出版物添加到购物车中,并进行结账操作,结账操作的具体流程描述如下:(1)从预先填写的地址列表中选择一个作为本次交易的收货地址。如果没有地址信息,则可以添加新地址。(2)选择付款方式。ACShop支持信用卡付款和银行转账两种方式。注册客户可以从预先填写的信用卡或银行卡账号中选择一个付款。若没有付款方式信息,则可以添加新付款方式。(3)确认提交购物车中待购买的出版物后,ACShop会自动生成与之相对应的订单。5、管理员负责维护在线销售的出版物目录,包括添加新出版物或者更新在售出版物信息等操作。3参考资料《《软软件件设设计计师师教教程程((第第44版版))》》《《系系统统分分析析与与设设计计》》4系统分析与设计4.1需求分析44.1.1识别参与者客户、注册客户、未注册客户、管理员4.1.2对需求进行捕获与描述用例名称:注册执行者:未注册客户目的:未注册客户进行注册操作用例名称:登录执行者:注册客户目的:注册客户登录系统用例名称:浏览或检索出版物执行者:客户目的:查找出版物用例名称:添加出版物到购物车执行者:客户目的:将想要买的出版物添加到购物车中用例名称:选择收货地址执行者:注册客户目的:注册客户填写自己的收货地址用例名称:添加新地址执行者:注册客户目的:若没有默认地址,则添加新地址用例名称:选择付款方式执行者:注册客户目的:结账时选择付款方式付款用例名称:添加新付款方式执行者:注册客户目的:若没有付款方式则添加新付款方式用例名称:结账执行者:注册客户目的:注册客户对要买的出版物进行结账用例名称:添加出版物执行者:管理员目的:每次需要添加新的出版物信息用例名称:更新在售出版物信息执行者:管理员目的:更新在售的出版物的信息用例名称:客户下订单执行者:注册客户目的:完成一次下订单的完整过程。1.1用例ID号及用例名客户下订单1.2用例概述该用例描述一个在线销售系统中,客户添加购物车并下订单,系统验证客户信息及订单,将各条目加入订单中,客户支付后,系统生成订单。1.3参与者:注册客户1.4前置条件(Pre-Conditions)客户登录1.5后置条件(Post-Conditions)订单被记录下来1.6事件流1.6.1基本事件流(BasicFlow)1)客户浏览或检索出版物2)客户添加出版物到购物车3)系统产生出版物目录。4)系统显示客户的个人信息(送货地址)。5)客户验证信息。E-16)系统验证客户订购的出版物的可用性,获取客户价格及订单总额。并显示订单总结。7)系统提示客户选择支付方式。8)客户选择支付方式并支付。E-29)系统记录订单信息,自动生成一个订单确认,显示给客户,1.6.2扩展事件流(AlternativeFlows)E-1(替代第5步):如果需要修改或没有地址信息,客户添加新的地址,系统验证修改,存储。E-3:(替代第8步):若没有付款方式信息,客户可以添加新的付款方式4.1.3用例图通过已掌握的需求,初步了解系统所要完成的功能。下面给出用例图。5客户注册客户未注册客户浏览或检索出版物添加出版物到购物车结账选择收货地址选择付款方式添加出版物更新在售出版物信息登录注册添加新地址添加新付款方式管理员includeincludeincludeincludeextendextend4.1.4分析与讨论1)建模用例图的步骤、方法?答:a、确定参与者b、识别用例c、确定用例间的关系2)如何识别系统的参与者?应该如何划分用例,应注意哪些问题?答:(1)明确以下问题:a、谁将使用该系统的主要功能b、谁需要该系统的支持以完成其工作c、谁需要维护、管理该系统,以及保持该系统处于工作状态d、与该系统交互的是什么系统e、谁或什么系统对本系统产生的结果感兴趣(2)明确以下问题:a、特定参与者希望系统提供什么功能b、系统是否存储和检索信息,如果是,由哪个用例触发c、当系统改变状态是,是否通知参与者d、是否存在影响系统的外部事件e、哪个参与者通知系统这些事件3)心得通过本次实验,让我对用UML软件绘制在线销售系统的用例图有了初步的了解,用例描述的是参与者与系统之间的对话,但是这个对话的细节并没有在用例图中表述出来,针对每一个用例我们可以用事件流来描述这一对话的细节内容,这些信息包含在用例说明中。用例描述也称为“用例场景”,即进行业务事件以及用户如何同系统交互已完成任务的文字描述。4.2建立对象模型4.2.1候选类的数据字典6类名中文定义Customer客户客户可以在ACShop中浏览并订购出版物UnregisteredCustomer未注册客户未注册客户注册后可以登入ACShop订购出版物RegisteredCustomer注册客户注册客户可以登录ACShop系统Administrators管理员在ACShop系统中添加出版物,更新在售出版物信息CatalogueOfIECPublication出版物目录存放着出版物的检索信息,便于出版物的查找AcademicBooks学术出版物包括论文、学术报告、讲座资料PurchasedPublication待购买出版物在购物车中的出版物ShoppingCart购物车将要购买的出版物添加到购物车Order订单将购物车中的出版物结算后生成订单PaymentMethod付款方式可以选择信用卡支付或银行转账4.2.2定义类(1)“客户”类•属性:姓名(name):char联系方式(Contactinformation):int地址(address):char•操作:注册register()登录Signin()浏览browse()加入购物车joinShoppingCart()结账payment()(2)“学术出版物”类•属性:国际标准号(ISBN):string出版物名(name):string作者名字(author):string价格(prince):double出版社(bookconcern):string编号(regimentaion):string7•操作:设置标准号setISBN()获取标准号getISBN()(3)“管理员”类•属性:姓名(name):char工号(ID):int联系电话(TelName):int•操作:添加出版物Addpublication()更新出版物信息Updatepublication()(4)“出版物目录”类•属性:编号(regimentaion):string出版物名(name):string•操作:获取编号getregimentaion()(5)“购物车”类•属性:出版物名称(name):string出版物数量(number):int(6)“待购买的出版物”类•属性:出版物名称(name):string出版物数量(number):int(7)“订单”类•属性:订单号码(Ordernumber):int订单信息(Orderinformation):string4.2.3绘制类图任何人都可以注册成为客户,未注册客户可以浏览或检索出版物,将出版物加入购物车,未注册客户注册后可以成为注册客户,管理员负责维护在线销售的出版物,学术出版物包括论文、学术报告、讲座资料8ACShop管理员+姓名+工号+联系电话+添加出版物()+更新出版物信息()购物车+出版物名称+出版物数量学术出版物+国际标准号+出版物名+作者名字+价格+出版社+编号+设置标准号()+获取标准号()待购买的出版物+出版物名称+出版物数量出版物目录+编号+出版物名+获取编号()论文学术报告客户+姓名+联系方式+地址+注册()+登录()+浏览()+加入购物车()+结账()未注册客户注册客户讲座资料订单+订单号码+订单信息收货地址付款方式信用卡支付银行转账11..*10..*10..*111110..*4.2.4包图对于大型复杂系统,常需要把大量的模型元素用包组织起来,以方便处理。对所选系统的类进行分组,以便更清晰地了解系统的结构。订单处理添加新地址选择收货地址结账添加新付款方式选择付款方式注册客户客户未注册客户加购物车浏览或检索出版物添加出版物到购物车注册管理员更新出版物添加出版物更新在售出版物信息4.2.5分析与讨论1)建模类图的步骤、方法?9a、确定类;(方法:行为分析、名词识别法、CRC分析法、根据边界类、控制类、实体类的划分、参考设计模式确定、通过领域进行分析等)b、识别类的属性和操作;(方法:结合需求陈述、领域知识和常识以及经验等)c、识别类之间的关联;(方法:使用普通关联列表的方法)d、定义类的结构和层次。2)识别类有哪些方法,你是如何识别类的?行为分析、名词识别法、CRC分析法、根据边界类、控制类、实体类的划分、参考设计模式确定、通过领域进行分析等。我通过名名词识别法确定类。3)解释关联的多重性?如何确定类的属性、操作、类之间的关联关系、组织类之间的继承?关联的多重性:关联表示了对象间的结构关系,在建模过程中,通常需要说明一个关联实例中有多少个相互连接的对象。确定类的属性:从常识性、专业性、功能性、存储性、操作性、标志性、关联性发现和确定类的属性,进而筛选类的属性;确定类的操作:综合对象模型、动态模型和功能模型,确定类的操作;确定类之间的关联关系:使用普通关联列表的方法帮助发现关联。并分析关联的多重性。组织类之间的继承:自顶向下和自底向上的方法。4.3建立动态模型4.3.1顺序图学术出版物:客户购物车订单ACShop在线销售系统1:浏览()2:出版物信息更新()3:出版物放到购物车()4:确认待购买的出版物()5:出版物信息随时可以删除出版物()6:提交订单()7:确认订单()8:订单提交给ACShop()9:确定客户购买()10:取消订单()11:退货()10系统的动态行为模型由交互图(顺序图和协同图)、状态机图和活动图表达。在系统的分析和设计中应当对主要的UseCase和对象类绘制这些图形,以便分析系统的行为,印证和修改系统的静态结构,满足用户的需求,达到系统的目标。4.3.2通信图:客户/客户登录/购物车/订单/ACShop在线销售系统/检索出版物/离开/学术出版物4.3.3活动图活动图的主要作用是表示系统的业务工作流和并发处理过程。针对自选系统主要的业务工作流绘制活动图。绘制活动图需要确定参与活动的对象、动作状态、动作流,以及对象流。11客户ACShop在线销售系统浏览或检索出版物客户登录更新出版物信息加入购物车提交订单确认订单发货4.3.4状态图状态机图表现一个对象(类)的生命史。对于一些实现重要行为动作的对象应当绘制状态机图。绘制状态机图需要确定一个对象的生命期可能出现的全部状态,哪些事件将引起状态的转