互联网微博应用平台——需求分析

weirme 2021-12-27 11:16:42

项目概述

在互联网飞速发展的今天,微博应用已经成为人们日常生活中不可或缺的重要组成部分。人们可以便利的通过微博平台分享自己身边的新鲜事,并及时的获取到自己感兴趣的消息。微博应用作为一个典型的移动端产品,其开发过程中需要用到绝大多数的移动端开发技术,包括数据存储、多线程开发与服务端的网络通信等。因此,通过开发这样一款微博应用,也能有效的提高我们作为编码人员的工程能力。

需求分析

我们设计的微博应用主要包含发布话题、评论、好友资料查看和私信等功能。
如下图所示,我们的微博应用包括四大基础板块的内容:用户个人资料、话题、私信、好友。

img

其中,各个板块包含的详细内容如下图所示。

img

如下图所示,我们的微博应用将包含注册、登陆、退出、注销、发表/查看话题、评论话题、发送/接收私信、阅读私信、添加/删除好友以及查看用户资料等功能。

img

我们的微博应用将包括如下业务逻辑:

  1. 要使用该应用的功能,需要经过有效的注册。
  2. 该应用的所有用户都可以发表话题,并且发表的话题能够让该应用的所有用户看见,用户还可以回复话题。
  3. 该应用的所有用户都能够给其他任意用户发送文本私信,并且保留发送记录。
  4. 该应用的所有用户都能够接收任意其他用户发送的文本私信,并且可以进行阅读和查看接收记录。
  5. 对于本用户而言,发送或者接收的私信内容都是可以查看的。
  6. 任意用户可被其他用户加为好友,前提是同意其他用户所发送的加为好友的消息。
  7. 两用户可以解除好友关系,应用将通过一定方式把好友关系中解除一方的操作告知被解除一方。
  8. 使用本应用的用户可以查看其他用户的资料。

业务逻辑如下图所示。

img

根据上述板块和功能描述,绘制如下系统用例图和类图。

img

img

在数据存储建模上,绘制如下对象关系图,并列出使用到的数据库表。

img

用户表

属性类型描述
_idint系统默认主键
UIDlong用户ID
UNametext用户名
UPhototext用户头像
UMobiletext用户电话号码
USextext用户性别
UAddresstext用户地址

话题表

属性类型描述
_idint系统默认主键
UIDlong话题发布者用户ID
Topic_IDlong话题ID
Topic_Contenttext话题内容
Topic_Timeint话题发表的时间
Topic_Nametext话题发布者的名字
Topic_Phototext话题发布者的头像

评论表

属性类型描述
_idint系统默认主键
UIDlong评论发布者用户ID
Comment_IDlong评论ID
Comment_Contenttext评论内容
Comment_Timeint评论发表的时间
Comment_Reply_Tolong评论回复的用户

私信表

属性类型描述
_idint系统默认主键
Send_UIDlong私信发送者用户ID
Recv_UIDlong私信接收者用户ID
Letter_IDlong私信ID
Letter_Contenttext私信内容
Letter_Timeint私信发送的时间

系统设计方案

1. 总体设计方案

微博应用的设计主要包含如下四个部分。

  1. 用户UI界面,用于在前端与用户进行交互。
  2. 数据库,在后端存储和管理用户数据。
  3. 事件处理,包含常用的事件响应机制和处理流程,能够根据用户的不同操作进行处理。
  4. 网络访问,用于前后端之间的数据交互,在这个应用中我们通过JSON格式来传输数据。

2. 客户端设计

安卓应用遵循单例模式的设计原则,在安卓开发中,Application可以被视为应用程序的唯一实例,在应用开发过程中所需的全局变量及操作都存放在该类中。在客户端与服务端的交互中,遵循代理模式进行开发,使用常用的JSON格式作为中间接口,来在客户端和服务端之间传输数据。在客户端的设计中,采用MVC设计模式,来实现模型和界面视图的解耦。在应用中创建一个MsgService服务,通过网络模块定时向服务器发送请求,并对响应数据进行解析,存储在前端模型中,接着由视图负责刷新界面。下面分别介绍应用中的具体功能模块和实现。

2.1 用户登录界面

功能描述

在登陆界面中,主要完成用户的用户名和密码输入,若用户还没有创建账号,则可以通过注册按钮,跳转到注册界面;若用户不记得账号密码,则可以通过忘记密码按钮,跳转到重制密码的界面。在用户输入密码后,单击登陆,将对用户名与密码进行验证,并显示登录结果。若验证成功,则进入主界面,否则显示错误提示。

任务处理

在登陆界面中,主要实现向服务器发送登陆请求,对用户名和密码进行验证,并根据验证结果进行界面的跳转。登录按钮响应onLoginClick()方法,根据用户的用户名与密码的输入情况进行提示,若输入正确,则设置好请求参数,启动登陆请求类,利用异步任务机制在后台完成数据的请求。接着根据返回结果进行解析判断,完成登陆数据的存储、界面的提示与跳转。

2.2 话题界面

功能描述

话题界面以列表的形式显示话题,单击每一条列表中的话题,能够跳转至该话题的详细界面,其中包含对该话题的评论。单击发表话题按钮,可以跳转至发表话题界面,单击刷新图标,可以向服务器请求更新的话题数据,并刷新界面。在话题的详细界面中,用户可以查看到该话题的完整信息,并输入自己的评论,将其显示在该界面中。

任务处理

当进入话题界面时,通过请求话题类向服务器发送话题信息请求,获取一段时间内的话题信息数据,接着进行数据解析并执行界面刷新。当进入话题评论界面时,从数据库中读取对应话题的完整信息,当用户发表新的评论时,通过话题评论请求类向服务器发送请求,并将返回的数据进行解析并显示。在话题发表界面中主要完成话题的发表,利用发表话题请求类向服务器发送发表话题请求,根据返回数据进行解析和显示。

2.3 好友界面

功能描述

好友界面中以列表方式显示自己的好友,当长按某个好友时,就会弹出上下文菜单,可选择发私信和删除好友功能。当单击某个好友时,则跳转到该用户的详细资料页面。当单击在页面顶部的添加好友图标时,则进入添加好友界面。

任务处理

进入好友界面时,通过异步机制向服务端请求好友数据。当选择私信或删除好友等功能时,只需要向服务端发送对应的请求即可。

2.4 用户资料界面

功能描述

用户资料界面的功能包含查看个人资料和其他用户的资料。处理过程中通过用户的ID来向服务端请求对应ID的用户个人资料,用户ID唯一标识了某个用户。

任务处理

查看个人资料或者其他用户资料时,都是通过同一个界面进行显示和操作。当要查看某个用户的资料时,首先在好友表中查询是否存在该用户的信息,如果不存在则通过网络向服务端请求,在请求的参数重放入该用户的ID,然后通过异步任务来请求用户的资料。

3. 服务端设计

服务端通过MySQL数据库进行数据存储,数据库中包括用户资料、话题、好友和私信等数据;控制处理函数通过Java实现,主要用来控制请求和返回数据等业务流程。该过程主要包括如下几个步骤:

  1. 接受请求的参数并进行分析,在我们的应用中,是通过JSON格式进行数据传输,我们只需在Java代码中对JSON数据进行解析即可。
  2. 通过获得的用户ID和密码验证用户是否合法,如果是注册就跳过该步骤。
  3. 通过获得的请求类型将任务分发到相应的类中,比如发送话题请求,此时就进入SendTopic类中执行。
  4. 在相应的类中首先获得数据库的连接,然后通过请求的参数执行相应的操作,并更新数据库中相应的表。
  5. 将执行完成后的结果封装成JSON格式返回客户端。

根据该过程可以绘制流程图如下:

img

作者:265

...全文
406 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

571

社区成员

发帖
与我相关
我的任务
社区描述
软件工程教学新范式,强化专项技能训练+基于项目的学习PBL。Git仓库:https://gitee.com/mengning997/se
软件工程 高校
社区管理员
  • 码农孟宁
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧