团队作业2-《需求规格说明书》
目录
Ⅰ.需求规格说明书
1 简介
1.1 编写目的
本文档的目的是详细地介绍个人博客所包含的需求,以便客户能够确认产品的确切需求以及开发人员能够根据需求设计编码,以下叙述将结合文字描述、数据流图、ER图等来描述个人博客项目的功能、性能、用户界面、运行环境、外部接口以及针对用户操作给出的各种响应。本文档的预期读者有客户、项目经理、开发人员以及跟该项目相关的其他竞争人员。
1.2 背景
该项目适用于喜欢分享技术、乐于表达自己、有想法的个人,由软件工程课的NoBugsOnlyFeatures团队进行后续的开发和实施工作。
1.3 参考资料
[1]窦万峰.软件工程方法与实践(第三版).北京:机械工业出版社,2016[2]普莱斯曼.软件工程:实践者的研究方法(原书第8版).北京:机械工业出版社,2016
2 任务概述及假定性约束
2.1 项目背景及用户分析
个人博客是一款个性化、自由个人展示系统,可以在这里分享自己有趣的想法,技术、项目等等,以及分享自己的烦心事或畅聊每天的趣事,现在市场上大部分的在线公共博客都不仅仅是帮助用户解决问题,还掺杂了一些诸如推送广告、推销等的附带功能,所以我们推出个人博客,主打私有,自由,无其他附带功能的特点。
2.2 系统功能概述
-
登陆、登出
-
发表、删除博客
-
个人主页
-
博客列表
-
博客编辑
-
博客分页
-
博客详情
2.3 假定及约束
- 软件约束
- IDEA
- JavaJDK: jdk1.8
- 服务器: apche-Tomcat-6.0.18
- mysql-8.0-windows
- maven3.3.9
- 框架: SpringBoot、mybatis plus、shiro、redis、lombok、hibernate validatior、jwt等
- 人力和时间的约束
本博客系统开发过程中需要考虑到人力和时间的约束,相较于一些软件的开发团队来说人员较少时间较短。
- 技术发展的约束
计算机技术和发展的日新月异,将会给信息处理带来更多手段,同时也会带来更加丰富的信息表达形式,例如现在发展起来的人工智能等等,可能导致我们在搜索问题的时候没有那么智能,这就要求软件在设计时要考虑技术变化的可能性,为可能的变化预留一定的处理能力。
3 功能性需求
3.1 个人博客系统流程(主要业务流程)
3.2 功能编号和优先级
功能编号 | 功能 | 优先级 |
---|---|---|
1 | 用户登陆 | 高 |
2 | 发表博客 | 高 |
3 | 编辑博客 | 中 |
4 | 博客列表 | 中 |
5 | 博客列表分页 | 高 |
6 | 个人主页 | 高 |
7 | 编辑主页 | 高 |
8 | 编辑博客 | 中 |
9 | 博客详情 | 中 |
3.3 系统角色
- 作者(管理员User)
对博客内容和个人信息进行管理。发表,编辑,删除博客;修改个人主页信息。 - 匿名用户(Visitor)
查看作者博客主页,查看博客详情。
3.4 系统总模块结构
3.5 数据字典及规则
- 数据字典
数据项 | 数据线含义 | 数据类型 | 取值范围 | 备注 |
---|---|---|---|---|
用户名 | 唯一标识每一个用户 | varchar | 6-20个 | |
密码 | 保护用户名不被他人用来登录 | varchar | 6-20个 | 以*显示 |
用户是否存在 | 前端传过来含有用户名和密码的json对象,后端接受到之后在数据库中匹配,返回是否匹配的信息给前端 | map | ||
角色 | 标识每一个用户在系统中能行驶的权限 | varchar | 作业、匿名用户 |
- 规则
规则编号 | 校验规则 |
---|---|
f-1 | 去掉用户名前后的空格。 |
f-2 | 用户名长度为 6-20 个字符,用户名不能为空、少于 6 或大于 20,否则给出提示信息。 |
f-3 | 用户名中出现字母、数字、下划线以外的字符时,给出提示信息。 |
f-4 | 去掉密码的前后空格。 |
f-5 | 密码长度为 6-20 个字符,密码不能为空、少于 6 或大于20,否则给出提示信息。 |
f-6 | 密码中出现字母、数字、下划线以外的字符时,给出提示信息。 |
f-7 | 用户登录后根据用户的角色,行使相应的权限。 |
f-8 | 用户名,角色,任何一项允许为空条件。 |
f-9 | 用户名,角色,任何一项如果不为空,则要求是可显示的字符型数据。 |
4 需求描述
4.1 登陆页面
- 用户名和密码检查:符合形式,输入错误,提示用户名或密码有问题,请重新输入
- 密码框保护:输入的字符在密码框隐藏
4.1 个人主页信息管理
- 用户登陆后,可以管理个人信息
- 管理个人信息时,可修改自己的昵称、头像、邮箱、联系电话、出生日期等等
4.2 博客管理
- 用户登陆后,可以更新博客
- 用户登陆后,可对以往博客浏览和编辑
- 发表博客可将博客储存为草稿
4.3 博客主页
- 匿名用户可查看作者主页
- 匿名用户可查看博客主页,博客主页可由匿名用户选择分页
- 匿名用户点击博客可跳转至博客详情
- 登陆,登出
5 非功能性需求
5.1 性能(用户数量)
- BLOG系统要支持25个并发用户
- BLOG系统处理查询操作响应时间不超过10秒
5.2 可拓展性
- 当前使用 BLOG 系统的主要是具有上网的大众,这些大众用户增长速度比较快。BLOG 系统要能够在三年内支持这样的增长速度。
5.3 安全性
- 对数据库存储敏感信
针对本系统我们对用户码进行加(用 MD5 加密,是一种 32 位字符的加密方法,以保证各级用户对系统访问的安全性。生成的口令不可逆转输入的口令不应显示在显示终端上。
- 访问控制
页面不可直接访问,防止黑客对页面篡改。页面访问通过连接动作驱动,访问时作权限检查。有效防止用户通过地址栏输入地址对信息非法访问。系统在页面执行过一次后再次访问通过缓冲工作区执行对页面屏蔽。
5.4 易用性
- BLOG 系统要简单、易用,具有清晰的导航功能,使操作者快速找到自己想要执行的操作页面。
- BLOG 系统要保证一个非计算机专业的用户,通过自己阅读用户手册,可以使用此系统。
Ⅱ.博客项目的真实性、可用性以及价值所在
- 真实性:作为一个个人博客项目,其真实性在于它反映了博主的真实想法和创作成果。博客内容可以是个人经历、学习笔记、技术分享等,只要是博主自己的原创内容,就能够保证其真实性。
- 可用性:一个好的博客项目应该具备良好的可用性,让用户能够轻松地找到自己需要的信息。博客项目可以通过设计良好的导航栏、标签分类、搜索功能等方式提高可用性,让用户更加方便地浏览和阅读博客内容。
- 价值所在:博客项目的价值在于它能够为读者提供有价值的信息和知识。博主可以通过分享自己的经验和见解,为读者提供有用的参考和帮助。同时,博客项目也可以作为博主展示自己的平台,展示自己的才华和能力,为自己的职业生涯和个人品牌建设打下基础。
Ⅲ.团队项目的码云链接及issues截图
Ⅳ.团队项目时间安排表
时间 | 任务 |
---|---|
3.30前 | 1.需求规格说明书 |
2.原型设计,后端人员复习springboot、mybatisPlus,前端人员复习vue | |
3.编码规范完成,平台环境搭建完成,初步架构搭建 | |
4.7前 | 1.团队成员估计各自任务所需时间,测试计划 |
2.进行登陆、博客接口接口 | |
3.整合shiro+jwt,异常处理,实体校验,跨域问题 | |
4.进行前端页面开发 | |
5.登陆页面,token状态同步,定义axios拦截器,完成对博客列表,博客编辑,博客详情页面开发 | |
4.15前 | 1. 团队项目Alpha任务分配计划 |
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 | |
4.23前 | 1.用户反馈+测试计划改进 |
2. 团队Alpha阶段个人总结 | |
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理 | |
4. 团队项目Alpha博客:事后分析 |
Ⅴ.团队分工
- 周睿晨:后端接口开发、开发文档编写、测试
- 樊培岩:前端开发
- 黄嘉艺:UI设计、
- 梁嘉俊:开发文档编写、测试
- 甘坤南:开发文档编写、测试
- 钟思捷:开发文档编写、测试
Ⅵ.队员感想
- 周睿晨
我觉得这个项目很有意义。通过个人博客,我们可以展示自己的想法和技能,也可以和其他人分享和交流。我很期待能和团队一起完成这个项目,向他人展现我们的才华和努力。
- 樊培岩
做这个项目让我感到很兴奋。我一直喜欢写作和设计,这个项目将为我提供一个展示自己创造力的平台。同时,团队合作也是一个很好的学习机会,我期待能够和其他成员一起成长。
- 黄嘉艺
我很感激有机会参与这个项目。虽然我在技术方面不是很擅长,但我会尽力为团队做出自己的贡献。我相信通过合作,我们能够创造出一些真正有价值的东西。
- 梁嘉俊
我觉得这个项目很有挑战性。我们需要从零开始构建一个博客平台,这需要我们的技术和团队合作能力。但我相信我们有足够的才华和决心,一定能够完成这个项目。
- 甘坤南
这个项目让我感到很兴奋。我一直对互联网和编程很感兴趣,这个项目将为我提供一个实践的机会。同时,我也期待能够和其他成员一起分享和学习,共同成长。
- 钟思捷
我对这个项目充满期待。这是一个很好的机会,让我学习如何与团队合作,如何将自己的想法转化为实际的产品。我相信这个项目将为我带来很多宝贵的经验和成长机会。