| dc.contributor |
Universidade Federal de Santa Catarina. |
pt_BR |
| dc.contributor.advisor |
Berkenbrock, Gian Ricardo |
|
| dc.contributor.author |
Souza, Abner Gabriel de |
|
| dc.date.accessioned |
2026-07-12T22:05:13Z |
|
| dc.date.available |
2026-07-12T22:05:13Z |
|
| dc.date.issued |
2026-06-29 |
|
| dc.identifier.uri |
https://repositorio.ufsc.br/handle/123456789/274075 |
|
| dc.description |
TCC (graduação) - Universidade Federal de Santa Catarina, Campus Joinville, Engenharia Mecatrônica. |
pt_BR |
| dc.description.abstract |
Sistemas multitarefa são sistemas que executam diversas tarefas concorrentemente,
e estão presentes em sistemas operacionais, computação de alto desempenho, ser-
vidores e sistemas embarcados. Pelo fato de as tarefas serem concorrentes, defeitos
como condição de corrida, deadlock e inanição podem ocorrer, e dependem da ordem
específica em que o escalonador intercala as tarefas em cada execução. Tais defeitos
escapam aos testes convencionais, uma vez que uma implementação incorreta pode
produzir, em uma execução isolada, a mesma saída de uma implementação correta,
o que torna insuficiente a simples comparação entre saída obtida e saída esperada.
Este trabalho desenvolve um sistema de testes para software multitarefa, utilizando
um modelo formal em UPPAAL como oráculo de verificação. O desenvolvimento par-
tiu do levantamento de requisitos e da modelagem do estudo de caso em UPPAAL,
com a verificação das propriedades temporais relevantes em lógica temporal CTL. Em
seguida, foi implementado em Python um framework de caixa-preta que compila e
executa a implementação sob teste — ou consome diretamente os registros de exe-
cução que ela produz — captura esses registros e os confronta com o espaço de
estados derivado do modelo. A consistência do carregador foi validada por compara-
ção cruzada com os rastros oficiais gerados pelo verificador do UPPAAL. O jantar dos
filósofos foi adotado como estudo de caso por reunir os três fenômenos de interesse
em um modelo de tamanho tratável. |
pt_BR |
| dc.description.abstract |
Multitasking systems execute several tasks concurrently and are present in operating
systems, high-performance computing, servers, and embedded systems. Because
these tasks run concurrently, defects such as race conditions, deadlock, and starvation
may arise, and they depend on the specific order in which the scheduler interleaves
the tasks in each execution. Such defects escape conventional testing, since an in-
correct implementation may produce, in an isolated execution, the same output as a
correct one, which makes a simple comparison between the obtained output and the
expected output insufficient. This work develops a testing system for multitasking soft-
ware, using a formal UPPAAL model as a verification oracle. The development began
with requirements elicitation and the modeling of the case study in UPPAAL, followed
by the verification of the relevant temporal properties expressed in CTL (Computation
Tree Logic). Next, a framework was implemented in Python that compiles the imple-
mentation under test, runs the binary (one or more times, as configured), captures
the execution traces, and confronts them with the state space derived from the model.
The consistency of the loader was validated through cross-comparison with the offi-
cial traces generated by the UPPAAL verifier. The dining philosophers problem was
adopted as the case study because it brings together the three phenomena of interest
in a model of tractable size. |
pt_BR |
| dc.format.extent |
61 f. |
pt_BR |
| dc.language.iso |
por |
pt_BR |
| dc.publisher |
Joinville, SC. |
pt_BR |
| dc.rights |
Open Access. |
en |
| dc.subject |
Teste de software multitarefa |
pt_BR |
| dc.subject |
Verificação baseada em modelo |
pt_BR |
| dc.subject |
UPPAAL |
pt_BR |
| dc.subject |
Programação concorrente Análise de rastros |
pt_BR |
| dc.title |
Teste de software concorrente orientado por modelo formal |
pt_BR |
| dc.type |
TCCgrad |
pt_BR |