null设计和实现过程WWW.SZKINGDOM.COM设计和实现过程质量管理部:钟玫Email:zhongmei@szkingdom.com
MSN: zhongmei308@hotmail.com目录目录WWW.SZKINGDOM.COM设计编码实现度量CMMI-Technical Solution CMMI-Technical Solution *CMMI-Technical Solution 目的:
设计、开发和实现满足需求的解决方案。解决方案、设计和实现包括产品、产品部件以及产品相关过程。Technical Solution - Context*选择产品部件解决方案Technical Solution - Context已确认的需求设计细节和文档已交付的产品开发设计实现产品设计替代的设计和评价
Technical Solution focuses onTechnical Solution focuses onWWW.SZKINGDOM.COM1、评估并选择解决方案(概要设计),这些方案可满足已定义的需求;
2、针对所选择的解决方案,进行详细设计
3、落实产品或产品组件的设计-编码 *已确认的需求开发可供选择的解决方案和选择标准选择产品部件(product component)解决方案开发解决方案细则和选择标准可供选择的解决方案
选择标准
新技术评价选择产品部件解决方案与需求保持一致的选择决策DAR开发可操作的概念和方案可操作的方案
分析用例Technical Solution - Context nullWWW.SZKINGDOM.COMSG 1 Select Product Component Solutions 选择产品组件解决方案 从备选解决方案中,选择产品或产品组件解决方案。 选择解决方案之前,应考虑备选解决方案及其优缺点。应确定关键需求、设计问题以及约束条件,以便在分析各种备选方案时使用。要考虑架构特征,它们是产品改进与发展的基础。重要的方案选择需要走正式的决策分析过程。
SP 1.1 Develop Alternative Solutions and Selection Criteria 开发备选解决方案与选择标准
选择标准通常强调成本(如时间、人员、资金)、收益(如性能、能力、有效性)和风险(如技术、成本、进度)。最终解决方案的选择标准,应该提供一种在成本、收益与风险间求得平衡的方法。
SP 1.2 Select Product Component Solutions 选择产品组件解决方案
1.产品组件的选择结果与理由 2.将需求与产品组件间的关联关系文档化。 3.将选择结果、评估结果与选择理由文档化。 Technical Solution - Context*Technical Solution - Context设计产品或产品部件开发设计开发一个技术数据包技术数据包建立产品部件接口的解决方案CL 3
设计接口使用标准接口设计文档
接口规范
接口控制文档完成构造、购买或重用任务选择标准
构建/购买分析设计方法
设计工具
设计过程nullWWW.SZKINGDOM.COMSG 2 Develop the Design 开发设计 开发产品或产品组件的设计。
产品或产品组件的设计,需要提供一份完整的设计描述,记录于技术数据包(即设计基线包含的配置项)中,它覆盖特征与参数的全部范围,包括格式、安装、功能、接口、制作过程特征以及其他参数等。设计文件为支持相关干系人对设计的相互了解,提供了一定的参考;并在开发过程中或产品生命周期的后续阶段,支持未来的设计变更。
SP 2.1 Design the Product or Product Component 设计产品或产品组件
产品设计包含两个阶段:概要设计与详细设计
SP 2.2 Establish a Technical Data Package 建立技术数据包 建立并维护设计基线。 Technical Solution - Context* Technical Solution - Context部件制作
软件编码
文档化数据
文档化流程
构建工具实现设计实现产品设计开发产品支持文档
手册
用户手册
操作手册
维护手册
在线帮助目录目录WWW.SZKINGDOM.COM设计编码实现度量总体流程总体流程WWW.SZKINGDOM.COM设计过程设计过程WWW.SZKINGDOM.COM决策分析概要设计详细设计决策分析Decision Analysis and Resolution决策分析Decision Analysis and ResolutionWWW.SZKINGDOM.COM*制定和使用决策分析指南指南
评价可供选择的方案选择
评价方法方法标准
制定
评价标准选择
解决方案识别已提议的可供选择的方案已提议的可供选择的方案
评价
解决方案Other
PAs一、决策分析(1)一、决策分析(1)决策分析与解决方案(Decision Analysis and Resolution, DAR)的目的,在于利用正式的评估过程,依据准则评估各种已识别的备选方案,以选择解决方案。
输出:《决策分析
》WWW.SZKINGDOM.COM决策分析(2)决策分析(2)在下面的情况下需要使用决策分析过程:
1) 架构的选择;
2) 构造/购买/复用的权衡分析。如:开发并集成新构件(构造);购买并集成可用的现成产品(购买);从现有IT系统或产品中引进、增强并集成构件(复用)
3) 项目重大需求变更和关键技术方案的确定。
4) 立项论证,此活动的决策分析过程见《14004 软件产品立项管理办法.doc》。WWW.SZKINGDOM.COM一、决策分析(3)一、决策分析(3)决策小组
进行方案评价,给出结论。通常是由业务、技术、市场领域的专家担任。
决策组长
负责决策分析计划和评估标准的确定,各委员间的协调沟通、组织等;通常由高层经理或技术管理委员会担任。
WWW.SZKINGDOM.COM决策分析过程(1)决策分析过程(1)建立计划
在项目计划中体现决策应用时机。决策前建立决策日程安排,包括活动的参与人、日期、日程、活动说明等。
建立评估标准
针对每项决策活动,需要建立评估标准。评估标准提供评估可选的解决方案的准则,主要应该从方案本身的风险,实施成本,实施时间,收效等几个方面来考虑建立,需要对评估标准的重要性划分优先级。
识别和形成可选解决方案
针对需要决策的问题,需要发现和形成多个不同的解决方案,并形成文档。
WWW.SZKINGDOM.COM决策分析过程(2)决策分析过程(2)确定评估方法
需要根据评估标准,针对需要决策的问题,确定评估方法,如头脑风暴和Delphi 方法。
评估可选的解决方案
根据建立的评估标准,按照确定的评估方法,对每个可选方案进行评估。
选定解决方案
从可选方案的评估结果中选定解决方案,分别说明为什么选择和为什么不选择的理由,以及决策风险评估,形成《决策分析报告》文档。WWW.SZKINGDOM.COM决策分析的重要性决策分析的重要性通过决策小组的讨论,一些重要的问题在产品开发的初期就可以浮现出来,并在问题变成高成本的错误之前就可以得到处理。 WWW.SZKINGDOM.COM设计过程设计过程WWW.SZKINGDOM.COM决策分析概要设计详细设计什么是概要设计什么是概要设计概要设计是指按照《软件需求说明
》,设计软件系统的体系结构,即模块结构,定义每个模块的主要功能和模块之间的接口,并确定软件系统的数据体系结构。
输出:《软件设计说明书》
概要设计概要设计主要包括三个方面的工作:
1.系统体系结构设计
2.数据体系结构设计
3.接口的设计。
概要设计(一)概要设计(一)系统体系结构设计
扩充软件需求阶段所提出的初步的系统体系结构。对扩展后的体系结构进行完善,降低那些使软件难于实现、测试、维护和重用的因素,形成高内聚、低耦合的系统体系结构。
WWW.SZKINGDOM.COM概要设计( 二)概要设计( 二)数据体系结构设计
扩展软件需求阶段所提出的初步的数据体系结构,将其变换成实现软件所需的数据结构。
过程:业务模型-概念数据模型-物理数据模型
输出: 《数据库说明》和《数据字典定义》
WWW.SZKINGDOM.COM概要设计(三)概要设计(三)接口设计
内部接口;
外部接口;
WWW.SZKINGDOM.COMnull如果不进行概要设计,就直接进入详细设计和编码,可能会出现的问题:
模块之间的接口,可能会无法匹配。
由于无可遵循的框架结构,重大的缺陷在详细和编码阶段无法识别;
遗漏重要的接口和重要的模块;
造成大量的返工。
。。。
WWW.SZKINGDOM.COM概要设计评审及模型使用概要设计评审及模型使用1.对《软件设计说明书》进行同行评审。
2.每次评审前使用“软件设计评审模型预测”进行目标预测 (若分多次软件设计评审,最后一次的评审,利用软件设计模型预测并确定好目标后,要进行蒙特卡洛模拟。)
3.输出《评审报告》
4.评审后预测目标(是最终的质量目标)达成的概率。(本次评审若没有达成预设的目标,要考虑进行整体目标的调整。)
5. 填写设计评审模型
6.将《软件设计说明书》合入配置库并进行设计基线审计、建立和发布。
设计过程设计过程WWW.SZKINGDOM.COM决策分析概要设计详细设计详细设计(一)详细设计(一)详细设计是根据《软件设计说明书》详细定义各个模块的数据结构、程序的实现算法以及程序、模块之间的接口等,作为以后编码工作的依据,编写《详细设计说明书》。详细设计(二)详细设计(二)输入:《软件设计说明书》
输出:
《用户界面设计报告》
《数据库设计报告》
《数据字典定义》
《详细设计说明书》/《模块设计报告》
《功能接口定义》
WWW.SZKINGDOM.COM详细设计(三)详细设计(三)对《详细设计说明书》进行评审。
输出《评审报告》
将《详细设计说明书》合入配置库并建立基线。
WWW.SZKINGDOM.COM编码实现过程编码实现过程WWW.SZKINGDOM.COM编码实现单元测试代码评审转测试编码实现编码实现1、程序员依据《详细设计说明书》及《编程规范》,进行程序单元的编制工作(包括建立相关的构造环境)。纳入公司配置库中做版本管理。
2、建立并维护初始标签(建立初始标签后才开始项目的编码工作,同时涉及到代码量统计等问题)WWW.SZKINGDOM.COM编码实现的相关培训编码实现的相关培训根据开发人员的实际水平进行有关编程语言、编程规范、编程方法、编程工具、调试方法、配置管理等方面的培训;
WWW.SZKINGDOM.COM编码实现过程编码实现过程WWW.SZKINGDOM.COM编码实现单元测试代码评审转测试单元测试单元测试程序员从配置库获取源码文件,对照单元测试计划和测试用例进行调试,并将测试结果记录于《测试问题记录》 。对源码文件进行的测试,视程序存在缺陷的情况,可能要重复进行,直至问题解决。
单元测试结束后,编写《单元测试报告》。WWW.SZKINGDOM.COM编码实现过程编码实现过程WWW.SZKINGDOM.COM编码实现单元测试代码评审转测试代码评审(一)代码评审(一)代码评审也称代码复查,是指通过阅读代码来检查源代码与编码标准的符合性以及代码质量的活动。
代码评审贯穿于整个编码过程中,需要注意的是转测试之前必须做代码评审。WWW.SZKINGDOM.COM代码评审(二)代码评审(二)形式:1)走查、2)会议评审
1)走查: 团队成员互相检查代码,代码作者讲解如何以及为何这样实现、评审者提出问题和建议WWW.SZKINGDOM.COM代码评审(三)代码评审(三)2)会议评审:以项目为单位,召开专门的代码评审会议。对于客户个性化开发的功能和重要模块,要进行会议的方式评审。
参与者:包括项目组全体成员,其它组的专家也应尽量参加 。
会前准备工作: 组织者应通知各参与者本次评审的范围 参与者阅读源代码,列出发现的问题、亮点,汇总给组织者。WWW.SZKINGDOM.COM代码评审(四)代码评审(四)输出:评审报告
问题跟踪:对评审中发现的问题记录到《评审报告》中,代码应加以跟踪,确保问题得以解决,防止复发 WWW.SZKINGDOM.COM编码阶段的模型使用编码阶段的模型使用1.每次代码评审前使用“代码评审模型预测”进行目标预测 (若分多次软件设计评审,最后一次的评审,利用代码评审模型预测并确定好目标后,要进行蒙特卡洛模拟。)
2.输出《评审报告》;
3.评审后预测目标(是最终的质量目标)成的概率。(本次评审若没有达成预设的目标,要考虑进行整体目标的调整。)
4.填写“代码评审模型”数据;
5.将代码合入配置库并打tag,tag的注释中说明本次代码合入修改的内容。
WWW.SZKINGDOM.COM编码实现过程编码实现过程WWW.SZKINGDOM.COM编码实现单元测试代码评审转测试转测试转测试项目经理根据软件的开发进度情况,编写《软件版本发布计划》,根据软件版本发布计划的时间点,监控与跟踪软件版本的构建。
根据《软件版本发布计划》进行软件版本集成,以及联调测试。
发布到测试时,配置管理员需要在配置库中打tag,并在《测试申请单》填写tag的名称(即软件测试发布基线的标识),转测试后测试人员可以到配置库中取该tag对应的测试版本进行编译和测试。
当所构建软件版本联调通过后,软件负责人填写《测试申请单》连同《单元测试报告》(可根据《裁剪
》的要求产出),整合自测通过的软件版本向测试负责人发起测试申请。
WWW.SZKINGDOM.COM度量度量1. 设计评审的缺陷密度
2. 代码评审的缺陷密度
3. 统计该版本新增的代码量:统计非空非注释
4.完成工作所花费的工作量(包括编码和审查工程量等)
5.模型因子
WWW.SZKINGDOM.COM问题问题1.可以进入详细设计和编码阶段的标准是什么?
2.在什么情况下需要使用决策分析过程?
3.刚才提到的评审中哪些需要用到模型预测工具?
4.转测试的准则是什么?
WWW.SZKINGDOM.COMnull 谢 谢!WWW.SZKINGDOM.COM