这个作业属于哪个课程 | <软件工程2024-双学位> |
---|---|
这个作业要求在哪里 | <团队作业3——需求改进&系统设计> |
一、需求原型改进
问题1:预想中想实现的功能是否能够通过所选择的语言来实现?
制作课表小程序可以使用Python的各种图形用户界面(GUI)库,确定课表数据的来源,打算使用网络接口(如API)、网页抓取之类的方法。
问题2:如何吸引目标用户?
优化体验: 确保小程序界面简洁直观,便于使用。
推广:利用社交媒体,线下等渠道进行推广,宣传并吸引用户下载和使用。先小范围的使用确定稳定进行大面积推广。
2.通过采访同学来了解他们的需求
通过沟通了解到很多时候学生们如果通过教务系统查询课表需要重复输入账号和密码,并且无法直接查看课程的详细信息。
所以我们打算将程序设计成扫一眼就知道要去哪上课,要上什么课,在哪个时间段的样子。并且添加一些教务系统其他存在的功能(比如考试查询)。
3.修改需求规格说明书
(1)不足:过于普通,功能方面没有优势,对用户没有足够吸引力,无法打败同类竞品。
(2)改进:增加新功能页面:考试查询。增强便利性。
(3)场景:小邱打开课表小程序,立刻看到了本周的课程安排。小邱滚动手机查看每天的课程,了解今天有哪些课程,以及接下来几天的课程安排。之后小邱想提前了解下一个月的考试时间安排,于是点击“考试时间查询”功能。系统显示出下个月的考试安排,包括考试科目、考试时间和考试地点等信息。小邱使用完课表小程序后,觉得这个应用非常实用,分享给自己的室友和同学。
4.四个象限
外围功能 | 杀手功能 | |
---|---|---|
必要需求 | 获取课程信息 | 简便快捷地了解时间地点等详细信息 |
辅助需求 | 考试查询 | 无需重复登陆教务系统,一键生成 |
5、WBS
二、系统设计
-
开发工具的选择:微信官方提供的开发者工具是开发微信小程序的首选工具,因为它提供了从开发、调试到预览和发布的全流程支持,以及框架、组件库和API等。
-
服务器:选择阿里云服务器,选择2核(vCPU) 2 GiB经济型ECS,云服务器暂定Windows Server系统。
-
后端技术栈:
设计后端API接口时,选择RESTful API的设计原则,包括定义清晰的URL路径、使用HTTP方法(如GET、POST、PUT、DELETE等)进行资源操作,并通过状态码表示请求结果267。
同时,基于fastadmin框架可以提高开发效率,fastadmin是一个基于ThinkPHP5+Bootstrap的快速后台开发框架,支持权限管理、CRUD操作等功能101727。 -
前端技术栈:
前端开发主要采用wxml、wxss、JavaScript等Web技术。WXML负责页面结构,WXSS负责样式,JavaScript负责交互逻辑。
微信小程序的框架分为视图层和逻辑层,其中视图层由WXML与WXSS编写,逻辑层由JavaScript编写。。
-
功能需求:
根据功能需求,课程表小程序需要展示课程信息、考试信息,提供用户管理功能,包括登录、退出、刷新课表、查询成绩等。为了保证用户数据的安全性,采用mysql数据库加加密算法存储用户账号和密码是一个合理的选择。
课表数据可以通过爬虫技术从教务网获取,使用python进行数据抓取和处理。
-
数据库:
由于用户量较小,可以不考虑使用缓存技术。随着用户量的增加,可以利用redis数据库的数据缓存功能和分布式锁技术来处理并发问题。
-
服务器部署:
将小程序后端部署到服务器时,进行域名解析和SSL证书配置,以确保数据传输的安全性和访问速度。
三、Alpha任务分配计划
-
初步实习课表基础功能
基本功能基本实现
-
界面美观
适当使用模板
-
任务拆解
四、测试计划
- 测试目标:
确认课表小程序的功能和性能是否符合需求,确保用户能够正常使用。
- 测试范围:
用户登录功能
课程信息展示功能
考试信息查询功能
用户管理功能(注册、登录、退出)
- 测试方法:
采用黑盒测试方法,对各个功能模块进行功能测试和系统测试。
- 测试环境:
操作系统:Windows Server 2016
数据库:MySQL 8.0
浏览器:Chrome、Firefox、Safari
手机操作系统:iOS、Android
- 测试工具:
JUnit(Java单元测试框架)
Postman(API接口测试工具)
JMeter(性能测试工具)
Selenium(Web自动化测试工具)
- 测试流程:
制定测试计划和测试用例
执行测试用例,记录测试结果和缺陷
修复缺陷,并进行再次测试
确认所有缺陷已修复,进行最终验收测试
- 风险评估:
数据安全性风险:确保用户数据的安全存储和传输
网络连接不稳定:尽量在网络环境稳定的情况下进行测试
用户体验不佳:根据用户反馈及时调整和优化系统功能和界面设计
- 时间安排:
测试计划起止时间:根据项目实际情况确定
测试用例设计和准备:根据项目实际情况确定
测试执行和结果分析:根据项目实际情况确定
缺陷修复和再次测试:根据项目实际情况确定