@startuml
hide empty members

interface IData {
    +id: Integer
    +recorderDepartment: Department
    +controlDate: Timestamp
    +qualificationDate: Timestamp
    +qualityFlag: QualityFlag
    +qualificationComments: String [0..1]
    +updateDate: Timestamp
}

interface IRootData extends IData {
    +program: Program
    +comments: String[0..1]
    +validationDate: Timestamp
    +recorderPerson: Person[0..1]
    +creationDate: Timestamp
}

entity ChildData {
}

IRootData -left-> "0..1\n" Vessel: "     "
IRootData "1" *--> "0..*\n" ChildData: "     "

package "referential" #DDDDDD {
    interface ReferentialItem {
    }

    IRootData "1" -right-> "1..*\nobservers" Person: "                         "
    IRootData -right-> ReferentialItem: "use any"
}
@enduml
