软件编程规范培训.ppt
软件编程规范培训,李冬青2011-4-1,本次培训的目的,软件工程师通过本次培训能够认识到软件编程规范的重要性。软件工程师通过本次培训初步了解业内现存的几种软件编程规范。希望本次培训能够起到抛砖引玉的作用,在日后的工作中,软件工程师通过逐渐学习和领悟软件编程规范,能够编写出符合软件编程规范的高质量代码,从而在一定程度上提高软件的安全性、易读性、可移植性。,目录,什么是软件编程规范为什么要学些软件编程规范软件编程规范的行业标准总结:什么样的规范适合我们例程,什么是软件编程规范,程序员的“道”,什么是软件编程规范,为了提高软件的质量和可维护性,提高软件产品生产力,对软件产品源程序的编写风格、形式作出统一的约束。,为什么要学习编程规范,是软件企业对软件开发人员的基本要求,良好的编程习惯要从一开始培养。一旦养成坏习惯,要改就难了,特别是错误的思维习惯。现在的大学编程教育极少涉及编程风格。这一点现在的学校软件教育存在很大的问题。对刚到公司的大学毕业生做的最多的培训就是编程风格培训。不仅因为他们常常对缩进式风格、匈牙利命名法、注释的重要性等等都一无所知。更是因为这些学生早就在学校里养成了只要能实现功能,其他都无所谓的思维习惯。刚刚开始工作的程序员常常会把公司定的编程规范当成耳边风,编起程序来随心所欲、行云流水,好不痛快。很多人都是直到碰得头破血流、焦头烂额时才如梦初醒,当然也包括我自己。上海SAIC公司 项目经理李阳,为什么要学习编程规范,是成为程序员的正确的入门方法,以前所有的C语言的书中,不太重视格式的问题,写的程序像一堆堆的垃圾一样。这也导致了现在的很多程序员的程序中有很多是废码、垃圾代码,这和那些入门的书非常有关系。因为这些书从不强调代码规范,而真正的商业程序绝对是规范的。你写的程序和他写的程序应该格式大致相同,否则谁也看不懂。如果写出来的代码大家都看不懂,那绝对是垃圾。如果把那些垃圾“翻”半天,勉强才能把里面“金子”找出来,那这样的程序不如不要,还不如重新写过,这样,思路还会更清楚一点。这是入门首先要注意的事情,即规范的格式是入门的基础。摘自编程高手箴言,作者:梁肇新,为什么要学习编程规范,是提高编程质量的基础,就我的经历与阅历来看,国内大学的计算机教育压根就没有灌输高质量程序设计的观念,教师们和学生们也很少自觉关心软件的质量。勤奋好学的程序员长期在低质量的程序堆中滚爬,吃尽苦头之后才有一些心得体会,长进极慢,我就是一例。现在国内IT企业拥有学士、硕士、博士文凭的软件开发人员比比皆是,但他们在接受大学教育时就“先天不足”,岂能一到企业就突然实现质的飞跃。试问有多少软件开发人员对正确性、健壮性、可靠性、效率、易用性、可读性(可理解性)、可扩展性、可复用性、兼容性、可移植性等质量属性了如指掌?并且能在实践中运用自如?。“高质量”可不是干活小心点就能实现的!摘自高质量C+/C编程指南,作者:林锐 博士,软件编程规范的行业标准,嵌入式行业标准MISRAC企业标准Microsoft华为,MISRAC 的形成历史,1994年,在英国成立了一个叫做汽车工业软件可靠性联合会(The Motor Industry Software Reliability Association,简称MISRA)的组织。它是致力于协助汽车厂商开发安全可靠的软件的跨国协会,其成员包括:AB汽车电子、罗孚汽车、宾利汽车、福特汽车、捷豹汽车、路虎公司、Lotus公司、MIRA公司、Ricardo公司、TRW汽车电子、利兹大学和福特VISTEON汽车系统公司。,MISRAC 的形成历史,MISRA于1998年发布了一个针对汽车工业软件安全性的C语言编程规范汽车专用软件的C语言编程指南(Guidelines for the Use of the C Language in Vehicle Based Software),共有127条规则,称为MISRAC:1998。随着很多汽车厂商开始接受MISRAC编程规范,MISRAC:1998也成为汽车工业中最为著名的有关安全性的C语言规范。2004年,MISRA出版了该规范的新版本MISRAC:2004。在新版本中,还将面向的对象由汽车工业扩大到所有的高安全性要求(Critical)系统。,MISRAC 的意义,C语言并不乏国际标准。ISO的“标准C语言”经历了从C90、C96到C99的变动。但是,嵌入式程序员很难将ISO标准当作编写安全代码的规范。一是因为标准C语言并不是针对代码安全的,也并不是专门为嵌入式应用设计的;二是因为“标准C语言”太庞大了,很难操作。MISRAC:2004规范的产生恰恰弥补了这方面的空白。,MISRAC 的应用,MISRAC规范不仅在汽车工业开始普及,也同时影响到了嵌入式开发的其他方向。嵌入式实时操作系统C/OSII的2.52版本虽然已经于2000年通过了美国航空管理局(FAA)的安全认证,但2003年作者就根据MISRAC:1998规范又对源码做了相应的修改,发布了2.62的新版本,并宣称其源代码99符合MISRAC:1998规范。一个程序能够符合MISRAC编程规范,不仅需要程序员按照规范编程,编译器也需要对所编译的代码进行规则检查。现在,很多编译器开发商都对MISRAC规范有了支持,比如IAR的编译器就提供了对MISRAC:1998规范127条规则的检查功能。,MISRAC 内容举例,如果说有些错误是程序员无心之失的话,那么因为程序员对C语言本身或是编译器特性的误解而造成的错误就是“明”知故犯了。C语言有一些概念很难掌握,非常容易造成误解,如表达式的计算。请看下面这条语句:if(ishigh&(x=i+)很多程序员认为执行了这条指令后,i变量的值就会自动加1。但真正的情况如何呢?MISRAC:2004 12-4:逻辑运算符&或|的右操作数不得带有副作用(side effect),就是为了避免这种情况下可能出现的问题。,华为软件编程规范,相比MISRAC,华为软件编程规范在源程序的排版、注释等方面提出了明确要求,从而提高了软件的易读性。,总结:什么样的规范适合我们,在保证软件可靠性、执行效率的条件下,软件编程规范还应该满足:1.有利于编程者本人理解程序2.便于团队成员快速理解程序3.作为第三方软件时,方便客户二次开发关于软件编程规范,最重要的是执行力,例程,