-
Notifications
You must be signed in to change notification settings - Fork 0
/
thesis.tex
787 lines (662 loc) · 29.8 KB
/
thesis.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
% Arquivo LaTeX de exemplo de dissertação/tese a ser apresentada à CPG do IME-USP
%
% Criação: Jesús P. Mena-Chalco
% Revisão: Fabio Kon e Paulo Feofiloff
% Adaptação para UTF8, biblatex e outras melhorias: Nelson Lago
%
% Except where otherwise indicated, these files are distributed under
% the MIT Licence. The example text, which includes the tutorial and
% examples as well as the explanatory comments in the source, are
% available under the Creative Commons Attribution International
% Licence, v4.0 (CC-BY 4.0) - https://creativecommons.org/licenses/by/4.0/
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PREÂMBULO LaTeX %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% A opção twoside (frente-e-verso) significa que a aparência das páginas pares
% e ímpares pode ser diferente. Por exemplo, as margens podem ser diferentes ou
% os números de página podem aparecer à direita ou à esquerda alternadamente.
% Mas nada impede que você crie um documento "só frente" e, ao imprimir, faça
% a impressão frente-e-verso.
%
% Aqui também definimos a língua padrão do documento
% (a última da lista) e línguas adicionais.
\documentclass[12pt,twoside,brazilian,english]{book}
%\documentclass[12pt,twoside,english,brazilian]{book}
% Ao invés de definir o tamanho das margens, vamos definir os tamanhos do
% texto, do cabeçalho e do rodapé, e deixamos a package geometry calcular
% o tamanho das margens em função do tamanho do papel. Assim, obtemos o
% mesmo resultado impresso, mas com margens diferentes, se o tamanho do
% papel for diferente.
\usepackage[a4paper]{geometry}
\geometry{
textwidth=152mm,
hmarginratio=12:17, % 24:34 -> com papel A4, 24mm + 152mm + 34mm = 210mm
textheight=237mm,
vmarginratio=8:7, % 32:28 -> com papel A4, 32mm + 237mm + 28mm = 297mm
headsep=11mm, % distância entre a base do cabeçalho e o texto
headheight=21mm, % qualquer medida grande o suficiente, p.ex., top - headsep
footskip=10mm,
marginpar=20mm,
marginparsep=5mm,
}
% Vários pacotes e opções de configuração genéricos; para personalizar o
% resultado, modifique estes arquivos.
\input{extras/basics}
\input{extras/languages}
\input{extras/fonts}
\input{extras/floats}
\input{extras/imeusp-thesis} % capa, páginas preliminares e alguns detalhes
\input{extras/imeusp-formatting}
\input{extras/index}
\input{extras/bibconfig}
\input{extras/hyperlinks}
%\nocolorlinks % para impressão em P&B
\input{extras/source-code}
\input{extras/utils}
% Diretórios onde estão as figuras; com isso, não é preciso colocar o caminho
% completo em \includegraphics (e nem a extensão).
\graphicspath{{figures/},{logos/}}
% Comandos rápidos para mudar de língua:
% \en -> muda para o inglês
% \br -> muda para o português
% \texten{blah} -> o texto "blah" é em inglês
% \textbr{blah} -> o texto "blah" é em português
\babeltags{br = brazilian, en = english}
\newcommand{\EnToBr}[1]{\textit{\textbr{#1}}}
\newcommand{\BrToEn}[1]{\textit{\texten{#1}}}
% Bibliografia
% https://tex.stackexchange.com/questions/23117/biblatex-get-rid-of-issn-urls-and-dois-in-references
\usepackage[
%style=extras/plainnat-ime, % variante de autor-data, similar a plainnat
%style=alphabetic, % similar a alpha
style=numeric, % comum em artigos
%style=authoryear-comp, % autor-data "padrão" do biblatex
%style=apa, % variante de autor-data, muito usado
%style=abnt,
url=false,
isbn=false,
]{biblatex}
\newcommand{\Quote}[1]{\textit{``#1''}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PACOTES %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% mdframed: create boxes around text
\usepackage{mdframed}
% tikz: draw diagrams
\usepackage{tikz}
\usetikzlibrary{arrows.meta}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% RESEARCH QUESTIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mdfdefinestyle{ResearchQuestion}{%
linecolor=black,
outerlinewidth=8pt,
% outermargin=\parindent,
skipabove=\baselineskip,
skipbelow=\baselineskip,
% roundcorner=20pt,
innertopmargin=12pt,
innerbottommargin=12pt,
innerrightmargin=24pt,
innerleftmargin=24pt,
% backgroundcolor=gray!50!white
}
% Define a new counter for research questions
\newcounter{RQ}
\renewcommand{\theRQ}{\arabic{RQ}}
% Define a new counter for sub-questions
\newcounter{SubRQ}[RQ] % Resets every time RQ is incremented
\renewcommand{\theSubRQ}{\theRQ.\arabic{SubRQ}}
% Define a new environment for research questions
\newenvironment{researchquestion}{%
\refstepcounter{RQ}%
\begin{mdframed}[style=ResearchQuestion]\label{rq:\theRQ}%
\textbf{RQ\theRQ:}%
}{%
\end{mdframed}%
}
% Define a new environment for sub research questions
\newenvironment{subresearchquestion}{%
\refstepcounter{SubRQ}%
\begin{mdframed}[style=ResearchQuestion]\label{rq:\theSubRQ}%
\textbf{RQ\theSubRQ:}%
}{%
\end{mdframed}%
}
% Revisiting a Research Question
\newenvironment{revisitresearchquestion}[1]{%
\begin{mdframed}[style=ResearchQuestion]
\textbf{RQ#1:}%
}{%
\end{mdframed}%
}
% Define the label format for cleveref
% #1 is the counter, #2/#3 are the start/end of the link
\crefformat{RQ}{#2RQ#1#3}
\Crefformat{RQ}{#2RQ#1#3}
\crefformat{SubRQ}{#2RQ#1#3}
\Crefformat{SubRQ}{#2RQ#1#3}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% PUBLICATIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mdfdefinestyle{ExpectedResult}{%
linecolor=black,
outerlinewidth=8pt,
% outermargin=\parindent,
skipabove=\baselineskip,
skipbelow=\baselineskip,
% roundcorner=20pt,
innertopmargin=12pt,
innerbottommargin=12pt,
innerrightmargin=24pt,
innerleftmargin=24pt,
% backgroundcolor=gray!50!white
}
% Define a new counter for publications
\newcounter{ER}
\renewcommand{\theER}{\arabic{ER}}
% Define a new environment for publications
\newenvironment{expectedresult}{%
\refstepcounter{ER}%
\begin{mdframed}[style=ExpectedResult]\label{er:\theER}%
\textbf{ER\theER:}%
}{%
\end{mdframed}%
}
% Define the label format for cleveref
% #1 is the counter, #2/#3 are the start/end of the link
\crefformat{ER}{#2ER#1#3}
\Crefformat{ER}{#2ER#1#3}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SUPERVISIONS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\mdfdefinestyle{Supervision}{%
linecolor=black,
outerlinewidth=8pt,
% outermargin=\parindent,
% skipabove=\parskip\parskip,
% skipbelow=\baselineskip,
% roundcorner=20pt,
innertopmargin=12pt,
innerbottommargin=12pt,
innerrightmargin=24pt,
innerleftmargin=24pt,
% backgroundcolor=gray!50!white
}
% Define a new environment for publications
\newenvironment{supervision}{%
% \vspace{\baselineskip}%
\vspace{\parskip}%
\setlength{\parskip}{0pt}%
\begin{mdframed}[style=Supervision]%
}{%
\end{mdframed}%
% \vspace{\parskip}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%% METHODOLOGY PARTS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Define a new counter for phases
\newcounter{MethPhase}
\renewcommand{\theMethPhase}{\arabic{MethPhase}}
% Define a new counter for steps
\newcounter{MethStep}[MethPhase] % Resets every time MethPhase is incremented
\renewcommand{\theMethStep}{\theMethPhase.\arabic{MethStep}}
% Define new methodology phase
\newcommand{\MethodologyPhase}{\refstepcounter{MethPhase}\label{phase:\theMethPhase}}
% Define new methodology step
\newcommand{\MethodologyStep}{\refstepcounter{MethStep}\label{step:\theMethStep}}
% Define the label format for cleveref
% #1 is the counter, #2/#3 are the start/end of the link
\crefname{MethPhase}{phase}{phases}
\Crefname{MethPhase}{Phase}{Phases}
\crefname{MethStep}{step}{steps}
\Crefname{MethStep}{Step}{Steps}
% \crefformat{MethPhase}{#2phase #1#3}
% \Crefformat{MethPhase}{#2Phase #1#3}
% \crefformat{MethStep}{#2step #1#3}
% \Crefformat{MethStep}{#2Step #1#3}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CAPTION %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\newcommand\crule[3][black]{\textcolor{#1}{\rule{#2}{#3}}}
% Drawio Component Colors
\definecolor{drawio-blue}{HTML}{1ba1e2} %
\definecolor{drawio-gray}{HTML}{647687} %
\definecolor{drawio-green}{HTML}{6d8764} %
\definecolor{drawio-orange}{HTML}{fa6800} %
\definecolor{drawio-pink}{HTML}{99004D} %
\definecolor{drawio-purple}{HTML}{76608a} %
\definecolor{drawio-red}{HTML}{e51400} %
\definecolor{drawio-white}{HTML}{f9f7ed} %
\definecolor{drawio-black}{HTML}{36393d} %
\definecolor{drawio-yellow}{HTML}{e3c800} %
% Drawio Label Colors
\definecolor{drawio-violet}{HTML}{6a00ff} %
\definecolor{drawio-magenta}{HTML}{dd0073} %
\definecolor{drawio-moss}{HTML}{008a00} %
% #1: color
\newcommand{\TikzSkewedSquare}[1][black]{%
\tikz[baseline] {\draw[xslant=tan(12), transform shape, black, fill={#1}] (0,0) rectangle (1.5ex,1.5ex);}%
}
% #1: color
\newcommand{\TikzSkewedCircle}[1][black]{%
\tikz[baseline] {\draw[xslant=tan(12), yshift=0.75ex, anchor=south, transform shape, black, fill={#1}] (0,0) circle (0.75ex);}%
}
% \newcommand{\TikzTriangleArrow}{%
% \tikz[baseline=-0.5ex]\draw[->] (0,0) -- (1,0);%
% }
% #1: color, #2: color, #3: colored text
\newcommand{\LegendColoredSquare}[3]{%
\textcolor{#1}{#3}~\TikzSkewedSquare[#2]%
}
% #1: color, #2: color, #3: colored text
\newcommand{\LegendColoredCircle}[3]{%
\textcolor{#1}{#3}~\TikzSkewedCircle[#2]%
}
% #1: color, #2: text
\newcommand{\LegendColoredComponent}[2]{%
\LegendColoredSquare{drawio-#1}{drawio-#1}{#2}%
}
% #1: text
\newcommand{\LegendBWComponent}[1]{%
\LegendColoredSquare{drawio-black}{drawio-white}{#1}%
}
% #1: color, #2: text
\newcommand{\LegendColoredLabel}[2]{%
\LegendColoredCircle{drawio-#1}{drawio-#1}{#2}%
}
% \newcommand{\LegendTriangleArrow}{\TikzTriangleArrow}
% Color name with same color
\newcommand{\ColorBlue}{\textcolor{NavyBlue}{blue}}
\newcommand{\ColorGreen}{\textcolor{ForestGreen}{green}}
% #1: number, #2: text
\newcommand{\LegendService}[2]{%
\textcolor{drawio-violet}{\mbox{#2~(#1)}}%
}
\newcommand{\LegendPipeline}[2]{%
\textcolor{drawio-moss}{\mbox{#2~(#1)}}%
}
\newcommand{\LegendDataStore}[2]{%
\textcolor{drawio-magenta}{\mbox{#2~(#1)}}%
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% METADADOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% O arquivo com os dados bibliográficos para biblatex; você pode usar
% este comando mais de uma vez para acrescentar múltiplos arquivos
\addbibresource{mendeley.bib}
% Este comando permite acrescentar itens à lista de referências sem incluir
% uma referência de fato no texto (pode ser usado em qualquer lugar do texto)
%\nocite{bronevetsky02,schmidt03:MSc, FSF:GNU-GPL, CORBA:spec, MenaChalco08}
% Com este comando, todos os itens do arquivo .bib são incluídos na lista
% de referências
%\nocite{*}
% É possível definir como determinadas palavras podem (ou não) ser
% hifenizadas; no entanto, a hifenização automática geralmente funciona bem
\babelhyphenation{documentclass latexmk soft-ware} % todas as línguas
\babelhyphenation[brazilian]{Fu-la-no}
\babelhyphenation[english]{what-ever}
% Estes comandos definem o título e autoria do trabalho e devem sempre ser
% definidos, pois além de serem utilizados para criar a capa, também são
% armazenados nos metadados do PDF.
\title{
% Obrigatório nas duas línguas
titlept={
Um Modelo Arquitetural Orientado por Métricas
para Caracterizar a Complexidade de
Sistemas Baseados em Aprendizagem de Máquina%
},
titleen={
A Metrics-Oriented Architectural Model
to Characterize Complexity on
Machine Learning-Enabled Systems%
},
% Opcional, mas se houver deve existir nas duas línguas
%subtitlept={um subtítulo},
%subtitleen={a subtitle},
}
\author[mas]{Renato Cordeiro Ferreira}
% Para TCCs, este comando define o supervisor
\orientador[mas]{Prof. Dr. Alfredo Goldman vel Leijbman}
% Se não houver, remova; se houver mais de um, basta
% repetir o comando quantas vezes forem necessárias
\coorientador{Prof. Dr. Damian Andrew Tamburri}
%\coorientador[fem]{Profª. Drª. Beltrana de Tal}
% A página de rosto da versão para depósito (ou seja, a versão final
% antes da defesa) deve ser diferente da página de rosto da versão
% definitiva (ou seja, a versão final após a incorporação das sugestões
% da banca).
\defesa{
nivel=doutorado, % mestrado, doutorado ou tcc
% É a versão para defesa ou a versão definitiva?
%definitiva,
% É qualificação?
quali,
programa={Ciência da Computação},
% Em inglês, não há o "ª"
membrobanca={Prof. Dr. Alfredo Goldman vel Lejbman (advisor) -- IME-USP [sem ponto final]},
membrobanca={Prof. Dr. Maurício Aniche -- TU Delft [sem ponto final]},
membrobanca={Prof. Dr. Andre van der Hoek -- UC Irvine [sem ponto final]},
% Se não houve bolsa, remova
%
% Norma sobre agradecimento por auxílios da FAPESP:
% https://fapesp.br/11789/referencia-ao-apoio-da-fapesp-em-todas-as-formas-de-divulgacao
%
% Norma sobre agradecimento por auxílios da CAPES (Portaria 206,
% de 4 de Setembro de 2018):
% https://www.in.gov.br/materia/-/asset_publisher/Kujrw0TZC2Mb/content/id/39729251/do1-2018-09-05-portaria-n-206-de-4-de-setembro-de-2018-39729135
%
%apoio={O presente trabalho foi realizado com apoio da Coordenação
% de Aperfeiçoamento\\ de Pessoal de Nível Superior -- Brasil
% (CAPES) -- Código de Financiamento 001}, % o código é sempre 001
%
apoio={This study was financed in part by the Coordenação de
Aperfeiçoamento\\ de Pessoal de Nível Superior -- Brasil
(CAPES) -- Finance Code 001}, % o código é sempre 001
%
%apoio={Durante o desenvolvimento deste trabalho, o autor recebeu\\
% auxílio financeiro da FAPESP -- processo nº aaaa/nnnnn-d},
%
%apoio={During the development if this work, the author received\\
% financial support from FAPESP -- grant \#aaaa/nnnnn-d},
%
%apoio={Durante o desenvolvimento deste trabalho o autor
% recebeu auxílio financeiro da XXXX},
local={São Paulo},
data=2024-06-19, % YYYY-MM-DD
% A licença do seu trabalho. Use CC-BY, CC-BY-NC, CC-BY-ND, CC-BY-SA,
% CC-BY-NC-SA ou CC-BY-NC-ND para escolher a licença Creative Commons
% correspondente (o sistema insere automaticamente o texto da licença).
% Se quiser estabelecer regras diferentes para o uso de seu trabalho,
% converse com seu orientador e coloque o texto da licença aqui, mas
% observe que apenas TCCs sob alguma licença Creative Commons serão
% acrescentados ao BDTA. Se você tem alguma intenção de publicar o
% trabalho comercialmente no futuro, sugerimos a licença CC-BY-NC-ND.
direitos={CC-BY-NC}, % Creative Commons Attribution 4.0 International License
%direitos={Autorizo a reprodução e divulgação total ou parcial
% deste trabalho, por qualquer meio convencional ou
% eletrônico, para fins de estudo e pesquisa, desde que
% citada a fonte.},
% Isto deve ser preparado em conjunto com o bibliotecário
%fichacatalografica={nome do autor, título, etc.},
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% SPACING %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\widowpenalty=10000
\clubpenalty=10000
\displaywidowpenalty=10000
\interlinepenalty=10000
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%% AQUI COMEÇA O CONTEÚDO DE FATO %%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
%%%%%%%%%%%%%%%%%%%%%%%%%%% CAPA E PÁGINAS INICIAIS %%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Aqui começa o conteúdo inicial que aparece antes do capítulo 1, ou seja,
% página de rosto, resumo, sumário etc. O comando frontmatter faz números
% de página aparecem em algarismos romanos ao invés de arábicos e
% desabilita a contagem de capítulos.
\frontmatter
\pagestyle{plain}
\onehalfspacing % Espaçamento 1,5 na capa e páginas iniciais
\maketitle % capa e folha de rosto
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% DEDICATÓRIA %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{dedicatoria}
\texten{
To my parents, Alex and Elisabete, who supported me in every step
of this epic academic journey.
} \\
\bigskip
\textbr{
Para os meus pais, Alex e Elisabete, que me apoiaram em cada passo
desse épica jornada acadêmica.
} \\
\vspace{2cm}
% Esta seção é opcional e fica numa página separada; ela pode ser usada para
% uma dedicatória ou epígrafe.
\epigrafe{If you cannot measure it, you cannot improve it.}{Lord Kelvin}
\end{dedicatoria}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% AGRADECIMENTOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Reinicia o contador de páginas (a próxima página recebe o número "i") para
% que a página da dedicatória não seja contada.
\pagenumbering{roman}
% Agradecimentos:
% Se o candidato não quer fazer agradecimentos, deve simplesmente eliminar
% esta página. A epígrafe, obviamente, é opcional; é possível colocar
% epígrafes em todos os capítulos. O comando "\chapter*" faz esta seção
% não ser incluída no sumário.
\chapter*{Acknowledgements}
\epigrafe{%
By three methods we may learn wisdom: \break
first, by reflection, which is noblest; \break
second, by imitation, which is easiest; \break
and third by experience, which is the bitterest.
}{Confucius}
``It takes a tribe to raise a child''. I like to paraphrase this adage by
saying, ``It takes a lab to produce a PhD''. My PhD project is the result
of years of collaboration with friends from all around the world and all
backgrounds. Science is a group effort, and thus my results come from
learning from so many people.
I would like to thank all my friends, students, and professors at the
University of São Paulo. For years, it was my dream university. Now,
it has been my second home since 2012. There, I completed my bachelor's
and master's degree in Computer Science, and I have the pleasure of
pursuing my PhD. I cannot fathom who I would be without all those
years there. In particular, I would like to thank my supervisor,
Prof. Alfredo Goldman, whom I have known for +10 years.
This project would not be possible without you.
I also leave a special thanks to my dear friends from BCC 2012,
and all the people I met thanks to USPCodeLab. I am lucky I have
made so many friends that I cannot possibly list them all here.
I leave some special thanks to Victor Portella, Karina Awoki, and
Thatiane Rosa. You are always there to support me when I need
friends who can understand the hardships of being a PhD.
My professional career was key for making me decide on this research
theme. So many thanks to all the colleagues and friends I made at Elo7,
where I could learn in practice what it means to be a Machine Learning
Engineer. In that sense, I leave some special thanks to Ígor Bonadio
(my former boss), Samara Alves (my closest coworker), and Junior Kochi
(my fellow principal engineer). All the experiences we shared together
drive much of my thoughts during this research. Moreover, so many thanks
to my former team ``Redwyne'', in particular Vinícius Resende, Vinícius
Agostini, and Fernando Freire. All those hours developing ML-enabled
systems gave me the experience to make this PhD. Finally, thanks to my
D\&D group ``Dragões Violetas'', who started in 2020 at Elo7, for the
many adventures we shared along the way. This is a hobby
that helped me to hold myself strong during some of the harshest times.
Since 2023, I moved to the Netherlands, and the Jheronimus Academy of
Data Science (JADS) become my new home -- literally and figuratively.
I am thankful to JADS for the opportunity of coming to the Netherlands,
making my dream of studying outside Brazil a reality. Moreover, I am glad
JADS helped me to learn what it means to be a full-time researcher.
Many thanks to Prof. Damian Tamburri (my co-supervisor), Prof. Willem-Jan
van del Heuvel (our lab manager), Prof. Indika Kumara (a great source of
inspiration). I am becoming a better academic thanks to your influence.
Moreover, special thanks to my colleagues, Stefan Driesden, Nemania Borovitz,
and all other teammates, who helped to make JADS such an enjoyable
environment. Thanks to you, the Netherlands became my new home
outside of home.
Last, but definitively not least, I can only thank my family.
My parents, Alex and Elisabete, have supported my academic journey since...
forever. This PhD is as much mine as is yours. To everyone else in my
extended family -- uncles and aunts, so many cousins --, thanks for
being so patient for the many weekends I could not be there because
I was studying. I am always thinking about you. Certainly, I leave
my special thanks to my family members who are no longer here with us.
Your memories live in who I came to be. In particular, I miss my grampa
Eduardo Ferreira, who was by my side during many weekends of study.
I wish you were here to see the man I came to be.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% RESUMO/ABSTRACT %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\input{abstracts/en-US}
\input{abstracts/pt-BR}
%%%%%%%%%%%%%%%%%%%%%%%%%%% LISTAS DE FIGURAS ETC. %%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Como as listas que se seguem podem não incluir uma quebra de página
% obrigatória, inserimos uma quebra manualmente aqui.
\makeatletter
\if@openright\cleardoublepage\else\clearpage\fi
\makeatother
% Todas as listas são opcionais; Usando "\chapter*" elas não são incluídas
% no sumário. As listas geradas automaticamente também não são incluídas por
% conta das opções "notlot" e "notlof" que usamos para a package tocbibind.
% Normalmente, "\chapter*" faz o novo capítulo iniciar em uma nova página, e as
% listas geradas automaticamente também por padrão ficam em páginas separadas.
% Como cada uma destas listas é muito curta, não faz muito sentido fazer isso
% aqui, então usamos este comando para desabilitar essas quebras de página.
% Se você preferir, comente as linhas com esse comando e des-comente as linhas
% sem ele para criar as listas em páginas separadas. Observe que você também
% pode inserir quebras de página manualmente (com \clearpage, veja o exemplo
% mais abaixo).
\newcommand\disablenewpage[1]{{\let\clearpage\par\let\cleardoublepage\par #1}}
% Nestas listas, é melhor usar "raggedbottom" (veja basics.tex). Colocamos
% a opção correspondente e as listas dentro de um grupo para ativar
% raggedbottom apenas temporariamente.
\bgroup
\raggedbottom
%%%%% Listas criadas manualmente
%\chapter*{List of Abbreviations}
\chapter*{List of Abbreviations}
\begin{tabular}{rll}
CI & Continuous Integration \\
& \EnToBr{Integração Contínua} \\
CD & Continuous Delivery \\
& \EnToBr{Entrega Contínua} \\
CD4ML & Continuous Delivery for Machine Learning \\
& \EnToBr{Entrega Contínua para Aprendizado de Máquina} \\
DS & Data Science \\
& \EnToBr{Ciência de Dados} \\
IME & Institute of Mathematics and Statistics \\
& \EnToBr{Instituto de Matemática e Estatística} \\
ISE & Intelligent Software Engineering \\
& \EnToBr{Engenharia de Software Inteligente} \\
JADS & Jheronimus Academy of Data Science \\
& \EnToBr{Academia Jheronimus de Ciência de Dados} \\
MLR & Multivocal Literature Review \\
& \EnToBr{Revisão Multivocal de Literatura} \\
SE4AI & Software Engineering for Artificial Intelligence \\
& \EnToBr{Engenharia de Software para Inteligência Artificial} \\
SE4ML & Software Engineering for Machine Learning \\
& \EnToBr{Engenharia de Software para Aprendizado de Máquina} \\
SMART & Specific, Measurable, Achievable, Relevant, and Time-Bound \\
& \EnToBr{Específico, Mensurável, Atingível, Relevante, e com Tempo Limitado} \\
SLR & Systematic Literature Review \\
& \EnToBr{Revisão Sistemática de Literatura} \\
TiU & Tilburg University \\
& \EnToBr{Universidade de Tilburgo} \\
TUe & Eindhoven University of Technology \\
& \EnToBr{Universidade Técnica de Eindhoven} \\
USP & University of São Paulo \\
& \EnToBr{Universidade de São Paulo} \\
\end{tabular}
%\chapter*{List of Symbols}
% \disablenewpage{\chapter*{List of Symbols}}
% \begin{tabular}{rl}
% $\omega$ & Frequência angular\\
% $\psi$ & Função de análise \emph{wavelet}\\
% $\Psi$ & Transformada de Fourier de $\psi$\\
% \end{tabular}
%%%%% Listas criadas automaticamente
% Você pode escolher se quer ou não permitir a quebra de página
\listoffigures
% \disablenewpage{\listoffigures}
% Você pode escolher se quer ou não permitir a quebra de página
%\listoftables
\disablenewpage{\listoftables}
% Esta lista é criada "automaticamente" pela package float quando
% definimos o novo tipo de float "program" (em utils.tex)
% Você pode escolher se quer ou não permitir a quebra de página
%\listof{program}{\programlistname}
% \disablenewpage{\listof{program}{\programlistname}}
% Sumário (obrigatório)
\tableofcontents
\egroup % Final de "raggedbottom"
% Referências indiretas ("x", veja "y") para o índice remissivo (opcionais,
% pois o índice é opcional). É comum colocar esses itens no final do documento,
% junto com o comando \printindex, mas em alguns casos isso torna necessário
% executar texindy (ou makeindex) mais de uma vez, então colocar aqui é melhor.
\index{Inglês|see{Língua estrangeira}}
\index{Figuras|see{Floats}}
\index{Tabelas|see{Floats}}
\index{Código-fonte|see{Floats}}
\index{Subcaptions|see{Subfiguras}}
\index{Sublegendas|see{Subfiguras}}
\index{Equações|see{Modo Matemático}}
\index{Fórmulas|see{Modo Matemático}}
\index{Rodapé, notas|see{Notas de rodapé}}
\index{Captions|see{Legendas}}
\index{Versão original|see{Tese/Dissertação, versões}}
\index{Versão corrigida|see{Tese/Dissertação, versões}}
\index{Palavras estrangeiras|see{Língua estrangeira}}
\index{Floats!Algoritmo|see{Floats, Ordem}}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% CAPÍTULOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Aqui vai o conteúdo principal do trabalho, ou seja, os capítulos que compõem
% a dissertação/tese. O comando mainmatter reinicia a contagem de páginas,
% modifica a numeração para números arábicos e ativa a contagem de capítulos.
\mainmatter
\pagestyle{mainmatter}
% Espaçamento simples
% \singlespacing
\onehalfspacing
\input{chapters/01-introduction}
\input{chapters/02-ml-enabled-systems}
\input{chapters/03-the-spira-project}
\input{chapters/04-research-methodology}
\input{chapters/05-work-plan}
% \input{chapters/X-measuring-complexity}
%%%%%%%%%%%%%%%%%%%%%%%%%%%% APÊNDICES E ANEXOS %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
% Um apêndice é algum conteúdo adicional de sua autoria que faz parte e
% colabora com a ideia geral do texto mas que, por alguma razão, não precisa
% fazer parte da sequência do discurso; por exemplo, a demonstração de um
% teorema intermediário, as perguntas usadas em uma pesquisa qualitativa etc.
%
% Um anexo é um documento que não faz parte da tese (em geral, nem é de sua
% autoria) mas é relevante para o conteúdo; por exemplo, a especificação do
% padrão técnico ou a legislação que o trabalho discute, um artigo de jornal
% apresentando a percepção do público sobre o tema da tese etc.
%
% Os comandos appendix e annex reiniciam a numeração de capítulos e passam
% a numerá-los com letras. "annex" não faz parte de nenhuma classe padrão,
% foi criado para este modelo. Se o trabalho não tiver apêndices ou anexos,
% remova estas linhas.
%
% Diferentemente de \mainmatter, \backmatter etc., \appendix e \annex não
% forçam o início de uma nova página. Em geral isso não é importante, pois
% o comando seguinte costuma ser "\chapter", mas pode causar problemas com
% a formatação dos cabeçalhos. Assim, vamos forçar uma nova página antes
% de cada um deles.
%%%% Apêndices %%%%
\makeatletter
\if@openright\cleardoublepage\else\clearpage\fi
\makeatother
\pagestyle{appendix}
\appendix
% \addappheadtotoc acrescenta a palavra "Apêndice" ao sumário; se
% só há apêndices, sem anexos, provavelmente não é necessário.
\addappheadtotoc
\input{appendices/A-related-activities}
\par
% %%%% Anexos %%%%
% \makeatletter
% \if@openright\cleardoublepage\else\clearpage\fi
% \makeatother
% \pagestyle{appendix} % repete o anterior, caso você não use apêndices
% \annex
% % \addappheadtotoc acrescenta a palavra "Anexo" ao sumário; se
% % só há anexos, sem apêndices, provavelmente não é necessário.
% \addappheadtotoc
% %\input{conteudo/anexo-exemplo-faq}
% \par
%%%%%%%%%%%%%%% SEÇÕES FINAIS (BIBLIOGRAFIA E ÍNDICE REMISSIVO) %%%%%%%%%%%%%%%%
% O comando backmatter desabilita a numeração de capítulos.
\backmatter
\pagestyle{backmatter}
% Espaço adicional no sumário antes das referências / índice remissivo
\addtocontents{toc}{\vspace{2\baselineskip plus .5\baselineskip minus .5\baselineskip}}
% A bibliografia é obrigatória
\printbibliography[
title=\refname\label{bibliografia}, % "Referências", recomendado pela ABNT
%title=\bibname\label{bibliografia}, % "Bibliografia"
heading=bibintoc, % Inclui a bibliografia no sumário
]
% \printindex % imprime o índice remissivo no documento (opcional)
\end{document}