本文基于我们的工程实践项目--设计一个类似知乎问答系统。该问答系统支持提问、回答等基本操作;发布后能够修改和删除回答;回答支持按热度和时间线排序;能够对回答点赞和反对;能够对问答发表评论;展现当前热门问题列表等功能。
1.2.1 项目用例分析
用例的核心概念中首先它是一个业务过程,经过逻辑整理抽象出来的一个业务过程,这是用例的实质。什么是业务过程?在待开发软件所处的业务领域内完成特定业务任务的一系列活动就是业务过程。
用例的基本要素:
一个用例应该由业务领域内的某个参与者所触发。
用例必须能为特定的参与者完成一个特定的业务任务。
一个用例必须终止于某个特定参与者,也就是特定参与者明确地或者隐含地得到了业务任务完成的结果。
本项目的只有一个参与者即用户。用户可以触发的用例如下:
用户注册
用户登录->重置密码
提问
回答
点赞
评论
个人中心:创作中心,关注,收藏夹,最近浏览
查看热门问题列表
1.2.2 项目用例图
业务领域建模是开发团队用于获取业务领域知识的过程。因为软件工程师往往需要工作在不同的业务领域或者不同项目中,他们需要业务领域知识来开发软件系统。软件工程师往往来自不同的专业背景,这可能会影响他们对业务领域的认知。因此业务领域建模有助于开发团队获取业务领域知识形成统一的业务认知。
收集业务领域相关信息
执行团队头脑风暴
对业务领域相关的知识概念进行分类
用UML类图将业务领域知识图形化展示
在本项目中,普通用户由用户类派生而来,普通用户在用户类的基础上增加了一些特有的属性和方法。
用户类(邮箱,密码,登录,注销)
普通用户(用户名,性别,一句话介绍,居住地,所在行业,教育经历,提问,回答,收藏回答,关注人,关注问题,关注收藏夹,点赞回答,点赞评论)
本项目中有问题类、回答类、收藏夹类,问题评论类和收藏夹类。
问题类(问题标题,问题内容,问题被关注者,问题被游览次数,问题创建时间)
问题评论(评论id,评论内容,回复谁,被点赞次数,评论时间,评论在哪个问题下,评论用户)
回答(评论id,评论内容,点赞数,回答时间,回答的问题id,回答用户id)
收藏夹(收藏夹id,收藏夹名称,创建时间,更新时间,收藏夹用户id)
我们根据上述项目业务分类,画出项目的UML图如下。
概念模型出现在数据库的概念结构设计阶段,将需求分析得到的用户需求抽象为概念模型,通常使用E-R图来描述现实世界的概念模型。E-R图提供了表示实体型、属性和联系的方法。
客观存在并可相互区别的事物称为实体,可以是具体的人、事、物或抽象的概念。
实体所具有的某一特性称为属性,一个实体可以由若干个属性来刻画。
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系。实体内部的联系通常是指组成实体的各属性之间的联系,实体之间的联系通常是指不同实体集之间的联系,实体之间的联系有一对一、一对多和多对多等多种类型。
用户表
字段 | 说明 |
---|---|
邮箱 | |
password | 密码 |
username | 用户名 |
gender | 性别 |
simple_desc | 一句话介绍 |
position | 居住地 |
industry | 所在行业 |
career | 职业经历 |
education | 教育经历 |
问题表
字段 | 说明 |
---|---|
title | 问题标题 |
Question_content | 问题内容 |
followed_count | 问题关注人数 |
scanned_count | 问题浏览次数 |
create_time | 问题创建时间 |
问题评论表
字段 | 说明 |
---|---|
comment_id | 评论id |
commentContent | 评论内容 |
at_user_id | 回复谁 |
liked_count | 被点赞次数 |
create_time | 评论时间 |
answer_id | 评论在哪个问题下 |
user_id | 评论用户 |
回答表
字段 | 说明 |
---|---|
answer_id | 评论id |
content | 回答内容 |
liked_count | 点赞数 |
create_time | 回答时间 |
question_id | 回答的问题id |
user_id | 回答用户id |
收藏夹表
字段 | 说明 |
---|---|
collection_id | 收藏夹id |
collection_name | 收藏夹名称 |
create_time | 创建时间 |
update_time | 更新时间 |
user_id | 收藏夹用户id |
概念是人对能代表某种事物或发展过程的特点及意义所形成的思维结论。
概念原型是一种虚拟的、理想化的软件产品形式。
概念原型 = 用例 + 数据模型
概念原型的工作流程:
用户在登陆页面登录系统后,可以进行提问,也可以对问题进行评论和回答。
回答页面可以对回答内容进行编辑,编辑完后将回答进行发表,发表后也可以删除已发表的内容。
用户可以对自己喜欢的问题和回答点赞,也可以收藏对自己有用的回答。
通过基于类知乎问答系统的需求分析和概念原型,对项目进行了需求分析和用例建模,然后对项目进行了业务领域建模,最后得出了项目的数据模型和概念原型。由于项目还处于开始阶段,对项目的理解不够深入,还有很多业务和功能都没有想清楚,本篇博客只得出了大致的项目模型。不过这种分析和建模的方法在以后的项目实践中会经常使用。
参考资料:https://gitee.com/mengning997/se/tree/master/ppt
原文:https://www.cnblogs.com/coderACRush/p/14127335.html