高品质软件开发理念.ppt_第1页
高品质软件开发理念.ppt_第2页
高品质软件开发理念.ppt_第3页
高品质软件开发理念.ppt_第4页
高品质软件开发理念.ppt_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

高质量软件开发理念,Henry Liu 2011-7-21,内容提要,1,质量小故事,2,质量意识,3,为什么要重视软件质量,4,影响软件质量的十大因素,5,质量产生的过程,质量小故事,(一)故事:扁鹊的医术 魏文王问名医扁鹊说:“你们家兄弟三人,都精于医术,到底哪一位做的好呢?” 扁鹊回答:“长兄最好,中兄次之,我最差。” 文王再问:“那么为什么你最出名呢?” 扁鹊回答:“长兄治病,是治病于病情发作之前。由于一般人不知道他事先能铲除病因,所以他的名气无法传出去;中兄治病,是治病于病情初期时。一般人以为他只能治轻微的小病,所以他的名气只在本乡里。而我是治病于病情严重之时。一般人都能看到我在经脉上穿针放血,在皮肤上敷药等大手术,所以以为我的医术高明,名气因此响遍全国”,领悟,以上的“病”可以理解为“质量事故”,能将质量事故放在“病”情发作之前就可以消除,才是“善之善者也”。 预防质量事故,要从“小病”做起,也就是防患于未然。 预防是事前行为,不但能够最大限度降低开销,提高软件产品质量,而且也避免了最后发现问题时的大范围返工。,质量意识,我们理解成功的秘决:产品!产品!产品!,设计 Design 有需求的好产品 价值创新,开发 Production 更好的产品,市场 Market 好产品 竞争者,我们的态度,美国西北大学理事会主席兼心理学博 士史各特说:“决定成功与失败的原 因,态度比能力更重要。” 哈佛大学的一项研究表明:成功、成 就、升迁等原因的85%是因为我们的 态度,而仅有15%是由于我们的专业技术。 播种行为,收获习惯;播种习惯,收获性格;播种性格,收获命运。性格,决定命运。形成性格要靠习惯,习惯又是由不断重复的行为而形成的,归根到底在于行为。,只有100%才算合格,对很多事情来说,执行上的一点点差距,往往会导致结果上出现很大的差别。 一位管理专家一针见血地指出,从手中溜走1%的不合格,到用户手中就是100%的不合格。 有位外资公司的工程师的个人信条就是:“我要做的事情,不会让任何人操心。任何事情,只有100%才是合格,99分都是不合格。60分就是次品、半次品。,为什么要重视软件质量,很遗憾,这并不是我想要的。,不满足顾客 要求的后果,补救与顾客忠诚度,补救是一柄“双刃剑”,有可能对企业形象造成伤害。就像一个人买了一个名贵的瓷器,如果不小心摔碎了,尽管修补好了,但由此而形成的裂缝却会永远地存在下去 。,失去顾客的代价,把一个现有顾客培养成一个忠诚顾客的费用(1) 赢得一个新顾客的费用(5) 重新赢得一个不满意顾客的费用(12),软件质量的重要性,软件质量的三大目标:,进度,成本,质量,质量相关知识,古时候人们以为长的结实、饭量大就是健康,这显然是不科学的。现代人总是通过考察多方面的生理因素来判断是否健康,如测量身高、体重、心跳、血压、血液、体温等,如果上述都合格,那么表明这人是健康的,如果某个因素不合格,则表明人体的某个方面不健康,医生都会对症下药。,软件质量概念,通过类比,我们这样理解软件质量: 软件质量是软件满足明确的说明或者隐含需求 的程度,软件质量是许多质量属性的综合体现, 各种质量属性反映了软件质量的方方面面,可以 通过改善软件的这种质量属性,从而提高软件的 整体质量。,影响软件质量的因素,十大软件质量因素: 功能性质量因素:正确性,健壮性,可靠性 非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性,十大因素-正确性,正确性: 正确性是指软件按照需求正确执行任务的能力。 “正确性”的语义涵盖了“精确性”。 正确性无疑是第一重要的软件质量属性。 技术评审和测试的第一关都是检查工作成果的正确性。,十大因素-健壮性,健壮性 : 健壮性是指在异常情况下,软件能够正常运行的能力。 正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。 开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。 用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软件的健壮性也是开发者的义务。 健壮性有两层含义:一是容错能力,二是恢复能力。,可靠性: 可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。 可靠性本来是硬件领域的术语。比如某个电子设备在刚开始工作时挺好的,但由于器件在工作中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。 时隐时现的错误一般都属于可靠性问题,纠错的代价很高。,十大因素-可靠性,性能: 性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。人们总希望软件的运行速度高些,并且占用资源少些。 性能优化的关键工作是找出限制性能的“瓶颈” 可以通过优化数据结构、算法和代码来提高软件性能。,十大因素性能,易用性: 易用性是指用户使用软件的容易程度。 现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量属性对待无可非议。 软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然而生,于是就用“界面友好”、“方便易用”等词来评价软件产品。,十大因素易用性,清晰性: 清晰意味着所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。 开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。 可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平的人就能够把软件系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。所以简洁是人们对工作“精益求精”的结果,而不是潦草应付的结果。 千万不要把在学校里“造文章”的手法用于开发产品!,十大因素清晰性,安全性: 安全性是指信息安全。 安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。 “道高一尺,魔高一丈” ,绝对安全的信息系统几乎不存在。 开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。 究竟什么样的安全性是令人满意的呢? 一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高于得到的好处,那么这样的系统可以认为是安全的。,十大因素安全性,可扩展性: 可扩展性反映软件适应“变化”的能力。 在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法的改进,程序的变化等等。由于软件是“软”的,是否它天生就容易修改以适应“变化”?关键要看软件的规模和复杂性。 现代软件产品通常采用“增量开发模式”,不断推出新版本,获取增值利润。可扩展性越来越重要。可扩展性是系统设计阶段重点考虑的质量属性。,十大因素可扩展性,兼容性: 兼容性是指两个或两个以上的软件相互交换信息的能力。 兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免被兼容,否则市场将被瓜分。示例: 金山软件公司的WPS与微软的Word之争 可移植性: 可移植性是指软件运行于不同软硬件环境的能力 编程语言越低级,其程序越难移植,反之则容易。软件设计时应该将“设备相关程序”与“设备无关程序”分开,将“功能模块”与“用户界面”分开。,十大因素兼容性 & 可移植性,质量产生的过程,软件质量是贯穿于整个软件开发的生命周期的,所以要保证软件的质量,必须要注重软件形成的过程。,PDCA管理循环,持续不断循环改进,戴明的PDCA循环(续1),戴明的PDCA循环(续2),PDCA循环的七个步骤 分析现状,发现问题。 分析质量问题中各种影响因素。 找出影响质量问题的主要原因。 针对主要原因,提出解决措施并执行。 检查执行结果是否达到了预定的目标。 把成功的经验总结出来,制定相应标准。 把没有解决或新出现的问题转入下一个PDCA循环去解决。,戴明(1900

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论