Especificação do Trabalho: Desenvolvimento de Componentes de Software

Objetivo: Este trabalho visa o desenvolvimento de componentes de software que utilizem técnicas avançadas como metaprogramação, anotações (annotations), opcionalmente threads e coleções.

Os alunos deverão aplicar esses conceitos para criar componentes robustos e reutilizáveis, explorando a orientação a objetos.

Componentes Requeridos:

  • Componente de Envio de Email: Deve permitir a configuração e envio de emails de forma eficiente, possivelmente utilizando threads para operações assíncronas.
  • Componente de Geração de Certificados: Gerar certificados digitais personalizados, com suporte a diferentes formatos e templates.
  • Componente de Geração de Imagem: Criar ou modificar imagens dinamicamente, suportando operações como redimensionamento, aplicação de filtros ou adição de texto.
  • Componente de Autenticação: Implementar mecanismos de autenticação seguros, suportando diferentes estratégias.
  • Componente de Logging: Captura e gerenciamento de logs de aplicação.
  • Componente de Tarefas: Criação e gerenciamento de tarefas assíncronas.
  • Componente de Pagamentos: Integração com gateways de pagamento.
  • Componente de Geolocalização: Serviços para determinação e uso de localização geográfica.
  • Componente de gerador de Pagina HTML: Sistema para criação, gestão e publicação de conteúdo dinâmico.
  • Componente de Gerador de SQL:Automatiza a criação de consultas SQL minimizando erros e vulnerabilidades.
  • Componente de Gerador de Código: Facilita a geração automática de código-fonte em diversas linguagens agilizando o desenvolvimento e garantindo padrões de codificação.

Entregáveis:

Código Fonte: Implementação dos componentes com documentação interna. Artigo: Documentação detalhada sobre o design, implementação e uso dos componentes.

Apresentação: Slides e demonstração dos componentes em funcionamento.

UML e Caso de Uso: Diagramas UML representando a arquitetura dos componentes e um caso de uso real demonstrando a aplicabilidade do componente. Formação de Equipes: Até 5 alunos.

Avaliação:

Será considerada a qualidade do código, aplicação de boas práticas de desenvolvimento, completude dos entregáveis, e a eficácia na demonstração dos casos de uso.

Este trabalho desafia os alunos a pensar criativamente na solução de problemas reais através do software, incentivando a pesquisa, colaboração em equipe, e o desenvolvimento de habilidades técnicas avançadas.