首页 > NSE简介 > NSE故事
NSE故事


软件工程的发展与面临的挑战 


       今天,软件几乎无所不在,是我们学习、工作、生活和娱乐的伴侣,现代社会文明的基础,现代科学、工程、工商业发展的驱动力量。


会出现以下问题:

(1)质量往往不达标甚至项目失败

(2)生产率低

(3)开发成本高

(4)难以进行产品的修改维护 -- 在需求变更的实现过程中往往引起副作用


现有软件工程存在的问题:

(1)现有软件工程基于还原论:认为系统的整体就等于其局部之和

(2)采用了线性单向增量、迭代模型,线性单向软件开发模型违反了人的自然本质

(3)采用从顶向下的线性与定性软件开发方法, 几乎都不支持软件维护

(4)现有不可执行、不可动态测试的软件建模

(5)测试体系存在的问题,一是时机不对,二是知其然不知其所以然

(6)现有软件质量保证体系存在问题,是重在事后而不是事前解决问题

(7)现有软件维护体系存在的问题,文档与源代码分割、没有双向可追溯性机制支持下进行的




NSE体系产生与发展背景

(1)20世纪九十年代初在美国创立国际软件自动化公司,从事软件测试和质量管理,研制的产品Hindsight是当时业界最好的产品,曾被太阳微系统公司选为除了操作系统之外的软件测试工具。

(2)二十世纪九十年代中旬,第二代: Panorama (“全景”),被《软件工程 实践者的方法》作者Pressman誉为“提供了面向对象软件开发完整的工具集”。

  用户包括: SUN Microsystems, IBM Japan, HP/HP Japan, SONY, NTT, 富士通, 三菱,Nikon,CANON,西门子,东芝等许多大公司。

(3)进入二十一世纪,推出了Panorama++(“全景++”)/艾赛银弹,在国内中国船舶重工集团公司第701研究所(又称中国舰船设计研究中心)、中国航空研究院602研究所、上海航天局809研究所等应用。


图1:NSE体系建立的理论体系之一关于非线性软件工程体系的两本专著


Computer Science”一书的论文:

(1)Nonlinear and Quantitative Software Engineering Method Based on Complexity Science  

(2)Transparent-Box Method Combining Structural and Functional Software Testing together Seamlessly 

(3)Automated Generation of Software Documents Consistent with and Traceable to and from Source Code 




NSE体系简介

       系统科学研究系统的共同本质,揭示系统的结构、演化、协同和控制的一般规律。美籍奥地利生物学家贝塔朗菲(Ludwig Von Bertalallffy)认为,“系统科学继相对论和量子力学之后,又一次彻底改变了世界的科学图景和当代科学家的思维方式”,他的观点已经广泛为科学界所接受。复杂性科学是系统科学研究的最新、最重大进展,被誉之为“21世纪的科学”,是“科学的前沿,而不仅仅是学科的前沿”。复杂性科学是研究非线性复杂系统的科学,通常采用隐喻类比、模型建构、数值计算、虚拟仿真、综合集成等研究方法。


       NSE方法体现了复杂性科学的一系列原则,特别是其非线性原则、整体性原则、动态性原则、自组织原则以及自适应原则。NSE方法和整个NSE体系的创立目的,是要全方位解决软件现有工程体系所存在的一系列严重问题,突破还原论的思维局限,推动21世纪基于复杂性科学的多、快、好、省软件开发!现有的软件工程体系基于还原论,采用线性瀑布模型或者线性单向增量、迭代模型等,没有双向可追溯性机制支持,文档与源码被割裂而难以保持一致,需求的实现难于确认,需求的修改、源码的修改、变量的修改均不得不线性地、局部地和定性地进行,不知道会影响到哪些需求和几个需求的实现、几个相关文档、几个其他程序模块与几个全局与静态变量的正常工作等,因而每一次修改都有20-50%的可能引入新的缺陷。

       

       NSE体系和NSE方法包括其产品化支撑平台艾赛银弹/Panorama(全景)++要实现的目标,是在相同条件下,与现有的软件工程体系相比,能帮助软件开发组织同时实现效率加倍、成本减半、所开发的软件产品质量提高几个数量级,主要通过:

      (1)全过程的软件缺陷主动预防以及软件缺陷传播的主动预防(在缺陷源排除缺陷);

      (2)基于复杂度分析的软件重构(通常20%高复杂度的模块往往含有80%的软件缺陷),在重构时通过一系列双向可追溯性预防副作用的发生;

      (3)软件开发全过程及其工作产品的可视化;

      (4)把功能测试与结构测试融合在一起的深度与广度的软件测试和量化质量度量,并实现软件维护的系统化、量化和规范化。


       基于局部和整体共同决定系统的行为与特性的复杂性科学观点,NSE方法把任何局部的修改(哪怕只修改了一行源码)都视为对整个软件系统的修改,都要通过一系列双向自动可追溯性技术定量(而不是定性)地找出它涉及几个软件需求的实现、可能影响到几个软件模块功能的正常工作、关系到几个有效的测试用例等,从而预防软件修改可能引起的不一致性缺陷的发生,并通过逆向追溯和测试用例有效性分析与最小等价测试用例集生成,实现软件修改后的回归测试的智能化。


       NSE体系本身相当完整(见图2),由10个主要部分组成,包括NSE 非线性与定量软件开发方法、NSE 所基于的一系列软件工程创新技术、NSE基于透明盒测试法的软件测试体系、NSE非线性与整体性和可执行软件建模体系、NSE基于缺陷预防的软件质量保证体系、NSE 自动化文档体系、NSE 非线性与整体性和定量软件维护体系、与软件开发过程融为一体的NSE项目管理体系、NSE体系的实施支撑平台艾赛银弹/全景++、NSE层次化可增量更新的大数据处理与可视化体系,而其核心就是NSE非线性与定量软件开发方法。


图2:NSE体系构成以及相关含义


       2015年7月,NSE体系被我国软件行业智联联盟标准委员会选为新的软件工程标准,并指定熊继光代表上海艾赛软件科技有限公司和常州伯文软件科技有限公司组织力量详细制定(见图3),2015年8月NSE体系的实施支撑平台Panorama++/艾赛银弹还通过了该标准委员会组织的专家鉴定会的鉴定。


图3:NSE体系被我国软件行业智联联盟标准委员会选为新的软件工程标准


图4:NSE体系的实施支撑平台Panorama++/艾赛银弹通过了专家鉴定会的鉴定



Copyright © 2016 常州伯文软件科技有限公司 版权所有 网站地图    常州网络公司中环互联网网站建设