第六次团队作业:项目系统设计与数据库设计
这个作业属于哪个课程 | 2018级计算机和综合实验班 |
---|---|
这个作业要求在哪里 | 第六次团队作业:项目系统设计与数据库设计 |
这个作业的目标 | 系统设计与数据库设计 |
团队的github仓库链接 | juiceData |
一、预期开发计划时间安排
时间 | 计划安排 |
---|---|
第十周 | 完成项目系统设计与数据库设计 |
第十一周 | 团队磨合在AndroidStudio上共同协作开发 |
第十二周 | 小组分工完成代码编写 |
第十三周 | 完善并整合代码并进行测试 |
第十四周 | 完成测试,发布APP |
二、预期开发计划分工安排
成员 | 角色 | 预期分工安排 |
---|---|---|
马鑫 | 安卓 | 数据获取 |
王昱翔 | PM | 成绩模块、项目管理 |
刘启麟 | 安卓 | UI设计 |
冯琳 | UI | 软件测试、UI设计 |
翟怡慧 | 测试 | 软件测试 |
三、设计思路
体系结构设计
功能模块层次图
分为三个模块,分别是:用户信息模块,课表模块,成绩模块。
类图
ER图
对应的只有一个用户实体,一个用户拥有一个签到表,一个学生一个学期拥有一张课程表,课程表里含有多个课程信息。
表结构设计图
系统安全和权限设计
1、系统安全:
不同于常见的客户-服务器范例,SQLite引擎不是个程序与之通信的独立进程,而是连接到程序中成为它的一个主要部分。整个数据库(定义、表、索引和数据本身)都在宿主主机上存储在一个单一的文件中。使用SQLite来存储数据,数据库文件将存储在应用私有目录,其他应用无权访问,可以保证数据安全性。但是一些Android手机获取了Root权限,这可能导致数据库文件被非法获取,可以读取到数据库中存储的数据。如果数据库中存储着用户的敏感数据,我们的程序就会面临严重的安全漏洞隐患。为了解决这个问题,我们会将用户的敏感数据加密后再写入数据库,以保证用户敏感数据不会泄露。
2、权限设计:
Android系统内置了SQLite数据库,并且提供了一整套的API用于对数据库进行增删改查操作。
做为一个嵌入式的数据库,安卓SQLite只能由对应的应用访问,每个应用都只能访问自身的数据库。
四、Q&A
Q1:是否可开发一个有关考试提醒的功能,提前为同学们发送考试通知?
A:经过老师的讲解与分析,我们也发现课前提醒的功能不是非常必要,然而考试提醒确实一个非常好的点子,所以我们将课前提醒功能换为考试提醒功能,这也将是我们开发的主要功能之一。
Q2:关于成绩查询功能具体都有什么分类?
A:成绩查询功能我们打算分为两类,一类是有关每学期的综合成绩查询,还有一类是统考成绩查询,如四六级成绩,计算机等级考试成绩等。
五、Commit记录
六、组员分工、组员贡献度
姓名 | 分工安排 | 贡献度 |
---|---|---|
马鑫 | 撰写随笔、负责两份说明书的大纲、内容完善以及审核、修改 | 22% |
冯琳 | 补充文档内容、ppt编写、画图 | 20% |
刘启麟 | 文档内容补充、画图 | 18% |
翟怡慧 | 文档内容补充、画图 | 18% |
王昱翔 | 分配任务,对各个部分进行审核、敲定,随笔编写、画图 | 22% |