2. Diagrama de Classes - lilpir/Proj2ModSofOriObj GitHub Wiki

Diagrama de Classes

DiagramaClasse

Visão Geral da Arquitetura

O design é centrado em um SistemaControle principal, que atua como o cérebro do sistema, gerenciando entidades físicas (como Hotel, Elevador e Andar) e entidades lógicas (como UsuarioControle e HospedeVIP).

Componentes Principais

  • Hub Central (SistemaControle):

    • Esta é a classe principal que implementa o padrão Singleton (só existe uma instância dela).
    • Ela contém todos os métodos principais de gerenciamento que vimos nos Casos de Uso (ex: acionarModoIncendio(), configurarZona(), auditarLogs()).
    • Atua como um agregador, gerenciando as listas de hotéis, usuários, hóspedes VIP e logs.
  • Atores de Gerenciamento (UsuarioControle, UsuarioMaster):

    • Representa os operadores da sala de comando.
    • Usa Herança: UsuarioMaster é uma especialização de UsuarioControle, com o método adicional gerenciarUsuario() (Req. 2).
  • Estrutura do Hotel (Hotel, Andar, Elevador):

    • Usa Composição: Um Hotel é "composto por" Elevadores e Andares. Isso significa que os elevadores e andares pertencem a um hotel específico.
    • AndarVIP é uma especialização (herança) de Andar, usada para o requisito de acesso restrito (Req. 7).
    • BotoeiraExterna e IndicadorExterno são componentes de um Andar.
  • Componentes do Elevador (Elevador):

    • Esta é outra classe central que representa a entidade física do elevador.
    • Usa Composição: O Elevador é "composto por" suas peças internas: Porta, DisplayInterno, BotoeiraInterna, SensorCarga e, opcionalmente, uma CameraVIP.
    • O SensorCarga está diretamente ligado ao UC10: Controlar Carga Máxima (Req. 12).
    • A CameraVIP está ligada ao UC2: Acessar Andar VIP (Req. 7).
  • Acesso VIP (HospedeVIP):

    • Uma classe de dados que armazena as informações do hóspede, incluindo os dadosFaciais (Req. 7).
    • O SistemaControle gerencia a lista desses hóspedes (via UC9: Cadastrar Hóspede VIP), e a CameraVIP a utiliza para validação.