11.2.4 需求文档的自动生成
根据前面两个小节:需求工程语义分析,需求文档标记、标签化的介绍,相信读者已经对需求文档的自动生成有了一定的灵感,对需求文档的自动生成有了更多的憧憬,想要了解更多信息。别着急,此小节将重点介绍需求文档的自动生成。
随着科技的进步,人工智能、机器学习、深度学习等技术的发展,相信读者都冒出过类似于“软件‘自动生成’”这类想法。实际上,在当今社会,软件发展的各个方面都有着自动生成的“信号”,例如测试用例自动生成、代码自动生成等,这些名词相信读者都对其有一定耳闻。
然而,本书要提出的就是需求文档自动生成。目前,软件工程领域并没有比较出色或完备的软件自动化工具(平台),需求文档的自动生成无疑是软件需求工程在人工智能应用的一个重要里程碑,需求文档的自动生成不仅能够为需求人员减少一大部分的文档编写工作量,而且能够提高文档编写规范性、完备性,进而提高软件开发全过程的效率。
文档自动生成是自然语言处理的一个研究难点,文档自动生成的研究是一个需要一定的需求数据、需求应用场景前提下才能完成的工作,而且需要采集需求各方面的要素,进行配合才能完成。前面章节提到的需求数据收集、标记化、标签化都为文档的自动生成提供了实际基础。当然,在这整个需求过程中,借助一个需求工具(平台)无疑能够帮助获取汇总需求要素,促进需求文档有效快捷的自动生成。
实际上,需求文档的自动生成的确需要借助平台的支撑才能发挥重要的作用。平台工具能够将需求文档模板的标记、标签结果固化,用户可以在需求平台上按照向导完成需求分析的所有流程、要素,在其过程中可以根据实际情况进行取舍。根据实际的需求业务场景,用户只需在需求平台中统一地填写需求各个阶段对应的内容,需求平台便能够智能化地为用户提供业务建模和系统建模等各种工具,用户根据向导完成对应的业务需求分析,当用户在平台上完成整个需求分析流程后,点击“完成”按钮,就可以直接借助需求文档模板,生成最后的需求相关文档。当然,在整个过程中,用户可以根据实际业务需求转换标签、标记,生成符合业务场景的需求报告。(https://www.daowen.com)
那么讲到这里,读者肯定会问:那需求分析报告是一成不变的吗?需求文档的维护怎么进行呢?实际上,需求文档自动生成的内容完整度是不断增加的,在初始阶段,需求工具能够辅助自动生成主体的文档内容,用户只需填写少数的补充描述内容即可得到一份完整的需求文档。
然而,随着需求文档的不断生成,需求平台会积累各种不同业务的需求相关文档,这就为需求文档库的建立提供了一定的基础,需求文档库的建立又能够进而为用户提供更加完善的需求文档自动生成工具。
经过时间的积累、文档的沉淀,整个需求文档库中会有海量的需求相关文档(包含了需求分析报告和需求规格说明书)。有了海量数据的支持,在各种机器学习框架的基础上,可以对需求文档按照不同业务领域进行聚类(或分类),具有相似度的某一部分文档会被归纳为一个业务类别。在实际的软件开发中,有不同类型的系统开发,如管理系统,工作流引擎,申报系统等,不同类别的系统重点不同,分类后用户可以有规划的在具体的类别中找寻关键信息进行标签的替换填充。在完成一个实际业务过程中,用户也可以提取同类别的共性元素,补充特性,进而提高文档自动生成的完成度。当然,需求文档库的建立也能够为后续章节将介绍的基于语义的智能推荐提供基础条件。
根据前几章的讲解,相信读者能够清楚地知道需求分析报告和需求规格报告书具体是由哪些部分组成,每个部分的重点要素是什么。但是因为实际业务情况,每个项目的侧重点不同,每一份需求文档可以适当地对各个章节进行调整,突出重点。因此,文档自动生成可以根据用户的实际需求生成相应内容的文档,这也使得自动生成的文档具有普适性。
任何一篇需求分析文档都有着自己的中心和主题,需求平台可以根据每个系统的特性,附加上用户的选择方式,生成适合用户需求的需求文档。软件需求工程文档的自动生成将成为软件工程与人工智能结合的一个突出产物,不仅能够增加软件文档的复用率,也促进了人工智能与软件工程其他阶段(如:设计阶段、开发阶段、测试阶段、运维阶段)的结合。最终,实践出能够实际解决软件开发过程中出现的问题的路径方法。