推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

软件开发方法发展回顾与展望

更新时间:2019-12-30 19:44:37 大小:714K 上传用户:songhuahua查看TA发布的资源 标签:软件开发 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

软件是信息化社会的基础设施,而构造并运用软件的能力成为一种核心竞争力.软件开发方法凝结了系统化的软件构造过程和技术.简要回顾了50年来软件开发方法发展历程中具有重要影响的里程碑,包括基于结构化程序设计和模块化开发的基本方法、面向对象方法、软件复用与构件化方法、面向方面的方法、模型驱动的方法,以及服务化的方法.而后针对Internet的发展普及以及人机物融合应用对软件开发方法提出的挑战,介绍了网构软件的研究和探索,并展望未来人机物融合的软件方法和技术.


部分文件列表

文件名 大小
软件开发方法发展回顾与展望.pdf 714K

部分页面预览

(完整内容请下载后查看)
软件学报 ISSN 1000-9825, CODEN RUXUEW  
Journal of Software,2019,30(1):3-21 [doi: 10.13328/j.cnki.jos.005650]  
©中国科学院软件研究所版权所有.  
E-mail:  
Tel: +86-10-62562563  
软件开发方法发展回顾与展望*  
1,2  
3,4  
3,4  
1,2  
1,2  
1,2  
1,2  
马晓星  
,
哲  
,
,
,
,
,
李宣东  
1(计算机软件新技术国家重点实验室(南京大学),江苏 南京 210023)  
2(南京大学 计算机科学与技术系,江苏 南京 210023)  
3(北京大学 信息科学技术学院 软件研究所,北京 100871)  
4(高可信软件技术教育部重点实验室(北京大学),北京 100871)  
通讯作者: 李宣东, E-mail:  
: 软件是信息化社会的基础设施,而构造并运用软件的能力成为一种核心竞争力.软件开发方法凝结了系  
统化的软件构造过程和技术.简要回顾了 50 年来软件开发方法发展历程中具有重要影响的里程碑,包括基于结构化  
程序设计和模块化开发的基本方法向对象方法件复用与构件化方法向方面的方法型驱动的方法,  
以及服务化的方法.而后针对 Internet 的发展普及以及人机物融合应用对软件开发方法提出的挑战,介绍了网构软  
件的研究和探索,并展望未来人机物融合的软件方法和技术.  
关键词: 软件开发方法;回顾;展望  
中图法分类号: TP311  
中文引用格式: 马晓星,刘譞哲,谢冰,,,卜磊,宣东.件开发方法发展回顾与展望.件学报,2019,30(1):3-21.  
英文引用格式: Ma XX, Liu XZ, Xie B, Yu P, Zhang T, Bu L, Li XD. Software development methods: Review and outlook. Ruan  
Jian Xue Bao/Journal of Software, 2019,30(1):3-
Software Development Methods: Review and Outlook  
MA Xiao-Xing1,2  
, , , , , ,  
LIU Xuan-Zhe3,4 XIE Bing3,4 YU Ping1,2 ZHANG Tian1,2 BU Lei1,2 LI Xuan-Dong1,2  
1(State Key Laboratory for Novel Software Technology (Nanjing University), Nanjing 210023, China)  
2(Department of Computer Science and Technology, Nanjing University, Nanjing 210023, China)  
3(Institute of Software, School of Electronics Engineering and Computer Science, Peking University, Beijing 100871, China)  
4(Key Labortory of High Confidence Software Technologies of Ministry of Education (Peking University), Beijing 100871, China)  
Abstract: Software constitutes the infrastructure of an information society, and the production and utilization of software systems  
become a core competency. A software development method embodies a systematic set of processes and techniques enabling the  
engineering of software systems. This paper briefly reviews some most important software development methods thrived in the last five  
decades, including fundamental methods based on structured programming and modular development, object-oriented methods, software  
reuse and component-based methods, aspect-oriented methods, model-driven methods, and service-oriented methods. After that it gives an  
outlook with an introduction to the research efforts on Internetware and a call for future software development methods for emerging  
social-cyber-physical systems.  
Key words: software development method; review; outlook  
* 基金项目: 国家自然科学基金委-中国科学院学科发展战略研究项目:软件学科发展战略研究(XK2017XXC01)  
Foundation item: NSFC-CAS Joint Research Funds for Scientific Discipline Development Strategies, Software Science and  
Engineering (XK2017XXC01)  
本文由软件学科发展回顾特刊特约编辑梅宏教授、金芝教授、郝丹副教授推荐.  
收稿时间: 2018-07-31; 修改时间: 2018-08-09; 采用时间: 2018-09-29; jos 在线出版时间: 2018-11-22  
CNKI 网络优先出版: 2018-11-23 07:18:01, http://kns.cnki.net/kcms/detail/11.2560.TP.20181123.0717.004.html  
4
Journal of Softwar e 软件学报 Vol.30, No.1, January 2019  
随着计算机技术的飞速发展,软件的使能空间得到了广泛和持续的拓展,软件系统的规模和复杂性也随之  
不断增大,人类正在进入软件无处不在、软件定义一切、软件使能一切的时代.开发和演化软件系统,成为人  
类创造财富、延续文明的重要需求和途径.  
软件是人类制造的最复杂的一类制品,是人类大脑思维活动的体现.开发和演化软件系统需要方法,软件开  
发方法一般指件开发过程需要遵循的办法和步骤[1](件开发方法在英文中常使用两个不同的术语  
“Software Development Method”“Software Development Methodology”,后者亦常翻译为软件开发方法学.后者  
传统上更强调某种特定的覆盖整个软件开发周期的完整过程和技术体系,近年甚至常被误用为软件开发过程  
“Software Development Process”的同义词.本文在较宽泛的意义下讨论软件开发方法,并使用前一英译).长期以  
,软件开发方法的发展和演变归纳起来主要与 3 个方面相关联.  
·
·
·
其一是外在因素,包括运行环境(硬件、网络、外设的发展和普及)的驱动、应用需求的牵引、信息领  
域技术浪潮(例如近年来涌现的大数据、云计算、物联网、虚拟现实、人工智能等等)的推动;  
其二是内在动力,包括效率、质量和成本.解决软件系统规模和复杂性所导致的问题,从而高效、高质  
量、低成本地开发和演化软件系统,一直是学术界和工业界追求的共同目标;  
其三是人本属性.人是开发和演化软件系统的主体,软件开发和演化方法一方面要遵循人的认识规律,  
另一方面要能够充分激发、调动和管理人力资源.  
20 世纪 60 年代末提出软件工程概念至今已有 50 ,其间,软件开发方法取得了长足的发展,本文回顾  
50 多年来软件开发方法发展过程中的重要里程碑,包括基本方法(结构化程序设计块化方法)向对象方  
法、构件化方法、面向方面方法、模型驱动的方法、服务化方法等,进而对软件无处不在、软件定义一切、  
软件使能一切时代下软件开发方法的发展趋势进行展望.  
1
软件及其开发方法  
究其本质,软件乃是以计算为工具实现应用目标的解决方案.不同于一般物品,软件是一种人工制品[2],同时  
也是一种纯粹的逻辑制品[3].作为一种人工制品,其需以适应其所处环境的方式完成应用目标;作为逻辑制品,其  
困难不在于物理限制而在于逻辑构造.因此,软件开发活动本质上不同于传统工程制造.  
·
·
后者在于造物”;前者可谓拟人——即表达人脑思维形成的问题解决方案;  
后者可有规模效应;而对前者而言,每一个软件系统都是独一无二的创造.  
软件开发方法所讨论的是如何高效、低成本地构造高质量的软件,这也是软件工程学科的基本科学问题.  
Wirth 教授在回顾软件工程发展历史时写到:“如果我们能从过去学到什么的话,那就是计算机科学实际上是一  
门方法论学科[4].Brooks 在其没有银弹的经典演讲[5]中指出:究其本质而言,软件开发是一项困难的任务,而  
困难可区分为实质性的(essential)和附属性的(accidental).可以认为,前者来自于软件所要解决问题本身所固有  
的复杂性和多变性,而后者源自解决问题时所用技术手段和过程步骤方面的不妥.软件开发方法旨在消除附属  
性困难,并帮助开发者理解和驾驭问题本身的实质性困难.  
软件开发方法给出构造软件所需的系统化的过程步骤和技术手段.这种过程和技术的背后是用于指导软  
件开发这种创造性活动的思维模式.如前所述,软件是人脑力的替代,若把软件比拟为人,则开发方法的思维模  
式可比拟为软件系统的世界观方法论”.  
·
·
所谓世界观是指软件如何抽象其所处环境和应用目标;  
所谓方法论是指软件本身的范型抽象,包括:结构模型,即软件的组成元素、组合方式等静态构成形式;  
运行机理,即软件各组成元素动态运行及其间交互的机制和原理;构造方式,即如何通过层次化的问题  
分解和步骤分解来使系统构造成为高效可行的任务;质量保障,即如何定义并改善所构造软件满足目  
标的程度.  
纵观 50 年来软件开发方法研究和实践的发展状况,可以说对软件开发和使用中各方面复杂性的应对是其  
一个不变的主题.早期的结构化程序设计和模块化方法主要针对的是软件程序本身的复杂性,而后的面向对象  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载