软件工程 - 个人博客系统 - 可行性分析与需求分析文档
Posted 一身千寻瀑
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件工程 - 个人博客系统 - 可行性分析与需求分析文档相关的知识,希望对你有一定的参考价值。
本文原创所有,未经允许不得转载,请尊重作者权利。
个人博客系统
---可行性分析与需求分析文档
1. 引言
1.1报告撰写目的
个人博客系统是针对希望个性化使用博客的用户的需求而设计,是可以完成个人博客用户登入、发表、浏览、修改文章以及图片视频、留言、评论甚至个性化设计博客网站页面、排版布局等功能的系统。
此可行性研究报告,是为实现在最短的时间内以最小的代价确定设计个人博客系统的问题是否可以解决,从而确定进一步对系统进行开发的流程步骤。
1.2项目背景
近年来随着信息技术的进步,Blog(音译博客)也快速发展。虽然目前用户在网络上发表文章、张贴内容的目的有很大的差异,但是由于沟通方式比电子邮件、讨论群组以及BBS和论坛更展现个性,博客系统已经成为广大用户发表文章言论的主要工具。
2. 可行性分析
2.1系统基本要求
2.1.1采用架构
本项目采用浏览器/服务器(B/S)架构:浏览器可用IE8.0或其他等同浏览器,服务器端使用Tomcat8.0,数据库采用mysql5.5。
2.1.2主要功能要求
主要分为三大模块功能:个人博客浏览、个人博客管理、系统管理等。
(1)个人博客浏览主要包括的功能:阅读博客、注册、发表留言、发表评论、下载文章附件等。
(2)个人博客管理的功能:登录、撰写与发表文章、文章以及素材(图片、音频、视频)管理、消息管理、个人资料管理等。
(3)系统管理的功能:用户管理、博客分类与归类、公告管理、评论管理、链接、系统维护等。
2.1.3系统运行环境
服务器运行采用Linux CentOS,浏览器端使用装有基本浏览器的操作系统即可,一般是Window 7及以上。
2.2系统开发要求
2.2.1网站实现
开发周期:文档编写6周,代码编写3周,软件测试1周。
2.2.2环境搭建
服务器端采用云服务提供商的云主机,安装Linux CentOS、Tomcat、php、MySQL搭建网站系统环境。
2.2.3费用开支与效益分析
(1)租用学生云主机1元/月,环境搭建采用开源免费软件。
(2)代码开发,因项目开发为个人博客系统,所需开发与维护人员为1。
综上,各项费用开支基本为0,个人博客系统为非盈利的网站,纯经济效益为0。
2.3其他各因素的可行性分析
2.3.1可用性方面分析
搭建符合博客用户自己使用习惯的系统,且不关心系统经济效益,因此可用性较佳。
2.3.2法律方面分析
法律方面的问题较多,主要涉及到著作权、专利权等方面法律问题,软件人员与个人博客使用用户通常是不熟悉的,需注意研究,鉴于个人博客系统的非盈利性、非广泛传播特点,法律问题一般不会涉及较多。
3. 可行性分析总结
上述可行性分析,参考现有开发资料、文档等资源,个人博客系统的体系结构比较完善,开发要求相比于复杂的系统较低,具备进一步进行需求分析与后续开发的条件。
以上为项目的可行性分析,自此向下为博客系统的需求分析。
3. 项目功能需求
3.1基本需求分析
基于个人博客的特点,本系统实现个人博客的主要功能,包括博客系统的站主登录/退出,博客站主并发表文章、图片等,游客发表评论、分页浏览文章和下载文章附件等。博客系统主要区分了两类用户,分别为博客站主和普通游客。网站登录仅限于博客站主,博客站主可以登陆写下自己的文章与上传附件,登陆即拥有网站管理的权限,未登录时均以游客身份访问。游客主要的功能是分页、分类、分标签阅读博客站主文章和浏览图片,发表评论和留言。以上是个人博客的系统需求分析的基本实现目标,由于个人博客的个性化特点,还应实现博客站主自定义网站系统页面的功能,如添加标签栏、归档栏、日历、横幅图片、寄语等包括但不限于此的个性化功能。
3.2系统设计方法
(1) 系统为博客网站站主提供专门的登录、登出界面,不为浏览网站的用户提供登陆界面,亦不包括登陆后的管理界面。
(2) 浏览用户仅有浏览网页、评论文章、下载指定附件的功能,除评论功能外,不涉及对博客网站系统后台数据库表的修改。
(3) 博客站主需输入账号与密码方可登陆,登陆后可进行各种管理操作。
3.3功能性分析
(1) 网页浏览;
(2) 站主登录、登出;
(3) 文章管理,发表、修改、评论、留言、搜索、多媒体管理(添加、删除、修改)、上传;
(4) 站长管理,添加投稿者、管理员;
(5) 插件管理,添加、删除、设置特性等;
(6) 外观管理,标题栏、归档分类、日历、横幅、寄语等外观的添加、删除、设定等;
4. 开发环境、硬件及软件的需求
开发工具:Notepad++
Rational Rose
Office Visio 2013
编程语言:PHP
SQL
开发模式:B/S模式
软件与硬件需求:
本地客户机:
普通PC
Window XP/7/8/10
建议浏览器IE7.0以上
WEB服务器:
CPU1.8GHz以上、2G以上内存
Linux CentOS
Apache+PHP+MYSQL+FTP环境配置
5. 系统的结构化功能建模、分层数据流图
(1)顶层数据流图
(2)一层数据流图
(3)二层数据流图
i. 发表评论
ii. 浏览文章与下载附件
iii. 管理文章
iv. 管理站点
6. 数据字典描述
(1)顶层数据字典
实体名称 | 数据流 | 简述 |
访客 | 浏览信息、评论信息、下载信息 | 访客浏览网页内容,可对文章等进行评论,亦可下载符合条件的附件 |
站长 | 管理事务、浏览信息、下载信息 | 站长可以发起各种管理操作,如写文章、使用网站插件、增删附件、管理网页界面、管理个人信息等行为,同时具备访客的所有功能 |
(2)一层数据字典
系统各功能名称 | 对应实体 | 数据流 | 简述 |
阅读文章 | 访客 | 浏览信息 | 访客浏览网站,可阅读符合条件的文章,并记录下访客的浏览信息,如IP地址、文章浏览量等信息 |
发表评论 | 访客 | 评论信息 | 访客浏览文章、图片、视频媒体时,可对此发表评论,网站记录评论信息,是否即时发表由站长开关评论审核而定 |
下载附件 | 访客、站长 | 下载信息 | 访客、站长均可以下载文章附件,附件形式多种,如doc、ppt、mp3、mp4等,网站记录下载信息,访客、站长获得对应附件 |
浏览站点 | 站长 | 浏览信息 | 站长除具有访客浏览网站文章的功能外,还可以浏览站点后台页面,网站记录站长浏览信息,便于站长管理备份与恢复 |
管理站点 | 站长 | 非文章管理事务 | 站长可以发起管理站点事务,对除文章相关操作外的网站操作起作用 |
管理文章 | 站长 | 文章管理事务 | 站长可以发起文章管理事务,进行对文章相关的操作 |
(3)二层数据字典
i.发表评论
加工名 | 输入数据流 | 输出数据流 | 加工逻辑 |
内容合法性检查 | 访客评论 | 有效评论、无效评论 | 有效评论符合评论规则,评论规则规定某些关键词不能够出现,否则为无效评论 |
写入评论 | 有效评论 | 评论信息 | 有效评论写入评论信息表,记录相应文章ID与评论内容、时间等相关信息,是否即时发表由站长开关评论审核决定,发表后评论即可写入文章评论表 |
ii.浏览文章与下载附件
加工名 | 输入数据流 | 输出数据流 | 加工逻辑 |
浏览文章 | 浏览信息 | 浏览信息 | 访客浏览文章,记录浏览信息,如文章访问量、访客IP等信息 |
检查附件 | 下载信息 | 有效附件、无效附件 | 检查附件是否在服务器存在或是否 符合下载条件,如下载者带宽过低、网站暂不能支持下载等,导致输出无效信息数据流 |
下载附件 | 有效信息、附件信息 | 下载信息 | 通过检查,可以下载附件,从附件信息表中读取附件地址,传输给下载者,记录下载信息,如下载量、下载时间等信息并写入信息统计表 |
iii.管理文章
加工名 | 输入数据流 | 输出数据流 | 加工逻辑 |
分类选择 | 分类事务 | 新增事件、修改事件、合并事件、删除事件 | 站长发起文章分类事务,下一步可以选择新增、修改、合并、删除分类操作 |
添加分类 | 新增事件 | 分类信息 | 添加新的文章分类 |
修改分类 | 修改事件、合并信息 | 修改信息 | 修改文章分类名称 |
合并分类 | 合并事件 | 合并信息 | 选择不少于两个的文章分类,合并成一个分类,进入修改分类加工中对新合并的分类起名称 |
删除分类 | 删除事件 | 分类信息 | 删除已经存在的文章分类,内含删除合法性检查,过程为自动检索文章信息表,若分类中存在对应文章,则不能删除该分类 |
标签选择 | 标签事务 | 新增事件、修改事件、删除事件 | 站长发起文章标签事务,下一步可以选择添加标签、修改标签、删除标签操作 |
添加标签 | 新增事件 | 标签信息 | 对一个文章添加标签,写入文章信息表中对应的信息 |
修改标签 | 修改事件 | 修改信息 | 对一个文章已经存在的标签进行修改,写入文章信息表中对应的信息 |
删除标签 | 删除事件 | 标签信息 | 对一个文章已经存在的标签进行删除,写入文章信息表中对应的信息 |
审核评论 | 审核事务、评论信息 | 通过、不通过 | 若站长开启评论审核,则从评论信息表中读取评论信息,通过的评论进入写入加工,不通过的评论从评论信息表中删除 |
写入评论 | 通过 | 评论信息 | 通过的评论信息经加工后写入对应文章的文章评论表 |
删除评论 | 删除评论事务、评论信息 | 评论信息 | 站长对文章评论进行删除加工,从对应的文章评论表中删除相应评论信息 |
回复评论 | 回复评论事务、评论信息 | 评论信息 | 站长回复评论,从文章评论表中读取评论信息,回复的评论信息按照新的评论信息再写入对应文章的文章评论表中 |
选择文章 | 管理文章事务 | 空信息、修改事务、删除事务 | 站长对文章进行管理,可以修改文章、删除文章,并规定如果选择为空,则进行新增文章操作 |
文章修改 | 修改事务 | 修改信息、修改附件信息 | 修改文章内容或附件,修改内容的进行内容修改,修改附件的进入附件调取加工 |
文章删除 | 删除事务 | 文章信息、评论信息 | 选择一个文章进行删除操作,将文章的信息从文章信息表中删除,同时将文章的评论从文章评论表中也进行删除 |
新增文章 | 空信息、分类信息、无效附件 | 文章信息、附件添加信息 | 选择为空,则进行新增文章,即从分类表中选择文章分类,同时写文章,如选择添加附件,则进入下一加工,否则直接进入发布文章加工 |
附件调取 | 附件添加信息、修改附件信息、附件信息 | 无效附件、有效附件 | 从附件信息表中调取附件信息,添加到文章附件中,若调取有效,则进入发布文章加工 |
发布文章 | 文章信息、有效附件、修改信息 | 文章信息 | 从上层加工中接收新的文章信息,将新的文章信息在发布文章中加工后,写入文章信息表 |
iv.管理站点
加工名 | 输入数据流 | 输出数据流 | 加工逻辑 |
选择附件 | 附件地址、无效地址 | 相对地址 | 从本地选择符合条件的文件,记录这个文件的本地地址 |
上传附件 | 相对地址 | 附件信息、无效 | 把选中的附件拷贝到本地网站对应目录下,并进行验证,成功上传的对新上传的附件添加各项信息,写入附件信息表,否则返回无效信息 |
选择插件 | 插件地址、无效地址 | 相对地址 | 从本地或插件库选择符合条件的文件,记录这个文件的本地地址 |
上传插件 | 相对地址 | 插件信息、无效 | 把选中的插件拷贝到本地网站对应目录下,并进行验证,成功上传的对新上传的插件添加各项信息,写入插件信息表,否则返回无效信息 |
使用插件 | 插件信息 | 无 | 从插件信息表中读取插件信息,在选择界面选择使用该插件,并应用到个人博客系统中 |
选择模板 | 自定义界面事务、模板地址 | 模板地址、模板信息 | 从本地或模板库选择符合条件的文件,记录这个文件的本地地址 |
上传模板 | 模板地址 | 模板地址 | 把选中的模板拷贝到本地网站对应目录下,记录模板地址写入模板信息表 |
应用模板 | 模板信息 | 无 | 从模板信息表中读取模板信息,在选择界面选择使用该模板,并应用到个人博客系统中 |
信息管理 | 管理信息事务、网站信息、站长信息 | 网站信息、站长信息 | 站长发起管理事务,可对自身或网站信息进行添加、修改、删除等操作,并应用到系统网站页面上 |
网站备份 | 备份事务 | 备份信息 | 记录当前网站信息,拷贝一份相同的文件作为镜像,将备份信息写入备份表,以备维护与恢复 |
网站恢复 | 恢复事务、备份信息 | 无 | 从备份记录表中读取网站备份信息,从本地读取存储镜像,确认恢复网站的,将系统恢复到选定状态 |
7. 系统行为建模、状态图示例
以该系统部分行为为例进行结构化的行为建模,设计状态图如下所示。
(1) 发表评论
(2) 下载附件
8. 系统数据建模、E-R模型图、关系模式表示
8.1 总体E-R图
l 部分E-R图不再列出,实体属性关系可见关系模式表示。
8.2 关系模式表示
站长信息(登录名,密码,昵称,头像,联系方式,站长说明)
主码:登录名 唯一
外码:登录名
网站信息(序号,站名,URL,数据时间,模板地址,插件地址,附件地址,是否已备份,其他信息)
主码:序号 唯一
外码:序号
模板信息(序号,名称,模板地址,是否可用,说明)
主码:序号
外码:模板地址
插件信息(序号,名称,插件地址,是否可用,说明)
主码:序号
外码:插件地址
附件信息(序号,名称,附件地址,是否可用,权限,说明)
主码:序号
外码:附件地址
文章信息(序号,题目,分类名称,文章地址,附件地址,浏览量,发布时间,作者,附件下载量,权限)
主码:序号
外码:分类名称 作者
分类(序号,分类名称,描述)
主码:序号 分类名称
外码:分类名称
信息统计(文章序号,浏览量,附件下载量,其他信息)
主码:文章序号
外码:浏览量 浏览量附件下载量
文章评论(文章序号,评论序号,评论时间,评论内容,评论人,回复序号)
主码:文章序号 评论序号
外码:回复序号
评论回复(文章序号,回复序号,回复评论序号,回复时间,回复内容,回复人)
主码:文章序号 回复序号
外码:回复评论序号
评论审核(审核序号,文章序号,评论时间,评论内容,评论人)
主码:审核序号
外码:文章序号
数据库表:
站长信息表
属性名 | 数据类型 | 约束条件 | 注释 |
登录名 | Varchar(10) | Primary key, not null |
|
密码 | Varchar(6) | Not null |
|
昵称 | Varchar(20) | Not null |
|
头像 | Nvarchar(MAX) | Not null | 头像图片地址 |
联系方式 | Varchar(20) |
|
|
站长说明 | Nvarchar(280) |
|
|
网站信息表
属性名 | 数据类型 | 约束条件 | 注释 |
序号 | Int | Primary key, not null |
|
站名 | Varchar(20) | Not null |
|
URL | Nvarchar(MAX) |
|
|
数据时间 | Date | Not null | 网站系统最新的数据更新时间 |
模板地址 | Nvarchar(MAX) | Not null | 本地存储地址 |
插件地址 | Nvarchar(MAX) |
| 本地存储地址 |
附件地址 | Nvarchar(MAX) |
| 本地存储地址 |
是否已备份 | Bool | Not null | 根据数据时间决定是否已备份 |
其他信息 | Nvarchar(50) |
|
|
模板信息表
属性名 | 数据类型 | 约束条件 | 注释 |
序号 | Int | Primary key, not null |
|
名称 | Varchar(20) | Not null | 模板名称 |
模板地址 | Nvarchar(MAX) | Not null |
|
是否可用 | Bool | Not null |
|
说明 | Nvarchar(50) |
| 模板说明 |
插件信息表
属性名 | 数据类型 | 约束条件 | 注释 |
序号 | Int | Primary key, not null |
|
名称 | Varchar(20) | Not null | 插件名称 |
插件地址 | Nvarchar(MAX) | Not null |
|
是否可用 | Bool | Not null |
|
说明 | Nvarchar(50) |
| 插件说明 |
附件信息表
属性名 | 数据类型 | 约束条件 | 注释 |
序号 | Int | Primary key, not null |
|
名称 | Varchar(20) | Not null | 附件名称 |
附件地址 | Nvarchar(MAX) | Not null |
|
是否可用 | Bool | Not null |
|
权限 | Varchar(10) | Not null | 站长权限、所有权限 |
说明 | Nvarchar(50) |
| 附件说明 |
文章信息表
属性名 | 数据类型 | 约束条件 | 注释 |
序号 | Int | Primary key, not null |
|
题目 | Varchar(100) | Not null |
|
分类名称 | Varchar(20) | Not null |
|
文章地址 | Nvarchar(MAX) | Not null |
|
附件序号 | Int | Not null | 文章所使用的附件 |
浏览量 | Int | Not null |
|
发布时间 | Date | Not null |
|
作者 | Varchar(20) | Not null |
|
附件下载量 | Int | Not null |
|
权限 | Varchar(10) |
| 阅读权限 |
分类表
属性名 | 数据类型 | 约束条件 | 注释 |
序号 | Int | Primary key, not null |
|
分类名称 | Varchar(20) | Not null |
|
描述 | Nvarchar(50) |
| 分类描述 |
信息统计表
属性名 | 数据类型 | 约束条件 | 注释 |
文章序号 | Int | Primary key, not null |
|
浏览量 | Int | Not null | 文章浏览量 |
附件下载量 | Int | Not null |
|
其他信息 | Nvarchar(100) |
|
|
文章评论表
属性名 | 数据类型 | 约束条件 | 注释 |
文章序号 | Int | Primary key, not null |
|
评论序号 | Int | Not null |
|
评论时间 | Date | Not null |
|
评论内容 | Nvarchar(MAX) | Not null |
|
评论人 | Varchar(20) | Not null |
|
回复序号 | Int |
| 可以没有回复,若有回复序号,从回复表中查找回复内容 |
评论回复表
属性名 | 数据类型 | 约束条件 | 注释 |
文章序号 | Int | Primary key, not null |
|
回复序号 | Int | Not null |
|
回复评论序号 | Int | Not null | 必须有前置评论才能回复,从评论表中查找被回复内容 |
回复时间 | Date | Not null |
|
回复内容 | Nvarchar(MAX) | Not null |
|
回复人 | Varchar(20) | Not null |
|
评论审核表
属性名 | 数据类型 | 约束条件 | 注释 |
审核序号 | Int | Primary key, not null |
|
文章序号 | Int | Not null |
|
评论时间 | Date | Not null |
|
评论内容 | Nvarchar(MAX) | Not null |
|
评论人 | Varchar(20) | Not null |
|
本文原创所有,未经允许不得转载,请尊重作者权利。
-------------------------------------------------------------------------------------------------------------------------
END
2016.10.17
以上是关于软件工程 - 个人博客系统 - 可行性分析与需求分析文档的主要内容,如果未能解决你的问题,请参考以下文章
基于 SpringBoot 的个人博客系统设计与实现(含论文与程序代码).rar
毕业设计云存储-个人云服务系统的设计与实现.rar(毕业设计+程序源码)