├── iphone.png ├── iphone.puml └── README.md /iphone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SilvioCavalcantiBonfim/Diagramacao-de-Classes-do-iPhone/HEAD/iphone.png -------------------------------------------------------------------------------- /iphone.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | title Orientação a Objetos e UML: Diagramação de Classes do iPhone 3 | 4 | skinparam classAttributeIconSize 0 5 | interface "Reprodutor Musical" as ReprodutorMusical { 6 | -Musica[] musicas 7 | +tocar(): void 8 | +pausar(): void 9 | +selecionarMusica(): void 10 | } 11 | note top of ReprodutorMusical 12 | Interface encarregada de implementar 13 | a funcionalidade de reprodução de 14 | arquivos de áudio. 15 | end note 16 | 17 | note top of AparelhoTelefonico 18 | Interface encarregada de implementar 19 | a funcionalidade de um telefone. 20 | end note 21 | 22 | note top of Musica 23 | Classe responsável por 24 | armazenar informações 25 | das músicas. 26 | end note 27 | 28 | class Musica { 29 | nome: String 30 | caminho: String 31 | } 32 | 33 | note top of Contato 34 | Classe responsável por 35 | armazenar informações 36 | de contato. 37 | end note 38 | 39 | class Contato { 40 | nome: String 41 | numero: String 42 | } 43 | 44 | interface "Aparelho Telefônico" as AparelhoTelefonico { 45 | -Contato[] contatos 46 | -redeMovelDisponivel(): Boolean 47 | +ligar(): void 48 | +atender(): void 49 | +iniciarCorreioVoz(): void 50 | } 51 | 52 | note top of NavegadorInternet 53 | Interface encarregada 54 | de implementar 55 | a funcionalidade 56 | de um navegador. 57 | end note 58 | 59 | interface "Navegador de Internet" as NavegadorInternet { 60 | -ConexaoComInternet(): Boolean 61 | +exibirPagina(): void 62 | +adicionarNovaAba(): void 63 | +atualizarPagina(): void 64 | } 65 | 66 | entity "IPhone" as IPhone {} 67 | 68 | entity "FireFox" as FireFox {} 69 | entity "Chrome" as Chrome {} 70 | 71 | entity "Nokia 3310" as Nokia3310 {} 72 | entity "Motorola Razr V3" as MotorolaRazrV3 {} 73 | 74 | entity "Walkman" as Walkman {} 75 | entity "Discman" as Discman {} 76 | 77 | IPhone --> AparelhoTelefonico 78 | IPhone --> NavegadorInternet 79 | IPhone --> ReprodutorMusical 80 | ReprodutorMusical --o Musica 81 | AparelhoTelefonico <-- Nokia3310 82 | AparelhoTelefonico <-- MotorolaRazrV3 83 | AparelhoTelefonico --o Contato 84 | 85 | ReprodutorMusical <-- Walkman 86 | ReprodutorMusical <-- Discman 87 | 88 | NavegadorInternet <-- FireFox 89 | NavegadorInternet <-- Chrome 90 | 91 | @enduml 92 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Orientação a Objetos e UML: Diagramação de Classes do iPhone 2 | 3 | ![terraform](https://img.shields.io/badge/-UML-white?style=for-the-badge&logo=UML&color=FABD14&logoColor=white) 4 | 5 | Este é um diagrama UML que representa a estrutura de classes e interfaces para um sistema que inclui a modelagem do iPhone, um dispositivo que incorpora funcionalidades de um reprodutor de música, um telefone e um navegador de internet. Este diagrama foi criado como parte do desafio de projeto do **Santander Bootcamp 2023 - Fullstack Java+Angular** na DIO.me. 6 | 7 | ![iphone](https://raw.githubusercontent.com/SilvioCavalcantiBonfim/Diagramacao-de-Classes-do-iPhone/0.1.0/iphone.png) 8 | 9 | 10 | ## Descrição das Interfaces e Classes 11 | 12 | ### Reprodutor Musical (ReprodutorMusical) 13 | 14 | A interface `Reprodutor Musical` é responsável por implementar a funcionalidade de reprodução de arquivos de áudio. Ela possui métodos como `tocar()`, `pausar()`, e `selecionarMusica()`. A classe `Musica` armazena informações sobre as músicas. 15 | 16 | ### Aparelho Telefônico (AparelhoTelefonico) 17 | 18 | A interface `Aparelho Telefônico` é responsável por implementar a funcionalidade de um telefone. Ela possui métodos como `ligar()`, `atender()`, e `iniciarCorreioVoz()`. A classe `Contato` armazena informações de contatos. 19 | 20 | ### Navegador de Internet (NavegadorInternet) 21 | 22 | A interface `Navegador de Internet` é responsável por implementar a funcionalidade de um navegador web. Ela possui métodos como `exibirPagina()`, `adicionarNovaAba()`, e `atualizarPagina()`. 23 | 24 | ## Entidades 25 | 26 | Existem algumas entidades representadas no diagrama, como `IPhone`, `FireFox`, `Chrome`, `Nokia 3310`, `Motorola Razr V3`, `Walkman` e `Discman`, que representam diferentes dispositivos ou aplicativos que podem usar as interfaces e classes mencionadas acima. 27 | 28 | ## Como Visualizar o Diagrama 29 | 30 | Para visualizar o diagrama UML, você pode copiar o código PlantUML e colá-lo em um editor compatível com PlantUML ou usar uma ferramenta online de renderização de PlantUML. 31 | 32 | Exemplo de uso com a ferramenta PlantUML Online: 33 | 1. Acesse o site https://www.planttext.com/. 34 | 2. Cole o código PlantUML na área de texto. 35 | 3. Clique no botão "Refresh" para gerar o diagrama. 36 | 37 | Lembre-se de que este é apenas um diagrama de classe de exemplo e pode ser personalizado e estendido para atender às necessidades específicas do seu projeto. 38 | --------------------------------------------------------------------------------