# Designing for Maintainability ## [UML (Unified Modeling Language)](UML.md) ```mermaid classDiagram class AdventurePackage { -title: String -description: String } class Trip { -startingDate: Date } class Accommodation { -name: String -address: String } class Person { -name: String -address: String } class Participant { } class TourGuide { } class Booking { -bookingDate: Date -isPaid: Boolean } Person <|-- Participant Person <|-- TourGuide AdventurePackage "1" --o "0..*" Trip : contains > Trip "0..*" -- "1" Accommodation : has > Trip "0..*" -- "1" TourGuide : leads > Trip "0..*" -- "0..*" Participant : booked by > Participant "1" --o "0..*" Booking : makes > Booking "0..*" -- "1" Trip : for > Booking "0..*" -- "1" Participant : by > TourGuide "1" --o "0..*" AdventurePackage : certified for > ```