双向工程（Round-trip engineering）简称RTE，是同步二个或多个相关软体工件（例如程式码、模型、组态档案及文件）的软件开发工具机能。要进行双向工程的原因是因为相同的资料会出现在多份工件上，若只更新了其中一份工件的资料，另外工件中的对应资料没有更新，就会有各工件不一致的问题。双向工程和传统的软件工程作法有紧密的关系，例如顺向工程（从已有的规格产生程式码及软体）、逆向工程（从已有的软体产生程式码及规格）及代码重构（了解程式码并且修改）。常有人将双向工程错误的定义为同时支援顺向工程及逆向工