软件开发流程管理规范.docx
《软件开发流程管理规范.docx》由会员分享,可在线阅读,更多相关《软件开发流程管理规范.docx(23页珍藏版)》请在冰豆网上搜索。
软件开发流程管理规范
软件开发流程管理规范
软件开发流程管理规范...................................................................................................................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
附件五、项目策划/任务书...........................................................................................12
附件六、WBS表............................................................................................................13
附件七、项目进度计划表.............................................................................................14
附件八、项目风险管理表.............................................................................................15
附件九、项目沟通计划表.............................................................................................16
附件十、项目会议纪要.................................................................................................17
附件十一、项目状态报告表.........................................................................................18
附件十二、项目变更管理表.........................................................................................19
附件十三、项目总结表.................................................................................................20
一、概述
随着公司规模的扩大、各部门对软件需求的激增、提高效率的工作要求,IT部门承接的
软件开发项目越来越多,而与之相对应的就是软件开发流程不明确,软件项目的随意性较大、
可追溯性较差、可统计性模糊、可预测性不足是摆在我们面前最直接的问题。
为了适应公司
的发展,IT部软件开发项目特制订本流程。
二、流程
由上图可以得出以下几个关键步骤:
一、需求部门:
I、需求部门首先需要填写《软件需求申请表》,说明需要开发的软件具体用途径、目前
工作模式、工作不方便之处、基本功能等信息;
II、待IT部门评审通过后,通知需求部门,填写《软件开发申请表》,具体列明需要实
现的功能、目前工作流程、使用系统后需要达到的状态,可节省的人力、物力,调高的效率
等信息;
III、软件开发测试完成之后,接受IT部门的软件使用培训,并填写《参与培训确认单》;
IV、软件试用结束后,填写《软件验收表》,完成软件项目的开发流程;
V、在开发测试过程中,遇到开发风险增加、需求变更等,都需要配合IT软件开发人员
填写相关的《项目风险管理表》和《项目变更管理表》。
二、IT部门:
I、积极对需求部门提出的《软件需求申请表》进行评审、审批,限3个工作日完成,
及时反馈结果给需求部门;
II、指导需求部门填写各类表格;
III、积极评审需求部门填写的表格、积极沟通,有效获得相对准确的需求,并填写完善,
让需求部门签字确认;
IV、进入开发流程后,积极填写《项目成员组成表》、《项目策划任务书》、《WBS表》、
《项目进度计划表》等(具体见附件);
V、积极开展人员培训和软件试用工作,编写完善的《XXX软件试用说明书》,并要求相
关人员签字确认,并存档处理。
三、附件
附件一、编码规范
1、命名空间
1.
公共类库(公司功能业务):
(1)全局公共类库:
例:
ECO.Common.DBhelper/Excel/email,生成dll文件,添加至最小应用库可全程序引用
(2)局部公共类库(主要区分公司),命名方式为专有业务场景+专有业务名+具体类名:
例:
ECO.Gp(总部)/In(国内市场)/Rb(生产)
注:
(公共类库)信息登记、评审、信息共享,命名空间最多三层
2.
项目程序文件:
项目文件名,以核心功能的英文名称为准,格式:
ECO_英文名词首字母大写
2、命名规则
2.1文件夹及相关文件命名规则
a)
文件夹:
功能文件夹,采用驼峰形式,首字母大写全称
窗体文件:
采用驼峰形式,首字母大写全称
接口:
I+采用驼峰形式,首字母大写全称
方法名:
采用驼峰形式,首字母大写全称
窗体控件:
同上
b)
c)
d)
e)
f)
局部变量:
变量类型缩写(int,fl,str)+驼峰形式
全局变量:
不建议使用
g)
h)
常量:
全英文大写,不建议出现在页面
数组:
功能名称首字母小写+驼峰+Arr
List集合:
功能名称首字母小写+驼峰+List
字典:
功能名称首字母小写+驼峰+Dic
Dateset:
功能名称首字母小写+驼峰+Ds
DateTable:
功能名称首字母小写+驼峰+Dt
i)
j)
k)
l)
m)
附表1:
类型前缀(小写)+驼峰样式名词或名词短语
对于基本类型变量,前缀如下表:
类型
int
前缀
int
dou
fl
double
float
string
bool
str
bool
datetime
byte
......
dat
byt
......
对于对象类型变量,也可以采用类似基本类型方式,如StringBuilder类型,可使用sb作为
前缀开头,后跟变量名驼峰样式。
对于集合类型变量,如数组、List、Dictionary,可以在变量命名的基础上结尾加入集合类型
简写。
如,sqlList,dataDic等。
2.2数据库表命名规则
命名方法:
项目大写首字母+_+功能(全英文大写)【多单词组成的,取单词首字母大写组合】
表字段:
类似变量命名
索引:
表名(或缩写)+_+列名+idx
注:
ID、创建人(creator)、创建时间(createTime)、状态(state)、创建人工号(createID)
等字段为必须创建的字段;
3、代码规范
3.1代码分层结构
建议每个模块中代码至少分三层结构,根据项目大小决定是否采用这种方式,可以先以一两个
项目测试一下这种结构;
表现层
逻辑层
数据层
例如一个项目的一个模块,可以创建文件夹结构如下所示:
表现层页面*.aspx
数据层*.cs
逻辑层*.cs
表现层直接面向用户,逻辑层负责后端逻辑处理,数据层负责和底层数据库交互。
表现层调用逻辑层代码,只有查询数据时,表现层可以直接调用数据层;
逻辑层负责处理逻辑,为表现层提供调用接口,其数据操作需要调用数据层提供接口;
数据层负责提供和处理数据,需要为逻辑层提供调用接口,所有与数据库的操作都只能在该
层实现。
3.2编码规范
3.2.1通用
a)
b)
c)
d)
e)
f)
g)
h)
i)
j)
k)
l)
类功能必须唯一:
每个文件中只有一个类(不包括内部类)
行宽限制在80个字符内,必须按最低优先级换行
方法代码限制在200行内
类代码建议限制在1500行内
方法参数过长,应分行显示,逗号至于末尾
每行声明一个变量,且尽量赋初值,同类型必须连续写
复合语句都需加大括号{},不要写在一行,if、else尽量配对出现,try、catch、finally
高扇入、合理扇出(尽量不超过三层)
缩进不允许空行
递归要慎用,goto不允许使用
方法内禁止更改传递过来的参数
实体类中变量应私有化,应包含每个变量的set及get方法
m)避免三层以上嵌套循环
n)
o)
p)
q)
r)
s)
t)
u)
代码应包含正确性和容错性处理(try、catch、finally)
编程时应考虑代码的效率(时间、空间),多循环内侧,变量声明放在循环外
对象比较用对应方法不用“==”,例如:
equals,compareto
计算尽量避免除法
设计方法可重用性
else、finally、catch、日志必须有出口
堆常量统一定义,避免用常量字符串
变量必须初始化
3.2.2表现层
页面端
1、JS代码和CSS代码统一放置在html的head子元素中;
2、JS代码需要有注释;
3、页面控件有嵌套情况的,各级需要缩进,并且各级的头尾对齐;
页面处理类
1、页面加载时谨慎处理Session置空;
2、类中多处用到的变量建议创建成员变量,成员变量应私有化(private),位于类代码上方;
3、除用于E前台调用的如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
Files
(x86)\Microsoft
Visual
Studio
10.0\Common7\IDE\ItemTemplatesCache\CSharp\Code\2052\Class.zip
但是修改后没有效果。
4.2手工添加注释
创建新对象可以手工添加注释:
注释写法:
块注释
注释包含在/*和*/中,可以有多行。
行注释
以//开头,可以有多行,每行前面都以//开头。
文件头注释
/*==============================================================================
*Copyright©2013ECOVACSInc.Allrightsreserved!
*科沃斯机器人科技(苏州)有限公司
*
==============================================================================*/
类文件注释
/*
*DESC
:
类功能描述
*SINCE:
.net版本
*CREATOR:
创建人
*DATE:
**/
创建日期
方法注释
/*
*DESC
:
方法功能描述
*PARAMS:
参数说明
*RETURN:
返回值说明
*CREATOR:
创建人
*DATE:
**/
创建日期
4.3注释要求
a)
b)
c)
d)
e)
注释量:
20%~30%,项目完成周期延长20%
注释地方:
段前以及当行之后
上线之前无需版本号,上线之后需版本号,上线前统一为1.0
注释与自身方法之间不为空,其他方法必须为空
注释代码在上线后全删除,上线后不允许无效代码存在
注:
注释中的内容含创建人、创建时间、功能描述、参数说明、修改人、修改时间、修改描
述、返回值;上线后每个源码备份空间
附件二、软件需求申请表
需求部门:
用途描述
申请人:
目前工作状态
基本功能描述
部门主管建议
签字确认
(时间)
附件三、软件开发申请表
需求部门:
申请人:
具体功能模块
说明
目前工作流程
项目完成所能
带来的预期效
益(可节省的
人力、物力等)
部门主管建议
签字确认
(时间)
附件四、项目组成成员表
一、项目基本情况
项目名称(ProjectName):
制作人(Preparedby):
项目经理(ProjectManager):
二、项目组成员
项目编号(ProjectCode):
审核人(Reviewedby):
制作日期(Data):
成员姓名
项目角色
所在部门
职责
项目起止日投入频度及
联系电话
主管经理
Name
ProjectRole
DeptName
Responsibility
期Data
工作量Time
TelNo.
Supervisor
签字Signature:
项目赞助人Sponsor
项目经理ProjectManager
日期Date:
项目角色包括项目赞助人(Sponsor)、项目经理(Manager)、项目核心成员(Coreteam)
和项目非核心成员(Extendedteam)。
附件五、项目策划/任务书
一、项目基本情况
项目名称(ProjectName):
制作人(Preparedby):
项目经理(ProjectManager):
二、项目描述
项目编号(ProjectCode):
审核人(Reviewedby):
制作日期(Data):
1、项目背景与目的(所有的项目均起始于某个商业问题,该部分简要描述这些问题)
2、项目目标(包括质量目标,工期目标、费用目标和交付产品特征与特征的主要描述)
3、项目里程碑计划(包含里程碑的时间和成果)
4、评价标准(说明项目成果在何种情况下将被接受)
5、项目假定与约束条件(说明项目的主要假设条件和限制性条件)
6、项目主要利益干系人(包括高管、客户、职能部门主管、供应商、项目赞助人、项目经理、项目组成成员等干系人)
姓名
类别
部门
职务
附件六、WBS表
一、项目基本情况
项目名称(ProjectName):
制作人(Preparedby):
项目编号(ProjectCode):
审核人(Reviewedby):
项目经理(ProjectManager):
制作日期(Data):
二、工作分解结构
分解代码
任务名称
包含活动
Activities
Included
工时估算
Estimated
Time
人力资源
其他资源
费用估计
Estimated
Cost
工期
Expected
Days
WBSCode
Task
EstimatedHR
Estimated
Resources
注:
以上工期及费用估算均用最可能值
附件七、项目进度计划表
一、项目基本情况
项目名称(ProjectName):
制作人(Preparedby):
项目编号(ProjectCode):
审核人(Reviewedby):
制作日期(Data):
项目经理(
Manager):
二、项目进度表
周(Week)
Project
0
1
2
责任人
关键里程碑
TeamMemmber
Milestone
开始
29
3
0
3
1
1
2
3
4
5
6
7
8
9
1
0
1
1
1
2
Start
开工会Kick-offmeeting
附件八、项目风险管理表
一、项目基本情况
项目名称(ProjectName):
制作人(Preparedby):
项目经理(ProjectManager):
二、项目风险管理
项目编号(ProjectCode):
审核人(Reviewedby):
制作日期(Data):
风险发生概率的判断准则
高风险:
>60%发生风险的可能性
中风险:
30-60%发生风险的可能性
低风险:
<30%发生风险的可能性
序号
Sequenc
eNO.
风险描述
发生概率
Happening
Probability
影响程度
Influence
degree
风险等级
风险响应计划
责任人
Risk
开放/关闭
Open/Close
d
RiskDescription
RiskLevel
Risk
Plan
Response
owner
附件九、项目沟通计划表
一、项目基本情况
项目名称(ProjectName):
制作人(Preparedby):
项目经理(ProjectManager):
二、项目沟通计划
项目编号(ProjectCode):
审核人(Reviewedby):
制作日期(Data):
利益干系人
所需信息
频率
方法
责任人
Stakeholders
InfoNeeded
Frequency
Means
Riskowner
附件十、项目会议纪要
一、基本情况
会议名称(MeetingName):
会议日期(MeetingDate):
会议地