软件工程的未来发展趋势.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件⼯程的未来发展趋势 此⽂全⽂已发表在 《程序员》杂志九⽉号上。 这篇⽂章的 体是讨论软件⼯程的未来发展趋势,但是软件⼯程的发展不可能是孤⽴的,所以我们⾸先需要思考⼀下计算模型和软件开 发本⾝的变化和趋势,再由此推测软件⼯程的发展趋势。 从计算模型⽽⾔,应该来讲,传统的冯.诺依曼仍然被沿⽤;但从计算能⼒上来将,我们注意到了三个变化: 1、 CPU的运算能⼒按摩尔定律快速提升;但提升单颗CPU的计算能⼒已经越来越困难; 2、 并⾏运算技术以及多核多线程技术使服务器的处理能⼒飞速提升;服务器的处理能⼒不再是瓶颈,从⽽造成计算能⼒⼤量向服务器 端迁移,C/S结构被⽆情抛弃,薄客户端 (B/S结构)成为⼤势所趋; 3、互联⽹的快速普及使得云计算成为可能,通过互联⽹相连的服务器集群在服务器端提供了更强⼤的计算能⼒; 基于上述计算能⼒的变化,从软件开发模式⽽⾔,我们注意到以下六个相关的趋势: 1、由于计算能⼒向服务器端的快速集中,提供⾼并⾏计算能⼒和可⽤性的中间件技术被⼴泛采⽤,甚⾄已经成为构建⼤型软件系统的 必选项; 1、因为采⽤了中间件技术,软件开发团队可以更集中关注于业务逻辑,⽽可以将许多细节交给中间件来管理,从⽽⼤⼤减少了需要编 写的代码⾏数,也直接导致了软件开发团队的规模变得越来越⼩,但⾓⾊变得越来越专业化 (如了解⾏业的需求分析员,了解中间件技术和 领域构架的架构师等); 2、计算能⼒的增强,使软件越来越易⽤,从⽽使软件变得⽆处不在,需要的软件开发⼈员数量急剧增长(组织形态是⼤量的⼩规模开发 团队) ;在这⼀因素以及降低成本的压⼒下,开发外包变得⾮常普及; 3、为了使分布在互联⽹上系统能够互相协作,SOA成为⼀个热点; 4、互联⽹的普及,将原来分散开发⼈员聚合在⼀起,只要有⼀个合适的基础和好的框架,他们就可以开发出产品级的⼯具软件 (以 Eclipse,JBoss,MySQL,Sub ersion为例),从⽽开源成为了⼀种趋势; 5、B/S结构的系统⾮常容易升级,这使得软件交付和升级的速度⼤⼤加快了 (从以年⽉为单位,到以周天为单位); 回到正题,那么在这些⼤的趋势的作⽤下,软件⼯程会如何发展呢?我觉得在未来⼏年我们会看到如下的趋势: 1、需求⼯程,渐成热点:专业化的⾓⾊,⽇益复杂的业务创新,全球分布的团队以及互联⽹级的交付速度,这些都对需求获取的正确 性和有效性提出了更⾼的要求;我预计需求⼯程的研究和实施会成为近期的热点,其中Use Case技术会被更⼴泛⽽正确的应⽤,⽽相关⼯ 具的研发也会成为热点 (如IBM Rational Requirements Composer,,Ra enflow等。) ⽤例的优势在于它天⽣是⿊盒的,它⽤⾃然语⾔抽象了⽤户和⽬标系统的交互,避免了混⼊分析、设计和实现细节,以保证⽤例可以被 不懂具体技术的业务及测试⼈员所真正理解。同时,需求分析员⼜可以⽅便地通过⽤例分析 (use case analysis) (即⽤分析类来试图在理 想⽅式下实现⽤例),将需求体系精华成分析模型。在这⼀过程中,需求分析员可以更进⼀步地完善基于⽤例的需求体系,⽽不必担⼼分析 模型会污染需求,从⽽实现需求与分析的分离及有效互动。 2、DSSA和MDD,⽼树新花 (基于领域的构架 (DSSA)与模型驱动的开发 (MDD)):随着软件应⽤的⽇益普及,软件已经超出了 将⼿动流程⾃动化的范畴,⽽开始成为业务创新的 要推动⼒。因此,引⼊捕获特定领域内最先进需求及其实现架构的DSSA成为⾏业客户 的热点之⼀。⽽且,DSSA 的引⼊将MDD门槛⼤⼤降低了,也使基于DSSA 的MDD⽀撑⼯具成为可能,从⽽可以极⼤地提⾼开发效率并保证 软件质量 (例如,Telelogic的Rhapsody就是⼀个成功的基于实时嵌⼊式系统构架的MDD⼯具)。 3、迭代/敏捷,渐成标准:随着软件交付周期的⽇益加快,迭代化开发已经成为⼤多数软件开发团队的必选项。但是迭代对整个团队的 需求、架构、协同及测试能⼒都提出了更⾼的要求,现在许多开发团队都在试图导⼊迭代化开发的过程中,敏捷可是被看成迭代化开发的⼀ 种导⼊⽅式,这不过敏捷的范围其实⽐迭代化开发更⼤⼀些。 敏捷的三个要素是迭代开发、坦诚合作和⾃适应性。坦诚合作其实才是敏捷的精髓,如I ar所说,敏捷其实是有关Social Engineering 的。敏捷的 要贡献在于他更多地思考了如何去激发开发⼈员的⼯作热情,这是在软件⼯程⼏⼗年的发展过程中

文档评论(0)

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

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

1亿VIP精品文档

相关文档