ai人工智能语音分析系统
功能需求和用户案例为软件应用程序创建了蓝图。 一组好的需求可以在将业务构想转换为工作代码时简化开发人员的工作。 团队花费大量时间来收集用户故事并将其组织到需求中,以指导开发人员编写代码,但是通常会遗漏重要的细节,并且以略有不同的方式来复制重要的功能。
但是,AI和自然语言处理( NLP )现在更常用于在编写用户故事和需求时识别问题。 这些技术进步为业务提供了更清晰的反馈,进而向开发团队发送了更好的用户案例和要求。 它还可以帮助改进计划软件开发计划。
IBM的Engineering Requirements Quality Assistant 使用Watson在DOORS Next平台上管理需求分析。 ScopeMaster开发了一个独立的需求分析工具,可插入Jira,Azure DevOps和Pivotal Tracker。 这些工具有望补充AI的使用,从而改善应用程序开发工具的其他方面。
Lonnie Franks是一名独立顾问,自1978年以来一直管理大型软件项目。他说,良好的需求是成功的软件开发计划的最重要方面之一。 弗兰克斯(Franks)发现,由于需求缺陷,企业通常在大型项目上花费额外的60%来处理需求问题。 即使使用较小的敏捷开发周期,糟糕的需求也会造成各种类型的问题要解决。
Franks与ScopeMaster一起帮助分析需求,并相信AI需求分析将在如何改善小型和大型软件开发项目中扮演重要角色。
失败的根本原因
弗兰克斯(Franks)发现从1978年到2000年,在管理NCR(全渠道提供商)的软件开发时,需求质量有多么重要,在那里他从未有过失败的项目。 弗兰克斯(Franks)刚开始时,他是软件开发专家,但尚未掌握软件项目管理。 他的前任被解雇后,他被提升为工程经理。
弗兰克斯说:“知道自己只是合格的人,我努力学习如何不被解雇。” 他发现,大多数超过200万美元的项目失败的可能性大于成功的可能性。 他的主要发现之一是预先做好良好的估算是多么重要。 在较大的项目中,返工最终占总成本的60%。
弗兰克斯的第一个大型项目是在辛辛那提的一家大型银行,他告诉首席执行官,他们需要重做这些要求。 首席执行官很沮丧,但是在弗兰克(Frank)的团队花时间重做需求之后,他们按时,按预算交付了项目。 他的团队在前六个月中仅在超过200万行代码中发现了三个缺陷。 他说:“我知道正确制定需求并了解规模至关重要。”
增强软件分析
当Franks第一次听说使用AI进行需求分析时,他尝试使用ScopeMaster来确定项目的大小并发现问题。 他很快发现了150个缺陷,并在几天之内就提出了一系列清晰的要求。
弗兰克斯说:“给我留下深刻的印象,要花上几周的时间手动完成。” “我不仅获得了功能点数,而且还帮助我弄清楚应该在该项目上工作的程序员,业务分析师和测试人员的数量。”
这种AI驱动的分析擅长的领域是缺少需求识别。 弗兰克斯(Franks)发现,具有约1,000个功能点的项目应耗资约100万美元,并且要花一年时间执行,并且需要使用C#或Java编写约50,000行代码。
但是,这些项目也将有大约1000个需求缺陷。
他说:“这似乎是不可能的,但是由于我已经管理了数百万个项目的软件工程大约40年,所以最终是正确的。” 这些缺陷中有很多是缺少在程序中实现完整的Create,Read,Update,Delete操作集的要求。
弗兰克斯(Franks)发现他可以使用ScopeMaster在一周内发现和修复约500个缺陷。 他说:“如果您一周能解决一半的需求,那么您可能会突然按时按预算完成100%的需求。”
敏捷的不同缺陷
敏捷开发团队往往比瀑布式开发团队更有效率,并且通常能够开发更高质量的软件。 根据Franks的经验,敏捷团队每个功能点约有0.6个缺陷。 好消息是反馈更快,但是由于需求缺陷,敏捷项目也可能导致大量返工。 他说:“大部分返工与模棱两可的要求有关,而不是缺少要求。”
对于规模庞大的敏捷团队而言,这些问题更加复杂,因为在这些团队中,多个团队之间的协调非常困难。 团队可以集中需求以帮助协调需求,因为敏捷团队通常不会生成太多的共享文档。
Franks最近从事一个老虎机应用程序开发项目,该项目分布在多个团队中。 他发现他们实施了三个不同的字段,以保留有关三个不同团队实施的累积奖金的信息。 一旦确定了这一点,便让他们使用相同的名称,并将工作量减少了三分之一。 “一旦您始终使用术语,就不会有重复的工作。 有时使用敏捷有时会重复工作,因为您不知道哪些术语可能会不一致,”他说。
用户故事中的缺陷类型
这些需求分析工具中的NLP引擎评估用户故事的文本,然后将结果与集合中的所有其他用户故事进行交叉引用。 它从每个用户故事中检测功能意图。
ScopeMaster的首席执行官Colin Hammond说,他们在功能用户案例中发现了10种类型的缺陷。 如今,AI可以检测与歧义性,不一致,复杂性,重复性,遗漏性,可测试性和可伸缩性有关的缺陷。 但是,AI努力寻找缺陷,例如需求是否有效,设计负载大或最新。
需求缺陷的频率和影响因类型而异。 哈蒙德说,他们通常会发现遗漏比重复遗漏多七倍。 遗漏是导致项目超出原始预算,预算和时间表的原因。 歧义尤其有害,并且常常掩盖其他缺陷。 Hammond建议团队首先关注歧义需求。 然后,更容易消除任何后续暴露的缺陷。
仍处于起步阶段
使用AI分析和处理需求和用户故事仍处于初期阶段 。 弗兰克斯说,这些工具都不具有领域知识。 例如,当他从事银行的ATM项目时,这些工具无法捕捉到ATM的工作原理。
而且,他们无法将用户故事转换为代码。 尽管用户故事是需求的基础,但开发人员还必须了解非功能性需求和UI问题。 如今,AI需求分析工具擅长指导开发人员从用户案例中设置软件包,类和方法。 但是,其他类型的特定于平台的代码生成器可以帮助填补前端UI元素生成之类的空白。
翻译自: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-AI-can-help-with-requirements-analysis-tools
ai人工智能语音分析系统