更新时间 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 负责持久数据层
- JSP+JavaBean+Database
-
物理架构
web服务器一台
-配置清单数据库服务器一台
配置清单
-
技术解决方案
- 服务器: Tomcat-9
- 数据库 :mysql-5.7.19
网上商城 - 业务逻辑分析
-
会员类
- 包装系统会员信息
- 与订单类有一对多的关系
-
管理员类
- 包装系统管理员的信息
-
产品类
- 包装产品的信息
- 与订单是多对一的关系
- 类别类
- 包装产品的类别
- 树形结构
- 与产品是一对多的关系
- 订单类
- 包装订单的信息
- 与产品是多对多的关系
- 与会员是多对一的关系
- 购物车类
- 包装购物车的信息
- 与产品是多对多关系
网上商城 - 业务逻辑设计
-
User
- properties
- id
- username
- password
- phone
- addr
- rdate
- methods
- getOrders()
- save()
- change()
- delete()
- search()
- properties
-
Administrator
- properties
- username
- password
- methods
- login()
- properties
-
Product
- properties
- id
- name
- descr
- normalPrice
- memberPrice
- pdate
- category
- methods
- getCategory()
- getSalesCount()
- change()
- search()
- properties
-
Category
- properties
- id
- name
- descr
- pid (parent :Category)
- methods
- getProductCounts()
- save()
- change()
- properties
-
SaleOrder & SaleItem
- SaleOrder
- SaleItem
- properties
- id
- productD
- unitPrice
- pCount
- methods
- getTotalPrice()
- save()
- change()
- properties
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 & 源代码注释
- 用户帮助(前台)
- 管理员手册(后台)
- 测试文档