浅谈软件开发基本原则
浅谈软件开发基本原则
----快速软件开发之读后感
什么是软件开发,什么又是保证软件开发成功的关键,抑或什么是成功的软件?初学者可能认为coding 水平决定着软件能否成功开发,真的是这样的吗?让我们一起来看一下专家Steve McConnell 是怎么理解的…..
软件工程的第一堂课,每个老师都会指出第一个误区:软件工程不是告诉你如何编程,软件开发也不只是coding,coding只是整个项目开发中的一小块。做任何事情都应遵循其原则,软件开发也是如此,如果不遵循基本原则,你可能在简单的项目中做得‘很好’,但在复杂的项目中会一败涂地,那么首先就来认识一下软件开发有哪些基本原则:
从不同的角度,可将其划分为以下三类基本原则:
管理原则;
技术原则;
技术保证的基本原则
下面分条详述之:
管理原则:
管理原则对开发计划的巨大影响绝不亚于技术原则,对一个缺乏管理的开发团队,要求其高质量的保证,是一件极其奢侈的事情。管理原则主要包括:产品规模的判断,资源的合理分配,计划制定 以及对资源的监控引导,以保证项目的方向不会偏离。
Steve McConnell 将其归纳为项目估算和进程安排,计划编制,跟踪和度量。
其中估算和项目进度计划是软件开发的基础,精确的估算是进行有效规划的必要前提,而有效的规划又是有效开发的必要条件,其重要性可想而知,而如何进行精确估算和进度安排 就需要一定的开发经验和先验知识,需要在软件开发中不断积攒。
所谓跟踪就是要检查开发是否按照计划在进行,包括对进度,质量和费用等的检查,它是一个基本的软件管理行为,可想而知,没有跟踪你就无法知道项目是否按计划贯彻执行了,不知下一步做什么,更不谈监控项目风险了。
度量也即搜集基准数据来分析软件质量和生产率,当然这些数据不仅是本项目的费用和进度数据,也不局限于本公司的各项目数据,为了洞察如何减少费用,缩短进度,你需要搜集更多,更全面的数据,只有搜集了这些基本尺度,你才能知道开发速度是否在改善或者在后退。
技术原则:
这是保证你具有高的生产率的必要条件,可以分条概述之:需求管理,设计,构建以及软件的配置管理。
需求管理就是搜集用户需求,并将要求记录成文档或者电子邮件,用户界面串联脚本等等其他形式,然后依此来跟踪设计和编码,并随时管理修改需求以适应项目随后的进程。看得出,用户的需求是最终能否得到认可的关键,需求管理也要求有足够的不同实践经验。其中两方面可以加快开发的速度:一,加快需求收集的步伐而不伤害质量,则可以缩短整个开发时间;二,把需求摆在首位,这往往比被动的这么做所花的时间少50到200倍,也就是说要时刻记住用户的需要,用户需求至上原则
就像推土造房之前创建楼房蓝图一样,在开发软件系统前创建体系结构和设计也是非常有意义的,并不是每个人都了解设计的基本原则,当然鄙人也不了解多少,更不谈作出良好的设计。模块化和信息隐匿的思想是设计的基本原则,既是结构设计也是对象设计基础的一部分,微软公司在某6年中对200为应聘软件开发的人员中,仅仅只有5个人能确切的解释“模块化”和“信息隐匿”的概念,要知道微软在面试前都经过了严格的筛选,其他程序员和开发人员对设计基本原则的认识的缺乏程度就可想而知了。
当开始构建时,项目成功与否大多就已经确定了,构建也许不会给进程提供更多的缩短机会,但其是非常具体且需求密集的劳作,也是做好项目的一个重要方面。
质量保证原则:
IBM最早发现具有最少缺陷的产品也就是最短开发时间的产品,可想,质量保证对缩短开发工期的一个重要方面,主要有:易错模块,测试和技术回顾。
技术回顾包括在需求,设计,编码和测试等事件中用于差错的所有类型的回顾,其主要的形式有;走查,代码阅读和检查。其中走查是最平常非正式的回顾,可以帮助在设计和规范编写完成之前就发现漏洞;代码阅读比走查要正式,但仅适合于代码,需要将代码交付给其他程序员检查,一般代码阅读能发现的漏洞比测试时发现的要多两倍以上,也即更具效率;检查是一种正式的技术回顾,既能发现表面的漏洞,还能发现潜在漏洞,而测试只能发现表面漏洞。
因此,技术回顾是每个希望达到最短开发时间的项目的一个重要组成部分。
最后一条值得注意的是:开发过程中要按照指导来做,大部分的软件项目的失败归咎于经理或是程序员没有按照指导来做,图快而偷工减料,只有遵循这些基本原则,才能在最短的时间内开发出比较成功的软件,如期如质满足客户的需求。
小可没有实战经验,只是谈谈对书本所述知识的理解,欢迎拍砖~~