团队作业3-需求改进&系统设计
团队作业3-需求改进&系统设计
这个作业属于哪个课程 | https://edu.cnblogs.com/campus/gdgy/networkengineering1934-Softwareengineering |
---|---|
这个作业要求在哪里 | https://edu.cnblogs.com/campus/gdgy/networkengineering1934-Softwareengineering/homework/12141 |
这个作业的目标 | 进行需求和原型改进,进行系统设计 |
需求&原型改进
选题和需求修改
问题1(来自其他组的提问):登录功能的发送手机验证码如何实现?
修改1:原本计划使用阿里云的短信服务,但由于现在该服务审核相对严格,需要上线的项目才能过审,所以经过讨论我们暂时放弃了这个功能,考虑改为使用邮箱或者直接取消该功能。
问题2(来自老师课上的提问):需求中的“在地图上显示动物的位置“,你们计划如何实现?
修改2:原本我们打算调用诸如高德、百度地图等地图软件的API,但后面考虑到提供的服务范围仅限于广东工业大学校园内,使用外部地图API可能范围会太大,也会增加开发的难度。最后我们决定改为使用这张手绘的广工大地图。
原型设计
- 原型预览:http://moxiaoxiao.net:200
- 主页模块
- 地图模块
- 添加模块
- Tips模块
- 用户中心模块
需求规格说明书修改和完善
用户
- 管理员
- 对用户的权限管理
- 增删改查所有用户上传的
动物信息
,用户留言
- 对用户的一系列操作进行
审核
- 发布公告
- 普通用户
- 注册、登录、填写用户信息
- 上传
动物信息
,管理员审核通过即可显示 - 根据
动物信息
进行查询 - 在地图上查看对应区域动物的位置
- 在
动物信息
下方留言 - 申请
领养
,领养后该动物将从地图上消失,但其条目信息仍会存在数据库中
详细功能如下
动物
- 动物登记
- 用户上传
动物信息
进行登记 - 管理员确认登记信息
- 领养动物
- 在
待领养动物
中选择想领养的动物
- 提交
领养
的申请 - 管理员处理申请并返回
处理结果
- 若
允许领养
则根据处理结果中给出的指定地址
和指定时间
领取动物
- 弃养动物
- 上传动物信息
- 提交
弃养
的申请 - 管理员处理申请并返回
处理结果
- 若
允许弃养
则根据处理结果中给出的指定时间
将动物带到指定地址
- 走失登记
- 上传动物信息
- 提交
走失登记
的申请 - 管理员处理并发出
走失公告
- 发现走失动物的处理
其他用户
发现走失动物
时通知动物主人
- ...待处理
上周的需求规格说明书有什么不足?
在上周的《需求规格说明书》初稿中,我们只从用户的角度出发,根据用户的角色列出了系统大致的功能,但作为一个流浪动物系统,”主角“自然是动物,所以完善时我们从动物的角度出发,细化了各部分的功能。
具体改进内容
添加了关于动物的具体功能,以及简化了用户部分的说明。
应用场景设计
1.广东工业大学计算机学院的学生小明是一位撸猫爱好者,无奈因为舍友对猫毛过敏无法在宿舍养猫。通过该系统查询到一只可爱的流浪三花猫,并且在系统内阅读了如何正确地与流浪猫相处的科普后,他买好了健康无公害的猫罐头,根据系统内的地点找到了这只三花猫,并且进行了愉快的投喂。
2.南亭村某对空巢老夫妇因儿女外出打工,想在家里养一只动物来排解寂寞。通过该系统的首页看到了一只因绝育被主人弃养的英短银渐层猫。在提交领养申请后,夫妇两人来到了指定地点,将猫咪接回了家,并做好了卫生检查。
功能分析四象限
根据《构建之法》和四象限管理法的理念,我们将任务按照重要程度和紧急程度分为四大模块:重要且紧急
、重要但不紧急
、紧急但不重要
、既不重要也不紧急
。
-
重要且紧急:这类事情具有时间的紧迫性和影响的重要性,无法回避也不能拖延。
-
重要但不紧急:这类事情不具有时间上的紧迫性,但却具有重大的影响或收益,对于个人或者企业的发展都具有重大意义。
-
紧急但不重要:这类事情虽然紧急但并不重要,我们必须认真权衡,仔细考量是否有必要去做这类事情,避免占用过多的时间。
-
不重要也不紧急:这类事情没有时间的紧迫性,也没有任何的重要性,多是一些琐碎的事情。
WBS
根据设计好的原型,分解出如下WBS:
系统设计
架构设计
架构图
各部分的具体功能基本与WBS图相同,这里不再赘述。
摘要说明
前端页面 | 直接与用户打交道,与用户进行交互 |
---|---|
后端系统 | 负责处理用户的请求,并衔接数据库,为用户提供其想要的数据 |
数据库 | 负责数据的持久化 |
前端页面设计
根据我们小组负责前端同学的经验,本来计划Web作为前端平台,但经过讨论和原型设计以后最终决定以小程序的形式展现。前端开发将基于Uni-App,是一个使用Vue.js开发前端应用的框架,支持多种平台,具有开发者数量众多,性能优秀,周边生态丰富,开发成本低等优势。
前端开发将基于Vue和微信小程序的API。
后端系统设计
为了满足这次作业的开发需求,后端语言我们选择了Java。Java作为目前互联网到企业平台应用最广泛的编程语言,具有易于编写,内置垃圾收集,丰富的开源社区支持等优势,我们小组负责后端开发的成员一直以来主要学习的语言也是Java。
为了快速实现后端的功能,我们将采用SpringBoot框架。SpringBoot集成了大量第三方库,可以实现快速开发的需求,也可以简化繁杂的配置,同时我们也使用MyBatis-Plus框架来简化增删改查等操作。
数据库设计
模型图
各表的作用
- animal 流浪动物的信息
- comment 评论
- article 科普、注意事项、Tips等文本信息
- location 位置
- animal_picture 动物图片
- application 关于动物的申请
- answer 关于申请的答复
- user 用户
注:数据库结构暂定,随时可能根据开发过程中遇到的问题和需求改进和变化
Alpha任务分配计划
Product Backlog
Sprint Backlog
Alpha开发任务分配
成员 | 任务分配 | 完成时间 |
---|---|---|
陈卓鸿 | 数据库设计、后端框架搭建、后端相关接口开发 | 2021-12-7 |
黄润波 | 后端测试 | 2021-12-7 |
林郁达 | 原型设计、前端界面设计、数据库设计 | 2021-11-23 |
王春锦 | 前端界面开发 | 2021-12-5 |
张超榆 | 后端相关接口开发、测试 | 2021-12-7 |
张栩 | 数据库设计、后端相关接口开发、文档编写 | 2021-12-7 |
甘特图
测试计划
引言
-
项目背景:本项目是一个为广东工业大学及附近居民服务的流浪动物管理系统,旨在协调我们与流浪动物的生活环境,并为用户提供一个了解、领养、弃养它们等服务的渠道。
-
测试术语:黑盒测试,功能测试,测试项,严重性
性能测试(Performance Testing)
在一定负载情况下,系统响应时间、搜索筛选结果等性能是否满足用户特定的性能需求。
负载测试(Load Testing)
在一定的软甲、硬件及网络环境下,在不同虚拟用户数量的情况下进行一种或者多种业务,测试服务器的性能指标是否在用户要求的范围内,用于确定系统所能承受的最大用户数、最大有效用户数以及不同用户数下的系统响应时间和服务器的资源利用率。
压力/强度测试(Stress Testing)
在一定软件、硬件及网络环境下,模拟大量的虚拟用户想服务器产生负载, 使服务器的资源处于极限状态下并长时间连续运行,目的是用来测试服务器高负载情况下是否能够稳定工作。
配置测试(Configuration Testing)
在一定的软件,硬件及网络环境下, 在数据库中构造不同数量级别的数据记录,运行一种或多种业务,在一定虚拟用户数量的情况下,获取不同配置的性能指标,由于选择最佳的设备及参数配置。通过配置测试可以将性能缺陷放大,方便定位瓶颈。
-
项目人员:所有参加开发的组员
任务概述
-
测试范围:前后端开发中的所有接口,以及数据库的增删改查操作
-
测试方法:手动测试、压力测试
-
测试停止及恢复条件:
测试停止条件:开发人员需要更改代码
恢复条件:确认代码修改无误 -
工具引用:Junit、Swagger
-
测试环境:IDEA、SQL yog
测试资源
- 硬件资源需求:计算机,手机
- 软件资源需求:IDEA、SQL yog
- 测试人员需求:所有参与开发的人员
风险评估
- 人力方面:所有参与开发的人员
- 时间方面:约3周