一、 需求分析
目标:明确需要做什么
做法:需求调研 了解业务背景
跟软件用户/客户沟通
观察用户的工作环境和工作流程
挖掘用户潜在的需求
需求整理
需求分析
需求报告
输出(软件):
后端:了解⽤户需要实现的功能有哪些 (逻辑⽅⾯)
需求⽂档/需求列表:罗列出功能点及要求
- 需求分析报告/需求分析说明书(正规化)
如果需求⽐较复杂,就需要使⽤说明书描述
- 需求列表
-- 功能性分析
需要完成的功能点有哪些 eg: 登录、注册、找回密码功能
--
⾮功能性分析(性能)
扛压能⼒、稳定性、容错性⾼
鲁棒性
robust
健壮性
通常情况下,传统JavaWeb项⽬,
没有过⾼的性能需求。新型的JavaWeb项⽬,会出现很多、很⾼的性能需求。
JavaWeb项⽬(⽹站搭建):
1)传统项⽬:xxxxxx管理系统(⾮盈利性需求)
体量较⼩,或者可以较为准确估算出峰值。
百度公司开发员⼯内部管理系统:⽤户量有限
2)新型项⽬
开放性(⽤户注册)、运营性质(盈利需求)
淘宝 天猫 京东 拼多多 B站 知乎
体量不确定
给出⾮功能性的指标要求:承载⼀⼩时内50000⽤户的正常访问,保证稳定。
系统不能崩 ,保证⽤户的操作在0.5s内得到响应,保证⽤户的使⽤体验。
前端:绘制⽹⻚(软件界⾯)
输出⼀些原型图/效果图
不会直接写html代码
如果原型图符合要求,在后续设计和实现阶段,
前端开发⼈员会使⽤编程技术,编写出来⼀套⻚⾯,和之前绘制出来的⼀模⼀样。
实体分析 实体建模(抽象)
Entity
实体:系统中需要存储和维护的⼀些数据的种类(⼤多数情况下就是需求描述中的⼀些名词)
eg
:电商项⽬ ⽤户可以在⾸⻚进⾏登录,或者注册,⽤户注册时必须填写账号、密码、邮政编码、⼿机号、邮
箱,登录成功之后可以跳转到⾸⻚⾯,在⾸⻚⾯上查看商品推荐信息。也可以根据分类查找商品。点击商品图标
可以跳转到详情⻚查看商品具体的内容。可以查看商品的名称、所属分类、描述、价格、图⽚、优惠活动
……
输出成果:实体关系模型图
E-R
图
Entity Relationship
E-R
图三要素:
1
)实体名称
2
)实体属性
3
)实体之间的关联关系
数量关系:⼀对⼀ ⼀对多 多对多
逻辑关系:
may be
、
must be
二、系统设计
目的:明确准备怎么做,源于需求分析的结果,进行系统的整体/细节设计
做法:
1. 概要设计
系统的架构 B/S 单体 三层架构
数据库表设计,依据前⾯输出的E-R图
把每个实体转换成每个表格。
实体名称 - 表名
实体属性 - 表中的字段
实体关系
-
表中的外键
2. 详细设计
功能模块设计
流程图
前后端分离架构:接口文档
三、编码实现
四、功能测试
目的:检查做的怎么样
做法:
1.基础的单元测试:开发人员自己写完代码之后写一段测试代码,测试代码逻辑的正确性,SpringBoot中直接继承了单元测试框架,借助Junit插件完成测试即可
2.系统性的全局性质测试:QA部门/小组
3.前后端联合测试:ApiPost + Idea插件
五、部署上线
使用SpringBootMaven对项目进行打包发布