南斗六星队---需求规格说明书

Posted on 2024-04-20 12:38  Aderversa  阅读(87)  评论(0编辑  收藏  举报
作业所属班级 软件工程4班
作业的要求 需求分析
我理解的作业目标 用软件工程的方法论完成项目的需求分析以及团队的协作方式

“朝书夕拾”——校园二手书交易平台

队员介绍:

队员

  • 张永祥(组长)3122004546:PM,兼任后端开发、测试
  • 郭亮 3122004520:前端开发
  • 黄俊超 3122004524:后端开发
  • 吴鸿洲 3122004496:前端开发
  • 黄俊杰 3122004525:后端开发
  • 杨宝烨 3122004497:后端开发

有关用户的功能

我们的用户分为两类,第一种是纯粹的平台用户,另外一种是为这个平台工作的人员。因此,最终我们得为客户和平台工作人员各写界面。但就目前而言,我们一开始的工作人员就是开发人员自己,所以后台管理可以由开发者来担任,所以最重要的是为客户提供服务的模块必须要完成。后面的功能也都是以客户所看到的功能为主。

  1. 用户登录
  2. 用户注册
  3. 用户信息修改

用户登录

参考市面上的用户登录功能,得出以下需求:

  • 通过注册定义的账号+设置好的密码直接登录
  • 忘记密码的用户,可以通过向绑定的手机号发送验证码,验证通过可直接修改密码
  • 为用户提供一个简单明了的登录页面,这个登录页面必须明确所要填写的信息

用户注册

用户注册有三个关键点:

  • 设置密码。密码的设置要考虑安全性,所以前端在传输信息到后端前需对数据进行加密(使用MD5之类东西)
  • 绑定手机号。通过向手机号发送验证码,用户输入验证码以绑定。
  • 用户自定义账号,该账号可于用户的登录。

用户信息的修改

用户在登录过后,可在个人信息的页面对自己的相关信息进行修改。因此,登录完成后的欢迎页面需要提供这样的页面,方便用户跳转过去对信息进行修改。

但用户并不能随意修改一些信息,比如:

  • 密码的修改必须要有原密码才能重新设置新密码
  • 手机号必须向旧手机号申请验证码并且验证通过后才能修改

有关二手的商品功能

用户登录后,商品界面自动展示。

商品界面需具有以下功能:

  1. 商品的搜索
  2. 商品的分类展示(分类可以由后台管理人员进行管理)
  3. 商品的分页展示(或者不分页也行,就像刷短视频那样能让用户一直刷新展示新商品)
  4. 商品的排序,按热度、价格等之类的进行排序(降序、升序)
  5. 商品的展示形式,以n行1列的方式展示商品的简要信息
  6. 用户能发布商品,为此用户需要提供一些商品的基本信息,填写完基本信息后发布,用户的商品就能在界面的某处呈现
  7. 点击商品能查看其详细信息,详细信息包括:
    • 发布的商品的用户
    • 发布时填写的商品信息
    • 与商品发布者进行聊天选项

交易凭证的生成

在我们的设想中,网站本身并不提供金钱交易功能。我们只是促进产生交易关系的一个平台。而交易凭证是为了提供一个凭证,提供双方所达成的交易里的相关信息。

交易合同的生成,需要由买家发起,最终由卖家同意后,方可生成。
因为一个二手商品可能有多个买家,卖家需要和各个买家进行沟通后,最终选择一个买家签订交易凭证。

商品的交易中,需不需要提供为用户提供现金交易功能?

我们从反方面来想:如果为买卖双方提供了现金交易功能,对于用户其实是非常方便的。在当前时代,用户很容易适应这种支付方式,并认为网络平台就应该提供这样一种支付方式。对于开发者而言,在这种产生交易的现金流中捞点油水也是很便利的。

但我们团队的初心在于,为所有在校大学生的书籍的按需流动做出贡献,如果这个平台能有点收入产生,那再好不过。但考虑到我们团队缺乏现金交易模块的实现经验,所以我们决定不做线上交易的功能。

我们的设想是这样的:

  1. 买卖双方在线上确认交易的订单后,买卖双方不用做任何事,只需等待工作人员上门
  2. 工作人员确认有交易订单产生后,首先找到卖方,确认交易的内容物无误后,卖方将交易内容物转交给工作人员。
  3. 工作人员将交易内容物转交给买方,买方确认无误后,支付现金(也可以使用微信之类的支付方式)给工作人员,这个环节中工作人员收取一定的服务费
  4. 最后,由工作人员将交易金额转发给卖方

在上述过程中,我们假设双方都在同一个学校的同一个校区(未来可能会通过快递等一些手段优化交易),既然都这么近,工作人员好像没有必要存在。

我们考虑到大部分大学生其实都带有一些社交恐惧症的属性,他们可能不希望与人打交道,他们只想能足不出户就能拿到自己想要的书籍,为此,让他们支付一些服务费也是没有什么问题的。

还有有些人,他们就没有社交恐惧症属性,他们敢和卖家线下面基,觉得服务费完全没有必要。

因此,服务费的收取对象是那些不想与人打交道、不想出门,但又稍微有那么些零花钱的同学。

同时,服务费的大小,也是决定工作人员存不存在的一个要素。
如果过高,那大部分人都不会想要支付这个费用,工作人员的生存空间就会被压缩到很低。
如果过低,那几乎所有人都会选择工作人员提供的服务,但这样工作人员就会很忙。而我们一开始的工作人员并没有这么多时间。
所以,最好的方式就是将服务费定在一个不高也不低的程度。

这样既可以推动一部分不愿出门的同学,也可以减少工作人员提供服务的时间成本。

交易凭证产生后,所交易的二手商品便会从展示页面中删除。其余买家也就会得到交易失败的提醒。

对于这个交易功能,从技术可行性的角度来讲,我们团队中没有人有开发交易功能的经验,并且大家对Java的Web开发的学习也还在起步阶段,所以从技术层面上来说有点困难。

而且,做一个交易平台的难点不在于平台是否提供了多少功能,更多了在于平台有没有办法规范商家和客户群体之间的交易的合理性。

如果平台无法保证卖家将商品交付给买家,或者买家不付钱给卖家,这对平台来说都是不利的。

团队中git的协作

首先,先创建一个基础的项目文件夹,准备好后将这个项目上传到github远程仓库的main分支(或者master分支,叫什么随意只要统一选一个就行)中。这里假定是main分支

这个时候,所有的团队成员,首先会将这个github仓库,fork到自己的账号下。

这样,在自己的本地仓库中,就会有一个一模一样的仓库,成员自身所负责的功能都是在自己fork下来的仓库中进行的。

由于原github仓库只有一个main分支,所以fork下来的也只有一个main分支。

我们不能随意地修改fork下来的main分支,因为main分支将来是用来提交到原仓库中的,如果随意修改main分支,那这么多人的修改可能会造成冲突。

所以要做出一些规定,来防止冲突的产生。

规定如下:

  1. 在项目文件夹中,每个成员都有自己的工作区(其实编写不同的文件),即使我们不工作在同一个仓库中,这个工作区也是必须划分的。因为,每个人的修改最终都会提交到源仓库的main分支中,如果有多人对同一个文件进行修改,就很大可能产生冲突。
  2. 团队成员将源仓库fork到自己的仓库后,将自己的仓库clone到本地,然后在本地新增一个分支develop(假定是这个,具体叫什么其实可以随意)。
  3. 成员自己的工作区中,完成自己所负责的功能。当该功能通过成员自身的基本测试后,本地main分支就可以合并(merge)develop分支,这样main分支就拥有了develop分支完成的功能了。
  4. 之后,main分支就可以将新增内容push到成员自己fork下来的仓库中。
  5. 成员的github仓库就会有是否提交修改到源仓库的提示,成员编写提交信息后交由源仓库主人进行判断决定是否将成员的提交合并到源仓库的main分支。
  6. 成员可以通过 git remote add 远程分支名 远程分支URL 添加源仓库添加为远程仓库。并通过,git pull 远程仓库名 可以将远程仓库的内容更新到本地仓库的分支中。如果团队成员都严格地工作在自己负责的区域的话,冲突就基本不会产生。

Copyright © 2024 Aderversa
Powered by .NET 8.0 on Kubernetes