卢 泉
(江苏龙威中科技术有限公司 江苏 连云港 222000)
软件开发是根据用户的要求,对整个软件系统或系统中软件部分进行建造的过程。计算机应用软件是可以人为操作的虚拟平台,能帮助人们完成大量的、复杂的工作任务,以提高工作效率和质量[1]。得益于自动化组装技术的发展,应用软件的开发从传统模式逐渐转变为自动化模式,在这个过程中节约了大量人力成本,不仅提高了软件生成效率,而且用户的个性化需求也得到了满足。尤其是人工智能(artificial intelligence,AI)的快速发展与进步,将其应用在软件开发上,重塑了开发流程,降低了专业门槛,甚至每个人均可以开发软件。在此背景下,软件开发人员应该积极适应新环境,一方面关注自动化技术的发展运用,把更多精力放到不易被自动化替代的领域;另一方面要从单一的程序或平台,转变为多种软件系统协同工作的模式。为此本文结合实践,对自动化开发技术在计算机应用软件开发中的运用进行探讨。
计算机应用软件的开发流程是:计划→分析→设计→编码→测试。其中,计划是了解现实环境和用户需求,论证项目可行性,初步制定开发任务。分析是对软件开发过程有一个大体设想,利用专业的开发语言精准表达出用户的需求。设计分为概要设计、详细设计2个阶段,前者注重整个结构,后者注重程序、算法、数据结构等。编码是把软件设计方案转变为计算机可识别的程序,是软件开发的核心环节。测试是为了发现软件开发中的错误,降低试错成本,完善软件功能,优化后期使用体验。
软件开发常用的方法有瀑布式开发、螺旋式开发(图1)、迭代式开发等。不论采用哪种开发方法,均要遵循以下原则:①规范性。应用软件的开发过程,要遵循客观规律,结合现实条件,满足技术标准要求,确保开发完成的应用软件能合理应用。在实践中,应用软件的开发既要满足用户的需求,又要考虑到用户的使用习惯,如此才能提高软件的实用性。②精简性。应用软件的结构和功能方面,在满足用户需求的前提下,不论是开发指令、还是操作步骤均要简化。一方面,在编码过程中能提高效率,减少人为性差错;另一方面在软件使用期间,方便进行维护、拓展与升级,扩大运行空间[2]。③方便维护。应用软件在开发中,方便维护也是开发人员要考虑的问题。要想做到这一点,应合理设计接口,预设维护方式,方便与系统、其他软件相对接,最大程度上降低软件的维护难度。
图1 应用软件螺旋式开发模型示意图
计算机应用软件的自动化开发,主要包括组件开发、流程设计、系统安装3个环节。要求开发人员结合实际情况,对各个环节的工作加强控制,以保证软件开发质量。
对应用软件进行拆分,能得到多个系统组件,因此应用软件的自动化开发,重点在于这些组件的开发设计。一方面,开发人员要满足用户的具体需求;另一方面,要分析软件的类型,选择合适的自动生成方式。组件开发的技术要点包括:1)整合信息数据资源,将其建成数据库,确保组件自动生成期间需要的数据资源均在其中。2)设计组件自动生成程序,系统按照这个程序规范执行,就能完成组件的生成任务。3)开发人员根据实际需求,设置关键技术参数,确保组件功能正常运行。4)在测试过程中,检验组件的功能、安全性、稳定性,及时发现问题缺陷,在此基础上进行修改、完善。
如今,信息技术已经在各行各业普及应用,改变了人们的生活习惯。由于数据信息更加复杂,呈现出海量增长趋势,应用软件的运行流程也变得复杂,提高了软件开发人员的工作难度。针对这一问题,开发人员应优化软件的流程设计,提高自动化开发效率和质量。虽然应用软件的类型不同,但功能操作上具有共性,通过控制关键技术节点,实现软件的运行功能。基于此,开发人员在应用软件自动化开发过程中,首先要了解软件的运行流程,然后对流程进行调整与优化,在满足用户使用需求的同时,提高软件的运行可靠性[3]。
应用软件开发完成后,可采用自动化技术进行安装,在这个过程中技术人员进行监督管理即可。考虑到应用软件的自动化开发技术尚不成熟,完全放手自动化安装可能会出现问题,监督管理的目的是及时发现问题,并采取有效的处理方法。向计算机系统安装应用软件时,应注意格式转换,确保系统与软件具有良好的相容性,以便应用软件的功能全面发挥出来。以防火墙为例,安装软件时必须获取运行权限,否则会影响软件的安装与运行。
计算机应用软件的自动化开发,需要对应的开发平台,主要包括业务组件生成器、业务组件设计流程器、应用系统组装器。
业务组件生成器由4个部分组成:数据库、处理体制、拓展机制和图像化输入界面。业务流程会产生大量数据信息,处理体制可对组件进行自动化生成、执行和存储。图像化输入界面中,则记录了业主的基本信息,如个人资料、服务内容等。
业务组件设计流程器的功能,是设计、管理业务流程,由应用库、管理流程、图形化业务流程设计界面构成。其中,应用库主要用来存储应用程序,记录了流程细节,能实现软件应用功能。结合实践,应用库分为多种类型,如Java、Web、脚本、外部应用等。管理流程负责各种业务流程的管理,还能对流程细节提供优化方案,促使业务流程更加符合用户的实际情况。一般来说,会根据用户的需求和要求,对管理流程设限,加入内置应用有助于进行个性化开发,并且拓展应用形式。
应用系统组装器具有媒介作用,应用软件在配置过程中,可将各个部位的软件联系起来,方便统一管理。该组装器围绕着业务流程,在关键工作点上进行安装,一方面能实现各个软件的信息共享,另一方面可以提高组装效率。
AI是计算机科学的一个分支,将其运用在应用软件的开发中,能进一步提高软件开发技术的可行性,降低软件维护工作难度。以神经网络(neural networks,NNs)、专家系统、人工免疫、Agent技术为例,在计算机应用软件开发中的运用进行介绍。
NNs的本质,是大规模并行分布处理器,具备多个信息处理单元模块,这些单元模块既可独立运行,也能协同运行[4]。在信息组织、处理、存储等功能上,NNs与人脑的作用类似,能对不同类别的信息进行同时处理。将其运用在应用软件的自动化开发上,能显著提高工作效率,高信息安全程度,以及能精准识别可能出现的安全风险。在应用软件开发过程中,基于NNs的支持下,将循环网络、入侵检测、多层感知等新技术运用其中,能建成完善的入侵检测NNs系统,提高风险识别速度和检测功能的精准度。
专家系统是一个智能化的程序系统,包含了大量专家水平的知识与经验,通过推理判断做出科学的决策,从而解决复杂问题,其控制原理如图2所示。专家系统在应用软件自动化开发中的运用,集中在设置误用分析环节,能进一步完善入侵检测系统,对用户的操作进行实时监测,从而保证软件稳定运行,优化用户的使用体验。以NIDIS技术为例,采用新型统计计算方法,可对应用软件的异常操作进行检验,具有丰富的入侵场景编码和分析模型。通过收集用户的操作行为数据,与数据库中的数据进行比对,超过阈值就判定为入侵行为,及时开启安全防护系统,保证软件开发运行环境的安全性。
图2 专家系统的控制原理图
计算机网络是一个庞杂的结构,由于数据信息海量化,网络管理工作具有较高的难度。因此,应用软件在开发与运行环节,威胁安全性的因素较多。人工免疫以病毒识别与杀毒为核心,进一步增强了识别与杀毒功能,确保软件开发环节不受影响,提高软件的后续运行效率,保护相关数据信息。人工免疫技术在实际运用中,主要包括否定选择、克隆选择、基因库3个环节。其中基因库的作用是在软件运行中,对入侵行为进行检测,在反复训练中提高病毒识别能力。当同样的病毒再次出现时,就能精准识别,提高软件的安全防护性能。
Agent技术是解决新的分布式应用问题的有效途径,利用传感器感知应用软件所处的环境,促使各项任务自动化执行,并根据外界环境的变化做出针对性的反应。Agent技术常用于软件安全防御系统中,能感知各类软件的运行情况。在应用软件的自动化开发环节,Agent技术的运用能优化流程设计,提高软件的环境感知能力,及时准确识别安全隐患,确保自动化开发任务顺利执行[5]。在服务器上安装Agent插件后,安全防护功能进一步提高。Agent插件用于安全防护的功能对比,见表1。
表1 Agent插件用于安全防护的功能对比
集成测试自动化框架(integrated test automation framework,ITAF)能满足应用软件的接口测试与功能测试要求,这在以往实践中已经得到验证[6-7]。本文基于TestStack.White技术下搭建ITAF,可实现软件测试过程的自动化,成为应用软件自动化开发中的一个得力助手。
以某计算机应用软件为例,使用ITAF进行自动化测试,显著降低了测试成本。值得注意的是,由于应用软件中有部分场景不适合自动化测试,因此自动化测试的覆盖率无法达到100%。将ITAF用于自动化测试,首先要由专业技术人员进行开发,消耗时长约为480 h;开发后执行自动化测试,消耗时长平均为8 h,相较于人工测试具有明显优势,ITAF测试与人工测试的耗时比较见表2。分析可见,运用ITAF自动化测试的计算机应用软件,能明显降低人力成本,缩短项目的开发周期。
表2 ITAF测试与人工测试的耗时比较
TAF是早期的一套自动化测试系统,与ITAF相比不支持API测试、不支持框架自身单元测试,总体性能一般[8]。在ITAF应用之前,应用软件接口测试一般使用SoapUI工具,整个测试过程分开、独立进行,然后经系统集成,导致整个测试过程操作复杂,成本较高。ITAF的运用弥补了TAF的缺陷,测试过程自动化、一体化完成,同等规模的测试用例下花费的时间更短。在实际测试项目中,UI冒烟测试选择100个用例,TAF用时约为6 h,ITAF用时仅需1 h;端到端回归测试选择1 000个用例,TAF不支持自动化测试,ITAF用时为2 h;API冒烟测试选择50个用例,TAF用时约为1 h,ITAF用时仅需0.1 h;API回归测试选择4 000个用例,TAF用时约为80 h,ITAF用时仅需5 h。ITAF与TAF的应用效果比较,见表3。
表3 ITAF与TAF的应用效果比较
综上所述,将自动化开发技术运用在计算机应用软件的开发上是一个重要发展趋势,能提高开发工作效率,提供更加安全地开发运行环境。本文介绍了应用软件自动化开发方法和开发平台的构建,旨在为同业人员提供参考。
在未来,随着AI技术的进一步发展,以NNs、专家系统、人工免疫、Agent技术等为代表的AI,在计算机应用软件开发、运行与维护中的运用更为广泛,可实现降本增效的目标。