Outfits——项目系统设计与数据库设计

Outfits——项目系统设计与数据库设计

这个作业属于哪个课程 2021春软件工程实践W班(福州大学)
这个作业要求在哪里 团队作业4
这个作业的目标 将项目的设计落地,继续完善设计类图,并在正式开始开发之前设计好系统和数据库、制定好计划和分工
其它参考文献

开发计划时间安排

前端里程碑 具体事项 时间
拟定接口内容 和后端开发讨论接口内容、每个接口中的具体字段 4.20
搭建APP开发框架 确定要使用的开发框架、开源库,建立好基本的工具类,搭建好空APP框架 4.24
完成登陆注册界面 完成登录、注册、修改密码页 4.25 ~ 4.26
完成衣柜部分界面 包含衣柜主页、添加衣服页、修改衣服页面、切换视图页等 4.27 ~ 4.30
完成搭配部分界面 包含搭配主页、添加搭配、推荐搭配的页面 5.1 ~ 5.3
完成社区部分界面 包含社区主页、搜索页面、博客详情页、发布博客页等 5.1 ~ 5.4
完成我的部分界面 包含我的主页、修改信息页、关注/粉丝列表页、用户个人信息页 5.1 ~ 5.4
优化界面逻辑 进一步优化app的UI界面,优化各界面跳转交互 5.4 ~ 5.10
后端里程碑 具体事项 时间
数据库设计 完成数据库表的建立以及数据库文档的编写 4.18 ~ 4.19
编写后端接口文档 讨论后端所需接口并编写接口文档 4.20
完成系统设计说明书的编写 分为系统分析、详细设计与安全权限设计三个模块编写 4.21 ~ 4.23
数据库测试 数据库的性能、合理性的测试 4.24
完成登陆注册接口的编写 完成登录、注册、忘记密码、发送验证码接口的编码 4.25 ~ 4.26
温度推荐算法的实现 建立气候分析模型,由每日气候特点计算出适宜的穿衣等级,从而给出推荐 4.25 ~ 4.28
完成衣柜部分接口的编写 完成导入衣物、修改衣物、组织抠图接口、删除衣物、获得所有类别下的衣物接口的编码 4.27 ~ 4.30
抠图算法的实现 比照论文构建模型,实现抠图算法 4.28 ~ 5.4
喜好推荐算法的实现 采用分析本地搭配和收藏的搭配来建立用户喜好模型 4.29 ~ 5.2
完成搭配部分接口的编写 完成添加搭配、删除搭配、获得所有场合下的搭配接口的编码 5.1 ~ 5.3
完成社区部分接口的编写 完成获得所有博客、获得该用户关注人的博客、搜索博客、发布博客接口的编码 5.1 ~ 5.4
完成我的部分接口的编写 完成修改个人信息、查看用户收藏的所有博客、查看用户所有关注者、查看所有粉丝接口的编码 5.1 ~ 5.4
算法接口 抠图算法、推荐算法、算法优化 5.4 ~ 5.5
接口测试和改进 与算法端建立连接后进行测试和改进 5.6
算法性能测评和微调 算法性能测评和微调 5.7

开发计划分工安排

前端开发内容 开发者
拟定接口内容 凌铧钦
搭建APP开发框架 凌铧钦
完成登陆注册界面 凌铧钦
完成衣柜部分界面 凌铧钦
- 衣柜主页 凌铧钦
- 添加衣服页 凌铧钦
- 修改衣服页 凌铧钦
- 切换视图页 凌铧钦
完成搭配部分界面 凌铧钦
- 搭配主页 凌铧钦
- 添加搭配页 凌铧钦
- 推荐搭配页 凌铧钦
完成社区部分界面 林沧海、陈雨虹
- 社区主页 林沧海
- 搜索帖子页 林沧海
- 博客详情页 林沧海
- 发布博客页 陈雨虹
完成我的部分界面 陈雨虹、张海浪、张吴晗
- 我的主页 陈雨虹
- 修改信息页 张吴晗
- 关注/粉丝列表页 陈雨虹
- 用户个人信息页 张海浪
优化界面逻辑 凌铧钦
后端开发内容 开发者
数据库设计 蔡瑞金、林龙星
编写后端接口文档 吴晗杰、蔡瑞金
完成系统设计说明书的编写 蔡瑞金、邱梓洛
数据库测试 林子鹏
完成登陆注册接口的编写
- 用户登录 蔡瑞金
- 用户注册 蔡瑞金
- 忘记密码 林子鹏
- 发送验证码 蔡瑞金
完成衣柜部分接口的编写
- 获得所有类别下的衣物 吴晗杰
- 导入衣物 吴晗杰
- 组织抠图接口 吴晗杰
- 删除衣物 吴晗杰
- 修改衣物 吴晗杰
完成搭配部分接口的编写
- 添加搭配 蔡瑞金
- 删除搭配 蔡瑞金
- 获得所有场合下的搭配 蔡瑞金
完成社区部分接口的编写
- 获得所有博客 林龙星
- 获得该用户关注人的博客 林龙星
- 搜索博客 林龙星
- 发布博客接口的编码 林龙星
完成我的部分接口的编写
- 修改个人信息 林龙星
- 查看用户收藏的所有博客 林龙星
- 查看用户所有关注者 林龙星
- 查看所有粉丝 林子鹏
算法实现
- 抠图算法 吴晗杰、邱梓洛
- 喜好推荐算法(协同过滤) 林子鹏、邱梓洛
- 天气推荐算法 林子鹏、邱梓洛
- 算法性能优化 林子鹏、邱梓洛
算法接口
- 抠图算法 吴晗杰、林子鹏、邱梓洛
- 推荐算法(协同过滤) 林子鹏、邱梓洛
- 算法性能优化 林子鹏、邱梓洛

体系结构设计

体系结构设计

  • 我们小组采用MVVM架构模式。通过VM进行View和Model之间的数据动态传输。

功能模块层次图

功能模块层次图

  • 将功能细分为上图五个模块,逐层分配。详情可见系统设计说明书。

ER分析

设计思路

  • 我们采用的设计策略是自顶向下地进行需求分析,然后再自底向上地设计概念结构。即先设计两个子系统的分E-R图,然后再将它们集成起来,得到全局E-R图

总体ER图

总体ER图

  • 区分为四个板块 下文详细说明

我的与社区板块ER图

我的与社区板块ER图

  • 用户有账号、密码、昵称、性别、头像、简介这六个字段。博客有文章、图片、标题和发布时间这四个字段。
  • 用户与用户的关注关联是多对多的。
  • 一个用户可以发布多个博客。
  • 用户与博客的收藏关联是多对多的。

衣柜与搭配板块ER图

衣柜与搭配板块ER图

  • 一个用户可以上传多件衣服,管理多个搭配,管理多个场合。
  • 一个场合对应多个搭配。
  • 搭配和衣服是多对多的关系。
  • 一个衣物属于一个子类别。
  • 一个类别下分多个子类别。
  • 一个衣物属于一个类别。

表结构设计

数据拓扑图

拓扑图1

  • 展现表的字段属性。
    拓扑图2
  • 展现表之间的的关联。

数据库表-用户部分

用户表
关注用户表

数据库表-博客部分

博客表
收藏博客表

数据库表-衣物部分

衣物表
衣物类别表
衣物子类别表

数据库表-搭配部分

搭配列表
搭配列表表

设计类图

类图一

类图一

  • 相比于上一次团队作业展示的类图,这次我们把个人搭配列表类中的“新增场合”和“删除场合”方法转移到了场合类中,保证了类的封装性。
  • 这次我们还新增了一个子类别类,保证了温度推荐搭配算法的准确度。

类图二

类图二

系统安全和权限设计

系统安全

  • 用户只能通过给定的外部接口操作数据库:外部接口向内部接口传递参数,然后进行预编译sql语句后才能操作数据库,这从根本上杜绝了用户直接操作数据库的可能。
  • 同时,系统对用户发出的访问请求进行身份和授权认证,具有合法权限的用户才能进入系统操作环境,对数据库进行权限范围内的访问;同时将认证及访问情况记录在日志中,便于日志审计。
  • 对用户的密码采用 MD5 加密后的散列值进行存储,一定程度上保护了用户密码信息。
  • 后台设置拦截器防止同一IP在短时间内进行大量的恶意请求,造成服务器资源紧张,瘫痪的现象。
  • 后端设置过滤机制,使用过滤器对没有注册登录用户的请求进行拦截,不予放行,防止非法用户恶意操作,只有经过常规途径注册并登录的用户才能使用系统

权限设计

  • Android端与数据库部署再同一台服务器上,只有Android端有权对数据进行访问和进行数据的存取。
  • 用户发布的博客只有本账号才有修改删除权限,其他用户只有访问权限。
  • 用户信息只有本账号才有修改权限,衣物信息有修改删除增加权限。

健壮性

  • 当参数错误时,系统会判断错误信息,然后返回状态码400.;当未找到资源,请求的路径错误时,会返回状态码404;如果系统接收请求但拒绝处理,就会返回状态码403;要是系统内部出错,会返回状态码500。即使出现错误,系统还是会继续进行,保证系统的健壮性。

Q&A

  • 1.新建场合为什么在个人搭配列表里?
    • 由于将新建场合、删除场合方法放在搭配列表里破坏了封装性,所以应将这两个方法放置在场合类中。
    1. 推荐穿搭在类图中如何体现?
    • 作为“推荐搭配列表”属性放在个人搭配列表类里,相当于个人搭配列表中包含了用户本地搭配列表和推荐搭配列表,用户每一次点击推荐搭配时,都会更新推荐搭配列表

本次工作流程、分工及贡献度

本次工作流程

我们小组在上次答辩结束后开了一次全体总结大会,分析了之前在团队工作中遇到的问题,并试图寻找解决办法,故此次团队作业是我们小组一次新的尝试。

  1. 明确提交材料
    • 数据库设计说明书
    • 系统设计说明书
    • 博客
    • PPT
    • 评审表
  2. 明确负责人,经由负责人制定标准,由负责人对接内部成员和组长
    • 数据库设计说明书 负责人:蔡瑞金
    • 系统设计说明书 负责人:凌铧钦
    • 博客和PPT 负责人:陈雨虹
  3. 负责人指定标准后和组长协商工作流程,开全体会议发布任务
  4. 明确数据库设计说明书要在系统设计说明书前完成,明确任务完成时间线
    • 数据库设计说明书 4.20 初版完成
    • 系统设计说明书 4.22 初版完成
    • 博客撰写 4.23
    • PPT绘制 4.23
  5. 4.22晚开会:
    • 数据库和系统设计说明书的一部分问题的提出与修改
    • 数据库表的结构的讲解
    • 系统设计说明书功能模块的讲解
  6. 4.23博客制作、PPT制作、说明书返工修改(系统说明书大幅修改)
  7. 4.24博客制作、PPT制作、贡献度计算

分工及贡献度

  • 团队分工会议组织 陈雨虹(负责)

  • 团队任务分配和组长职责履行 陈雨虹

  • 数据库设计说明书 蔡瑞金(负责)

    • 数据库说明书组长职责履行 蔡瑞金
    • 数据库说明书撰写
      • 数据库设计框架撰写 蔡瑞金
      • 初版说明书撰写 蔡瑞金
      • ER图绘制 邱梓洛 林龙星 林子鹏
      • 数据库设计 蔡瑞金 林龙星 林子鹏 吴晗杰
      • 说明书数据库表格填充 邱梓洛
    • 数据库修改 林子鹏 吴晗杰 蔡瑞金
    • 说明书修改 林龙星 林子鹏 吴晗杰 邱梓洛 蔡瑞金
  • 系统设计说明书 凌铧钦(负责)

    • 系统设计说明书组长职责履行 凌铧钦
    • 系统设计说明书框架撰写 凌铧钦
    • 设计概述整合、系统详细需求 陈雨虹
    • 系统详细设计
      • 功能描述 张海浪
      • 输入输出数据项及格式 邱梓洛 张吴晗
      • 顺序图绘制 邱梓洛 张吴晗
      • 接口设计 吴晗杰 蔡瑞金 凌铧钦
      • 所有模块的性能模块 吴晗杰
      • 异常处理、注释设计、限制条件、验收标准 林龙星 林沧海
      • 系统设计体系结构 凌铧钦
      • 功能模块层次图 陈雨虹
    • 系统设计说明书修改 陈雨虹 林子鹏 凌铧钦
    • 系统设计说明书整订 凌铧钦
    • 系统设计说明书返工
      • 输入格式 邱梓洛
      • 输出格式 吴晗杰
      • 接口设计 林子鹏
      • 整合 林子鹏
  • PPT 陈雨虹(负责)

    • PPT模板初制 林沧海
    • PPT逻辑修订 陈雨虹 林沧海
    • PPT终版 林沧海
    • PPT主讲 陈雨虹
  • 博客 陈雨虹(负责)

    • 博客模板初制 张海浪
    • 博客内容修改 陈雨虹 吴晗杰 林子鹏
    • 博客图片插入 张海浪
    • 博客最终定稿 陈雨虹
  • 评审表 林沧海(负责)

  • 评分工作 林子鹏(负责)

    • 分数评定 林子鹏
    • 分数计算 张吴晗

成员贡献度表格

学号 贡献度
221801336 陈雨虹 9.5
221801307 蔡瑞金 11.4
221801239 林龙星 11.1
221801210 林子鹏 11.5
131802125 邱梓洛 9.7
221801208 吴晗杰 10.7
221801227 林沧海 9.2
221801201 凌铧钦 9.8
221801425 张吴晗 8.7
221801401 张海浪 8.4

相关链接

posted @ 2021-04-24 15:19  Outfits  阅读(363)  评论(3编辑  收藏  举报