首页 > 代码库 > [第五组] 典型用户 +用例+功能说明书+技术说明书 2017.07.25版

[第五组] 典型用户 +用例+功能说明书+技术说明书 2017.07.25版

典型用户3

姓名

林华

性别,年龄

男,21

收入

暂无

知识

大学

生活

多数在食堂吃,希望看到新品的试吃评论再决定吃不吃

动机

想看到其他人对菜品的评价或者自己吐槽

偏好

喜欢查看评论也喜欢自己评论

比例

?

场景

在评论界面浏览,留言

场景

 工作序号003发布评论

 1. 背景

  1 经典客户:林华

  2 客户的需求/迫切解决的问题

         a 浏览菜品评论

         b 在评论区上发布评论(文字评论)。

  3假设:

         a.    用户已注册登录成为普通用户。

         b.    用户拥有在评论区评论的权限(未被管理员封号)。

2. 场景

  场景1:上新

    林华发现今日食堂有新的菜品,看到了菜色十分诱人,但是不知道吃起来味道如何。于是他打开了HK软件。在首页看到了此菜品的上新,于是他点击  了上方轮播的菜品图,进入到评论界面。看到带了美食滤镜的菜品图和详细的信息,包括配料,楼层等。

    分支1:!!!这道菜有姜啊,拒绝。林华选择了其他的菜品,或者不知道吃什么而跳转到选择界面。

    分支2:看到其他用户评论:“哎呀,超好吃的!建议尝试”。林华选择了尝试此菜品。

    分支2.1 林华发现这道菜确实不错,于是点开HK软件,给刚才看到的评论点赞。

    分支2.2 林华发现自己被评论骗了,怒而点开了HK,进入评论界面,想留言:“骗人啊,黑暗料理,一言难尽”。

      分支2.2.1 林华之前浏览时未登录系统。系统提示“请登录后发表评论”。

      分支2.2.2 林华已登录系统,检测其用户敏感度不高,评论发布成功。

      分支2.2.3 林华已登录系统,检测其用户敏感度超出预定值,评论发布失败并提示“您的用户敏感度过高,暂不能发表评论”

场景2 :浏览多道菜品  

  林华不知道想吃什么,想找到评分比较高,大家评论都很推荐的菜品。于是他点开了HK软件,浏览起各个菜品评论界面。最终做出了选择。

3. 其他资料

  1)用户登录软件场景参见任务001

  2)用户评论管理参见任务004

 

用例文档

标题:用户评论菜品

角色:用户

主要成功场景:

1. 用户登录系统

2. 用户点击菜品卡片按钮进入评论界面

3. 用户可以浏览菜品相关信息和评论

4. 用户点击评论框,弹出评论界面,在评论界面输入框输入文字,点击发布评论。

5. 系统显示评论成功

扩展场景:

1. 用户敏感度过高,系统显示您的账户暂不能发表评论

2. 用户浏览评论,点赞评论,刷新后评论按赞数排序

3.用户输入内容为空,不能点击发布按钮

 

功能说明书

假设:用户已经注册本系统

STEP1:用户登录系统,进入主页面

STEP2:用户点击主页下方菜品卡片进入评论界面

 技术分享

 

STEP3用户点击菜品详细信息下方的评论框

 技术分享

STEP4弹出评论收集界面,当输入框无文字时,发布评论按钮不可点击。点击“×”可关闭。

 技术分享

 

STEP5:系统显示评论成功或“您的账户暂不能发表评论”

 技术分享

 

技术分享

 

 STEP6:用户点击刷新以查看最新评论

 技术分享

 

技术说明书

一·数据结构说明:

  评论界面一共涉及两个主要类(public类),一个为菜品详细类,一个为用户评论类(类中成员也为public)

  1.菜品详细类 dish_Details

    成员命名形式dish_xxx

名称 类中命名 类型 说明
菜品编号 dish_Number int 它也是数据库dishDetails表的主键,为防止不同楼层实时菜量不一致导致冲突
菜品图片 dish_Picture string 菜品图,当然是精致摆拍加滤镜的那种~
菜品名称 dish_Name string 菜品名称,暂设定同一道菜的评论不因楼层等问题冲突
菜品评分 dish_Score int 在数据库中,利用菜品名查找所有评分项并取平均值
菜品分类 dish_Classification string 按照菜品的菜系进行分类
菜品口味 dish_Taste string 菜品的口味,如酸甜,辣等
菜品原料 dish_Ingredients string 制作此菜品需要的原料
实时菜量 dish_Current string 显示实时菜量等级,共五个等级:充足,较多,中等,较少,没啦

 

  2.用户评价类 Comment

    成员命名形式comment_xxx

名称 类中命名 类型 说明
用户名称 comment_User_ID string 每条评论对应的用户名,用户名值唯一
用户头像 comment_Profile_Picture string 用户名对应的头像,空缺时值为默认头像
评论内容 comment_S() string 用户评论的内容,不能为空
用户评分 comment_Praise int 用户个人对菜品的评分,不能为空值
评论时间 comment_Time string 用户评论的时间,系统自动生成
菜品名称 dish_Name1 string 用于根据菜品名称查找菜品
评论编号 comment_Number string 由于上述项均可重复,无可用主键,设编号为主键

二·界面设计说明

  图示:暂时效果,有些未实现

技术分享

  界面整体用ScrollViewer进行包装,方便评论多时浏览全部评论。

  总体由三行两列的grid组成,其中列宽度比例为7:2,行高度比例:第0行为自动适应,第1行与第2行比例为1:3。

  第0行第0列  ① 整体为RelativePanel 命名为 Dish_Information_1 属性:向右偏移379。

          紧靠RelativePanel左侧为Ellipse 命名为Dish_Pictures 宽 200 高200 总体偏移20。

          属性Ellipse.Fill 内 ImageBrush 命名为dish_Picture 其中ImageSource的值来源于主页的NewsItem。

        ②在Dish_Pictures右侧是StackPanel 命名为Dish_Information_11 其总体偏移量为20 属性Orientation为Vertical。

          其中主要是各种信息的堆叠,每个信息都为一个StackPanel 属性Orientation为Horizontal。

          其中包括两个TextBlock  FontSize均为20。

          第一个TextBlock内容为“要显示项的名字+:”,第二个TextBlock命名为Dishes_各项名 通过数据绑定到dish_Details。

          取值为details_Manager按照菜品编号查找数据库所得。

  第0行第1列 ①整体为一个StackPanel 命名为Similar_dishes 属性Orientation为Vertical。

          其中包含一个TextBlock 内容文字为“相似菜品”,下方是一个列表视图最多显示5个相似菜品。相似菜品根据口味从数据库取得菜品名。

          列表视图模板只是一个TextBlock  FontSize为"18"。点击事件为跳转到相应菜品的评论界面。

  第1行第0列 ①整体为一个StackPanel,其中上方是TextBlock 内容文字为“评论” 大小为25。

          下方是一个Button 宽度为700 ImageBrush中ImageSource的路径为Assest/block.png。click事件为弹出Comment_collect页面。

  第2行第0列 ①整体是采用GridView 数据绑定源为Comment 通过Comment_Manager按照菜品名查找数据库获取。

        ②数据模板:整体RelativePanel 左侧Ellipse紧靠RelativePanel 命名为User_pictrure 宽高均为35 Imagebrush中ImageSource绑定到comment_Profile_Picture。

             TextBlock命名为User_ID 在Ellipse右侧上方 通过数据绑定到comment_User_ID。

             TextBlock命名为Comment_block 在Ellipse右侧,User_ID下方  通过数据绑定到comment_S() 换行设置为wrap 宽度为700。

             TextBlock命名为Time_block 在RelativePanel左侧下方 通过数据绑定到comment_Time。

             TextBlock命名为Praise_block 在RelativePanel右侧上方 通过数据绑定到comment_Praise。

             Button 命名为Praise_Button在Praise_block左侧 click事件为comment_Praise+1。

  第1行第1列 ①放置Button 命名为refresh click事件为刷新整个页面。高度为40 宽度为150 文字为“刷新以查看新的评论~” Button背景为透明,文字颜色为灰色带下划线。

  第2行第1列 ①放置宽高为150的LOGO

三·一些事件说明

  1.用户点击评论按钮

      弹出Comment_collect界面,界面大小为400×500,上方是TextBlock 内容文字为“评论” 大小为30 下方是一个260×300的输入框命名为Comment_Collect,输   入不得大于140字。

   输入框下方是评分框,下拉选择框 命名为Praise_Collect,大小为200×60 ,内容为一星到五星的图片,左侧是TextBlock 内容文字为“打分!” 大小为30。

   评分下方是Button按钮,大小为75×30,文字为“发布”。Style为设置的模板。

   (140字限制的依据请参考网址:https://www.zhihu.com/question/19588822)

   当用户输入为空时,按钮不支持点击。检测到输入不为空,则生成评论,通过用户服务获取用户是否登录。

    1.1 用户未登录 弹出对话框“请您登录后再进行评论”,“确定”则跳到登录界面,“取消”则关闭窗口 。此时为防止用户登录后所打内容消失,设置页面缓存。

    1.2 用户已经登录 利用用户名查找数据库,返回用户敏感度,判断是否超出预定值。以下弹窗风格设置待定。

      1.2.1 超出预定值 弹出窗口 “对不起,您的用户敏感度过高,暂不能发表评论”

      1.2.2 未超出预定值 comment_User_ID通过用户服务获取;comment_S()通过输入框内容获取;comment_Time系统时间;dish_Name1通过类dish_Details获取此页面值;comment_Number通过总评论数生成;comment_Praise通过下拉选择框Praise_Collect传值 选择一星图片时为1...;然后传输数据到服务器,再由服务器存入评论表中(评论表主键为Comment_Number)。弹出评论成功。

  2.点击ListView中的Item

    跳转到评论界面,传值为菜品编号,重新请求数据,加载界面。

  3.点击刷新

    重新向服务器请求数据,加载此页面。

  4.点赞 已在界面描述中说明。

五·网络服务说明

  C#使用SCOCKET请求Web服务。(参考网址:http://www.cnblogs.com/xiaozhi_5638/p/3912668.html;

                     http://www.cnblogs.com/xiaozhi_5638/p/3917943.html)

 

六·单元测试说明

  本页面主要是用Manager函数从服务器读取或修改数据库的数据,测试类先清空测试数据库。

  ①向其中存放菜品信息(或评论),再读取其中信息,看是否正确。按照一个成员查询读取信息看是否正确对应。

  ②存放多条信息,删除其中一条,再读取该条信息,取值为空则正确

  ③修改其中信息,再读取数据,看修改是否成功。  

  

 

 

 

 

 

 

 

 

 

 

 

[第五组] 典型用户 +用例+功能说明书+技术说明书 2017.07.25版