web项目开发的一般流程
1.需求确定
2.分析与设计
(1)架构分析与设计
(2)业务逻辑分析
(3)业务逻辑设计
(4)界面设计
3.开发环境搭建
4.开发-测试-开发-测试
5.文档编纂
在这里注意的是:各个阶段过程都是有文档的,需求有需求的文档,设计有设计的文档,测试也有测试的文档.
首先来看需求确定:
需求确定
通过各种手段确定系统的功能与性能
功能:用户维护、物料维护….
性能:可同时支持n个并发访问,并且响应时间不高于m毫秒…
手段:
头脑风暴(brainstorm)
会议
询问
原型–界面原型、业务原型…
本阶段是项目开发的最重要阶段
在web项目中,通常界面设计会在本阶段进行
分析与设计
一:架构分析与设计
逻辑架构
3层架构、n层架构…
MVC…
Model1orModel2
…
物理架构
Web服务器的分布
数据库服务器的分布
…
技术解决方案的确定
Java/.NET
OpenSource/商业
…
二.业务逻辑分析:(使用UML画出活动图啊,流程图等)
业务逻辑分析
根据需求分析业务逻辑
有哪些人会使用本系统
他们会使用本系统做什么
通常他们使用本系统的步骤是什么样的
会有哪些明显的类来支撑本系统的运行
会有哪些不同的提示会返馈给用户
…
本阶段与需求的确定密切相关,通常在确定需求的时候就会进行相关的分析
在此阶段可以用UML图画出高层用例-每个功能的用例-编写用例文档
三.业务逻辑设计
业务逻辑设计
根据需求的分析来确定具体的类
确定类的属性
确定类的接口(方法)
确定类之间的关系
确定用户操作流程在设计上的反映
进行数据库的设计
不同的项目步骤可能不尽相同
…
四.界面设计
界面设计
设计系统的界面风格
颜色、style
设计系统的具体“模拟”界面
能够从头走到尾
方便进行需求的确定
方便JSP程序员的开发
…
开发环境搭建:
开发环境搭建
开发工具的确定
配置管理工具的确定
测试工具的确定
文件服务器/配置服务器等的确定
…
开发-测试-开发-测试
开发-测试-开发-测试
按照设计进行开发
迅速开发原型
进行迭代开发
提早进行测试
单元测试(白盒测试)就是知道代码,知道如何实现的人进行的测试
黑盒测试(功能性测试、验收测试)
性能测试
易用性测试
…
DRP的开发一个小流程如下:
分析阶段:
一:画用例图分为高层用例图和功能用例
二:对每一个功能用例进行用例文档的编写:(模板如下)
这里对修改密码这个功能用例进行分析
【目的】
用户可以修改自己的密码
【输入】
旧密码
新秘密
确认密码
【输出】
正常情况:输出修改密码成功信息
异常情况:输出相关错误信息
【约束】
前置条件:用户成功登录到系统
后置条件:无
特殊约束:
为了更好的保护用户口令,以“*”方式显示
用户输入的密码至少6位
修改成功后,待该用户下一次登录时,修改生效
【处理流程】
三:处理流程用UML图的活动图来画.
四:界面的设计和画界面
五:逻辑架构设计等
六:数据库设计:
如何设计表?
a)发现领域中的概念,理清领域中概念之间的关系,将其映射成表
b)尽量遵循数据库设计范式
i.第一范式:有主键,具有原子性,列不可分隔
ii.第二范式:完全依赖,没有部分依赖
iii.第三范式:没有传递依赖
c)主键设计最好采用单一主键,最好不要采用复合主键,尽量使用没有业务语义的字
段作为主键(如:Oracle的Sequence来维护一个主键),主键一般建议使用数值性,
会提高检索效率
d)关于冗余字段的问题,应该根据需求的具体情况是否加入
e)最好加入外键约束(在开发阶段最好不要设置外键约束,运行阶段加入外键约束)
f)如果做通用性产品,最好不是使用数据库特性的功能,除非特殊情况
g)如果数据量非常大,并且频繁的根据相关字段查询,最好建立索引
注意点:资金流,物流,信息流,如一级分销商到二级分销商那就是一个物流,资金怎么流向的.从这两个得到我们的信息流.所有的信息管理系统几乎都是这样的.
七:到了开发阶段了,那么先初始化数据库里面最基础的数据