《基于大学生的公众号集成平台》需求分析与系统设计报告(2)

《基于大学生的公众号集成平台》需求分析与系统设计报告(2)

第一部分:需求分析报告

需求分析报告-点击查看

第二部分:系统设计报告

1 概述

1.1 编写目的

本文档的编写目的是为公众号智能集成系统项目的开发提供: 给出系统的结构设计和过程设计,作为程序编写的依据。

1.2 参考资料

[1].王晓敏.信息系统分析与设计(第四版)北京:清华大学出版社 2013.
[2].埃克尔. Java 编程思想(第四版)北京:机械工业出版社 2007.06
[3]. Steve McConnell.代码大全 电子工业出版社 2006.03

2 需求概述

3 总体结构设计

概述系统的特性和需求,扩充软件需求说明中的信息,给出增加的细节,详尽地指出对软件需求说明中有关特性和需求作出的变更。

3.1对外接口设计

本项目是公众号智能集成平台,系统搭建主要针对用户、推送、公众号三个部分进行设 计。初期目标是满足本校内个人以及校方用户和公众号的日常工作使用,长期希望能够推广 至更大更广泛的用户群体。因为本平台是针对于微信公众号现存的问题进行解决,相当于重 建公众号平台,所以对外接口暂时不涉及,未来如果和其他第三方合作,将会开启推送对外 接口。

3.2 内部结构设计

架构分析:

  • 采用 SSH 框架,SSH 是基于 MVC 的架构,层与层之间的访问靠接口实现,这样有利于程序的封装。

具体分层如下:

  1. 表现层:Jsp 页面显示,实现用户和系统的交互;
  2. 控制层:Struts2 实现,其中包括 Action 类和 Form 类,Form 类即模型驱动类;
  3. 业务层:处理业务逻辑,该层的实现需要有 Spring 容器的支持,该架构中利用 Spring 整 合 Hibernate 模版,接口化设计,采用注解的形式调用服务节点;
  4. DAO 层:封装数据库的增删改查,Hibernate 模版,单表操作使用 Hql 语句,多表操作才 用自定义 Sql 语句;
  5. 持久层(在 DAO 层和数据库层之间):建立 JavaBean 对象、创建与数据表相对应的映 射文件 XXX.hbm.xml、创建 Hibernate.cfg.xml 文件,配置连接数据库的信息 6.数据库层:建立 DBObject,对数据库的数据进行增删改查的操作

在这里插入图片描述

4 部分类的详细设计

由于该系统使用 jsp+servlet+javabean 框架做支持,是标准的 MVC 设计模式,限于篇幅无法将所有的类都叙述一遍,我们在此选择跟用户和推送两个关键实体实体相关的业务所设计的类和方法进行说明。

4.1 User类(模型层)

4.1.1 描述

该类是模型层类,用户对象的 JavaBean,该类中主要设计用户的属性以及与其相对应的getXXX() 和 setXXX() 方法。

4.1.2 属性

在这里插入图片描述

4.1.3公有方法

由于该系统使用 jsp+servlet+javabean 框架做支持,是标准的 MVC 设计模式,所以 model层对象里不涉及业务处理相关的方法,每个实体所对应的 model 类里只涉及 get 和 set 方法, 在此以用户实体作为实例进行分析,其他类可参考系统源代码。
在这里插入图片描述在这里插入图片描述

4.2 userDao(数据库访问层)

4.2.1 描述

该类属于 Dao 层,主要实现的功能是提供操作数据库的接口,里面包括多个方法。

4.2.2公有方法在这里插入图片描述

4.3 userService(业务逻辑层)

4.3.1 描述

该类属于 Service 层,主要实现的功能是用于业务逻辑的判断。

4.3.2公有方法

在这里插入图片描述

4.4 LoginServlet(控制层)

4. 4.1描述

该类属于控制层,主要实现的功能是控制界面的转发与重定向,并起到连接业务逻辑层与视图层的作用。

4.4.2公有方法

在这里插入图片描述

4.5 Push 类(模型层)

4.5.1 描述

该类属于模型层,主要实现的功能设置推送的私有属性。

4.5.2 属性

在这里插入图片描述

4.5.3 公有方法.

在这里插入图片描述

4.6 pushDao 类(数据库访问类)

4.6.1 描述

该类属于控制层,主要实现的功能是访问数据库,实现增删改查。

4.6.2 公有方法

在这里插入图片描述
在这里插入图片描述

4.7 pushService 类(业务逻辑层)

4.7.1 描述

该类属于业务逻辑层,主要实现的功能是推送的业务逻辑处理,连接 dao 类和 service 类。

4.7.2 公有方法

在这里插入图片描述

4.8 SmartSearchServlet 类(控制层)

4.8.1 描述

该类属于业务逻辑层,这里以智能化搜索推送为例,主要实现的功能是在视图层显示出
智能化搜索结果

4.8.2 公有方法

在这里插入图片描述

5 用例实现的详细设计

对《需求分析》文档当中所有用例的具体实现逐一进行说明。

5.1 用例-浏览热点推送

5.1.1 功能说明

进入平台欢迎页,可以选择游客身份直接浏览热点推送页。

5.1.2 界面设计

输入项:无 验证项:无
在这里插入图片描述
在这里插入图片描述

5.1.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类 pushService.java
控制层类:SmartSerchservlet.java
数据库操作类:DBObject.java

5.1.4 交互设计

在这里插入图片描述

5.2 用例-注册个人账号

5.2.1 功能说明

注册成为正式用户,申请个人用户账号,获得除了浏览热点推送的更多功能。

5.2.2 界面设计

输入项:用户名、密码、确认密码
验证项:用户名是否重复;密码和确认密码是否相同
在这里插入图片描述

5.2.3 参与类

模型类:user.java
Dao 层类:userDao.java
Service 层类 userService.java
控制层类: userRegisterServlet.java
数据库操作类:DBObject.java

5.2.4 交互设计

5.3 用例-登录个人账号

5.3.1 功能说明

通过用户名和密码进行登陆专属个人账号。

5.3.2 界面设计

输入项:用户名、密码
验证项:用户名是否存在;用户名对应的密码是否正确
在这里插入图片描述

5.3.3 参与类

模型类:user.java
Dao 层类:userDao.java
Service 层类 userService.java
控制层类: loginServlet.java
数据库操作类:DBObject.java

5.3.4 交互设计

5.4 用例-注销个人账号

5.4.1 功能说明

放弃本账号的使用权力,注销该账号。

5.4.2 界面设计

输入项:无 验证项:无
在这里插入图片描述
在这里插入图片描述

5.4.3 参与类

模型类:user.java
Dao 层类:userDao.java
Service 层类 userService.java
控制层类: logoutServlet.java
数据库操作类:DBObject.java

5.4.4 交互设计

略.

5.5 用例-修改个人信息

5.5.1 功能说明

用户登陆系统后,可以选择完善和维护自己的个人信息,系统根据信息智能化更贴切的进行推送推荐。

5.5.2 界面设计

输入项:姓名、性别、出生日期、擅长领域、地点、简介 验证项:无
在这里插入图片描述

5.5.3 参与类

模型类:User.java
Dao 层类:UserDao.java
Service 层类 UserService.java
控制层类:UserServlet.java
数据库操作类:DBObject.java

5.5.4 交互设计

在这里插入图片描述

5.6 用例-智能化搜索推送

5.6.1 功能说明

用户可以在首界面通过标题、关键词、类型进行智能搜索,更加确切的完成搜索。

5.6.2 界面设计

输入项:搜索内容 验证项:搜索信息是否存在
在这里插入图片描述

5.6.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类:pushService.java
控制层类:SmartSearchServlet.java
数据库操作类:DBObject.java

5.6.4 交互设计

在这里插入图片描述

5.7 用例-智能化排序推送

5.7.1 功能说明

通过收集用户的阅读喜好、年龄、专业的信息进行横向和纵向的对比,通过多方面的数据进行智能推荐并合理排序,适合每个用户的推送在推荐界面。

5.7.2 界面设计

在这里插入图片描述

5.7.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类:pushService.java
控制层类:SmartOrderPushServlet.java
数据库操作类:DBObject.java

5.7.4 交互设计

在这里插入图片描述

5.8 用例-举报推送

5.8.1 功能说明

浏览推送的过程中,如果发现推送存在不恰当的信息,可以申请举报,提交相关举报原因。

5.8.2 界面设计

在这里插入图片描述

5.8.3 参与类

模型类:Pubmessage.java
Dao 层类:pubmessageDao.java
Service 层类:pubmessageService.java
控制层类:ReportPushServlet
数据库操作类:DBObject.java

5.8.4 交互设计

在这里插入图片描述

5.9 用例-点赞推送

5.9.1 功能说明

在浏览推送的过程中,可以选择为心仪的推送点赞。

5.9.2 界面设计

在这里插入图片描述

5.9.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类:pushService.java
控制层类:ZanPushServlet.java
数据库操作类:DBObject.java

5.9.4 交互设计

在这里插入图片描述

5.10 用例-评论推送

5.10.1 功能说明

在浏览推送的过程中,可以选择在推送末尾评论,添加个人看法或者和公众号针对该篇推送进行讨论等。

5.10.2 界面设计

在这里插入图片描述

5.10.3 参与类.

模型类:Comment.java
Dao 层类:commentDao.java
Service 层类:commentService.java
控制层类:CommentPushServlet.java
数据库操作类:DBObject.java

5.10.4 交互设计

在这里插入图片描述

5.11 用例-向公众号留言

5.11.1 功能说明

点击公众号头像可以进入公众号历史发送过的推送界面,可以点击“发送消息”,和公众号后台运营者和责任人进行对话。

5.11.2 界面设计

输入项:留言内容 验证项:无
在这里插入图片描述

5.11.3 参与类

模型类:Pubmessage.java
Dao 层类:pubmessageDao.java
Service 层类:pubmessageService.java
控制层类:LeaveMesPublivServlet.java
数据库操作类:DBObject.java

5.11.4 交互设计

在这里插入图片描述

5.12 用例-举报公众号

5.12.1 功能说明

如果对于公众号的互动、推送等不满,可以在历史消息界面选择“举报账号”,填写相关信息申请举报。

5.12.2 界面设计

输入项:举报原因、举报类型 验证项:无
在这里插入图片描述

5.12.3 参与类

模型类:publicMessage.java
Dao 层类:publicDao.java
Service 层类:PublicService.java
控制层类:showReportPublicServlet.java, addReportPublicServlet
数据库操作类:DBObject.java

5.12.4 交互设计

在这里插入图片描述

5.13 用例-编写推送

5.13.1 功能说明

拥有账号的用户可以自己书写并编辑推送。

5.13.2 界面设计

输入项:标题、作者(笔名)、内容、类型、封面、摘要
验证项:是否有空缺项
在这里插入图片描述

5.13.3 参与类

模型类:Push.java
Dao 层类:pushDao.java、labelDao.java
Service 层类:pushService.java、labelservice.java
控制层类:ChoiceLabelServlet.java、WriteditPushServlet.java
数据库操作类:DBObject.java

5.13.4 交互设计

在这里插入图片描述

5.14 用例-投稿推送

5.14.1 功能说明

在编写推送的界面可以选择想投递到的公众号名。

5.14.2 界面设计

输入项:投稿到的公众号
验证项:是否存在该公众号

5.14.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类:PushService.java
控制层类:SubmitPushServlet.java、ShowUnSubmitPushServlet .java
数据库操作类:DBObject.java

5.14.4 交互设计

在这里插入图片描述

5.15用例-修改推送

5.15.1 功能说明

在编写推送完成后,还可以打开编写界面可以再次修改。

5.15.2 界面设计

输入项:要修改的项 验证项:无
在这里插入图片描述

5.15.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类:PushService.java
控制层类:ShowReturnPushServlet .java
数据库操作类:DBObject.java

5.15.4 交互设计

在这里插入图片描述

5.16 用例-查看推送数据分析

5.16.1 功能说明

在用户编写完推送,可以选择数据分析进行查询现有的同类型推送的发表量和阅读情况,对目前未发表的推送发表后的情况进行预判。

5.16.2 界面设计

在这里插入图片描述

5.16.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类 pushService.java
控制层类:pushServlet.java
数据库操作类:DBObject.java

5.16.4 交互设计

在这里插入图片描述

5.17 用例-申请成为其他公众号运营者

5.17.1 功能说明

每个用户都有申请成为他人公众号运营者的权力,在管理公众号界面选择申请成为公众号运营者,即可申请。

5.17.2 界面设计

输入项:申请时常、管理经验、管理优势 验证项:无
在这里插入图片描述

5.17.3 参与类

模型类:public.java,User.java
Dao 层类:publicDao.java,userDao.java
Service 层类 publicService.java
控制层类:applymanaServlet.java
数据库操作类:DBObject.java

5.17.4 交互设计

在这里插入图片描述

5.18 用例-创建公众号

5.18.1 功能说明

每个用户都有申请自己的公众号的权力,成为个人公众号的直接责任人。

5.18.2 界面设计

输入项:邮箱、密码、真实姓名、身份证号、手机号、接受协议 验证项:是否有空缺项

5.18.3 参与类

模型类:public.java
Dao 层类:publicDao.java
Service 层类:publicService.java
控制层类: publicRegisterServlet.java
数据库操作类:DBObject.java

5.18.4 交互设计

略.

5.19 用例*2-审核待发布推送、发表审核完成推送

5.19.1 功能说明

公众号运营者在收到其他普通用户的推送投稿后,从投稿列表选择推送进行审核,审核通过的推送可以被发表在该公众号上,审核不通过即反馈原因。

5.19.2 界面设计

输入项:未通过原因类型、具体原因 验证项:无
在这里插入图片描述
在这里插入图片描述

5.19.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类:pushService.java
控 制 层 类 : ShowUnpublishedPushServlet 、 ShowOneUnpublishedPushServlet 、 AuditUnpublishedPushServlet
数据库操作类:DBObject.java

5.19.4 交互设计

在这里插入图片描述

5.20 用例-删除已发布推送

5.20.1 功能说明

公众号运营者查看已发表的推送列表,选择内容不合适或者不满意的推送,选择推送进行删除。

5.20.2 界面设计

在这里插入图片描述

5.20.3 参与类

模型类:Push.java
Dao 层类:pushDao.java
Service 层类:pushService.java
控 制 层 类 : ShowPublishedPushServlet 、 ShowOneDeletePushServlet 、 DeletePublishedPushServlet
数据库操作类:DBObject.java

5.20.4 交互设计

在这里插入图片描述

5.21 用例-公布推送评论

5.21.1 功能说明

公众号运营者通过消息数量获知用户在推送中评论的新消息,获取新评论列表后,选择适合的、精彩的评论公之于众。

5.21.2 界面设计

在这里插入图片描述

5.21.3 参与类

模型类:Comment.java
Dao 层类:commentDao.java
Service 层类:commentService.java
控制层类:ShowUnableComServlet、AbleComServlet
数据库操作类:DBObject.java

5.21.4 交互设计

在这里插入图片描述

5.22 用例-回复公众号留言

5.22.1 功能说明

公众号运营者可以在后台查看普通用户对公众号的消息,根据消息内容进行选择性回复。

5.22.2 界面设计

在这里插入图片描述

5.22.3 参与类

模型类:Pubmessage.java
Dao 层类:pubmessageDao.java
Service 层类:pubmessageService.java
控制层类:ShowPublicMessageServlet、ReplyPublicMesServlet
数据库操作类:DBObject.java

5.22.4 交互设计

在这里插入图片描述

5.23 用例-举报用户

5.23.1 功能说明

公众号运营者有权利对于出言不逊的用户进行举报,通过用户介绍页选择举报并填写申请。

5.23.2 界面设计

输入项:举报类型、举报原因 验证项:无
在这里插入图片描述

5.23.3 参与类

模型类:usermessage.java
Dao 层类:userDao.java
Service 层类:userService.java
控制层类:showReportUserServlet.java, addReportUserServlet
数据库操作类:DBObject.java

5.23.4 交互设计

在这里插入图片描述

5.24 用例-查看公众号数据分析

5.24.1 功能说明

公众号运营者有权利查看公众号最近一段时间的运营情况,平台根据数据反馈数据图并给予部分意见。

5.24.2 界面设计

在这里插入图片描述

5.24.3 参与类

模型类:Public.java
Dao 层类:publicDao.java
Service 层类 publicService.java
控制层类:publicServlet.java
数据库操作类:DBObject.java

5.24.4 交互设计

在这里插入图片描述

5.25 用例-申请解绑公众号

5.25.1 功能说明

对于不想再管理的公众号,公众号运营者可以向公众号责任人提出申请,解绑对该公众号的管理。

5.25.2 界面设计

在这里插入图片描述

5.25.3 参与类

模型类:Public.java,User.java
Dao 层类:publicDao.java
Service 层类 publicService.java
控制层类:unboundServlet.java,acceptServlet.java
数据库操作类:DBObject.java

5.25.4 交互设计

在这里插入图片描述

5.26 用例*2-认证公众号运营者、解绑公众号运营者

5.26.1 功能说明

公众号责任人有认证公众号运营者和解绑公众号运营者的权力,可以通过公众号运营者列表获知新申请的公众号运营者和已绑定的公众号运营者进行相应操作。

5.26.2 界面设计

在这里插入图片描述

5.26.3 参与类

模型类:User.java
Dao 层类:userDao.java
Service 层类:userService.java
控制层类:showPublicManagerServlet.java, updatePublicManagerServlet.java 数据库操作类:DBObject.java

5.26.4 交互设计

在这里插入图片描述

5.27 用例-转让公众号

5.27.1 功能说明

公众号责任人在不想管理个人公众号后,可以选择寻找新一任公众号责任人,并填写转让申请。

5.27.2 界面设计

输入项:新公众号责任人姓名、身份证号、邮箱、微信 验证项:无
在这里插入图片描述

5.27.3 参与类

模型类:Public.java,User.java
Dao 层类:publicDao.java
Service 层类 publicService.java
控制层类:transferServlet.java
数据库操作类:DBObject.java

5.27.4 交互设计

在这里插入图片描述

5.28 用例-注销已有公众号

5.28.1 功能说明

公众号责任人在不想管理个人公众号也无新一任公众号责任人可以转让,可以直接在管理公众号也选择注销已有公众号。

5.28.2 界面设计

略。

5.28.3 参与类

模型类:public.java
Dao 层类:publicDao.java
Service 层类:publicService.java
控制层类: publicRegisterServlet.java
数据库操作类:DBObject.java

5.28.4 交互设计

略。

5.29 用例*2-奖励用户、禁用用户

5.29.1 功能说明

平台管理员有增删改查用户的权力,可以在查阅用户最近详情或查看活跃度排名后,选择奖励用户或禁用用户。

5.29.2 界面设计

在这里插入图片描述

5.29.3 参与类

模型类:user.java
Dao 层类:userDao.java
Service 层类:userService.java
控制层类: showUserServlet.java,updateUserServlet.java
数据库操作类:DBObject.java

5.29.4 交互设计

在这里插入图片描述

5.30 用例*2-奖励公众号、禁用公众号

5.30.1 功能说明

平台管理员有增删改查公众号的权力,可以在查阅用户最近详情或查看活跃度排名后,选择奖励公众号或禁用公众号。

5.30.2 界面设计

在这里插入图片描述

5.30.3 参与类模型类:public.java

Dao 层类:publicDao.java
Service 层类:publicService.java
控制层类: showPublicServlet.java, updatePublicServlet.java
数据库操作类:DBObject.java

5.30.4 交互设计

在这里插入图片描述

6 数据库设计(待补充)

6.1 数据库建立

6.1.1 表在这里插入图片描述

6.1.2 表属性

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

6.2 数据库模型

6.2.1 概念模型

在这里插入图片描述
概念模型分析:

  • 1一个账号可以有多条账号消息,一条账号消息只能属于一个账号
  • 2一个用户可以发送多条消息,一条消息只能有一个用户发送
  • 3一个用户开拥有多个公众号,一个公众号只能被一个用户拥有
  • 4一个用户可以管理多个公众号,一个公众号可以被多个用户管理
  • 5一个用户可以关注多个公众号,一个公众号可以被多个用户关注
  • 6一个用户可以发表多个推送,一篇推送只能有一个用户发布
  • 7一个推送可以有一个标签,一个标签可以被多个推送使用
  • 8一个用户可以有多个标签,一个标签只能拥有一个用户(不同用户可创建相同名称的标签, 这里的不同指的是 id 不同)
  • 9一片推送可以有多个评论,一个评论只能属于一篇文章
  • 10一个用户可以发表多篇评论,一篇评论只能有一个用户发布
  • 11一个公众号可以有多条公众号消息,一条公众号消息只能属于一个公众号
  • 12一个用户可以发送多条公众号消息,一条公众号消息只能由一个用户发送
  • 13一个公众号可以有多篇推送,一片推送只能属于一个公众号

6.2.2 逻辑模型

在这里插入图片描述

6.2.3 物理模型

在这里插入图片描述

6.3 数据库对象

6.3.1 视图

在这里插入图片描述

6.3.2 存储过程

在这里插入图片描述
在这里插入图片描述

6.3.3 触发器

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_42098332/article/details/107062171