资源描述
软件工程A 结构化分析与设计 软件工程A 大作业校园订餐系统结构化分析与设计学 院: 理学院 专 业:信息与计算科学 组 长: 组 员: 指导教师:信息学院 巢进波提交日期: 2015-01-05 成绩评定表项目名称校园订餐系统小组成绩指导教师评语个人成绩评定表姓名学号组内排名本人签字个人成绩12345任务分配说明在平时的每一次小作业中我们的分配如下:姓名问题定义可行性分析需求分析总体设计详细设计共同讨论并进行问题性质和规模的总体把握可行性分析的总体把握对需求分析进行分析并总结概括对总体设计进行分工并总结概括设计数据流图以及PAD图共同讨论软件可以实现的功能并分析开发背景进行经济可行性的分析建立状态转化图对层次图进行分析并概括设计数据库共同讨论软件可以实现的功能并记录总结进行系统工作量的分析对系统的综合要求进行分析对IPO图进行分析并概括对各模块进行详细介绍共同讨论软件可以实现的功能进行经济可行性和技术可行性的分析建立数据字典对层次图分析并画图对各模块进行详细介绍共同讨论软件可以实现的功能进行操作设备的分析建立数据流图和E-R图对IPO图进行分析并画图对各模块进行详细介绍我们小组在每次的作业中都共同讨论,具体编写文档工作分配给各位同学,以上是初步完成的作业中的分配,在老师给了反馈之后又重新给各个同学分配了各自的任务,让大家对每一部分以及整体思路都有详细的了解,故新的分配任务如下:学生一:整体的把握、任务的分配、数据流图(总、分)的定义及画图、文档的排版学生二:对系统每部分状态的把握、状态转换图的重新定义以及画图学生三:对整体数据对象进行分析、定义数据字典以及物理结构设计学生四:对关系模式进行准确把握、得出E-R图并转换为关系模式学生五:对层次功能进行分析、画出层次图、并设计数据库目 录一、问题定义11.1 开发背景11.2 问题定义1二、可行性分析32.1 技术可行性32.2 操作可行性32.3 经济可行性32.4 时间设备可行性32.5 系统工作量4三、需求分析53.1 数据分析53.1.1 数据采集53.1.2 数据字典53.1.3 数据模型E-R图73.2 功能需求83.2.1 细化的数据流图83.2.2 行为模型状态转换图93.3 性能需求103.4 运行需求113.5 其他需求11四、总体设计124.1 系统体系结构设计124.1.1 关系模式的设计124.1.2 层次图124.2 软件结构设计124.3 数据库设计13五、详细设计165.1 人机界面设计165.2 数据库接口设计195.1.1 用户接口195.1.2 内部接口195.3 PAD图20六、参考文献21七、总结22V一、问题定义1.1开发背景目前,校园内学生数量多,食堂空间又比较小。而中午,晚上学生用餐时间比较集中,造成用餐时间段拥挤现象严重。同时,学生等待时间过长,造成了不必要的时间浪费。虽然食堂与一些订餐软件合作,提供送餐服务,学生们期待通过软件订餐,不用去食堂,减少等待时间。但是通过实践发现,用订餐软件订餐,订单处理不及时,送餐速度慢,造成了更大的不便。基于目前的状况,我们小组对订餐软件进行改善,取消了送餐功能,设置了分时间段订单,并设置每一时间段订单上限,并加入了提醒功能,学生收到提示可立即到食堂自取,将集中买饭时间分散开,减少了等待时间,节省了学生们宝贵的学习时间。1.2问题定义阐述本项目要解决的问题是什么。也可以包含本项目不做什么,以明确界定要解决的问题。写清总体目标和工程的规模,然后从不同角度具体展开。例如:可以从前台和后台两个方面分功能模块阐述,也可以从满足不同用户的多种需求的角度阐述。简明扼要,不求大而全,要突出重点和特色。工作量以人均一个核心功能为基准,鼓励有余力的小组增加完善性功能。解决放学后同学买饭集中等待时间过长造成时间浪费的问题。能够合理的安排同学们的吃饭时间,提高食堂效率,让每个人都能愉快的吃好每顿饭。 针对饿了么软件在实际使用中遇到的问题进行了改进。本软件的创新点:分时段订餐并设置了饭菜订单数量实时更新显示,以便用户能够有更多的订餐选择;对每个同学的消费信息进行记录并生成信誉评价;订单确认后系统提醒,同学及时自主取餐减轻卖家物流压力。 本软件前台后台各分为四个模块,具体内容如下: 前台: 1.用户信息模块:用户主要针对学生。学生以学号注册,实现每人一个账号,每个人的信息中都存有一个信誉度,若信誉度达到下线则取消其订餐资格,每个人订餐之前都需登录,并可以修改信息。另外卖家也可以申请账号,但与学生不同,卖家可以对菜单进行增删改查等功能。 2.菜单信息模块:用户能够在软件平台上进行对商品的浏览,查询,选择,并且每个商品都会有各个时间段已定餐数量以及订餐数量上限的显示。 3.订单模块:买家在浏览完毕后选择好商品提交订单,在所选做餐时间段以前也能取消订单。卖家接收订单,对订单信息进行处理,确认订单后对学生进行系统提醒。 4.评价模块:完成订单后,用户可以对消费的商品进行评价,提交后卖家能对评价信息进行回复,实现买家卖家的在线沟通。 后台: 1.用户信息管理模块:管理员能实现对用户信息的查询,并能对低信誉学生信息删除,拉黑;对于新增或者放弃营业的卖家进行增加和删除。 2.菜单信息管理模块:增加,修改,删除,查询商家的菜单信息。对于一个月内没有交易的菜品进行删除,以减轻系统的不必要的空间。 3.订单管理模块:对订单进行查询,管理。4.评价管理模块:管理员能对不文明的评价信息进行屏蔽。二、 可行性分析2.1技术可行性 数据库技术在计算机软件领域研究中一项非常重要的主题,产于60年代,40多年来数据库技术得到了迅速发展,并已形成较为完整的理论系统和一大批使用系统。许多程序开发工具如VB,Java, Microsoft Visual Studio 6.0等都支持面向对象的程序开发。数据库我们小组打算使用数据库老师课设中要求用到的SQL server 2005作为后台数据库,因为数据库的课程设计在本门课程设计之前,所以后台数据库方面的技术是没问题的;开发语言使用Visual Studio C+;架构定为C/S。目前这个技术以及软件是可以实现的,我们小组会尽力运用我们所学到的知识,在课设时间里多学、多练、多开发,争取将这个系统最基本的功能实现。2.2经济可行性经济可行性研究是对系统投入使用后带来的经济效益进行评估,也包括对系统的投资预算。学校食堂空间较小,买饭高峰期食堂拥堵严重,学生等待时间较长。基于这一现象,本研究小组设计了这一网上订餐系统,学生可根据需要自由选择取餐时间段,大大节省了学生们宝贵的学习时间。相对于之前的各种网上订餐系统,本小组设计的系统将送餐环节改为自取,节约了人力,物力,财力,同时减少了学生等待的时间,提高了学生买饭和食堂卖饭的效率,且开发成本较低,所以本系统在经济上是可行的。2.3操作可行性本系统实现了学生与数据库的交互,界面简单友好,操作方便。系统运行后,学生只需简单的点击操作即可选择自己想要购买的饭菜以及对饭菜的相关要求和对取餐时间段的要求,不必关心系统内部结构及运行方式。食堂窗口方面只需根据学生的要求做出相应饭菜并提醒学生按时取餐即可。用餐结束后学生可输入自己对饭菜及食堂的评价,为其他学生购买饭菜提供宝贵的经验。管理者只需根据学生的信用情况选择是否屏蔽该学生,学生信用是基于订餐不取的现象进行统计,若超过三次屏蔽该学生,取消其订餐资格,并根据学生评价所使用的语言选择是否屏蔽该条评价即可。综上所述,本系统操作简单易行,在操作上试可行的。2.4时间、设备可能性本小组共5人,有两周的充足时间,共有计算机设备5台,且小组成员均有C+学习基础,个别成员有JAVA等学习基础。本小组还可利用互联网查询相关信息或向相关专业教师咨询。本小组成员对于学生订餐系统流程熟悉且了解广大学生需求,定会满足广大学生对于缩短买饭等待时间的要求。以上这些都为本系统的成功开发提供了极大的可能。2.5系统工作量本小组预计在两周内完成软件相关设计以及软件规格说明书。总体设计阶段要定义各模块的数据传递关系,设计软件的编码方案、文件存储策略、输入输出格式,以及硬件和系统软件配置,最后编制概要设计说明书。总体设计过程可分为两个主要阶段:功能设计,确定网上订餐系统的实现方案;结构设计,确定该软件的结构。功能设计是在需求分析的基础上进行的。结构设计,是将整个系统不同的功能和层次分为一个功能简单明确且相对独立的部分。每个模块实现系统的一项具体功能自顶向下,逐步细化。结构设计是确定程序由哪些模块组成以及这些模块之间的关系。本小组成员有扎实的编程基础,为程序的完成和实现提供了可能性。三、需求分析3.1 数据分析3.1.1 数据采集本系统中所有数据都来自于学生和卖家所提供的基本信息,包括学生基本信息,菜单信息、下订单时所生成的订单信息,以及最后生成的评论信息,以上信息均可靠真实。3.1.2 数据字典(一) 数据存储1.菜单信息 含义说明:卖家根据自己出售的菜品制作的包含各种饭菜的信息 组成:菜单编号,菜品名称,价格,卖家窗口编号,菜品销售最大量。2.用户信息: 组成:用户id,用户密码,电话,卖家窗口编号,卖家信用3.订单信息 含义说明:指用户提交的详细的订单信息 组成:订单编号,下订单时间,买家电话,做餐时间段,订单状态。4.评论信息 含义说明:买家收到饭菜后对饭菜做出的评价 组成:评价内容。二 数据处理1.处理订单 含义说明:卖家在收到订单后对订单进行处理 输入:菜谱 输出:订单信息 处理:卖家根据订单做出相应的饭菜2. 系统提醒 含义说明:卖家在做好饭菜后系统会提醒买家到食堂取走饭菜 输入:订单信息 输出:提醒信息 处理:系统提醒买家三 数据项1.名字:用户id 描述:每个用户注册时的唯一注册号即学生号 定义:用户id=10字符10 位置:用户信息2.名字:用户密码 描述:用户在使用登陆时所需要输入的账号密码 定义:用户密码=10字符10 位置:用户信息3.名字:订单状态 描述:订单生命周期的各个阶段,用于系统的流程控制的判定。用户提交订单后,等待卖家确认;卖家确认后,不能取消订单;卖家做好饭后通知取餐;“已取餐”状态表示该订单完成;用户累计有3次未取餐记录,则设置用户状态为“黑名单成员”。 定义:订单状态=待确认|已确认|已取消|已通知取餐|已取餐|未取餐 位置:订单信息4 .名字:订单编号 描述:订单在系统中的唯一标识符 定义:订单编号=16字符16位置:订单信息 3.1.3 数据模型E-R图nmmnnmm地址姓名手机号处理卖家系统提示管理学生订单菜品生成包含用餐时间段 订单状态操作时间订单编号编号价格图片菜名订购上限供应时间段用户id姓名 电话买家信用评价mnmnn3.2 功能需求3.2.1 细化的数据流图图1 总数据流图订单处理1菜单信息评论信息菜单处理信息订单信息订单信息菜单信息接收订单信息卖家菜单信息评论信息评论信息卖家评论处理3需求订单处理2订单信息学生拉黑信息学生信息管理4用户信息用户信息图2 菜单处理取消订单信息查询信息菜单信息菜单信息菜单信息修改信息卖家11上传菜单12查询菜单13取消菜单14修改菜单菜单信息订单信息菜单信息学生下订单2.1卖家处理订单2.2菜单信息取消订单2.3订单信息系统提醒2.4学生需求订单信息取消订单信息订单信息菜谱订单信息提醒信息图3 订单处理回复信息回答订单信息学生评价3.1评论信息回复3.2卖家订单信息感觉评价信息图4 评论处理查询软件关闭状态进入登录界面显示登陆对话框进入注册界面显示需填写的注册信息显示注册成功查询1|2|3|4|显示菜品|评价|订单|用户信息在线等待用户命令更新1|2|3|4|显示菜品|评价|订单|用户信息退出显示正在关闭输入注册信息输入用户名、密码、验证码更新退出退出退出退出运行软件3.2.2 行为模型-状态转换图3.3 性能需求时间特性要求:所有查询操作响应时间一般不超过5秒,大型信息,如菜品信息则应该在15秒内显示,或提示相关出错信息。所有提交数据一般在3秒内响应,及时更新每个时间段已下单数量。扩展性:本应用可以根据现实的变化以及学生或者卖家的需求及时改变,适应性灵活性好,能较好地适应二者的需求变化。其他性能需求:本应用安全性好,对于学生以及卖家注册的信息进行加密处理,本应用还具有易操作性,可维护性。对应用的各个功能模块以分级菜单形式给出。所有下订单,确认订单,取消订单等操作以按钮的形式给出,且名称一律为“下订单”、“确认订单”、“取消订单”等易于理解的形式。根据宿舍管理统计,每个宿舍大概容纳2000人,西校区九组团,十组团和十一组团基本都在燕园餐厅买饭,共计6000人,中午和晚上买饭集中,因此我们预计正常情况下支持2000以上的并行操作能力,下课高峰期学生要进行集中下订单和查询应支持5000以上并行处理能力。3.4 运行需求本软件对于出错情况应该及时显示出错信息,比如“此时间段订单数量已达上限”,“此学号(手机号)已注册,请登录”等信息。饭菜的价格会显示在价格栏中,已有订单的数量会显示在已下订单栏中。用户用电脑或手机打开软件即可根据需要选择自己想要的饭菜,饭菜做好后卖家在系统确认即可发送短信给学生到食堂取餐。3.5 其他需求本软件对于并行处理进行了具体的分析,不会造成系统崩溃以至于学生订单丢失的情况,订单情况也是及时更新,不会造成学生看到的订单数量错误导致订单不成功的现象,因此此软件具有较高的可靠性和可用性。本系统是一个针对学校食堂和学生使用的订餐系统,所以系统容量不需要过大,以免浪费资源。本系统使用的编程语言包括C+,java等。为了方便学生选择饭菜,本系统界面简单友好,使学生能够快速找到想要的饭菜。本系统无需分析各个食堂窗口的销量以及食堂的进货渠道。本系统对于网上支付功能未提及,可能在将来会完善着一部分。四、总体设计4.1系统体系结构设计4.1.1关系模式的设计数据库关系模式主要有以下内容:菜品评价信息(评价编号,买家账号,菜品编号,订单编号,评级,评价内容,发布时间)卖家评价信息(信息编号,评价内容,评价时间)卖家信息(账号,密码,联系电话,窗口编号)买家信息(账号,密码,联系电话,信誉度)菜单信息(菜单编号,名称,价格,窗口编号,订单上限,供应时间段,图片)订单信息(订单编号,订单时间,买家账号,卖家账号,菜单编号,时间段选取,订单状态)4.1.2层次图4.2软件结构设计卖家信息买家信息添加校验更新账号登陆更新后的账号信息卖家信息买家信息添加校验更新账号登陆更新后的账号信息 IPO图4.3 数据库设计卖家信息表字段名称字段类型长度备注描述Sname字符型10主键、非空卖家账号Spassword字符型10非空卖家密码Sphone字符型11非空卖家电话Wnum字符型5非空卖家窗口编号买家信息表字段名称字段类型长度备注描述Bname字符型10主键、非空买家账号Bpassword字符型10非空买家密码Bphone字符型11非空买家电话Xinyu数值型10卖家信用菜单信息表字段名称字段类型长度备注描述Vnum字符型8主键、非空菜单编号Vname字符型10非空菜品名称Price数值型3非空价格Wnum字符型5非空卖家窗口编号Shangxian数值型10非空菜品销售最大量订单信息表字段名称字段类型长度备注描述Dnum数值型10主键、非空订单编号Time日期型10非空下订单时间Bphone字符型11非空买家电话Dtime日期型12非空做餐时间段Zhuangtai字符型6非空订单状态菜品评价信息表字段名称字段类型长度备注描述Evnum数值型10主键、非空评价编号Bname字符型10非空买家账号Vnum字符型8非空菜单编号Ftime日期型12非空发布时期Content字符型50非空评价内容Dnum数值型10非空订单编号level数值型4非空评级卖家评价信息表字段名称字段类型长度备注描述MEvnum字符型10主键、非空评价编号MContent字符型10非空评价内容PJtime日期型13非空评价时间五、详细设计5.1 人机界面设计(描述)模块的详细设计描述:买家模块:买家点击进入买家模块后,在屏幕上显示注册页面窗口,注册页面窗口包括用户名,学号,密码,确认密码选项。完成注册后进入登录页面窗口登录窗口中包括用户名,密码,验证码,登录按钮,输入用户名,密码和验证码,点击登录按钮后系统验证后即可登录。如果输入用户名错误系统提示用户名不存在,如果输入的密码或者是验证码不正确系统也有相应的提示,分别为密码不正确,验证码不正确。正确登录后主页上有修改信息选项,点击修改信息按钮后,进入修改信息页面窗口,修改信息页面窗口包括修改用户名,修改密码选项和确认修改按钮。评价模块:用买家进入评价模块,评价模块窗口有菜品信息选项以及留言板和确定按钮。用户在留言板上输入要评价的信息后点击确认即可。卖家就如评价模块,评价模块窗口有菜品信息,相应的买家评价,回复窗口和确认按钮,卖家在回复窗口输入要回复的内容后点击确认即完成回复评价。卖家模块:打开系统界面后卖家进入卖家界面,显示出注册,登陆和修改信息三个选项,未注册的卖家点击注册选项进入注册界面进行信息的填写和注册。已经注册的卖家点击登陆选项,输入登陆信息,若该账号未注册则提示账号不存在,若密码输入有误则会提示密码错误并要求卖家重新输入密码。若账号密码均正确则卖家成功登陆系统。如果卖家需要修改菜单或者营业时间等信息,则点击修改信息进入修改信息界面,进入后对需要修改的信息进行修改,确认无误后提交信息即可完成修改。菜单模块:菜单模块包括菜单的上传,修改和删除,卖家登陆后可以进行相关操作。如果卖家有了新的饭菜,可以选择上传选项上传这一新的饭菜信息。如果卖家有饭菜的口味、价格等相关信息需要修改,则选择修改选项修改该饭菜信息。如果卖家已经停止某一种饭菜的制作,想要删除这个饭菜信息,则选择删除选项删除该饭菜的信息即可。订单模块:订单模块包括添加,查询,取消,确认。买家登陆后可点击菜品进入订单模块对要购买的菜品下订单。当买家不想再购买已经添加而未确认的订单时,可以在订单模块中取消,这样订单就不会生效。同时买家在订单模块中可以查询以往的订单信息。卖家登陆后在订单模块可以查看所有属于他的订单信息,对未确认的订单信息进行确认。同时,当卖家完成了菜品的制作后通过系统提醒买家及时来取餐。总系统流程图我的订单界面订单管理界面菜品信息管理界面5.2 数据库接口设计5.2.1用户接口用户通过界面接口实现参数的输入,进入相应的界面后输入提示的信息即可产生相应的任务。 5.2.2 内部接口顶层模块二级模块接口数据模块底层数据操作模块取出记录集,执行SQL语句用户操作模块对应数据库相关表操作界面模块界面模块生成任务缓冲区模块生成批处理5.3 PAD图六、参考文献1.张海藩. 软件工程导论(第五版).清华大学出版社. 20092.王珊、萨师煊.数据库系统概论(第四版).高等教育出版社.20073.李涛等.visual C+ + SQL Server数据库开发与实例.清华大学出版社.20064.李春葆等.数据库原理与应用基于SQL Server2005.清华大学出版社.20095.白尚旺等.PowerDesigner软件工程技术.电子工业出版社.2004七、总结7.1 系统的特色及创新之处本小组开发制作的校园订餐系统有许多特色以及创新之处。首先,本小组开发的校园订餐系统致力于解决学生买饭等待时间过长的问题,学生可以根据需要选择时间段订餐以及取餐,大大节省了学生们的时间,提高了学生们的效率。而且本系统把现有的一些订餐软件中的送餐项改为自取,避免了送餐人员因懈怠等原因造成的学生等待时间过长的问题。本系统还增加了用户对饭菜的评价功能以及用户的信用,学生可根据其他同学对该饭菜的评价觉得是否选择此饭菜,如果买家在有一定次数的未取餐行为,则会被视为信用低,系统会拒绝次用户再次注册活下单,从而减少了食堂窗口方面的损失,有助于增加食堂窗口的收入,提高食堂的工作效率,构建和谐的买卖环境。7.2 心得体会通过本次课程设计,我们小组成员学到了很多东西。例如对于一些课本上原本不清晰的概念或者运用不熟练的方法,通过在课程设计过程中的不断翻看或运用,使得我们对这些知识掌握的更加牢固,对于一些方法运用的更加熟练。同时,我们也通过这次课程设计发现了自身的一些不足之处,发现了我们与那些真正的程序设计员的差距,从而督促我们更加努力的学习,使得我们在以后的学习之路上有更大的动力。通过这次课程设计,我们小组成员的配合更加默契,在老师的指导,组长的安排,全体组员的共同努力下,我们攻克了一个又一个难题,在提高了我们自身能力的同时也使我们更家自信,组内成员更加团结。在这次课程设计中,我们都成长了很多。22
展开阅读全文