




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高质量软件开发之道 内建高质量而非修补质量的理念与方法 林 锐 博士 Page 2 目录 1. IT企业面临的软件工程难题与对策 2. 软件过程改进:理念与解决方案 3. 细说软件质量 4. 高质量软件开发的理念:内建质量而非修补质量 5. 现场交流 Page 3 1. IT企业长期面临的软件工程难题 1.1 企业的目的 u根本目的:合法地赚钱,获取尽可能多的利润。 u第一推论:为了使利润最大化,产品开发应当“做得好、做得快并且少花钱” u 软件工程学科的目的:提高软件产品质量、提高生产率并且降低开发成本 u质量、生产率、成本之间的复杂关系 u成本重要还是Time to Market 重要? 1.2 企业长期面临的软件工程难题 u产品质量低下、进度延误、费用超支(软件工程学科发展30年尚未彻底解决) u经典软件工程:研究需求分析、系统设计、编程、测试、维护等领域的方法、技术和 工具 u问题之源:人们逐渐意识到,由于企业管理软件过程的能力比较弱,常常导致项目处 于混乱状态。过程混乱使得新技术、新工具的优势难以体现。经典的软件工程不是不 好,而是不够用。 u用于提高软件过程能力的实践通称为软件过程改进。 Page 4 2. 软件过程改进:理念与解决方案 2.1 软件过程改进理念 u提高软件过程能力可以比喻为“练内功”,“练内功”没有捷径可走,唯有走“规范 化”之路,即“制定适合于本企业的软件过程规范,并按照此规范执行”。 u“规范化”不会抑止人们的创造力,相反地,它使得团队可以大规模地复用前人积累 的智慧和财富。这种方法非常适合于现代的工业化生产。 (麦当劳与中餐馆对比) u业界实践已经证明,走“规范化”之路是“成本最低、见效最快、能持续发展”的软 件过程改进方法,犹如人类的“养生之道”。任何IT企业(不论大小),都有办法以 其承受得起的代价“走规范化之路”,从而有效地提高软件过程能力。 2.2 IT企业软件过程改进的需求 u首先制定适合于本企业的软件过程规范。 u对员工们进行培训,指导他们依据规范来开发产品。 u购买一些软件工程和项目管理工具,提高员工们的工作效率 。 2.3 CMMI 3级软件过程改进解决方案 u通用的CMMI 3级软件过程改进方法与规范,命名为“精简并行过程”(SPP)。 u与SPP配套的软件工程和项目管理培训教材。 u一套基于Web的集成化软件项目管理工具,主要功能包括项目规划、项目监控、质量 管理、配置管理、需求管理、工作流管理等,命名为Future。 CMMI 3级精简并行过程 SPP 模型 软件工程著作 基于Web的集成化软件项目管理工具 Page 8 3. 细说软件质量 3.1 如何描述质量 u用人的健康做类比 u如何判断人是否健康?体检因素:身高、体重、心跳、血压、血液、体温等 u运行正确的软件就是高质量的软件吗?不贪污的官就是好官吗? 3.2 十大软件质量因素 u功能性质量因素:正确性,健壮性,可靠性 u非功能性质量因素:性能,易用性,清晰性,安全性,可扩展性,兼容性,可移植性 u为什么是“十大” 质量因素 u逐一解释“十大” 质量因素(参见高质量程序设计指南C+/C语言) 3.3 正确性 u正确性是指软件按照需求正确执行任务的能力。 “正确性”的语义涵盖了“精确性 ”。 u正确性无疑是第一重要的软件质量属性。 u技术评审和测试的第一关都是检查工作成果的正确性。 u机器不会主动欺骗人,软件运行出错通常都是人造成的,所以不要找借口埋怨机器有 毛病。 Page 9 3. 细说软件质量 3.4 健壮性 u健壮性是指在异常情况下,软件能够正常运行的能力。 u正确性描述软件在需求范围之内的行为,而健壮性描述软件在需求范围之外的行为。 u开发者往往把异常情况错当成正常情况而不作处理,结果降低了健壮性。 u用户才不管正确性与健壮性的区别,反正软件出了差错都是开发方的错。所以提高软 件的健壮性也是开发者的义务。 u健壮性有两层含义:一是容错能力,二是恢复能力。 3.5 可靠性 u可靠性是指在一定的环境下,在给定的时间内,系统不发生故障的概率。 u可靠性本来是硬件领域的术语。比如某个电子设备在刚开始工作时挺好的,但由于器 件在工作中其物理性质会发生变化(如发热),慢慢地系统的功能或性能就会失常。 所以一个从设计到生产完全正确的硬件系统,在工作中未必就是可靠的。 u软件在运行时不会发生物理性质的变化,人们常以为如果软件的某个功能是正确的, 那么它一辈子都是正确的。可是我们无法对软件进行彻底地测试,无法根除软件中潜 在的错误。平时软件运行得好好的,说不准哪一天就不正常了,如有千年等一回的“ 千年虫”问题,司空见惯的“内存泄露”问题、“误差累积”问题等等。 u时隐时现的错误一般都属于可靠性问题,纠错的代价很高。 Page 10 3. 细说软件质量 3.6 性能 u性能通常是指软件的“时间-空间”效率,而不仅是指软件的运行速度。人们总希望 软件的运行速度高些,并且占用资源少些。 u性能优化的关键工作是找出限制性能的“瓶颈” u可以通过优化数据结构、算法和代码来提高软件的性能。 3.7 易用性 u易用性是指用户使用软件的容易程度。 u现代人的生活节奏快,干啥事都想图个方便。所以把易用性作为重要的质量属性对待 无可非议。 u导致软件易用性差的根本原因 : 理工科大学教育存在缺陷:没有开设人机工程学、美学、心理学这些必修课, 大部分开发人员不知道如何设计易用的软件产品。 开发人员犯了“错位”的毛病:他以为只要自己用起来方便,用户也就会满意 。 u软件的易用性要让用户来评价。当用户真的感到软件很好用时,一股温暖的感觉油然 而生,于是就用“界面友好”、“方便易用”等词来评价软件产品。 Page 11 3. 细说软件质量 3.8 清晰性 u清晰意味者所有的工作成果易读、易理解,可以提高团队开发效率,降低维护代价。 u开发人员只有在自己思路清晰的时候才可能写出让别人易读、易理解的程序和文档。 u可理解的东西通常是简洁的。一个原始问题可能很复杂,但高水平的人就能够把软件 系统设计得很简洁。如果软件系统臃肿不堪,它迟早会出问题。所以简洁是人们对工 作“精益求精”的结果,而不是潦草应付的结果。 u千万不要把在学校里“造文章”的手法用于开发产品! 3.9 安全性 u这里安全性是指信息安全,英文是Security而不是Safety。 u安全性是指防止系统被非法入侵的能力,既属于技术问题又属于管理问题。 u“道高一尺,魔高一丈” ,绝对安全的信息系统几乎不存在。 u开发商和客户愿意为提高安全性而投入的资金是有限的,他们要考虑值不值得。 u究竟什么样的安全性是令人满意的呢? 一般地,如果黑客为非法入侵花费的代价(考虑时间、费用、风险等因素)高 于得到的好处,那么这样的系统可以认为是安全的。 Page 12 3. 细说软件质量 3.10 可扩展性 u可扩展性反映软件适应“变化”的能力。 u在软件开发过程中,“变化”是司空见惯的事情,如需求、设计的变化,算法的改进 ,程序的变化等等。由于软件是“软”的,是否它天生就容易修改以适应“变化”?关键 要看软件的规模和复杂性。 u现代软件产品通常采用“增量开发模式”,不断推出新版本,获取增值利润。可扩展 性越来越重要。可扩展性是系统设计阶段重点考虑的质量属性。 3.11 兼容性 u兼容性是指两个或两个以上的软件相互交换信息的能力。 u兼容性的商业规则:弱者设法与强者兼容,否则无容身之地;强者应当避免被兼容, 否则市场将被瓜分。示例: 中国联通和中国移动的手机互联互通问题 金山软件公司的WPS与微软的Word之争 3.12 可移植性 u可移植性是指软件运行于不同软硬件环境的能力 u编程语言越低级,其程序越难移植,反之则容易。软件设计时应该将“设备相关程序 ”与“设备无关程序”分开,将“功能模块”与“用户界面”分开。 Page 13 4. 高质量软件开发理念 4.1 质量与缺陷 u质量的死对头是缺
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 合伙销售公司管理制度
- 园本培训日志管理制度
- 困难群众安全管理制度
- 国内酒店集团管理制度
- 地税部门预算管理制度
- 免疫球蛋白诊断血清项目投资风险评估报告
- 2024届广西柳州市五城区中考试题猜想数学试卷含解析
- 卫浴柜类项目投资风险评估报告
- 2025年初级经济师之初级经济师工商管理模考预测题库(夺冠系列)
- 因数中间或末尾有零的乘法能力练习题
- 常州市企业安全管理知识机械行业题库(主要负责人)
- 生产首件记录表
- smt首件检验记录表
- QJLYJ7110204A-2022年车身油漆涂层技术要求
- 建档立卡贫困学生证明(模板)
- 一年级下册音乐教案 (简谱) (演唱)同坐小竹排(7) 湘艺版
- 小学教育中数学与语文教学的融合实施
- Axsym(雅培化学发光仪)简易维修手册第10单元 故障操作
- 临床常见检验指标
- 面试成绩通知单(上下联式)
- 2009吉林省职称评审表(共4页)
评论
0/150
提交评论