Skip to content

Real Estate

Real Estate Component

The following section contains several data models in form of class diagrams for the specific modules.

In some cases the model is devided into contextual parts due to clearness.

Real Estate Model

District

The model only contains item of how a district is built.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
@startuml

Portal "1" *-- "*" District
Portal "1" *-- "*" AbstractUnit
UnitGroup "*" -- "*" Portal
District "1" *-- "*" Construction
Construction "1" *-- "*" Floor
Floor "1" *-- "*" PhysicalUnit
PhysicalUnit "*" --* "1" RealEstateUnit
AbstractUnit <|-- RealEstateUnit
AbstractUnit "*" -- "1" UnitType
UnitGroupType "1" -- "*" UnitGroup
UnitGroup "*" -- "*" AbstractUnit

class Portal {
    domain: String
}
note left: From Basic Module

class District {
    name: String
    portal: Portal
}

class Construction {
    name: String
    district: District
}

class Floor {
    name: String
    construction: Construction
}

class PhysicalUnit {
    name: String
    floor: Floor
}

abstract class AbstractUnit {
    name: String
    portal: Portal
    type: UnitType
}
note top: From Basic Module

class RealEstateUnit {
    name: String
    physicalUnits: PhysicalUnit[]
    rooms: float
    squareMeters: float
}

class UnitGroup {
    name: String
    type: String
    portal: Portal
    units: Unit[]
}
note top: From Basic Module

class UnitGroupType {
    getType()
    getName()
}
note top: From Basic Module

class UnitType {
    getType()
    getName()
}
note bottom: From Basic Module 


@enduml

Relations in real estate

Here some items concerning the district, e.g. the building, is left out, because it has no important meaning here. Portal and Contract belong to the Basic Module.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
@startuml

AbstractContract <|-- RealEstateContract
AbstractContractItem <|-- RealEstateContractItem
AbstractContractItem "1" - "1" AbstractUnit
AbstractContract "1" *-- "*" AbstractContractItem
AbstractUnit <|-- RealEstateUnit
ContractGroupType "1" -- "*" ContractGroup
ContractGroup "1" *-- "*" AbstractContract
UnitType "1" -- "*" AbstractUnit

abstract class AbstractContract {
    name: String
    customerRelation: CustomerRelation
    contractItems : ContractItem[]
    status: ContractStatus
    begin: DateTime
    end: DateTime
}
note left: From Basic Module

class RealEstateContract {
} 

abstract class AbstractContractItem {
    name: String
    status: ContractItemStatus
    begin: DateTime
    end: DateTime
    unit: Unit
}
note top: From Basic Module

class RealEstateContractItem {
} 

class ContractGroup {
    name: String
    type: ContractGroupType
    contracts: Contract[]
}
note left: From Basic Module

class ContractGroupType {
    type: String
    name: String
}
note left: From Basic Module

abstract class AbstractUnit {
    name: String
    unitType: UnitType
    portal: Portal
}
note right: From Basic Module

class RealEstateUnit {
    name: String
    rooms: float
    squareMeters: float
    physicalUnits: PhysicalUnit[]
}

class UnitType {
    type: String
    name: String
}
note top: From Basic Module

@enduml