summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormo khan <mo.khan@gmail.com>2020-02-17 14:23:55 -0700
committermo khan <mo.khan@gmail.com>2020-02-17 14:23:55 -0700
commitde8f58fe301afd1de3c7567fd7a49a6623e6a4be (patch)
tree0094bcdda421b37d5c81188403121755b54eb431
parente66132752c3351d35f13aabe6de4966664aa1361 (diff)
Finish question 6
-rw-r--r--assignments/3/question-6.pngbin55643 -> 48097 bytes
-rw-r--r--assignments/3/question-6.puml51
2 files changed, 23 insertions, 28 deletions
diff --git a/assignments/3/question-6.png b/assignments/3/question-6.png
index 9f72d70..06c6732 100644
--- a/assignments/3/question-6.png
+++ b/assignments/3/question-6.png
Binary files differ
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 {