软件开发活动和方法


自20世纪50年代开始软件开发以来,人们一直在探索软件开发的方法。目前,软件开发过程一般被划分为若干个目的和作用相对独立活动,包括:需求、分析、设计、实现、测试和集成,以及维护。围绕着如何安排、规划这些活动的次序、周期和历时,人们提出过各种各样的软件开发方法模型。
随着技术的发展,人们对软件开发实践的积累,尤其是对人们开发软件特点理解的进一步深入,已有的开发方法不断被更新,甚至淘汰,更符合软件开发要求,更有效的开发方法被不断提出。


现代企业应用软件的特点和开发要求

早在1942年,现代经济学发展和变革之父,哈佛商学院教授约瑟夫·A·熊彼得(Joseph Alois Schumpter)就在其著作《资本主义、社会主义和民主》(Capitalism, Socialism, and Democracy)一书中提出“创造性的毁灭”理论,其核心就是西方经济制度正以更有效的产品和服务摧毁、替代陈旧的、效率低下的产品和服务。企业管理畅销书《执行》与《增长力》的作者博西迪(Larry Bossidy)和查兰(Ram Charan)也于2004年提出:“勇于应变”是最重要的企业管理能力。
作为现代企业业务系统的支撑,企业信息管理和分析的工具,企业应用软件也面临着变化所带来的挑战,具体可归类为以下三方面:

  1. 技术变革及其挑战。典型的例子有:每十年左右就诞生一门新的主流编程语言;Java系统每18个月发布一个新版本;微软企业应用平台的主要产品每2年一次重大升级;来自开源社区不断的创新和突破:从颠覆Java“官方”企业平台的Spring和Hibernate,到影响.NET平台应用开发的NHibernate,到企业应用开发的第三股力量Ruby on Rails。一方面,企业应用应当持续利用新技术带来的优势和便利;而另一方面,业务系统的生命周期又远远超过技术变革的周期。如何解决这一对矛盾,是现代企业应用必须面对的一个现实问题。
  2. 业务发展及其挑战。业务的发展和变化是企业发展、创新的必然,而业务的发展、变化必然对企业系统提出新的需求。如何容纳这些不断变化的需求是现代企业应用的核心问题。
  3. 政策等其他变化带来的挑战。除了上述两方面主要的变化,政策、法规、组织结构变化等非技术和业务因素都会对企业应用提出变更的要求和挑战,它们同样是不可忽视的问题。

传统软件开发方法

我们将具有以下特点的软件开发方法定义为传统软件开发方法:

  1. 以预测性为原则
  2. 以文档驱动开发过程
  3. 以过程控制为核心

面对上述的变化和挑战,传统软件开发方法的特点也成为了它的弊病,应对各种挑战时显得力不从心。

敏捷软件开发方法

与此形成对照,形成于2001年的敏捷宣言(http://agilemanifesto.org/)和随之形成的敏捷软件开发方法具有更为先进的三个特点:

  1. 以适应性为原则。
  2. 以真正工作的软件驱动开发。
  3. 以人和交流为核心。

可以说,敏捷方法旨在解决“如何持续满足不断变化的需求”这个软件开发的核心问题。为了实现这个目标,在以上原则的基础上,敏捷软件开发方法开创性的引入了一系列新颖、有效、互为支撑的软件开发实践,这些实践分别针对如下子目标:

  1. 如何减少开发过程中的浪费
  2. 如何准确,及时的获取需求
  3. 如何持续演进系统架构
  4. 如何实现安全重构(Refactoring)
  5. 如何最大限度的降低系统集成的成本
  6. 如何在团队里共享知识,使团队成员共同成长
  7. 如何合理的进行成本和时间估算
  8. 如何迅速获得软件开发收益
软件定制开发

关于Topideas | 战略合作 | 内容合作 | 渠道合作 | 版权商标 | 隐私声明 | 工作机会 | 联系我们

Copyright © 2012 Topideas 版权所有

湖北 - 武汉 | 各个商标由其各自所有者持有 鄂ICP备13005502

咨询(客服) 咨询(客服)

欢迎给我们留言