UML综合实验报告网上书店系统
- 格式:doc
- 大小:152.50 KB
- 文档页数:22
实验目的1.学会使用UML工具进行系统建模2.学会和熟悉创建系统用例模型过程3.熟悉和掌握创建系统静态模型过程4.学会和掌握创建系统动态模型过程实验步骤及要求1.创建系统用例模型进行系统分析和设计的第一步是创建系统的用例模型,作为描述系统的用户或者参与者所能进行的操作的模型,他在需求分析阶段有着重要的作用,整个开发过程都是围绕系统的需求用例表述的问题和问题模型进行的。
创建系统用例的第一步是确定系统的参与者。
根据需求分析可知网上购物系统的参与者包括以下三种:(1)用户。
泛指所有使用网上购物系统的人,是专门抽象出来的一个参与者。
(2)普通用户。
即游客,进入网上商店浏览但是没有进行注册的用户,无权购买商品,仅有浏览商品信息的功能。
(3)注册会员用户。
已经注册过的用户,登陆网上商店后即可进行购物。
(4)管理员。
对本系统进行数据管理、数据维护,并对商品、订单和用户进行管理的用户。
普通用户用例图的建模过程如下:(1)在创建的“网上购物商店”模型中,右击用例视图,在弹出的快捷菜单中选择新建->用例图。
(2)将创建的用例图名称改为“普通用户用例图”。
(3)双击“普通用户用例图”,进图图形编辑窗口。
(4)单机编辑工具栏上的“参与者”图标,然后再图形编辑区德空白处单击鼠标右键,在创建的人形图案上修改参与者名称为“用户”。
(5)重复4步骤,再创建“普通用户”的参与者。
(6)单击编辑工具栏上的“泛化关系”图标,在图形编辑区中使泛化关系的空心三角箭头线段从“普通用户”参与者连接到“用户”参与者,创建两个参与者之间的泛化关系。
(7)单击编辑工具栏上的“用例”图标,在图形编辑区空白区右击,在创建的椭圆形的用例上修改用例名称为“注册”。
(8)依照7步骤,再创建“浏览商品信息”、“查询商品”、“在线帮助”、“分类商品信息显示”、“优惠商品信息显示”、“热门商品信息显示”、“分类商品查询”、“优惠商品查询”、“热门商品查询”和“高级查询”共10个用例。
UML系统建模--图书馆图书管理系统实验使用UML进行系统建模一.实验目的针对指定软件系统的需求进行分析和设计;使用Microsoft Visio软件,绘制UML图。
二.实验设备计算机、Microsoft Visio软件。
三.实验内容及步骤图书馆图书管理系统的域描述如下:在图书管理系统中,要为每个借阅者建立一个账户,并给借阅者发放借阅卡(借阅卡可以提供借阅卡号、借阅者名),账户中存储借阅者的个人信息、借阅信息以及预定信息。
持有借阅卡的借阅者可以借阅书刊、返还书刊、查询书刊信息、预定书刊并取消预定,但这些操作都是通过图书管理员进行的,也即借阅者不直接与系统交互,而是图书管理员充当借阅者的代理与系统交互。
在借阅书刊时,需要输入所借阅的书刊名,书刊的ISBN/ISSN号,然后输入借阅者的图书卡号和借阅者名,完成后提交所填表格,系统验证借阅者是否有效(在系统中存在账户),若有效,借阅请求被接受,系统查询数据库系统,看借阅者所借阅的书刊是否存在,若存在,则借阅者可借出书刊,建立并在系统中存储借阅记录。
借阅者还书后,删除关于所还书刊的借阅记录。
如果借阅者所借的书刊已被借出,借阅者还可预定该书刊,一旦借阅者预定的书刊可以获得,就将书刊直接寄给预定人(为了简化系统,预定书刊可获得时就不通知借阅者了)。
另外,为了简化系统,也不考虑书刊的最长借阅期限,假设借阅者可以无限期地保存所借阅的书刊。
对上述图书管理系统的域描述进行分析,可以获得如下功能性需求:(1)借阅者持有借阅卡(借阅者名和借阅卡号);(2)图书管理员作为借阅者的代理借书;(3)图书管理员作为借阅者的代理预定书刊;(4)图书管理员作为借阅者的代理取消预定;(5)图书管理员作为借阅者的代理还书;(6)图书管理员可以创建新的借阅者账户;(7)图书管理员可以修改借阅者的账户信息;(8)图书管理员可以删除已存在的借阅者账户;(9)图书管理员可以添加新书刊种类;(10)图书管理员可以修改书刊种类信息;(11)图书管理员可以删除系统中的书刊种类;(12)图书管理员可以在系统中添加书刊信息;(13)图书管理员可以编辑书刊信息;(14)图书管理员可以删除书刊信息;对上述系统进行建模,按照下列要求完成实验报告:1.进行需求分析:识别参与者,识别用例,画出用例图;使用“用例说明书”对每个用例进行描述。
实验名称:UML班级:软件0803学号: 080203060080203062姓名:杜利星冯双玉图书馆系统用例模型——系统需求的获取用例模型定义系统做什么,是用来获取系统需求的有效手段。
用例模型由“角色”和“用例”组成。
在这个图书馆系统中,我们可以识别出的角色有学生和图书管理员。
整个用例模型包含的用例有:借书、还书、查阅图书、预订图书,以及图书维护。
用例模型可以用用例图表示如下:查阅图书预定图书学生借书还书管理图书图书管理员名称:借书”。
说明:学生在图书馆挑选好需要的图书后,通过图书管理员把书借回去。
参与者:学生,图书管理员频率:每天可能会有很多次。
最繁忙的情况是,借书的人非常多,按照现在的速度,大约每分钟完成一个人的结束工作。
前置条件:无后置条件:修改所借出的图书的剩余数量。
假设:借书者总是从图书馆找到书,然后才能拿书办理借书手续,因此,总是有足够的书可以出借。
基本操作流程:借书成功。
1) 学生将所借图书和借书证交给图书管理员2) 图书管理员将学生借书证号码和所借图书输入系统3) 系统校对借书信息,比对该学生以往借书情况和当前借书情况,如果不存在不允许借书的情况,则记录借书交易的信息,并且修改相应的馆藏图书的数量信息。
4) 如果该学生已经预订了这本图书,则撤销该预定。
5) 报告交易成功。
可选操作流程:所借图书超出最大借书数量。
1) 学生将所借图书和借书证交给图书管理员2) 图书管理员将学生借书证号码和所借图书输入系统3) 系统校对借书信息,比对该学生以往借书情况和当前借书情况,发现已超出最大借书数量,则停止当前交易,并且提示用户错误原因。
4) 图书管理员可以应学生的意见,减少借书数量,并重新提交系统。
流程活动图:显示借书界面验证借书数量输入借书证号码和所借图书通知用户[借书数量超出范围]修改借书信息修改馆藏图书数量信息记录本次交易信息借书成功撤销预定[借书数量在允许范围内]已经预订未预定图一:借书活动图静态模型的建立对象包括图书管理员(BookAdmin)、学生(Student)、图书(Book),图书的借还信息(BorrowInfo),预定图书的信息(SubscribrInfo ),借书的控制类(Borrow),用户界面(BorrowInterface )。
uml课程论文网上书店项目第一篇:uml课程论文网上书店项目南京信息工程大学课程论文题目网上书店项目概述网上购书系统3部分组成:用户管理、购书网站和订单处理中心。
其中,用户管理负责用户注册及用户登陆;购书网站是一个Web应用程序,用户可以通过Web浏览器登录到此网站,在此网站,用户可以搜索要找的书,查看书的详细信息并购书;订单处理中心用来管理购物网站转过来的订单。
用户管理主要包括一下功能:λ注册用户信息1)对于新用户,单击“注册”按钮,进入用户注册页面;2)填写相关注册信息,填写完毕后单击“确定”按钮;3)弹出“注册成功”对话框,即成功注册。
λ用户登录验证1)对于已注册用户,进入用户登录页面;2)填写您的用户名和密码; 3)单击“登录”按钮;4)用户名和密码正确,登录成功,进入购书网站;否则返回。
λ浏览图书网站的书籍列表要列出当前网站所有的图书名称。
当用户单击某一图书名称时,要列出该书的详细信息(包括书名、作者、单价)。
λ查找图书用户可以在网站的查找框中输入一个书名,单击“查找”按钮可以网站是否有此书,系统将查找结果(如果有此书,返回书的详细信息;如果没有,返回当前没有此书的信息)返回给用户。
λ购物车管理用户可以随时查看自己的购物车,可以添加或删除购物车中的商品。
λ购书在浏览图书时,用户可以在查看选中图书的详细信息时添加次书到购物车,添加完毕可以选择继续购物或是结算。
如果选择结算,要填一个购书登记表,该表包括以下内容:购书人姓名、地质、E-mail、所购图书的列表、总价。
订单处理中心的功能:订单处理中心是一个Web应用程序,在此将列出所有等待处理的订单,每一笔订单包含购书人姓名、地址、E-mail、所购图书的列表、总价。
其中,所购图书列表包括各个书籍信息的明细内容,总价是系统自动计算的。
要求:1、画出该系统的用例图、类图、状态图、活动图、顺序图、协作图、构件图以及部署图。
2、要求打印。
3、6月26日前交。
UML建模大作业实验报告组号:选题名:E-store网上书店系统小组成员.1.需求模型从用户角度描述系统功能的用例意见反馈(from Use Case View)从系统管理员角度描述系统功能的用例订货通知(from Use Case View)(from Use Case View) 2.分析模型2.1.架构模型E-store网上书店包图系统辅助包图2.2.分析机制2.3.关键抽象2.4.用例实现2.4.1.注册用例的用例1. 用例名注册1.1 简要描述本用例由游客触发的,允许顾客在该书店注册成为会员用户,实现会员的一些权限。
2. 事件流2.1 基本流2.1.1 顾客进行注册顾客在登陆系统时必须先注册一个账号,才能进行登录查询。
2.2 备选流2.2.1 注册账号无效如果顾客登陆账号已存在或者验证码错误,提示顾客无效。
本用例结束。
3. 特殊需求没有和本用例有关的特殊需求。
4. 前置条件在针对登陆书店,必须先注册成为会员5. 后置条件无。
6. 扩展点没有和本用例有关的扩展点。
·2.4.2.图书浏览用例的用例1.用例名图书浏览1.1简要描述本用例由游客、会员触发的,允许顾客在书店页面浏览书店的概况和书籍种类。
2.事件流2.1基本流2.1.2顾客进行图书浏览顾客在书店页面浏览书店概况和书籍种类。
本用例结束2.2备选流2.2.1浏览无效如果顾客浏览页面不存在或者方式不正确,提示顾客浏览无效。
本用例结束。
3.特殊需求没有和本用例有关的特殊需求。
4.前置条件无。
5.后置条件无。
6.扩展点没有和本用例有关的扩展点。
·2.4.3.图书查询用例的用例1.用例名图书查询1.1简要描述本用例由游客、会员触发的,允许顾客在书店页面查询书籍信息。
2.事件流2.1基本流2.1.2顾客进行图书查询顾客在书店页面查询书店里书籍种类。
本用例结束2.2备选流2.2.1查询无效如果顾客查询书籍不存在或者方式不正确,提示顾客查询无效。
网上书店系统的UML建模目录1 系统需求 (3)2 需求分析 (3)2.1 识别参与者 (3)2.2 创建系统用例模型 (4)2.3 识别用例 (4)3 静态结构模型 (6)3.1 定义系统对象..................................................... 错误!未定义书签。
3.2 定义用户界面类................................................. 错误!未定义书签。
3.3 建立类图 (6)4 动态行为模型 (6)4.1 创建系统序列图与协作图 (6)4.2 创建系统的状态图 (9)4.3 创建系统的活动图 (10)5 物理模型 (11)5.1 创建系统组件图 (11)5.2 创建系统部署图 (12)6总结 (12)7参考文献 (13)1 系统需求网上书店管理系统业务描述:网上书店提供给人们更加便捷的购书模式。
从网上书店系统不同参与者的角度 ,可以将其系统功能分为前台与后台两大功能模块。
通过对电子商务网站及网上书店的考察、分析以及实际的市场调查,要求本系统具有以下功能:●统一友好的操作界面,能保证系统的易用性。
●规范、完善的基础信息设置。
●图书分类详尽,可按不同类别查看商品信息。
●按图书大类及图书名称进行模糊查询。
●实现网上购书。
●新书及特价图书展示。
满足上述需求的系统主要包括下面几个模块:2 需求分析2.1 识别参与者网上书店系统是一种特别流行的售书方式,人们通过自己上网来对自己喜爱的书籍进行预订,这样不仅节约了时间,而且特别方便快捷。
借助网络系统,广大阅读爱好者在任何时间只要轻轻按动鼠标,即可以选择自己喜爱的书籍。
在书店管理系统中,需要销售者和用户的的参与。
销售者可以有自己的用户名和密码对网站的后台进行维护和更新。
用户可以注册也可以登录来对图书进行浏览和购买,确认购买后通过转账汇款。
网站需要一个专门的管理者进行日常维护与管理,所以需要有系统管理员的参与。
UML 实验报告计算机与信息技术学院综合性实验报告一、实验目的学生的信息管理系统的目标是在学生的信息管理中,使用计算机的网络技术,通讯技术和信息处理技术,使学生的信息得到加工,依次传达及保存。
根据学生的信息管理的电子化和网络化,来实现全面改善学生信息的管理环境,提高管理效率。
系统要对使用要求不同的用户群体,设置不同的权限,设置系统的不同功能。
管理员能有效管理学生的信息,同时,学生可以随时大量检索查询多种信息。
这个项目从结构上分为:(1)管理员:通过已有学生信息仓库,管理学生的信息,还可以管理教师的信息,管理课程的信息,管理班级的信息;(2)学生:可以修改学生的信息,选择课程,检索成绩等;(3)教师:修改教师的信息,检索学生的成绩,登记授课的学生状况等。
二、实验仪器或设备学生用计算机一台三、总体设计(设计原理、设计方案及流程等)设计原理:用例图:被称为参与者的外部用户所能观察到的系统功能的模型图,在UML语言中,用例模型也就是用例视图是用例图描述的。
用例模型可以由若干个用例图组成,用例图中包含系统、角色和用例三种模型元素。
用例是外部可见的一个系统功能单元,这些功能由系统单元所提供,并通过一系列系统单元与一个或多个参与者之间交换消息所表达。
顺序图:它描述对象是如何交互的并且将重点放在消息序列上,也就是说描述消息是如何在对象间发送和接收的。
设计方案及流程:1.系统功能(1)学生功能:查询课表,选课,成绩,修改学生个人信息。
(2)教师功能:录入成绩,查询教授学生状况,修改老师个人信息。
2.管理员功能(1)学生管理:学生用户的追加,学生信息的浏览,修改,删除。
(2)教师管理:教师用户的追加,教师信息的浏览,修改,删除。
(3)课程管理:课程查询,添加,修改,删除,公布课表等。
(4)班级管理:班级的查询,添加,修改,删除四、实验步骤(包括主要步骤、用例图、时序图等)一、打开rational rose画图结果如下:二、用例图:1.系统用户参与的总的用例图:用例分析如下:选课:2. 管理员参与的用例图:用例分析如下:课程删除:用例名称课程删除标识符UC0002基本操作流程1.管理员输入课程信息2.检索选择该课程学生信息3.删除该课程可选操作流程1a.输入信息不存在,进行确认3a.删除课程错误,重新删除学生信息的修改:用例名称学生信息的修改标识符UC0003基本操作流程1.管理员输入学生信息2.检索学生信息3.修改学生信息可选操作1a.输入的学生信息不存在,进行确认3.教师参与的用例图:用例分析如下:录入成绩:查询教授学生状况:用例名称查询教授学生状况标识符UC0005基本操作流程1.登陆查询教授学生状况页面2.老师输入学生信息3.查询学生状况4.退出登陆可选操作流程1a.登陆失败,重新登陆2a.输入得学生不存在,进行确认4a.退出失败,重新退出4b.注销登录4.学生参与的用例图:用例分析如下:查询成绩:用例名称查询成绩标识符 UC0006基本操作流程1. 登陆查询成绩页面2. 查询成绩3. 退出登陆可选操作流程1a.登陆失败,重新登陆 2a.查询出现错误,重新查询 2b.查询成绩不存在,进行确认 3a.退出失败,重新退出 3b.注销登录三、顺序图:1. 管理员时序图:管理员时序图说明:(1)登陆到登陆页面(2)在学生信息管理页面中进行追加学生用户、浏览、修改、删除学生信息操作,提交到学生信息数据库,并在本页面显示(3)返回成功(4)在教师信息管理页面中进行追加教师用户、浏览、修改、删除教师信息操作,提交到教师信息数据库,并在本页面显示(5)返回成功(6)在课程信息管理页面中进行查询、添加、修改、删除、公布课表操作,提交到课程信息数据库,并在本页面显示(7)返回成功(8)在班级信息管理页面中进行查询、添加、修改、删除班级操作,提交到班级信息数据库,并在本页面显示(9)返回成功(10)退出登录2.教师时序图:教师时序图说明:(1)登陆到登陆页面(2)在教师信息管理页面中进行修改老师个人信息操作,提交到教师信息数据库,并在本页面显示(3)返回成功(4)在学生信息库中进行录入成绩、查询教授学生状况操作,提交到学生信息数据库,并在本页面显示(5)返回成功(6)退出登陆3.学生时序图:学生时序图说明:(1)登陆到登陆页面(2)在学生信息管理页面中进行查询课表、选课、查询成绩、修改学生个人信息操作,提交到学生信息数据库,并在本页面显示(3)返回成功(4)退出登陆五、结果分析与总结用例图:(1)用例是用户期望系统具备的功能,每一个用例说明一个系统提供给它的使用者的一种服务或功能。
基于UML的书店管理系统分析报告一、书店管理系统可行性分析随着政府机关与广大企事业单位内部网络的广泛建立,在通用信息平台上构筑高效实用的协同工作和自动化办公应用系统,满足信息高度共享和即时发布的需求,有效实现内部知识管理,已成为众多用户的共同需求。
书店管理系统,为政府机关与广大企事业单位自动化办公提供了一个较好的解决方案。
在开发过程中,按照软件工程的步骤,从设计到开发采用了面向对象的思想和技术,采用了SQL SERVER 2000数据库,使得本系统可以方便的和其他子系统进行数据交换。
同时,注意从软件的图形应用界面上优化软件质量,使得本系统具有很强的可操作性。
三、书店管理系统需求分析3.1、系统目标设计系统开发的总目标是实现内部管理的系统化、规范化和自动化。
能够对图书进行注册登记,也就是将图书的基本信息(如:书的编号、书名、作者、价格等)预先存入数据库中,供以后检索。
能够对顾客会员进行注册登记,包括记录顾客会员的姓名、编号、年龄、性别、地址、电话等信息。
提供方便的查询方法。
如:以书名、作者、出版社、出版时间(确切的时间、时间段、某一时间之前、某一时间之后)等信息进行图书检索,并能反映出图书的库存情况;以顾客会员编号对顾客会员信息进行检索;以出版社名称查询出版社联系方式信息。
提供对书籍进行的预先预订的功能。
能够对使用该管理系统的用户进行管理,按照不同的工作职能提供不同的功能授权。
提供较为完善的差错控制与友好的用户界面,尽量避免误操作。
3.2、系统功能需求分析(1) 读者管理:顾客会员信息的制定、输入、修改、查询,包括种类、性别、备注等。
(2) 书籍管理:书籍基本信息制定、输入、修改、查询,包括书籍编号、类别、关键词、备注。
(3) 出售管理:包括预订书籍、查询书籍的处理。
(4)系统管理:包括用户权限管理,数据管理的管理满足以上需求的系统主要包含有一下几个子系统(1)基本业务功能子系统:该系统中主要包含了入库出售和预订等功能。
本科实验报告课程名称:系统分析与设计实验项目:《网上书店系统》实验实验地点:逸夫楼402专业班级:学号:学生姓名:指导教师:**2013年10月21、28日2013年11月4、11日目录1.实验准备:熟悉UML建模环境2.实验一用例图3.实验二类图4.实验三顺序图及通信图5.实验四活动图、状态图、组件图及部署图实验一用例图一、实验目的初步掌握UML用例图的创建方法及其用例的描述。
二、实验要求1.结合工具StartUML,熟悉UML用例图的模型元素。
2.使用StartUML工具建模网上书店系统的用例图。
三、实验主要设备:HP6460b四、实验内容:根据下面给出的网上书店问题陈述,分析该系统总体需求,建模网上书店系统的用例图并提供一个主要用例的事件流文档。
网上书店陈述:书店经理:我们原本是一个传统的实体书店,顾客要买书都是亲自到书店里来的,这样挺不方便。
面且随着书店销售图书种类和数量的增加以及顾客的增长,尤其是大量顾客到书店选购图书,使得书店场地不足,工作人员也很忙碌。
其实,还有一点就是,有不少人进入书店后并不买书,只是查找一些资料。
有的甚至会在这呆上很长的时间直到把书免费看完。
这种行为,工作人员一般是不阻止的,结果最后这些被看过的书会因为有阅读过的痕迹而影响销售。
而且现在电子商务已经发展起来了,所以我们想到借助网络,让顾客通过网上书店购买图书。
这样我们书店可以省掉大量的场地维护和工作人员成本支出,同时计算机可以方便的检索图书信息,让顾客可以足不出户以更优惠的价格买到需要的书。
系统分析员:能谈谈您对网上书店的要求吗?书店经理:网上书店要能实现对外和对内的功能,对外是顾客能在网上书店订购图书,提交订单。
对内,书店工作人员能够通过网上书店及时的看到这些订单,并进行处理。
为了把书送到顾客手里,我们已经联系了快递公司,初步达成协议,由他们往返场客和书店之间把图书送到顾客手里。
书店管理员受理订单后,就会通知快递公司送货。
第1篇一、实验目的本次实验旨在通过设计与实现一个网络书城系统,掌握以下技能:1. 理解电子商务网站的基本架构和功能模块。
2. 掌握使用Java编程语言进行Web开发。
3. 熟悉SSM(Spring、SpringMVC、MyBatis)框架在Web开发中的应用。
4. 学习使用MySQL数据库进行数据存储和管理。
5. 提高团队协作能力和项目管理能力。
二、实验环境1. 开发工具:IntelliJ IDEA/Eclipse2. 服务器:Tomcat 9.03. 数据库:MySQL 5.74. 版本控制:Git三、系统需求分析网络书城系统主要面向广大读者,提供图书浏览、购买、评论、搜索等功能。
系统分为前台和后台两个部分。
前台功能模块:1. 首页:展示最新图书、热销图书、新品推荐等信息。
2. 商品分类:按图书类别展示图书信息。
3. 图书详情:展示图书详细信息,包括封面、简介、价格、评论等。
4. 购物车:用户可以将图书添加到购物车,进行结算。
5. 订单管理:用户可以查看订单状态、取消订单、申请退款等。
6. 个人中心:用户可以查看个人信息、修改密码、查看历史订单等。
7. 搜索:用户可以通过关键词搜索图书。
后台功能模块:1. 管理员登录:管理员登录系统进行管理。
2. 商品管理:管理员可以添加、修改、删除图书信息。
3. 订单管理:管理员可以查看、处理订单,包括发货、取消、退款等。
4. 用户管理:管理员可以查看、修改、删除用户信息。
5. 评论管理:管理员可以查看、删除用户评论。
四、系统设计1. 技术选型:采用SSM框架进行开发,数据库使用MySQL。
2. 系统架构:采用B/S架构,前端使用HTML、CSS、JavaScript等技术,后端使用Java编程语言。
3. 数据库设计:根据系统需求,设计图书、用户、订单、评论等数据表。
4. 功能模块设计:根据需求分析,将系统划分为多个功能模块,如首页模块、商品模块、购物车模块等。
本科实验报告课程名称:计算机网络______________实验项目:计算机网络__________实验地点:____________________________________ 专业班级:_______________ 学号: _______________ 学生姓名:______________________________指导教师:____________________________1. 实验准备:熟悉 UML建模环境2. 实验一用例图3. 实验二类图4. 实验三顺序图及通信图5. 实验四活动图、状态图、组件图及部署图实验一用例图一、实验目的初步掌握UML用例图的创建方法及其用例的描述。
二、实验要求1结合工具StartUML,熟悉UML用例图的模型元素。
2•使用StartUML工具建模网上书店系统的用例图。
三、实验主要设备:台式或笔记本计算机四、实验内容:根据下面给出的网上书店问题陈述,分析该系统总体需求,建模网上书店系统的用例图并提供一个主要用例的事件流文档。
网上书店陈述:书店经理:我们原本是一个传统的实体书店,顾客要买书都是亲自到书店里来的,这样挺不方便。
面且随着书店销售图书种类和数量的增加以及顾客的增长,尤其是大量顾客到书店选购图书,使得书店场地不足,工作人员也很忙碌。
其实,还有一点就是,有不少人进入书店后并不买书,只是查找一些资料。
有的甚至会在这呆上很长的时间直到把书免费看完。
这种行为,工作人员一般是不阻止的,结果最后这些被看过的书会因为有阅读过的痕迹而影响销售。
而且现在电子商务已经发展起来了,所以我们想到借助网络,让顾客通过网上书店购买图书。
这样我们书店可以省掉大量的场地维护和工作人员成本支出,同时计算机可以方便的检索图书信息,让顾客可以足不出户以更优惠的价格买到需要的书。
系统分析员:能谈谈您对网上书店的要求吗?书店经理:网上书店要能实现对外和对内的功能,对外是顾客能在网上书店订购图书,提交订单。
本科实验报告课程名称:系统分析与设计实验项目:《网上书店系统》实验实验地点:逸夫楼402专业班级:学号:学生姓名:指导教师:**2013年10月21、28日2013年11月4、11日目录1.实验准备:熟悉UML建模环境2.实验一用例图3.实验二类图4.实验三顺序图及通信图5.实验四活动图、状态图、组件图及部署图实验一用例图一、实验目的初步掌握UML用例图的创建方法及其用例的描述。
二、实验要求1.结合工具StartUML,熟悉UML用例图的模型元素。
2.使用StartUML工具建模网上书店系统的用例图。
三、实验主要设备:HP6460b四、实验内容:根据下面给出的网上书店问题陈述,分析该系统总体需求,建模网上书店系统的用例图并提供一个主要用例的事件流文档。
网上书店陈述:书店经理:我们原本是一个传统的实体书店,顾客要买书都是亲自到书店里来的,这样挺不方便。
面且随着书店销售图书种类和数量的增加以及顾客的增长,尤其是大量顾客到书店选购图书,使得书店场地不足,工作人员也很忙碌。
其实,还有一点就是,有不少人进入书店后并不买书,只是查找一些资料。
有的甚至会在这呆上很长的时间直到把书免费看完。
这种行为,工作人员一般是不阻止的,结果最后这些被看过的书会因为有阅读过的痕迹而影响销售。
而且现在电子商务已经发展起来了,所以我们想到借助网络,让顾客通过网上书店购买图书。
这样我们书店可以省掉大量的场地维护和工作人员成本支出,同时计算机可以方便的检索图书信息,让顾客可以足不出户以更优惠的价格买到需要的书。
系统分析员:能谈谈您对网上书店的要求吗?书店经理:网上书店要能实现对外和对内的功能,对外是顾客能在网上书店订购图书,提交订单。
对内,书店工作人员能够通过网上书店及时的看到这些订单,并进行处理。
为了把书送到顾客手里,我们已经联系了快递公司,初步达成协议,由他们往返场客和书店之间把图书送到顾客手里。
书店管理员受理订单后,就会通知快递公司送货。
软件建模与UML 实验报告网上图书销售系统学院:计算机学院专业班级:计科0903班姓名:李宏媛学号:0908030308日期:2012年12月5日网上图书销售系统一、实验目的与要求通过一个具体的、完整的建模系统实例,加深对UML的理解与掌握。
二、实验内容首先,对网上图书销售系统系统进行需求分析,然后,在此基础之上完成对该系统的建模工作。
三、实验步骤1:系统的总体功能需求网上图书销售系统是一个复杂的电子商务系统,它必须提供用户的接口以及用户登录并选择喜好的图书;同时还必须提供系统的管理接口以供管理员和一般的网站工作人员处理客户订单并维护网站正常运作。
系统总体功能需求框图如下所示。
(1)用户接口模块:用户接口是网站用户使用图书销售系统服务的入口,所有的在线用户都通过浏览器登网站,进行查询,订购操作。
此模块包括了用户信息维护,商品查询,订购商品和订单维护4个部分。
(2)管理员接口模块:管理员接口是系统提供给网站维护和管理人员的接口。
此模块包商品信息维护,内部员工信息维护,订单处理,销售情况查询,报表维护5个部分。
其中一般工作人员只有订单处理的权限,而管理员具有所有的管理权限。
(3)数据服务模块:数据服务是系统正常运行的基础,包括客户的查询,订单的保存;网站工作人员的订单处理;网站管理员的销售情况查询和分析。
2、系统的用例图确定参与者:在本系统的UML建模中,可以创建的参与者包括顾客,管理员,一般员工创建用例:根据业务流程,本系统的用例包括:订单处理,订单维护,订单状态查询,个人信息维护;订购;接收发货;库存查询;缺货拒绝;商品查询;商品信息维护;销售查询;员工信息维护;报表维护;订单增加;订单删除。
1)、创建用例图,管理员和员工的用例图如下所示2)、顾客的用例图,如下所示:3、系统的活动图顾客购买商品和管理员处理订单的活动图如图所示:4、系统中的类(1)参与者相关的类系统中和参与者相关的类的类图如下:(2)各类之间的关系类不是单独一个模块,各个类之间是存在联系。
一、需求分析互联网技术的飞速发展和广泛普及,对传统出版业(包括书店)都产生了深远的影响,相比于传统的大众媒体的信息滞后、成本高昂的特点,网络传播以其信息丰富、速度,陕捷且具有互动性而备受出版策划人的重视。
普通书店随着图书种类和数量的大量增加而迅速发展起来,特别是国外图书业巨头的介入,使得竞争异常激烈,网上书店正是在这种情况下出现的,并且以选择面大、价格便宜、交易方便、节省时间和精力等体现出其优势。
网上书店实际上是运行在Web服务器中的一个Web应用程序,它模拟一般的书店的经营模式,利用页面、脚本程序和服务器来实现网上书店的管理工作。
本系统主要由前台购书系统和后台管理系统构成。
框架图如下:前台系统后台系统后台系统主要功能包括:图书管理、订单管理、会员管理、用户管理、流言管理及月底结算等。
其中,图书管理包括管理书籍、添加新书、分类管理等功能。
后台系统功能如图所示二、系统建模1、用例图(1)启动Rational Rose 2003,在左边菜单栏中选择Use Case View右键,右键单击浏览器中的Use Case View图标,弹出快捷菜单,从中选择New|Use CaseDiagram命令。
右键单击此图标,在弹出的快捷菜单中选择Rename命令为新创建的用例图命名“网上书店用例图”。
(2)双击“网上书店用例图”图标,会出现用例图编辑工具栏和编辑区,左边是用例图的工具栏,右边是用例图的编辑区。
(3)用鼠标左键单击“网上书店用例图”工具栏中参与者的图标,并改名为“管理员”、“会员”“工作人员”、“游客”(4)单击“网上书店用例图”工具栏中newusecase的图标,并改名为各个参与者所对应的属性(5)单击“网上书店用例图”工具栏中箭头的图标,表示连接各个属性和参与者。
下面使用了用例图的方式表现了整个系统的所有功能。
用例名:登录(权限管理--管理员、工作人员、会员、游客)角色:管理员、工作人员、会员、游客目标:实现管理权限用例描述:用户登陆并进行相应的权限操作用例名:商品信息管理(销售及商品信息维护--管理员、订单--工作人员、浏览/查询--会员/游客)角色:管理员、工作人员、会员、游客目标:对商品销售、下订单及商品信息和库存进行录入、删除、浏览、查询、修改等基本操作用例描述:用户对图书信息进行和相应的权限操作用例名:查询(管理员对商品销售及相关信息的情况查询、员工对订单的库存信息的、会员和游客图书的相关信息的查询)角色:管理员、工作人员、会员、游客目标:管理员对商品销售及相关信息的情况查询、员工对订单的库存信息的查询、会员和游客对图书相关信息的查询用例描述:用户在相应的权限操作下对信息进行查询用例名:订单信息管理(订单信息管理--管理员;订单信息处理(接收订单并发货、拒绝订单、查询库存)--工作人员;订单信息处理(订购货品、订单增加、订单删除、订单信息查询)--会员)角色:管理员、工作人员、会员、游客目标:对订单信息进行维护和处理用例描述:用户在相应的权限操作下对订单信息进行管理或处理用例名:维护(商品信息维护、员工信息维护、报表维护---管理员;个人信息维护、订单维护--会员)角色:管理员、会员目标:管理员对商品信息维护、员工信息和报表进行维护操作,而会员对个人信息维护和订单信息维护用例描述:用户在相应的权限操作下对信息进行查询(1)管理员的用例图(2)工作人员用例图(3)会员、游客用例图2、类图根据系统需求可以识别系统中存在的对象。
实验报告一、实验题目编程实现“网上书店系统”二、题目分析1、需求分析要开发一个系统,首先要了解该系统到底想做什么,需要实现怎样的功能,这就是需求分析。
网上书店从大的需求方面看,就是要实现通过互联网能够进行书籍的购买及相关的管理等功能,大致需要提供下面的一系列功能:*浏览书籍(模糊查询)*选择需要购买的书籍*可以继续选择别的书籍,并且可以购买该书籍*选择了需要购买的书籍后,进行购买书籍操作*保存选中的图书和数量UML图:2、数据分析图书信息数据库购物车本次会话有效1、页面转移关系再次查询2、对象模型(1)界面对象(View)*查询页Search.jsp*图书目录页Directory.jsp*购物车页Cart.jsp*定单页Order.jsp(2)控制器(Control)*CtrlServlet 负责响应输入命令*包括:模糊查询key、查看购物车cart、结算order 、继续选书continue、再次查询search(3)业务模型*图书信息:BookBean 实体类的会话Bean*购物车信息:CartBean 会话Bean(1)图书信息(数据库表、查询结果)*书号ISBN char[24] 主键*书名Title char[64]*作者Author char[32]*出版社Press char[32]*价格Price double(2)购物车信息*书号ISBN char[24]*数量Number integer(3)共享数据*查询结果和选中的图书信息*作为session参数4、动态模型5、EJB接口设计(1)BookBean 管理图书信息(封装数据库)*find( string key )*根据关键字从数据库中查找出图书信息记录(数组)条件:书名、作者、出版社名中包含关键字get( string isbn )*根据书号,找出图书信息记录(2)CartBean 管理购物车信息(本次会话有效)*add( string isbn ) 添加记录*gest( ) 获得记录数组*set( string isbn, integer num ) 设置购买数量5、控制器(1)CtrlServlet 的输入*来自查询页page=“search”&key=关键字*来自图书目录页page=“directory”&submit=“cart”&choose=书号数组page=“directoty”&submit=“search”*来自购物车页page=“cart”&submit=“order”page=“cart”&submit=“continue”page=“cart”&submit=“search”(2)算法概要*模糊查询search按照key 从BookBean 查询图书,转交图书目录页*查看购物车将选定图书存入CartBean,转交购物车页*结算计算CartBean中的图书总价,从BookBean获得图书信息,连同地址,转交定单页*继续选书返回图书目录页*再次查询转向查询页*异常处理直接生成错误信息页面四、实现技术1、采用MVC 模式(1)JSP 实现页面视图View(2)Servlet 实现控制Control(3)EJB 实现业务模型Model2、交互关系(1)JSP 表单动作(form)⎝ CtrlServlet(2)Servlet 转发⎝ JSP 页面3、数据传输(1)Servlet 调用EJB 对象获得数据(2)Servlet 通过session 参数传递给JSP 页面五、实验源代码1、BooksOnline-ejb(1)Books①Books.java:import java.io.Serializable;import javax.persistence.Column;import javax.persistence.Entity;import javax.persistence.Id;dQueries;import dQuery;import javax.persistence.Table;@Entity@Table(name = "BOOKS")@NamedQueries({@NamedQuery(name = "Books.findByIsbn", query = "SELECT b FROM Booksb WHERE b.isbn = :isbn"), @NamedQuery(name = "Books.findByTitle", query = "SELECTb FROM Books b WHERE b.title = :title"), @NamedQuery(name = "Books.findByAuthor",query = "SELECT b FROM Books b WHERE b.author = :author"), @NamedQuery(name = "Books.findByPress", query = "SELECT b FROM Books b WHERE b.press = :press"), @NamedQuery(name = "Books.findByPrice", query = "SELECT b FROM Books b WHERE b.price = :price")})public class Books implements Serializable {private static final long serialVersionUID = 1L;@Id@Column(name = "ISBN", nullable = false)private String isbn;@Column(name = "TITLE")private String title;@Column(name = "AUTHOR")private String author;@Column(name = "PRESS")private String press;@Column(name = "PRICE")private Double price;public Books() {}public Books(String isbn) {this.isbn = isbn;}public String getIsbn() {return isbn;}public void setIsbn(String isbn) {this.isbn = isbn;}public String getTitle() {return title;}public void setTitle(String title) { this.title = title;}public String getAuthor() {return author;}public void setAuthor(String author) { this.author = author;}public String getPress() {return press;}public void setPress(String press) {this.press = press;}public Double getPrice() {return price;}public void setPrice(Double price) {this.price = price;}@Overridepublic int hashCode() {int hash = 0;hash += (isbn != null ? isbn.hashCode() : 0);return hash;}@Overridepublic boolean equals(Object object) {// TODO: Warning - this method won't work in the case the id fields are not setif (!(object instanceof Books)) {return false;}Books other = (Books) object;if ((this.isbn == null && other.isbn != null) || (this.isbn != null && !this.isbn.equals(other.isbn))) {return false;}return true;}@Overridepublic String toString() {return "Books.Books[isbn=" + isbn + "]";}}②BooksFacade.javaimport java.util.List;import java.util.ArrayList;import javax.ejb.Stateless;import javax.persistence.EntityManager;import javax.persistence.PersistenceContext;@Statelesspublic class BooksFacade implements BooksFacadeRemote {@PersistenceContextprivate EntityManager em;public void create(Books books) {em.persist(books);}public void edit(Books books) {em.merge(books);}public void remove(Books books) {em.remove(em.merge(books));}public Books find(Object id) {return em.find(Books.class, id);}public List<Books> findAll() {return em.createQuery("select object(o) from Books as o").getResultList(); }public ArrayList<Books> search(String key) {List<Books> all = this.findAll();if(all.isEmpty()) {return null;}ArrayList<Books> result = new ArrayList<Books>();for(Books current : all) {if(current.getTitle().toLowerCase().contains(key)||current.getAuthor().toLowerC ase().contains(key)||current.getPress().toLowerCase().contains(key)) {result.add(current);}}return result;}}③BooksFacadeRemote.javaimport java.util.List;import java.util.ArrayList;import javax.ejb.Remote;@Remotepublic interface BooksFacadeRemote {void create(Books books);(2)Cart①Cart.javaimport java.io.Serializable;public class Cart implements Serializable {private String isbn;private String title;private double price;private int number;public Cart(String isbn,String title,double price,int number) { this.isbn = isbn;this.title = title;this.price = price;this.number = number;}public String getIsbn() {return this.isbn;}public String getTitle() {return this.title;}public double getPrice() {return this.price;}public int getNumber() {return this.number;}public void setIsbn(String isbn) {this.isbn = isbn;}public void setTitle(String title) {this.title = title;}public void setPrice(double price) {this.price = price;}public void setNumber(int number) {this.number = number;}}②CartBean.javaimport javax.ejb.Stateful;import java.util.ArrayList;@Statefulpublic class CartBean implements CartRemote {private ArrayList<Cart> record;private boolean initialed = false;public void add(String isbn,String title,double price){ record.add(new Cart(isbn,title,price,1));}public void set(String isbn,int number){for(Cart current : record) {if(current.getIsbn().equals(isbn)) {current.setNumber(number);}}}public boolean exist(String isbn) {for(Cart current : record) {if(current.getIsbn().equals(isbn)) {return true;}}return false;}public ArrayList<Cart> get(){ArrayList<Cart> result = new ArrayList<Cart>();for(Cart current : record){ result.add(newCart(current.getIsbn(),current.getTitle(),current.getPrice() ,current.getNumber()));}return result;}public boolean initialed() {return this.initialed;}public void create(){record = new ArrayList<Cart>();initialed = true;}}void edit(Books books);void remove(Books books);Books find(Object id);List<Books> findAll();ArrayList<Books> search(String key);}③CartRemote.javaimport javax.ejb.Remote;import java.util.ArrayList;@Remotepublic interface CartRemote {public void add(String isbn,String name,double price);public void set(String isbn,int number);public boolean exist(String isbn);public ArrayList<Cart> get();public boolean initialed();public void create();}2、BooksOnline-warControlServlet.javaimport Books.BooksFacadeRemote;import Cart.CartRemote;import java.util.Enumeration;import java.io.IOException;import java.io.PrintWriter;import javax.ejb.EJB;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;public class ControlServlet extends HttpServlet {@EJBprivate CartRemote cartBean;@EJBprivate BooksFacadeRemote booksFacade;/*** Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.* @param request servlet request* @param response servlet response*/protected void processRequest(HttpServletRequest request,HttpServletResponse response)throws ServletException, IOException {response.setContentType("text/html;charset=UTF-8");request.setCharacterEncoding("UTF-8");PrintWriter out = response.getWriter();try {if(request.getParameter("page").equals("search")) {request.getSession().setAttribute("directory",booksFacade.search(request.getParameter("key").toLowerCase()));response.sendRedirect("Directory.jsp");}if(request.getParameter("page").equals("directory")&&request.getParameter("su bmit").equals("cart")) {if(!cartBean.initialed()) {cartBean.create();}Enumeration names = request.getParameterNames();while(names.hasMoreElements()) {String name = (String)names.nextElement();if(!name.equals("page")&&!name.equals("submit")) {if(!cartBean.exist(request.getParameter(name))) {cartBean.add(request.getParameter(name),booksFacade.find(request.getParameter (name)).getTitle(),booksFacade.find(request.getParameter(name)).getPrice()); }}}request.getSession().setAttribute("cart",cartBean.get());response.sendRedirect("Cart.jsp");}if(request.getParameter("page").equals("directory")&&request.getParameter("su bmit").equals("search")) {response.sendRedirect("Search.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("order")) {double sum = 0;Enumeration names = request.getParameterNames();while(names.hasMoreElements()) {String name = (String)names.nextElement();if(!name.equals("page")&&!name.equals("submit")&&!name.equals("address")) {cartBean.set(name,Integer.parseInt(request.getParameter(name)));sum +=booksFacade.find(name).getPrice()*Integer.parseInt(request.getParameter(name) );}}request.getSession().setAttribute("cart",cartBean.get());request.getSession().setAttribute("fee",sum);request.getSession().setAttribute("address",request.getParameter("address")); response.sendRedirect("Order.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("continue")) {response.sendRedirect("Directory.jsp");}if(request.getParameter("page").equals("cart")&&request.getParameter("submit" ).equals("search")) {response.sendRedirect("Search.jsp");}} finally {out.close();}}// <editor-fold defaultstate="collapsed" desc="HttpServlet 方法。
2011 —— 2012 学年第一学期信息技术学院《软件系统建模与UML》综合设计实验网上书店系统的UML建模班级2011级软件工程学号姓名卢** 张**任课教师日期2011年12月18日目录第1章系统需求 (2)第2章需求分析 (4)2.1 识别参与者 (4)2.2 识别用例 (5)2.3 用例的事件流描述 (8)第3章静态结构模型 (23)3.1 定义系统对象 (23)3.2 定义用户界面类 (23)3.3 建立类图 (23)第4章动态行为模型 (28)4.1 创建系统顺序图(协作图) (28)4.2 创建系统的状态图 (30)4.3 创建系统的活动图 (32)第5章数据库模型 (35)第6章物理模型 (36)6.1 创建系统组件图 (36)6.2 创建系统部署图 (37)第1章系统需求网上书店系统描述如下:在网上书店系统中,普通用户浏览主页面查看图书及详细信息,如想在本网站购买图书,需注册成为该网站会员,然后进行购买活动。
会员用户通过其注册的账号及密码登陆该系统,登陆该系统后可以对个人信息进行修改,包括密码的修改,可以添加所选书籍到购物车,删除购物车里的书籍,以及修改购物车内书籍的数量,确定购买后进去支付页面。
管理员登陆系统后,可以修改其登陆密码,维护员工信息,维护会员信息,以及系统维护。
管理会员信息主要是添加会员、删除会员以及修改会员信息。
管理员工信息要分为添加员工、删除员工以及修改员工信息。
系统的维护主要为系统更新。
对上述网上书店系统的描述进行分析,可以获得如下功能性需求:➢游客在网上书店系统注册个人信息,可以成为会员。
➢会员通过身份验证,登录到网上书店系统。
➢会员或游客可以浏览网上书店的图书。
➢会员可以查询修改个人资料,包括个人的基本信息、订单信息。
➢会员可以修改个人信息。
➢会员可以将要买的书籍添加到购物车,可以对购物车里书籍数量信息进行修改。
➢会员可以对所下订单进行提交。
➢会员可以进入付款界面进行结算。