【技术规格说明书】命劫开发

本文详细介绍了命劫开发项目的前端和后端技术栈,包括Vue.js、SpringBoot、Mybatis等。阐述了软件的总体架构,强调了前后端分离,详细列出了Alpha阶段的目标和任务分配,包括前端组件、数据库设计、单元测试和压力测试。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目内容
课程2022春季软件工程(罗杰 任健)
要求计划阶段要求-技术规格说明书
目标制定技术规格说明书

一、技术栈
1.1 前端部分
  • 主要框架:vue.js v2.96

  • UI库:vuetify v2.x

  • vue插件:vue-router、vuex v2.x

  • css扩展:sass

  • 测试开发环境:windows 10,nodejs v16.14.2 , npm v6.14.10

  • 实际部署环境:(未知)

1.2 后端部分
  • 主要框架:SpringBoot v2.6.6 Mybatis v2.2.2

  • 数据库:MySQL v5.6.51

  • 测试开发环境:javav1.8 maven v4.0.0

  • 实际部署环境:(未知)

二、软件的总体架构

请添加图片描述

2.1 子系统
  • 服务端:处理数据

  • 客户端:展示数据

  • stomp框架:处理即时通讯

2.2 子系统内部
  • 服务端:controller层负责与前端交互,处理请求转发并调用service层;service层负责对数据进行处理,数据库连接并对数据库操作

三、系统的开发目标
3.1 代码编写
前端模块
  • 首先完成各个组件功能的vue编写

  • 根据页面的布局设计,完成css调整

  • 根据api文档的设计,完成javascript函数编写

  • 测试时,需要编写单元测试代码

后端模块
  • 首先完成数据库的搭建与连接

  • 根据需求编写相应功能函数

  • 根据api文档,完成函数设计

  • 对每个功能函数进行单元测试

3.2 单元测试
前端模块
  • 完成一个功能模块进行一次简单的UI手动测试,并记录操作,总结成Jest单元测试代码。完成一个功能,便实现一次回归测试。
后端模块
  • 对每个实现的函数进行单元测试,看能否正常实现对数据操作,完成一部分后总结为测试代码以便后续进行回归测试
前后端Json交互格式

code:表示交互结果代码依据业界规范,我们将使用20000、40000、40001等代码表示i前后端交互

data:封装交互数据

message:返回系统提示信息

{
    "code": 20000,
    "data": {},
    "message": ""
}
3.3 系统压力测试
  • 压力测试的目标主要是以下几点

    • 负载能力:在正常的响应时间中,系统能够支持的最多的客户端的数量。

    • 响应能力:在各种负载压力情况下,系统的响应时间。

    • 可靠性:在连续工作时间状态下,系统能够正常运行的时间。

  • 具体指标:

    • 响应时间:100毫秒以内

    • TPS(Transaction per Second):200-300

    • 错误率:不高于0.6%

3.4 API设计规范

注意

  1. 在apifox中,我们设置了四种接口状态。请开发人员使用接口时,及时更新状态。

待确定:前后端都未开发和使用。

开发中:后端已开发。

联调中:前端已使用该接口。

已发布:后端已开发且前端已使用。

APIfox缩略图:
请添加图片描述

  1. 若需修改或新建接口,应尽快在群里提出,并协商。后端开发人员可以先完成底层函数的开发,最后再开发接口,防止接口变动导致重新写接口。

请添加图片描述

数据库结构敏捷设计:

请添加图片描述

3.5 系统业务逻辑
系统层面:
运行环境
  • 服务端运行环境:Ubuntu-latest

  • 应用端运行环境:Chrome v100.0.4896.127

系统设计
  • 代码设计

    • 信息的隐藏和封装

      • 将前后端各自封装,通过API进行交流,传递是json格式文件,这样不会暴露各自的内部细节。后端在代码实现的过程中的controller类、service类和Mapper类各自都是拥有私有的数据和公共的方法,很好地将信息进行了封装。
    • 模块化

      • 将前端的代码分为 assets, plugins, components 等文件夹,分别开发具有不同功能的代码,并且使用面向对象的设计思想,复用vue中的 template 实现功能的标准化,模块化。

      • 后端的功能函数是进行封装的,各种操作被集合在service层的类中,如果需要修改接口或者增加需要只要对相应的类进行修改即可,controller层或是前端数据的传回都无需修改。

  • 架构设计

    • 前后端分离

      • 前端采用 vue.js 编写,通过 https 以及 stomp等功能与后端进行数据交互,前后端两组人员各自编写代码,从而实现前后端分离。

      • 后端使用SpringBoot作为整体框架,通过controller层来接收前端数据并传给service层进行处理。后端并不关心前端如何展示以及如何获取数据。

系统性能
  • 对于将来数据IO操作较多的情况下可能会采用主从结构,一个主库负责写操作,从库负责读操作,从而分担读写的压力。但是采用主从结构可能会略微增加延迟,该点需要注意。

  • 实际上我们系统的性能是相对较好的, 但由于我们所使用的服务器较小,在用户量过大的情况下支持性会较差,导致响应速度变慢。

业务流程层面
  • 前端所传回的数据理论上是合法的,前端会检验用户输入数据的格式等是否符合要求,如不符合则反馈错误信息给用户。如果数据格式上符合要求并正确地传给后端,后端会进行判断,比如所添加好友的ID是否存在、所查找的群是否存在等,并返回相应数据给前端。

  • 如果前端传回了错误的数据那么后端就无法利用该信息找到相应的对象,那么可以用try-catch模式给前端反馈错误信息,前端可以要求用户重新输入以便传回正确的数据。

3、Alpha阶段初始任务分配

一、Alpha阶段目标:
  • 完成基础功能开发:
    1. 用户登陆注册
    2. 用户信息编辑
    3. 用户之间的聊天以及交互
    4. 团队群组的交互和交流
    5. 普通会议的开启和参与
  • 在基础功能的基础上添加细节:额外需求将在敏捷开发过程中敏捷迭代
二、Alpha阶段任务分配及计划:
时间:4.11~5.8
说明:未完成状态均为进行中或者尚未开始
项目冷启动阶段:阶段Ⅰ——7天
PM小组:
姓名任务预计时长是否完成
wzx调研相关产品4h❤️
hw调研相关产品2h❤️
wzx依据初步构想设计UI图4h❤️
hw wzx进行市场调研和需求分析4h❤️
wzx设计产品初始化方案3h❤️
hw工业界以及学生采访3h❤️
hw wzx需求文档+规格文档+时间规划+团队贡献制定初步设定6h❤️
hw wzx召开团队会议,制定阶段目标,增强团队凝聚力6h❤️
hw在会议中讨论设计初步系统框架2h❤️
前端小组:
姓名任务预计时长是否完成
xjl调研UI布局体系3h❤️
hw收集UI图库资源3h❤️
xjl依据草图搭建“毛坯”框架5h❤️
yy熟悉Vuetify以及相关组件设计4h❤️
xjl前端Vue+Js技术栈扩展5h❤️
hw前端Vue+css技术栈扩展5h❤️
yy前端Vue+Js技术栈扩展4h❤️
xjl参考同类产品设计并提出构想4h❤️
xjl yy熟悉ajax数据请求以及cookie配置3h❤️
后端小组:
姓名任务预计时长是否完成
zzy后端Springboot技术栈扩展5h❤️
czr后端Springboot技术栈扩展5h❤️
dxt后端Springboot技术栈扩展5h❤️
czr设计初步ER图4h❤️
zzy+czr设计初步API接口文档以及迭代规范4h❤️
dxt调研SpringSocket实时通讯功能4h❤️
czr+zzy依据修正ER图设计数据库表单结构并优化到3NF3h❤️
zzy调试服务器配置,部署docker4h❤️
zzy czr dxt完成后端Spring框架初始化和封装结构4h❤️
项目热开发阶段:阶段Ⅱ——14天
PM小组:
姓名任务预计时长是否完成
wzx继续调研用户需求,分析应用场景4h❤️
hw完善功能规格以及任务分配6h❤️
hw wzx组织团队会议并记录团队进程,推动项目开发4h💔
前端小组:
姓名任务预计时长是否完成
xjl完成整体框架UI设计4h❤️
yy完成登录注册界面以及后端交互邮箱验证4h❤️
hw丰富整体细节CSS以及Html设计5h💔
xjl好友+团队群组信息列表的展示和通知获取4h💔
yy个人信息修改和展示处理5h💔
hw时间轴设计以及布局5h💔
yy xjl聊天内容以及实时交互显示5h💔
hw团队会议阶段提醒与状态设置5h💔
yy xjl文档上传和展示处理4h💔
后端小组:
姓名任务预计时长是否完成
zzy部署API FOX接口测试环境2h❤️
czr通讯录相关接口设计4h💔
zzy用户交互和信息相关接口设计4h💔
dxt实时通讯相关技术接口设计4h💔
zzy用户信息修改、聊天、文档、团队管理功能实现8h💔
czr通讯录处理以及团队用户关系交互设计6h💔
dxt zzy聊天内容即时通讯5h💔
dxt zzy团队会议接口设计以及时间轴信息处理5h💔
zzy czr dxt数据库管理和其他细节处理4h💔
项目冷开发阶段:阶段Ⅲ——7天
PM小组:
姓名任务预计时长是否完成
wzx继续迭代需求4h💔
hw完善功能规格以及文档说明6h💔
hw wzx组织团队会议并记录团队进程,推动项目开发4h💔
测试小组:
姓名任务预计时长是否完成
前端两人 后端两人完善细节增加功能8h💔
前端一人 后端一人协作单元测试,进行覆盖性测试6h💔
前端团队 后端团队系统流量、吞吐量、服务器性能测试4h💔
分配任务:

请添加图片描述

三、会议安排

由于团队成员构成丰富,包含不同专业的本科生、硕博,各自实验任务较重,时间调停难度大,暂定每周天完21:00~22:30进行线下会议;每周3,5举行线上会议推动项目进展。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值