1
面向对象软件工程实践指南
1.3.1.2 12.2 需求获取和分析阶段
12.2 需求获取和分析阶段

该阶段的报告包括词汇表和软件需求规约。

12.2.1 词汇表

12.2.1.1 简介

1)编写目的

本词汇表的编写目的是解释校园二手商品交易平台软件需求规约文档中使用和定义的术语。一方面,本表将规范词汇含义,避免客户或开发团队误解。另一方面,本表将作为团队下一阶段识别对象的依据。

2)适用范围

本词汇表适用的软件系统为:校园二手商品交易平台。

与该软件相关的模型、文档如软件需求规约等均使用本词汇表的定义。

3)参考资料

(1)《面向对象软件工程——使用UML、模式与Java》(第3版),清华大学出版社, 2011。

(2)IEEE Recommended Practice for Software Requirements Specifications,IEEE Std 830-1998。

4)概述

该词汇表包括软件系统中的文档、模型等的词汇定义,按照英文字母顺序排序。

12.2.1.2 定义

1)英文缩写定义

Android:Google推出的一款流行的智能终端操作系统;

App:application的缩写,一般指发布的运行于智能手机上的应用程序;

b/KLOC:bugs/KLOC,千行代码的错误数量;

B/S:browser/server,浏览器/服务器模式;

http协议:超文本传输协议,应用最广泛的网络协议;

Material design:Google推出的一种设计语言,一种接近平面化的设计;

SQLserver:微软推出的一款基于关系型结构的数据库;

TCP/IP:internet传输最基础的协议;

UDP:internet基本协议之一。

2)术语词汇定义

用户(User):网站的用户,可能是购买商品的人、销售商品的人或者管理员;

买方(Buyer):需要购买商品的人;

卖方(Seller):提供二手商品信息的人;

订单(Order):买房与卖方达成一致后,由买方提交、卖方确认的商品购买请求;

商品(Item):二手商品信息;

商品类别(Product Category):二手商品的类别,如图书、电器等;

对话(Dialog):买方与卖方在交易过程中的交流。

12.2.2 软件需求规约

12.2.2.1 引言

1)编写目的

本文档的编写目的是对二手商品交易平台的软件需求进行描述和规约,为后续的系统分析、设计和实现工作奠定基础。文档将详细地定义系统的功能和非功能需求,获取场景和用例。本文档也用于和客户进行沟通,明确客户需求的细节。

2)适用范围

本文档适用的软件为:校园二手商品交易平台。

与该软件相关的特性、子系统、模型等均符合本文档中的内容。

3)定义

本文档中涉及的术语定义在项目词汇表(词汇表)中给出。

4)参考资料

(1)《面向对象软件工程——使用UML、模式与Java》(第3版),清华大学出版社, 2011。

(2)IEEE Recommended Practice for Software Requirements Specifications,IEEE Std 830-1998。

5)概述

本文档包括引言、目前系统和建议的系统三部分。目前系统部分对当前线下二手交易市场进行分析,指出其不足并给出本系统开发的必要性;建议的系统部分列举系统的功能需求,并从不同方面规定非功能需求。该部分还描述了系统的各种场景并归纳为系统的用例,如用户登录、商品检索、商品购买等,并给出了初步的用户界面设计。

12.2.2.2 目前系统

当前的二手商品交易系统是一个线下的人工系统,即由商贩或者店家通过较低的价格收购旧书或者生活用品,自行整理分类后运至学校门口进行小范围短时间的销售,没有任何定价标准、时间不固定、规模小、效率低。

1)处理流程和数据流程

商家每年通过从毕业生或者高年级生手中收购二手货物后,进行分类处理,再运至地摊进行摆售,学生在空闲时间去进行货物挑选。

2)弊端和局限性

这种原始的二手市场交易存在如下弊端和局限性:

(1)时间不固定、容易受到天气的干扰。

(2)定价随意,商品信息需要顾客自己判断,交易地点不固定,顾客难以知晓。

(3)顾客很难寻找想要的商品,效率低。

12.2.2.3 建议的系统

12.2.2.3.1 概述

校园二手货交易平台的功能需求主要有用户注册与登录、浏览查找商品、发布商品、二手商品交易等,非功能需求包括高可靠性、操作便捷、响应快速和其他性能,系统模型包括具体的参与者和用例,参与者有包括注册用户和管理员,用例包括发布商品、查看个人商品信息、购买商品等。

12.2.2.3.2 功能需求

1)用户需求

用户登录后可以管理个人信息,查看自己已收藏或已发布的商品和订单;当用户要卖掉自己的二手商品时,可以发布商品和修改自己发布的商品的相关信息;当用户对某件商品感兴趣时,在进入该件商品的详情页面后,用户可以收藏商品、联系卖家、购买商品、确认交易或取消交易,用户填写订单时需要提供姓名、联系方式、交易时间、交易地点,确认商品数量和价格等信息,该系统暂不支持网上支付,只能通过卖家和买家确认交易时间和交易地点后线下交易,交易完成后由买家确认交易;用户可以浏览商品(全部浏览或分类浏览)、查看商品详情和搜索商品;当买方用户在交易结束后未确认交易,卖方用户可以联系管理员寻求帮助。

2)商品需求

商品信息主要包括商品名称、商品类型、价格、上架时间、商品数量、商品图片和商品简介等,其中商品的价格需要在合理范围内。不得发布违反法律法规的商品,用户可随时联系管理员举报违规商品。

12.2.2.3.3 非功能需求

1)可用性

(1)对用户的要求。学校中的用户对于一般的购物类手机App都很熟悉。本系统本身较为简单及界面友好,同时类似产品目前广泛使用,因此可以认为用户不需要培训即可使用本产品的全部功能。

(2)本系统应有特性。本系统需要对用户的操作进行一定的控制,使用户能够合理合法的使用本系统,对于非法操作要能够识别并排除干扰,正确实现功能,操作时给出适当的提示信息,操作完成时给出适当的确认信息。

2)可靠性

(1)系统开放时间。本系统上线后如无维护等情况每周为7×24小时运营。

(2)操作权限。对于普通用户,能够对自己所发布的商品进行查看等操作,对他人发布商品只可查看,不可更改。运行期间管理人员可对任意数据项进行读写操作。

(3)故障及处理要求。经讨论,预计初期系统的平均无故障时间为24h,经过长期运营后目标为1000h或以上。平均修复时间≤1h。

(4)代码及系统错误率。最高代码错误率为30b/KLOC。

对于系统:

小错误:不影响正常运行,不影响用户体验,能够线上解决的错误,要求为20b/KLOC。

大错误:影响系统长期运行或者影响用户体验,不能够线上解决的错误,要求为5b/KLOC。

严重错误:一旦发生系统不能正常运行(部分服务停止或数据出现异常),要求为1b/KLOC。

3)性能

(1)响应时间需求。本系统对用户请求合适的平均响应时间在0.5s左右为宜,最长响应时间不应该超过2s。

(2)吞吐量需求。本平台面向校园师生,考虑到实际情况,每秒处理的请求在1000条以下。因此,本系统吞吐量不大,并发数要求不高。

(3)容量需求。对于本系统的适用范围,商品数为10000,在线用户为500,注册用户不超过10000。

(4)降级模式。当本系统因某些状况不能工作在最佳性能模式时,需要进入降级模式。在降级模式中,我们认为系统能够承载初始设计的1/10负载仍然可以接受。此时,对硬件、通信等需求大大降低,同时能够满足最基本的需求。

(5)资源需求。初期预测本系统负载不大,预计不会超过20万条记录,内存占用不超过1GB。预计磁盘占用不超过10GB。对于网络请求,我们假定页面平均请求100Kb,每秒请求为100次,因此预计需要大约10Mbps的带宽。

4)可支持性

(1)编码标准及命名约定。代码及编程标准参见《编程及代码风格指南》。

(2)维护访问权及实用程序。维护访问权仅限维护人员使用,用户不得擅自提升权限。维护实用程序由维护人员保存及使用,不得随意分发,使用时应当验证权限。

5)设计约束

(1)软件本身相关。考虑到适用人群,本软件应当支持英文、简体中文及繁体中文语言。本软件开发语言为Java。

(2)软件流程需求约束。根据需求管理计划进行软件需求的分析等工作。

(3)构架及设计约束。本系统构架遵循C/S构架,设计时尽量做到各个模块相互分离,便于模块化开发,同时也注意复用性与可移植性。

(4)类库等。融云IMKit即时通讯云服务。

6)接口

(1)用户界面。本系统用户界面为手机端的Android App。界面开发时采用material design风格,以求达到美观简洁的效果。

(2)硬件接口。本系统为C/S架构,需要硬件为能够运行浏览器的设备。考虑到移动计算的需求,App运行需要搭载Android操作系统的设备。

(3)软件接口。本系统使用软件如下:

a.My SQLServer。

b.Android。

(4)通信接口。本系统使用的通信协议如下:

a.TCP/IP协议。

b.UDP协议。

c.http协议。

7)法律、版权及其他声明

本系统使用个人编写及开源代码构成,使用开源部分遵守开源代码所采用的协议,非开源部分版权归本开发组所有。本系统(包括但不限于软件、使用等方面)最终解释权归本开发组所有。

8)适用的标准

计算机软件开发规范GB8566—88;

计算机软件单元测试指南GB/T15532—95;

软件维护指南GB/T14079—93;

计算机软件可靠性和可维护性管理GB/T14394—93。

12.2.2.3.4 系统模型

1) 场景

●场景名称:用户注册。

●参与者实例:游客小王。

●事件流:

1.小王在页面上单击“注册”按钮,进入注册界面。

2.小王在注册界面填写一份包含用户名、登录密码、确认登录密码、手机号、电子邮箱的表单并提交。

3.系统收到小王的注册请求,小王注册成功。

●场景名称:用户登录。

●参与者实例:用户小王。

●事件流:

1.小王在页面上单击“登录”按钮,进入登录页面。

2.小王在登录界面填写一份包含用户名和登录密码的表单并提交。

3.系统收到小王的登录请求,进行验证后,小王登录成功。

●场景名称:个人资料管理。

●参与者实例:用户小王。

●事件流:

1.小王在页面上单击“资料管理”按钮,进入个人资料页面查看用户名、手机号、电子邮箱等内容。

2.小王在个人资料页面单击“修改个人资料”按钮,进入个人资料修改页面。

3.小王在个人资料修改页面编辑修改自己的用户名、手机号、电子邮箱等内容,修改完成后点击“确认修改”按钮。

4.系统收到小王的修改请求,完成修改,返回个人资料页面。

5.小王在个人资料页面单击“修改登录密码”按钮,进入登录密码修改页面。

6.小王在登录密码修改页面输入新的登录密码,并再次输入以确认,填写完成后点击“确认修改”按钮。

7.系统收到小王的修改请求,完成修改,返回个人资料页面。

●场景名称:商品发布。

●参与者实例:用户小李、管理员小张。

●事件流:

1.小李在页面上单击“发布商品”按钮,进入商品发布页面。

2.小李在商品发布页面填写商品名称、商品描述、期望价格,选择商品类别,并上传不超过5张照片,完成后单击“确认发布”按钮。

3.系统管理员小张收到小李的发布请求,检查发布信息是否有效。

4.小张通过小李的发布请求。

5.小张通知小李发布请求已通过,并将该商品加入商品列表中。

●场景名称:个人商品信息管理。

●参与者实例:用户小李。

●事件流:

1.小李单击“个人商品信息”按钮,进入个人商品信息查看页面。

2.小李在个人商品信息查看页面单击“我的发布”按钮,进入个人已发布商品查看用例,查看所有自己发布的商品。

3.小李在个人商品信息查看页面单击“我的收藏”按钮,进入个人已收藏商品查看用例,查看所有自己收藏的商品。

4.小李在个人商品信息查看页面单击“我的订单”按钮,进入个人订单查看用例,查看自己所有的订单。

●场景名称:个人已发布商品查看。

●参与者实例:用户小李。

●事件流:

1.小李单击“个人商品信息”按钮,进入个人商品信息查看页面。

2.小李在个人商品信息查看页面单击“我的发布”按钮,进入个人已发布商品查看页面,可查看所有自己发布的商品。

3.系统收到请求,跳转到个人已发布商品查看页面,展示小李已发布商品的商品名称、图片(若有)和期望价格。

●场景名称:个人已收藏商品查看。

●参与者实例:用户小李。

●事件流:

1.小李单击“个人商品信息”按钮,进入个人商品信息查看页面。

2.小李在个人商品信息查看页面单击“我的收藏”按钮,进入个人已收藏商品查看页面,可查看所有自己收藏的商品。

3.系统收到请求,跳转到个人已收藏商品查看页面,展示小李已收藏商品的商品名称、图片(若有)和期望价格。

●场景名称:个人订单查看。

●参与者实例:用户小李。

●事件流:

1.小李单击“个人商品信息”按钮,进入个人商品信息查看页面。

2.小李在个人商品信息查看页面单击“我的订单”按钮,进入个人订单查看页面,可查看所有自己的订单。

3.系统收到请求,跳转到个人订单查看页面,展示小李已购订单的商品名称、图片(若有)、期望价格和订单状态。

●场景名称:消息管理。

●参与者实例:用户小李。

●事件流:

1.小李单击“消息管理”按钮,进入消息管理页面。

2.小李在消息管理页面中查看历史消息的列表。

3.小李单击其中的一条消息,进入对话。

●场景名称:对话。

●参与者实例:用户小李,用户小王。

●事件流:

1.小李进入和小王对话页面,发送消息。

2.系统将对话消息发送给小王,小王接收消息进入对话页面。

3.小王和小李在对话页面中进行交流。

4.两人通过关闭对话页面,退出对话。

●场景名称:商品浏览。

●参与者实例:用户小王。

●事件流:

1.小王开启应用后,可通过上划、下划浏览主界面上已发布的二手商品。

2.主界面的商品按分类类别顺序排列,小王可以单击界面左上角的“类别”按钮查看商品类别。

3.左侧弹出商品类别菜单,小王单击他感兴趣的某一类商品,进入该类商品页面。

4.小王通过上下划动浏览该类别商品,找到自己感兴趣的商品时单击该商品对应区域进入这件商品的页面中,可通过单击“返回”按钮返回前一个浏览页面。

●场景名称:商品搜索。

●参与者实例:用户小王。

●事件流:

1.小王单击在浏览界面上方的搜索框,输入自己想搜索的商品的关键词后单击“搜索”按钮。

2.系统通过关键词在所有商品中检索并返回与关键词符合度高的商品,在结果页面中显示。

3.如果没有结果返回,可修改关键词后重复步骤1。

4.小王浏览结果页面单击想找的商品对应区域进入该商品的页面中。

●场景名称:商品查看。

●参与者实例:用户小王。

●事件流:

1.小王进入某一商品的页面,浏览该商品的详细信息,包括商品名称、商品类型、价格、上架时间、商品数量、商品图片和商品简介等。

2.小王单击“返回”按钮返回前一个浏览页面。

●场景名称:商品收藏。

●参与者实例:用户小王。

●事件流:

1.小王查看一件商品的页面,单击页面中的“收藏”按钮。

2.系统接收小王的请求,将该商品信息加入小王的收藏列表。

3.页面上的收藏按钮显示“已收藏”。

●场景名称:商品购买。

●参与者实例:用户买家小王,用户卖家小李。

●事件流:

1.小王查看一件商品的页面,单击页面中的“购买”按钮。

2.系统跳转到购买页面。

3.小王填写页面订单中的买家姓名、联系方式、交易时间、交易地点,确认商品数量和价格等信息,单击“确认”按钮提交。然后小王等待卖家小李的确认。

4.系统将购买信息发送给卖家小李。小李查看订单的信息并确认交易。

5.系统将小李的确认消息发送给小王,下单成功。

●场景名称:联系卖家。

●参与者实例:用户买家小王,用户卖家小李。

●事件流:

1.小王查看一件商品的页面,单击页面中的“联系”按钮。

2.系统跳转到对话页面。

3.小王向卖家小李发送消息,询问商品情况等。

4.系统将对话消息发送给卖家小李。小李进入对话页面,回复小王的消息。

5.小王和小李在对话页面中进行对话,商议价格和交易细节等。

6.两人关闭对话页面,退出对话。

●场景名称:完成交易。

●参与者实例:用户买家小王,用户卖家小李。

●事件流:

1.小王和小李在线下完成了交易。

2.小王进入订单页面,通过单击确认按钮交易结束。

3.小李收到消息,进行确认,交易结束。

2)用例模型

系统中的所有参与者和用例如表12-6~表12-7所示。

表12-6 参与者信息表

表12-7 用例信息表

详细用例信息如下:

●用例名称:Register。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

尚未注册的用户:成功注册账号。

●前置条件:用户进入登录界面。

●后置条件:用户注册成功。

●主流程:

1.用户单击页面上的“注册”按钮。

2.系统收到用户的请求,跳转到注册页面,展示注册表单供填写。

3.用户填写注册表单的用户名、登录密码、确认登录密码、手机号、电子邮箱,填写完成后单击“确认注册”按钮。

4.系统判别表单信息是否有效。

5.系统提示注册成功,并跳转至登录界面。

●扩展流程:

注册表单信息无效:

(1)在第3步,用户填写的登录密码不合法。系统提示用户填写的登录密码过短、过长或过于简单,请用户修改一个合法的密码后重新提交。

(2)在第3步,用户填写的确认登录密码和登录密码不一致。

(3)在第3步,用户填写的用户名已被注册。

a.系统提示用户该用户名已被注册,请用户修改后重新提交再试。

b.系统提示用户两次填写的登录密码不一致,请用户检查修改后重新提交。

(4)在第3步,用户填写的手机号已被注册。系统提示用户该手机号已被注册,请用户检查修改后重新提交。

(5)在第3步,用户填写的电子邮箱已被注册。系统提示用户该电子邮箱已被注册,请用户检查修改后重新提交。

●特殊需求:无。

●发生频率:可能随时发生,但一般情况一个用户只会注册一次,所以频率不会太高。

●用例名称:Login。

●范围:系统用例。

●级别:子功能。

●主要参与者:用户。

●涉众及其关注点:

注册用户:登录以使用收藏和购买等功能。

●前置条件:用户进入任一页面。

●后置条件:用户进入登录状态。

●主流程:

1.用户单击页面上的“登录”按钮。

2.系统收到用户的请求,跳转到登录页面,展示登录表单供填写。

3.用户填写登录表单的用户名和登录密码,填写完成后单击“登录”按钮。

4.系统判别表单信息是否有效。

5.系统提示登录成功,并跳转回登录前的页面。

●扩展流程:

登录表单信息无效:

(1)在第3步,用户填写的用户名和密码不合法。

(2)在第3步,用户填写的用户名不存在。系统提示用户该用户名不存在,请用户检查修改后重新提交。

(3)在第3步,用户填写的登录密码不正确。系统提示用户填写的用户名或登录密码有误。请用户检查修改后重新提交。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Manage Personal Information。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

注册用户:成功修改自己的手机号、电子邮箱。

●前置条件:用户已登录。

●后置条件:更新用户个人资料。

●主流程:

1.已登录用户单击页面上的“个人资料”按钮。

2.系统响应请求,跳转到个人资料页面,展示用户的手机号、电子邮箱。

3.用户在个人资料页面单击“修改个人资料”按钮。

4.系统响应请求,跳转到个人资料修改页面。

5.用户在个人资料修改页面编辑修改自己的手机号、电子邮箱等内容,修改完成后单击“确认修改”按钮。

6.系统收到用户的修改请求,检查手机号、电子邮箱是否有效。

7.系统完成用户的个人资料修改,并跳转回个人资料页面。

扩展流程:

个人资料无效:

(1)在第5步,用户填写的信息不完整,不合法。系统提示重新填写,填写后重新提交。

(2)在第5步,用户填写的用户名已被注册。系统提示用户该手机号已被注册,请用户检查修改后重新提交。

(3)在第5步,用户填写的电子邮箱已被注册。系统提示用户该电子邮箱已被注册,请用户检查修改后重新提交。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Publish Item。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

用户:成功发布想要出售的物品供其他用户选购。

●前置条件:用户已登录。

●后置条件:更新商品列表和用户已发布商品的列表。

●主流程:

1.用户在页面上单击“发布商品”按钮。

2.系统收到请求,跳转到商品发布页面。

3.用户在商品发布页面填写商品名称、商品描述、期望价格,选择商品类别,并可以上传不超过5张照片,完成后单击“确认发布”按钮。

4.系统收到用户的发布请求,检查发布信息是否有效。

扩展流程:

用户提供的商品信息无效:

(1)在第3步,用户没有填写商品名称。系统提示用户商品名称不能为空,要求完善后重新提交。

(2)在第3步,用户没有填写期望价格。系统提示用户期望价格不能为空,要求完善后重新提交。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Check Published Item。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

用户:可以方便地查看自己已发布的商品。

●前置条件:用户单击“我的发布”按钮。

●后置条件:无。

●主流程:

1.用户单击“我的发布”按钮。

2.系统收到请求,跳转到个人已发布商品查看页面,展示用户已发布商品的商品名称、图片(若有)和期望价格。

3.当有多个商品时,用户可以滚动查看。

●扩展流程:

1.用户可以选择某一商品。

2.显示商品信息,显示取消发布按钮。

3.点击取消发布按钮,可以取消发布商品。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Check Favored Item。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

用户:可以方便地查看自己已收藏的商品。

●前置条件:用户单击“我的收藏”按钮。

●后置条件:无。

●主流程:

1.系统收到请求,跳转到个人已收藏商品查看页面,展示用户已收藏商品的商品名称、图片(若有)和期望价格供用户查看。

2.当收藏商品较多时,用户可以滚动查看。

●扩展流程:

1.用户单击某一商品。

2.显示商品详细信息,以及取消关注按钮。

3.用户单击取消关注,关注被取消。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Check Order。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

用户:可以方便地查看自己的订单。

●前置条件:用户在个人商品信息查看页面单击“我的订单”按钮。

●后置条件:无。

●主流程:

1.系统收到请求,跳转到个人订单查看页面,展示用户订单的商品名称、图片(若有)、期望价格和订单状态供用户查看。

2.当有多个订单时,用户可以滚动查看。

●扩展流程:

用户可以调用Cancel Order页面取消订单。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Check Dialogs。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

用户:可以方便地查看消息。

●前置条件:用户已登录。

●后置条件:无。

●主流程:

1.用户单击“消息管理”按钮。

2.系统收到请求,跳转到消息管理页面。

3.用户在消息管理页面中查看历史消息的列表。

4.如果用户单击一条消息记录,则进入对话,应用Communicate用例。

●扩展流程:无。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Communicate。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

用户:可以方便地进行交流,得到及时响应。

●前置条件:用户已登录,一方通过某途径进入对话。

●后置条件:保存或更新消息记录。

●主流程:

1.一方进入对话页面,发送消息激活对话。

2.另一方接受消息进入对话。

3.双方在对话页面中交流,并可以通过关闭对话页面退出对话。

●扩展流程:无。

●特殊需求:消息传输要即时。

●发生频率:可能随时发生,频率较高,短时间内可能有大量对话。

●用例名称:Browse Items。

●范围:系统用例。

●级别:子功能。

●主要参与者:用户。

●涉众及其关注点:

用户:浏览感兴趣的商品。

●前置条件:用户打开主界面。

●后置条件:用户进入查看某一商品的页面。

●主流程:

1.用户开启应用通过上下划动浏览主界面上已发布的二手商品。

2.主界面的商品按分类类别顺序排列,用户可以单击界面左上角的类别按钮查看商品类别。

3.左侧弹出商品类别菜单,用户单击感兴趣的某一类商品,进入该类商品页面。

4.用户通过上下划动浏览该类别商品,找到自己感兴趣的商品时单击该商品对应区域进入这件商品的页面中,可通过单击返回按钮返回前一个浏览页面。

●扩展流程:无。

●特殊需求:无。

●发生频率:大部分时间用户都处在浏览状态,频率高。

●用例名称:Search Items。

●范围:系统用例。

●级别:子功能。

●主要参与者:用户。

●涉众及其关注点:

用户:搜索到需要的商品。

●前置条件:当前页面具有搜索框。

●后置条件:用户进入某一商品的页面或返回前一个页面。

●主流程:

1.用户单击浏览界面上方的搜索框,输入自己想找的商品的关键词后单击“搜索”按钮。

2.系统通过关键词在所有商品中检索并返回与关键词符合度高的商品,在结果页面中显示。

3.如果没有结果返回,可修改关键词后重复步骤1。

4.用户浏览结果页面单击想找的商品对应区域进入该商品的页面中。

●扩展流程:无。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Read Item Detail。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户。

●涉众及其关注点:

用户:查看某一件商品的详细信息。

●前置条件:进入某一商品的页面中。

●后置条件:返回前一个浏览页面或因其他操作跳转至相对应页面。

●主流程:

1.用户浏览商品或者搜索商品(调用用例Browers Items、Search Items)进入查看商品页面。

2.浏览该商品的详细信息,包括商品名称、商品类型、价格、上架时间、商品数量、商品图片和商品简介等。

3.用户单击返回按钮返回前一个浏览页面。

4.点击联系买家,进入Communicate用例。

●扩展流程:Favor Item。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Favor Item。

●范围:系统用例。

●级别:子功能。

●主要参与者:用户。

●涉众及其关注点:

注册用户:成功收藏感兴趣的商品。

●前置条件:用户进入某一商品的页面查看。

●后置条件:更新用户收藏列表。

●主流程:

1.用户单击商品页面中的收藏按钮。

2.系统响应请求,将该商品信息添加到该用户的收藏列表中。

3.页面上的收藏按钮显示“已收藏”提示用户操作成功。

●扩展流程:

1.取消收藏。

在第3步后,用户可以再次单击按钮取消对商品的收藏:

(1)用户单击收藏按钮。

(2)系统响应请求,从该用户的收藏列表里删除该商品信息。

(3)页面上的收藏按钮恢复初始状态提示用户操作成功。

2.未登录。

在第1步,用户尚未登录:

(1)跳转至登录页面,进入登录用例。

(2)登录成功后返回主流程。

●特殊需求:无。

●发生频率:可能随时发生,频率较高。

●用例名称:Purchase Item。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户(买家、卖家)。

●涉众及其关注点:

买家用户:方便快捷地下单购买,卖家及时确认。

卖家用户:及时收到买家订单并处理。

●前置条件:买家用户进入某一商品的页面查看。

●后置条件:更新商品状态;反馈结果给买家用户。

●主流程:

1.用户浏览商品或者搜索商品(调用用例Browers Items、Search Item)进入查看商品页面,单击页面中的“购买”按钮。

2.系统接收买家用户的请求,跳转到购买页面。

3.买家用户填写页面订单中的买家姓名、联系方式、交易时间、交易地点,确认商品数量和价格等信息,单击“确认”按钮提交,等待卖家的处理。

4.系统将购买信息发送给卖家用户。卖家查看订单的信息并确认交易。

5.系统将卖家用户的确认消息发送给买家用户,购买成功。

●扩展流程:

1.卖家取消订单。

在第4步,卖家查看订单选择取消交易,调用Cancel Order用例。

2.买家取消订单。

在第4步,买家查看订单选择取消交易,调用Cancel Order用例。

3.未登录。

在第1步,用户尚未登录:

(1)跳转至登录页面,进入登录用例。

(2)登录成功后返回主流程。

●特殊需求:无。

●发生频率:可能随时发生,频率较高,短时间内可能有大量交易。

●用例名称:Close Deal。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户(买家,卖家)。

●涉众及其关注点:

买家用户:方便结束交易,可以自由评价。

卖家用户:及时接收买家的反馈、评论。

●前置条件:买卖双方在线下完成了交易。

●后置条件:更新商品页面,反馈买家评价。

●主流程:

1.买家用户进入交易商品的订单页面,单击确认交易结束。

2.系统跳转到评价页面,买家进行评价和打分并提交。

3.系统将订单消息和买家评价发送给卖家用户。

4.卖家进入订单页面,查看评价并确认交易结束。

●扩展流程:

买家用户未确认交易结束:

在线下交易结束后,买家用户未及时确认交易结束。

(1)卖家进入订单页面,单击提醒买家。

(2)系统将卖家的提醒消息发送给买家。

(3)买家接收消息,进入主流程第1步。

●特殊需求:无。

●发生频率:可能随时发生,频率较高,短时间内可能有大量确认。

●用例名称:Cancel Order。

●范围:系统用例。

●级别:用户目标。

●主要参与者:用户(买家,卖家)。

●涉众及其关注点:

买家用户:方便结束交易,可以自由评价。

卖家用户:及时接收买家的反馈、评论。

●前置条件:买卖双方在线上创建了订单。

●后置条件:订单被取消。

●主流程:

1.买家或卖家用户进入订单页面,单击取消订单。

2.订单页面显示取消理由框,填写并提交。

3.系统将取消订单信息发送给另一方。另一方查看并确认后订单取消。

●扩展流程:无。

●特殊需求:无。

●发生频率:可能随时发生,频率较高,短时间内可能有大量确认。

完整的用例图如图12-7所示。

图12-7 用例图

3)对象模型

对象模型分为实体类、边界类和控制类,如表12-8~表12-10所示。

表12-8 实体类

表12-9 边界类

(续 表)

表12-10 控制类

所有实体类的类图如图12-8所示。

图12-8 实体类图

所有类的类图如图12-9所示。

图12-9 类图

4)动态模型

(1)系统顺序图与操作契约。

用例1:Register(见图12-10)。

图12-10 Register系统顺序图

契约CO1: submit User Info

●操作:submit User Info(username:Username,password:Password,e-mail L:E-mail,phonenumber:Phonenumber,user ID:User ID)。

●交叉引用:Register。

●前置条件:用户进入任意界面。

●后置条件:

创建User的实例u;

u.user ID赋值;

u.user Name赋值为username;

u.password赋值为password;

u.phonenumber赋值为phonenumber;

u.e-mail赋值为e-mail。

用例2:Login(见图12-11)。

用例3:Manage Personal Information(见图12-12)。

图12-11 Login系统顺序图

图12-12 Manage Personal Information系统顺序图

契约CO2:up date Personal Info

●操作:Update Personal Info(e-mail:E-mail,password:String,phonenumber:Phonenumber,user ID:User ID)。

●交叉引用:Manage Personal Information。

●前置条件:用户已登录。

●后置条件:

依据user ID与u.user ID的匹配找到对应u;

u.phonenumber赋值为phonenumber;

u.e-mail赋值为e-mail;

u.password赋值为password。

用例4:Publish Item(见图12-13)。

图12-13 Publish Item系统顺序图

契约CO3: submit Item Info

●操作:submit Item Info(itemname:Itemname,itemprice:Itemprice,photo:Photo, item ID:Item ID,itemdescription:Itemdescription,itemtype:Itemtpye)。

●交叉引用:Publish Item。

●前置条件:用户已登录。

●后置条件:

创建了Item的实例i;

创建itemid,为i.item ID赋值;

i.item Name赋值为itemname;

i.item Description赋值为itemdescription;

i.item Price赋值为itemprice;

i.add_time赋值为当前时间;

i.status赋值为onsale;

保存图片,将图片地址赋给i.img_src;

i.item Type关联Item Type。

用例5:Check Published Item(见图12-14)。

用例6:Check Favored Item(见图12-15)。

用例7:Check Order(见图12-16)。

用例8:Check Dialogs(见图12-17)。

用例9:Communicate(见图12-18)。

图12-14 Check Published Item系统顺序图

图12-15 Check Favored Item系统顺序图

图12-16 Check Order系统顺序图

图12-17 Check Dialogs系统顺序图

图12-18 Communicate系统顺序图

契约CO4:send Messag e

●操作:send Message(message:String)。

●交叉引用:Communicate,Contact Seller,Check Dialogs。

●前置条件:在对话页面中。

●后置条件:

更新了Dialog的实例d的内容d.dialog。

用例10:Browse Items(见图12-19)。

用例11:Search Items(见图12-20)。

用例12:Read Item Details(见图12-21)。

图12-19 Browse Items系统顺序图

图12-20 Search Items系统顺序图

图12-21 Read Item Details系统顺序图

契约CO5:req uest Item Details

●操作:request Item Details()。

●交叉引用:Read Item Details。

●前置条件:正在浏览商品。

●后置条件:

基于Item信息创建了Item Page的实例ip;

基于Item.Item ID的匹配,将ip与Item关联起来。

用例13:Favor Item(见图12-22)。

图12-22 Favor Item系统顺序图

用例14:Purchase Item(见图12-23)。

图12-23 Purchase Item系统顺序图

契约CO6: submit Order

● 操作:submit Order(buyer ID:User ID,deal Data:Date,deal Time:Time, deal Place:String,price:Price,seller ID:User ID,item ID:Item ID)。

●交叉引用:Purchase Item。

●前置条件:正在查看某一商品。

●后置条件:

创建了Order的实例o;

基于buyer ID和seller ID的匹配,将o与buyer和seller关联;

o.buyer赋值为buyer ID;

o.item赋值为item ID;

o.seller赋值为seller ID;

o.date赋值为deal Date;

o.time赋值为deal Time;

o.place赋值为deal Place;

o.price赋值为price;

o.status赋值为created。

契约CO7: confirm Order

●操作:confirm Order(o:Order,i:Item)。

●交叉引用:Purchase Item。

●前置条件:买家已提交订单。

●后置条件:

o.status赋值为confirmed;

i.status赋值为bought;

基于buyer ID,将Order与Order List关联。

用例15:Close Deal(见图12-24)。

图12-24 Close Deal系统顺序图

契约CO8: confirm Closure

●操作:confirm Closure(o:Order,i:Item,comments:String)。

●交叉引用:Close Deal。

●前置条件:买家确认订单并评价。

●后置条件:

o.status赋值为finished;

i.comments赋值为comments。

用例16:Cancel Order(见图12-25)。

图12-25 Cancel Order系统顺序图

(2)顺序图。

a.系统消息顺序图:register&submit User Info(见图12-26)。

图12-26 register&submit User Info系统消息顺序图

b.系统消息顺序图:login(见图12-27)。

图12-27 login系统消息顺序图

c.系统消息顺序图:manage Personal Info&edit Personal Info&update Personal Info(见图12-28)。

图12-28 manage Personal Info&edit Personal Info&update Personal Info系统消息顺序图

d.系统消息顺序图:publish Item&submit Item Info(见图12-29)。

图12-29 publish Item&submit Item Info系统消息顺序图

e.系统消息顺序图:get My Published Info&select Item&withdraw Item(见图12-30)。

图12-30 get My Published Info&select Item&withdraw Item系统消息顺序图

f.系统消息顺序图:get My Favored Info&select Item&cancel Favor(见图12-31)。

图12-31 get My Favored Info&select Item&cancel Favor系统消息顺序图

g.系统消息顺序图:get My Order Info&select Order(见图12-32)。

图12-32 get My Order Info&select Order系统消息顺序图

h.系统消息顺序图:get My Dialogs&select Dialog(见图12-33)。

图12-33 get My Dialogs&select Dialog系统消息顺序图

i.系统消息顺序图:start Communication&send Message(见图12-34)。

图12-34 start Communication&send Message系统消息顺序图

j.系统消息顺序图:browse Items(见图12-35)。

图12-35 browse Items系统消息顺序图

k.系统消息顺序图:search Items(见图12-36)。

图12-36 search Items系统消息顺序图

l.系统消息顺序图:request Item Details(见图12-37)。

图12-37 request Item Details系统消息顺序图

m.系统消息顺序图:favor Item(见图12-38)。

图12-38 favor Item系统消息顺序图

n.系统消息顺序图:purchase Item&submit Order(见图12-39)。

图12-39 purchase Item&submit Order系统消息顺序图

o.系统消息顺序图:close Deal(见图12-40)。

图12-40 close Deal系统消息顺序图

p.系统消息图:cancel Order&submit Remark&confirm Order Cancel(见图12-41)。

图12-41 cancel Order&submit Remark&confirm Order Cancel系统消息顺序图

(3)状态图。

状态图1:Order类(见图12-42)。

图12-42 Order类状态图

状态图2:Dialog类(见图12-43)。

图12-43 Dialog类对象图

5)用户界面

根据系统功能,用户界面应包含主页、登录界面、注册界面、搜索结果显示界面、个人资料页、个人商品页、用户对话界面和分类页等。具体页面设计如下:

(1)主页:在本页显示本App/网页名称、制作者、显示登录和注册选项以及搜索选项,可链接至登录和注册界面以及搜索界面。

(2)登录页面:本页面用于登录,在本页提示用户输入账户密码,能链接至注册页面。

(3)注册页面:在本页提示用户输入新的账户密码、邮箱及验证码等,可返回主页及登录界面。

(4)搜索结果显示页面:在本页顺序排列符合的搜索结果,对于每个结果显示图片、价格、卖家信息等,同时对用户提供收藏选项并记录用户信息,可返回主页。

(5)个人资料页面:用户在此页对自身账户进行设置,如修改头像、密码、基本页面设置等,能返回搜索页面或链接至个人商品页。

(6)个人商品页面:用户在此页能查看已收藏的商品、个人已发布的商品及购买记录,能返回搜索页面或链接至个人资料页。

(7)用户对话页面:用于用户间的沟通,可返回搜索结果页面,简略显示双方聊天记录,便于用户与卖家进行售后沟通。

(8)消息记录页面:用于显示用户的聊天记录,能进入对话页面或返回至上个页面。

(9)分类浏览页面:本页面按类别分类便于用户能快速准确地浏览并找到目标商品。

(10)商品页面:显示某一商品的寄售者、价格、图片等信息,可进行购买、收藏等操作,可返回搜索页面、主页。

用户界面设计图如下:

(1)个人信息页面(见图12-44)。

(2)对话界面(见图12-45)。

图12-44 个人信息页面

图12-45 对话界面

(3)查看消息界面(见图12-46)。

(4)订单信息填写界面(见图12-47)。

图12-46 查看消息页面

图12-47 订单信息填写页面

(5)用户注册界面(见图12-48)。

(6)用户登录界面(见图12-49)。

图12-48 用户注册页面

图12-49 用户登录页面

(7)商品详情界面(见图12-50)。

(8)搜索结果界面(见图12-51)。

图12-50 商品详情页面

图12-51 搜索结果页面

(9)主界面(见图12-52)。

(10)主界面侧滑设置界面(见图12-53)。

图12-52 主页面

图12-53 侧滑设置页面