更新时间 2017-09-18 19:11:03 初稿发布
前言
如果让一个新手程序员开发一个web项目,很多人可能无法下手。本文整理出一个web项目比较常见的开发流程,以供大家学习与掌握, 虽然具体到每一个项目,可能不尽相同,但是本质还是遵循下面的思路的。
本流程的大部分内容来自 Java Web项目实战视频的整理,这里做个文字记录。
后续我会按这个流程实现一个商城的开发。
常见流程
1. 需求确定
功能与性能
功能: 购物、注册、浏览、搜索...
性能:支持n个并发,响应时间不低于 m毫秒。
方法
头脑风暴
会议
询问
原型:界面原型、业务原型......
......
本阶段最重要
界面草稿也在本阶段完成
2. 分析设计
架构设计
逻辑架构
三层架构
MVC
......
物理架构
web服务器分布
数据库服务器的分布
......
技术方案
java/.net/php
open source /商业
......
业务逻辑分析
根据需求分析业务
有哪些人使用本系统?
他们使用本系统做什么?
通常他们使用本系统的步骤是什么?
有哪些明显的类支撑本系统运行?
有哪些不同的提示反馈给用户?
通常在需求确定的时候就进行分析
业务逻辑设计
业务逻辑分析的结果
确定有哪些类
确定类的属性
确定类的接口
确定类之间的关系
确定用户操作流程在设计上的反映
进行数据库的设计
界面设计
设计系统的界面风格
颜色,风格
设计系统的具体模拟界面
可以完整跑一边流程。
方便需求的确定。
方便程序的开发。
3. 开发环境搭建
开发工具的确定
配置管理工具的确定
测试工具的确定
文件服务器、配置服务器等确定
4. 开发-测试-开发-测试
按照设计进行开发
迅速开发原型
进行迭代开发
提早进行测试
单元测试
黑盒测试
性能测试
易用性测试
......
5. 文档编撰
需求描叙文档
系统分析与设计
数据库设计
开发接口API docs & 源代码注释
用户帮助(前台)
管理员手册(后台)
测试文档
流程的应用案例(java版网上商城)
网上商城 - 需求确定
普通用户可以浏览商品(按类别)
普通用户可以搜索商品(按类别、价位、日期等)
普通用户可以通过系统下订单(市场价)
普通用户可以注册成为系统会员(免费注册)
会员可以浏览与检索商品
会员可以下订单(会员价)
会员可以浏览自己下过的订单
会员可以管理自己的信息(自服务系统)
修改密码
修改送货地址
修改联系方式
会员可以分级别
不同级别不同的优惠
通过购物的金额确定级别
管理员通过后台对会员管理
会员列表浏览
会员订单浏览
会员删除
修改会员的级别
管理员可以通过后台进行产品分类的管理
浏览、添加、删除、修改
管理员可以通过后台进行产品的管理
新增产品
产品上架
产品下架
产品销量浏览
产品搜索
产品删除
产品的修改
管理员可以通过后台进行订单的管理
订单查询
修改订单状态
订单搜索
订单跟踪
订单提醒
网上商城 - 架构分析设计
逻辑架构
JSP+JavaBean+Database
jsp负责表现层
JavaBean 负责业务逻辑
DataBase 负责持久数据层
物理架构
web服务器一台
-配置清单
数据库服务器一台
配置清单
技术解决方案
服务器: Tomcat-9
数据库 :mysql-5.7.19
网上商城 - 业务逻辑分析
会员类
包装系统会员信息
与订单类有一对多的关系
管理员类
包装系统管理员的信息
产品类
包装产品的信息
与订单是多对一的关系
类别类
包装产品的类别
树形结构
与产品是一对多的关系
订单类
包装订单的信息
与产品是多对多的关系
与会员是多对一的关系
购物车类
包装购物车的信息
与产品是多对多关系
网上商城 - 业务逻辑设计
User
properties
id
username
password
phone
addr
rdate
methods
getOrders()
save()
change()
delete()
search()
Administrator
properties
username
password
methods
login()
Product
properties
id
name
descr
normalPrice
memberPrice
pdate
category
methods
getCategory()
getSalesCount()
change()
search()
Category
properties
id
name
descr
pid (parent :Category)
methods
getProductCounts()
save()
change()
SaleOrder & SaleItem
SaleOrder
SaleItem
properties
id
productD
unitPrice
pCount
methods
getTotalPrice()
save()
change()
ShopingCart & CartItem
- ShopingCart
- CartItem
- properties
- productId
- unitPrice
- pCount
- methods
- getTotalPrice()
网上商城 - 数据库设计
User
字段名
字段类型
说明
id
int
主键/自动递增
username
varchar
用户名
password
varchar
密码
phone
varchar
电话
addr
varchar
地址
rdate
datetime
注册日期
Product
字段名
字段类型
说明
id
int
主键/自动递增
name
varchar
产品名
descr
varchar
描述
normalprice
varchar
市场价
memberprice
varchar
会员价
pdate
datetime
上架日期
categoryID
int
类别ID /引用 category 表的id
Category
字段名
字段类型
说明
id
int
主键/自动递增
name
varchar
分类名
descr
varchar
描述
pid
int
父id
SalesOrder
字段名
字段类型
说明
id
int
主键/自动递增
userid
int
用户id
addr
varchar
送货地址
odate
datetime
下单时间
status
int
订单状态: 0 订单未处理 1 处理成功 2 废单
SalesItem
字段名
字段类型
说明
id
int
主键/自动递增
productid
int
产品id
unitprice
varchar
单价
pcount
datetime
数量
orderid
int
订单id/ 引用saledorder表的id
网上商城 - 界面设计
前台
前台首页 index.jsp
显示某类商品
根据id显示图片
搜索
注册
登录
自服务
搜索界面 search.jsp
搜索结果页面 searchresult.jsp
注册
注册页面 register.jsp
注册成功 registerok.jsp
注册失败 registererror.jsp
登录
登录页面 login.jsp
登录成功 loginOk.jsp
登录失败 loginError.jsp
自服务 selfService.jsp
修改密码 changePassword.jsp
修改成功changePasswordOk.jsp
修改失败 changePasswordError.jsp
修改其他信息 changeInfo.jsp
修改其他信息成功 changeInfoOk.jsp
修改其他信息失败 changeInfoError.jsp
购物
购物车浏览 cart.jsp
结账 buy.jsp
后台
产品管理
产品列表 productList.jsp
产品添加 productAdd.jsp
产品编辑 productEdit.jsp
产品删除productDelete.jsp
产品搜索 productSearch.jsp
类别管理
类别列表 categoryList.jsp
类别添加 categoryAdd.jsp
类别删除 categoryDelete.jsp
类别修改 categoryEdit.jsp
订单管理
订单列表salesOrderList.jsp
订单详情 salesOrderDeal.jsp
网上商城-开发环境搭建
开发工具
- idea
WEB SERVER
tomcat
DATABASE
mysql
SCM
git
网上商城-开发
先写用户
再写分类
再写产品
接下来购物
最后订单
其他功能
网上商城-开发安排
v0.1
用户模块
v0.2
分类模块
v0.3
产品模块
v0.4
购物模块
v 0.5
订单模块
v 0.6
其他模块
文档编撰
需求描叙文档
系统分析与设计
数据库设计
开发接口API docs & 源代码注释
用户帮助(前台)
管理员手册(后台)
测试文档