diff options
| author | mo khan <mo.khan@gmail.com> | 2020-02-17 14:23:55 -0700 |
|---|---|---|
| committer | mo khan <mo.khan@gmail.com> | 2020-02-17 14:23:55 -0700 |
| commit | de8f58fe301afd1de3c7567fd7a49a6623e6a4be (patch) | |
| tree | 0094bcdda421b37d5c81188403121755b54eb431 | |
| parent | e66132752c3351d35f13aabe6de4966664aa1361 (diff) | |
Finish question 6
| -rw-r--r-- | assignments/3/question-6.png | bin | 55643 -> 48097 bytes | |||
| -rw-r--r-- | assignments/3/question-6.puml | 51 |
2 files changed, 23 insertions, 28 deletions
diff --git a/assignments/3/question-6.png b/assignments/3/question-6.png Binary files differindex 9f72d70..06c6732 100644 --- a/assignments/3/question-6.png +++ b/assignments/3/question-6.png diff --git a/assignments/3/question-6.puml b/assignments/3/question-6.puml index 7f11657..8edc8f3 100644 --- a/assignments/3/question-6.puml +++ b/assignments/3/question-6.puml @@ -1,25 +1,24 @@ @startuml -Owner <|-- Person -Owner <|-- Corporation -Person <|-- Pilot +Airplane "*" -- "1" Employee : serviceableBy > +Airplane "*" -- "1" Hanger : storedIn > +Airplane "*" -- "1" Person : ownedBy > +Airplane "*" -- "1" Pilot : flyableBy > +Hanger "*" -- "1" Employee : managedBy > +Maintenance "*" -- "0..1" Employee : performedBy > +Maintenance "*" -- "0..1" Airplane : performedOn > +Person <|-- Corporation Person <|-- Employee - -Hanger "1" -- "*" Airplane : storedIn -Owner "1" -- "*" Airplane : ownedBy -Maintenance "1" -- "1" Airplane -Maintenance "1" -- "1" Employee - -Employee "1" -- "*" Hanger : managedBy -Pilot "1" --> "*" Airplane : flyableBy -Employee "1" --> "*" Airplane : service +Person <|-- Pilot class Airplane { - {field} capacity - {field} modelNumber - {field} registrationNumber - {field} weight - + maintenances : Maintenance[*] + {field} capacity + {field} modelNumber + {field} registrationNumber + {field} weight {method} boolean storedIn(hanger) + {method} Maintenance mostRecentMaintenance() + {method} Date nextMaintenanceDueOn() + {method} void storeIn(hanger) } class Maintenance { @@ -27,25 +26,20 @@ class Maintenance { {field} startedAt {field} endedAt {method} Duration hours() - + employee : Employee [1] - + airplane : Airplane [1] } class Hanger { - {field} number - {field} capacity - {field} location + {field} number + {field} capacity + {field} location + {method} boolean isFull() {method} boolean hasCapacityFor(airplane) - {method} boolean isHomeFor(airplane) } -abstract class Owner { +interface Person { {field} name {field} address {field} telephoneNumber -} - -abstract class Person { {field} socialInsuranceNumber } @@ -53,14 +47,15 @@ class Pilot { {field} licenseNumber {field} restrictions {method} boolean canFly(airplane) + {method} void fly(airplane) } class Employee { {field} salary {field} shift - {field} maintenances : Maintenance [*] {method} boolean canService(airplane) {method} boolean hasServiced(airplane) + {method} void beginMaintenanceOf(airplane) } class Corporation { |
