
大家好,我是人月聊IT。今天继续聊源代码工程逆向本体模型。由于本体模型本身是业务建模,因此实际我们并不需要AI在逆向的时候添加太多的技术实现细节到本体模型中。核心还是构建对象,行为,规则,事件,场景,流程之间的关系。但是我还是增加了对UI原型交互部分的逆向,方便实现通过UI事件驱动的整个调用链的追踪。
逆向的一些关键思考如下:
很好,我现在还需要一个基于源代码项目进行知识抽取进行逆向建模,构建本体模型的指导书。后续AI可以基于这个指导书来帮我进行逆向建模。
具体我希望体现的核心点是:本体建模更多是业务建模,逆向的重点是软件需求,而非具体的技术实现。因此具体的类,接口,类方法我不关心。
对应源代码中的对象建模实际重点是逆向数据库对象,但是要结合代码考虑是否是聚合对象,其它操作,控制类对象实际我不关心。更多我关心的是涉及到数据库持久化的实体对象。
对应行为模型对应到当前系统里面的核心界面驱动的操作方法,也可以理解为最小单元的功能用例。但是界面操作逆向还有很多数据初始化等事件方法,我不关心。重点是关注界面发起的对数据对象进行CUD的方法,关心查询功能的查询方法等。
对于规则需要你分析源代码抽取,重点是抽取逻辑层独立存在的规则。对于对象本身的参考完整性规则直接建模到对象模型中。
对于场景建模,需要你完整分析整个项目源代码后,基于数据本身之间的调用顺序,依赖关系来梳理端到端的业务场景。比如采购订单依赖采购立项,采购接收依赖采购订单。我就很容易构建采购立项-》采购订单-》采购接收的端到端流程。
对于流程建模,重点逆向审批流方面的内容,如果没有则忽略。对于事件建模,重点逆向系统里面和消息中间件相关的事件发送,事件订阅,如果没有则忽略。对于主体建模,需要逆向当前系统里面的角色,权限,由于无法提供数据库给你探索数据,仅仅根据代码进行分析和逆向。
对于UI建模,逆向当前系统的所有UI界面,包括UI界面的层次特别注意UI建模逆向,我希望构建要给从UI操作触发到对象,到规则依赖,到数据库的完整调用链。对于各个模型的逆向都需要重点分析各个模型对象之间的关联和依赖关系。
因此基于这些关键思考,然后参考我的本体建模规范,让AI输出要给完整的逆向建模指导书,该指导书会详细的定义整个逆向过程的阶段,方法,检查单要求等。最终文档类似如下:

在有了完整的逆向指导书后,我们就可以通过AI辅助对整个源代码项目逆向,比如对我们自己的MFT文件传输平台项目逆向。输出一个完整的逆向模型,截图如下:

基于输出的模型,参考内容如下:

在有了完整的覆盖了UI,对象,行为,规则,流程,场景,事件,权限的逆向本体模型后,我们可以很方便的构建一个知识图谱总览整个模型。

当然,我们还可以构建一个基于UI界面操作事件穿透的UI浏览树,实现对整个MFT系统功能从界面到事件,到对象,到规则,到数据库的完整调用链浏览。同时在UI逆向中我们增加了ASCII码界面布局的逆向,在整个UI界面浏览中,我们增加一个简单的界面渲染引擎将其进行渲染输出。

具体如何展现左边树结构和调用链,完全可以自己灵活定义,包括整体界面展示的风格。但是所有逆向可视化浏览内容都来源于我们逆向输出的这套yaml本体模型文件。

核心参考提示词:在帮我思考下,我希望构建一个UI界面树结构,即基于UI界面-》子UI-》界面操作事件-》对象-》规则-》数据库表类似的方式进行层级展开,方便看到基于界面操作驱动的完整调用链条。左边是一个树展开一级节点包括界面模型,对象模型,场景模型。场景对象展开实际是各个界面功能的顺序组合。右边为点击到左边节点后的要给关键内容显示。或者你可以基于你的思考进行更好的设计,简单来说就是我希望构建一个左边完整的界面树的展开,实现完整的调用链追踪。然后最终输出一个完整的html文件给我。另外我希望你构建一个对ascii码界面的渲染引擎,让点击到界面的时候右边内容区能够更好的显示界面原型。可以采用主流的UI界面风格即可。
今天对于源代码工程逆向本体模型就分享到这里,希望对你有所启发。