基于类知乎问答系统的需求分析和概念原型
一.需求分析
需求是对用户期望的软件行为的表述。
在本项目中,从用户角度看,主要存在以下需求:
1.注册登录:用户通过邮箱注册登录账号
2.浏览问题回答:用户可以看到已提出的问题和回答
3.提问回答功能:用户可提出问题,或对已有问题进行回答
4.评论功能:用户可对已存在的回答进行评论
5.收藏功能:用户可对感兴趣的问题或回答收藏
二.用例建模
用例是一个经过逻辑整理抽象出来的业务过程,即在待开发软件所处的业务领域内完成特定业务任务的一系列活动,一般用来描述用户对系统功能的期望。
用例具有以下三个基本要素:
1.触发参与者
2.特定的业务任务
3.终止参与者
本项目参与者是注册用户,可触发以下用例:
(1)账号相关:注册账号,登录账号,注销账号,修改账号信息。
(2)个人中心相关:我的提问,我的回答,我的收藏,我的浏览记录。
(3)问答相关:提问,回答,评论。
根据需求写出用例图:

三.业务领域建模
业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,他们需要业务领域知识来开发软件系统。软件工程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统一的业务认知。
业务领域建模的过程:
1.收集应用业务领域的信息。聚焦在功能需求层面,也考虑其他类型的需求和资料;
2.头脑风暴。列出重要的应用业务领域概念,给出这些概念的属性,以及这些概念之间的关系;
3.给这些应用业务领域概念分类。分别列出哪些是类、哪些属性和属性值、以及列出类之间的继承关系、聚 合关系和关联关系。
4.将结果用 UML 类图画出来。
本次项目包含用户类,问题类,回答类,评论类。
用户类包括:用户ID,用户名,密码,账号创建时间。
问题类包括:问题ID,问题内容,提问者ID,问题创建时间。
回答类包括:回答ID,回答内容,回答者ID,所属问题ID,回答创建时间。
评论类包括:评论ID,评论内容,评论者ID,所属回答ID,评论创建时间。
根据上面的分析画出UML类图:

四.数据模型
数据模型是定义数据如何输入和与输出的一种模型。其主要作用是为信息系统提供数据的定义和格式。数据模型是数据库系统的核心和基础。
数据模型有三大要素:
数据结构:储存在数据库中对象类型的集合,作用是描述数据库组成对象以及对象之间的联系。
数据操作:指对数据库中各种对象实例允许执行的操作的集合,包括操作及其相关的操作规则。
数据完整性约束条件:指在给定的数据模型中,数据及其联系所遵守的一组通用的完整性规则,它能保证数据的正确性和一致性。
物理数据模型:
User表
| 字段 | 类型 | 注释 |
|---|---|---|
| User_ID | int | 用户ID |
| User_Name | varchar | 用户名 |
| Password | varchar | 用户登录密码 |
| Creat_Time | bigint | 用户创建时间 |
Question表
| 字段 | 类型 | 注释 |
|---|---|---|
| Question_ID | int | 问题ID |
| Question_Content | varchar | 问题内容 |
| User_ID | int | 提问者ID |
| Creat_Time | bigint | 问题创建时间 |
Answer表
| 字段 | 类型 | 注释 |
|---|---|---|
| Answer_ID | int | 回答ID |
| Answer_Content | varchar | 回答内容 |
| Question_ID | int | 问题ID |
| User_ID | int | 回答者ID |
| Creat_Time | bigint | 回答创建时间 |
Comment表
| 字段 | 类型 | 注释 |
|---|---|---|
| Comment_ID | int | 评论ID |
| Comment_content | varchar | 评论内容 |
| Answer_ID | int | 回答ID |
| Creat_Time | bigint | 评论创建时间 |
五.概念模型及工作流程
概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论。概念原型是一种虚拟的、理想化的软件产品形式。概念=用例+数据模型。
工作流程:用户通过注册账号获取使用该系统使用权限,具体可进行提问,回答,评论等操作,还可以在个人中心查看已发表的问题,回答,评论。
六.总结
本篇博客简单介绍了在实现类知乎问答社区过程中,对需求分析,用例建模,业务建模和数据模型的分析。在此过程中遇到了许多问题,在解决问题的过程中对业务有了更深的理解,同时学到到了软件工程的相关思想。本文主要参考从需求分析到软件设计。项目的具体实现细节仍有欠缺,在工程实践过程中会继续完善。

浙公网安备 33010602011771号