Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 什么是最好的软件开发分析和设计工具,并且能够将设计转换为实际代码?_Java_Php_Oop_Uml - Fatal编程技术网

Java 什么是最好的软件开发分析和设计工具,并且能够将设计转换为实际代码?

Java 什么是最好的软件开发分析和设计工具,并且能够将设计转换为实际代码?,java,php,oop,uml,Java,Php,Oop,Uml,我试图找到一种开发软件项目的好方法,而不是在开发和编码阶段花费大量时间,但我没有找到合适的解决方案 我对Visio-RationalRose-Paradigm和其他UML工具略知一二 我可以在OOP、OOD、数据结构和设计模式中使用哪些好的分析和设计工具 你可以告诉我最好的软件,或者你试过并发现它很好用的软件吗 是否有任何软件工具,我们可以为其提供项目的分析和设计,采用数据库格式,包括表及其关系,或采用面向对象编程格式,包括类及其属性,然后向我们提供以指定编程语言(如PHP)编写的整个软件项目-

我试图找到一种开发软件项目的好方法,而不是在开发和编码阶段花费大量时间,但我没有找到合适的解决方案

我对Visio-RationalRose-Paradigm和其他UML工具略知一二

我可以在OOP、OOD、数据结构和设计模式中使用哪些好的分析和设计工具

你可以告诉我最好的软件,或者你试过并发现它很好用的软件吗

是否有任何软件工具,我们可以为其提供项目的分析和设计,采用数据库格式,包括表及其关系,或采用面向对象编程格式,包括类及其属性,然后向我们提供以指定编程语言(如PHP)编写的整个软件项目-ASP-JSP或任何其他语言


提前感谢…

我尝试了一些UML设计工具(Dia、BOUML、Umbrello、Visio、Eclipse的UML2)。然而,我最喜欢的,不幸的是它不是开源的,是。有点贵(大约200美元一个许可证),但它可以从UML生成代码,也可以用各种语言(C++、Java、PHP等)将代码反向工程到UML。这是Windows软件,但我在Wine下的Linux上运行它,没有任何问题。

我不知道有任何工具可以让您以图形化的方式(例如使用UML)对整个系统进行建模,然后生成一个完整的、可工作的、完整的堆栈应用程序(即UI+域逻辑+持久性)

但是,有一些选项可以为您提供上述内容:

  • 有各种基于UML的工具可以为您生成部分解决方案@netcoder在上面提到了企业架构师(EnterpriseArchitect),还有(开源的,与许多UML工具一起工作)
  • 有一些可执行的UML工具可以提供一个完整的建模环境,在这个环境中,您可以在工具中设计完整的应用程序,包括逻辑,然后转换到您的目标环境。见例。然而,这些都不是免费的,往往以嵌入式市场为目标。因此,他们没有现成的web应用程序翻译器::你必须自己编写一个
  • 有一个。它不是基于UML的,而是使用一组文本领域特定的语言。但它确实提供了一个完整的集成环境(包括EclipseIDE插件),并生成完全工作的基于java的web应用程序
  • 我在项目中使用了这三种方法,总结如下:

    • 我不喜欢UML插件(AndroMDA等)。因为它们只涵盖了问题的一部分,所以最终您将在混合的抽象级别(模型与代码)上工作,并且保持所有内容的同步通常是困难的(“往返工程”问题)
    • 我喜欢可执行的UML工具。它们提供了一组一致的抽象,并且不会因为模型与代码不同步而受到影响,因为没有往返。然而,开发自己的翻译规则是一项非常重要的任务。它们也很昂贵,而且很适合市场
    • 我对WebDSL(在当前项目中使用它)印象深刻。环境良好,语言完整一致,覆盖整个堆栈。这仍然是一个年轻的项目,也是一个利基项目(语言是非标准的)。但它是开源的,发展很快,并且有一个响应迅速的小社区
    你选择哪条路线(如果有的话)将真正取决于你的优先次序


    hth.

    您的问题似乎是关于模型驱动的开发。 今天您有两个选择:

    第一个选项是从模型生成代码。通常,它会将模型xmi带入条目并生成应用程序的框架,但不会生成在方法中编码的业务逻辑

    第二个选项是实时代码和模型同步。图表中的每个更改都会立即转换为代码


    我想说,有了新的敏捷方法,只有敏捷建模才能生存。我不认为模型驱动的开发是敏捷的,因为从模型到代码、从代码到模型的多次迭代是不可能的。

    非常感谢您提供的信息丰富的答案,我将尝试您告诉我的最后一个选项(WebDSL),我希望我们在未来的问题和项目中互相帮助。