2019, 30(1):1-2. DOI: 10.13328/j.cnki.jos.005653 CSTR:
摘要:
马晓星 , 刘譞哲 , 谢冰 , 余萍 , 张天 , 卜磊 , 李宣东
2019, 30(1):3-21. DOI: 10.13328/j.cnki.jos.005650 CSTR:
摘要:软件是信息化社会的基础设施,而构造并运用软件的能力成为一种核心竞争力.软件开发方法凝结了系统化的软件构造过程和技术.简要回顾了50年来软件开发方法发展历程中具有重要影响的里程碑,包括基于结构化程序设计和模块化开发的基本方法、面向对象方法、软件复用与构件化方法、面向方面的方法、模型驱动的方法,以及服务化的方法.而后针对Internet的发展普及以及人机物融合应用对软件开发方法提出的挑战,介绍了网构软件的研究和探索,并展望未来人机物融合的软件方法和技术.
2019, 30(1):22-32. DOI: 10.13328/j.cnki.jos.005648 CSTR:
摘要:系统软件是计算学科的基本概念之一,从系统软件的本质特征、时代特点和发展趋势这3个方面给出了关于系统软件的新洞察.洞察1认为,通用图灵机和存储程序思想是系统软件的理论源头和技术源头,其本质特征是"操纵计算系统执行",编码加载和执行管控是两种主要的操纵方式.洞察2认为,系统软件在互联网时代的时代特点是持续在线提供基础服务,为"软件即服务"的新型应用模式奠定了基础.洞察3认为,系统软件的发展趋势是持续在线演化,在计算系统创新、信息物理融合和智能技术的推动下,将成为未来软件生态的核心.
2019, 30(1):33-61. DOI: 10.13328/j.cnki.jos.005652 CSTR:
摘要:形式化方法是基于严格数学基础,对计算机硬件和软件系统进行描述、开发和验证的技术.其数学基础建立在形式语言、语义和推理证明三位一体的形式逻辑系统之上.形式化方法已经以不同程度和不同方式愈来愈多地应用在计算系统生命周期的各个阶段.介绍了形式化方法的发展历程和基本方法体系;以形式规约和形式验证为主线,综述了形式化方法的理论、方法、工具和应用的现状,展示了形式化方法与软件学科其他领域的交叉和融合;分析了形式化方法的启示,并展望了其面临的发展机遇和未来趋势.形式化方法的发展和研究现状表明:其应用已经取得了长足的进步,在提高计算系统的可靠性和安全性方面发挥了重要作用.在当今软件日益成为社会基础设施的时代,形式化方法将与人工智能、网络空间安全、量子计算、生物计算等领域和方向交叉融合,得到更加广阔的应用.研究和建立这种交叉融合的理论和方法不仅重要,而且具有挑战性.
2019, 30(1):62-79. DOI: 10.13328/j.cnki.jos.005645 CSTR:
摘要:工程化软件开发需要对软件开发整个过程进行有效的组织和管理,由此产生了一系列软件开发组织和管理方法,其主要目的是形成一种载体,用以积累和传递关于软件开发的经验教训.然而,由于软件开发的一些天然特性(比如复杂性和不可见性)的存在,使得描述软件开发过程的软件开发与组织方法也天然地带着一定的抽象性.由此带来了很多概念上的误导和实践中的争论,影响了上述目的的达成.例如,对于究竟该如何选择和定义合适的软件开发过程以更好地满足某个特定项目的要求,目前仍然缺少可靠的手段.甚至有些面向工业界的调研报告表明:在实际软件项目开发中,过程改进(例如引入新的工具或者方法)的主要驱动力是佚闻.试图厘清软件组织与管理话题的若干核心概念,系统梳理软件组织和管理方法的特征,并且以软件发展的历史为主线,介绍软件组织与管理方法的历史沿革,整理出这种历史沿革背后的缘由.在此基础上,讨论和总结若干发现,以期为研究者和实践者提供参考.
张健 , 张超 , 玄跻峰 , 熊英飞 , 王千祥 , 梁彬 , 李炼 , 窦文生 , 陈振邦 , 陈立前 , 蔡彦
2019, 30(1):80-109. DOI: 10.13328/j.cnki.jos.005651 CSTR:
摘要:在信息化时代,人们对软件的质量要求越来越高.程序分析是保障软件质量的重要手段之一,日益受到学术界和产业界的重视.介绍了若干基本程序分析技术(抽象解释、数据流分析、基于摘要的分析、符号执行、动态分析、基于机器学习的程序分析等),特别是最近10余年的研究进展.进而介绍了针对不同类型软件(移动应用、并发软件、分布式系统、二进制代码等)的分析方法.最后展望了程序分析未来的研究方向和所面临的挑战.
2019, 30(1):110-126. DOI: 10.13328/j.cnki.jos.005643 CSTR:
摘要:程序理解是软件工程中的关键活动,在软件开发、维护、重用等任务中发挥着重要的作用.程序理解自软件工程出现以来,就一直是该领域的研究热点.随着软件应用的日益复杂和不断普及,程序理解研究的需求发生了新的变化,程序的自理解或自认知逐渐成为新的关注点,有必要对程序理解进行重新审视.从工程、学习和认知以及方法和技术这3个角度定位程序理解任务;随后,通过文献分析展示其研究布局,进而分别从认知过程、理解技术以及软件工程任务中的应用这3个方面,综合论述程序理解研究的发展脉络和研究进展.
2019, 30(1):127-141. DOI: 10.13328/j.cnki.jos.005644 CSTR:
摘要:大数据管理技术正在经历以软件为中心到以数据为中心的计算平台的变迁,传统的关系型数据库管理系统无法满足现在以数据为中心的大数据管理的需求,设计新型大数据管理系统迫在眉睫.首先回顾了数据管理技术的发展历史;之后,从大数据管理的存储、数据模型、计算模式、查询引擎等方面分析了大数据管理系统的现状,指出目前大数据管理系统具有模块化和松耦合的特点,并进一步介绍了大数据管理系统应具备的数据特征、系统特征和应用特征,指出大数据管理系统技术还在快速进化之中,预测未来的大数据管理系统应具备多数据模型并存、多计算模式融合、可伸缩调整、新硬件驱动、自适应调优等特点.
2019, 30(1):142-163. DOI: 10.13328/j.cnki.jos.005649 CSTR:
摘要:数据库是数据管理的技术,是计算机学科的重要分支.经过近半个世纪的发展,数据库技术形成了坚实的理论基础、成熟的商业产品和广泛的应用领域.数据模型描述了数据库中数据的存储方式和操作方式.从数据组织形式,可以将数据模型分为结构化模型、半结构化模型、OLAP分析模型和大数据模型.20世纪60年代中后期到90年代初,结构化模型最早被提出,其主要包括层次模型、网状模型、关系模型和面向对象模型等.20世纪90年代末期,随着互联网应用和科学计算等复杂应用的快速发展,开始出现半结构化模型,包括XML模型、JSON模型和图模型等.21世纪,随着电子商务、商业智能等应用的不断发展,数据分析模型成为研究热点,主要包括关系型ROLAP和多维型MOLAP.2010年以来,随着大数据工业应用的快速发展,以NoSQL和NewSQL数据库系统为代表的大数据模型成为新的研究热点.对上述数据模型进行了综述,并选取每个模型的典型数据库系统进行了性能的分析.
崔斌 , 高军 , 童咏昕 , 许建秋 , 张东祥 , 邹磊
2019, 30(1):164-193. DOI: 10.13328/j.cnki.jos.005646 CSTR:
摘要:随着各类新型计算技术和新兴应用领域的浮现,传统数据库技术面临新的挑战,正在从适用常规应用的单一处理方法逐步转为面向各类特殊应用的多种数据处理方式.分析并展望了新型数据管理系统的研究进展和趋势,涵盖分布式数据库、图数据库、流数据库、时空数据库和众包数据库等多个领域.具体而言:分布式数据管理技术是支持可扩展的海量数据处理的关键技术;以社交网络为代表的大规模图结构数据的处理需求带来了图数据库技术的发展;流数据管理技术用来应对数据动态变化的管理需求;时空数据库主要用于支持移动对象管理;对多源、异构而且劣质数据源的集成需求催生出新型的众包数据库技术.最后讨论了新型数据库管理系统的未来发展趋势.