团队作业2:《需求规格说明书》
作业课程 | 信息安全1812 |
---|---|
作业要求 | 团队作业2 |
作业目标 | 需求分析,详细计划,团队合作 |
一、需求规格说明书
1.1 引言
1.1.1 编写的目的
此需求规格说明书的编写目的是明确本项目的详细需求,供开发人员确认项目的功能和性能,作为进一步详细设计软件的基础。
本文档仅供本次开发项目的开发人员进行参考。
1.1.2 背景
- 项目名称:纯享版博客园
- 项目开发团队:四带二小组
- 面向用户:广东工业大学计算机学院学生
1.1.3 项目范围
如今,博客几乎是每个程序员人手必备的法宝。无论是日常开发经验还是技术难点,都能记录在自己的博客里,既是梳理自身知识体系的高效工具更是分享交流的平台。
但是由于种种原因,我校计算机学院的许多学子都只有浏览博客的经验,并没有真正使用博客的经验。往往到了大三,甚至是到了工作以后,才认识到博客管理的重要性。
本次纯享版博客园项目的开发,旨在解决计算机学院学子们博客上手难上手晚的问题。极简主义的博客平台,省去了一切繁琐花哨的设计,远离喧嚣,专注于纯粹的文字表达,给同学们提供入门博客的平台的同时,还给计算机学院的学子们营造了一个分享项目经验、互助解惑的良性学习氛围。
1.1.4 项目开发意义
-
真实性
本项目立足于广工计算机学院学子真实遭遇,切身之痛万分真实 -
可用性
IGDUT及GDUT课表+等项目的成功,都让我们认识到广工学子对新生事物的接受度是非常高的。而且广工计算机学院素来缺少属于自己人的交流平台,本次项目更是旨在解决计算机学院学子们博客上手难上手晚的问题,只要我们自身质量过硬,不愁用户量的问题。 -
价值所在
本项目给同学们提供入门博客的平台的同时,还给计算机学院的学子们营造了一个分享项目经验、互助解惑的良性学习氛围。有价值有情怀,可谓是用心良苦。
1.2 用户需求分析
1.2.1 目标
预期用户数量:2700+
1.2.2 用户的特点
面向用户:广东工业大学计算机学院学生
- 本科学生,有较强的自学能力和适应新事物的能力
- 广工学子,论坛贴吧使用人群分散,缺少统一分享交流的平台
- 计算机学院学子,专注于计算机编程相关信息,有较为统一的关注点
1.2.3 用户场景分析
我们的系统主要面向以下几类用户:
- 从未写过博客也从未浏览过博客的新生群体,给该类用户提供一个博客入门的平台
- 仅查阅过一些博客,尚未开始写自己的博客的群体,给该类用户提供一个学习博客管理的机会
- 有一定博客基础的群体,给该类用户一个与本学院同学分享生活经历、互助解惑的窗口
1.3 功能需求分析
1.3.1 功能结构图
1.3.2 具体功能列表
功能 | 具体描述 |
---|---|
登陆注册 | 用户使用邮箱或用户名+密码登录 用户注册一个账号 |
我的资料管理 | 用户修改个人信息 用户修改密码 |
博客管理 | 用户撰写博客 用户修改博客 用户删除博客 用户查看历史博客 |
首页广场 | 展示全站博客简介 用户通过博客简介进入博客详情页 |
博客详情页 | 展示作者简介 用户通过作者简介进入作者个人主页 展示博客详情信息 |
个人主页 | 个人主页展示部分非私密信息 个人主页展示该用户历史博客 |
1.4 技术需求分析
1.4.1 前端技术选型
项目前端采用vue框架+element/vant库+vue-router+vue-cli
技术选型 | 原因 |
---|---|
vue | 采用国内流行的vue框架进行开发,利用组件化开发的特性,让项目可维护性变强,开发分工明确 |
element/vant库 | 采用流行库让页面风格统一,同时减少在html css上耗费的时间,注重业务逻辑 |
vue-router | 补充开发时vue对路由开发的不足 |
vue-cli | 搭建开发所需要的环境 |
1.4.2 后台技术选型
技术 | 说明 | 官网 |
---|---|---|
SpringBoot | MVC框架 | https://spring.io/projects/spring-boot |
SpringSecurity | 认证和授权框架 | https://spring.io/projects/spring-security |
MyBatis | ORM框架 | https://mybatis.org/mybatis-3/ |
Redis | 缓存 | https://redis.io/ |
Druid | 数据库连接池 | https://github.com/alibaba/druid |
JWT | JWT登录支持 | https://github.com/jwtk/jjwt |
Lombok | 简化对象封装工具 | https://github.com/rzwitserloot/lombok |
fastjson | json转换工具 | https://github.com/alibaba/fastjson |
Nginx | HTTP和反向代理web服务器 | http://nginx.org/ |
Hutool | Java工具包类库 | https://hutool.cn/docs/#/ |
二、团队计划
2.1 团队GitHub仓库
2.1.1 地址
四带二:https://github.com/Four-with-Two/blog-system-server
2.1.2 团队项目issues截图
2.2 具体分工
职责 | 人员 |
---|---|
前端 | 黄添榕、何悦、左梓仪 |
后台 | 何科宪、胡晓煜、周赛星 |
测试 | 何科宪、胡晓煜、黄添榕、何悦、左梓仪、周赛星 |
相关文档撰写及管理 | 左梓仪、周赛星、胡晓煜 |
2.3 团队计划
2.3.1 修正前的团队计划
周次 | 任务 |
---|---|
第6周 | 1.团队组队、团队博客 |
2.团队介绍、成员展示、角色分配、选题确定 | |
3.制定团队计划安排,团队贡献分的规定 | |
第7周 | 1.需求规格说明书 |
2.原型设计,队员估计任务难度并学习必要的技术 | |
3.编码规范完成、平台环境搭建完成、初步架构搭建 | |
第8周 | 1.原型改进(给目标用户展现原型,并进一步理解需求) |
2.架构设计,WBS, 团队成员估计各自任务所需时间 | |
3.测试计划 | |
第9、10周 | 1.团队项目 Alpha 任务分配计划 |
2.连续7天的 Alpha 敏捷冲刺,7篇每日 Scrum Meeting 博客+代码提交 | |
第11周 | 1.用户反馈+测试计划改进 |
2.团队 Alpha 阶段个人总结 | |
3.团队项目 Alpha 博客:发布说明、测试报告、展示博客、项目管理 | |
第12周 | 1.团队项目Alpha博客:事后分析 |
2.3.2 修正后的团队计划
时间 | 完成模块 |
---|---|
第9周 | 项目搭建,分好模块,利用easymock和eolinker完成好模拟数据 |
第10、11周 | 1.团队项目 Alpha 任务分配计划 |
2.连续7天的 Alpha 敏捷冲刺,7篇每日 Scrum Meeting 博客+代码提交 | |
3.开始各模块并行开发 | |
第12周 | 对接接口 |
第13周 | 1.打包测试 |
2.用户反馈+测试计划改进 | |
3.团队 Alpha 阶段个人总结 | |
4.团队项目 Alpha 博客:发布说明、测试报告、展示博客、项目管理、事后分析 |
2.3.3 修正算法
- 实际情况
考虑到大家的学习进度,适当延长了学习时间、缩短了开发时间。 - 效率优化
为了提高效率,采取了假数据开发方法。后台先完成接口设计,前端根据后台提供的数据进行前端开发,避免了前端在后台开发过程中无事可做的情况。两条线同步进行,大大提高了效率。
三、当前完成情况
个人感想及完成情况
成员 | 感想 | 完成情况 |
---|---|---|
胡晓煜 | 学习了一些java后台技术,还得继续努力 | 1.学习java后台技术 2.管理仓库和添加issue |
黄添榕 | 专注。 | 应该基本完成? |
何科宪 | 任务艰巨,要加快自己的学习进度以及积极与队友的沟通 | 完成了接口设计和数据库设计 |
何悦 | 跟着同学一起学习非常棒 | 完成js入门学习,开始接触vue框架 |
周赛星 | 本周制定好了技术学习路线,戴上幸福面具,淌洋在学习的海洋中 | 完成 mysql和jdbc学习。是有点慢,但是慢工出细活嘛! |
左梓仪 | 真没想到软件开发需要写这么多文档,积累了不少经验。不过时常不能平衡自己写文档和学习新技术的时间,后面得想想办法改进自己的时间利用方法 | 完成了html和css入门 |