este texto consiste em parte do primeiro relatório enviado à FAPESP

1. INTRODUÇÃO

A determinação do comportamento da curva-R para os materiais cerâmicos tem se constituído num importante procedimento experimental quando o interesse é a otimização da resistência ao choque térmico daqueles materiais, caracteristicamente frágeis.

A importância do trabalho com a curva-R é o estudo da possibilidade de inter-relacionar o comportamento da curva com a resistência ao dano por choque térmico. No entanto, são muitos os parâmetros que controlam a expansão da trinca e por isso é preciso muita comprovação experimental para se estabelecer definitivamente a relação que existe entre o patamar da curva e a expansão da trinca.

Daí a importância de se investir em softwares que venham acelerar a obtenção experimental da curva-R, a partir de um teste de propagação estável de trinca em arranjo de flexão.

1.1. Objetivos

Dentro do que se entende por informatização envolvida no projeto inclui-se:

a) compreensão dos modelos teóricos e das técnicas experimentais envolvidas de modo a poder se desenvolver algoritmos para cumprir tarefas específicas;

b) compreensão da automação da máquina universal de ensaios mecânicos, da MTS que é o "coração" desta pesquisa, e que gera os arquivos primários de dados, carga x deflexão, os quais serão convertidos na curva-R;

c) geração de programas amigáveis (utilizando-se as técnicas de janelas) para o cálculo da curva-R em linguagens visuais orientadas a objetos/eventos (Visual Basic convenientemente associada a C++);

d) geração de pacotes de análise de curvas-R, nos quais se calculam curvas-R através de diferentes modelos teóricos ou procedimentos experimentais.

2. PLANO DE TRABALHO

2.1. Plano de trabalho original

Inicialmente, propôs-se à realização do seguinte cronograma de trabalho:

1. Participação em reuniões de grupo para discussões técnicas.

2. Leitura de textos básicos e apenas introdutórios sobre propriedades mecânicas de materiais cerâmicos.

3. Leitura de textos básicos e apenas introdutórios sobre determinação de curva-R.

4. Estudo e aprofundamento das linguagens Basic, C++ e Visual Basic.

5. Elaboração de fluxograma do programa básico (um para cada técnica de determinação de curva-R) para a determinação da cura-R em linguagem Basic.

6. Programação em Basic do fluxograma do item 5.

7. Teste do programa básico realizado no item 6.

8. Tradução desse programa para a linguagem que permita torná-lo um aplicativo amigável. Linguagens C++ ou Visual Basic ou uma combinação das duas.

9. Teste do aplicativo desenvolvido no item 7.

10. Expansão daquele aplicativo para se tornar um pacote de análise de curva-R.

11. Teste do pacote aplicativo.

12. Divulgação do aplicativo à comunidade.

2.2 Plano de trabalho efetivamente realizado

Conforme previsto, durante todo este primeiro período da bolsa, foram realizadas reuniões de grupo para a discussão da aplicação das técnicas e métodos de obtenção de curva-R e solução de dificuldades surgidas durante sua implementação.

Porém, como a necessidade de utilização do software em desenvolvimento era urgente, os itens 5., 6., 7. e 8. do cronograma original passaram a ser cumpridos simultaneamente, à medida que se adquiria o conhecimento necessário para tal tarefa através dos itens anteriores. Esta técnica de desenvolvimento é conhecida no ramo de engenharia de software como prototipação, onde o programa é implementado ao lado do desenvolvimento do projeto, dando maior flexibilidade à correção de erros e solução de problemas que apareceriam somente no momento final, levando, às vezes, à necessidade de se reprojetar a parte defeituosa.

O aplicativo inicialmente está sendo desenvolvido com dois processos de cálculo para a obtenção da curva-R, um através de métodos numéricos, e outro, analíticos. Sendo assim, em relação ao item 5. um único fluxograma foi elaborado. Tal se refere ao processo de obtenção utilizando-se processos numéricos, por ser mais genérico e abrangente. Não se notou a necessidade de se elaborar um segundo fluxograma, mesmo porque tal forma de representação se tornaria obsoleta e ineficiente quando o software fosse engendrado nas linguagens orientadas a objetos e eventos, porém cabe bem ao propósito de representação do código original em Basic, uma linguagem não estruturada.

Sendo estas as únicas alterações feitas em relação ao plano original, o restante do trabalho foi desenvolvido conforme previsto.

3. ATIVIDADES DESENVOLVIDAS

3.1. Leitura de textos básicos e apenas introdutórios sobre propriedades mecânicas de materiais cerâmicos e determinação de curva-R.

(não disponível)

3.2. Estudo e aprofundamento das linguagens Basic, C++ e Visual Basic.

3.2.1. Interface gráfica / Visual Basic

Interfaces gráficas de usuário, ou GUIs, têm revolucionado a indústria da microcomputação. Elas demonstram que o provérbio "uma imagem vale por mil palavras" não perdeu sua veracidade. Em lugar do aviso enigmátigo C:> visto durante anos pelos usuários do DOS (e temido há tempos por muitos), os usuários agora são apresentados a uma área de trabalho cheia de ícones e com programas que utilizam mouse e menus. A longo prazo, talvez ainda mais importante do que a aparência dos aplicativos do Microsoft Windows seja o comportamento dos aplicativos desenvolvidos para ele. Normalmente, os aplicativos Windows têm uma interface de usuário consistente. Isso significa que os usuários podem passar mais tempo procurando dominar o aplicativo e menos tempo se preocupando com que seqüência de teclas fazem o quê nos menus e caixas de diálogo, como costumavam ser os antigos programas desenvolvidos para o ambiente DOS.

Embora os programadores venham demonstrando há muito tempo sentimentos confusos a respeito das GUIs, tanto os usuários principiantes quanto aqueles que necessitam do computador apenas como uma ferramenta eficiente para desenvolverem seu trabalho parecem gostar delas, e por isso, espera-se que os programas Windows baseiem-se no modelo GUI (e que tenham a aparência e o comportamento adequados). Portanto é necessária uma ferramenta para desenvolver com eficiência aplicativos com base em GUIs.

Durante muito tempo não havia tais ferramentas. Antes do lançamento do Visual Basic em 1991, o desenvolvimento de aplicativos Windows era muito mais trabalhoso que o desenvolvimento de aplicativos DOS. Os programadores tinham um excesso de itens com os quais se preocupar, como o que o mouse estava fazendo, onde um usuário se encontrava dentro de um menu, e se ele estava dando um clique ou um clique duplo em um determinado local. O desenvolvimento de aplicativos Windows exigia programadores em C experientes e centenas de linhas de código para a tarefa mais simples. Até os especialistas tinham problemas. (O Kit de Desenvolvimento de Software para Windows da Microsoft exigido, em adição ao compilador C, pesava cerca de 4,5 kg).

O Visual Basic em suas três primeiras versões começou a mudar esse processo. Agora podem ser desenvolvidos aplicativos Windows sofisticados em uma fração do tempo necessário anteriormente e erros de programação (bugs) não ocorrem com tanta freqüência e, se ocorrem, são bem mais fáceis de serem descobertos e corrigidos.

3.2.2. Linguagens Orientadas a Objeto / C++

Originalmente chamada de "C com classes", C++ foi desenvolvida por Bjarne Stroustrup nos Laboratórios Bell, em Murray Hill, New Jersey, em 1983 e abrange o C padrão. Foi uma linguagem desenvolvida principalmente para facilitar o gerenciamento, a programação e a manutenção de grandes sistemas de software.

Um dos aspectos de C mais criticado, e mais adorado é o que lhe dá virtualmente liberdade ilimitada para fazer o que quiser sem muita reclamação da linguagem. Infelizmente, em grandes projetos, onde muitos programadores usam rotinas compartilhadas, essa liberdade ilimitada pode levar a problemas maiores em virtude dos efeitos colaterais. Isto também pode acontecer em sistemas que serão transmitidos a outros desenvolvedores/programadores mais tarde, em virtude de continuação ao projeto iniciado por uma pessoa ou equipe anteriormente.

C++ tenta preservar a liberdade e o espírito de C tornando possível criar unidades funcionais tipo caixa preta que têm acesso rigorosamente controlado. Essas unidades caixa-preta são geralmente chamadas de objetos, e C++, por apresentar a possibilidade de implementação desse tipo de estrutura de dados é classificada como uma linguagem orientada a objeto. Ao contrário de linguagens como ADA ou Modula-2, em C++, o uso dessas facilidades compete ao programador, obedecendo o espírito original de C. A idéia fundamental de linguagens orientadas a objeto é a possibilidade de combinar num único registro campos que conterão dados e campos que são funções para operar os campos de dados do registro. Uma unidade assim definida é chamada classe. Uma variável de uma classe é chamada objeto e contém campos de dados e funções. Esta técnica de programação é chamada de encapsulamento.

Os elementos principais que foram adicionados à linguagem C para dar origem a C++ consistem nas classes, nos objetos e na idéia de programação orientada a objeto.

C++ é rica em recursos que atendem às limitações impostas pelas linguagens procedurais.

A programação orientada a objetos do C++ vem ao encontro da linguagem orientada a eventos do Visual Basic, pois ambos paradigmas têm em comum a comunicação através da passagem de mensagens (que é a forma como trabalha a programação com vistas ao ambiente Windows) e a idéia de encapsulamento como proteção de informação.

3.3. Elaboração de fluxograma do programa básico

(não disponível)

3.4. Programação em Basic do fluxograma do item 5.

(não disponível)

3.5. Teste do programa básico realizado no item 6.

(não disponível)

3.6. Tradução desse programa para a linguagem que permita torná-lo um aplicativo amigável. Linguagens C++ ou Visual Basic ou uma combinação das duas.

Algumas telas do software em desenvolvimento:

informações sobre o programa

entrada dos pontos da curva carga (P) versus deslocamento (D)

3.6.1. Breve explicação sobre os botões do formulário mostrado acima

(não disponível)

4. PRÓXIMAS ETAPAS

Pretende-se dar continuidade ao cronograma do plano de trabalho original (secção 2.1).

5. CONCLUSÕES

Os objetivos finais previstos para o primeiro período deste trabalho foram alcançados com sucesso, pois mesmo um certo avanço no cronograma pôde ser observado conforme descrito no item anteriror deste relatório. Os estudos sobre a determinação de curva-R associados às reuniões técnicas e sobre as linguagens e ambientes de programação com os quais este projeto se propõe a lidar introduziram conceitos fundamentais para a continuidade deste trabalho, tendo como primeiro fruto sólido um programa que é a base para a conclusão do aplicativo final.

6. DIFICULDADES ENCONTRADAS

Até o momento, as maiores dificuldades encontradas se concentram na manipulação de arquivos visando compatibilidade com outros softwares e a própria MTS. E na comunicação direta e dinâmica com certos outros aplicativos que podem ser utilizados como apoio na análise ou apresentação dos resultados obtidos, como por exemplo, o Microsoft Excell®, onde a comunicação foi conseguida sem problemas. Também encontrou-se dificuldades na hora da utilização da impressora dentro da concepção de objetos.

7. LISTAGEM DAS DISCIPLINAS

(não disponível)

8. BIBLIOGRAFIA CONSULTADA

8.1. Computação

C, completo e total / Herbert Schildt - São Paulo : Makron, McGraw-Hill, 1990

Delphi: segredos e soluções / Gary Cornell, Troy Strain - São Paulo : MAKRON Books, 1995

Segredos dos Mestres do Visual Basic 3 for Windows / Gary Entsminger - Rio de Janeiro : Berkeley, 1993

Treinamento em Linguagem C++ - Módulo 2 / Victorine Viviane Mizrahi - São Paulo : Makron Books, 1994

8.2. Engenharia de Materiais

Determinação de curva-R (monografia) / Maria de Fátima de Andrade Magon - GEMM, DEMa, UFSCar, 1995, 41 pp.

Investigation of R-curve measurement technics applied to MgO-C refractory / Mark Leverköhne - DEMa, UFSCar & AB Technische Keramik, Technische Universität Hamburg-Harburg, 1996, 46 pp.