




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
软件体系结构
4.软件设计的风险2/1/20231©liqianmu@126.com2/1/20232©liqianmu@126.com1.程序员写出自认为没有Bug的代码。2.软件测试,发现了20个Bug。3.程序员修改了10个Bug,并告诉测试组另外10个不是Bug。4.测试组发现其中5个改动根本无法工作,同时又发现了15个新Bug。5.重复3次步骤3和步骤4。6.鉴于市场方面的压力,为了配合当初制定的过分乐观的发布时间表,产品终于上市了。7.用户发现了137个新Bug。8.已经领了项目奖金的程序员不知跑到哪里去了。9.新组建的项目组修正了差不多全部137个Bug,但又发现了456个新Bug。10.最初那个程序员从斐济给饱受拖欠工资之苦的测试组寄来了一张明信片。整个测试组集体辞职。11.公司被竞争对手恶意收购。收购时,软件的最终版本包含783个Bug。12.新CEO走马上任。公司雇了一名新程序员重写该软件。13.程序员写出自认为没有Bug的代码。
2/1/20233©liqianmu@126.com2/1/20234©liqianmu@126.com3、Hoperun公司软件过程改进
一、概述1.任务HOPERUN企业在进行软件过程改进时,考虑到从企业当前的发展要求来看,软件开发的质量及交货已不是主要矛盾,基本上可以满足用户的要求。但是,如何提高软件开发的生产率,使软件开发能做到增加效益,则对企业显得极为迫切。为了提高软件开发的生产率及提高开发效益,成立了软件过程小组(softwareengineeringprocessgroup,SEPG)负责软件过程改进。具体任务有三:(1)鼓励开发人员进行软件过程改进;(2)对当前正在进行的软件开发工作的软件过程作出正确而详细的描述及定义;(3)提出一种可行的工作计划,让开发人员遵循,以求改进软件过程。2/1/20235©liqianmu@126.com3、Hoperun公司软件过程改进
2.步骤SEPG采取的过程改进步骤如下:(1)对开发人员调研当前正在进行的软件开发工作,用Petrinet描述其软件过程。Petrinet中的transition表示软件开发活动,token表示产品,place表示过程等待执行活动的状态。(2)深入分析Petrinet所代表的当前的软件过程流图,制定工作计划,并估计在严格执行工作计划后,可能得到的效益。其后,工作计划及效益估计都要经开发人员认可,认同其可行性,有效性。(3)按工作计划对实际项目进行实施。(4)最后,分析实际效果后,肯定了“在测试阶段总的工作量减少10%。”可以得出肯定过程改进有效果的结论。2/1/20236©liqianmu@126.com3、Hoperun公司软件过程改进
二、项目概况该公司是进行一系列服务类外包软件的开发。这些软件有类似的结构,其基本结构如图所示。整个系统可分为基本部分和应用部分两大块。其中对各个不同项目说来,实时管理及I/O部分是共同的,很少修改;对B,C,D,E,F,G模块,在各个不同项目中只须对其进行少量修改;而模块A和H,则要对其大部分进行修改。2/1/20237©liqianmu@126.com3、Hoperun公司软件过程改进
2/1/20238©liqianmu@126.com3、Hoperun公司软件过程改进
三、调查发现(1)企业的主要问题是如何减少开发费用。对质量及交付日期,目前用户已基本满意,所以不作主要改进的考虑。且数年来,管理人员已对如何减少费用进行不少改进,但收效甚微,所以这次过程改进应主要考虑这一点。(2)从企业管理的要求上来说,技术上决定采用瀑布模型。但发现实际执行时,有些阶段是平行的。要分析原因并解决管理要求与实际执行之间的不一致问题。2/1/20239©liqianmu@126.com3、Hoperun公司软件过程改进
四、软件过程改进工作方法概况SEPG的软件过程改进工作分三个阶段,六个步骤,第一阶段:描述当前的与改进的过程第一步:软件开发过程包含许多活动,且相互交互作用,必须精确而形式化地描述。第二步:从当前软件开发过程中收集的数据中指出费用、质量及进度方面的问题。例如,哪些活动需要大量费用,哪些影响质量(即导致许多出错)都一一标出。SEPG与开发组讨论原因。第三步:根据第二步的问题制定工作计划:改进的过程流图及改进的过程流中每一个活动的详细实施方针。前者也用Petrinet描述,后者制定成文档。此时各种新的软件工程技术(如设计方法,评审技术,测试技术……)引进工作计划,还采用一些过去的过程改进的经验,如CMM的实践等。2/1/202310©liqianmu@126.com3、Hoperun公司软件过程改进
四、软件过程改进工作方法概况SEPG的软件过程改进工作分三个阶段,六个步骤,第二阶段:定量估计工作计划的效益第四步:在执行工作计划前进行效益分析,评估对工作计划的影响,若有几个活动计划,应提出对当前软件开发最合适的计划。2/1/202311©liqianmu@126.com3、Hoperun公司软件过程改进
四、软件过程改进工作方法概况SEPG的软件过程改进工作分三个阶段,六个步骤,第三阶段:与开发人员协同工作进行改进活动第五步:开发者执行新的软件开发过程,此时SEPG对过程进行细致而经常性监管。第六步:新的项目完成后,评估工作计划。2/1/202312©liqianmu@126.com3、Hoperun公司软件过程改进
具体的改进工作:第一步:精确而形式化地描述开发过程。SEPG对PRl,PR2项目开发人员进行访问,构成项目开发过程的图a所示的PetriNet(SEPG花了3个月进行这项工作)。其中FT&VT可细画为图(b)。实际上SEPG并没有能够直接得到这一过程流图,因在开始时,开发者只是说出管理部门规定他们应该如何做的情况,但不是实际上开发人员所做的情况。所以SEPG花了三个月反复与开发人员讨论,收集开发人员的工作数据——每项工作的人日数。了解在每个项目PRl、PR2上如何查出错误及错误的数目。再反映到图上,画出来给开发人员看。讨论每个阶段中开发人员做了什么,没有做什么。最后,经开发人员同意:实际情况确实如图上所呈现的那样,才得到此过程流图。2/1/202313©liqianmu@126.com3、Hoperun公司软件过程改进
第二步:分析当前开发过程,指出问题。SEPG经分析,发现黑盒测试阶段工作量极大。即在交付前的功能测试与验证测试(FT&VT)是难于控制且极其混乱。在PRl、PR2中开发人员为处理这种混乱经常日以继夜工作。为了度量这些问题,SEPG用三个公式来度量黑盒测试状态。2/1/202314©liqianmu@126.com3、Hoperun公司软件过程改进
对两个项目的数据进行分析后,得到下表的过程状态的度量值。
上表中M2一栏中的全部错误数指PG阶段及以后的错误,可以看到M1:开发工作的一半工作量用于黑盒测试。M2:大部分错误(90%以上)是用黑盒测试发现的,说明开发效率十分低,从而产品质量可能很差。M3:数值相当大。说明质量并没有达到一定的水平。系统中还存在大量错误时,在可以允许停止测试前,就开始了验证测试VT。这说明对管理人员及开发人员来说,交付日期压力太大,所以结果是只能日以继夜工作。2/1/202315©liqianmu@126.com3、Hoperun公司软件过程改进
为了了解问题发生的根源和制定解决问题的计划,SEFG反复调查下列问题:(1)在黑盒测试中所修正的和发现的错误是哪一阶段产生的。(2)如何复查源代码。(3)如何进行白盒测试。经分析后,SEPG认为要改进以下问题:(1)大部分错误是在PG中造成的,是由黑盒测试发现错误且纠正错误。但在源码审查时只查出极少错误。(2)在白盒测试时没有查出或查出极少错误且白盒测试无记录。主要原因是从管理上没有明确严格的要求。白盒测试只是在FT阶段开始前的业余时间内进行的。(3)虽然大多数人知道必须进行代码审查及白盒测试,但因为准时交付的压力太大,使他们不能正常执行这些活动。2/1/202316©liqianmu@126.com3、Hoperun公司软件过程改进
第三步:制定工作计划。(SEPG用了约2个星期)过程改进的工作计划包括新的过程流图和进行工作的详细指导原则。新的过程流图如图所示。2/1/202317©liqianmu@126.com提出的详细指导原则强调了代码审查,白盒测试等。具体内容如下:(1)坚决执行实际有用的代码审查,具体规定:1)每个人都要履行审查员的作用。2)以每个小时审阅代码100一200行的速度进行审查,以保证代码审查的质量。3)所有新编的或更动过的代码行都必须审查。(2)引进单元测试工具,并对单元测试阶段所发现的问题一律写入报告。具体要求:1)所有新的及更动过的代码都必须用工具测试。2)在UT阶段,对发现及纠正过的错误也都必须记录。(3)按软件系统的结构进行集成测试。为了改进FT&VT阶段,IT阶段的具体要求为:1)按过程图定义的次序完成IT阶段的活动。2)在工作前必须明确地定义每个IT的测试项。3)在IT阶段中发现及排除的错误必须记录。(4)为了使代码审查及UT阶段的项目进度可控,负责人应对每个开发人员作以下要求:1)在代码审查及UT阶段中每个模块的进展及发现错误数都必须记录。2)定期向有关负责人员报告记录内容。2/1/202318©liqianmu@126.com第四步:分析新计划的效益:即如何节省开发费用。为了估计新的工作计划的效益,用“实际PRl”代表真实的PRl,用“改进PRl”表示如果执行改进工作计划后的效果。为了比较两者的区别,作如下假定:(1)“改进PRl”在PG及测试阶段发现的错误与“实际PRl”在PG及测试阶段发现的错误数全同。(2)在PG中进行代码审查将查出全部错误的52.6%(数字根据文献给出)。(3)通过白盒测试将查出全部错误的26.4%(数字根据文献给出)。(4)通过FT将查出全部错误的15.9%(数字根据文献给出)。(5)通过VT将查出全部错误的5.1%(数字根据文献给出)。再按下述公式计算每个阶段的效果:表示产品在阶段i需要的总工作量i为PG,UT,IT,FT及VT之一2/1/202319©liqianmu@126.com表示产品在阶段i需要的总工作量i为PG,UT,IT,FT及VT之一2/1/202320©liqianmu@126.com对比上述两个表,得到“1-1083/1270=0.147”。即可节省14.7%的工作量。因此此方案得到认可。决定按此执行。2/1/202321©liqianmu@126.com第五步:执行,监管工作计划及结果。SEPG向开发组详细解释存在的问题,工作计划及其效益。项目管理人员批准按新的计划启动PR3,每个开发人员都很好理解工作目的(通过与SEPG许多非正式会议)。按此工作计划完成后,计算M1,M2,M3,结果如表3—5所示。从表中发现:首先PR3的Ml改进比期望的小,但要注意在PR3中其他阶段的工作量(即分母)也减小了。在M2上有极大改进,即差不多一半的错误在前面阶段已查出。即在前一阶段进行了质量保证,所以纠错工作量可望减少。而在PR3中,从M3的值可看到VT开始时,质量是有保证的,软件可按时交付。从实际数据中得到:在项目的测试阶段,PR3的测试效率及生产率都比PRl有极大改进。总的效益约改进10%。2/1/202322©liqianmu@126.com第六步:为了更好说明软件过程改进的效果,用“实际PR3”的数据与假定不执行工作计划的“想象PR3”进行比较。为此,作如下假定:(1)在PG以后及测试阶段所发现的错误数相同。(2)“实际PR3”在PG及UT发现的所有错误(对“想象PR3”来说),在FT时已发现且已纠正。(3)“想象PR3”中不进行代码审查及UT。计算公式如前,而按“实际PR3”中的真实数据,结果如表3—6。二者比较,得到“1-1051/1192=0.118”。即改进了11.8%。考虑到FT&VT阶段可能发生的混乱情况,改进的实际效益可能更大,应接近于以前的估计。2/1/202323©liqianmu@126.com五、HOPERUN公司软件过程改进工作小结在进行软件改进过程中,开发人员及管理人员都进行很好的合作,且互有好评,并且大家都理解到:(1)管理人员真正地理解到需要改进软件过程。(2)由于SEPG与全体开发组经常进行许
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车辆货物运输合同模板
- 二零二五版三方车场租赁协议
- 地产行业年终总结
- 2025年聘请食品行业学徒合同协议
- 内窥镜的操作流程
- 2025年上海租房合同协议下载
- 2025个人护理电器采购合同书
- 2025年私人住宅租赁合同
- 2025企业后勤管理人员合同
- 2025年陕西省商品房买卖合同样本(示范文本)
- 天津市南开区2023年物理八下期中统考试题含解析
- 第四节道亨slw2d架空送电线路评断面处理及定位设计系统部分操作说明
- 《电动汽车超级充电设备与车辆之间的数字通讯协议》团体标准(征求意见稿)
- GB/T 912-2008碳素结构钢和低合金结构钢热轧薄钢板和钢带
- GB/T 26480-2011阀门的检验和试验
- 案例:收球器盲板伤人事故
- 《员工思想培训》课件
- 网络主题 大锁孙天宇小品《时间都去哪儿了》台词
- 精神科症状学演示课件
- 文学类文本聂志红《在那桃花盛开的地方》阅读练习与答案
- DB13T 5080-2019 SBS改性沥青生产过程动态质量监控规范
评论
0/150
提交评论