# Thesis Template Repository
## Repository Name
`year_firstlastname`
## Repository Structure (if applicable)
- /src
- /docs
- /paper
- /slr/papers
- /slr/data
- /presentations/pdis (pdf)
- /presentations/final (pdf)
- /reports/pdis (latex + pdf)
- /reports/thesis (latex + pdf)
- /experiments
- experiment-n/rawdata
- experiment-n/processeddata
- experiment-n/forms
- experiment-n/notebooks
- `docker-compose.yml`
- `README.md`
- Link para Overleaf para PDIS
- Link para Overleaf para Tese Final
- Instrucões para execução
## Plan for PDIS
### For All
* Mind Map
* Padrões para masters: https://dl.acm.org/doi/10.1145/3361149.3361184
* SLR: ...
* Datas: ... <-
### APR (Automated Programming)
* [Pedro Silva] Automated Generic Optimization using Mutation Operators
* Optimizar métricas: (a) performance, (b) porque não outras?, (d) porque não genérico?
* Estado da arte do ponto de vista de optimização (outras métricas podem ser mais low-hanging fruit)
* Teses anteriores:
* Tiago Carvalho
* Diogo Campos + Paper APR
* Filipe Ribeiro (JScrambler)
* [Amadeu] Empirical Study on Live Automatic Program Repair
* Falta o foco:
* False Positive elimination in Mutation testing, etc.
* Program slicing + Test Localization para operar no que é necessário
* ...
* Olhar para o código do Afonso
* Teses anteriores: Diogo Campos + Paper APR
* [João Barbosa] Integrating Automated Program Repair with SDLC
* Angelix (ou outros) + Dependabot
* Teses anteriores: Diogo Campos + Paper APR
* Validação: Projectos open-source onde se faz passar por humano e contribui com fixes.
### Cloud e DevOps
* [Rui Alves] Le**veraging Serverless Computing via Automated Partitioning and Orchestration **
* Divergências:
* O que é Edge? Para este caso, é *serverless*.
* Criar anotações para partes que são "móveis".
* Validação define cenários que são validados por experiências para garantir que 1) funcionam; 2) como se comportam.
* Tiago Matias et al., [Determining Microservice Boundaries: A Case Study Using Static and Dynamic Software Analysis](https://link.springer.com/chapter/10.1007/978-3-030-58923-3_21), 2020.
* Duarte Pinto et al., [Dynamic Allocation of Serverless Functions in IoT Environments](https://doi.org/10.1109/EUC.2018.00008), 2018.
* Margarida Silva et al., [Visually-defined Real-Time Orchestration of IoT Systems](http://to-be-presented-depois-mando-o-pdf.com), 2020.
* [Henrique Lima, AWS] Change Interpretation Techniques for Safe, User-Friendly Continuous Deployment in IaC
* 0. Partimos de uma receita (chef?) para uma nova versão da receita
* 1. Diff semântico (o que é que afinal vai mudar efectivamente)
* 2. Análise de risco na infraestrutura da nova receita
* 3. Transformar a avaliação anterior num Bot que integra numa Pipeline
* Literatura:
* https://www.terraform.io/docs/commands/plan.html
* Jalagam, Sesh, et al. "Execution of a distributed deployment plan for a multi-tier application in a cloud infrastructure." U.S. Patent No. 10,031,783. 24 Jul. 2018.
* J. Scheuner, P. Leitner, J. Cito and H. Gall, "Cloud Work Bench -- Infrastructure-as-Code Based Cloud Benchmarking," 2014 IEEE 6th International Conference on Cloud Computing Technology and Science, Singapore, 2014, pp. 246-253, doi: 10.1109/CloudCom.2014.98.
* Hummer W., Rosenberg F., Oliveira F., Eilam T. (2013) Testing Idempotence for Infrastructure as Code. In: Eyers D., Schwan K. (eds) Middleware 2013. Middleware 2013. Lecture Notes in Computer Science, vol 8275. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-45065-5_19
* A. Bhattacharjee, Y. Barve, A. Gokhale and T. Kuroda, "A Model-Driven Approach to Automate the Deployment and Management of Cloud Services," 2018 IEEE/ACM International Conference on Utility and Cloud Computing Companion (UCC Companion), Zurich, 2018, pp. 109-114, doi: 10.1109/UCC-Companion.2018.00043.
* J. Sandobalin, E. Insfran and S. Abrahao, "An Infrastructure Modelling Tool for Cloud Provisioning," 2017 IEEE International Conference on Services Computing (SCC), Honolulu, HI, 2017, pp. 354-361, doi: 10.1109/SCC.2017.52.
### IoT
* [Nuno Lopes, Fraunhofer] IoT for industry 4.0
* Marcar reunião c/ Filipe Sousa
* Pq que isto é um problema de informática?
* [Pedro Costa] Decentralized Real-time IoT Orchestration
* SPOFs
* NodeRED (as an Orchestrator) as a SPOF
* MQTT (as a Communication Channel) as a SPOF
* Inter-device
* Intra-device (<- burros!)
* Outros SPOFs (?) Network; caso de um unico device tem as capabilities em questão;
* [Tiago Fragoso] Dynamic Real-time IoT Orchestration
* Intra-device communication
* Não mandar abaixo o sistema todo quando se reorquestra (1º problema, remover a necessidade de fazer redeploy de tudo on small changes) <- Diff semântico do Henrique Lima
* Existing Greedy algorithm: *meh*
* Reorchestration due to System/Device degradation: dispositivos falham, blackspots na rede, outofmemory, lowmemory, crash, carga, low power.
* Reagir a condições actuais (preventive)
* [Duarte Frazão] Preventive Self-healing for Internet of Things using NodeRED
* Prevenir condições futuras
* Runtime monitoring (self-healing context) with predictive features
* System/Device degradation: dispositivos falham, blackspots na rede, outofmemory, lowmemory, crash, carga, low power.
* [Miguel Duarte] Self-protection strategies for secure IoT systems
* Chaos monkey
* Different semantic levels
* Extensibility protocol lvl (?)
## PBT
* [Rui Guedes] Informed Search Strategies for Property Based Testing
* [Tiago Castro] Statistical Analysis in Property Based Testing