软件软件软件

软件开发流程云蛛系统:重定义软件工程、软件开发流程的标杆类大作

经验,一直是衡量软件开发价值的标准,在过去确实是这样的,即使放在现在也是正确的。但是,不与时俱进的经验就会显得落伍。我们大学时候学的软件工程,各种开发流程定义,各种算法定义,这些落伍了吗?答案是显而易见的,没有。但是,技术是进步的,以这些基础为基石,构建的更高级的应用,却是在颠覆这种定义。软件开发流程云蛛系统:重定义软件工程、软件开发流程的标杆类大作(图1)
在进行软件开发之前,我们应该定义软件开发的项目类型,一般的可以分为:
    
  技术的基础单元,用以前的软件工程来定义,完全ok。但是以这些技术基础单元组建的更高级的应用,却已经超出了软件工程、软件开发流程的定义了。
    1)开发项目
  比如说,我们开发一款软件,按照以前的模式是先需求调研,然后需求分析,做静态页面(抽象化过程),开发,测试,上线,这是我们整个开发的流程,也是目前为止,97%的企业开发流程。这个流程是经过无数前辈总结的宝贵经验,其正确性是毋庸置疑的,但是也正是一切都按照这个流程去走,在需求变化日新月异的今天,流程所带来的负面效应正在慢慢显现。
    
  这个世界唯一不变的是变化。当一个软件产品纳入开发计划后,所有的人员都开始按照上述流程开始有条不紊的工作,但是大一点的项目,按照这种流程少则半年,多则一年才能完成一个项目的开发。但是大家都知道,技术的发展是非常迅速的,或许你刚准备上线,比你更加先进的产品已经推向了市场,这个时候等待你的是,推倒重建,再走一遍这样流程,时间再次被浪费,从而进入了一个无休止的恶性循环。为了不陷入这样的怪圈,中国的互联网企业提出了敏捷开发,即以最小的代价,立刻上线哪怕功能还不完善,也要推出,从而占领市场。不仅互联网企业,这个在硬件企业里是经常碰到的事情,你的手机还没上市,领先你一代的对手的产品问世了,就意味着你的努力白费了。
    包括建立客户提出需求的新系统或系统增强(包括新特性或新需求增加);
  虽然大家尽全力的推出敏捷开发,员工不遗余力地加班赶进度,但是这终归不是长久之计。解决这个问题的,还是从硬件企业开始的,大众MQB平台开启了汽车模块化的时代,于是各大车企纷纷效仿。这种模块化带来的直接好处是,新车的设计变得更加简单,只需要在模块上修修改改即可,以前推出一款新车型大概得个3年的时间,现在好了,半年即可,这就是模块化带来的好处。
  软件开发的灵感都是源于实体,既然实体有了模块化,那么软件如果有了模块化,是否意味着软件工程、软件开发流程的重定义呢?答案是肯定的。云蛛系统就是模块化的产物。类似MQB平台,我们不再需要遵循以前的模式,软件的开发只需要和用户在一起讨论,一起拖拽组装,这样,一场需求会开下来,一套软件也就做好了。而以前的种种软件开发流程已被彻底的颠覆,这就是模块化带来的好处。
  云蛛系统,作为重定义软件工程、软件开发流程的标杆类大作,必将一个更快,更好,更强的软件开发世界带给我们!    
    2)增强项目
    
    a.已有系统的增强(一层设计没有重要/显著修改)
    
    b.把已有的货架产品定制成特定环境下的产品或需求更改。即就是包括了新增需求、代码移植以及修改需求的混合型项目。
    
    对于新开发项目类型,一般使用如下软件开发过程:
    <br><img original=http://img13.tianya.cn/photo/2010/1/5/16836205_31695071.jpg onload="javascript: img_auto_size(this,500,true);" style="DISPLAY: block; MARGIN: 0px auto 5px; TEXT-ALIGN: center;" border="0"><br>
    而对于增强型项目,项目经理要根据公司的PMBOOK,对上述流程进行适当的裁决,可以使用如下:
    <br><img original=http://img8.tianya.cn/photo/2010/1/5/16836226_31695071.jpg onload="javascript: img_auto_size(this,500,true);" style="DISPLAY: block; MARGIN: 0px auto 5px; TEXT-ALIGN: center;" border="0"><br>
    增强包括新增,修改,移植部分;建议尽量在老版本基础上更新工作产品,如果项目的范围和老版本有很大的区别,建议重新创建工作产品,并将前工作产品作为参考。
    
    对于上述流程,大家可能认为我是软件开发人员,为什么要进行集成测试(IT)和系统测试(ST)呢?对于1)开发人员来说如果知会编写代码,而不会验证你编写的代码是否符合要求,那不是一个合格的软件开发工程师;
    
    2)这是NASA(美国航空航天管理局)提供的一项经验数据,来说明IT/ST有什么好处:
    
     版本发布后遗留缺陷率 测试成本
    开发人员测试: 20% 每千行1.4人月
    独立测试: 16% 每千行2.5人月
    独立测试组织在测试阶段的问题漏测率由20%降低到了16%(降低了25%),测试效果要比项目组自己测试的效果好,但是其活动成本却上升了78.6%,说明对于普通软件产品而言,采用独立测试组织成本太高,不合适。当然,如果是可靠性要求非常高,对人畜有害的项目,不计成本的软件开发,还是应该使用独立测试组织的测试方式进行,如航天、核电站等。
    
    
    
    产品质量和开发效率的提高, 很大程度上取决于所遵循的过程质量!
    
    但仅仅有过程是不能保证质量的,是因为软件开发活动涉及到,人、过程、技术,
    <br><img original=http://img9.tianya.cn/photo/2010/1/5/16836238_31695071.jpg onload="javascript: img_auto_size(this,500,true);" style="DISPLAY: block; MARGIN: 0px auto 5px; TEXT-ALIGN: center;" border="0"><br>
    在这三者中,人是最重要的。

未经允许不得转载:软件 » 软件开发流程云蛛系统:重定义软件工程、软件开发流程的标杆类大作