美食分享App需求分析1.引言俗话说民以食为天,自古以来人们的生活就与美食紧密相连。我们小组认为,随着移动互联网时代的到来,手机菜谱类App行业最具潜力成为未来市场上的一匹多金黑马。美食行业在市场的地位都是永摧不倒。而且如今的菜谱行业,不仅仅局限于向消费者传递一些美食制作的方法,在移动互联网时代的菜谱行业也带来了一种新的生活方式和健康理念。所以,美食菜谱类APP占居消费市场与“吃”相关的入口,拥有巨大的想象空间,发展前景也是光明而又乐观的。1.1.编写目的(1)本需求分析说明书是为了开发《美食分享App》而编写的,主要面向分析员、程序员、测试员和最终用户,使之能更好地理解系统功能以及实现系统。(2)本说明书不仅是整个软件开发的依据,对以后的维护性工作也起着指导性的作用,同时也是测试计划和用户手册的编写依据。1.2项目背景(1)应用软件名称:美食分享APP(2)任务提出者:陈绍文,王朋,徐秀菊(3)用户:广大人民群众(4)实现:信计研发小组(5)构建平台:android平台,其数据库构建在SQLServer2005上,并可实现权限限制性兼容,与其他手机应用软件并不冲突。1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料(1)软件工程清华大学出版社(2)美食社区网站的设计与实现电子科技大学出版社(3)android开发案例驱动教程清华大学出版社(4)面向美食网站的搜索及点评与图片去重模块的设计与实现哈尔滨工业大学出版社2.任务概述2.1目标本App旨在针对美食爱好者以及需要相关信息服务的网民建设以满足客户基本需求(菜谱查询,获得饮食健康资讯)为基础,提升用户体验(增加互动性和趣味性)为目标的新型享型美食菜谱分享。用户可以通过该App查看菜谱,创建菜谱,浏览资讯,发表评论,分享经验心得,进行好友分享以及讨论区进行交流讨论。该应用软件管理员可通过以发布信息,管理(修改,删除和增加)菜谱,管理讨论区对该APP的日常运营进行管理和维护。2.2运行环境(1)处理器型号及内存容量:CY1.7GHZ,内存1g;(2)外存容量、联机或脱机、媒体及其存储格式,设备的型号及数量:80G硬盘即可;(3)输入及输出设备的型号和数量,联机或脱机;(4)数据通信设备的型号和数量;(5)功能键及其他专用硬件;2.3条件与限制(1)条件:手机方面具备android4.0以上系统,服务器端在win732位(2)限制:操作系统限制:操作系统android4.0以上软件限制:应安装杀毒软件,防止病毒干扰3.数据描述3.1数据需求(1)用户信息(用户id—主键,用户名,头像,用户类型,密码,个性签名,性别,出生日期,职业,家乡,现居地,个人简介)(2)美食信息(美食id—主键,用户id,美食名称,美食图片,美食简介,历史由来,备注)(3)美食用料(美食id,用料id—主键,菜名,分量)(4)美食做法(美食id,步骤id,具体做法,图片)(5)美食种类(美食id,种类id,种类名称)(6)美食地域(美食id,地域id,国籍,省,市)(7)美食推荐(美食id,用户id,推荐时间)(8)收藏表(美食id,用户id,收藏时间)(9)美食留言(美食id,用户id,留言)(10)主题表(用户id,主题id,内容,发表时间)(11)主题回复表(用户id,回复id,主题id,内容,回复时间)3.2软件系统的数据流程和处理流程(1)数据对象的E-R图,如下图1-1(2)数据流图3.3数据库介绍(1)服务器程序在管理员与用户进行各种操作(创建,收藏,修改,删除,评论菜谱,删除,创建,评论主题,查看,删除用户)时需要对数据库进行数据提交,即对数据库进行查询与修改:在上面的操作过程中都需要对数据库中的所有表,进行联合查询、修改。(2)物理数据结构主要用于各模块之间函数的信息传递。(3)接口传递的信息是用数据结构封装了的数据,以参数传递或返回值的形式在各模块间进行传输。(4)对于出错信息要返回出错提示给用户,并提供出错信息的处理方法以保证软件运行的可维护性。3.4数据管理能力要求根据市场对美食的需求以及团队的业务能力,该软件包含了各种家常美食以及全国各地特色美食菜谱的分享,同时美食好友之间可以互相分享烹饪经验与心得,因此估计用户量比较大,对数据的处理量也处于中等水平,对于团队来说也是一个考验。3.5故障处理能力软件的操作主要是对数据库的管理和维护,其中发生的故障也是针对数据库的,基于数据库有日志文件,可以很方便的修复;而另外方面的故障是在android开发主要是服务器处理多线程的问题,当有多个用户访问服务器时,由于目前开发受限,服务器可能会出现无响应等行为,因此,对该方面需要做到很好的处理。3.6其他专门要求(1)App设计与布局问题。因为该应用软件需要给用户提供大量的信息服务,所以在设计的过程中需要极其关注页面分割和模块设计的合理性。此外,界面的色彩搭配以及设计需要满足分享型菜谱类App的要求。(2)数据分类问题。由于该App需要对大量的信息和数据进行分类,如按照食材对菜谱进行分类,按照人群对饮食建议进行分类。因此,对数据库的设计有严格的要求。(3)搜索问题。该App需要给用户大量的信息服务,包括菜谱以及健康资讯等,因此应重视搜索功能的完善性,需考虑搜索排序等多方面的问题。(4)操作简便问题。做到能够适合各类美食爱好者使用。4.功能需求4.1功能划分主要功能前台功能:(1)普通用户可以通过该APP查看菜谱(2)普通用户可以通过该APP搜索菜谱(按菜名,食材等)(3)普通用户可以通过该APP浏览他人分享的菜谱,经验(4)普通用户可以通过该APP注册成为会员(免费注册)(5)会员可以创建个人菜谱,进行经验和心得的分享(6)会员可以对其他会员创建的菜谱进行评论,收藏。(7)会员可以在专门的讨论区发言,与其他会员进行线上交流与讨论(8)会员可以对个人信息进行管理(修改昵称,修改头像,修改密码)(9)会员可以对自己创建的菜谱进行管理(修改菜谱,删除菜谱)后台功能:管理员通过后台对菜谱进行管理(1)浏览菜谱(2)推荐菜谱(3)删除菜谱管理员通过后台对该APP信息进行管理(1)发布一些健康资讯和每日精选的信息(2)管理已经发布的信息(有条件的修改和删除)管理员通过后台对会员进行管理(1)查看会员(基本信息,创建的菜谱,发表的言论)(2)删除会员(严重违规会员)管理员通过后台对讨论区进行管理(1)浏览发言(2)管理发言(删除违规言论,推荐优质分享)4.2功能描述下面将用例图进行功能描述:5.性能需求5.1准确性和及时性(1)系统处理的准确性和及时性是系统的必要性能。(2)在系统设计和开发过程中,要充分考虑系统当前和将来可能承受的工作量,使系统的处理能力和响应时间能够满足用户对信息处理的需求。(3)由于系统的查询功能对于整个系统的功能和性能完成举足轻重。作为系统的很多数据来源,而美食的种类又影响用户的决策活动,其准确性很大程度上决定了系统的成败。在系统开发过程中,必须采用一定的方法保证系统的准确性。5.2开放性和可扩充性(1)系统在开发过程中,应该充分考虑以后的可扩充性。用户查询的需求也会不断的更新和完善。所有这些,都要求系统提供足够的手段进行功能的调整和扩充。(2)要实现可扩充性,应通过系统的开放性来完成,即系统应是一个开放系统,只要符合一定的规范,可以简单的加入或减少系统的模块。通过软件的修补、替换操作来完成系统的升级和更新换代。5.3易用性和易维护性(1)系统是直接面对使用人员的,而手机的品牌却是各不相同的。这就要求系统能够提供良好的用户接口,易用的人机交互界面。(2)要实现易用性,就要求系统应尽量选择用户熟悉的术语和语言界面;并针对用户可能出现的使用问题,提供相应的在线帮助,缩短用户对系统熟悉的时间。(3)系统应提供方便的方式供系统维护人员进行数据的备份,日常的安全管理,以及系统意外崩溃时数据的恢复等操作。5.4标准性(1)系统在设计开发使用过程中都要涉及到很多计算机和手机硬件、软件,所有这些都要符合主流国际、国家和行业标准。例如在开发中使用的操作系统、网络系统、开发工具都必须符合通用标准;规范的数据库操纵界面、作为业界标准的TCP/IP网络协议及ISO9002标准所要求的质量规范等。(2)在自主开发本系统时,要进行良好的设计工作,制订行之有效的软件工程规范,保证代码的易读性、可操作性和可移植性。5.5先进性(1)通过系统的开放性和可扩充性,不断改善系统的功能完成。(2)在系统设计和开发的过程中,应在考虑成本的基础上尽量采用当前主流并有良好发展前途的产品。5.6响应速度快(1)系统在日常处理中的响应速度为秒级,达到实时要求,以及时反馈信息。(2)进行统计分析时,根据所需数据量的不同而从秒级到分钟级,则是保证工作人员不会因为速度问题而影响工作效率。6.运行需求6.1用户接口本系统的用户一般需要通过终端进行操作,进入主界面后点击相应的窗口,分别进入相对应的界面(如:输入界面、输出界面)。6.2外部接口(1)用户界面:在用户界面部分,根据分析结果,用户需要一个用户友善界面。在界面设计上,应做到简单明了,易于操作,并且要注意界面的布局,应突出的显示重要以及出错信息。外观上也要做到合理化,做到不仅拥有可靠性,同时有易使用性。(2)外设接口:在输入方面,对于手机键盘的输入;在输出方面,网络的传输;实现高速传输。6.3故障处理(1)输出出错信息:程序在运行时主要会出现输入信息不满足要求时的软故障,以及类似网络传输超时等其他原因产生的硬故障两种故障。对于软故障,须在各种操作(如菜谱的创建,修改,删除等)是否成功进行判断,以及输入数据的验证模块进行数据分析,判断故障类型,再生成相应的错误提示语句,送到输出模块中;对于硬故障,可在故障产生的相应模块中输出简单的出错语句,并将程序重置,返回输入阶段。(2)处理对策:为了防止客户端与服务器实现交互过程中造成数据丢失,在网络运输方面采用http协议,实现TCP连接,当一定时间内没有得到响应则进行重发等操作。网络传输方面,可考虑建一条成本较低的后备网络,以保证主网断路时数据的通信;硬件方面,要选择较可靠、稳定的服务器机种,保证系统运行时的可靠性。