将序列图转换为 Java 代码

Converting Sequence Diagram to Java code

我的老师布置了一个练习,其中包括将序列图(以最佳方式)翻译成 Java 代码。

这是时序图:

这是我解决这个问题的尝试:

import java.util.ArrayList;
import java.util.List;

class Seminar {
    private int getMark() {
        return calculateMark();
    }

    private int calculateMark() {
        return 10;
    }
}

class Student {
    private List<Seminar> _seminars = new ArrayList<>();

    public List<Seminar> getSeminars() {
        return _seminars;
    }
}

class TranscriptBuilder {
    public void New(Student student) {

    }
}

但我无法完成 TranscriptBuilder,因为我找不到任何关于 <<system>> 及其含义的信息。请问有什么建议吗?

<<system>> 是 UML 中的原型:

构造型定义了现有元类的扩展方式,并允许使用平台或领域特定的术语或符号来代替或补充用于扩展元类的术语或符号。

我想这里指的是核心系统,你需要实现一个打印Student信息的方法。

我建议你 @Override Student 中的 toString() 方法然后在 SharedServices 中实现 print() 方法,如图所示。

您缺少 TranscriptBuilder 构造函数的核心内容,尤其是获取研讨会并执行图中所示的循环。

TranscriptBuilder(Student s) {
    List<Seminar> sems = s.getSeminars();
    for (Seminar sem : sems)
        sem.getMark();
 }

您的 'system' 是定型的 Actor 'system'。

所有参与者都在您的系统定义之外。他们是与您的软件交互的人或其他软件系统。

您不会实现打印机,您只会使用它的 API 来打印结果。