当前位置: 首页 > 知识库问答 >
问题:

将Java代码转换为UML图

司空凌
2023-03-14

我必须将下面的Java代码转换成一个UML图,但是我不确定是否正确地完成了类之间的关联。请你告诉我UML图是否正确。

public class Booking {

    private String name;

    private Time time;

    private Table[] tables;

    public Booking ( String n, int st, int en, int num ){
    }

    public int getStart (  ){
        return 1;
    }

    public int getEnd (  ){
        return 1;
    }

    public Table[] getTables (  ){
        return new Table[3];
    }

    public int getBookingSize (  ){
        return 1;
    }
}
public class Time {

    private int startHour;

    private int endHour;

    public Time ( int st, int en ){
    }

    public int getStart (  ){
        return 1;
    }

    public int getEnd (  ){
        return 1;
    }
}
public class Table {

    private int number;

    private int seats;

    public Table ( int num, int sz ){
    }

    public int getNumber (  ){
        return 1;
    }

    public int getSeats (  ){
        return 1;
    }
}
public class Restaurant {

    private Booking[] bookings;

    public void makeBooking ( String n, int st, int en, int s ){
    }


    public void cancelBooking ( String n ){
    }

    public Table[] getTables ( String n ){
        return new Table[2];
    }

    public int getStTime (String n) {
        return 1;
    }

    public int getEndTime (String n) {
        return 1;
    }
}

共有1个答案

燕嘉熙
2023-03-14

我将忽略方法和属性,因为它们很琐碎,也不有趣(而getter理想情况下应该省略)。

您的关系图有几个不同之处:

  • 餐厅可能根本没有任何预订,因此应该是*,而不是1.*
  • 预订只需要一个时间,因为时间已经包含开始和结束
  • 我不知道为什么餐厅有开始时间和结束时间。我假设它显示的是开放时间(这是time.
  • 的一个实例
  • 根据您的代码,您可以在多个上有预订。在您的关系图中,只有一个是可能的。
  • 一个可能有多个预订。在您的关系图中,它只能有一个。(当然存在运行时约束,即两个预订不应该在相同的时间时间段内预订相同的,但这应该以OCL或注释的形式表示)
  • 将角色名称添加到关联终结点(期间,OpeningHours,...)

更多注意事项:

  • time应包含单个时间,或者应将其重命名为periodetimeinterval。当前的命名令人困惑。
  • 可以省略time关系的另一端的多重性(因为它们在这里没有太多意义)。
 类似资料:
  • 问题内容: Web服务团队为我提供了此C#代码,该代码公开了一些我计划使用的Web服务。我的密码需要使用此代码进行加密,以便Web服务知道如何在其末尾对其进行解密。 我正在使用Java来使用此Web服务,现在,在将#C代码转换为Java代码时遇到问题,因为该Web服务无法正确解密我的密码。 这是我目前的失败尝试: 我做错什么了?非常感谢。 2013-08-07-更新 我在阅读此网站时,意识到我的模

  • 问题内容: 我有一个用Scala编写的应用程序,我的一些团队成员希望使用Java版本。这是一个演示应用程序,可以使用用Scala编写的另一个API,并且他们希望该应用程序的Java版本能够使用Java中的API。但是,该应用程序有些大,我不想用Java手动重排代码(他们也不想学习Scala)。是否有任何工具可以从Scala代码自动生成(可读)Java代码? 问题答案: 他们希望应用程序的Java版

  • 问题内容: 我想知道是否有任何方法可以将A转换为Java可编译代码。 我有一个比较表达式保存在数据库字段中。我想从数据库中检索它,然后在条件结构中对其求值。 有什么办法吗? 问题答案: 如果你使用的是Java 6,则可以尝试使用Java Compiler API。其核心是JavaCompiler类。你应该能够在内存中构造对象的源代码。 警告:由于某些奇怪的原因,我的平台上不存在JavaCompil

  • 问题内容: 任何人都可以通过建议将C#代码转换为Java代码的转换器的名称来帮助我。实际上,我有一个用C#代码编写的工具,我正在尝试对其进行修改。由于我对C#和.NET框架一无所知,因此我似乎很难自行转换大型代码。我从一些网络信息中发现,存在一些可以将C#转换为Java的工具(虽然可能不正确,但是可以)。任何人都可以通过建议这些工具的名称来帮助我。 问题答案: 免责声明: 没有工具是完美的。 但是

  • 问题内容: 好的,所以我有一个来自EEG扫描的数据文件(一个二进制文件,data.eeg),在matlab中,用于读取文件并绘制部分数据的代码如下所示: 这是我的“翻译”尝试 这就是让我感到困惑的地方。根据文档,matlab的fread是一种通过fread(loaded_file,size,data_type)读取二进制文件的方法。python中的替代方法是使用numpy的fromfile并使用内