转自: http://www.cnblogs.com/cwzhang/archive/2012/02/01/2335019.html
一、需求确定
1:通过各种手段确定系统的功能与性能
1)功能:注册、浏览、搜索...
2)性能:可同时支持n个并发访问,并且响应时间不低于m毫秒...
3)手段:头脑风暴(brain storm)、会议、询问、原型(界面原型、业务原型...)
2:本阶段是项目开发的最重要阶段
3:在web项目中,通常界面设计会在本阶段进行
二、分析与设计
1:架构分析与设计
1)逻辑架构
a:3层架构、n层架构
b:MVC
c:Model 1 or Model 2
d:其他...
2)物理架构
a:Web服务器的分布
b:数据库服务器的分布
c:其他...
3)技术解决方案的确定
a:Java/.NET
b:Open Source/商业
c:其他...
2:业务逻辑分析
1)根据需求分析业务逻辑
a:有哪些人会使用本系统
b:他们会使用本系统做什么
c:通常他们使用本系统的步骤是什么样的
d:会有哪些明显的类来支撑本系统的运行
e:会有哪些不同的提示会反馈给用户
f:其他...
2)本阶段与需求的确定密切相关,通常在确定需求的时候就会进行相关的分析
3:业务逻辑设计(不同的项目步骤可能不尽相同)
1)根据需求的分析来确定具体的类
2)确定类的属性
3)确定类的接口(方法)
4)确定类之间的关系
5)取得用户操作流程在设计上的反映
6)进行数据库的设计(面向对象设计提倡先设计类再设计数据库)
7)其他...
4:界面设计
1)设计系统的界面风格
a:颜色、style
2)设计系统的具体“模拟”界面
a:能够从头走到尾(方便进行需求的确定,方便JSP程序员的开发)
三、开发环境搭建
1:开发工具的确定
2:配置管理工具的确定
3:测试工具的确定
4:文件服务器/配置服务器等的确定
5:其他...
四、开发
1:开发-测试-开发-测试
1)按照设计进行开发
a:迅速开发原型
b:进行迭代开发
c:提早进行测试(单元测试、黑盒测试、性能测试、易用性测试、...)
五、文档编纂
=================================================================
网上商城示例:
一、需求确定
1:普通用户可以通过系统浏览商品(按类别)
2:普通用户可以通过系统搜索商品(按类别、价位、日期等)
3:普通用户可以通过系统下订单(享受市场价)
4:普通用户可以注册成为系统会员(免费注册)
5:会员可以浏览和检索商品
6:会员可以下订单(享受会员价)
7:会员可以浏览自己下过的订单
8:会员可以管理自己的信息(自服务系统:修改密码、修改送货地址、修改联系方式)
9:会员可以分级别
a:不同级别享受不同等级的优惠
b:通过购物的金额确定级别
10:管理员通过后台进行会员管理
a:会员浏览
b:会员历史订单浏览
c:会员删除
d:指定会员级别
11:管理员通过后台进行产品分类的管理
a:浏览、添加、删除、修改
12:管理员通过后台进行产品管理
a:新增产品
b:产品上柜
c:产品下柜
d:产品销量浏览
e:产品搜索
f:产品删除
g:产品修改
13:管理员通过后台进行订单的管理
a:订单查询
b:修改订单状态
c:订单搜索
d:订单跟踪
e:订单提醒
二、分析与设计
1:架构分析与设计
1)逻辑架构
JSP + JavaBean + DataBase
a:JSP负责表现
b:JavaBean负责业务逻辑
c:DataBase负责持久保持数据
2)物理架构
a:Web服务器一台(配置)
b:数据库服务器一台(配置)
3)技术解决方案的确定
a:WebServer - Tomcat5.5
b:DataBase - MySQL5.0
2:业务逻辑分析
1)会员类
a:包装系统会员
b:与订单类有一对多的关系
2)管理员类
a:包装系统管理员
3)产品类
a:包装产品的信息
b:与订单式多对多的关系
4)类别类
a:包装产品的类别
b:树状结构
c:与产品是一对多的关系
5)订单类
a:包装订单的信息
b:与产品是多对多的关系
c:与会员是多对一的关系
6)购物车类
a:包装购物车的信息
b:与产品是多对多的关系
3:业务逻辑设计
1)User
a:properties(id、username、password、phone、addr、rdate)
b:methods(getOrders()、save()、change()、delete()、static search())
2)Administrator
a:properties(username、password)
b:methods(login())
3)Product
a:properties(id、name、descr、normalPrice、memberPrice、pdate、category)
b:methods(getCategory()、getSalesCount()、save()、change()、search())
4)Category
a:properties(id、name、descr、parent:Category)
b:methods(getProductCounts()、save()、change())
5)SalesOrder & SaleItem
a:properties(id、userid、addr、SalesItem[]、odate)
b:methods(getTotalPrice()、save()、change()、getSalesItems())
6)SalesOrder & SaleItem
a:properties(id、productID、unitPrice、pCount)
b:methods(getTotalPrice()、save()、change())
7)ShoppingCart & CartItem
a:properties(userid、CartItem[])
b:methods(getTotalPrice()、save()、change()、getCartItems())
8)ShoppingCart & CartItem
a:properties(productID、unitPrice、pCount)
b: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 | varchar | 父id |
表名:SalesOrder:字段名 字段类型 说明
id | int | 主键/自动递增 |
userid | int | 用户id |
addr | varchar | 送货地址 |
odate | datetime | 下单时间 |
state | int | 订单状态:0-订单未处理,1-处理成功,2-废单 |
表名:SalesItem:字段名 字段类型 说明
id | int | 主键/自动递增 |
productid | int | 产品id |
unitpe | varchar | 单价 |
pcount | datetime | 数量 |
orderid | int | 订单id/引用SalesOrder的id |
4:界面设计
前台(根目录下):
1)首页index.jsp
a:显示某类商品
b:根据id显示图片
c:搜索
d:注册
e:登录
f:自服务
2)搜索界面search.jsp
3)搜索结果searchresult.jsp
4)注册
a:注册页面register.jsp
b:注册成功registerok.jsp
c:注册失败registererr.jsp
5)登录
a:登录页面login.jsp
b:登录成功loginok.jsp
c:登录失败loginerr.jsp
6)自服务selfservice.jsp
a:修改密码changepassword.jsp
b:修改成功changepasswordok.jsp
c:修改失败changepassworderr.jsp
d:修改其他信息changeinfo.jsp
e:修改其他信息成功changeinfook.jsp
f:修改其他信息失败changeinfoerr.jsp
7)购物
a:购物车浏览cart.jsp
b:结账buy.jsp
后台(admin目录下):
1)登录页面login.jsp
2)首页index.jsp
a:用户管理
b:产品管理
c:类别管理
d:订单管理
3)用户管理
a:显示用户userlist.jsp
b:删除用户userdelete.jsp
c:搜索用户usersearch.jsp
4)产品管理
a:产品显示productlist.jsp
b:产品添加productadd.jsp
c:产品更改productchange.jsp
d:产品删除productdelete.jsp
e:产品搜索productSearch.jsp
5)类别管理
a:类别显示categorylist.jsp
b:类别添加categoryadd.jsp
c:类别删除categorydelete.jsp
d:类别修改categorychange.jsp
6)订单管理
a:订单浏览salesorderlist.jsp
b:订单处理salesorderdeal.jsp
三、开发环境搭建
1:开发工具:eclipse3.2
2:WEB SERVER:tomcat5.5
3:DATABASE:MySQL
4:SCM:CVS
四、开发
开发流程:
1:先写用户
2:再写分类
3:然后写产品
4:接下来写购物
5:最后订单处理
6:其他功能
开发安排(几个人几天完成):
V0.1:用户 - JavaBean 前台/后台
V0.2:分类 - JavaBean 前台/后台
V0.3:产品 - JavaBean 前台/后台
V0.4:购物 - JavaBean 前台
V0.5:订单 - JavaBean 前台/后台
V0.5:其他 - JavaBean 前台/后台
五、文档编纂
1:需求描述文档
系统分析与设计
数据库设计
开发接口API|docs&源代码注释
用户帮助(前台)
管理员手册(后台)
测试文档