-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathtcc-proposal.tex
More file actions
490 lines (395 loc) · 24 KB
/
Copy pathtcc-proposal.tex
File metadata and controls
490 lines (395 loc) · 24 KB
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
\documentclass{ufsc-thesis}
\input{preamble.tex}
%----------------------------------------------------------------------
% Comandos criados pelo usuário
%----------------------------------------------------------------------
\newcommand{\todo}[1]{{\color{red}{#1}}}
\newcommand{\critical}[1]{{\color{red}\textbf{{#1}}}}
\newcommand{\verycritical}[1]{{\color{red}\textbf{\uppercase{{#1}}}}}
\definecolor{shadecolor}{rgb}{0.8,0.8,0.8}
\newcommand\VRule[1][\arrayrulewidth]{\vrule width #1}
\newcommand{\shadecell}{{\cellcolor{shadecolor}}}
\usepackage[a5paper,inner=2.5cm,outer=1.5cm,top=2.0cm,bottom=1.5cm,head=0.7cm,foot=0.7cm]{geometry}
\renewcommand{\normalsize}{\small}
%----------------------------------------------------------------------
% Identificadores do trabalho
% Usados para preencher os elementos pré-textuais
%----------------------------------------------------------------------
\titulo{Limitações das Técnicas de Geração Automática de Programas de Teste para a
Verificação de Memória Compartilhada em Multi-cores}
\autor{João Paulo Taylor Ienczak Zanette}
\data{\today}
\instituicao{Universidade Federal de Santa Catarina}
\local{Florianópolis}
\tipotrabalho{Trabalho de Conclus\~{a}o de Curso}
\orientador{Prof. Dr. Luiz Claudio Villar dos Santos}
\programa{Curso de Bacharelado em Ciências da Com\-pu\-ta\-ção}
\centro{Departamento de Informática e Estatística}
\def\bancaMembroA{\todo{A definir}}
\def\bancaMembroB{\todo{A definir}}
%----------------------------------------------------------------------
% Preâmbulo
%----------------------------------------------------------------------
\preambulo{Trabalho de Conclusão de Curso submetido ao Curso de Bacharelado em
Ciências da Computação para a obtenção do Grau de Bacharel
em Ciências da Computação.}
\assuntos{Ciências da Computação,Modelos,Teses,OpenSource,LaTeX}
\assuntos{EDA, verificação, pré-silício, memória compartilhada, multicore, coerência de cache}
\renewcommand{\imprimircapa}{%
\begin{capa}%
\center
{\ABNTEXchapterfont\large\MakeUppercase{\imprimirinstituicao}\\
\ABNTEXchapterfont\large\MakeUppercase{\imprimircentro}}
\vspace*{1cm}
{{\normalfont\large\imprimirautor}}
\vspace*{4cm}
\begin{center}
\ABNTEXchapterfont\bfseries\large\MakeUppercase{\imprimirtitulo}
\end{center}
\vfill
\large\imprimirlocal\\
\large\the\year
\vspace*{1cm}
\end{capa}
}
%--------------------------------------------------------------------------
% Início do documento
\begin{document}
%--------------------------------------------------------------------------
% Elementos pré-textuais
\pretextual
\imprimircapa
\imprimirfolhaderosto
\afterpage{\null\newpage}
%--------------------------------------------------------------------------
% folha de aprovação de proposta de TCC
\begin{snugshade}
\begin{center}
{\textbf{\small{FOLHA DE APROVAÇÃO DE PROPOSTA DE TCC}}}
\end{center}
\end{snugshade}
\vspace{-8pt}
\noindent\resizebox{\textwidth}{!}{
\footnotesize
\begin{tabular}{|l|X p{8cm}|}
\hline
\textbf{Acadêmico} & \imprimirautor \\ \hline
\textbf{Título do trabalho} & \imprimirtitulo \\ \hline
\textbf{Curso} & Ciências da Computação/INE/UFSC \\ \hline
\textbf{Área de Concentração} & \textit{Hardware} \\ \hline
\end{tabular}
}
\vspace{8pt}
{%
\small
\noindent\textbf{Instruções para preenchimento pelo \uline{ORIENTADOR DO TRABALHO}:}
\begin{itemize}[leftmargin=*,noitemsep,topsep=0pt]
\item[-] Para cada critério avaliado, assinale um X na coluna SIM
apenas se considerado aprovado. Caso contrário, indique as
alterações necessárias na coluna Observação.
\end{itemize}
}
\vspace{8pt}
\noindent\resizebox{\textwidth}{!}{%
\footnotesize
\begin{tabular}{|X p{6cm}|X p{0.5cm}|X p{0.8cm}|X p{0.5cm}|X p{1cm}|X p{3.2cm}|}
\hline
\shadecell & \multicolumn{4}{c|}{\shadecell \textbf{Aprovado}} & \shadecell \\ \hhline{*{1}{>{\arrayrulecolor{shadecolor}}-}*{4}{>{\arrayrulecolor{black}}|-}>{\arrayrulecolor{shadecolor}}|->{\arrayrulecolor{black}}}
\multirow{-1}{*}{\shadecell \textbf{Critérios}} & \shadecell\textbf{Sim} & \shadecell\textbf{Parcial} & \shadecell\textbf{Não} & \shadecell\textbf{Não se aplica} & \multirow{-1}{*}{\shadecell \textbf{Observação}} \\ \hline
1.O trabalho é adequado para um TCC no CCO/SIN (relevância/abrangência)? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
2.O título do trabalho é adequado? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
3.O tema de pesquisa está claramente descrito? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
4.O problema/hipóteses de pesquisa do trabalho está claramente identificado? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
5.A relevância da pesquisa é justificada? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
6.Os objetivos descrevem completa e claramente o que se pretende alcançar neste trabalho? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
7.É definido o método a ser adotado no trabalho? O método condiz com os objetivos e é adequado para um TCC? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
8.Foi definido um cronograma coerente com o método definido (indicando todas as atividades) e com as datas das entregas (p.ex.Projeto I, II, Defesa)? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
9.Foram identificados custos relativos à execução deste trabalho (se houver)? Haverá financiamento para estes custos? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
10.Foram identificados todos os envolvidos neste trabalho? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
11.As formas de comunicação foram definidas (ex: horários para orientação)? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
12.Riscos potenciais que podem causar desvios do plano foram identificados? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
13.Caso o TCC envolva a produção de um software ou outro tipo de produto e seja desenvolvido também como uma atividade realizada numa empresa ou laboratório, consta da proposta uma declaração (\anexoname\ \ref{decl-concor}) de ciência e concordância com a entrega do código fonte e/ou documentação produzidos? & \shadecell & \shadecell & \shadecell & \shadecell & \\ \hline
\end{tabular}
}
\vspace{12pt}
\noindent\resizebox{\textwidth}{!}{
\scriptsize
\begin{tabular}{|X p{3cm}|X p{2.35cm}|X p{1.6cm}|X p{3.4cm}|}
\hline
\textbf{Avaliação} & \multicolumn{1}{l}{\textbf{$\Box$ \footnotesize Aprovado}} & \multicolumn{2}{c|}{\textbf{$\Box$ \footnotesize Não Aprovado}} \\ \hline \hline
\textbf{Professor Responsável} & {\footnotesize \imprimirorientador} & & \\ \hline
\textbf{Orientador} & {\footnotesize \imprimirorientador} & & \\ \hline
\end{tabular}
}
\clearpage
\afterpage{\null\newpage}
%--------------------------------------------------------------------------
\begin{resumo}
\small
Multiprocessadores em chip demandam o uso de protocolos para assegurar a
consistência de memória compartilhada e a coerência de cache, os quais são
implementados via hardware. A crescente complexidade dessas implementações
torna o projeto de sistemas de memória suscetível a erros. Para endereçar
esse problema, técnicas de verificação pré-silício têm sido estudadas no
meio acadêmico. Por serem executadas em simuladores de uma plataforma real,
essas técnicas não viabilizam a execução de testes demasiado extensos.
Pensando nisso, algumas abordagens de geração adaptativa foram propostas,
procurando maximizar a cobertura funcional dos testes sem aumentar a
extensão dos mesmos. Neste trabalho é proposta a elaboração de uma nova
técnica de geração automática de testes adaptativos. A técnica será
concebida a fim de aumentar a eficácia em se expor erros de projeto no
subsistema de memória compartilhada, em especial erros de coerência, e
manter-se independente da organização da memória, permitindo o reuso em
diversos sistemas.
\vspace{\onelineskip}
\noindent
\textbf{Palavras-chave}: \listaassuntos
\end{resumo}
\afterpage{\null\newpage}
\begin{KeepFromToc}
\tableofcontents
\end{KeepFromToc}
%--------------------------------------------------------------------------
\chapter{Introdução}
Depois de ter provocado uma mudança radical na forma de se projetar
microprocessadores para PCs e servidores, o multi-processamento em
\textit{chip} ou \textit{Chip Multi-Processing (CMP)} levou ao atual quadro
onde \textit{chips} com 8 ou mais \textit{cores} são bastante comuns. Prevê-se
o uso de \textit{chips} com dezenas a centenas cores e a sobrevida da abstração
de memória compartilhada como condição para viabilizar a programação de
propósitos gerais \cite{Devadas:2013}. Isso resulta no desafio de como manter
coerência de memória compartilhada \textbf{quando se aumenta a escala do número
de cores em um único \textit{chip}}. Para suprir a abstração de memória
compartilhada coerente, o subsistema de memória torna-se mais sofisticado e,
portanto, mais suscetível a erros de projeto com o aumento massivo do número de
\textit{cores}. Além disso, como se espera que grande parte dos programas
paralelos utilize bibliotecas para sincronização, a maioria dos programadores
não precisa se preocupar com as regras de consistência \cite{Adve:1996} do
modelo de memória \cite{Hennessy:2011}, o que tende a popularizar o uso de
\textbf{modelos com máxima relaxação da ordem de programa} para aumentar o
desempenho sem comprometer a programabilidade. Isso também contribui para
aumentar a complexidade do hardware.
Portanto, a dificuldade de se validar sistemas computacionais baseados em CMP
tende a aumentar dramaticamente a cada nova geração de produtos a serem
lançados. Ora, \textbf{a validação da coerência e da consistência do subsistema
de memória compartilhada}, o qual inclui múltiplos níveis de cache e protocolos
complexos, constitui grande parte do esforço de se validar um sistema
computacional baseado em CMP \cite{Wagner:2008}. Como o número de estados
induzidos por um protocolo de coerência cresce exponencialmente com o aumento
do número de cores \cite{Shim:2013}, torna-se bastante desafiador o problema de
verificar se o projeto de um chip baseado em múltiplos \textit{cores} em larga
escala implementa corretamente o comportamento esperado para o subsistema de
memória compartilhada.
As primeiras técnicas de validação do sistema de memória foram propostas para
serem aplicadas após a fabricação (\textbf{teste} pós-silício), através da
execução de longos programas de testes aleatórios no próprio hardware do
protótipo. Infelizmente, o simples reuso dessas técnicas é inadequado em tempo
de projeto (para \textbf{verificação} pré-silício), porque seriam
demasiadamente lentas quando os programas de teste são executados em
simuladores, o que requer a limitação do tamanho do teste, o que restringe a
qualidade da verificação. Por isso, as técnicas de verificação tem se mostrado
frequentemente incapazes de encontrar erros sutis de projeto, que acabam
passando para o hardware.
%--------------------------------------------------------------------------
\chapter{Objetivos}
\section{Objetivo Geral}
O objetivo geral desta proposta é o estudo de técnicas de geração
de testes mais eficientes e eficazes, a serem aplicadas em tempo de projeto,
para solucionar o problema de verificação de consistência e coerência de
memória compartilhada em sistemas computacionais baseados em CMP.
% O primeiro objetivo específico desta proposta é o de investigar as principais
% limitações das técnicas reportadas na literatura, a fim de identificar
% oportunidades de contribuição científica.
% O segundo objetivo específico é a implementação de um protótipo de gerador de
% testes dirigidos reportado na literatura (e.g. [WAG 08] [ELV 16].) e sua
% comparação com um gerador convencional de testes aleatórios e com um gerador de
% testes aleatórios [RAM 11] sob fortes restrições [AND 16a].
\section{Objetivos Específicos}
\begin{itemize}
\item \textbf{Analisar técnicas existentes:} investigar as principais
limitações das técnicas reportadas na literatura, a fim de identificar
oportunidades de contribuição científica.
\item \textbf{Implementar um gerador de testes dirigidos:} tomar como base um
gerador reportado na literatura (e.g. \cite{Wagner:2008},
\cite{Elver:2016}).
\item \textbf{Comparar com outros geradores:} comparar o gerador implementado
com um convencional de testes aleatórios \cite{Rambo:2011} e com um de
testes aleatórios sob fortes restrições \cite{Andrade:2016a}.
\end{itemize}
%--------------------------------------------------------------------------
\section{Método de Pesquisa}
O método a ser adotado consiste na realização de experimentos sobre uma
\textbf{representação de projeto do sistema sob verificação}, ou seja, na
execução de testes através da simulação daquela representação, utilizando como
infraestrutura um \textbf{simulador} de domínio público denominado gem5
\cite{Gem5:2012}. A representação de projeto utilizada para o subsistema de
memória corresponde ao módulo \textit{Ruby} daquele simulador, a qual permite a
descrição das máquinas de estado dos protocolos de coerência.
Para desempenhar o papel de \textbf{verificador} da correção funcional do
subsistema de memória representado, será utilizada uma técnica de análise
automática dos eventos registrados durante a simulação, a qual foi desenvolvida
localmente \cite{Freitas:2013} e cujo código está portanto disponível para uso
no laboratório hospedeiro.
O protótipo de gerador de testes dirigidos será implementado com base na
descrição de seu algoritmo conforme descrito na literatura. Será escolhido o
gerador cuja descrição for mais completa e leve à melhor reprodutibilidade.
Como representante das técnicas de geração convencional de testes aleatórios
será utilizado o gerador denominado PLAIN \cite{Rambo:2011}. Como representante
das técnicas de geração convencional de testes aleatórios sob fortes restrições
será utilizado o gerador denominado CHAIN \cite{Andrade:2016a}. Os códigos dos
dois geradores estão disponíveis para uso no laboratório hospedeiro.
Os três geradores serão comparados ao se usar a mesma representação de projeto,
o mesmo simulador e o mesmo verificador acima mencionados.
Para a simulação de erros de projeto, serão utilizados como base os cinco erros
artificiais descritos em \cite{Andrade:2016b}, mas novos erros artificiais
serão desenvolvidos como parte do trabalho proposto para aumentar a abrangência
da comparação.
Para a comparação serão adotadas as seguintes métricas: cobertura funcional,
esforço computacional e probabilidade de detecção de erros.
%--------------------------------------------------------------------------
\chapter{Cronograma}
\noindent\resizebox{\textwidth}{!}{
\rowcolors{0}{shadecolor}{shadecolor}
\begin{tabular}{|X p{3cm}|c|c|c|c|c|c|c|c|c|c|c|c|}
\hline
\multirow{-1}{*}{Etapas} &
\multicolumn{12}{|c|}{Meses} \\ \hhline{|~|*{12}{-|}}
% [construir um cronograma de dois semestres alocando um total de
% - três mêses:
% atividades de 1 a 5 (superpostas);
% - um mês:
% atividade 6 (sem sobreposição com nenhuma outra)
% - 6 meses:
% atividade 7 (sem sobreposição com nenhuma outra)
% - um mês:
% atividades de 8 a 11 (superpostas)]
& jul. & ago. & set. & out. & nov. & dez. & jan. & fev. & mar. & abr. & mai. & jun. \\ \hline
\hiderowcolors Estudo dos modelos de consistência de memória
& x & & & & & & & & & & & \\ \hline
\hiderowcolors Estudo de um protocolo de coerência (MESI)
& x & x & & & & & & & & & & \\ \hline
\hiderowcolors Estudo de geradores de testes aleatórios e testes dirigidos
& x & x & x & & & & & & & & & \\ \hline
\hiderowcolors Familiarização com o simulador (gem5)
& & x & x & & & & & & & & & \\ \hline
\hiderowcolors Familiarização com a representação de memória (Ruby)
& & & x & & & & & & & & & \\ \hline
\hiderowcolors Criação e caracterização de novos erros artificiais de projeto
& & & & x & & & & & & & & \\ \hline
\hiderowcolors Implementação do protótipo do gerador de testes dirigidos
& & & & & x & x & x & x & x & x & & \\ \hline
\hiderowcolors Execução de testes produzidos com o gerador implementado
& & & & & & & & & & & x & \\ \hline
\hiderowcolors Execução de testes produzidos com o gerador PLAIN
& & & & & & & & & & & x & \\ \hline
\hiderowcolors Execução de testes produzidos com o gerador CHAIN
& & & & & & & & & & & x & \\ \hline
\hiderowcolors Comparação dos geradores de acordo com as métricas
& & & & & & & & & & & x & \\ \hline
\hiderowcolors Entrega do relatório de TCC I
& & & & & o & & & & & & & \\ \hline
\hiderowcolors Entrega do rascunho da monografia
& & & & & & & & & & & o & \\ \hline
\hiderowcolors Defesa do TCC
& & & & & & & & & & & & o \\ \hline
\end{tabular}
\footnotetext{Por técnicas entende-se aquelas já disponíveis na
infraestrutura do laboratório e outras que se apresentem implementação
em domínio público}
}
\textit{* Por técnicas entende-se aquelas já disponíveis na
infraestrutura do laboratório e outras que apresentem implementação em
domínio público}
\chapter{Custos}
\vspace{-.1cm}
\begin{tabular}{|X p{3cm}|c|c|c|}
\hline
{\shadecell} Item & {\shadecell} Quant. & {\shadecell} Valor Un. (R\$) & {\shadecell} Total (R\$) \\ \hline
\hline
\multicolumn{4}{|c|}{Material de Consumo} \\ \hline
CD & 6 & $1,50$ & $9,00$ \\ \hline
Folhas Impressas & 500 & $0,20$ & $100,00$ \\ \hline
\end{tabular}
\chapter{Recursos Humanos}
\begin{tabular}{|l|l|}
\arrayrulecolor{white}
\hline
\arrayrulecolor{black}
\hline
\rowcolor{shadecolor}
Nome & Função \\ \hline
\imprimirautor & Autor \\ \hline
\imprimirorientador & Orientador/Professor Responsável \\ \hline
Gabriel Arthur Gerber Andrade & \todo{Ver função adequada} \\ \hline
Marleson Graf & \todo{Ver função adequada} \\ \hline
% \bancaMembroA{} & Membro da Banca \\ \hline
% \bancaMembroB{} & Membro da Banca \\ \hline
Renato Cislaghi & Coordenador de Projetos \\ \hline
\end{tabular}
\chapter{Comunicação}
\noindent\resizebox{\textwidth}{!}{
\begin{tabular}{|X p{3cm}|X p{3cm}|X p{3cm}|X p{3cm}|X p{3cm}|}
\hhline{|*{5}{-|}}
{\shadecell} O que precisa ser comunicado & {\shadecell} Por quem & {\shadecell} Para quem & {\shadecell} Melhor forma de Comunicação & {\shadecell} Quando e com que frequência \\ \hhline{|*{5}{-|}}
Entregas & Autor & Coordenador de Projetos & Site do TCC & Nos dias estipulados pelas disciplinas\\ \hhline{|*{5}{-|}}
Reuniões com o orientador & Autor & Orientador & Presencial & Quinzenalmente \\ \hhline{|*{5}{-|}}
Revisões da monografia & Autor & Orientador, membros da banca & Papel impresso ou pdf & Período de elaboração da monografia\\ \hhline{|*{5}{-|}}
Dúvidas & Autor & Orientador, Membros da Banca ou Coordenador de Projetos & E-mail e/ou presencial & Quando necessário\\ \hhline{|*{5}{-|}}
\end{tabular}
}
\chapter{Riscos}
\noindent\resizebox{\textwidth}{!}{
\begin{tabular}{|X p{2cm}|c|c|c|X p{3cm}|X p{3cm}|}
\hhline{|*{6}{-|}}
{\shadecell} Risco & {\shadecell}Probabilidade & {\shadecell}Impacto & {\shadecell}Prioridade & {\shadecell}Estratégia de Resposta & {\shadecell}Ações Preventivas \\ \hhline{|*{6}{-|}}
Perda de dados (HD) & Média & Alto & Alta & Recuperação dos dados e aquisição de novo HD. & Versionar desenvolvimento remotamente. Gerar backups periodicamente. \\ \hhline{|*{6}{-|}}
Alteração no tema & Baixa & Alto & Alta & Modificar o escopo do tema ou adotar um novo tema. & Manter interação constante com orientador. \\ \hhline{|*{6}{-|}}
Alteração no cronograma & Baixa & Alto & Média & Diminuir o escopo do trabalho. & Monitorar continuamente as informações obtidas dos superiores imediatos. \\ \hhline{|*{6}{-|}}
Problemas de saúde & Baixa & Média & Média & Realizar tratamento e retomar as atividades o quanto antes. & Ter hábitos saudáveis e ser precavido. \\ \hhline{|*{6}{-|}}
\end{tabular}
}
\bibliography{references}
%--------------------------------------------------------
% Elementos pós-textuais
\begin{anexosenv}
\partanexos
\chapter{DECLARAÇÃO PADRÃO PARA EMPRESA OU LABORATÓRIO}
\label{decl-concor}
\begin{snugshade}
\begin{center}
\textbf{DECLARAÇÃO DE CONCORDÂNCIA COM AS CONDIÇÕES PARA O DESENVOLVIMENTO DO TCC NA INSTITUIÇÃO}
\end{center}
\end{snugshade}
\vspace{10pt}
Declaro estar ciente das premissas para a realização de Trabalhos de Conclusão de Curso (TCC) de Ciência da Computação e Sistema de In\-for\-ma\-ções da UFSC, particularmente da necessidade de que se o TCC envolver o desenvolvimento de um software ou produto específico (ex: um protocolo, um método computacional, etc.) o código fonte e/ou documentação completa correspondente deverá ser entregue integralmente, como parte integrante do relatório final do TCC.
Ciente dessa condição básica, declaro estar de acordo com a realização do TCC identificado pelos dados apresentados a seguir.
\vspace{20pt}
\noindent\resizebox{\textwidth}{!}{
\begin{tabular}{|l|X p{8cm}|}
\hline
\textbf{Instituição} & ECL/INE/CTC \\ \hline
\textbf{Nome do Responsável} & \imprimirorientador \\ \hline
\textbf{Cargo/Função} & Prof. INE/CTC \\ \hline
\textbf{Fone de Contato} & (48) 3721 7549\\ \hline
\textbf{Acadêmico} & \imprimirautor \\ \hline
\textbf{Título do trabalho} & Verificação pré-silício de memória baseada em testes dirigidos adaptativos\\ \hline
\textbf{Curso} & Ciências da Computação/INE/UFSC \\ \hline
\end{tabular}
}
\vspace{40pt}
\begin{flushright}
Florianópolis, 14 de Dezembro de 2015.
\end{flushright}
\vspace{20pt}
\begin{center}
\small
\parbox{7cm}{%
\centering
\rule{6cm}{1pt}\\
\textbf{Professor Responsável}\\
\imprimirorientador
}
\hfill
\end{center}
\end{anexosenv}
\end{document}