Propostas Atribuidas

DEI - FCTUC
Gerado a 2024-03-29 06:49:17 (Europe/Lisbon).
Voltar

Titulo Estágio

Análise e Modificação Automática de Código Fonte para Assistência à Internacionalização

Áreas de especialidade

Engenharia de Software

Sistemas Inteligentes

Local do Estágio

Coimbra (Taveiro)

Enquadramento

A WIT desenvolve software para Operadores de Telecomunicações, tais como o Grupo Vodafone (Europa), Deutsche Telekom (Alemanha), Reliance Jio (Índia), Singtel (Singapura), Telstra (Australia), Unitel (Angola), Eir (Irlanda), Telecom Italia (Itália), Orange (França), Telefónica (Espanha), TeliaSonera (Suécia), Belgacom (Bélgica), Post Luxembourg (Luxemburgo), Bell (Canadá), Century Link (USA) e Everything Everywhere (UK). O software desenvolvido pela WIT está presente em 42 países. Tem escritórios em Portugal e Reino Unido. Os centros de desenvolvimentos estão localizados em Coimbra, Porto e Leiria.

No âmbito de lidar com operadores de telecomunicações de todo o mundo é necessário ter o software disponível em múltiplos idiomas. Mas, para ter traduções adequadas é necessário ter informação do contexto onde as palavras ou frase são usadas, bem como de limitações de espaço ligadas à própria user-interface das aplicações.

Existem algumas ferramentas que assistem na tradução de aplicações, algumas delas com possibilidade de associar imagens. Porém, todo o trabalho de associação é feito de forma manual o que torna o processo moroso e pouco flexível.

Este estágio consiste na prototipagem de uma ferramenta que permita percorrer código fonte de forma automática, identificar e alterar zonas de texto internacionalizável de modo a que durante o uso da aplicação seja capaz de capturar o contexto correcto para inserção de texto traduzido.

Objetivo

O objetivo do estágio consiste no desenvolvimento de um protótipo de uma ferramenta capaz de identificar no código fonte a existência de texto que precisa ser internacionalizável, e modificar esse texto de modo a que após a execução da aplicação alvo exista uma associação entre uma “chave” internacionalizável, o seu “valor” num idioma referência e a respectiva imagem de captura de ecrã.
Para prova de conceito de uma ferramenta genérica, esta deverá ter um sistema de “plugins”. Os “plugins” das plataformas alvo são Android(Java) e iOS (Objective C).

A prototipagem da ferramenta será desenvolvida em 3 fases:
1. Estudo e implementação de modificações automáticas de código com os “plugins” das plataformas alvo e desenvolvimento bibliotecas auxiliares que permitam a sua execução;
2. Desenvolvimento de heurísticas de reconhecimento automático de zonas de código a modificar;
3. Exportação do resultado da execução das aplicações modificadas com definição de estruturas de dados que permitam guardar o resultado de forma agnóstica ao “plugin”/plataforma em uso e exportar para um servidor de traduções com uma API REST.
Espera-se que o aluno tenha a autonomia e capacidade crítica necessárias para recolher, analisar e estruturar toda a informação acerca de soluções existentes no mercado. Esta informação deverá ser depois aplicada no desenvolvimento do protótipo.

Segue-se a análise de requisitos do projeto, a criação de um plano de desenvolvimento e a definição de um “project backlog” com as funcionalidades desejadas. O desenvolvimento do software deverá ser feito de forma iterativa usando um processo ágil, baseado em SCRUM.

No final do estágio, deverá existir um protótipo funcional, que seja facilmente demonstrável e que mostre bem os conceitos explorados durante o estágio.

Plano de Trabalhos - Semestre 1

Para o 1º semestre estão planeadas as seguintes tarefas:
• Levantamento de estado de arte;
• Estudo de ferramentas de assistência à tradução;
• Estudo de ferramentas de reconhecimento e análise de código fonte;
• Elaboração do plano de desenvolvimento;
• Definição de arquitetura da ferramenta;
• Definição dos “fragmentos de código” a introduzir automaticamente no código da aplicação e desenvolvimento de biblioteca auxiliar que permita a sua execução;
• Como prova de conceito, deve ser feito um protótipo funcional intermédio com os “fragmentos de código” definidos no ponto anterior que sendo introduzidos manualmente no código de uma aplicação simples de referencia Android, permitam a captura automática de imagens e a associação entre cada “chave” “valor” e “imagem;
• Documentação intermédia do estágio.

Plano de Trabalhos - Semestre 2

Para o 2º semestre estão planeadas as seguintes tarefas:
• Desenvolvimento do sistema de reconhecimento de código a modificar nos “plugins” de Android/Java e iOS/ObjectiveC
• Implementação da modificação automática de código nos “plugins” de Android/Java e iOS/ObjectiveC;
• Desenvolvimento do modulo de exportação de resultados de execução das aplicações móveis modificadas;
• Preparação do protótipo para demonstrações;
• Testes funcionais;
• Testes de usabilidade;
• Avaliação de requisitos não funcionais;
• Documentação final de estágio.


Condições

O local de trabalho será no escritório da WIT Software em Taveiro (Coimbra). O aluno terá ao seu dispor os equipamentos necessários para desempenhar as suas tarefas. O estágio é remunerado. Se o desempenho do aluno ao longo do mês for positivo, terá direito a receber uma bolsa mensal.

Além da bolsa, o aluno terá acesso às formações da WIT Academy (que incluir tópicos como: iOS Programming, Android Programming, Arquitecturas de Software, Software Quality, Metodologias de Desenvolvimento de Software).

O aluno será acompanhado não só pelo orientador como por um tutor técnico que lhe dará todo o apoio necessário.

No final do estágio, o aluno terá conhecimento detalhado sobre análise e modificação de código automática. Terá conhecimentos de gerais de plataformas Android e iOS e de algumas especificidades de linguagem (Java/ObjectiveC) bem como APIs.

No final do estágio, será feita uma avaliação do estagiário e dos conhecimentos adquiridos. Se o resultado for positivo o estagiário será convidado para fazer parte da equipa de desenvolvimento.

Observações

- Toda a documentação de projeto será em Inglês.
- Será usada uma metodologia de desenvolvimento inspirada nos princípios Agile.
- Existe um Tutor e um Orientador. O Orientador define os requisitos do estágio, define as prioridades do “Backlog” e acompanha os resultados parciais do projeto. O Tutor garante o cumprimento das tarefas, promove as meetings e acompanha o aluno com mais regularidade.

Orientador

João Certo
joao.certo@wit-software.com 📩