Diagrama de Componentes
1. Introdução
Na UML, os diagramas de componentes representam a estrutura de um sistema de software, descrevendo os componentes, suas interfaces e suas dependências. Eles podem ser utilizados tanto para modelar sistemas em um nível mais alto quanto para detalhar componentes em níveis mais específicos, como pacotes.
Esse tipo de diagrama suporta o desenvolvimento baseado em componentes, permitindo que sistemas sejam divididos em partes menores e independentes, que podem ser reutilizadas ou substituídas conforme necessário.
Os diagramas de componentes são úteis pelos seguintes motivos: - Definir os aspectos executáveis e reutilizáveis de um sistema de software. - Identificar problemas de configuração de software por meio da visualização de dependências. - Apresentar uma representação precisa de um aplicativo antes de aplicar mudanças ou aprimoramentos.
2. Desenvolvimento
Para a elaboração do artefato, foi utilizada a ferramenta Lucidchart, reconhecida por sua praticidade e recursos avançados para a criação de diagramas UML. Após consultas ao tema e revisão da solução proposta, o diagrama de componentes abaixo foi gerado para representar a arquitetura do sistema:
Imagem 1: Diagrama de Componentes
Fonte: Autoria Própria.
A arquitetura foi projetada para garantir a modularidade e clareza dos subsistemas. Cada componente possui responsabilidades bem definidas, conectando-se a outros por meio de interfaces específicas. A seguir, descrevemos os principais componentes e subcomponentes:
2.1 Componentes e Subcomponentes
- MobileApp
- Este subsistema reúne os componentes principais para o funcionamento do aplicativo móvel:
- RouterSearch: Gerencia a busca de roteadores por meio da RouterSearchInterface.
- AlertTrigger: Ativa alertas usando a Trigger Interface.
- Authentication: Responsável pela autenticação dos usuários, utilizando a Authentication Interface.
- RouterManager
- Focado no gerenciamento de roteadores e informações geográficas, este subsistema é composto por:
- Compass: Gerencia dados de orientação espacial.
- MapsAPI: Integra funcionalidades de mapas ao sistema.
- CommunityMapping: Organiza informações de mapeamento relacionadas à comunidade.
- Esses componentes utilizam interfaces como Router Inventory e Manage Router para facilitar a gestão de roteadores.
- Community
- Este subsistema gerencia os obstáculos relatados pela comunidade. Seu componente principal é:
- Obstacles: Centraliza o controle e monitoramento de obstáculos registrados.
- Accounting
- Lida com aspectos relacionados às contribuições e usuários:
- Obstacle Contribution: Gerencia as contribuições associadas a obstáculos.
- User: Centraliza o gerenciamento dos dados dos usuários, integrando-se à Manage Users Interface.
2.2 Interfaces Providas e Requeridas
-
Interfaces Providas são representadas por pequenos círculos que se conectam ao exterior dos componentes. Elas indicam as funcionalidades que um componente disponibiliza para outros.
Exemplo: A RouterSearchInterface do componente RouterSearch. -
Interfaces Requeridas são desenhadas como pequenos semicírculos. Elas indicam dependências ou serviços que o componente necessita para funcionar.
Exemplo: A Alert Communication no AlertTrigger.
2.3 Portas
As portas são os pequenos quadrados no limite de cada componente que facilitam a comunicação entre os elementos. Elas são pontos de acesso para interfaces providas ou requeridas.
2.4 Relações
As relações entre os componentes e interfaces são indicadas por: - Linhas contínuas: Representam conexões diretas entre componentes ou interfaces. - Linhas tracejadas: Representam dependências ou comunicação indireta.
2.5 Elementos do Diagrama
O diagrama utiliza os seguintes elementos: - Caixas retangulares com ícone de pasta: Representam subsistemas. - Retângulos menores: Representam componentes específicos dentro de um subsistema. - Círculos e semicírculos: Representam interfaces providas e requeridas, respectivamente. - Quadrados pequenos: Representam portas de comunicação. - Linhas (tracejadas ou contínuas): Representam relações e fluxos de informação entre os componentes.
3. Conclusão
A arquitetura apresentada reflete uma abordagem modular e escalável, na qual os subsistemas têm responsabilidades bem definidas e se comunicam exclusivamente por meio de interfaces, como Alert Communication e Authentication Interface. Essa separação clara entre os componentes facilita: - A manutenção e evolução do sistema. - A interoperabilidade entre módulos. - A adaptação a futuras necessidades e melhorias.
O uso do Lucidchart para a criação do diagrama reforçou a organização e a precisão do planejamento, garantindo um artefato visual intuitivo e funcional.
4. Referencial Teórico
Pisani da ArcH. Diagrama de Componentes na prática. Disponível em: https://m.youtube.com/watch?v=yjFpwFZHGtw&pp=ygUXZGlhZ3JhbWEgZGUgY29tcG9uZW50ZXM%3D. Acesso em: 15 nov. 2024.
IBM. Diagrama de Componentes. Disponível em: https://www.ibm.com/docs/pt-br/rsas/7.5.0?topic=services-component-diagrams. Acesso em: 16 nov. 2024.
Estudo Na Web. Entendendo o Diagrama de Componente. Disponível em: https://m.youtube.com/watch?v=2VUPhYY_YLE&pp=ygUXZGlhZ3JhbWEgZGUgY29tcG9uZW50ZXM%3D. Acesso em: 16 nov. 2024.
Visual Paradigm. What is Component Diagram?. Disponível em: https://www.visual-paradigm.com/guide/uml-unified-modeling-language/what-is-component-diagram/. Acesso em: 18 nov. 2024.
Versionamento
Versão | Data | Modificação | Autor |
---|---|---|---|
1.0 | 16/11/2024 | Criação do documento | José Luís & Pedro Vitor |
1.1 | 17/11/2024 | Descrição da introdução, Desenvolvimento, Conclusão, Referêncial teorico | José Luís & Pedro Vitor |
1.2 | 18/11/2024 | Correção e adição de novos itens no desenvolvimento | José Luís & Pedro Vitor |
1.3 | 19/11/2024 | Correção de links | Eduardo Maia |
1.4 | 19/11/2024 | Correção de referências | José Luís |
1.5 | 27/11/2024 | Correção de legendas e posição versionamento | José Luís |