这个作业属于哪个课程 | 软件工程 (福州大学至诚学院 - 计算机工程系) |
---|---|
团队名称 | Happy Tree Friends |
这个作业要求在哪里 | 团队作业第四次—项目系统设计与数据库设计 |
这个作业的目标 | 补充完善上次作业不足部分,并新增系统设计和数据库设计部分的内容;进一步细化团队的开发计划和时间计划;细化组员分工; |
作业正文 | 正文 |
其他参考文献 | 无 |
预期开发计划时间安排
时间 | 计划安排 |
---|---|
4月20日~4月26日 | 完成模拟登录模块并开始软件界面的编码 |
4月27日~5月3日 | 完成软件界面、签到查询模块、登录模块的编码 |
5月4日~5月10日 | 完成数据解析模块、课表模块及整个软件逻辑交互的编码 |
5月11日~5月17日 | 完成对软件各个模块的功能和性能的测试,进行内部软件使用测试,修复现阶段出现的Bug |
5月18日~5月24日 | 进行核心用户的使用测试,根据用户反馈进行修改功能细节,对软件进行初步的迭代 |
5月25日~5月31日 | 优化界面交互动画,对软件编码进行优化 |
6月1日~6月7日 | 结合使用场景对最新版本软件进行整体测试,并修复Bug |
预期开发计划分工安排及本次任务分工安排
成员 | 角色 | 预期分工安排 |
---|---|---|
林涛 | 安卓 | 数据获取模块、课表模块 |
马骏 | PM | 软件测试、数据解析模块、项目管理 |
王力杰 | UI | UI设计、界面美化、界面测试 |
陈德渠 | UI设计、界面设计、博客编写 | |
蔡泽华 | UI设计、数据解析模块 | |
张体杰 | 用户登录模块 | |
陈家炜 | 签到查询模块、软件测试 | |
朱紫阳 | 签到信息模块、软件测试 |
:
姓名 | 分工安排 |
---|---|
分配任务,对各个部分进行审核、修改、敲定 | |
负责两份说明书的大纲、内容完善以及审核 | |
补充文档内容、博客编写 | |
图片绘制(据流图、类图、ER图、体系结构图、用例图)、编写《数据库设计说明》、内容审核、汇报演讲 | |
文档内容补充、PPT和演讲稿的编写 | |
文档内容补充和格式规范化 | |
项目结构图画设计
系统构思 功能模块层次图分为三个模块,分别是:用户信息模块,课表模块,签到模块。用户信息模块包含登录认证、修改认证信息、退出登陆的功能。课表模块含有显示课表、更新课表、查询课程信息的功能。签到模块具有个人签到信息提醒、查询签到记录等功能。
类图我们所面向的用户为学生,主题功能为课程表功能,所以设计了Course、stuCourseItem、Student以及Checkln,其中每个类之间的关系如下,Student与Course以stuCourseItem关联。
用例图用户通过App进行用户登录,在App上查看课表,当时间到达特定时刻,App提醒用户签到,用户可以通过App查询自己的签到记录,如果用户的个人信息需要修改,用户可以进入相关页面进行更新,在相关页面进行退出登录的操作。
ER图对应的只有一个用户实体,一个用户拥有一个签到表,一个学生一个学期拥有一张课程表,课程表里含有多个课程信息。
表结构设计图- Course表存储课程id,课程名,课程的单双周,课程的起始周,课程的负责老师,课程学时。
- 学生表用于存储学生的学号,教务网密码,以及请假系统密码。
- 学生表和课程表之间通过学号和课程号连接。
- 签到表用于记录学生学号,签到与否的消息,和记录签到时间。
1、系统安全:
主要是通过健全用户隐私条款和使用加密方案来保证用户敏感信息安全,不会上传或者泄露用户敏感信息,对于模拟登录时传输的账户密码也会进行加密。
在开发时使用官方提供支持的技术进行开发,不使用过时的API进行开发,防止软件存在高危漏洞。
该项目使用Android Jetpack组件进行开发,使用LiveData存储数据,LiveData在底层数据库更改时通知视图,对视图的内容进行更新,可以保证Activity销毁或者重建时用户数据不丢失。使用SharedPreferences和SQLite数据库实现数据的持久化,可以保证系统出错时或者是手机死机、重启时,保证用户数据的安全。
2、权限设计:
不同于常见的客户-服务器范例,SQLite引擎不是程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。使用SQLite来存储数据,数据库文件将存储在应用私有目录,其他应用无权访问,可以保证数据安全性。但是一些Android手机获取了Root权限,这可能导致数据库文件被非法获取,可以读取到数据库中存储的数据。如果数据库中存储着用户的敏感数据,程序就会面临严重的安全漏洞隐患。为了解决这个问题,我们会将用户的敏感数据加密后再写入数据库,以保证用户敏感数据不会被盗用。
Questions&Answers
Q1:需求规格说明书,缺少图名和表名等基本文档元素、验收验证标准中的软件主体功能内容不足。
A1:问题提出后我们对我们的需求规格说明书进行了修改,补充了我们所欠缺的元素。
Q2:教务网和至诚信息系统指定的加密规则是指?加密方式采用什么?支持到安卓5.0会不会有点太早了?
A2:教务网和至诚信息系统采用的都是前端加密,加密方式是:MD5。Lollipop确实是比较早的版本了,考虑到国内的一些定制ROM对非旗舰机型的系统更新支持相对滞后,而且我们希望能支持到尽可能多的安卓手机,所以Min API定为21,以及Google play target 8.0
Q3:团队成员有没有开发过安卓程序?
A3:没有相关经验,但是已经开始学习安卓开发,目前可以初步开发出小demo
Q4:有没有做出获取网页课程信息的demo?
A4:有的,目前可以获取到网页的信息
Q5:如何解决验证码识别的问题?
A5:前期尝试使用OCR,但是效果不好(低于20%),现在使用像素匹配,但是准确率较低只有50%左右,后期准备使用机器学习算法进行改进
Commit记录
贡献度
学号 | 工作内容 | |
---|---|---|
211706190 | 12.6% | |
211706121 | 13% | |
211706164 | 12.4% | |
211706162 | 14.5% | |
211706216 | 12% | |
211706199 | 11.6% | |
211706103 | 11.7% | |
211706160 | 12.2% |
链接
github团队仓库链接
团队名称_系统设计说明书.pdf 提取码:xd64
团队名称_数据库设计说明书.pdf 提取码:gxln
团队名称_系统设计和数据库设计答辩PPT.pdf 提取码:ouxi