一、角色划分
1. 项目负责人
负责项目的业务分析、人事协调、时间进度,用户体验等安排等;
2. 开发工程师
主要负责项目的需求分析,概要设计,详细设计、代码编写,代码整合,代码测试,项目部署,项目维护等工作
3. 美工/UI
主要负责网站/app的界面设计、版面规划等。
注:开发工程师又可分为前端开发和后台开发。
二、项目开发流程
1. 需求阶段
- 用户/市场调研
- 问题分析:获取需求定义,又称软件需求规约.
- 需求分析:需求分析生成功能规约。
- 项目评估:了解开发难度,评估开发工作量,指定开大进度计划和里程碑节点。
2. 设计阶段
-
概要设计
建立整个软件系统结构,包括子系统、模块以及相关层次的说明、每一模块的接口定义,命名规则,模块之间的调用关系等。
概要设计的重要输出
编码规范:信息形式、接口规约、命名规则;
物理模型:组件图、配置图;
不同角度的构架视图:用例视图、逻辑视图、进程视图、部署视图、实施视图、数据视图(可选);
系统总体布局:哪些部分组成、各部分在物理上、逻辑上的相互关系;
两个不可忽视的输出:
与需求功能的关系:对于需求中的每一个功能,用哪一层、哪个模块、哪个类、哪个对象来实现(一对多关系);反过来,应当说明将要创建的系统每一层、每个模块、每个对象、每一个类“做什么”,他们是为了帮助实现哪些功能(一对多关系)。(需求的颗粒度在一开始往往是比较粗的,因此根据功能点对于整体项目规模的估计或得到项目WBS其误差范围也是比较大的。更为重要的原因是,需求往往不是编码工作分解的准确依据,因为一个需求的功能点可能对应多个代码模块,而多个需求的功能点也可能只对应一个或少数代码模块,同时还有软件复用等因素要考虑,因此只有在概要设计完成以后才能准确地得到详细设计或编码阶段的二次WBS,并估计较为准确的整体项目规模。)
逻辑与物理位置:每个对象在逻辑上分别落在哪一层、哪个模块、哪个类;在物理上每个模块、每个对象、每一个类放在哪个应用服务器或客户端的哪个目录、哪个文件(库),或者是建立在数据库管理系统中的什么东东(过程、函数、视图、触发器等等)。
-
详细设计
产生程序员可用的模块说明,包括每一模块中数据结构说明及加工描述。
-
(1) 总体结构设计
- 系统结构图
- 模块调用关系
-
(2) 模块设计
-
用户界面设计
- 版式设计
- 交互设计
-
需求规格设计:明确业务细节,使开发者对业务功能理解基本一致。
- (业务)功能需求
- 安全性需求
- 维护性需求:对源代码的标准化、文档的标准化等
- 移植性需求:二次开发接口
- 性能需求:内存,运行速度,响应时间,带宽需求,并发性支持等
- 运行环境需求:系统环境,协同工具等
- 可靠性需求
-
通讯协议设计
- 模块接口设计
- 软件接口设计
- 前后端接口设计
- 用户接口设计(交互)
-
数据库设计
- 对象属性结构设计
- 对象关联、级联设计
- 数据库备份设计
-
测试用例设计
- 白盒测试用例设计
- 黑盒测试用例设计
-
3. 开发阶段
- 框架和工具的选择
4. 测试阶段
- 功能测试
- 压力测试