AI概要设计文档评审实践

759 阅读14分钟

背景

概要设计文档评审是软件开发过程中的一个重要环节,主要体现在以下几个方面:

1.确保设计的一致性和完整性:

通过评审,可以确保设计文档中描述的系统架构、模块划分、接口定义等内容在各个部分之间保持一致,避免出现相互矛盾或遗漏的情况。

评审过程有助于发现设计中的潜在问题,如数据流不一致、模块功能重叠等,从而及时进行修正。

2.提升设计质量:

评审过程中,来自不同背景和专业的团队成员可以提出各自的见解和建议,有助于发现设计中的不足之处,提升设计的质量和可行性。

通过集体智慧和经验,可以优化设计方案,提高系统的性能、可靠性和可维护性。

3.降低开发风险:

早期发现设计中的潜在问题,可以在开发阶段之前进行修正,避免在后期开发过程中出现重大变更,从而降低开发成本和风险。

评审还有助于识别可能存在的技术难点或挑战,提前进行技术准备和攻关。

4.促进团队协作与沟通:

评审过程是一个团队协作和沟通的过程,有助于增强团队成员之间的理解和信任。

通过评审,团队成员可以更加清晰地了解项目的整体设计和各自的任务分工,为后续的开发工作打下良好的基础。

5.满足项目管理和合规要求:

评审是项目管理中的一个重要环节,有助于确保项目按照预定的进度和质量要求进行。

在某些情况下,评审还是满足行业规范、客户要求或法律法规的必要步骤。

提示词

接下来,我们来看,使用AI辅助我们概要设计文档评审的过程。

您是软件工程评审专家,请根据上传的《概要设计说明书模板v1.0.docx》文件为基准,为我之后上传{项目概要设计}评审进行评审,结合IT行业反馈详细建议与存在的问题。
评审维度:
一.系统总体设计(系统总体相关架构设计及说明)
二.系统架构设计
设计过程及要点:系统架构主要分为横向设计和纵向设计。
横向设计关注系统内部不同功能模块之间的关系和交互。它包括分为渠道层、展示层、应用层、平台层、数据层、基础层、管理体系、服务体系、标准体系等,通过模块化和层次化的设计,实现系统的灵活性、可维护性和可扩展性。
纵向设计关注系统层次结构和组件之间的层次关系。它包括以下方面:
层次间的依赖关系:定义各个层次之间的依赖关系,确保高层次的模块依赖于底层的模块,实现各层次的解耦。
模块和组件的划分:将系统划分为不同的组件,并定义组件之间的接口和关系。
组件复用和扩展:设计可重用的组件,以便在不同系统中进行复用,并支持系统的扩展和定制化。横向设计和纵向设计相互关联,通过模块化和层次化的设计,实现系统的灵活性、可维护性和可扩展性。横向设计关注系统内部的模块之间的协作和交互,而纵向设计则关注系统整体结构和层次关系。两者共同构成了系统架构设计的完整框架。
三.技术架构设计
设计过程及要点:技术架构设计是构建稳定、可靠、高性能、可扩展软件架构的基础,也是将业务需求和系统功能转变位技术实现的过程,涉及技术架构规划、技术选型、架构制图等,设计过程包含以下:

  1. 技术架构规划:分析系统需求(功能/非功能),明确架构设计上下文,确定技术架构模式(如:单体、SOA、微服务等);
  2. 技术选型:结合技术架构模式、平台类资源、团队技术情况以及技术发展趋势,规划架构中可能涉及到的技术框架/平台、中间件、缓存、消息队列、数据库等;
  3. 架构制图:一般采用分层结构描述技术架构,根据需要体现每层中使用的技术框架(栈)、技术路线,层间需要体现通信协议,可以采用信息流、控制流分别展示。
    四.集成架构设计
    设计过程及要点:集成架构综合应用架构(应用集成部分)和技术架构(技术集成部分)的内容,主要体现整个软件架构内外的集成(依赖)关系以及信息流向,设计过程包含以下:
  4. 应用集成关系梳理:梳理应用/微服务、外部系统/服务清单,根据用户信息/控制流向梳理集成关系;
  5. 技术集成关系梳理:结合技术架构补充应用/微服务、外部系统/服务的通信方式。
    五.部署架构设计
    设计过程及要点:部署架构设计是用来规划软件系统中软件和硬件的物理架构。可以通过部署架构设计过程了解到软件和硬件组件之间的物理关系以及处理节点的组件分布、网络拓扑等情况,可以显示运行时系统的结构,同时还传达构成应用程序的硬件和软件元素的配置和部署方式。
    六.数据架构设计
    设计过程及要点:DCMM(数据管理能力成熟度评估模型)中对数据架构的定义:通过组织级数据模型定义数据需求,指导对数据资产的分布控制和整合,部署数据的共享和应用环境,以及元数据管理的规范。包括数据模型、数据分布、数据集成与共享、元数据管理4部分
    数据流设计可以采用数据流图的方式进行设计和展现,它从数据传递和加工角度,以图形方式来表达系统的逻辑功能、数据在系统内部的逻辑流向和逻辑变换过程。
    数据模型设计通过明确系统对数据的需求,包括需要存储和处理哪些数据,以及数据之间的关系,绘制实体关系图,明确实体(表)之间的关系、属性和约束条件。数据模型的设计过程中,需要考虑数据的定义和语义,这部分通过元数据来体现,元数据可以记录数据模型中的实体、属性、关系、约束等元素,帮助维护数据模型和数据的一致性。
    七.系统功能设计
    子系统/微服务1功能设计
    系统/集成架构设计
    技术架构设计
    部署架构设计
    核心业务流程/数据流图/状态图
    数据库设计
    子系统2功能设计
    八.性能需求设计
    九.安全需求设计
    系统安全设计
    网络安全设计
    数据安全设计
    密码安全设计
    日志体系设计
    十.高可用设计

Tips:《概要设计说明书模板v1.0》是公司软件工程委员会多人审核确定的 通用 概要设计文档模板,包含图例

ChatGPT 4o

image.png

AI反馈评审建议

image.png

AI对设计文档自动评分

image.png

评分提示词

请以上传的评分标准 结合之前上传 《概要设计说明书模板v1.0》,对{}文档 进行评分

测试

请以上传的打分标准 结合之前上传 《概要设计说明书模板v1.0》,对《设备控制系统软件设计说明书》进行打分

image.png

架构图评审

在这儿我们已经创建了智能体【系统架构与概要设计评审助手】,基于通义千问大模型,在下一节我们将介绍 智能体提示词,此场景测试的提示词如下

请评价上传的系统架构图,架构描述:“应用管理模块:如图应用管理,提供各类轻应用及服务调用接口。平台管理模块(橘色):提供维护配置运行参数、角色权限控制、客户管理等。对账中心模块(绿色):提供对外系统的对账,以及内部各类账户的对账,确保资金流向的正确性,异常时可预警,并能对异常情况进行处理。支付核心模块(流转管理):对交易的整个生命周期进行管理、监控,提供交易单统计、明细查询功能。账户管理模块: 提供账户分类,资料查询,注册,实现对个人的各类账户绑定监控预警模块:制定风控规则,对支付过程中的资金交易进行安全控制 ”

image.png

架构图评审

继续架构图评审

提示词

还有第2张外部关系架构图,请结合第一架构图继续评审反馈建议,描述如下: {统一认证:统一认证平台,作用于支付平台、风控平台、数据大屏等。(暂缓) 消息平台:统一消息接收、发送、管理 第三方应用:调用支付平台的第三方应用,主要定位在支付平台的管理平台进行应用管理的应用。 第三方支付渠道:各银行产品、银联,支付宝,微信等,统称第三方支付渠道}

image.png

继续架构图评审

智能体

国内主流智能体有哪些, 国内很多大厂都加入了大模型智能体创作。

通义千问

tongyi.aliyun.com/qianwen/age…

文心智能体

agents.baidu.com/

豆包智能体

www.doubao.com/

元器大模型

yuanqi.tencent.com/

Kimi智能体

kimi.moonshot.cn/

核心提示词

角色

你是一位专家级的系统架构与概要设计评审专家,专注于帮助用户设计和优化系统架构,确保其高效、安全且易于维护。你在评审过程中始终保持乐观的态度,用严谨的语言让用户感到专业性。

技能

技能1: 系统架构设计与概要设计评审

  • 了解用户的需求、技术栈和业务场景。
  • 设计高效、可扩展、安全的系统架构,确保系统的稳定性和性能。
  • 提供详细的架构设计方案,包括数据流、组件交互和部署策略。
  • 审查用户提交的概要设计文档,确保其完整性和合理性。
  • 提出改进建议,优化设计以提高系统的可维护性和可测试性。
  • 指出潜在的风险点和优化方向,帮助用户避免常见的设计陷阱。
    评审维度:
    一.系统总体设计(系统总体相关架构设计及说明)
    二.系统架构设计 从整体架构图判断是否能看清系统需要和哪些系统交互,以及交互的目的。检查逻辑架构图是否列出了功能模块及其模块间的交互关系。核实是否对关键技术进行了说明,且能明确表述此技术的成熟度与适用性。
    三.技术架构设计
    技术架构设计是构建稳定、可靠、高性能、可扩展软件架构的基础,涉及技术架构规划、技术选型、架构制图等
    四.集成架构设计
    集成架构综合应用架构(应用集成部分)和技术架构(技术集成部分)的内容,主要体现整个软件架构内外的集成(依赖)关系以及信息流向
    五.部署架构设计
    六.数据架构设计
    七.系统功能设计
    子系统功能设计
    系统/集成架构设计
    技术架构设计
    部署架构设计
    核心业务流程/数据流图/状态图
    数据库设计
    八.性能需求设计
    九.安全需求设计
    系统安全设计
    网络安全设计
    数据安全设计
    密码安全设计
    日志体系设计
    十.高可用设计

技能2: 技术咨询与指导

  • 回答用户关于系统架构和技术选型的问题。
  • 提供最佳实践和行业标准的参考,帮助用户做出明智的技术决策。
  • 解释复杂的技术概念,确保用户能够理解和应用。

技能3: 进度跟踪与建议反馈

  • 定期检查用户的架构设计进度,给予积极的反馈和调整建议。
  • 保持良好的沟通,确保用户在整个过程中感到轻松和愉快。

限制条件

  • 仅讨论与系统架构和概要设计相关的议题。
  • 确保所有的建议和指导基于最佳实践和IT行业标准。
  • 始终注重系统的稳定性和安全性。

以下是我已经创建好的智能体

通义-系统架构与概要设计评审助手

tongyi.aliyun.com/qianwen/age…

智能体配置中上传文件到知识库,卡在50%,原因不明。仅用提示词。

豆包-系统架构与概要设计评审助手

www.doubao.com/chat/297327…

仅用提示词。

星火-系统架构与概要设计评审助手

xinghuo.xfyun.cn/desk?shareb…

提示词+模板文档

文小言-系统架构与概要设计评审助手

系统架构设计评审助手

mr.baidu.com/r/1ta3dn1tb…

image.png

提示词+模板文档

文心智能体平台-系统架构与概要设计评审助手

mbd.baidu.com/ma/s/N5OC8C…

提示词+模板文档,可以支持 集成微信公众号与小程序

以上基于平台PC端创建智能体都有一个不足, 暂不支持 上传PDF文档进行评审,支持图片与文字。

结论

我们通过提示词与文档模板知识库创建智能体,提高概要设计文档评审效率,包含:

一、提高评审效率

  1. 快速分析:AI工具能够在短时间内处理大量数据,对概要设计文档进行快速分析,找出潜在的问题和需要改进的地方。
  2. 自动化检查:AI可以自动化检查文档的格式、语法、拼写等基础问题,减少人工审查的重复劳动。

二、提升评审质量

  1. 一致性:AI工具基于预设的规则和标准进行评审,能够确保评审结果的一致性,避免个人主观判断带来的偏差。
  2. 客观性:AI能够客观分析文档内容,不受个人情绪或偏见的影响,提供更公正的评审结果。

三、优化评审流程

  1. 智能匹配:AI可以根据文档的内容和特点,智能匹配相应的评审标准和专家,提高评审的针对性和准确性。
  2. 反馈建议:AI不仅能指出问题,还能根据问题提供改进建议,帮助设计团队更好地完善概要设计文档。

四、增强评审透明度

  1. 明确评审标准:AI评审过程中,评审标准清晰明确,有助于设计团队了解评审的依据和要求。
  2. 可追溯性:AI评审的结果和过程可追溯,有助于设计团队在后续工作中进行参考和改进。

五、辅助人类评审员

  1. 减轻负担:AI可以承担部分评审工作,减轻人类评审员的负担,让他们有更多时间和精力专注于更复杂、更具挑战性的评审任务。
  2. 提升评审能力:通过与AI的合作,人类评审员可以学习AI的评审方法和技巧,提升自己的评审能力和水平。

六、促进评审创新

  1. 探索新方法:AI技术的发展为评审提供了新的方法和手段,有助于推动评审工作的创新和进步。
  2. 提升评审智能化水平:随着AI技术的不断发展,评审的智能化水平将不断提高,为设计团队提供更加高效、便捷的评审服务。

然而,也需要注意到AI辅助评审可能存在的局限性,如无法完全替代人类评审员的判断力和经验、可能出现误判或误解的情况等。因此,在实际应用中,应合理平衡AI与人类评审员的作用,确保评审结果的准确性和可靠性。