扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
我可以将 UML 转换为 COBOL 吗?
我可以使用统一建模语言 (UML) 创建一个模型,并将其转换为 COBOL 语言以部署到 z/OS® 吗?
当我在世界各地介绍 IBM® 开发工具期间,曾经很多次听到过这个问题。一个很简单的回答是:是的,您可以将 UML 转换为 COBOL 代码。但问题是,通过从 UML 到 COBOL 的转换,您能在多大程度上开发您的应用程序呢?为了阐明这个开发主张的易用性和优越性,我将向您展示一个使用 IBM 工具将 UML 转换为 COBOL 的示例。
|
模型驱动的开发和 WebSphere Developer for System z
到目前为止,模型驱动的开发 (MDD) 以及与其相关的、基于 UML 的工具已经存在了十多年。有一些先进组织已经成功地使用了 MDD,它们通过提高工作效率、质量和缩短上市时间,来大幅度地提高竞争优势和市场份额。
研究显示,与传统的文档驱动和以代码为中心的开发相比(请参见参考资料),使用 MDD 实践可以使工作效率提高两到四倍。
IBM WebSphere® Developer for System z V7 中提供了一些向导,可以自动地从给定的 UML 模型生成访问 DB2® 数据库的 CICS® COBOL 代码。这些向导将 UML 转换为 COBOL 和 WSDL(Web 服务定义语言),并且生成 JCL,它将帮助您实现生成的代码。该向导假定 UML 模型是完整的。IBM Rational® Software Architect 可以用于定义 UML 模型。请参见图 1 中的体系结构。
对于每个 DB2 表,所生成的 COBOL 包括两个主程序和一些辅助 COBOL 程序(以执行 XML 解析)等。第一个主 COBOL 程序执行标准的 CRUD(创建、读取、更新、删除)、操作集合,并对单个记录进行操作。第二个主程序处理多个 DB2 行的搜索/列举操作。
WebSphere Developer for System z 可以从现有的 DB2 模式完成类似的转换,但是在本文中,我将重点关注 UML 转换。
图 1. 数据库应用程序生成器体系结构
|
使用 UML 模型
在使用 UML 时,当前版本的 WebSphere Developer for System z(版本 7.0)转换假定:
如您所见,使用当前的实现,我们无法将 UML 模型转换为 COBOL 业务逻辑;这是一种面向数据库的转换。UML 类模型中的任何操作都将被忽略。
|
使用向导创建和部署资产的主要步骤(必需执行)包括:
图 2 中显示了我在一个转换示例中使用的 UML 模型。
图 2. Rational Software Architect 所创建的 UML 模型
|
编辑和配置转换参数
在将 UML 模型导入到 WebSphere Developer for System z 之后,您必须使用向导配置该转换。在这个示例中,UML 模型并不具备所有必需的实现特征。例如,当配置客户编号 (CUST_NO) 转换时,我将这个属性定义为整数(图 3)。
图 3. 使用转换参数编辑器
您还必须为该转换配置其他详细信息,如 CICS、MVS 和 USS。
基本上,“MVS”和“USS”是将要在生成的 JCL 代码中使用的 z/OS 数据集的名称,并且 CICS 服务使用 USS,比如用于在 z/OS 中存储 WSBIND 代码的位置。图 4 显示了为该转换将要生成的 CICS 资源所指定的配置。
图 4. 配置 CICS 资源
|
运行转换
在这个示例中,图 5 显示了该转换生成的所有资产。请注意,在转换期间,如果选择了Automatic Remote Deployment,并且您已经连接到了 z/OS 系统,那么将执行下面的操作:
图 5. 由该转换所生成的资产
|
生成的资产的描述
该转换将生成 COBOL 资产(类型为 cbl)、部署 CICS 服务所需的 WSBIND 文件(类型为 wsbind)、WSDL 文件(类型为 wsdl)、JCL(类型为 JCL)和日志文件(类型为 log)。下面将简要描述所生成的资产:
下面将简要描述所生成的 JCL:
|
使用 Web Services Test Explorer 调用 LIST 应用程序
在部署了生成的代码之后,我使用 WebSphere Developer for System z 的 Web Services Test Explorer 组件测试 Web 服务,以获得即时的回馈。在我的示例中,我希望列出 8 行信息(图 6)。
图 6. 测试部署的 CICS Web 服务
正如您所见,这个从 UML 到 COBOL 的转换并不会像您所希望的那样提供所有 来自 UML 的所需的代码,但它的确是一个很好的开始,并且通过生成相关的代码,您可以节省一些时间。
另外请注意,该向导生成了 100% COBOL,而不包含任何专有代码、子例程或者任何其他框架。即使您对部署 CICS Web 服务不感兴趣,但您仍然可以利用从 UML 类映射得到的 DB2 表的 COBOL 代码。
将来会对这个特性进行进一步改进,可能会允许您创建自己的模板。IBM 永远欢迎大家积极进行反馈,因此,如果您对当前实现有想法或者建议,请告知我们。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者