软件开发流程管理规范 软件开发流程管理规范 1 ﻩ一、概述 2 ﻩ二、流程 ................................................................................................................................... 2 三、附件 ................................................................................................................................... 3 附件一、编码规范 3 ﻩ1、命名空间 3 ﻩ2、命名规则 ........................................................................................................... 3 2、1 文件夹及相关文件命名规则 .............................................................. 3 2、2 数据库表命名规则 ........................................................................... 4 3、代码规范 4 ﻩ3、1 代码分层结构 ....................................................................................... 4 3、2 编码规范 .................................................................................................. 5 4、注释 ..................................................................................................................... 6 4、1 注释模板设置 ..................................................................................... 6 4、2 手工添加注释 .......................................................................................... 7 4、3 注释要求 8 ﻩ附件二、软件需求申请表 ............................................................................................... 9 附件三、软件开发申请表 ............................................................................................. 10 附件四、项目组成成员表 11 ﻩ附件五、项目策划/任务书 21 ﻩ附件六、WBS 表 31 ﻩ附件七、项目进度计划表 ........................................................................................... 14 附件八、项目风险管理表 51 ﻩ附件九、项目沟通计划表 61 ﻩ附件十、项目会议纪要 71 ﻩ附件十一、项目状态报告表 ....................................................................................... 18 附件十二、项目变更管理表 91 ﻩ附件十三、项目总结表 ............................................................................................... 20
一、概述 随着公司规模得扩大、各部门对软件需求得激增、提高效率得工作要求,IT 部门承接得 软件开发项目越来越多,而与之相对应得就就是软件开发流程不明确,软件项目得随意性较大、 可追溯性较差、可统计性模糊、可预测性不足就是摆在我们面前最直接得问题。为了适应公司 得发展,IT 部软件开发项目特制订本流程。
二、流程
由上图可以得出以下几个关键步骤:
一、需求部门: I、需求部门首先需要填写《软件需求申请表》,说明需要开发得软件具体用途径、目前 工作模式、工作不方便之处、基本功能等信息; II、待 IT 部门评审通过后,通知需求部门,填写《软件开发申请表》,具体列明需要实 现得功能、目前工作流程、使用系统后需要达到得状态,可节省得人力、物力,调高得效率 等信息; III、软件开发测试完成之后,接受 IT 部门得软件使用培训,并填写《参与培训确认单》; IV、软件试用结束后,填写《软件验收表》,完成软件项目得开发流程; V、在开发测试过程中,遇到开发风险增加、需求变更等,都需要配合 IT 软件开发人员 填写相关得《项目风险管理表》与《项目变更管理表》。
二、IT 部门:
I、积极对需求部门提出得《软件需求申请表》进行评审、审批,限 3 个工作日完成, 及时反馈结果给需求部门;
II、指导需求部门填写各类表格; III、积极评审需求部门填写得表格、积极沟通,有效获得相对准确得需求,并填写完善, 让需求部门签字确认; IV、进入开发流程后,积极填写《项目成员组成表》、《项目策划任务书》、《WBS
表》、 《项目进度计划表》等(具体见附件); V、积极开展人员培训与软件试用工作,编写完善得《XXX 软件试用说明书》,并要求相 关人员签字确认,并存档处理。
三、附件
附件一、编码规范
1 、命名空间 1、
:)务业能功司公(库类共公ﻩ(1) 全局公共类库:
例:ECO、mon、DBhelper/Excel/email,生成 dll 文件,添加至最小应用库可全程序引用 (2) 局部公共类库(主要区分公司),命名方式为专有业务场景+专有业务名+具体类名: 例:ECO、Gp(总部)/In(国内市场)/Rb(生产)
注:(公共类库)信息登记、评审、信息共享,命名空间最多三层 2、 项目程序文件:项目文件名,以核心功能得英文名称为准,格式:ECO_英文名词首字母大写 2 、命名规则 2 、1
文件夹及相关文件命名规则 a)
文件夹:功能文件夹,采用驼峰形式,首字母大写全称 b)
窗体文件:采用驼峰形式,首字母大写全称 c)
接口:I+采用驼峰形式,首字母大写全称 d)
方法名:采用驼峰形式,首字母大写全称 e)
窗体控件:同上 f)
局部变量:变量类型缩写(int,fl,str)+驼峰形式 g)
全局变量:不建议使用 h)
常量:全英文大写,不建议出现在页面 i)
数组:功能名称首字母小写+驼峰+Arr j)
List 集合:功能名称首字母小写+驼峰+List k) 峰驼+写小母字首称名能功:典字ﻩ+Dic l) Dateset:功能名称首字母小写+驼峰+Ds m)
DateTable:功能名称首字母小写+驼峰+Dt 附表 1:
类型前缀(小写)+驼峰样式名词或名词短语 对于基本类型变量,前缀如下表: 类型 前缀 int int double dou float fl string str bool bool datetime dat byte byt 、、、、、、 、、、、、、 对于对象类型变量,也可以采用类似基本类型方式,如 StringBuilder 类型,可使用 sb 作为 前缀开头,后跟变量名驼峰样式。
对于集合类型变量,如数组、List、Dictionary,可以在变量命名得基础上结尾加入集合类型 简写。如,sqlList,dataDic 等。
2 、2
数据库表命名规则 命名方法:项目大写首字母+_+功能(全英文大写)【多单词组成得,取单词首字母大写组合】
表字段:类似变量命名 索引:表名(或缩写)+_+列名+idx 注:ID、创建人(creator)、创建时间(createTime)、状态(state)、创建人工号(createID) 等字段为必须创建得字段; 3 、代码规范 3、1 代码分层结构 建议每个模块中代码至少分三层结构,根据项目大小决定就是否采用这种方式,可以先以一两个 项目测试一下这种结构; 表现层 数据层 逻辑层
例如一个项目得一个模块,可以创建文件夹结构如下所示:
表现层直接面向用户,逻辑层负责后端逻辑处理,数据层负责与底层数据库交互。
表现层调用逻辑层代码,只有查询数据时,表现层可以直接调用数据层; 逻辑层负责处理逻辑,为表现层提供调用接口,其数据操作需要调用数据层提供接口; 数据层负责提供与处理数据,需要为逻辑层提供调用接口,所有与数据库得操作都只能在该 层实现。
3、2
编码规范 3、2 、1 通用 a)
类功能必须唯一:每个文件中只有一个类(不包括内部类) b) 行宽限制在 80 个字符内,必须按最低优先级换行 c)
方法代码限制在 200 行内 d)
内行 0051 在制限议建码代类ﻩe)
方法参数过长,应分行显示,逗号至于末尾 f)
写续连须必型类同,值初赋量尽且,量变个一明声行每ﻩg)
ctac、yrt,现出对配量尽 esle、fi,行一在写要不,}
{号括大加需都句语合复ﻩh、finally h)
)层三过超不量尽(出扇理合、入扇高ﻩi)
行空许允不进缩ﻩj) 递归要慎用,goto 不允许使用 k) 方法内禁止更改传递过来得参数 l) 实体类中变量应私有化,应包含每个变量得 set 及 get 方法 m)
避免三层以上嵌套循环 n)
)yllanif、hctac、yrt(理处性错容与性确正含包应码代ﻩo)
编程时应考虑代码得效率(时间、空间),多循环内侧,变量声明放在循环外 p) t
erap,slauqe:如例,”==“用不法方应对用较比象对ﻩo q)
计算尽量避免除法 r)
性用重可法方计设ﻩs)
else、finally、catch、日志必须有出口 t)
堆常量统一定义,避免用常量字符串 u)
变量必须初始化 3 、2 、2 表现层 页面端 1、JS 代码与 CSS 代码统一放置在 html 得 head 子元素中;表现层页面 *、aspx 数据层 *、cs 逻辑层 *、cs
2、JS 代码需要有注释; 3、页面控件有嵌套情况得,各级需要缩进,并且各级得头尾对齐; 页面处理类 1、页面加载时谨慎处理 Session 置空; 2、类中多处用到得变量建议创建成员变量,成员变量应私有化(private),位于类代码上方; 3、除用于 Ext、net 前台调用得如 App、direct 方法需为 public 外,其她方法建议均为 private; 4、Page_Load 方法: 建议将页面加载方法中内容加入 if (!X、IsAjaxRequest) { } 代码块中,避免页面每次操作后都调用 Page_Load 方法; 5、获取页面得服务端控件得值前需对控件值得 null 与空进行判断,避免空指针异常; 6、避免过多或复杂得逻辑处理代码,统一调用逻辑层代码,将展现与逻辑分离; 7、对数据得增删改操作不要直接调用数据层,查询可直接调用数据层代码; 3、2 、3 逻辑层 1、除对表现层提供得接口方法外,其她方法均保持私有 private 2、对数据库数据处理调用数据处理层代码 3、对串行得数据处理时事务保证 4、逻辑代码容错性保证 3、2 、4 数据处理层 1、除对外提供得接口方法外,其她方法均保持私有 private 2、对数据库得底层访问(获取数据库连接、执行 sql 语句、数据库连接关闭)均调用数据 库操作帮助类 3、数据处理层类中只处理数据,避免业务逻辑代码 4、sql 语句编写时避免使用“+" 5、数据库操作帮助类中数据库操作得容错性与事务处理(插入、更新、删除操作需要事务 保证) 4 、注释 编写任何代码都需要有代码注释,并且代码修改后也要修改注释,保证代码注释同步。
4 、1 注释模板设置 在 vs 安装目录,以下目录中,找到 class、cs 文件,修改保存后,重启 vs,之后创建新类时即 会自动产生注释。
D:\Program
tfosorciM\)68x( seliFﻩ Visual Studio
10、0\mon7\IDE\ItemTemplatesCache\CSharp\Code\2052\Class、zip
但就是修改后没有效果。
4、2
手工添加注释 创建新对象可以手工添加注释: 注释写法: 块注释 注释包含在/*与*/中,可以有多行。
行注释 以//开头,可以有多行,每行前面都以//开头. 文件头注释
类文件注释/* ============================================================================== * Copyright © 2013 ECOVACS Inc、 All rights reserved! *
科沃斯机器人科技(苏州)有限公司 * ==============================================================================*/
方法注释
4 、3 注释要求 a)
%02 长延期周成完目项,%03~%02:量释注ﻩb)
后之行当及以前段:方地释注ﻩc) 上线之前无需版本号,上线之后需版本号,上线前统一为 1、0 d)
空为须必法方她其,空为不间之法方身自与释注ﻩe) 注释代码在上线后全删除,上线后不允许无效代码存在 注:注释中得内容含创建人、创建时间、功能描述、参数说明、修改人、修改时间、修改描 述、返回值;上线后每个源码备份空间/* *DESC :
类功能描述 * SINCE : 、net
版本 * CREATOR:
创建人 * DATE: 创建日期 **/ /* *DESC :
方法功能描述 * PARAMS:
参数说明 * RETURN:
返回值说明 * CREATOR:
创建人 * DATE: 创建日期 **/
附件二、软件需求申请表 需求部门: : 申请人:
用途描述
目前工作状态
基本功能描述
部门主管建议
签字确认 ( ( 时间) )
附件三、软件开发申请表 需求部门:
申请人:
具体功能模块
说明
目前工作流程
项目 完成所能
带来得预期效
益( ( 可节省得
人力、物力等) )
部门主管建议
签字确认 ( ( 时间)
附件四、项目组成成员表
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项目经理(Project
Manager):
制作日期(Data):
二、项目组成员 成员姓名 Name 项目角色 Project Role 所在部门 Dept Name 职责 Responsibility 项目起止日
期 Data 投入频度及
工作量 Time 联系电话 Tel No、 主管经理 Supervisor
签字
Si gnat ure: : 日期
Da te: : 项目赞助人 Sponsor
项目经理 Project Manager
项目角色包括项目赞助人(Sponsor)、项目经理(Manager)、项目核心成员(Core team)
与项目非核心成员(Extended team).
附件五、项目策划/ 任务书
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项目经理(Project
Manager):
制作日期(Data):
二、项目描述
1、项目背景与目得(所有得项目均起始于某个商业问题,该部分简要描述这些问题)
2、项目目标(包括质量目标,工期目标、费用目标与交付产品特征与特征得主要描述)
3、项目里程碑计划(包含里程碑得时间与成果)
4、评价标准(说明项目成果在何种情况下将被接受)
5、项目假定与约束条件(说明项目得主要假设条件与限制性条件)
6、项目主要利益干系人(包括高管、客户、职能部门主管、供应商、项目赞助人、项目经理、项目组成成员等干系人)
姓名 类别 部门 职务
附件六、 WB S 表
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项目经理(Project
Manager):
制作日期(Data):
二、工作分解结构 分解代码 WBS Code 任务名称 Task 包含活动 Activities 工时估算 Estimated Ti人力资源 Estimated HR 其她资源 Estimated 费用估计 Estimated 工期 Expected
注:以上工期及费用估算均用最可能值
附件七、项目进度计划表
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项 目 经 理 ( Project Manager):
制作日期(Data):
二、项目进度表 周(Week) 0 1 2 责任人 Team Memmber 关键里程碑 Milestone 开始 Start 29 3 0 3 1 1 2 3 4 5 6 7 8 9 1 0 1 1 1 2
开工会 Kick-off meeting
附件八、项目风险管理表
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项目经理(Project
Manager):
制作日期(Data):
二、项目风险管理 风险发生概率得判断准则 高风险:〉60%发生风险得可能性 中风险:30-60%发生风险得可能性 低风险:〈30%发生风险得可能性 序号 Sequenc e NO、 风险描述 Risk Description 发生概率 Happening Prob影响程度 Influence degr风险等级 Risk Level 风险响应计划 Risk snopseRﻩe Plan 责任人 Risk owner 开放/关闭 Open/Close d
附件九、项目沟通计划表
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项目经理(Project
Manager):
制作日期(Data):
二、项目沟通计划 利益干系人 Stakeholders 所需信息 Info Needed 频率 Frequency 方法 Means 责任人 Risk owner
附件十、项目会议纪要
一、基本情况 会议名称(Meeting Name):
召集人(Called By):
会议日期(Meeting Date):
开始时间(Start Time):
会议地点(Meeting Place):
持续时间(Meeting Duration):
记录人(Minutes By):
审核人(Reviewed By):
二、会议目标 简要说明会议得目标, , 包括期望达到得结果
三、参加人员( ( 列出参加会议得人员,她在项目中得头衔或角色) )
四、发放材料(列出会议讨论得所有项目资料) )
五、发言记录( ( 记录发言人得观点、意见与建议) )
六、会议决议( ( 说明会议结论) )
七、会议纪要发放范围
附件十一、项目状态报告表
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项目经理(Project
Manager):
制作日期(Data):
当前项目状况 □按计划进行 □比计划提前 □落后计划 汇报周期
二、当前任务状态( ( 简要描述任务进展情况)
关键人物 状态指示 状态描述
三、本周期内得主要活动( ( 对本周期内得主要交付物进行总结)
四、下一个汇报周期内得活动计划( ( 描述活动需要与项目计划与
WBS
相对应)
五、财 务状况
六、上期遗留问题得处理( ( 说明上一个汇报周期内问题得处理意见与处理结果)
七、本期问题与求助
附件十二、项目变更管理表
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项目经理(Project
Manager):
制作日期(Data):
二、历史变更记录 (按时间顺序记录项目以往得每一次变更情况)
序号 Sequence NO、 变更时间 Change Dat涉及项目任务 Task Coned变更要点 Change To 变更理由 Why Requested 申请人 Requested By审批人 Approved By
三、请求变更信息 (建议得变更描述以及参考资料)
1 、申请变更得内容
2 、申请变更原因
四、影响分析 受影响得基准计划 1、进度计划 2、费用计划 3、资源计划 就是否需要成本/进度影响分析? □就是 □否 对成本得影响
对进度得影响
对资源得影响
变更程度分类 □ 高 □ 中 □ 低 若不进行变更有何影响
申请人签字
申请日期
五、审批结果 审批意见
审批人签字
日期
附件十三、项目总结表
一、项目基本情况 项目名称(Project Name):
项目编号(Project Code):
制作人(Prepared by):
审核人(Reviewed by):
项目经理(Project
Manager):
制作日期(Data):
二、项目 完成情况总结 1、时间总结 开始时间:
Start Date
计划完成时间 Expected Finish Date 实际完成日期 Actual Finish Dat 时间(差异)分析
2、成本总结 计划费用
实际费用
成本(差异)分析
3、交付结果总结 计划交付结果
实际交付结果
未交付结果
交付结果(差异)分析
三、项目经验、教训总结
签字
S ignature e 日期
Da Date 项目赞助人 Project Sponsor
项目经理 Project Manager