Titulo Estágio
xGen: Desenvolvimento ágil de software com implementação de padrões de segurança
Local do Estágio
Instituto Pedro Nunes, Coimbra
Enquadramento
A geração de código tem evoluído de forma consistente nos últimos anos, tendo as ferramentas de desenvolvimento incorporado capacidades de geração de código mais evoluídas e de mais alto nível. Além disso têm surgido cada vez mais ferramentas de muito alto nível, que permitem a criação de aplicação de forma mais rápida e com menor necessidade de conhecimentos técnicos por parte do utilizador, como por exemplo o Kony ou Mendix.
A xGen é uma plataforma RAD (Rapid Applications Development) que tem capacidade para gerar aplicações para várias arquiteturas, nomeadamente Web e Mobile. Possui como caraterística distintiva o facto de a partir da mesma configuração base ter a capacidade de gerar aplicações em várias tecnologias, e suporta arquiteturas distintas.
Objetivo
O presente estágio tem como objetivos a conceção e desenvolvimento de características específicas da plataforma xGen para a geração de aplicações web que respeitam por omissão os padrões de segurança recomendados e do desenvolvimento de templates para a criação de aplicações seguras por omissão. Para tal o estagiário vai-se focar em analisar de forma crítica os padrões de desenvolvimento de software seguro com o intuito de definir os requisitos de segurança padrão que devem ser implementados aquando da geração das aplicações. Para esta análise deverá ter-se em consideração as recomendações de desenvolvimento e a mitigação das vulnerabilidades mais comuns identificadas por entidades reconhecidas na indústria como a OWASP (ex: OWASP Top Ten e OWASP Application Security Verification Standard 4.0).
Uma vez que o desenvolvimento de software seguro recorre tipicamente ao uso de ferramentas de análise estática de código e produção e execução de testes, é expectável que sejam analisadas também as boas práticas nestes âmbitos para que sejam produzidos templates compatíveis com as ferramentas identificadas e que seja produzida a implementação/configuração necessária para a execução dos respetivos testes.
Pretende-se deste modo que esta ferramenta promova uma cultura de desenvolvimento de software seguro dentro das comunidades que usem a xGen. Assim como incrementar a velocidade de desenvolvimento do software sem diminuir o investimento dos programadores na implementação dos requisitos de segurança.
Os objetivos do estágio são:
- Aquisição de conhecimento sobre tecnologias de desenvolvimento web;
- Aquisição de conhecimento sobre boas práticas de patterns de segurança;
- Aquisição de conhecimento sobre geração de código;
- Definição dos requisitos do sistema;
- Desenho da arquitetura do sistema;
- Implementação de protótipo do sistema e templates;
- Elaboração de plano e execução de testes.
Plano de trabalhos
Fases do estágio: descrição, resultados, calendarização
Semestre 1 (Tempo parcial 16h/s, no DEI para alunos de MDM): *
[Máximo de 5000 caracteres]
Durante o 1º semestre, o projeto será composto pelas seguintes fases de desenvolvimento:
F1 – Análise do estado da arte (40% do semestre) – Análise de soluções, boas práticas e as tecnologias a usar no projeto. É esperado que sejam analisados outros projetos já desenvolvidos e em desenvolvimento de modo a identificar pontos de melhoria.
F2 – Levantamento de requisitos (30% do semestre) – esta tarefa consiste no levantamento de requisitos dos padrões a respeitar e módulos a desenvolver.
F3 – Desenho (30% do semestre) – Desenho de arquitetura das aplicações a gerar e definição da hierarquia de templates.
Nota: o relatório para defesa intermédia do estágio deverá ser escrito ao longo do semestre.
Plano de Trabalhos - Semestre 1
Durante o 1º semestre, o projeto será composto pelas seguintes fases de desenvolvimento:
F1 – Análise do estado da arte (40% do semestre) – Análise de soluções, boas práticas e as tecnologias a usar no projeto. É esperado que sejam analisados outros projetos já desenvolvidos e em desenvolvimento de modo a identificar pontos de melhoria.
F2 – Levantamento de requisitos (30% do semestre) – esta tarefa consiste no levantamento de requisitos dos padrões a respeitar e módulos a desenvolver.
F3 – Desenho (30% do semestre) – Desenho de arquitetura das aplicações a gerar e definição da hierarquia de templates.
Nota: o relatório para defesa intermédia do estágio deverá ser escrito ao longo do semestre.
Plano de Trabalhos - Semestre 2
Durante o 2º semestre, o projeto será composto pelas seguintes fases:
F4 – Implementação (70% do semestre) – Implementação dos requisitos especificados em F2, seguindo as decisões arquiteturais tomadas em F3. O desenvolvimento deverá seguir uma framework de desenvolvimento ágil, com a implementação de testes unitários e de integração.
F5 – Testes (20% do semestre) – Desenvolvimento de testes funcionais aos templates, para verificação dos requisitos. Implementação de correções aos erros detetados.
Nota: o relatório para defesa final do estágio deverá ser escrito ao longo do semestre.
Condições
Bolsa no valor de 400€ durante um período de 6 meses, mediante avaliação do estagiário a ocorrer no fim do primeiro semestre. O valor pode ser revisto em alta aquando da avaliação.
O trabalho será realizado no Laboratório de Informática e Sistemas (LIS) do Instituto Pedro Nunes (IPN).
Observações
Sem observações
Orientador
Pedro Emanuel Sousa
pesousa@ipn.pt 📩