@startuml skinparam packageStyle rectangle ' ============================ ' MODEL (bleu) ' ============================ package mimage { class Pixel #aliceblue class RGBImage #aliceblue } RGBImage *-- Pixel package mhuffman { class FrequencyTable #aliceblue class HuffmanNode #aliceblue class HuffmanTree #aliceblue class CanonicalCode #aliceblue } HuffmanTree *-- HuffmanNode FrequencyTable ..> RGBImage CanonicalCode ..> HuffmanTree package util { class BitInputStream #aliceblue class BitOutputStream #aliceblue class ByteUtils #aliceblue class FileUtils #aliceblue } package mpif { class PIFWriter #aliceblue } PIFWriter ..> RGBImage PIFWriter ..> CanonicalCode PIFWriter ..> BitOutputStream ' ============================ ' VIEW (vert) ' ============================ package vconverter { class ConverterWindow #palegreen class PreviewPanel #palegreen class FrequencyTablePanel #palegreen class CodeTablePanel #palegreen } ConverterWindow *-- PreviewPanel ConverterWindow *-- FrequencyTablePanel ConverterWindow *-- CodeTablePanel ' ============================ ' CONTROLLER (orange) ' ============================ class ConverterController #ffddaa ConverterController ..> RGBImage ConverterController ..> FrequencyTable ConverterController ..> HuffmanTree ConverterController ..> CanonicalCode ConverterController ..> PIFWriter @enduml