将序列图转换为Java代码

时间:2018-08-29 13:56:29

标签: java uml

我的老师分配了一个练习,其中包括将序列图(以最佳方式)转换为Java代码。

这是序列图:

enter image description here

这是我尝试解决的问题:

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>>及其含义的任何信息。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

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

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

我认为这里是指您需要实现一种用于打印Student信息的方法的核心系统。

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

答案 1 :(得分:0)

您错过了TranscriptBuilder构造函数的勇气,尤其是,获得研讨会并按照图中的方式进行循环。

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

答案 2 :(得分:0)

您的“系统”是演员定型的“系统”。

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

您将不会实现打印机,而只会使用其API打印结果。