下一代软件开发:数据智能驱动研发智能
伴随着新一代信息技术的研发和应用,互联网已经成为了基础设施,而大数据则成为了生产要素。人类社会从数字化、网络化向智能化时代迈进,对软件产业发展提出了产业升级换代的新要求,从基础、平台、算法到应用都将面临着一场全面的革新。在产业创新发展的过程中,以及未来的智能化世界,高质量软件都将扮演重要的角色。
近日,第七届“TiD2020质量竞争力大会”在京举行,众多国内外软件研发创新领域专家学者、行业领袖聚首,围绕软件产业高质量发展建言献策。
软件工程发展过程中有很多问题亟待解决
软件工程在发展过程中,计算机技术、软件开发方法、团队的组建和互动方式以及不断涌现的新一代应用程序都产生了巨大变化。基于需求的测试方法(RBT)创始人理查德·本德提到,软件工程发展过程中存在着很多问题亟待解决,如需求定义不清晰导致运行程序上的缺陷、跨地域分布团队的文化差异挑战、缺乏真正意义上的系统架构师、遗留的存量代码导致的技术债务等,如果不解决这些问题,就没有办法显著提高软件产业的生产质量和生产效率。真正的软件工作应该把重心放在需求、架构以及设计上。未来软件从业人员需要借助系统的方法和工具,不断提升专业程度,以强烈的紧迫感去解决现实问题。
专家表示,下一代软件开发,需要数据智能驱动研发智能。所谓的数据智能,指的是基于大数据引擎,通过大规模机器学习和深度学习等技术,对海量数据进行处理、分析和挖掘,提取数据中包含的有价值的信息和知识,使数据具有“智能”,并通过建立模型寻求现有问题的解决方案以及实现预测等。
在ITEA Technologies创始人兼首席执行官、华为美国研发能力中心原副总裁张大程看来,数据关联性是数据智能的基础,也是驱动软件研发智能的主要动力,研发大数据关联分析与应用可有效支撑数据智能化。而现有的软件研发模式缺乏自动化的质量评估机制,因此,他认为理想的研发模式是以最高效的方法,在正确的时间点给正确的人提供及时、正确的帮助,其中包括平台、管理、设计、开发、测试、解决方案、实验室等一系列环节的智能化。
张大程表示,实现软件研发过程整体智能化需要掌握17项关键技术,其中包含开放、自适应的研发工具平台设计,全面集成和自动化的质量管理系统开发等。他还强调,软件工程转型是一整套系统工程,需要结合学界的前沿成果与业界实践应用一起来突破。
独立软件开发顾问杰拉德·梅萨罗斯在软件开发方面有30多年从业经验,他指出,对软件中的最小可测试单元例如程序代码中的一个函数进行测试,能够有效提高代码质量,但不能直接提高整个系统的总体质量;端到端测试则是将应用程序与系统一同进行测试,是从用户角度验证整个系统的功能,看其从启动到结束是否全部符合用户预期。但是端到端的测试有一个弊端,就是这种测试往往是开发人员手动进行操作,自动化程度非常弱。通过业务实例驱动开发,让架构师、研发人员、测试人员在对用户场景有深入了解的基础上对软件进行设计,这样能够提高代码的简洁性、内聚性并减少耦合性,帮助正确的构建系统架构,可实现最大综合收益。此外,可执行的实例让业务人员、开发人员及产品技术负责人更容易理解和沟通。使用可执行实例,可以降低业务和开发人员之间的沟通成本。