软件工程课程设计报告
题** 目: **Note Blog博客系统的分析与设计
2020年06月05日
目 录
1 问题定义
2 需求分析
2.1 传统化方法学
2.2 面向对象方法学
2.2.1 建立系统用例模型
2.2.2建立系统类模型
3 系统设计
3.1 系统结构分析
3.2 数据库分析
3.2.1 数据库的概念结构设计
3.2.2 数据库的逻辑结构设计
4 页面设计
5 创新点**
1 问题定义
这次在家上网课让我发现了线上做笔记的方便快捷性,但是现有博客系统一般有很大的局限性。首先从用户角度来说,页面美观度低,用户群庞杂,没有专门为学生开发的博客系统。其次从博主的角度来看,网站的运营和维护难度大,学习成本高。
所以开发了这款专门为学生服务的博客系统——Note Blog,作为博主可以记录分享自己的学习笔记,分享日常的学习计划,构建出个人的知识库;作为博客的浏览者可以从中获取所需信息,学习所求知识。该博客系统搭建了一个相互学习,以笔记交友的平台,让一个圈子的人可以互相理解交流,用户还可以分享视频课程,记录生活,展示自我,在非常友好美观的界面上完成博客的各种功能,能够使用户的浏览有着良好的体验。
2 需求分析
2.1 传统化方法学
博客系统分前台功能和后台功能两大部分。前台主要供用户注册,浏览,后台主要供管理员使用,管理员可以对用户进行管理。
博客系统前台的用户共分两类:一类是注册用户(正式用户),这类用户有基本的信息,可以对自己的信息进行查看与修改;另一类用户是匿名用户(未注册用户),他们只能查看、浏览注册用户的内容。
1.注册用户:
(1)登录后对可以对个人信息进行查看和修改。
(2)用户通过前台登录后,可以对自己的博客进行管理,包括发布自己的文章,分享视频,分享音乐,上传照片,与好友交流,删除访客发表的评论以及拉黑用户。
(3)用户登录后可以对自己文章的评论进行回复,可以对其他博主的文章进行评论。
2.匿名用户:
(1)匿名用户如果不注册,可以通过匿名方式对博客空间浏览文章,发表评论,查看文章发表人的内容。
(2)匿名用户通过注册,可以登录进入博客系统成为注册用户。
博客系统后台主要是供管理员使用的,管理员可对用户进行添加、删除、查询及修改,对注册用户的博客内容与个人信息进行管理,并对博客中的评论、文章进行审核、审核通过后才能发表。管理员也可以具有不同的权限分为超级管理员和普通管理员,普通管理员具有以上权限,超级管理员除了可以具有以上所有功能外,还可以添加、删除普通管理员。
数据流程图是概括地描绘系统的传统工具,用图形符号以黑盒子形式描绘组成系统的每个部件,数据流程图表达的是数据在系统各部件之间的流动情况,而不是对数据进行加工处理的控制过程。如图1为博客系统的顶层数据流图,图2为博客系统的详细数据流图。
图1 博客系统的顶层数据流图
图2 博客系统的详细数据流图
2.2 面向对象方法学
2.2.1 建立系统用例模型
1.角色的确定
角色是对系统外的对象描述,是用户作用于系统的一个角色,它有自己的目标,通过与系统的交互来实现,交互包括信息交换和系统的协同。在本系统的UML建模中,可以创建以下角色:匿名用户、注册用户、管理员、数据库。
2.创建用例
博客系统根据其实现流程可以构建以下几个用例:
(1)与匿名用户相关的用例:注册、登录、浏览博客、评论、下载附件。
(2)与注册用户相关的用例:浏览博客、登录、评论留言、内容管理、内容发表。
(3)与管理员相关的用例:系统管理。
(4)与数据库相关的用例:注册、登录、评论留言、内容管理、内容发表。
3.建立用例图
图3 博客系统的用例图
2.2.2建立系统类模型
图4为博客系统类图。博客中的任何操作都要在用户注册登录后才能进行,因此在系统事务包的类图中,博客中的功能操作事务都依赖于用户登录的事务。而用户登录事务必须依赖与系统管理员审核。除此之外,博客中的内容添加、修改及删除这个事务都依赖于系统管理的事务。因为这些事务的实现必须经过系统管理的审核,审核通过才能实现操作。所以它们之间都用虚线箭头相连。
图4 博客系统的类图
3 系统设计
3.1 系统结构分析
根据对系统需求分析的结果,博客系统可以分为三个功能模块:①匿名用户模块、②注册用户模块、③系统管理员模块。如图5所示,匿名用户主要有以下几个功能模块,注册模块、评论模块、浏览博客模块、下载附件模块。注册用户有登录模块、个人信息管理模块、发表内容模块、内容管理模块等。系统管理员模块包括系统管理模块、用户管理模块、内容审核模块、链接管理模块。
图5 系统的功能模块结构图
3.2 数据库分析
数据库用于对系统数据的存储和管理,是管理系统中必不可少的一部分。主要对数据库的概念结构和逻辑结构两方面进行设计。
3.2.1 数据库的概念结构设计
数据库的概念结构设计是数据库逻辑结构设计的基础,其过程是将现实世界进行可视化描述,形成的概念模型属于信息世界。而概念模型一般都用E-R图来描述。E-R图有重要的三要素:实体、属性和联系。
我们从系统的功能模块确定实体集,实体包含的属性以及实体与实体之间的联系。博客系统中关键的实体信息如下:
(1)博客系统的用户信息实体,其属性主要包括用户ID、用户名、密码、手机号、注册时间等信息,如图6所示。
图6 用户实体图
(2)博客系统的文章信息实体,其属性主要包括文章编号、文章标题、文章内容、文章分类、发表时间、作者用户名等信息,如图7所示。
图7 文章实体图
(3)博客系统的评论信息实体,其属性主要包括评论编号、文章编号、评论内容、评论时间、用户名等信息,如图8所示。
图8 评论实体图
(4)博客系统的管理员信息实体,其属性主要包括管理员ID、密码、权限等信息,如图9所示。
图9 管理员实体图
(5)博客系统的匿名用户信息实体,无属性。
系统中五个实体用户、文章、评论之间的联系如图10所示。
图10 博客系统E-R图
3.2.2 数据库的逻辑结构设计
根据概念结构设计中的实体联系模型进行数据库的规则转换,将实体和实体间的联系转换为关系模式。本系统最后将以数据表的形式展现数据模型,表明了数据表中字段名、数据类型、含义、长度、是否为空等信息,系统中主要的数据表相关信息如下:
1)用户信息表,表名为user,该表用来存放用户的基本信息,共有五个字段,每个字段都不能为空,字段uid为主键。用户信息表如表1所示。
表1 用户信息表
字段名 | 数据类型 | 是否为空 | 长度 | 字段描述 |
---|---|---|---|---|
uid | int | 否 | 11 | 主键 |
username | varchar | 否 | 20 | 用户名唯一 |
password | varchar | 否 | 20 | 用户密码 |
ucreatetime | datetime | 否 | 8 | 用户注册时间 |
uphone | int | 否 | 11 | 用户手机号 |
(2)文章信息表,表名为article,该表用来记录存储文章的基本信息,包含五个字段,且每个字段都不允许为空,其中字段aid为主键,字段username为外键。文章信息表如表2所示。
表2 文章信息表
字段名 | 数据类型 | 是否为空 | 长度 | 字段描述 |
---|---|---|---|---|
aid | int | 否 | 11 | 主键 |
title | varchar | 否 | 400 | 文章标题 |
content | varchar | 否 | 5000 | 文章内容 |
acreatetime | datetime | 否 | 8 | 文章发表时间 |
username | varchar | 否 | 20 | 作者用户名 |
(3)博客评论表,表名为comment,该表用来记录存储博客评论的基本信息,包含五个字段,其中字段cid为主键,字段username为外键。博文评论信息表如表3所示。
表3 评论信息表
字段名 | 数据类型 | 是否为空 | 长度 | 字段描述 |
---|---|---|---|---|
cid | int | 否 | 11 | 主键 |
aid | int | 否 | 11 | 文章编号 |
review | varchar | 否 | 200 | 评论内容 |
ccretetime | datetime | 否 | 8 | 评论发表时间 |
username | varchar | 否 | 20 | 评论者用户名 |
4 页面设计
改进意见:
(1)去掉了个人页面中的设置,将设置放到单独的界面。
(2)添加了博客系统的图标。
(3)添加博主后台页面,方便对个人博客进行管理。
(4)在博文页面新增发布、保存、下载按钮,新增评论框。
(5)新增匿名用户注册界面。
图11为博客系统的个人主页页面,其余页面见附件—页面设计图片。
图11 博客系统个人主页
5 创新点
(1)专门为学生设计的笔记博客系统,与其他博客相比,没有各种花里胡哨的娱乐新闻,没有广告,只有认真记笔记,借鉴笔记的我们。
(2)邀请名师定期对平台热门笔记进行免费直播评改,帮助博主以及读者对知识更加深入的了解。
(3)汇聚小学生至博士生各个年龄段的博主,从小到大所有专业所有学科的优秀笔记全在这里,更有兴趣相投的同龄人一起交流,经验丰富的学姐学长为你指点迷津。
(4)与各个学校进行合作,鼓励进行线上笔记,进行奖励丰厚的线上笔记评选大赛。
(5)作为博主容易对博客进行管理,每个阶段的学生作为博主都有不同层次的管理操作,非常轻松地管理自己的博客。
(6)博主的个人界面设计极为自由,可以根据自己的喜好从模板中进行选择,或者动手能力强的博主可以自行设计个人界面,自由度极高。尽力达到个性化,努力实现同个人博客一样的良好体验。
(7)在尽力个性化的同时在笔记详情页都采用统一的格式,来获得更好的阅读体验,避免受到无关事情的干扰。
(8)博主的所有笔记经过本人同意后可以进行收费或免费下载,收益由博主和平台分成。
Note Blog博客系统(请用8以上版本打开).rp
顶层数据流图.vsd
类图.vsd
数据库.vsd
系统功能模块结构图.vsd
详细数据流图.vsd
用例图.vsd