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

本文档介绍了一个基于微信小程序的群组生日提醒系统的设计。系统利用微信小程序平台,用户可创建群组,邀请成员,实现生日前7天自动推送提醒。技术上采用SpringBoot、MyBatis和MySQL,前端使用微信小程序。需求分析包括功能和非功能需求,如登录、个人信息管理、特别关心、群组管理、消息推送等。设计包括系统架构、数据库设计、详细设计和测试计划。
摘要由CSDN通过智能技术生成

引 言

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

1 可行性分析

1.1 技术可行性分析

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

1.2 经济可行性分析

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

1.3 社会可行性分析

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

2 需求分析

2.1 功能需求
2.1.1 系统用例图

在这里插入图片描述

2.1.2 用例规约

用例编号 SRTX001
用例名 登录
用例描述 微信用户登录群组生日提醒小程序
参与者 微信用户
前置条件 无
后置条件 获取信息更新进数据库
基本路径 1.用户进入小程序
2.点击授权微信登录
3.小程序通过接口获取用户信息并更新进数据库
4.登录成功,微信用户已获取小程序身份

用例编号 SRTX002
用例名 管理个人信息
用例描述 微信用户管理个人在小程序记录的信息
参与者 微信用户
前置条件 登录小程序
后置条件 获取信息更新进数据库
基本路径 1.用户登录小程序
2.进入个人信息页面
3.管理各种信息(生日,头像,昵称)
4.小程序更新进数据库

用例编号 SRTX003
用例名 特别关心
用例描述 微信用户添加管理特别关心,不用在同一群组也会提醒生日
参与者 微信用户
前置条件 登录
后置条件 获取特别关系对象的信息添加进数据库
基本路径 1.用户登录小程序
2.进入特别关心界面
3.管理特别关心,包括添加,修改信息,删除特别关系
4.小程序更新数据进数据库

用例编号 SRTX004
用例名 添加群组
用例描述 用户新建提醒群组
参与者 微信用户
前置条件 登录
后置条件 获取群组信息添加进数据库
基本路径 1.用户登录小程序
2.点击新建群组
3.设置群组信息
4.小程序添加进数据库

用例编号 SRTX005
用例名 邀请或管理成员
用例描述 微信用户邀请成员进群组,或管理群组成员
参与者 微信用户
前置条件 登录,邀请成员需自己在群组,管理成员需为群组建立者
后置条件 小程序获取信息添加进数据库
基本路径 1.用户登录小程序
2.进入所在群组
3.邀请成员,生成小程序分享链接分享到微信群或私聊
4.管理成员,在自己建立的群组可觉得成员为哪些
5.小程序更新数据进数据库

用例编号 SRTX006
用例名 删除群组
用例描述 微信用户删除群组
参与者 微信用户
前置条件 登录,用户为群组创建者
后置条件 更新数据库信息
基本路径 1.用户登录小程序
2.进入自己建立的群组
3.删除
4.小程序更新数据进数据库

用例编号 SRTX007
用例名 分享群组
用例描述 微信用户分享自己所在群组到微信
参与者 微信用户
前置条件 登录,自己在群组内
后置条件 若有新成员进入,更新信息
基本路径 1.用户登录小程序
2.进入群组
3.生成分享链接
4.分享到微信

用例编号 SRTX008
用例名 消息推送
用例描述 系统推送微信生日提醒到群组内的没一个成员
参与者 微信用户,系统
前置条件 系统监听即将到来的生日
后置条件 通过接口推送消息
基本路径 1.系统每天定时检查即将过生日的用户信息
2.获取用户所在群组
3.通过接口向群组内每一个成员推送微信消息提醒
4.系统检查特别关心队列即将到达的生日
5.发送消息提醒特别关心建立者

2.1.3 领域对象模型

在这里插入图片描述

2.1.4 状态图

在这里插入图片描述

2.2 非功能需求
2.2.1可靠性需求

  系统应保证全年365天24小时不间断运行,保证所有的生日在7天前准确提醒到群组中的每一人。发生执行错误应能回滚数据库,保证数据正确。用户每一个操作都准确执行,可靠度不应低于99.99%。

2.2.2安全性需求

  通过微信授权来统一进行认证,同时保证微信用户的个人信息应不被泄露。在数据库层面,保证屏蔽非法用户的访问,合法用户的非法访问。提供身份认证,授权管理,输入输出验证,配置管理,敏感数据保护,回话管理,加密,参数保护,异常管理,日志等。

2.2.3开发性需求

  遵循微信小程序开发规范,使用阿里巴巴java开发手册作为标准

2.2.4性能需求

  小程序打开速度3s以下
  微信认证登录速度5s以下
  API请求的平均响应时间1s以下
  支持同时在线用户数1000
  请求成功率高于99.9%
  一个接口允许100个用户并发操作

2.3 数据库概念结构设计
2.3.1数据实体描述及E-R图

  用户实体:包括各种用户数据,其中重要属性为生日
  群组实体:包括群组数据,包含用户等
  特别关心:包括名称,生日,由用户定义。
  群组创建者:属于用户,但有更高权限。

  E-R图:
在这里插入图片描述

2.3.2数据库概念模型

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

3 总体设计

3.1 系统架构设计

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

在这里插入图片描述

3.2 功能模块设计

  总体分为四大模块,即用户模块,群组模块,特别关心模块,消息提醒模块。

软件工程课程设计 学生管理系统 系统概述: 1、架构分析 学生管理是学校管理中不可少的一部分。而基于B/S架构的学生管理系统是方 便学校管理。Web展示层的每个页面都可以直接对数据库进行访问,而不用过 多的实现数据库连接和操作接口。数据库是系统的最底层。数据访问模块包含 在Web展示层中。Web展示层通过数据库访问模块访问数据库。数据库访问模块 一般封装数据库的查询、添加、更新、删除等操作,同时还为Web展示层提供 访问数据库的接口。两层架构模式的各层功能: "层名 "功能描述 " "Web展示层 "系统最高层,向用户展示各种界面。用户通过界面对系统进行操作,并实 " " "现用户各种操作信息的添加、修改和删除。与数据库直接关联,其数据访 " " "问模块封装了对数据库的所有操作。 " "数据库 "数据库用来存储本系统所有数据。 " 2、主要模块 本系统包括5个模块:用户管理模块、班级管理模块、课程管理模块、选课管理 模块和成绩管理模块。 (1)、用户管理模块:主要功能是对用户属性和权限进行管理,是系统的 基础模块。由管理员添加的用户默认密码和用户名称相同,修改密码只能由本 人或在数据库中修改完成。 (2)、课程管理模块:管理员具有对课程的增加、删除和修改权限。课程 分为基础课、专业课和选修课3种类型。课程管理模块制约选课模块。管理员 在课程管理中添加课程信息后,学生才能进行选课。分配课程主要是制定该课 程的任课教师和授课班级(基础课才需要指定班级)。 (3)、选课管理模块:主要功能是删除和统计选课信息,既可对选修课程 进行管理,也可统计选修课人数,并根据学生选课时间决定最终选修此课的学 生。 (4)、成绩管理模块:管理员可以录入和统计学生成绩;学生可以自己查 询自己课程的名称、学分、成绩。当学生成绩不及格时,将无法获得本课程的 学分。 3、主要负责模块: 甄边梓:主体框架设计、学生数据库管理模块、选课管理模块、成绩管理 模块 张彩娟:登录权限验证、数据库与ASP.NET的连接、用户管理模块、课程管 理模块 1. 系统设计 2.1系统需求分析 在该系统中主要对学生的基本信息、学生成绩等进行管理,系统主要功能如下 : 1) 学生信息管理:用来管理学生基本信息,包括查询、添加、修改和删 除。学生基本信息包括:学号、姓名、性别、出生年月、籍贯、班 级、学院。 2) 课程信息管理:一门课程有一个上课班级,也可能有几个上课班级, 因此课程信息里的授课教师是不确定的。课程信息管理包括:浏览 、查询、添加、修改和删除。 3) 成绩信息管理:用来管理学生成绩,包括浏览、查询、添加、修改和 删除。成绩基本信息包括自动编号、学生学号、上课班级号、课程 成绩、 4) 权限管理:对于不同层次的使用者应该开放不同的权限。 管理者:维护学生基本信息,管理院系、课程、成绩各种数据。 教师:可以录入学生成绩信息,查询学生基本和成绩统计信息。 学生:可以查询学生成绩信息和成绩统计信息。 2.2数据库需求分析: 学生管理系统的要求是要准确快捷的管理学生信息。学生隶属班级,班级又由 教师指导;学生需要有课程、成绩、学分,而这些又都要靠教师或者管理人员 来完成添加。由此总结出如下需求信息:用户分为管理员用户、教师用户和学 生用户。其中,管理员和教师用户是属于相同权限等级的用户。一个班级里有 多个学生,班级组成院系。一个学生有多门课,一门课对应多个学生。一位教 师指导多个班级。一位教师可以教授多门课程,一门课程可以有多个教师来教 授。经过对上述系统功能的分析和需求总结,设计如下所示的数据项: 用户信息:用户ID、用户名、密码、权限。 班级信息:班级ID、名称、所属院系、班主任. 学生信息:学生ID、姓名、性别、民族、生日、入学时间、班级、籍贯和 备注。 教师信息:教师ID、姓名、所属院系。 课程信息:课程ID、名称、学时、学分、类型及描述。 2. 总体设计 1、实体及其属性图 由上面的数据项可以设计出能够满足用户需求的各种实体以及它们之间的关系 ,为后面的逻辑结构设计打下基础。这些实体包含各种具体信息,通过相互之 间的作用形成数据之间的流动。本系统设计的实体有:学生实体、教师实体、 课程实体和班级实体。 2、功能模块图 3、数据流图 顶层数据流: 总体ER图: 4、数据库的表间关系 5、流程分析 学生登录流程图: 管理员登录流程图: 6、用例图 7、测试用例 用户登录模块的测试:输入信息不正确,系统会提示重新输入。当输入信息正确后 ,会自动进入学生管理模块。 测试学生登录:此模块中可以查看个人信息、课程信息、成绩查询、修改密码、选课浏 览。 选课管理模块的测试: 成绩管理模块的测试: 3. 课程设计的感想: 1、所学:通过一周课程设计,学到了很多知识,能够基于对话
1. 项目简介 本项目是一款企业工资管理系统,主要用于企业对员工工资进行管理和统计。系统将实现以下功能: - 员工信息管理:包括员工基本信息、工资信息等。 - 工资统计:根据员工工资信息,统计员工工资总额、平均工资、最高工资、最低工资等。 - 工资发放:根据员工工资信息,自动计算工资,并进行工资发放。 - 工资查询:员工、管理员可以根据条件查询员工工资信息。 2. 项目需求 2.1 用户需求 - 员工:可以查询个人的工资信息,包括基本工资、津贴、扣款等信息。 - 管理员:可以进行员工信息管理、工资统计、工资发放等操作。 2.2 功能需求 - 员工信息管理:管理员可以添加、删除、修改员工信息,包括员工基本信息、工资信息等。 - 工资统计:根据员工工资信息,统计员工工资总额、平均工资、最高工资、最低工资等。 - 工资发放:根据员工工资信息,自动计算工资,并进行工资发放。 - 工资查询:员工、管理员可以根据条件查询员工工资信息。 3. 技术实现 本系统采用Java语言进行开发,使用MySQL数据库进行数据存储。 3.1 开发环境 - 开发工具:Eclipse - 数据库:MySQL - 技术框架:Spring、SpringMVC、MyBatis - 前端技术:HTML、CSS、JavaScript、jQuery、Bootstrap 3.2 技术架构 - 前端:使用HTML、CSS、JavaScript、jQuery、Bootstrap等技术实现用户界面和交互功能。 - 后端:使用Spring、SpringMVC、MyBatis等技术实现业务逻辑和数据访问功能。 - 数据库:使用MySQL数据库存储数据。 4. 项目计划 4.1 项目进度 - 需求分析:1周 - 技术选型:1周 - 数据库设计:1周 - 前端实现:2周 - 后端实现:4周 - 联调测试:2周 4.2 项目管理 本项目采用敏捷开发模式,每周进行一次迭代。每次迭代包括需求分析、设计、编码、测试等环节。开发团队采用Scrum模式进行管理,每天进行一次站立会议,每周进行一次评审和回顾会议。项目负责人负责制定项目计划、分配任务、跟踪进度、协调团队成员等工作。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值