工程软件开发之团队开发规范Word文件下载.docx
- 文档编号:18370171
- 上传时间:2022-12-15
- 格式:DOCX
- 页数:33
- 大小:27.19KB
工程软件开发之团队开发规范Word文件下载.docx
《工程软件开发之团队开发规范Word文件下载.docx》由会员分享,可在线阅读,更多相关《工程软件开发之团队开发规范Word文件下载.docx(33页珍藏版)》请在冰豆网上搜索。
编码规范...............................错误!
版本管理...............................错误!
概述.....................................错误!
代码管理.................................错误!
4附录:
系统开发编码规范.............错误!
类型级单位的命名.......................错误!
类.......................................错误!
枚举和结构...............................错误!
委派类型.................................错误!
接口.....................................错误!
未定义书签。
模块.....................................错误!
方法和属性的命名.......................错误!
方法.....................................错误!
属性.....................................错误!
事件.....................................错误!
变量和常数.............................错误!
前缀...................................错误!
对象.....................................错误!
变量/常量的范围..........................错误!
标签...................................错误!
名字空间...............................错误!
格式化.................................错误!
块.......................................错误!
缩进.....................................错误!
流.......................................错误!
注释...................................错误!
注释规范.................................错误!
类(包括Form等)、模块、组件、控件.......错误!
方法、函数、事件与属性...................错误!
完整性.................................错误!
安全性.................................错误!
团队组成1
我们的整个软件开发团队由4种角色组成,分别为:
ProductManagement产品管理()
)项目管理(ProgramManagement
)开发人员(Development
)测试人员(Test
各角色在团队的地位相当,各司其职。
各个角色的具体目标、职能以及责任在以下的小节中进行详述。
1.1产品管理
(1)目标满足客户需求。
一个成功的项目必须要能够满足客户和产品管理的目标就是满足客户需求。
那这即使项目达到了预算和时间的目标,只要未能满足客户需求,用户的要求。
使用方和投资方的目标有时,就是一个失败的项目。
首先必须认清和理解客户。
需求并不完全相同,因此就需要清晰地区别和分析所有的需求。
职能
(2)市场
推动市场和公关,以对目标客户发生效用
突出产品与其他竞争对手的区别性,以利于竞争
分发解决方案,以便用户能够容易地获得
以使其无论在购买还是使用过程中都留下正面为用户提供支持,
的印象
业务价值
定义并维护项目的业务正确性
定义并衡量业务价值的实现和评价
发展客户
推动项目和解决方案的远景目标
负责客户期望值和沟通
产品计划
收集、分析客户和业务需求,并区分其优先级
执行市场调查、市场开拓和竞争对手分析
确定业务和成功的标准
识别多目标的发布计划
1.2项目管理目标
(1)在项目的约束条件下完成解决方案。
项目的约束条整个团队的一个主要目标就是在项目的约束条件下完成项目。
件包括预算和进度等。
大部分项目会根据时间和资金的使用来衡量项目的结果。
他必须保为了实现这个目标,项目管理负责并推动进度表、功能集和预算资金。
证能够在正确的时间发布正确的项目或产品,保证正确理解了项目投资方的期望,并自始至终贯穿于项目执行过程中。
职能
(2)
项目管理
跟踪和管理预算资金
管理控制进度表
推动风险管理流程
加强团队沟通和协调
跟踪进度和报告项目状态
管理资源分配
解决方案构建
推动整体项目设计
负责功能规范
负责解决方案范围和重要决定
流程控制
推动流程质量控制
定义并推荐可改进处
管理服务
实现项目的管理流程并提供支持
提供管理服务以保证高效的团队运作
开发1.3
(1)目标《软件开发需求分析报告》和《总体结构设计》的要求按照功能规范说明、进行开发。
对整个团队来功能规范说明详细描述了整个团队将要提供给客户的交付物。
因为功能规范说明可说,应该尽可能精确地按照功能规范说明来实现整个项目,开发人员必须按照客户需求和功能以看成是整个团队和客户之间所达成的共识。
开发人员还需要为整个团队提供技术方面同时,规范说明来构建整个解决方案。
开发人员提供较低层的咨询,这样在设计和技术选择时可以尽量减少开发风险。
次的功能设计,并预估完成设计所需的时间。
技术咨询
为团队提供技术咨询服务
评估并验证所用技术
积极参与功能规范说明的创建和审核
定义开发标准
实现架构和设计
提供针对解决方案的应用程序、数据和技术细节,以便将企业架
构映射到解决方案架构的实现上
负责并实现解决方案的逻辑和物理设计
应用程序开发
根据设计规范编写代码以实现功能
在开发过程中进行代码审核,并共享知识和经验
在测试人员的帮助下,根据测试计划执行单元测试
架构开发
为自动安装开发脚本
开发安装文档
测试1.4目标
(1)
在确认所有的产品质量问题都得到妥善处理后,批准产品发布。
所有的软件产品在发布时都存在着缺陷。
最重要的是,在发布前,必须清楚或者是给出如何绕可以以问题的形式给出解决方法,地认识和鉴别出这些问题,也不要存开该问题的文档记录。
宁愿对于已知的问题,提供了文档或解决方法,在一些未知的问题。
因为这些未知的问题,可能会带来不可预知的后果。
计划测试
开发测试方法和计划
参与设置质量标准
开发测试说明
测试
开发并维护自动测试案例、工具和脚本
执行测试,以确定产品开发过程的状态
负责定义构造流程
测试报告
为团队提供与产品质量相关的数据
跟踪所有缺陷,并保证在发布前得到妥善处理
角色共享1.5个成员,4尽管团队组成包含了4种角色,但并不意味着一个团队至少需要种角色必须在一个团队中体4也不意味着一个人只能承担一种角色,重要的是这现。
一般情况下,团队成员常常共享角色。
在一些较小的团队中,不同的角色只能进行兼任。
角色共享有两条重要原则:
一是开发组成员不能共享角色。
开发人员是项目的构建者,他们不应该从他往往会使得他们无法按如果对开发组成员要求额外的角色,们的主任务中分身。
时完成进度要求。
二是不要试图组合具有一定利益冲突的角色。
比如,产品管理和项目管理的而项产品管理注重满足客户需求,利益具有冲突点,所以他们的角色不能组合。
目管理主要关心在时间和预算的限度内完成项目。
如果这两个角色组合在一起,诸如没有足够地考虑客户满意度可能会发生一些情况,那么在需求发生变更时,让不同的团队成员或者是没考虑对项目的冲击盲目地接受变更。
而忽略该变更,这也适担任这样的角色有助于确保每个方面得到相当的考虑和重视程度。
同样,用于组合开发人员和测试人员。
开发小组1.6开发小组成员组
姓性年职职业务专本项目分所在单
1.7专家小组
姓名性别年龄职务/职称业务专业本项目分工所在单位
专家小组负责系统开发过程中重要阶段的评审、导截流技术问题的解答和指更好的满足客户需求和保障开发质量。
主要目标是保证系统的理论先进性、导等。
.
2开发流程所示。
未找到引用源。
!
在开发过程中,采用多里程碑式的过程模型,如错误而其中每一个循环均包含四个里程碑。
1图多里程碑模型所示,称为“过程这四个里程碑组成的循环放大后如错误!
模型”。
2图过程模型达成共识2.1基本完成需求调研和分析(产品管理负责)
确定大方向和长中短期目标
所有角色都参与讨论并真正认同结论
产生的文档
以上功能常见用户情景:
覆盖80%
前景:
言简意赅地说明大方向,并有激励团队的作用
2.2完成项目计划编写详细的功能规范(项目管理)
在编程前想清楚所有功能流程,并引导用户明确需求
所有角色都参与审阅功能规范
制订开发计划和进度表(开发团队)
制订测试计划和进度表(测试团队)
分配资源(人力和预算)
形成项目综合计划和综合进度表
完成功能2.3
开发人员分别完成自己的功能
进行版本合理的控制
对每一项可测试的功能进行测试,无需等待
通过测试用例,对功能进行完整和重复的检验
记录所有程序问题
实现解决缺陷的自动流程
按照综合进度表不断检查进度
2.4稳定与发布测试组全面地测试功能,包括性能和稳定性
开发组全力配合解决缺陷
监测质量情况
预测发布日期
专家会诊机制
决定缺陷的优先度
决定哪些缺陷可以在下个里程碑或版本中解决
决定由谁解决某个缺陷
代码管理3
编码规范3.1请参看附录,系统开发编码规范。
版本管理3.2概述3.2.1版本控制有如下好处:
并保存不同版本的区别以作比较可以获得连续的受版本控制的项目,
能获得版本控制工具中保存的任何版本
能够把出错或误操作的最新版的项目恢复到正确的历史版本
获得历史版本的详细信息
在开发过程中,核心程序员对版本进行控制、对系统源代码进行集中管理,并做好程序的备份和保密工作。
代码管理3.2.2核心程序员根据系统结构设计和详细设计,对系统实现的功能进行分解,将实现各功能的小模块分配给项目组的开发人员,并事先设计好各模块的接口。
开发人员根据接口要求进行编码。
编码完成后进行单元测试。
单元测试由开发人员完成。
单元测试后开发人员将本部分模块代码上交给核心程序员,核心程序员负责加入模块后的系统测试。
系统的全部代码由核心程序员管理,其它开发人员负责配合进行各模块的开发。
4附录:
系统开发编码规范
在开发中保持良好的编码规范是十分重要的。
程序开发人员应该严格遵循系统开发编码规范进行编码。
4.1类型级单位的命名
类4.1.1在为类(class)命名前首先要知道它是什么,如果通过类名的提供的线索,你还是想不起这个类是什么的话,那么你的设计就还做的不够好。
超过三个词组成的混合名是容易造成系统各个实体间的混淆。
对于派生类的命名应该避免带其父类名,一个类的名字只与它自身有关,和它的父类叫什么无关。
1类命名
以Class声明的类,都必须以名词或名词短语命名,使用大写字母作为词的分隔,其他的字母均使用小写,名字的首字母使用大写不要使用下划线(_)。
如:
ClassIndicator
当类是一个特性(Attribute)时,以Attribute结尾,当类是一个异常(Exception)时,以Exception结尾,如:
ClassColorSetException
ClassCauseExceptionAttribute
当类只需有一个对象实例(全局对象,比如Application等),必须以Class结尾,如:
ClassScreenClass
ClassSystemClass
当类只用于作为其他类的基类,根据情况,以Base结尾:
MustInheritClassIndicatorBase
。
在本系统编Frm如果定义的类是一个窗体,那么名字的前面或后面必须加.
码中,对于前处理和处理器模块使用的窗体,在名字的后面加后缀Frm,在后处理模块中使用的窗体在名字的前面加前缀Frm。
如果是Web窗体,必须加后缀Page:
ClassPrintFrm:
InheritsForm‘*Windows窗体
ClassStartPage:
InheritsPage‘*Web窗体
2类库命名
目前命名空间正在越来越广泛的被采用,以避免不同厂商和团体类库间的类名冲突。
当未采用命名空间的时候,为了避免类名冲突,一般的做法是在类名前加上独特的前缀,两个字符就可以了,当然多用一些会更好。
例如:
JohnJohnson的数据结构类库可以用Jj做为前缀,如下:
classJjLinkList
枚举和结构4.1.2同样必须以名词或名词短语命名。
最好体现枚举或结构的特点,如:
EnumColorButtons'
'
以复数结尾,表明这是一个枚举
StructureCustomerInfoRecord'
以Record结尾,表明这是一个结构体
委派类型4.1.3普通的委派类型以描述动作的名词命名,以体现委派类型实例的功能:
DelegateSubDataSeeker(ByValSeekStringAsString)
用于事件处理的委派类型,必须以EventHandler结尾,如:
DelegateSubDataChangedEventHandler(ByValSenderAsObject,
ByValeAsDataChangedEventArgs)
接口4.1.4作为前缀,并用形容词命名,突出表现实I与其他类型不同,接口必须要由.
现接口的类将具有什么能力:
InterfaceISortable
模块4.1.5模块不是类型,他的名称除了必须以名词命名外,必须加以后缀Module:
ModuleSharedFunctionsModule
上述所有规则的共同特点是,每个组成名称的词语都必须是大写开头,禁止完全大写或小写的名称。
4.2方法和属性的命名
方法4.2.1最好采用与类命名一致的规则,无论是函数还是子程序,方法都必须以动词或动词短语命名。
无需区分函数和子程序,也无需指明返回类型。
SubOpen(ByValCommandStringAsString)
FunctionSetCopyNumber(ByValCopyNumberAsInteger)
参数需要指明ByVal还是ByRef,这一点写起来会让程序变长,但非常必要。
如果没有特别情况,都使用ByVal。
参数的命名方法,参考后面“变量的命名方法”。
需要重载的方法,一般不写Overloads,根据需要编写重载方法。
属性4.2.2原则上字段(Field)是不能公开的,要访问字段的值,一般使用属性。
属性以简洁清晰的名词命名:
PropertyConcentrationAsSingle
PropertyCustomerAsCustomerTypes
事件4.2.3事件是特殊的属性,只能在事件处理上下文中使用。
命名的原则一般是动词
或动词的分词,通过时态表明事件发生的时间:
EventClickAsClickEventHandler
EventColorChangedAsColorChangedEventHangler
4.3变量和常数
常数以表明常数意义的名词命名,一般不区分常数的类型:
ConstDefaultConcentrationAsSingle=
在严格要求的代码中,常数以c_开头,如c_DefaultConcentration,但最好不要用它,它会带来输入困难。
普通类型的变量,只要用有意义的名字命名即可,不可使用简称和无意义的名称诸如A,x1等,下面给出了良好的例子:
DimIndexAsInteger
DimNextMonthExpenditureAsDecimal
DimCustomerNameAsString
不能起太长的名字,应该尽量简洁,如下面的例子:
DimVariableUsedToStoreSystemInformationAsString'
*太复杂了
DimSystemInformationAsString'
*正确,简单明了
DimsysInfoAsString'
*错误,过于简单
特殊情况可以考虑一个字母的变量:
DimgAsGraphic
对于控件,应该指明控件的类型,方法是直接在变量后面加以类名:
FriendWithEventsNextPageButtonAsButton'
*按钮
FriendWithEventsColorChoicerPanelAsPanel'
*面版
FriendWithEventsCardFileOpenDialogAsFileOpenDialog'
*文件打开对话框等等,无需规定某种类型的变量的前缀,只需把类型写在后面就行了,试对比下列代码:
=&
Cancel
Cancel
显然后者更能使阅读者明白变量的类型是一个按钮。
4.4前缀
对象4.4.11标准对象
名称前缀例子说明
arrarrUsers用户集合
blnblnDoesUserExist用户是否存在
bytbytStreamContent字节流内容
chrchrKeyPress按键
dtedteCreatedDateTime创建日期
decdecYearlySaleQuota年度销售额
dbldblTotalPrice总金额
intintMessages消息数
objobjExternalFunction外部功能
sngsngFinishRate完成率
strstrLoginName登陆名称
excexcRet错误
enmenmUserStates用户状态
StructurestustuEmployees员工类型
cnncnnDatabase数据库连接
sdrsdrUserData用户数据读取器
2自定义对象
我
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 工程 软件 开发 团队 规范
![提示](https://static.bdocx.com/images/bang_tan.gif)