我是软件工程专业的学生。我的“软件架构和设计”讲师告诉我们,我们可以从所有UML图(或大部分)中生成源代码。我已经可以/已经从类图生成代码了。我无法从其他图表中生成代码。为了做到这一点,我必须把这些图表和类图联系起来吗?
发布于 2016-09-27 15:38:59
我想我找到了答案。我们可以生成代码。说我有一个“用例”。我右击它。转到“前进”并选择“实例分类器”。在那里,我实际上可以将我的“用例”、“序列图对象”等设置为已经创建的类的实例,甚至可以在那里创建一个类。
发布于 2016-09-26 15:35:50
这简直是胡说八道。您根本无法从任何关系图生成代码。但是,您可以从UML模型生成代码。这可以(但不是必须的)有几个图表来帮助人类可视化。
现在,代码与类相关。这意味着您至少需要在模型中定义一些类。用例有助于理解为什么类会做他们应该做的事情。但在任何情况下,您都不能从用例中创建代码。
还有其他模型元素帮助创建更详细的代码。这些是例如,状态机,可以转换成等价的代码节。
活动和序列图还有助于可视化某些代码部分在执行过程中如何运行。但是您不会(认真地)使用它们来创建代码。
发布于 2017-08-16 04:10:16
是的,你可以,但并不像你描述的那么简单。模型驱动体系结构目前是一个活跃的研究领域,但它还没有真正“流行起来”。它的支持者认为,它允许更高层次的抽象,就像C提供了比汇编语言更高的抽象级别,而Java提供了比C更高的抽象级别,我认为,如果他们能够正确地使用工具,这在将来可能非常有用。
实际上,这甚至不是一个全新的想法--一般的图形化编程的概念(如果你想一想,它基本上是UML派生编程的泛化)--至少从我所知道的80年代开始(而且可能更早)。事实上弗雷德里克·布鲁克斯。“在软件工程中没有银弹本质和事故”(最初于1986年出版,现刊载于神话中的“人月”)中谈到了这一点:
软件工程博士学位论文最受欢迎的科目是图形化或可视化编程,即计算机图形学在软件设计中的应用。有时候,这样一种方法的前景被认为是从VLSI芯片设计的类比中得到的,在VLSI芯片设计中,计算机图形学扮演着非常富有成效的角色。有时,这种方法是通过将流程图作为理想的程序设计介质,并为构建它们提供强大的设施来实现的。 这种努力甚至没有任何令人信服、更令人兴奋的东西出现。我相信没有什么能.
他的论点是,在编写工具时,工具还没有“在那里”;例如,屏幕大小是众所周知的小。而且,流程图实际上是一个非常糟糕的设计机制。另外,
更根本的是,正如我前面所指出的,软件很难可视化。无论我们图表控制流,可变范围嵌套,可变交叉引用,数据流,分层数据结构,或其他,我们只感觉到复杂连锁的软件大象的一个维度。如果我们将由许多相关视图生成的所有图表叠加起来,就很难提取任何全局概述。VLSI的类比从根本上说是误导性的--芯片设计是一个分层的二维物体,其几何形状反映了它的本质。软件系统不是。
我将由你来判断你是否同意他的意见,或者这是否仍然适用。
因此,总结一下:是的,这至少在理论上是可能的,并且在从UML图生成代码方面已经付出了很大的努力,但是您需要多个图来生成比基本类结构和方法存根多得多的代码。这并不意味着您可以编写用例图,按下按钮,然后神奇地拥有一个完整的软件系统。
https://stackoverflow.com/questions/39706437
复制相似问题