软件开发要求规范整体要求规范Word文档格式.docx
《软件开发要求规范整体要求规范Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件开发要求规范整体要求规范Word文档格式.docx(39页珍藏版)》请在冰豆网上搜索。
![软件开发要求规范整体要求规范Word文档格式.docx](https://file1.bdocx.com/fileroot1/2023-1/23/52eca201-e501-4cb1-b055-aa8d6efa9f5d/52eca201-e501-4cb1-b055-aa8d6efa9f5d1.gif)
⏹项目状态报告
⏹配置库样式
⏹CheckList
⏹评审表
⏹变更申请表
开发工具的规范;
⏹数据库设计工具
⏹功能设计工具
⏹IDE
⏹配置工具
Definitions,Acronyms,andAbbreviations.术语,缩略词
SPP项目策划SoftwareProjectPlanning
SPTO项目追踪SoftwareProjectTracking&
Oversight
SCM配置管理SoftwareConfigurationManagement
SQA质量保证SoftwareQualityAssurance
PR同行评审PeerReview
BaseLine基线
SCCB软件配置控制委员会SoftwareConfigurationControlBoard
CR变更请求ChangeRequest
SDLC软件开发生命周期SoftwareDevelopmentLifeCycle
RUP统一开发过程RationalUnifiedProcess
XP极限【敏捷方法】eXtremeProgramming
TDD测试驱动TestDrivenDevelopment
References引用
《CMM2》
《CMM3》
Overview文档组织
本文档主要分为四大部分:
概述;
描述了团队组织开发过程的高层视图;
TSP和PSP;
按照团队和个人描述流程规范;
工具规范;
描述了开发工具的详细规范;
文档;
涉及的文档格式;
2TheOverallDescription概述
本部分是开发团队开发过程的高层描述。
它描述了开发过程规范的背景,用来和所有涉及各方就基本过程达成共识。
SoftwareDevelopmentOrganizing开发团队组织结构
说明:
表示公司的行政部门表示公司的逻辑部门
实线表示参加产品实现的组织和人员(不表示所属关系)
虚线表示工作的汇报关系,如SQAE向SQA经理汇报。
ProjectBaseProcess项目基本流程
基本流程说明:
项目启动:
本阶段主要是进行可行性分析,定义项目,识别需求;
制定计划:
本阶段主要是计划策划,估算工作量,制定具体的可执行的计划;
计划实施:
本阶段主要是实施计划,完成计划中的各项任务,报告计划状态;
项目终止:
计划执行完毕,总结项目;
CMMBaseProcessCMM基本过程
基本过程说明:
SCM:
软件配置管理,所有活动的基础,一切制品必须放入配置库;
SPP:
软件项目策划,估算工作量,制定详细计划【项目的制定计划阶段】;
SPTO:
项目追踪,报告项目状态,评估并更新计划【项目的计划实施阶段】;
PR:
同行评审,进入基线的前提条件,降低风险,提高质量的有效手段;
SQA:
质量保证,预防风险的有效手段;
SCM软件配置管理
配置管理主要解决:
版本
变更
SPP计划策划
计划策划的核心是工作量估算
SPTO项目追踪
PR同行评审
SQA质量保证
SDLC生命周期选择
当前比较成熟稳定的SDLC是:
WaterFall
RUP
XP
其中:
RUP和XP是迭代式开发过程,风险是可控的。
RUP的优点是过程清晰、文档齐全,但是过于庞杂,比较适合大规模的团队;
XP的优点是过程简洁、推崇简单,但是不注重文档,难于交接,适合小规模团队。
对于中等规模的团队来说,应该基于RUP和XP,进行裁剪,找到适合的SDLC:
SDLC的核心是:
迭代式和TDD
从全局看:
⏹Use-CaseDriven用例驱动
⏹基于Architecture
⏹迭代和递增的
从微观看:
⏹TDD测试驱动
⏹ReFactor重构
⏹Pair结对编程
DevelopmentProcess开发过程
DevelopmentPhase开发阶段
需求分析阶段
⏹需求收集
⏹需求总结
总体设计阶段
⏹总体架构
⏹部署模型
概要设计阶段
⏹模块划分
⏹数据库设计
详细设计阶段
⏹具体实现
编码阶段
⏹测试用例
⏹Coding
⏹单元测试
测试阶段
⏹测试
⏹修正
发布阶段
⏹安装测试
⏹安装系统
⏹维护
PhaseProduct阶段制品
需求阶段
⏹SRS:
需求规格说明书
⏹总体设计说明书
⏹HLD:
概要设计说明书
⏹DB:
数据库设计
⏹DFD:
数据流图
⏹UI:
用户界面
⏹DD:
详细设计说明书
⏹TestCase:
测试用例
⏹Coding:
源代码
⏹UTTestResult:
单元测试报告
⏹TestTask:
测试任务书
⏹TestResult:
测试报告
⏹TestApprovals:
测试总结
⏹发布申请书
RoleDuty角色职责
角色
责任
研发经理
【研发团队】
为软件项目提供足够的资源.
保证SQA小组的独立性.
解决SQA检查时发现的问题.
审批对外的承诺。
定期审查SCM、SQA、项目计划和跟踪的相关活动。
规定系统需求;
将系统需求分配给硬件、软件和其他成分;
规定硬件、软件和其他成分的界面;
监控设计和开发以保证他们符合其规格说明;
代表公司下达任务书。
SA团队
负责网络工程计划的制定及实施;
负责对客户的技术支持与培训;
负责工程服务部内部人员素质与技术培训
负责系统集成工程标识、测试、验收及质量保证;
负责硬件、网络和系统软件产品的最后交付;
负责组织自产软件储运、防护、交付和安装;
负责工程项目的配置管理
QA
研究制定测试规范和方案;
参加实施测试和质量保证过程;
对系统测试中发现的缺陷进行验证;
负责组织软件项目任务书、开发计划、里程碑等管理评审;
负责公司的配置管理;
项目经理
负责软件和硬件整个项目的协调、管理
进行需求分析,并进行文档的编写
组织技术评审等活动
组织制定项目开发计划(SDP)、风险管理计划等计划
配合与协调SQA和SCM小组的活动.
管理项目组,执行SQA方针和过程以及SDP.
监督和跟踪SDP、项目估算
SA
负责硬件工程的实施;
负责系统的上线;
负责系统的维护;
SCCB
授权建立软件基线和标识配置项/单元;
审查和审定对软件基线的更改;
审定由软件基线库制造的产品的生成。
SCM
协助软件项目经理制定SCM计划、维护SCM计划;
制定并维护项目标识规范;
按时归档配置项;
标识并管理置于配置管理过程之下的软件工作产品集合;
进行软件项目的软件基线生成、管理和备份;
软件配置状态的统计和审计,并向项目组、软件项目经理、高级管理者汇报有关活动情况;
将基线的变更情况通知受影响的组和个人;
保存并管理各项评审记录、与项目相关的技术文档、标准和规程。
SQC
依据测试计划模板制定测试计划.
执行测试计划进行测试并记录测试发现的缺陷
提供测试报告.
SQA
主要是策划软件质量保证活动、检验软件产品或活动对可用的标准、需求和规则的遵守程度、组织处理项目内部不能解决的不一致问题;
定期报告检查情况,发现偏差组织制定纠正、预防措施并监督更正;
参与制定SQA计划,实施SQA活动,并向SQA经理、软件项目经理项目组、高级管理者汇报有关的情况。
DBA
负责DB的创建和维护;
为DE提供一个稳定的环境;
DE
按软件开发计划进行开发,并记录相关数据;
遵守公司质量管理体系的要求.
Deployer
根据发布申请,提取代码,发布系统
和SA、DBA一起配置环境
重构和重建系统
Constraints限制
3SpecificRequirements详细描述
本部分按照角色划分详细描述开发过程。
Precondition前提
SCM配置库
目录结构
⏹开发库:
开发工作区文档和代码
◆项目文档
●项目启动
●项目策划
●项目计划
●项目报告
◆开发文档
●需求
●设计
●测试
◆代码
●代码目录
◆参考资料
●客户资料等等
⏹基线库:
评审通过后的文档
◆《文档同开发库》
⏹测试库:
测试代码和测试发布包
◆文档
●计划
●用例
●测试报告
●版本1
●版本2
⏹产品库:
测试通过后的文档和代码
◆项目交付制品
●项目总结
●验收报告
●。
。
◆项目产品
权限
◆测试人员可以读写
◆其它人员只能读,不能增加、修改和删除
◆
只能增加,不能删除和修改
TestEnvironment测试环境
测试需要一个独立的环境
⏹DB独立
⏹FTP等资源独立
⏹Pass9等外部系统独立
最好是一个单独的局域网环境,完全和开发分开
⏹开发是172.18.0.0环境
⏹测试是192.168.0.0环境
每次测试,应当是一个完整的测试过程
◆DB
◆Web
◆AppServer
◆Client
◆其它
⏹配置系统
◆DB配置
◆AppServer配置
⏹系统初始化
◆清除所有历史数据
◆执行初始化脚本,插入初始数据
⏹测试系统
DevelopmentControlProcess开发控制流程
项目启动和策划阶段
本阶段的关键是定义项目、估算工作量和制定详细计划。
一个软件项目的正式启动从《软件项目任务书》的下达开始。
任务书中写明项目的基本信息及相关责任人和详细分工,规定项目必须提交的产品清单。
任务书由研发经理或者项目负责人起草,研发经理批准后下达给相关负责人。
项目任务书必须为打印纸质文档,由相关人员签字确认后,入配置管理库归档。
软件项目任务书主要作用是明确项目人员职责以及各组之间的协调确认。
估算工作量,从确认需求后开始。
由项目经理指定评估人员,先按照头脑风暴法估计各个子系统或者模块的难易程度,然后按照Delphi法估算各个部分的工作量。
项目经理和PMO成员,根据估算的工作量,制定项目计划。
SQA和SCM分别制定各自的计划。
SCM需要确定资源库的目录结构和权限结构。
项目经理召集PMO、SQA、SCM评审及审核项目计划、SQA计划、SQA审核计划、SCM计划和测试计划。
对于发布后的一般性程序修改,不需要下达软件项目任务书。
对于关系重大,需要各组人员协调工作的重大修改,项目负责人可以以任务书的形式明确职责、协调关系。
测试负责人评估测试资源【人员及机器】,并决定测试人员是否介入项目的需求分析和设计阶段。
需求分析、设计、编码阶段
本阶段的关键是评审和修订控制,关键评审需要需求、设计、编码、测试、项目管理、用户等的参与。
需求阶段,需求分析人员收集需求,根据SRS模版,作出需求规格说明书。
设计阶段,设计人员根据总体设计、概要设计、数据库设计和详细设计,作出设计文档。
编码阶段,编码人员根据详细设计,设计单元测试用例,编写代码,进行单元测试。
关键评审:
SRS评审,设计评审,代码走查
提交测试阶段
项目启动后,项目经理填写测试任务通知单,将测试任务下达给测试组。
概要设计评审完成后,由各子系统或者模块的负责人测算完成时间,在确定完成时间后(正式开始编码前)将测试任务通知单提交给项目测试负责人,项目测试负责人审核通过在通知单上签字后返回给子项目负责人。
开发及单元测试完成后,由开发人员将测试内容提交配置管理员入测试库后,将测试任务通知单提交给发布人员申请测试发布。
发布人员将测试库中本次测试的内容发布到测试机后,在测试任务通知单上签字后,提交给测试人员开始测试。
测试完成后,测试人员在任务单上填写测试意见后,交测试负责人确认后,返还给开发人员。
如测试没有通过,开发人员修改测试内容,进入下一个测试流程。
如通过测试,开发人员将测试任务通知单提交给项目负责人,由项目负责人、SCCB签字确认后,提交配置管理员将测试内容入基线库。
过程关键:
发布实施人员确保发布到测试机上的源程序在配置管理库中得到了有效的标识。
生产发布、终测
程序通过测试入库以后,根据需要,由项目的负责人负责填写发布申请单。
发布申请单由项目测试负责人、配置管理员、SCCB、客户代表、研发经理签字确认后,由项目负责人提交给实施发布人员。
发布人员拿到签完字的发布申请后,才能从基线库中提取程序向生产机上发布。
如以上发布确认人员没有全部签字同意发布,必须由项目经理签字同意后发布。
程序发布到生产机上以后,进入终测【UAT】流程。
测试人员和用户代表要对生产机上的程序进行最后测试,确保生产机上的系统符合需求。
项目负责人负责同用户协调,项目负责人、测试人员和用户共同编写测试用例。
项目负责人将《终测意见书》提交三方签字,根据签字意见决定修订系统或者提交正式发布。
终测出现的问题修改按照基线变更流程进行。
实施人员只有拿到有三方签字的《终测意见书》后才能将系统正式公开发布。
系统正式发布三天之后一周之内,由实施人员负责到用户处取得有用户主要负责人签字的《系统运行报告》,项目负责人负责监督执行。
根据《系统运行报告》做相应的处理。
发布到生产机上的程序都在基线库中得到了有效的标识。
发布后问题反馈修改过程
系统发布之后,用户反馈的意见要形成问题清单或者变更申请单,记录需要修改的地方,提交给项目负责人。
项目负责人负责判断改动是否会影响需求或者设计,负责将任务分配给相关人员进行修改。
修改完成后,提交测试直至发布。
这个阶段的最重要的是保证所做的修改(文档、代码)都在配置管理库的基线库中得到体现。
即基线库中的文档和代码要进行同步更新,关键是发布人员严格根据发布申请单进行控制,并确保发布的代码都是从基线库中取出的。
没有经过流程直接要求发布的,发布人员必须予以拒绝。
TSP团队软件过程
会议组织
会议前,确定会议主持人和记录员
向参与会议人员发送会议资料
参与会议人员阅读会议资料
确定会议主题、日期时间和地点
⏹注意:
留出阅读资料的时间
确定会议议程
准备会议用品【如投影仪等】
重要会议,需要签到
会议开始前,申明会议纪律
⏹发言时间限制
⏹发言顺序
⏹除主持人外,不得打断别人
记录员记录会议纪要
会议后,发送会议总结
沟通问题
原则
⏹目标明确
⏹明确反馈
⏹反复沟通
请求-答复
⏹当有疑问时,发出请求
⏹明确求助对象,指定第一对象和辅助对象
⏹第一对象接收到请求后,不能及时答复的应当转发给自己认为合适的答复人,并告知求助人
⏹求助方式【高-低】:
当面,电话,邮件
公告
代码走查
项目负责人指定代码走查对象
⏹相互走查
⏹循环走查
代码走查发现的问题
⏹首先记录
⏹告知代码作者
更新CheckList
其它
PSP个人软件过程
工作原则
计划管理:
把你想做的写下来
行为管理:
按照你写下来的去做
报告管理:
把做的事情记录下来
跟踪管理:
出现的问题要设法解决
日常工作
每日工作
⏹每日早晨,规划当日工作;
◆计划必须细化到一个明确的目标
◆计划要有余地,比如会议等
◆计划是可执行的,能够完成的
◆计划是可监控的
⏹每日下班,总结当日工作;
◆计划完成情况
◆未能完成原因
◆个人心得:
新的发现,新的方法,新的问题
会议
⏹会议之前,仔细阅读会议资料
⏹如有疑问,可以发邮件向会议主持人提出
⏹或者在会议上提出
⏹会议中,记录会议要点
⏹如要参与讨论,请在别人发言结束后发言,不要打断别人
⏹会议后,如有新的想法,发邮件或者当面向会议主持人提出
求助
⏹如果一个问题20分钟还不能理出一个头绪,应当立即求助
⏹求助对象:
◆个人认为能够解决该问题的人为第一对象
◆不能确认的,项目负责人为第一求助对象
⏹发出求助后,个人负责追踪求助,直到解决
报告
⏹认为个人负责的任务不能按时完成的,应当立即报告给负责人
◆重要任务:
Leader和项目负责人
◆其它任务:
Leader
⏹提前期:
至少提前3天
至少提前任务期的1/3
DE开发工程师
接受任务
阅读详细设计文档
⏹从SCM获取详细设计文档
⏹阅读文档
⏹如有疑问,向设计人员请教
规划个人开发计划
⏹估计开发工作量
⏹制定计划
◆单元测试用例
◆单元测试
⏹和负责人协商
⏹提交SCM
设计单元测试用例
⏹SCM获取测试用例模版
⏹编写测试用例
编写代码
⏹从SCM获取代码库
⏹编写代码
⏹本地调试
单元测试
⏹代码发布到开发机
⏹请DBA协助
⏹如果有其它模块,请负责人协调
⏹根据负责人安排,检查他人的代码
⏹和代码作者讨论代码
⏹填写走查报告
提交代码
⏹做Tag或者其它标记,以便提交集成测试
SCME配置管理员
规划SCM
⏹资源库目录结构
⏹权限
⏹基线
⏹备份
基线
⏹经过评审
⏹发送通知
⏹转移资源到相应基线
变更管理
⏹接收变更申请
⏹向SCCB发送申请
⏹申请通过后,发送变更通知
⏹提取基线到工作区
DBA数据库管理员
规划DB的管理
⏹DB的大小
⏹权限划分
⏹备份和恢复
⏹建立DB脚本
⏹和SCM协商进入SCM的资源
管理DB
⏹建立DB
⏹建立权限
⏹评审数据库设计
⏹导入和导出数据
⏹建立Table、view和index
⏹
Deployer发布人员
规划
⏹发布策略
⏹发布脚本
⏹发布计划
重构和重建
⏹根据项目特点制定重构和重建计划
⏹编写重建脚本
⏹编写测试脚本
⏹从SCM提取资源
⏹重建系统
⏹执行测试脚本
发布
⏹接收发布任务书
⏹和DBA建立DB
⏹和SA建立环境
⏹发布系统
4ToolSpecification工具规范
通用工具
会议报告
⏹PPT
⏹Word
⏹MPP
会议记录
CheckList
⏹Excel
计划
项目计划
风险计划
需求分析
SRS文档
UseCase图
⏹RationalRose
对象图
序列图
流程图
⏹Visio
设计
总体设计
概要设计
详细设计
编码
⏹VisualStudio2005
测试
TestDirector
5Documents文档
项目管理文档
项目策划
Delphi估算表
项目计划模版
测试计划模版
项目清单
项目追踪
项目日进度报告
项目周报
项目周计划报告
项目月度报告
项目月度状态报告
签到簿
质量保证
项目策划过程检查表
配置管理活动检查表
项目跟踪情况检查表
项目终止
软件合格验收标准
项目验收报告
开发过程文档
软件配置管理
软件配置管理工具
变更申请表
变更通知单
会议管理
计划跟踪
开发计划
测试计划
工作日志
评审管理
评审指南
评审申请表
个人评审记录
评审报告
质量管理
文档编写规范
SRS
总体设计报告
概要设计报告
详细设计报告
编码规范
测试过程
问题解决过程
问题跟踪表
软件项目任务书
测试任务通知单
发布申请单
系统运行报告
终测意见书
其他
用户手册
6Appendix附录
易于理解的代码
经常注释
注释内容是做了什么,不能是为什么做
检查错误,尤其是函数入口
变量名要简洁易懂
经常使用Static常量
Log输出
截获抛出异常的地方,要输出Error
返回True/False的方法,如果返回False,要输出Debug
所有调用其它系统