0.
软件工程
应用与实践
个人博客系统
--- 概要设计与详细设计文档
一、体系结构设计
1.软件结构化设计概述
该阶段主要在于定义个人博客系统的主要结构元素及其之间的关系。
详细的数据流图已在需求分析文档中给出。通过功能划分过程来完成软件结构设计,设计基本模块如下:浏览登录、发表文章、发表评论、附件上传下载、文章管理、站点管理、站点自定义等。另外还有统计流量、设立网站日志等其他功能模块。
2.结构化分析过程
i. 根据数据流图决定问题的类型:变换型和事务型。针对两种类型分别进行分析处理。
ii. 由数据流图推导出系统的初始结构图。
iii. 利用启发式原则来改进系统的初始结构图,得到符合要求的结构图。
3.结构图
(原图较大,建议200%放大查看)
二、接口设计
1.软件接口设计概述
依据数据流图中的自动化系统边界设计个人博客系统与用户(站长)之间的交互。
2.软件与用户间交互的接口设计
以下用几个例子描述该个人博客系统的人机交互界面的设计。
i. 发表评论与查看评论
ii. 写文章
iii. 管理分类
iv. 管理评论
v. 管理文章
vi. 自定义站点
3.模块与软件构件间的接口设计
模块间接口主要以参数传递的形式体现,部分接口信息如下所示:
站长登陆 – 密码验证(用户名)
发表文章 – 添加附件(文章ID)
发表评论 – 合法性验证(评论ID)
发表评论 – 评论审核(评论审核标志)
评论审核 – 评论显示(文章ID)
下载附件 – 权限检查(身份信息)
使用模板 – 选择模板(模板信息)
网站备份 – 网站恢复(网站信息记录)
等模块接口,不再逐一列出。
4.软件与其他软硬件系统之间的接口设计
个人博客系统运行需要PHP环境和MySQL支持,需要相应的驱动程序。网站系统运行需要Apache/Tomcat服务支持。
打印网站日志记录等需要子系统和硬件打印机接口的支持。
三、数据设计
1.数据设计概述
E-R图、数据字典描述、状态图等已在需求分析文档中给出。根据分析模型中的实体关系图和数据字典进行数据设计,包括数据文件的设计和数据库设计。
2.文件设计
i. 数据量较大的非结构化数据
数据库站长信息表、文章信息表、附件信息表等设计的照片在数据库中是以文件路径的形式存在,即照片等非结构化数据用文件存储,在工程路径/bin/image/下保存。
ii. 历史记录、表单数据、网站备份还原等
在个人博客系统中进行操作后会有记录,相应的操作记录会保存在文件中备查。
在系统中进行诸如发表文章、评论行为时,可以用来记录网站日志,日志明细以excel文件的形式保存在工程文件目录下,需要时可从excel文件中调取信息。
进行网站备份时,当当前网站照样拷贝,存储在备份目录backup/下,并创建专用的备份日志文件记录备份信息。需要还原网站时,调取日志文件信息找到backup/下相应网站镜像进行还原操作。
iii. 非关系层次化数据,如系统配置文件
系统需要PHP环境才能运行,个人博客系统初始化时需要检测本机环境,配置正确方能进入系统,配置信息从配置文件中获得。
3.数据库设计
i. 数据对象实体的映射
横切:网站备份表内信息采用横切的方式,即备份信息凡是超过3个月的转移到历史表或者文件中存储。
竖切:各信息表中常用的属性是ID、某名称、密码、权限等属性,而该信息其他相关的存储如评论地址、登陆地址、联系方式等属性较少使用,因此将必要信息独立成表,而把其他不常用信息存储在其他表中。
ii. 关系的映射
站长信息(登录名,密码,昵称,头像,联系方式,站长说明)
主码:登录名 唯一
外码:登录名
网站信息(序号,站名,URL,数据时间,模板地址,插件地址,附件地址,是否已备份,其他信息)
主码:序号 唯一
外码:序号
模板信息(序号,名称,模板地址,是否可用,说明)
主码:序号
外码:模板地址
插件信息(序号,名称,插件地址,是否可用,说明)
主码:序号
外码:插件地址
附件信息(序号,名称,附件地址,是否可用,权限,说明)
主码:序号
外码:附件地址
文章信息(序号,题目,分类名称,文章地址,附件地址,浏览量,发布时间,作者,附件下载量,权限)
主码:序号
外码:分类名称 作者
分类(序号,分类名称,描述)
主码:序号 分类名称
外码:分类名称
信息统计(文章序号,浏览量,附件下载量,其他信息)
主码:文章序号
外码:浏览量 浏览量附件下载量
文章评论(文章序号,评论序号,评论时间,评论内容,评论人,回复序号)
主码:文章序号 评论序号
外码:回复序号
评论回复(文章序号,回复序号,回复评论序号,回复时间,回复内容,回复人)
主码:文章序号 回复序号
外码:回复评论序号
评论审核(审核序号,文章序号,评论时间,评论内容,评论人)
主码:审核序号
外码:文章序号
四、过程设计
1.详细设计阶段描述
确定个人博客系统各个组成部分内的算法及内部数据结构,并选定某些过程的表达形式来描述各种算法。
依据分析模型中的加工规格说明、状态转换图进行过程设计。针对过程设计阶段,对该系统的内部详细设计用程序流程图的方式表达。
2.程序流程图设计
程序流程图设计以如下功能示例:发表评论、浏览文章、下载附件、发表文章、备份网站等,其他诸多流程不再逐一列出。
i. 浏览文章
ii. 发表评论
iii. 下载附件
iv. 发表文章
v. 备份网站
--------------------------------------------------------------------------------------------------------
文档有些简陋。。 就这样吧。。
原创所有。
--------------------------------------------------------------------------------------------------------
END
2016/11/08