版本号 | 修改说明 |
v1.0 | 完成文档初稿,确定撰写文档目的,对项目有一个基本定位 |
v1.1 | 修改目录 |
v2.0 | 添加第三类用户功能,修改文档相关内容 |
此需求规格说明书编制目的是明确本项目的详细需求,确认项目的功能和性能,和用户形成一致的理解和确认,作为进一步详细设计软件的基础。本文档仅供本项目全体成员,包括项目经理、设计人员、开发人员参考。 本项目作为高级软件工程的第四次课程,小组成员为王枫(031)、黄金筱(107)、周明浩(255)、刘烨(277),主要实现个人博客的搭建。初步决定使用python语言,flask框架。
- 项目名称: 未命名的博客(个人博客)
- 项目面向用户:个人博主
- 项目开发者:武汉大学软工实践 121ComeOn 小组
- flask 开发文档
- 《构建之法》(第二版),邹欣。
通过前期调研,我们发现现代社会人们接触到的知识都是碎片化且散乱的知识,大家希望有一个可以把自己每天激发的想法、感受、学到的碎片知识或者想收藏供以后回顾的东西整理、记录下来,通过这种方式来记录生活,分享知识,交流经验。
而目前的博客网站不够个性化,相似的界面和复杂的操作促使我们希望设计开发出一个属于自己的博客,它符合我们的审美,有个性化功能,并且可以自主地添加自己其他功能,使每天的记录不再流于形式;开发此博客可以锻炼小组成员的代码能力,提高团队合作意识,从而完成一个更加自由、更加个性、更加专业的博客项目。
完成个人博客的基本功能,主要包括登录、搜索、发布博文、管理、讨论,以及根据需求分析添加的个性化功能,包括ToDoList、消息通知。对于游客来说,可以进行搜索、浏览、留言、分享等功能。
- 本系统的拥有者(博主)
- 普通游客
- 已认证游客
- 博主小周
姓名 | 小周 |
性别 | 男 |
职业 | 武汉大学研究生在读 |
知识层次和能力 | 研究生,有一定计算机知识储备 |
动机、目的、困难 | 动机、目的:记录碎片知识和心情,在项目中提高编程能力,搭建一个符合自己审美和功能的个性化专业博客 |
用户偏好 | 扁平化设计风格,个性化功能 |
用户比例 | 相当于占50% |
典型场景 | 登录博客,编辑博文选择相应的tag发布;在搜索框输入关键字搜索;修改或删除曾经的博文,也可修改博客风格以及相应功能;可以增加、删除、查看、修改代办事项和ToDoList分类,随时查看校内网通知。 |
典型描述 | 我用我喜欢 |
2.普通游客小李
姓名 | 小李 |
性别 | 男 |
职业 | 学生 |
知识层次和能力 | 大学,从小使用使用电脑 |
动机、目的、困难 | 动机、目的:浏览网页,发现好玩的新鲜事,学习他人的知识。困难:网上无用的知识太多,不容易找到好资源 |
用户偏好 | 有风格、有深度的干货 |
用户比例 | 50% |
典型场景 | 这个博客真棒,我喜欢 |
姓名 | 小王 |
性别 | 男 |
职业 | 武汉大学研究生在读 |
知识层次和能力 | 有一定的计算机知识储备 |
动机、目的、困难 | 动机、目的:在网上寻找有意思的内容,能够随时随地看到最新资讯 |
用户偏好 | 功能齐全,操作简洁,资讯丰富 |
用户比例 | 占20% |
典型场景 | 认证前浏览相关博文,留言;认证后查看武大官网最新资讯 |
典型描述 | 比普通游客多一个特权,有意思 |
- 博主:能够添加博文、登录、搜索、管理博客、可以增加待办事项、可以接收消息、可以与留言进行互动
- 小李:能够搜索、浏览博客,与博主互动留言
- 小王:介于博主和普通游客之间,既可以作为普通游客使用基本功能,又可以拥有查看最新咨询的权限
依托于 Python 的开源,本项目可以在各种系统中(Windows、Linux、IOS、Android)运行。
采用 AJAX 技术,使用 JSON 格式进行缓存,所有的计算过程只在有数据更新时进行。 因此,有能力相信,在一个性能极低的路由器上亦可完美运行,且能提供不小的吞吐量,当然,存储器的大小需要根据实际的数据量确定。
通过 AJAX 技术,加之采用 GZIP 压缩传输数据,通信的数据量极其小,除去图片,用户每次的 page view 不足 5K。 假设用户的页面停留时间为3分钟,图片全部使用外部链接,那么 1M 带宽足够承载 5000 位用户同时访问。
通过使用 HTML5 提供的 API,以及 CSS3 提供的新样式,可支持所有现代浏览器
浏览器 | Chrome | Edge | Firefox | Internet Explorer | Opera | Safari |
---|---|---|---|---|---|---|
最低版本 | 5 | All | 4.0 | 10 | 11.50 | 5.0 |
- 技术前提:小组成员都熟悉python语言,有一定的编程经验。
- 人员前提:小组主要成员基本不会出现变动,并且在项目开发过程中不会因为突发情况的发生而导致项目成员无法正常参与开发工作。
- 可操作性:假定用户在经过一段时间熟悉之后,可以灵活地操作本网站来满足自己的需要。
- 用户支持:假定在本网站在开发的各个环节中得到用户的有效支持和配合。
- 时间限定:假定项目的截止时间不会提前。
- 需求限定:假定项目需求基本确定之后,不会有太大改变。
测试功能 | 测试项 | 输入/操作 | 检验点 | 测试功能 | 完成情况 |
首页功能 | 静态功能 | 导航栏按钮分布 | 每个按钮可点击 | ||
主页界面博客布局 | 博客在主界面中呈缩略图垂直分布,并采用分页布局 | ||||
搜索按钮 | 点击可输入 | ||||
主页界面博客布局 | 博客在主界面中呈缩略图垂直分布,并采用分页布局 | ||||
巨幕置顶 | 博客名及欢迎语在博客最顶部显示,以巨幕形式始终置顶 | ||||
动态功能 | 点击首页按钮 | 确认功能、结果显示 | 刷新主页 | ||
点击发按钮布 | 确认功能、结果显示 | 未登录显示登录框,否则显示发布博客弹窗 | |||
点击ToDoList按钮 | 确认功能、结果显示 | 未登录显示登录框,否则显示事项弹窗 | |||
点击消息按钮 | 确认功能、结果显示 | 未登录显示登录框,否则跳转至消息列表 | |||
点击个人中心 | 确认功能、结果显示 | 未登录显示登录框,否则进入设置页面 | |||
输入搜索内容 | 搜索框 | 显示搜索内容 | |||
点击标签 | 确认功能、结果显示 | 显示对应标签博文 |
测试功能 | 测试项 | 输入/操作 | 检验点 | 测试功能 | 完成情况 |
发布功能 | |||||
静态布局 | 编辑页结构 | 编辑页主要由以下六个部分组成:包括标题、时间、内容、分类、是否隐藏、是否切换编辑器 | |||
输入测试 | 输入框输入长度大小为10000的字符串 | 确认功能、判断输入非法 | 下方提示输入长度非法,重新输入 | ||
不输入标题 | 确认功能、判断输入非法 | 将采用默认标题“标题” | |||
不输入内容 | 确认功能、判断输入非法 | 下方提示内容不能为空 | |||
不选取时间 | 确认功能、判断输入非法 | 下方提示时间不能为空 | |||
点击编辑器复选框 | 确认功能、结果显示 | 切换为所选编辑器 | |||
正确输入点击提交 | 确认功能、判断结果 | 增加新的博客并在主页顶端显示 |
测试功能 | 测试项 | 输入/操作 | 检验点 | 测试功能 | 完成情况 |
博文详情 | 静态页面 | 页面布局 | 由上到下分为巨幕、导航、标题、内容、评论区这五个部分 | ||
动态功能 | 不输入邮箱 | 确认功能、判断非法操作 | 下方提示邮箱不能为空 | ||
输入邮箱格式错误 | 确认功能、判断非法操作 | 下方提示邮箱格式错误 | |||
不输入姓名 | 确认功能、判断非法操作 | 下方提示姓名不能为空 | |||
不输入评论 | 确认功能、判断非法操作 | 下方提示评论不能为空 | |||
点击提交按钮 | 确认功能、结果显示 | 评论内容显示在博文下面 |
测试功能 | 测试项 | 输入/操作 | 检验点 | 测试功能 | 完成情况 |
待办事项 | 静态页面 | 页面布局 | 由上到下分为巨幕、导航、添加任务、代办任务列表、已完成任务列表这五个部分 | ||
动态功能 | 输入新事务 | 确认功能、结果显示 | 将最新事务在列表最上端显示 | ||
点击事务前方框 | 确认功能、结果显示 | 事务被划掉,3秒后加入已完成列表 | |||
点击需要编辑的事务 | 确认功能、结果显示 | 显示编辑事务弹窗 |
测试功能 | 测试项 | 输入/操作 | 检验点 | 测试功能 | 完成情况 |
设置功能 | 静态页面 | 页面布局 | 由上到下分为巨幕、导航、更改巨幕图、修改tag分类、删除博文这五个部分 | ||
动态功能 | 点击上传按钮 | 确认功能、结果显示 | 上传图片 | ||
编辑tag分类 | 确认功能、结果显示 | 页面显示编辑后的结果 | |||
点击删除按钮 | 确认功能、结果显示 | 对应博文不显示在列表中 |
测试功能 | 测试项 | 输入/操作 | 检验点 | 测试功能 | 完成情况 |
消息页面 | 静态页面 | 页面布局 | 由上到下分为巨幕、导航、消息列表这三个部分 | ||
动态功能 | 点击每条消息 | 确认功能、结果显示 | 跳转至消息链接的页面 |
测试功能 | 测试项 | 输入/操作 | 检验点 | 测试功能 | 完成情况 |
认证功能 | 静态页面 | 页面布局 | 由上到下分别为姓名、学校、备注 | ||
动态功能 | 未输入姓名 | 确认功能、判断非法输入 | 提示非法输入 | ||
未输入学校 | 确认功能、判断非法输入 | 提示非法输入 | |||
点击提交 | 确认功能、结果显示 | 已认证跳转消息页面,未认证显示提交成功 |