1、此方法最主要的优点,在于它就是用户导向的,用户可以根据自己所对应的用例来不断细化自己的需求。此外,使用用例还可以方便地得到系统功能的测试用例。1、角色分析 分析的第一步就是定义用例,以描述系统的外部功能需求。用例分析包括阅读与分析需求说明,此时需要与系统的潜在用户进行讨论。根据上述需求,通过分析,网上订餐角色分为两大类:用户与系统管理员。2、用例分析在确认角色的基础上,确认用例。网上订餐系统中的用例有:用户管理、订单管理、登录系统、菜品信息管理等等。本系统的用户用例图如图2、2所示。进行的操作包括订餐服务、信息浏览、订单管理等。图2、2 订餐用户使用例图管理员分为两类:一类就是系统管理员用例图
2、如图2、3所示。管理员进行的操作(后台操作)包括用户管理,信息的浏览、添加、删除、修改等等。图2、3 系统管理员使用例图另一类管理员就是订餐管理人员,专门负责处理用户预约的订单,用例图如图2、4所示。图2、4 订餐管理员使用例图除了用用例图描述系统需求以外,以下用活动图对系统的主要例进行说明,更具体地描述该用例与角色的交互。1、用户登录图2、5 用户登录用户登录实现为本网站注册用户提供身份确认的功能,保证合法用户的应有权益。而且就是否登录也将决定用户能否订餐。用户登录的前置条件就是在登录前,用户必须完成“注册”。2、订餐服务图2、6 订餐服务在订餐服务用例中,每个用户都有个购物车,用户可以将自
3、己选定的菜品及其数量放入到购物车中,并且随时可以查瞧自己预定的菜品的数量与总价格。本用例开始前用户必须登录到系统中。如果用例成功,顾客可以浏览自己购物车中的信息并决定就是购买还就是删除。3.查瞧历史订单:图2、7 查瞧历史订单注册用户可以查瞧自己的历史订单,在历史订单中,可以浏览曾经订购过的菜品,对于已经送餐后的菜品,可以进行评分与信息反馈,不能重复评论,某个菜品在这里的评分会影响其在整个网站中的推荐指数。4、订单处理:图2、8 订单处理处理订单的过程就是订餐管理人员参与的,当前台有新的订单生成时,会自动在后台的现有订单列表中显示出来,订餐管理人员可以点击查瞧未处理的订单,根据实际情况进行处理
4、,或者删除不需要的订单记录。3 数据库设计数据库设计一般分为六个阶段。之前已经完成需求分析,现在需要进行概念设计、逻辑设计与物理设计,本章将叙述这三个阶段的设计思路与设计过程。3、1 数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新与查询,这就要求数据库结构能充分满足各种信息的输入与输出。收集基本数据、数据结构以及数据处理流程,组成一份详细的数据字典,为具体设计铺垫13。通过系统功能分析,针对网上订餐需求,总结为:1.分为一般用户与管理员用户,只有用户身份才能进行前台订餐,只有管理员身份才能进行后台管理;2.订单分成单张订单详情与总订单表,一张订单中含有多个订单明细;3.每一道菜
5、品都从属于一种类型。4.一个用户可以订购多个菜品。5.一个用户对应多张订单表。3、2 系统概要设计3、2、2 订餐系统E-R图E-R图为实体-联系图,提供了表示实体型、属性与联系的方法,用来描述现实世界的概念模型14。构成E-R图的基本要素就是实体型、属性与联系,其表示方法为,实体型:用矩形表示,矩形框内写明实体名;属性:用椭圆形表示,并用无向边将其与相应的实体连接起来;多值属性由双线连接;主属性名称下加下划线;联系:用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型,系统E-R图如图3、1所示。图3、1订餐系统E-R图以下就是主要数据表的E-R图:
6、图3、2 用户E-R图图3、3 订单条目E-R图图3、5 订单E-R图图3、6 菜单E-R图3、3 逻辑设计3、3、1 逻辑设计概述数据库的逻辑设计就是概念模型向逻辑模型的转化,一般步骤就是先将概念结构转化为关系模型,然后将转化来的关系模型向特定DBMS支持下的数据模型转换,最后对数据模型进行优化3、3、2 数据表的设计数据库的主要表详细结构如下:表3、1 订单条目表orderinfoFieldTypeNullKeyCommentIDIntNoYes标识递增订单ID外键,对应于订单中的“订单ID”菜名Nchar(10)默认值就是“待送餐”数量单价Float评分默认为“0分”Back订单顾客订餐
7、的信息反馈表3、2 订单表orderlist用户ID外键,对应于用户表中的“用户ID”订单状态送餐地址Nvarchar(50)备注Nvarchar(MAX)订餐姓名订餐时间Datetime金额总价表3、3 菜单表menucID价格菜介绍Nvarchar(500)Scid菜系id菜图片Nvarchar(1000)存储的就是图片的路径推荐表3、4 菜分类表cuisine种类菜系名系列介绍表3、5 用户表useruName登录名uPwd登录密码真实姓名性别联系电话StateID就是否有效,默认值就是“未审核”4、2 核心功能实现4、2、1 用户自定义控件说明1、 listInfo、ascx该控件就是
8、用于在首页中显示不同菜系的介绍信息的,在控件中定义了一个Scid属性,在每次引用控件时,通过设置Scid的值来确定控件该显示那个菜系的信息。2、 Nav、ascx 该控件作为导航在页面中引用的,控件的样式与超链接都已经设置好,在需要导航的页面直接引用即可。3、 PagingBar、ascx该控件就是分页显示控件,在控件中定义了三个属性:CurrentPage,表示当前显示的就是第几页,默认值就是”1”;PageSize,表示一页显示几条数据,默认值为”10”;RecordCount,就是显示信息的总条数,一般就是从数据库绑定出的数据总条数来设定其值的。4、 scoer、ascx该控件用于显示菜
9、单信息中的推荐指数,控件中定义了一个s属性,通过设定s的值,便可以显示出相应的推荐指数。4、2、2 信息显示菜单信息,养生咨询,留言版等信息的显示就是通过绑定数据库中相应表单中数据得到的。当查瞧其中一项的具体信息时,就是通过网页间传递的参数确定的,一般情况下,传递的参数就是数据表中的主键值,这样使得信息有确定性。在菜单表的显示中,网页间传递的参数就是数据库中菜单表的主键cID,先显示之前,通Request、QueryString“cID”获得主键值后,再从数据库中绑定出相信菜名,价格与介绍信息,并在页面中显示出来。养生咨询,留言板等的信息显示也就是这个原理。只就是绑定数据的控件不同,得到的显示
10、效果不尽相同。4、2、3推荐指数推荐指数就是菜单显示信息中的一个就是非常重要意义的信息,其在一定程度上说明菜品的受欢迎程度,可以在顾客选购餐品时提供一个参考建议。上面的内容中已经提到推荐指数的现实就是通过设置scoer、ascx控件的s属性。s属性的值就是根据每个订餐用户用餐后对菜品的评分动态生成与改变的,该信息没有专门存储于数据库中。图4、14就是获取s的值的程序流程图图4、14 推荐指数显示4、2、4 分页显示算法由于网页的布局有限,数据库中的大量信息无法再一张网页上全部显示出来,运用分页显示的技术使得信息按照需要分页显示出来,并且显示效果更加清晰。对于分页显示,在上述内容提到了分页控件P
11、agingBar、ascx,在需要显示的页面引用这个控件,就可以进行分页显示。以下就是分页显示实现的算法:/设置分页控件(用到变量: 第几页 每页多少条数据 数据条数) int _currentPage; /当前在第几页int _pageSize = 10; /一页显示的记录数=10int RecordCount /数据条数总共的页数= RecordCount/_pageSize取得待显示页码:获取网页中传递的p参数,默认当前显示页,既p=1;用urlParameter保存网页中传递处p以外的其她参数;设置超链接按钮:if当前不就是第一页,设置第一页的链接地址与上一页的链接地址if 当前不就是
12、最后一页,设置下一页与未页的链接地址4、2、5 购物车购物车模拟了现实生活中购物的情景,在用户进行订餐时,系统会为用户自动生成一个虚拟的购物车。用户可以往购物车里添加菜品,也可以查瞧购物车,删除其中不需要的菜品。最后在购物车中填写好订单信息,就可以成功的提交订单。1、 将选定的菜品添加到购物车的流程如下:图4、15 购物车的实现2、 查瞧购物车的实现图4、16 查瞧购物车3、 删除数据 购物车列表中的每一行数据后都有“删除”按钮,点击后删除相应的一行数据。此时Session“car”的值应该相应的改变,并重新绑定显示。4、 向数据库填充数据 当用户提交订单时,需要将购物车中数据填入数据库中进行保存。遍历car中的每一行数据,使之一行一行的插入到数据库中。 以上就是“购物车”工作的全部流程,在每次订单提交后,car中的数据将全部清除。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1