• Nenhum resultado encontrado

Seqüências de aquisição e tipos de contraste

2 REVISÃO DA LITERATURA

T 2 , respectivamente chamados de tempo de relaxação longitudinal e tempo de

2.5.5 Seqüências de aquisição e tipos de contraste

Em MRI, existem várias combinações de aplicação de pulsos de excitação e gradientes de seleção, codificação e leitura. Cada combinação é chamada de seqüência, e existem várias seqüências que são largamente utilizadas. Dependendo da seqüência utilizada é possível obter sinal de um ponto da amostra, de um plano e até de um volume inteiro.17 Embutido neste sinal está a codificação espacial, de forma

que é possível, à partir dele, reconstruir uma imagem que represente a distribuição de núcleos na amostra.

Os métodos mais utilizados são os planares, que permitem obter planos tomográficos do objeto em estudo. Nestes métodos, o primeiro passo é realizar uma excitação seletiva do plano cuja imagem se deseja obter. Assim, se apenas os núcleos de uma fatia forem excitados, o sinal observado resultante da relaxação será proveniente apenas desta fatia. Algumas seqüências tradicionais estão exemplificadas na figura a seguir.

Figura 25 - Seqüências Saturation-recovery (a), steady-state free precession (b),

inversion recovery ( c), Carr-Purcell spin-echo (d).*

As várias técnicas de aquisição utilizam de maneira distinta pulsos de RF de seleção, preparação e inversão combinados com a aplicação de gradientes. Todo o processo é repetido várias vezes para realizar a codificação de fase. Desta forma, a temporização e sincronismo dos eventos é um aspecto importante na utilização destas seqüências. Para cada seqüência específica existem parâmetros de tempo característicos que indicam as condições em que a seqüência é aplicada.

Dois parâmetros importantes, e que são comuns a diversos tipos de seqüências, são definidos: o tempo ao eco (TE) e o tempo de repetição (TR). O primeiro é o intervalo decorrido entre o pulso de excitação seletiva e o centro do eco. Como a amostragem do sinal de RMN é feita durante o eco nas seqüências que utilizam este parâmetro, é importante que TE seja menor que o tempo de relaxação transversal T2, caso contrário a amplitude de eco será muito pequena e dificultará a aquisição dos dados. O tempo de repetição é o intervalo decorrido entre dois pulsos de excitação seletiva. Este parâmetro deve ser maior que o tempo de relaxação longitudinal T1, para que a magnetização tenha tempo de voltar para a direção do campo B0 antes de ser jogada para o plano transversal novamente. Se a magnetização

não tiver voltado para o plano longitudinal completamente, apenas a parte que voltou será excitada, fazendo com que o sinal de RMN tenha menor amplitude.

Estas restrições para TE e TR são importantes pois, como materiais diferentes possuem diferentes T1 e T2, a escolha adequada de TE e TR permite fazer imagens que identifiquem os diferentes materiais. Esta característica é importante, pois distingue a modalidade de MRI de outras modalidades de sistemas de imagens para diagnóstico médico. Uma imagem de MRI representa a densidade de núcleos de determinado tipo existente no material. Até este ponto o resultado é similar a uma tomografia computadorizada de raio x. Se o material em estudo possuir diferentes partes que tenham a mesma densidade de núcleos, uma imagem de densidade não irá distinguir estas partes. Como existem tecidos biológicos que, apesar de terem a mesma densidade, possuem T1 e T2 diferentes, é possível escolher valores de TE e TR que possibilitem distinguir estes tecidos. Um exemplo típico é o caso da esclerose múltipla, uma patologia que não aparece em imagens de tomografia por raio x, mas aparece em imagens de MRI.

Os três principais tipos de contraste são densidade, T1 e T2. Uma imagem de densidade representa apenas a distribuição espacial da densidade de núcleos da espécie nuclear utilizada. Para isso, o tempo TR deve ser bem maior que o tempo T1 da parte da amostra com maior T1, permitindo que toda a amostra relaxe a cada repetição do experimento e, conseqüentemente, não haja nenhum contraste entre tecidos de diferentes T1, a não ser por densidade. Se o tempo TR é intermediário entre

os tempos T1 de regiões diferentes da amostra, a cada repetição do experimento, a magnetização longitudinal da região que possui T1 maior que TR não se recupera completamente, acarretando uma diminuição do sinal resultante desta região, que aparecerá escura na imagem. Assim, a imagem resultante apresenta um contraste entre as duas regiões, chamado de contraste por T1. De maneira similar ocorre o contraste por T2, mas neste caso o TR é grande o suficiente para a magnetização longitudinal de todos os tecidos se recuperar, e o tempo TE é que utilizado para diferenciar as regiões com diferentes T2. Neste caso, ajustando o tempo TE para um valor intermediário entre os T2 das regiões de interesse, a região com menor T2 já terá sofrido uma relação transversal enquanto a outra ainda possui magnetização no plano transverso. Assim, está última região é que contribuirá para a formação do eco e, conseqüentemente, ela aparecerá como a parte mais brilhante da imagem.

2.6 Engenharia de programação

Uma das primeiras definições de engenharia de programação foi proposta por Fritz Bauer na primeira grande conferência dedicada ao assunto:

“The establishment and use of sound engineering principles in order to obtain economically software that is reliable and works efficiently on real machines.”* (NAUR apud PRESSMAM).†

Embora muitas definições já tenham sido propostas, o aspecto importante é que todas elas destacam o requisito de se utilizar a disciplina da engenharia no desenvolvimento de programas. Ela possui três elementos chaves: métodos,

ferramentas e procedimentos. Estes elementos proporcionam a possibilidade de

tornar o desenvolvimento de programas um processo controlável e oferecem os fundamentos para se construir programas de qualidade de maneira produtiva.

Os métodos proporcionam as “receitas” técnicas de como desenvolver programas. Eles abrangem uma grande variedade de aspectos que incluem o planejamento do projeto, análise de requisitos de sistemas e seus programas, desenho de estrutura de dados, elaboração da arquitetura e algoritmos do programa, codificação, teste e manutenção. Em geral, os métodos da engenharia de programação utilizam notações baseadas na linguagem e/ou notações gráficas. Eles também introduzem um conjunto de critérios relacionados com a qualidade dos programas.

As ferramentas da engenharia de programação proporcionam meios automatizados ou semiautomatizados para auxiliar a aplicação dos métodos.

* “O estabelecimento e uso de princípios da engenharia de maneira a obter programas que sejam

economicamente viáveis, confiáveis e que funcionem eficientemente em máquinas reais.”

NAUR, P.; RANDELL, B. (eds.) Software Engineering: A report on a Conference sponsored by

Atualmente existem ferramentas para cada um dos tipos de métodos citados. Quando estas ferramentas estão integradas de maneira que as informações criadas por uma ferramenta podem ser utilizadas por outra, tem-se, então, um sistema integrado de desenvolvimento de programas (CASE - computer-aided software engineering).

Os procedimentos organizam a utilização dos métodos e ferramentas e proporcionam um desenvolvimento racional de programas. Os procedimentos definem seqüências em que os métodos devem ser aplicados, os subprodutos necessários, os mecanismos de controle para assegurar a qualidade e coordenar mudanças, e metas para proporcionar meios de avaliar o progresso do desenvolvimento dos programas.

A engenharia de programação se desenvolve em uma série de passos que envolvem métodos, ferramentas e procedimentos. Estes passos são chamados de

paradigmas da engenharia de programação. O paradigma a ser utilizado, ou

combinação de paradigmas, é escolhido de acordo com a natureza do projeto e aplicação, os métodos e ferramentas a serem utilizados, os tipos de controles e subprodutos necessários. Existem quatro paradigmas principais que são extensamente conhecidos e utilizados. Eles são:19

• o ciclo de vida clássico; • prototipagem;

• o modelo espiral;

• técnicas de quarta-geração.

O paradigma que inspirou o desenvolvimento deste trabalho foi o do ciclo de vida clássico (Figura 26). Ele estabelece uma abordagem sistemática e seqüencial para o desenvolvimento de programas. O processo de desenvolvimento de programas neste paradigma inicia-se no nível de sistemas, e continua com análise, desenho, codificação, teste e manutenção.

Figura 26 - Ciclo de vida clássico da engenharia de programação.*

A análise e engenharia de sistemas estabelece o contexto em que o programa deve ser desenvolvido. Considerando que programas são sempre parte de sistemas maiores, nesta fase são levantados os requisitos do programa no que se refere o sistema global.

A análise de requisitos estabelece as condições necessárias para o programa preencher o objetivo proposto. Historicamente, as metodologias de engenharia de programação concentraram-se na representação de sistemas, mas pouca atenção foi dada a tarefa de se descobrir o que de fato ele deveria fazer. O processo de análise de requisitos se concentra nesta tarefa, e os resultados desta atividade são os subsídios para a fase seguinte, de especificação, que descreve minuciosamente a estrutura e o funcionamento de um sistema.20

A fase de desenho, ou especificação, se concentra em quatro características básicas de programas: estrutura de dados, arquitetura do programa, detalhamento dos procedimentos e definição da interface. A especificação traduz os requisitos para uma representação detalhada do programa que pode ser extensivamente avaliada antes de se iniciar a codificação. Enquanto a análise de requisitos estabelece “o que” o programa deve ser, a especificação mostra “como” ele deve funcionar.

A codificação é a tradução da especificação para uma forma que possa ser entendida e executada pelo computador. Quanto maior for o detalhamento da especificação, mais automática é a tarefa de codificação.

O processo de teste avalia a estrutura lógica interna de um programa e a sua funcionalidade externa. Ele tem como objetivo verificar se os resultados obtidos estão de acordo com os resultados esperados.

A manutenção abrange todas as tarefas que acarretam alguma mudança no programa. Ela pode ocorrer para corrigir erros existentes; para adaptar o programa devido a mudanças no ambiente externo de operação; e para adicionar novos aspectos ao programa, atendendo a novos requisitos ou melhorando o desempenho.

O ciclo de vida clássico é o mais antigo e o mais utilizado paradigma da engenharia de programação. Várias críticas já foram levantadas abordando, principalmente, o fato dele não considerar aspectos práticos presentes no dia a dia do desenvolvimento de programas.

Entre os vários outros paradigmas propostos, merece atenção o modelo espiral (Figura 27), pois, como explicado no Capítulo 4, DISCUSSÃO, este modelo poderia ter sido mais adequado para o desenvolvimento deste trabalho.

Figura 27 - Modelo espiral da engenharia de programação.†

* PRESSMAN, R.S., 1992, p.25. PRESSMAN, R.S., 1992, p.29.

Este modelo aproveita as melhores características do ciclo de vida clássico e da prototipagem e acrescenta um novo elemento, a análise de risco. O principal aspecto deste modelo é a sua característica evolucionária. A cada volta pela espira da Figura 27 novas versões do programas são obtidas, cada uma mais completa que as outras anteriores. Estas características fazem com que este modelo seja considerado o mais realista para o desenvolvimento de grandes sistemas e programas.