一次完整的软件工程课程设计

目录

    • 引 言
    • 1 可行性分析
        • 1.1 技术可行性分析
        • 1.2 经济可行性分析
        • 1.3 社会可行性分析
    • 2 需求分析
        • 2.1 功能需求
          • 2.1.1 系统用例图
          • 2.1.2 用例规约
          • 2.1.3 领域对象模型
          • 2.1.4 状态图
        • 2.2 非功能需求
          • 2.2.1可靠性需求
          • 2.2.2安全性需求
          • 2.2.3开发性需求
          • 2.2.4性能需求
        • 2.3 数据库概念结构设计
          • 2.3.1数据实体描述及E-R图
          • 2.3.2数据库概念模型
    • 3 总体设计
        • 3.1 系统架构设计
        • 3.2 功能模块设计
        • 3.3 系统流程图设计
        • 3.4 系统类图设计
          • 3.4.1边界类图
          • 3.4.2控制类图
          • 3.4.3实体类图
        • 3.5 核心模块顺序图设计
        • 3.6 数据库逻辑结构设计
          • 3.6.1关系模式设计
          • 3.6.2关系模式规范化
          • 3.6.3数据库逻辑模型
          • 3.6.4数据库外模式设计
    • 4 详细设计
        • 4.1 用户界面设计
        • 4.2 数据库物理结构设计
          • 4.2.1数据库表结构设计
          • 4.2.2数据库表索引设计
        • 4.3 实体类详细设计
        • 4.4 功能模块详细设计
    • 5 测试
        • 5.1 测试计划
          • 5.1.1测试目的
          • 5.1.2测试范围
          • 5.1.3测试进度计划
          • 5.1.4测试环境和配置
          • 5.1.5测试人员
          • 5.1.6测试类型
        • 5.2 测试方案

引 言

??生活中,我们经常遇到这样的情况。好友的生日到了,可是我们却忘记了引发不必要的尴尬。作为社团部长,要照顾每个小干的感情,帮他们过生日,可小干人数实在太多了,我们记不过来。这时候,要是有一个简单便捷的软件帮我们解决这个问题,一个能受到大家的欢迎。
??基于此背景下,群组生日提醒系统设计孕育而生。这是一个基于微信小程序平台的简单系统。用户可以微信授权登录小程序,建立群组,邀请成员进群组。这样,当一个成员的生日即将到来时,一般为生日前7天,群组内的除了寿星之外的每一个成员都会收到系统推送的小程序微信通知,这样,再也不怕整个社团都忘了某个成员的生日这种尴尬的事情发生了。同时,用户也可以添加自己的特别关心,不错过每一个好友的生日。
以下为本系统的详细设计。

1 可行性分析

1.1 技术可行性分析

??系统可主要依托于微信小程序平台,这样方便推送消息提醒。另一方面,也有利于借助微信便捷增加用户及组群分享。技术上,后台代码可由java开发,项目使用springboot,交由maven管理,数据库方面使用mysql,及访问层使用mybatis框架。前端由微信小程序提供的标记语言开发。消息推送使用微信小程序提供的接口,数据库也可使用微信小程序提供的云数据库。

1.2 经济可行性分析

??微信小程序平台免费面向开发者,不过云数据库可能需要购买,总体开发经济成本很低。
??同时项目开发完成后,免费面向公众开放,可取得的经济效益较低。不过如果流量较大的话,可由广告获取较可观经济效益。

1.3 社会可行性分析

??市场方面个人认为这一小程序准确满足了人们的需求,具有较大市场。合理开发及运营应该能取得用户喜爱并推广。
??政策方面只要遵守微信小程序开发者守则即可顺利上线运营。

2 需求分析

2.1 功能需求

2.1.1 系统用例图

一次完整的软件工程课程设计
2.1.4 状态图

一次完整的软件工程课程设计
2.3.2数据库概念模型

??小程序用户由微信用户授权登录是创建。是微信用户在小程序里的对应身份。微信用户可以在修改不同于微信的用户名,头像等,但每个用户一一对应一个微信账号。
??群组有小程序用户创建而来,一般同微信群一样,群组可有多名用户,生日提醒群发时基于此群组。
??特别关心由用户创建而来,不对应某具体用户,只有姓名及生日,生日提醒类似与个人备忘录。E-R图如上。

3 总体设计

3.1 系统架构设计

??系统采用传承MVC三层架构,即表现层-服务层-持久层-数据库,使用tomcat集群做并发处理。

一次完整的软件工程课程设计

3.3 系统流程图设计

一次完整的软件工程课程设计
3.4.2控制类图

一次完整的软件工程课程设计

3.5 核心模块顺序图设计

一次完整的软件工程课程设计
3.6.4数据库外模式设计

用户{(用户名,头像,生日)}
群组{(名称,群组成员)}
特别关心{(名称,生日)}

4 详细设计

4.1 用户界面设计

4.2 数据库物理结构设计

4.2.1数据库表结构设计
4.2.2数据库表索引设计

索引位置 类型
user_table uid 主键索引,唯一索引,B+数索引
user_table uname 全文索引
user_table ubirthday B+树索引
user_table weixin_number B+树索引
group_table uid 哈希索引
group_id gid 主键索引,唯一索引
mylove_table id 主键索引,唯一索引
mylove_table uid 哈希索引
mylove_table mylovebirthday B+树索引
g_u_table gid uid B+树索引

4.3 实体类详细设计

略(懒得截图)

4.4 功能模块详细设计

  • 用户模块
    获取微信认证
    微信用户信息登入数据库
    修改资料
  • 群组模块
    建立群组
    加入群组
    邀请成员
    管理成员
    管理群组
  • 消息推送模块
    推送群组内生日提醒
    推送特别关心生日提醒
  • 特别关心模块
    添加特别关心
    管理特别关心
    修改特别关心

5 测试

5.1 测试计划

5.1.1测试目的

??为了发现错误而执行程序,尽量能多地发现软件产品中的缺陷,并对软件产品的质量水平做出尽可能准确的评估,进而保证产品质量,降低上线后的风险。

5.1.2测试范围

功能测试,主要做链接测试,表单测试,cookies测试,设计语言测试等
性能测试,考虑连接速度测试,以及负载测试。
可用性测试,图形测试,内容测试,整体界面测试等
兼容性测试。
安全性测试。

5.1.3测试进度计划

项目 安排
需求测试 xx月xx日
用例编写 xx月xx日
用例评审 xx月xx日
接口测试 xx月xx日
接口性能测试 xx月xx日
第一轮业务测试 xx月xx日
第二轮业务测试 xx月xx日
回归测试 xx月xx日
上线验收测试 xx月xx日
总结报告 xx月xx日

5.1.4测试环境和配置

微信小程序平台
数据库:mysql
系统:iOS/安卓
移动平台型号:多种

5.1.5测试人员
5.1.6测试类型

数据和数据库完整性测试
白盒测试
Ui测试
功能测试
负载测试
操作系统兼容性测试

5.2 测试方案

@Author:sabot

来源:sabot_v

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2020年6月26日
下一篇 2020年6月26日

相关推荐