软件开发工程化可以看作是确定一个软件过程,并确保软件过程正确执行。规范软件过程的目的就是提高产品的质量,降低个体的不确定因素对软件质量的影响,将软件开发至于受控状态下。
很多人以为“软件开发是一项智力密集、创造性成分较高的休息”,因此会产生许多非受控的因素,形成软件开发标准规范的贯彻执行在实践中都会碰到困难。我以为软件开发和其他行业一样,对质量的保证都是一个管理问题,从这一角度讲,需要遵照的根本原则和面向的对象没有什么不同,过分强调软件开发的非凡性其实是软件行业尚不成熟的表现。
我们可以借鉴制造行业的质量管理体系,反思一下软件开发过程的问题。制造业拥有长久的历史,构成了一套行之有效的管理形式、规范以及质量管理体系,更重要的是这种观念和意识深植于制造业从业人员心中----不论是大型的企业还是只要一二百人的小厂,都会有本人详细的流程、制度,并良好运转且大家习以为常----正是由于这种现象的存在,才使我有了剥析一下软件开发过程的想法。
当一个机械制造企业需要开发一个新产品时----这个产品能够是一种新型步枪,也能够是新一代的运载火箭----大致可以分为这样几个步骤:
1、首先,是对新产品的功能、技术性能(指标)等的定义;
2、其次停止产品的总体设计、分系统或模块的划分,设计各接口之间的关系或依靠条件等等,还包括部分的尺寸、重量等等详细的技术指标,完成总体蓝图以及设计计算阐明书;
3、然后停止的是分系统的设计----产生分系统的蓝图、设计计算阐明书,为冗长起见,我把详细的零件图完成也加在这部分;
4、组织加工。这个阶段完成零件工艺线路、工卡量夹具的设计,零件的加工,产品的装配;
5、系统的联调。
6、产品的定型或提交;
整个的阶段过程大致如此,我们可以看一下,与软件开发的步骤非常相似,xx可以将1、2、3、4、5、6分别对应到需求分析、概要设计、详细设计、编码与完成、测试、发布。在一个机械产品开发过程中,同样有与软件开发过程相对应的职责与角色,假设有必要,可以进一步讨论。我个人以为,两者{zd0}的区别能够在于机械产品开发过程中“工艺线路、工卡量夹具的设计”能够没有相应的步骤可以对应,这也是形成机械产品开发过程中4步骤所站周期远大于编码与完成阶段的原因,不过我想这不是一个问题的主要层面,不会对问题的讨论产生影响(其实“工艺线路、工卡量夹具的设计”也是一个小的产品开发过程)。
制造业不是一个“智力密集、创造性成分较高的休息”吗?假设我们了解了一个产品的开发过程,恐怕会说"Yes",只不过我们常常在流水线的轰鸣声中忘记了一个背后的事实----任何产品,包括消费线本身,都是人类创造性的结果。其实不止是制造业,电子行业、修建行业(恕我浅薄,不能举出更多的例子),都属于这种状况。
我喋喋不休的说这些,只是想阐明对于质量的管理、控制,不是哪一个行业或哪一些人面临的孤立问题,而且万变不离其中,任何成功的形式同样适用于我们本人。还是让我们来看一看制造业如何停止过程的控制吧。
下面的6个步骤,只是一个开发的流程,对于质量的保证是随处可见的,我也仅仅举几个例子而已。
一、规范的制定和执行
规范在制造业称为标准,按不同等级有国标、部标甚至企业本人的标准。
1、规范的产生
制造业的规范和标准由来以久,如今已经是整个行业的标准,这也是一个行业成熟的标志,标准约束的不只仅是内容的表示方法,而且包括表示的格式,在一张设计图中中相对不会出现别人看不懂的符号,而且这些符号的写法、位置甚至字体都是相同的(这一点任何学过机械制图的人都应有所体会,程序员的code 格式不也是这样吗,很多公司制定了本人的标准,不过离行业标准还有一定距离)。
2、规范的执行
没有那一个机械工程师会以为这个规范没有必要,每个人都会仔细的执行----感激我们的教员在教学中的严厉要求。在国内的软件行业规范执行的并不严厉,是不是和教员的熟习和事必躬亲有关。
3、反省
规范的执行仅仅有执行的自觉自愿是不够的,严厉的复查必须存在。在制造企业通常有标准化反省的部门(小一点的企业也有专人担任),反省的内容无非是设计图纸、计算阐明书中的标准执行状况,看看你的设计能否符合国标、部标、企业标准,和软件公司中QA的角色相似,不过QA还有一些对过程执行状况的反省,而标准化反省仅仅关注于标准化的执行。标准化反省拥有一票否决权,他可以让你修正、返工----想一想在本人的软件开发过程中,假设QA指出你的code大括号的位置不对,你能否不屑一顾,甚至你的公司中有没有人反省你的编码格式等等。
二、设计的复查
下面我说了,制造行业中4、组织加工 这一步骤能够耗费大量的人力、物力,因此对设计的复查非常重要。复查能够包括:重新校核、计算你的设计阐明书,反省你的设计图纸等等(机械的术语我就不多说了),总之一个目的,尽能够增加进入加工阶段的设计缺陷。因此在一切设计图纸和计算阐明书上,都可以看到设计者、校核者、同意者的签名,仅仅签名一项就是很费事的事,由此可见在这方面投入的精力----想一想在本人的企业中能否对概要设计、详细设计停止了细致到function的设计复查,其实大量的缺陷在这一过程中被发现、纠正,也许是由于软件的code阶段对资源的要求比较小,才养成了很多人的不良习惯,先code再说。
三、测试的问题
这个标题并不正确,由于制造业没有明白的测试提法,我是套用软件行业的术语表示问题。不过这没有关系。
其真实4、组织加工 5、系统的联调的阶段都有测试的内容。加工中能够出现零件的设计不合理,部件无法装配等等错误,即使有了复查这些错误也无法全部避免。系统联调可以发现产品的某些技术指标不能达到要求。系统联调的测试很多都有标准可循,可以说有很多标准的测试用例,不过更多的测试方法和手腕的完成是在系统设计过程中并发停止----想一想你的企业中能否还是由程序员自我测试,至多是穿插测试,有没有在概要设计的同时设计测试用例和测试方法,测试用例的选取能否与需求严密结合可以覆盖需求。
四、图纸档案的管理
还是叫配置管理吧,大家比较习惯。
设计工作完毕后,设计图纸和计算阐明书都必须归档,由于设计图纸必须晒图才能长期保存,能够这使归档的工作更随便完成了。设计的复核都是针对晒过的图纸,也就是归档后的图纸,假设发生错误,对不起,小的错误可以在图纸上改过,但是每一处修正都必须注明修正的位置、内容、修正工夫、修正人,而且还要有人复核、同意,假设没有这些,图纸档案的管理人员就不会赞同,你无法归档,不要说奖金,饭碗想一想再说。要是大的错误,只好重画、重写设计阐明书了。在加工过程中难免发生错误,修正的过程大致一样,由于有了专职的图纸档案管理人员和严厉的制度,自然有效处理了版本控制的问题,没有哪个制造企业找不出几年前某个产品的设计图纸,甚至当时的设计者作了什么,有那些错误等等都一清二除。这样不只仅控制了版本,而且为设计复用提供了保证。
其实改图纸和设计阐明书是很痛苦的事,在手工绘图的时代,需要做大量的反复性休息,另外很多人要对无数张图纸重新审查、签字认可。即使如今CAD的应用,能够还需要到各处去修正发出的图纸,能跑细你的腿。相比之下,软件开发中的管理可以借助很多工具,已经复杂了很多,看来要害是制度的树立、实施和反省----想一想能否有人告诉你,应该从谁那里拿到设计文档,修正了已经版本化的code后我应做哪些工作,这很多东东我以为应该是新员工培训的一部分。
五、需求的管理
制造行业中大多产品的需求是以规格、功能、性能指标的形式出现,客户和厂家对此都非常注重,所以一般比较明白。对这一点我的了解不深,希望大家发表看法,不过窃以为,正是甲乙单方对需求的不注重,才会出现需求的频繁变更和难以控制。
六、设计的重用
在机械设计中,常常可以看到,借用某零件图、某部件图的现象,正是由于良好的设计文档(对产品的良好描画)以及配置管理,才能作到这一点----想一想你能否希望copy别人的代码,但是看了半天code,{zh1}还是决议本人去写。不过设计的重用一个比较难以处理的问题是对产品的描画。
软件开发的质量管理实践上可以分为工程人员工程素质的提高和制度体系树立两部分。对于小企业前者是要害,由于人力物力有限不能够有完备的质量管理体系,更多依靠开发人员本身的素质保证,因此在团队树立的初期应该加大工程素质的灌输力度,通过代码复查等手腕严厉要求;对于大一些的企业,在提高开发人员工程素质的根底上,应着重于制度树立,从上直下的树立起一套固定的制度、流程,并与管理人员、开发人员、保证人员严密结合,使之成为自觉。
在制度树立中不应过度的强调人文精神,由于体系、制度、规范的树立,其目的是:将个人的创造性集中在设计、开发本身,{zd0}程度的增加在流程、表现形式等方面的个人发挥(或随意性)。简而言之,将个人的创造性发挥在需要的地方。
北大青鸟教学与就业双优示范基地--烟台文化宫
即刻报名http://www.qnit.cn/online.asp
地址:烟台市文化宫大厦七层
电话:0535-6687961
QQ:1144295006
网址:www.qnit.cn
山东烟台北大青鸟软件工程师|电脑IT培训教育学校|北大青鸟烟台文化宫计算机培训学校?
山东烟台北大青鸟烟台文化宫校区是中国计算机IT教育{dy}品牌,文化宫北大青鸟是从事国内计算机电脑? 职业教育 技艺认证xxx培训学校.提供烟台电脑培训,山东计算机教育认证培训,IT培训教育,职业技艺鉴定培训,职业技艺教育认证培训,烟台J2ee,烟台accp,烟台java培训,游戏网站制造培训,山东烟台程序员,java软件工程师人才培训. xxIT培训,java,.net,linux培训 ,了解北大青鸟学费、北大青鸟课程、北大青鸟培训、北大青鸟电话、北大青鸟网站、北大青鸟网址,咨询电话: 0535-6687961