软件开发前沿技术教程.doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件开发前沿技术教程

软件工程前沿开发技术 经过近四十年的发展,软件工程在支持软件系统工程化开发方面取得了令人瞩目的成 绩,提出了大量的理论、方法、技术和工具,但是近年来的研究和实践表明软件危机依然存 在,软件开发仍然存在成本高、质量得不到保证、进度和成本难以控制等方面的问题,许多 软件项目被迫延期甚至取消。与此同时,随着网络技术(尤其是 Internet 技术)的不断发展, 部署在网络基础上的软件系统的规模和复杂性越来越高,并表现出诸如持续性、自适应性、交互性、动态性、开放性、异构性等特点。因此,如何支持这类复杂系统的开发、缓解和消除现阶段的软件危机是当前软件工程面临的一项重要挑战。为了迎接上述挑战,近年来软件 工程领域的一些学者提出了许多新的方法和技术,包括:敏捷软件开发(Agile Software Development)、极限编程(Extreme Programming,XP)、测试驱动的开发(Test-Driven Development,TDD)、面向 Agent 的软件开发(Agent-Oriented Development)、面向方面的 编程(Aspect-Oriented Programming,AOP)、模型驱动体系结构(Model-Driven Architecture, MDA)等等。与传统的软件工程方法相比较,这些方法和技术为软件工程实践提供了新的 思路,已在许多软件工程实践中取得了积极的效果。 1 敏捷软件开发 软件工程一直以来都面临着一个共同的问题,即如何迅速、高效地开发软件系统,适应 用户需求的快速变化,确保软件系统的质量,控制软件开发成本。传统软件开发方法强调软 件开发需遵循严格的过程模型以及以此为基础的开发计划,并且在软件开发过程中需产生大 量的规范化文档,这一思想和方法很难应对快速、灵活和低成本软件开发所带来的一系列问 题。自二十世纪九十年代以来,软件工程领域涌现出了一批新的软件开发方法。这些方法主 张软件开发只编写少量文档、以用户为中心、主动适应需求变化。这些方法被称为敏捷软件 开发,其代表性的成果是极限编程。 1.1 敏捷思想 至今人们已提出了几十种软件开发方法,根据这些方法在对软件开发所提出的要求和约 束等方面的差异,现有的软件开发方法大致可分为两类:重型软件开发方法和轻型软件开发 方???。重型软件开发方法一般具有严格和详尽的软件开发过程,软件开发需产生大量的文档。 轻型软件开发方法则强调软件开发过程的简洁性和灵活性,软件开发只需编写少量的文档。 敏捷软件开发是一类轻型的软件开发方法,它 提供了一组思想和策略来指导软件系统的快速开发并响应用户需求的变化。不同于已有的其它软件开发方法,该方法对软件开发具有 以下四个方面的基本认识:(1)较之于过程和工具,应更加重视人和交互的价值;( 2)较之于面面俱到的文档,应更加重视可运行软件的价值;( 3)较之于合同谈判,应更加重视客户 合作的价值;( 4)较之于遵循计划,应更加重视响应用户需求变化的价值[1][2]。 敏捷软件开发方法认为人是软件开发中最为重要的因素,软件开发应坚持以人为本;优秀的软件开发团队离不开人员之间良好的沟通与合作,相比较而言团队的合作与沟通能力比单纯的编程能力更为重要,改善人员之间的交流与合作将有助于提升团队的软件开发水平;应根据软件开发团队的特点选择合适的软件开发过程;在软件开发工具的选择方面,敏捷 软件开发主张从使用小工具开始,只有当小工具不能满足要求时才考虑选择和使用功能强大的 工具。 一直以来,人们将文档视为是对软件开发各个阶段成果进行记录、促进人员之间进行交流的重要媒介和工具,也是软件开发和维护的主要依据。然而,编制过多的文档不仅会耗费大量时间和精力,而且当用户需求变化时难以实现文档与代码的同步,这势必会影响软件系 统的开发和维护。敏捷软件开发方法提倡在软件开发过程中只编写少量短小精炼的文档。 成功的软件开发不应单纯依赖于合同条款和工作说明,而应 将用户和软件开发团队紧密地结合在一起,让用户积极参与软件开发并提供持续不断、频繁的反馈信息。在软件开发过程中,用户需求总会发生变化,这是由于用户需求难以一次性完全捕获,开发人员和用户对于需求的认识会不断地调整。此外,用户的业务本身也可能会动态地发生变化。在复杂软件系统的开发过程中,响应用户需求变化的能力常常决定着软件项目的成败。为了适应用户需求的变化,敏捷软件开发认为软件开发计划不应考虑的太远,不要进行过于周密、详细的计划,只应覆盖短期的工作任务,对于中长期的任务只需有一个粗略的规划即可,要保留计划 的充分灵活性,并根据需求的变化适时地调整计划。 在上述思想的指导下,敏捷软件开发提出了以下十二条原则来指导软件系统的开发[1]。 (1) 尽早和持续地交付

文档评论(0)

shuwkb + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档