{"id":21605955,"url":"https://github.com/matheusvidal21/diagramacao-classes-iphone","last_synced_at":"2025-05-06T19:12:50.467Z","repository":{"id":192163737,"uuid":"686194788","full_name":"matheusvidal21/diagramacao-classes-iPhone","owner":"matheusvidal21","description":"Este repositório contém a implementação de um desafio de modelagem de software que visa representar as funcionalidades de um iPhone. O projeto demonstra o uso de conceitos de POO e modelagem UML para criar uma estrutura que permite que um dispositivo iPhone desempenhe três funções distintas.","archived":false,"fork":false,"pushed_at":"2023-09-02T02:39:55.000Z","size":93,"stargazers_count":5,"open_issues_count":1,"forks_count":7,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-06T19:12:41.286Z","etag":null,"topics":["java","object-oriented-programming","uml"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/matheusvidal21.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null}},"created_at":"2023-09-02T01:58:42.000Z","updated_at":"2024-08-06T06:22:35.000Z","dependencies_parsed_at":"2023-09-03T03:29:22.453Z","dependency_job_id":"cc3dcbb2-f294-4365-ad72-43dcd7175e8f","html_url":"https://github.com/matheusvidal21/diagramacao-classes-iPhone","commit_stats":null,"previous_names":["matheusvidal21/diagramacao-classes-iphone"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusvidal21%2Fdiagramacao-classes-iPhone","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusvidal21%2Fdiagramacao-classes-iPhone/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusvidal21%2Fdiagramacao-classes-iPhone/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/matheusvidal21%2Fdiagramacao-classes-iPhone/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/matheusvidal21","download_url":"https://codeload.github.com/matheusvidal21/diagramacao-classes-iPhone/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":252752060,"owners_count":21798723,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["java","object-oriented-programming","uml"],"created_at":"2024-11-24T20:18:21.493Z","updated_at":"2025-05-06T19:12:50.429Z","avatar_url":"https://github.com/matheusvidal21.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 📱 Diagramação de classes do iPhone\n\n## 📋 Descrição\nNeste repositório, você encontrará uma implementação abrangente de um desafio de modelagem de software que tem como objetivo representar de forma detalhada e precisa as funcionalidades de um iPhone. Este projeto utiliza princípios de programação orientada a objetos e técnicas de modelagem UML para criar uma estrutura robusta e versátil que permite que um dispositivo iPhone desempenhe os três papéis distintos e cruciais: Reprodutor Musical, Aparelho Telefônico e Navegador na Internet.\n\nEste repositório não apenas fornece o código-fonte em Java para as classes e interfaces correspondentes, mas também inclui uma documentação completa, insights de design e instruções detalhadas sobre como executar o código e explorar o diagrama UML associado. Ao explorar este projeto, eu tive a oportunidade de aprender e aplicar melhores práticas de engenharia de software, desenvolvendo um entendimento profundo de como a modelagem e a programação orientada a objetos podem ser utilizadas para criar sistemas complexos e funcionais.\n\n\n## 📊 Diagrama UML\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"docs/iPhone-modelagem.png\" alt=\"Diagrama de Classes\"\u003e\n\u003c/p\u003e\n\n\nNesta seção, apresentamos uma explicação detalhada de cada classe representada no diagrama de classe do projeto. Cada classe desempenha um papel específico e contribui para a funcionalidade global do sistema.\n\n### `iPhone`\n\nA classe `iPhone` é a classe principal que representa o dispositivo como um todo. Ela implementa as interfaces `ReprodutorMusical`, `AparelhoTelefonico` e `NavegadorInternet`. Isso permite que o iPhone desempenhe os papéis de reprodutor musical, aparelho telefônico e navegador na Internet. \n\n### `ReprodutorMusical`\n\nA interface `ReprodutorMusical` define os métodos necessários para controlar a reprodução de música, como `tocar()`, `pausar()` e `selecionarMusica()`. As classes que implementam essa interface são capazes de reproduzir músicas.\n\n### `AparelhoTelefonico`\n\nA interface `AparelhoTelefonico` define os métodos para realizar chamadas telefônicas e enviar mensagens, incluindo `ligar()`, `atender()` e `iniciarCorreioVoz()`. As classes que implementam essa interface podem funcionar como dispositivos telefônicos.\n\n### `NavegadorInternet`\n\nA interface `NavegadorInternet` define métodos para a navegação na web, como `exibirPagina()`, `adicionarNovaAba()` e `atualizarPagina()`. As classes que implementam essa interface podem atuar como navegadores da Internet.\n\nCada classe ou interface desempenha um papel específico no sistema e contribui para a versatilidade do dispositivo iPhone, tornando-o capaz de realizar uma variedade de funções.\n\nSe você deseja explorar mais detalhes do diagrama de classes [clique aqui](docs/iPhone-modelagem.pdf) para ser redirecionado ao arquivo PDF correspondente.\n\n## 💡 Como usar\nClone o repositório em sua máquina local usando o comando git clone.\nAbra o projeto em sua IDE Java preferida.\nExplore o código-fonte e o diagrama UML para entender como as classes estão relacionadas e como cada papel é implementado.\nConsulte o README.md para informações detalhadas sobre o desafio, escolhas de design e instruções para execução.\n\nEste repositório foi uma valiosa fonte de aprendizado para mim, em busca de aprofundar seus conhecimentos em modelagem de software, programação orientada a objetos e design de sistemas de software complexos.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusvidal21%2Fdiagramacao-classes-iphone","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmatheusvidal21%2Fdiagramacao-classes-iphone","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmatheusvidal21%2Fdiagramacao-classes-iphone/lists"}