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