Introdução Breve histórico dos computadores * Evolução do mundo computacional * Internet e World Wide Web * Aspectos Gerais * Um breve histórico * Infraestrutura de telecomunicação no Brasil * Aspectos sobre Engenharia de Software * Aspectos Gerais * Evolução dos Softwares * Aspectos da Interface Homem-Computador * Aspectos sobre comportamento humano no uso de um sistema computacional * Modelos de Projeto de Interface * Prototipagem * Formas de apresentação de um software * Problemas no desenvolvimento de software * Algumas considerações em relação aos softwares * Revisões de Software * Impacto do custo de defeitos de Software * Confiabilidade de Software * Manutenção de Software * Efeitos decorrentes da manutenção * Domínio da Informação * A interface e o usuário * Informatização de consultórios e clínicas no Brasil * Evolução dos usos da informática na área médica * O Tot-Clin * O Tot-Win * Breve histórico dos computadores É inegável que a sociedade moderna se rendeu à sedução de uma série de pequenos equipamentos, como microcomputadores em diferentes formas e tamanhos (de mesa, notebooks, palm tops, hand helds, além de projetos para versões de computadores que poderão ser vestidos), relógios com inúmeros recursos, aparelhos portáteis de som e televisão, telefones fixos e celulares, etc., que, a partir da segunda metade do século XX, estão mudando drasticamente as formas de trabalho e armazenamento de informações, sem nenhum precedente histórico. Nem sempre os aparelhos foram tão pequenos: no início do desenvolvimento da computação eletrônica (50 anos atrás), os equipamentos eram enormes e consumiam grandes quantidades de válvulas, e que, analogamente aos formidáveis tiranossauros que desapareceram por causa da seleção natural, foram selecionados e otimizados, tornando-se tão pequenos que funcionam a pilha e cabem no bolso. O ser humano já sonhava com máquinas que o pudessem auxiliar a executar cálculos há séculos. Exceto por alguns instrumentos como o ábaco e a régua de cálculo, uma das primeiras calculadoras registradas pela história foi construída em 1642 por Blaise Pascal, e por isto foi batizada de Pascalina. Este invento era capaz de realizar as operações matemáticas de adição e subtração, mas o fato mais importante era de que tinha capacidade de memorização, isto é, armazenamento dos resultados ( ).  imagem obtida de The MacTutor History of Mathematics Archive [ ]. A Pascalina, calculadora projetada por Blaise Pascal em 1642 com capacidade de soma, subtração, e armazenamento dos resultados [ ].  Gottfried Leibnitz, em 1671, aperfeiçoou a Pascalina, que passou a fazer as quatro operações matemáticas básicas e era capaz de extrair a raiz quadrada. Influenciado por velhas fontes chinesas, este filósofo e matemático alemão encontrou e iniciou o desenvolvimento formal da aritmética binária, que, posteriormente, tornou-se a base para os computadores eletromecânicos do século XX ( ) [ ].  imagem obtida de Ricky's Home Page [ ]. A calculadora universal, com capacidade de soma, subtração, multiplicação, divisão e raiz quadrada foi um aperfeiçoamento da máquina de Pascal feito pelo matemático alemão Gottfried Wilhelm von Leibnitz, em 1672.  Em 1801, Joseph Marie Jacquard, retomou a idéia dos cartões perfurados, porém utilizando agora folhas de cartolina dotadas de furos, que comandavam o primeiro tear totalmente automático ( ).  imagem obtida de Ricky's Home Page [ ]. Tear de Joseph Marie Jackquard.  Charles Babbage, baseado no modelo do tear mecânico de Jacquard, projetou a Máquina de Diferenças em 1822 e a Máquina Analítica em 1833, que podem ser consideradas como os primeiros computadores do mundo, capazes de memorizar padrões através do uso de cartões perfurados (figuras e ), isto é, teriam sido, mas a construção de ambas nunca foi possível com a tecnologia disponível na época.   imagem obtida de The Science Museum London [ ] Aspectos da Máquina de Diferenças. À esquerda: parte construída em 1832. À direita: aspecto do mecanismo da Máquina de Diferenças no 2, montada em 1991 para o Science Museum de Londres.   imagem obtida de NSF SUCCEED Engineering Visual Database [ ] Máquina Analítica projetada por Charles Babbage.  A assistente de Babbage, Augusta Ada King, Countess of Lovelace (filha do poeta Lord Byron), uma brilhante matemática, criou uma nova forma de interação com as invenções de Babbage usando cartões perfurados. Ela é freqüentemente lembrada como a primeira programadora de computador em decorrência desta descoberta. Em 1890, Hermann Hollerith, idealizou uma máquina também baseada em cartões perfurados, porém a sua máquina era fundamentalmente um tabulador, um contador de informações com capacidade para executar algumas operações aritméticas simples ( ). As máquinas de cartão perfurado de Hollerith permitiram que o senso americano de 1890 fosse processado em 4 semanas, o que antes demorava 7 anos. Mais tarde, Hollerith fundou sua própria empresa que, posteriormente transformar-se-ia na gigantesca IBM.  imagem obtida de Ricky's Home Page [ ]. Máquina de Hermann Hollerith (1890).  Em 1906 foi inventada a válvula por Lee de Forest. O aparecimento do computador, como concebemos atualmente, ocorreu com o surgimento da eletrônica. Em 1941, Conrad Zuse construiu a primeira calculadora elétrica do mundo, controlada por programa. De forma independente, três anos mais tarde, nos Estados Unidos, Howard Aiken desenvolveu o Mark I, também apelidado de o "Monstro de Cambridge". As máquinas destinadas à guerra vieram logo em seguida. O Colossus, como parte de um projeto de Inglaterra, continha 1.500 válvulas. O ENIAC, concluído em 1946 pela Universidade de Pensilvânia, foi encomendado pelo exército em 1943, como fruto do projeto Manhattan, em plena II Guerra Mundial, destinado a fazer cálculos balísticos. Tinha 18.000 válvulas, 1.500 relés, e ocupava uma sala de 9 por 30 metros ( ). Podia fazer 500 multiplicações por segundo, porém só armazenava vinte números de 10 dígitos. Em ambos, as válvulas tinham que ser constamente substituídas porque queimavam após poucos minutos de trabalho.  Vista geral do ENIAC em 1946. A máquina ocupava uma sala de 9 x 30 metros. Os controles aparecem à esquerda e uma pequena parte do dispositivo de saída está à direita [ ].  Estes modelos levaram ao aparecimento das primeiras máquinas fabricadas pela IBM, UNIVAC e outras grandes empresas do ramo da época. O transistor, inventado em 1948 por William Shockley, veio a substituir com maior eficiência as válvulas e foi incorporado aos computadores de segunda geração a partir de 1953. Em 1962 foram usados pela primeira vez discos magnéticos para armazenamento de informações, no computador Atlas, em substituição às imensas unidades de fita magnética. Os discos utilizados nesta época ainda eram fisicamente muito diferentes do que conhecemos atualmente. A Corrida Espacial da década de 60 pode ser considerada como um marco histórico no desenvolvimento computacional. O governo Americano investiu bilhões de dólares em pesquisas e a criação de um pólo de pesquisas avançadas, a ARPA (Advanced Research Projects Agency), que promoveu o surgimento de vários conceitos o quais foram empregados e que refletem direta e indiretamente muito do que há no mundo da informática hoje. Em 1963 começou a produção dos primeiros circuitos integrados (chips), que permitiram a junção de vários transistores em uma só pastilha de silício, o que foi um dos grandes passos, senão o maior na evolução da informática até hoje. Neste momento a eletrônica deu um salto quantitativo e qualitativo e os computadores construídos com estes chips formaram a Terceira Geração. Com isto os grandes computadores da década de 50 puderam ser reduzidos a um tamanho tão pequeno que ocupariam apenas uma fração do espaço ocupado por um dos chips atuais. Isto, de fato, chegou a ser feito por um grupo de estudantes do Departamento de Engenharia Elétrica da Universidade de Pensylvania, em 1996, comemorando os 50 anos da ativação do ENIAC. Recriaram a sua arquitetura básica e circuitos o mais fielmente possível, mas utilizando a tecnologia CMOS de hoje: o resultado do projeto "ENIAC-on-a-Chip" foi acomodar o computador em um chip de 7,44 mm x 5,29 mm x 0,5 m m ( ).  Imagem do chip construído por um grupo de estudantes do Departamento de Engenharia Elétrica da Universidade da Pensilvânia, em um projeto denominado de "ENIAC-on-a-Chip", sob supervisão de Spiegel e Ketterer, em comemoração aos 50 anos de ativação do ENIAC. Utilizou a tecnologia CMOS e acomodou todo o ENIAC em um chip de 7,44 mm x 5,29 mm x 0,5 m m [ ].  Em 1968, Gordon Moore e Robert Noyce fundaram a Intel. Outros centros de pesquisas que surgiram na década de 60 também tiveram grande papel, como o MIT (Massachusetts Institute of Technology) e o SRI (Standford Research Institute) que trabalhavam em pesquisas sobre a interação homem-máquina e cujos conceitos foram fundamentais para a evolução da micro-informática tal qual conhecemos hoje, com propostas de novos dispositivos como o mouse e interligação de computadores entre si para a troca de informações - a rede Ethernet. O PARC (Palo Alto Research Center), criado pela Xerox em 1970, também teve papel importante. Neste centro foi desenvolvida toda a base da comunicação visual através de uma interface gráfica, usando componentes em forma de ícones, janelas e a estrutura WYSIWYG (What You See Is What You Get - O que você vê é o que você obtém), que mostra na tela seu trabalho exatamente da maneira como sairá impresso. A Xerox, apesar de possuir o domínio da tecnologia desde a década de 1970, não se interessou pelos computadores pessoais - os microcomputadores. Todas as grandes empresas estavam interessadas no mercado dos computadores de grande porte, para serem implantados em empresas. Não tinham a visão de pessoas usando computadores em suas casas. O aparecimento dos microcomputadores ocorreu por volta de 1972, com a invenção dos microprocessadores. O primeiro foi lançado em 1971 pela Intel, o 4004, cujo chip tinha apenas 2.300 transistores e velocidade de processamento de 108 KHz. Em abril de 1972, a Intel lançou microprocessador 8008, o primeiro microprocessador de 8 bits. O surgimento dos microprocessadores foi decorrente do domínio da tecnologia LSI (Large Scale Integration) que permitia a junção de vários circuitos integrados em um só. Por volta de 1976, surgem nos EUA os lançamentos do PET (Personal Eletronic Transactor), Apple II e do TRS-80, os primeiros microcomputadores pessoais. Em 1977, o microcomputador Apple II é um sucesso; o valor médio do equipamento era de US$ 1.195,00 para uma configuração com 16 quilobytes de memória RAM, sem monitor. Na ocasião, em meio doméstico, era comum utilizar o aparelho de televisão como dispositivo de trabalho com o microcomputador. Em 1980, a Apple II já tinha 50% do mercado de computadores pessoais[ ]. Em 1978, a Oracle desenvolve o primeiro banco de dados relacional. Em outubro de 1979, a Software Arts lançou o primeiro programa de planilha eletrônica, Visicalc, e imediatamente foi um sucesso. O número de cópias mensais comercializadas cresceu de 500 para 12.000 entre 1979 e 1981. Em 1979 a Apple começou a desenvolver outro microcomputador, o Lisa, baseado nos conceitos que Steve Jobs tinha visto em sua visita ao PARC: a interface gráfica. Através de uma interface gráfica, o microcomputador tornava-se mais amigável. Funções antes disponíveis somente através de comandos complicados e de difícil memorização podia ser apresentado através de símbolos (ou ícones) na tela do computador. Em 1981, a IBM lança o seu PC (Personal Computer) associado ao sistema operacional MS-DOS, que se transformou pouco tempo depois em sinônimo de "microcomputador profissional". Atualmente, os sucessores deste modelo são os microcomputadores mais difundidos e utilizados mundialmente. Em 1984, a Apple introduz o Macintosh, utilizando um microprocessador de 32 bits da Motorola (64000), com 8 MHz de clock, incorporando o conceito de interface gráfica para a comunicação com o usuário. Posteriormente a Microsoft adota a interface gráfica, lançando o Windows. Diversos outros fabricantes de software criaram seus próprios ambientes gráficos, tais como o DESQ (Quaterdeck) - que foi re-desenvolvido e lançado depois como DESQView - o VisiOn (VisiCorp), o TopView (IBM) e o GEM (Digital Research). Destes, o que foi mais utilizado como suporte a diversos programas que utilizavam recursos gráficos, pelo suporte ao WYSIWYG, foi o GEM. Em novembro de 1985, a Microsoft lança o Windows 1.0 e em 1990, lança o Windows 3.0, que se torna a primeira interface gráfica para PC a ser amplamente utilizada como base para o desenvolvimento de outros sistemas. Em 1992, a Microsoft lança o Windows 3.1, corrigindo os erros da versão anterior. As vendas ultrapassaram 1 milhão de cópias. Em 1993, a Intel lança o microprocessador Pentium, com 3,3 milhões de transistores e começa a ser distribuído o Mosaic, o primeiro browser para a Web. Em 1994 é lançada a primeira versão do Netscape Navigator. Em agosto de 1995 é lançado o Windows 95, e a Netscape lança a versão 2.0 do Navigator com recursos para troca de e-mails. Em 1997, a Intel anuncia o lançamento do Pentium II, com 7,5 milhões de transistores. Em julho de 1997, a Microsoft lança o Windows 98. Em 17 de fevereiro de 2000, a Microsoft lança o Windows 2000. Existe uma grande quantidade de textos sobre a história dos computadores, disponíveis na própria Web [ , , , , , , , , , , ]. Evolução do mundo computacional Nestas duas últimas décadas a informática tem evoluído com velocidade sem paralelo na história. Recursos computacionais que há 10 anos atrás eram restritos a equipamentos de alto custo, hoje estão totalmente disponíveis para ambientes de microinformática de uso rotineiro e a custos acessíveis. São exemplos deste progresso: discos de armazenamento de dados da ordem de dezenas de gigabytes e memórias RAM da ordem de centenas de megabytes, microprocessadores e correspondentes velocidades de processamento mais elevadas ( e ), monitores e placas de vídeo com maior definição e número de cores, entre outros. Os microcomputadores atuais têm capacidade de processamento comparáveis aos minicomputadores e mainframes de pequeno porte da década de 1980. 
 Gráficos demonstrativos da evolução dos processadores quanto à velocidade e número de transistores. 
Tabela : Número de transistores e velocidade de alguns processadores produzidos pela Intel, exemplificando a evolução tecnológica que ocorreu entre 1971 e 1999. Ano | Processador | Transistores | Velocidade (clock) (MHz) | Nov/71 | 4004 | 2.300 | 0,108 | Abr/72 | 8008 | 3.500 | 0,2 | Abr/74 | 8080 | 6.000 | 2 | Jun/79 | 8088 | 29.000 | 4,77 | Fev/82 | 80286 | 134.000 | 12 | Out/85 | 386 DX | 275.000 | 16 | Abr/89 | 486 DX | 1.200.000 | 50 | Mar/93 | Pentium | 3.100.000 | 66 | Nov/95 | Pentium Pro | 5.500.000 | 180 | Mai/97 | Pentium II | 7.500.000 | 233 | Fev/99 | Pentium III | 7.500.000 | 500 |
Dados obtidos da Intel Corporation[ ]  Em 1965, Gordon Moore, um dos fundadores da Intel, previu que a densidade de transistores dos microprocessadores seria duplicada a cada 2 anos, o que ficou conhecido como "Lei de Moore". Internet e World Wide Web Aspectos Gerais A Internet é uma revolução e uma nova forma da humanidade de se relacionar com a informação. Ela rompe todas as barreiras físicas, e permite que uma pessoa em qualquer lugar da terra tenha acesso às informações que, praticamente, abrangem todas as áreas do conhecimento humano. O maior problema atual da Internet não é verificar se existe alguma área que não esteja representada, mas é selecionar as informações de qualidade e que sejam confiáveis no mundo Web. Um breve histórico A Internet teve suas origens com a ARPANET (Advanced Research Project Agency - Departamento de Defesa Americana, 1969), na época de Guerra Fria, quando era constituída pela interligação de 4 computadores. Nesta ocasião já foram implementados alguns dos recursos atualmente utilizados de forma ampla, como o e-mail[ ]. Mas a Internet somente adquiriu expressão após a invenção da World Wide Web (WWW) que é uma forma de transmissão de informações com recursos de multimídia, através da estrutura física da Internet. A Web começou em março de 1989, com Tim Berners-Lee do European Laboratory for Particle Physics (mais conhecido como CERN) quando ele propôs um novo conjunto de protocolos para um sistema de distribuição de informações da Internet [ ]. Neste momento surgiu o protocolo da WWW que foi rapidamente adotado por outras organizações, e foi constituído um consórcio de organizações, chamado de 3W Consortium (liderado pelo MIT, CERN e pelo INRA), que uniu seus recursos para prosseguir com o desenvolvimento de padrões WWW. O NCSA (National Center for Supercomputing Applications) assumiu o projeto para o desenvolvimento de um aplicativo gráfico de fácil utilização que iria estimular o desenvolvimento comercial e o suporte à WWW, lançando em 1993 o primeiro browser (Mosaic) nas plataformas Unix, Macintoch e Microsoft Windows. Em 1994, o Netscape (1994) lançou o Netscape Navigator. A partir de então, com a liberação de rede para o mercado comercial, a Internet experimentou uma explosão, tornando-se um grande meio de informação disponível mundialmente. Até 1990, a Internet comemorava o fato de que tinha 100.000 usuários, todos universitários e pesquisadores. Atualmente, somente no Brasil, estima-se que haja aproximadamente 5 milhões de usuários e as previsões são de que se alcance a marca de 8 milhões até o final de 2000. Infraestrutura de telecomunicação no Brasil O Brasil sempre teve problemas consideráveis tanto em relação à disponibilidade quanto em relação à qualidade das linhas telefônicas. Este cenário vem se modificando nestes últimos dois anos em decorrência de investimentos na modernização da infraestrutura de telecomunicação nacional, resultando no fornecimento de linhas digitais e linhas de banda larga, como as disponibilizadas pelas tecnologias ISDN e ADSL. As TVs a cabo também se tornaram uma alternativa para acesso rápido à Internet. Até o segundo semestre de 1999 só estava disponível o sistema unidirecional. A partir do primeiro semestre de 2000 vários bairros de São Paulo já estão começando a ter serviço bidirecional. A tecnologia ADSL (Asymmetric Digital Subscriber Line), permite velocidade de transferência de dados até 140 vezes superiores aos oferecidos pelos Modems analógicos atuais, através de uma linha telefônica normal. Permite que se fique conectado permanentemente na Internet com um custo fixo mensal, sem pagamento de impulsos telefônicos. Esta particularidade facilita o uso no dia a dia, pois a Internet está sempre disponível, sem necessidade de fazer uma nova conexão toda vez que se deseja usá-la. Além disto, a linha de voz continua disponível para uso normal mesmo durante a navegação na Web, porque através da divisão da linha telefônica em duas faixas de freqüências, reserva-se a faixa abaixo de 4 KHz, para a voz, e acima desta freqüência, para tráfego de dados. A palavra "assimétrica" da sigla ADSL aparece porque existe uma reserva maior de largura de banda para recepção do que para envio de dados; as velocidades de recepção podem variar de 256 quilobytes até 8 megabytes. O custo de uma linha ADSL, incluindo taxas do provedor de acesso, gira em torno de 130 reais/mês. Uma conexão do tipo ISDN baseia-se na tecnologia de uma linha telefônica especial, totalmente digital, denominada DVI (Digital Voice and Image). É composta por 2 canais independentes, pelos quais pode-se trafegar voz, dados e imagens. Permite conexão à Internet a partir de 64 Kpbs, podendo chegar a 128 Kpbs, caso as duas linhas estejam sendo utilizadas simultaneamente. Esta tecnologia também permite acessar a Internet e falar ao telefone simultaneamente. Os custos envolvidos no uso desta tecnologia são o custo de impulso da ligação e assinatura com o provedor. A TV a cabo é também uma alternativa para acesso rápido à Internet. Existem dois tipos no mercado: - Unidirecional para downstream; neste modelo é necessário o uso de linha telefônica para o envio das requisições, sendo o downstream feito de forma mais rápida pelo sistema de TV a cabo.
- Bidirecional; nesta forma é dispensável o uso de telefone, pois tanto as requisições como os downstreams são feitas através do sistema de TV a cabo.
As tecnologias de ADSL e TV a cabo são soluções com boa relação custo/benefício para usuários que utilizam a Web com muita freqüência e queiram estar permanentemente conectados, sem sacrificar uma linha telefônica. Atualmente, abril de 2000, esta tecnolgia está implementada somente em algumas regiões, embora a perspectiva seja de crescimento muito rápido no decorrer de 2000 e 2001. Aspectos sobre Engenharia de Software A engenharia de software já é uma tecnologia altamente desenvolvida e existe uma ampla literatura disponível para leitura. Alguns pontos relevantes para o desenvolvimento de um software são sumarizados a seguir. Aspectos Gerais O principal desafio nas primeiras décadas da era do computador foi desenvolver equipamentos que reduzissem os custos de processamento e armazenamento de dados. No entanto, a microeletrônica avançou e, principalmente a partir da década de 1980, esta meta começou a ser alcançada. O poder de processamento dos computadores de grande porte (mainframe) da década de 1980 estão disponíveis hoje sobre uma escrivaninha. O melhor desempenho do hardware, diminuição do tamanho e custos menores ofereceram ambiente para o aparecimento de computadores mais sofisticados. Atualmente, o problema é diferente: o principal desafio, desta década de 1990, foi melhorar a qualidade e reduzir os custos de soluções baseadas em computador, implementadas com o uso de software. Evolução dos Softwares O período compreendido entre 1950 e meados de 1960 pode ser chamado de a primeira era dos sistemas computadorizados. Caracterizou-se por mudanças freqüentes no hardware, sendo que o desenvolvimento do software era considerado por muitos, como uma atividade secundária. Os desenvolvimentos eram feitos sem uma administração mais profissional, como planejamento de prazos e custos. Os softwares eram projetados sob medida, específicos para cada aplicação, com distribuição relativamente limitada. Geralmente eram desenvolvidos para uso próprio (próprio programador ou própria organização) e, na maioria dos casos, os sistemas eram executados em ambiente batch (lote), com talvez raras exceções, como o desenvolvimento do primeiro sistema de reservas da American Airlines e os sistemas de defesa americana, que eram on-line. Devido à limitação, os hardwares eram dedicados à execução de apenas uma aplicação em cada momento. Não tinham recursos para executar multitarefa. A segunda era da evolução dos sistemas computadorizados ocorre entre meados da década de 1960 e o final da década de 1970. A multiprogramação e os sistemas multiusuários introduziram novos conceitos relacionados com a interação homem-máquina. Os softwares caracteristicamente eram utilizados para gerenciar em tempo real, com coleta, análise e transformação de dados, de várias fontes, simultaneamente. A evolução do armazenamento on-line levou ao surgimento dos sistemas de gerenciamento de banco de dados. O software passou a ser visto como um produto, não mais considerado como um simples apêndice do hardware. Este cenário possibilitou o aparecimento das "software houses". Os programas passaram a ser desenvolvidos visando a distribuição mais ampla, contando-se centenas a milhares de cópias. A terceira era da evolução dos sistemas computadorizados inicia-se em meados da década de 1970 e continua até fins da década de 1980, e é caracterizado pelos sistemas distribuídos (múltiplos computadores, cada um executando funções concomitantemente e comunicando-se um com outro), e foram os responsáveis pelo aumento da complexidade dos sistemas computacionais. Esta era é caracterizada pelas redes globais e locais, comunicações digitais de banda larga, crescente aumento de demanda por acessos on-line de dados, uso generalizado de microprocessadores, computadores pessoais e estações de trabalho de mesa. O computador pessoal foi o fator que estimulou o aparecimento e crescimento de muitas empresas de software. O hardware se torna num produto comum, com características e capacidades muito semelhantes entre eles, enquanto que o software se torna fator que os diferencia um do outro. Enquanto a taxa de crescimento das vendas dos computadores pessoais começou a se estabilizar a partir de meados de 1980, as vendas de software continuaram a crescer. As pessoas gastaram mais dinheiro com software do que com hardware [ ]. A quarta era da evolução dos sistemas computadorizados compreende o período de meados de 1980 até hoje. É caracterizada pelos poderosos sistemas de mesa, sistemas especialistas, rede neurais artificiais, processamento paralelo e tecnologias orientadas a objeto substituindo as abordagens convencionais de desenvolvimento. Talvez há 20 anos atrás menos de 1% do público fosse capaz de definir o que era um "programa de computador". Mas mesmo hoje, abril de 2000, talvez muitas pessoas, incluindo muitos profissionais, ainda não entendam realmente o que é um software, e que merece algumas considerações: - Um software é um elemento lógico, e não físico, o que lhe confere características bem diferentes do hardware.
- Um software é projetado ou desenvolvido por processo de engenharia, mas não é manufaturado no sentido convencional.
- Os aspectos determinantes de qualidade durante a manufatura de um hardware é diferente dos aspectos da produção de um software. Problemas que não existem ou que seriam facilmente corrigidos na manufatura de um software podem causar conseqüências graves na produção de um hardware. Um exemplo de problema que não existe na produção de software e que pode afetar na produção de hardware é a sala limpa na produção dos discos rígidos. Um outro exemplo é uma peça de uma linha de montagem, cujo equivalente em um software são os vários módulos e rotinas que, ao apresentar algum problema, pode causar menos distúrbio para ser substituída do que no caso de um hardware.
- Os custos do software estão principalmente concentrados na fase da engenharia.
- Software não se "desgasta". O software não é sensível aos problemas ambientais que desgastam os equipamentos, mas ele pode "deteriorar". Isto será discutido mais adiante.
- Quando um componente de hardware se desgasta, ele pode ser substituído por outro de reposição. No software não existe peça de reposição. Toda falha indica erro de projeto ou de codificação. Assim, o processo de manutenção de um software é consideravelmente mais complexo.
- Diferentemente dos projetos de hardware que podem contar com uma grande quantidade de componentes digitais disponíveis para a construção do hardware, os projetos de software não dispõem destas facilidades, pois salvo raras exceções, não existe disponibilidade de componentes de software que possam ser utilizados para montagem de novos softwares. Embora exista literatura abordando sobre a reusabilidade de software [
], implementações bem sucedidas deste conceito somente foram obtidas recentemente. Aspectos da Interface Homem-Computador Existem vários estudos que tentam compreender a forma de como o ser humano percebe o mundo através de seu sistema sensorial, mas a nossa intenção neste texto é concentrar nossa atenção apenas sobre como, qualitativamente, o ser humano interage com o computador. Através desta abordagem pode-se estabelecer os fundamentos para a elaboração das interfaces que possibilitem ao usuário de um sistema computacional receber as informações, guardá-las na memória (humana) e "processá-las", usando os raciocínios indutivo e dedutivo [ ]. Principalmente sentidos visual, tátil e auditivo são considerados na interface ser humano-computador. Apesar da tendência atual de cada vez mais os projetos de Human Computer Interface (HCI) se basearem na comunicação gráfica, grande parte das informações ainda são apresentadas na forma de texto. A leitura, o processo de extrair informações de textos através da decodificação dos padrões visuais e recuperação do significado das palavras ou frases, é uma atividade inerente à maioria das interfaces. O tamanho do texto, tipo de fonte, extensão da linha de texto, letras maiúsculas, localização e cor, todos afetam a facilidade com que ocorre a extração de informações. À medida que as informações são extraídas da interface, elas são armazenadas para posterior recuperação e uso. Além das informações, o usuário precisa lembrar dos comandos, seqüências de operação, alternativas de trabalho e outros recursos disponíveis do sistema, que nem sempre estão evidentes na interface (teclas de atalho, janelas e menus secundários, etc.). Todas essas informações são armazenadas na memória humana - um sistema extremamente complexo que, segundo se acredita atualmente, é composto de memória de curto prazo (Short-Term Memory - STM) e memória de longo prazo (Long-Term Memory - LTM) [ ]. O input sensorial (visual, auditivo, tátil) é colocado num "buffer" e depois armazenado em STM, de onde pode imediatamente ser usado. O tamanho do "buffer" e a extensão de tempo durante o qual o uso pode ocorrer são limitados. O conhecimento é mantido em LTM e forma a base de nossa resposta aprendida quando uma HCI é usada. Tanto as informações semânticas como as sintáticas são armazenadas em LTM. Caso a especificação de uma interface entre o ser humano e o computador não atenda adequadamente às características da STM e/ou LTM, o desempenho do elemento humano pode ter menor rendimento. Aspectos sobre comportamento humano no uso de um sistema computacional As pessoas são diferentes umas das outras, e isto pode interferir como elas utilizam sistemas baseados em computador, que extrapolam o simples aspecto dos elementos básicos da percepção humana; fatores como nível de habilidade individual, variações de personalidade e distinções comportamentais também interferem no processo. Uma mesma interface, usada por duas pessoas com a mesma educação e formação cultural, mas com personalidades completamente diferentes, poderia parecer adequada para uma pessoa e inadequada para outra. Deve-se considerar que cada usuário de computador tem uma personalidade particular. Na maioria dos casos, a personalidade de um indivíduo está intimamente ligada ao seu estilo cognitivo. A HCI deve ser projetada para acomodar diferenças de personalidade ou, alternativamente, é projetada para acomodar uma personalidade "típica" de uma categoria de usuários. Em maior ou menor grau, a proliferação de sistemas baseados em computador fez eclodir em algumas pessoas um fenômeno de medo irracional em relação a produtos e sistemas de alta tecnologia. À medida que o nosso conhecimento em relação ao elemento humano é ampliado e a HCI é projetada de modo a acomodar cada vez mais as necessidades humanas em relação aos sistemas baseados em computador, é possível que o nível de "terror tecnológico" seja reduzido significativamente [ ]. Modelos de Projeto de Interface Todo projeto deve iniciar-se com um entendimento sobre os usuários finais aos quais o sistema se destina, incluindo características como a idade, sexo, capacidades físicas, educação, "bagagem" cultural ou técnica, motivação, metas e personalidade. Os usuários podem ser classificados como: - Usuários principiantes: sem conhecimento da mecânica do uso da interface do sistema e pouco conhecimento semântico (compreensão das funções que são executadas, do significado da entrada e saída, e dos objetivos dos sistema) da aplicação ou uso do computador em geral.
- Usuários instruídos e intermitentes: razoável conhecimento semântico da aplicação, mas relativamente pouca lembrança de informações da mecânica de uso da interface.
- Usuários instruídos e freqüentes: bom conhecimento semântico e da mecânica de uso da interface, indivíduos capazes de procurar atalhos e modos abreviados de interação.
Prototipagem A prototipagem é uma etapa que permite ao engenheiro de software criar um modelo experimental do sistema a ser desenvolvido. O modelo pode ter essencialmente três formas: - em papel ou usando um microcomputador para apresentar a forma que se prevê para a interação entre o ser humano e a máquina;
- software parcial, com módulos e funções selecionados entre os que constarão na versão final;
- um software com todos os módulos, que executa parte ou todas as funções desejadas, mas que têm características que ainda precisarão ser melhoradas e otimizadas através de uma nova fase de desenvolvimento.
Formas de apresentação de um software Um programa de computador é construído usando-se uma linguagem de programação, que tem repertório finito de vocábulos, estruturação, regras de sintaxe e semântica bem definidas. Um programa de computador pode existir em duas formas: - interpretada: que depende de um interpretador, para converter os comandos em instruções nativas do computador, à medida que são solicitadas pelo programa;
- executável: que depende de um compilador para converter previamente os comandos em instruções de linguagem de máquina, posteriormente gerando um programa independente, denominado de executável, através de um segundo programa (linker).
A desvantagem no uso de linguagens interpretadas é que exige que o usuário possua o programa interpretador, o que implica em custo adicional; maior lentidão na execução, pois o interpretador consome tempo em sua tarefa; e obriga o fornecimento do código fonte com todos os comandos utilizados no software. A forma de apresentação do programa final é um dos aspectos considerados quando se define uma ferramenta de desenvolvimento, como será discutido adiante. Problemas no desenvolvimento de software O sucesso do desenvolvimento de um software depende do gerenciamento adequado de vários fatores e da superação dos problemas. Alguns dos problemas mais significativos são relacionados a seguir: - Imprecisão na estimativa de prazos e de custos.
- Insuficiência de produtividade dos profissionais das áreas de software para acompanhar a demanda.
- Qualidade dos softwares desenvolvidos inferior à desejada (índice de falhas muito elevado causando falta de confiança do usuário no sistema).
Alguns problemas que podem ser menos evidentes: - Tempo insuficiente para colher dados sobre o processo a ser automatizado pelo software. O tempo necessário é variável de acordo com o conhecimento e a experiência do entrevistador em relação ao assunto abordado, ou à disponibilidade de conhecimentos prévios para serem usados como referência na entrevista.
- A insatisfação dos usuários com o sistema "final" pode ocorrer muito freqüentemente. Os projetos de desenvolvimento de software muitas vezes não levam em consideração as necessidades e/ou características do usuário.
- Suspeitas em relação à capacidade do software executar corretamente as funções propostas. Só recentemente é que se começou a entender a importância dos testes sistemáticos de software, surgindo conceitos quantitativos concretos de confiabilidade e garantia de qualidade do software.
- A tarefa de manutenção do software consome grande parte dos recursos financeiros. A capacidade de manutenção do software por uma empresa deve ser vista como um critério importante para a sua aceitação.
Algumas considerações em relação aos softwares - O desenvolvimento de software é um processo criativo e não um processo mecânico igual à manufatura. Brooks [
] afirma que "...acrescentar pessoas em um projeto de software atrasado torna-o ainda mais atrasado". Para alguns, esta afirmação pode parecer contra-intuitiva em um primeiro momento, mas é fácil perceber que quando novas pessoas são acrescentadas, as pessoas que estavam trabalhando precisam gastar tempo "educando" os recém-chegados, o que diminui a disponibilidade de tempo para serem dedicados ao desenvolvimento produtivo. Somente sob condições bem planejadas e bem coordenadas é que a inclusão de novas pessoas não causa problema no cronograma produtivo. Este planejamento deve levar em consideração a necessidade de um período para integração dos novos elementos à equipe. - Uma declaração geral dos objetivos de um software não é suficiente para se começar o desenvolvimento. Os detalhes nem sempre podem ser inseridos mais tarde. Uma definição inicial incompleta é uma das principais causas de fracasso no desenvolvimento de um software. Uma descrição formal e detalhada das informações a serem gerenciadas, das funções, do desempenho esperado, do HCI, das restrições do projeto, e dos critérios de validação são fundamentais. Um projeto mal definido inicialmente pode gerar problemas que impedirão que todas as exigências sejam atendidas, à semelhança de um prédio cuja fundação não atenda às necessidades estruturais e seja mal dimensionada para a carga final que deverá suportar.
- Especificações de um projeto não podem ser continuadamente modificadas. Flexibilidade de software tem limites, e nem sempre todas as mudanças podem ser facilmente acomodadas. É fato que os requisitos de software são passíveis de modificações no decorrer do desenvolvimento de um projeto, mas o impacto da mudança varia de acordo com o período em que ela é introduzida (
). Se uma atenção minuciosa for dada à definição inicial, os primeiros pedidos de mudança podem ser acomodados mais facilmente. O usuário pode rever as exigências e recomendar modificações sem causar impacto muito grande sobre os custos nas fases iniciais. Em fases posteriores o impacto será muito maior.  Impacto relativo de custos para a implementação de mudanças em diferentes fases do desenvolvimento de um software (modificado de PRESSMAN, 1995 [ ]).  - O trabalho de desenvolvimento de um programa não se encerra quando ele é colocado em funcionamento. Lientz [
], afirma que os dados da indústria indicam que entre 50 e 70% de todo o esforço gasto em um software serão despendidos depois que o mesmo é entregue ao cliente. - É possível avaliar a qualidade de um programa mesmo que ele ainda não esteja em utilização efetiva. Um dos mecanismos importantes para a garantia da qualidade de um software é a sua revisão técnica formal [
], que pode ser aplicada desde o início do projeto. São mais eficientes do que a realização exclusiva de testes para a identificação de defeitos de software [ ]. Revisões de Software Num processo de engenharia de software, as revisões são um tipo de "filtro" e devem ser aplicadas em vários pontos da programação durante o desenvolvimento do software para descobrir defeitos passíveis de correção. Freedman e Weinberg [ ], discutem a necessidade de fazer revisões da seguinte maneira: "O trabalho técnico precisa de revisão pelo mesmo motivo que os lápis precisam de borrachas: errar é humano. A razão pela qual precisamos de revisões técnicas é que, apesar das pessoas captarem bem alguns de seus próprios erros, grandes quantidades de erros escapam mais facilmente de quem lhes deu origem, do que de outras pessoas." Uma revisão é uma maneira de aproveitar melhor a diversidade de um grupo de pessoas para: - apontar melhorias necessárias ao trabalho de uma única pessoa ou equipe;
- confirmar as partes de um produto em que uma melhoria não é desejada ou não é necessária;
- realizar um trabalho técnico com uma qualidade mais uniforme ou, pelo menos, mais previsível do que aquilo que pode ser realizado sem revisões, de forma a tornar esse trabalho técnico mais administrável.
Impacto do custo de defeitos de Software O grande benefício das revisões técnicas formais é a identificação precoce dos defeitos de software, de forma que cada defeito seja corrigido antes de se passar para a fase seguinte do processo de engenharia de software. Pressman [ ] relata que uma série de estudos conduzidos pelas indústrias (TRW, Nippon Eletric, Mitre Corp., entre outras) apontaram que as atividades de projeto são responsáveis pela inserção de 50% a 60% de todos os erros durante a fase de desenvolvimento. Jones [ ] demonstrou que as técnicas de revisão formal são efetivas em até 75% para a detecção de falhas de projeto. Ao detectar e suprimir uma grande quantidade desses erros, o processo de revisão reduz substancialmente o custo dos passos subseqüentes nas fases de desenvolvimento e manutenção. Confiabilidade de Software Em termos estatísticos, a confiabilidade de software é definida como "a probabilidade de operação livre de falhas de um programa de computador num ambiente específico durante determinado tempo" [ ]. A confiabilidade de um software de computador é um elemento fundamental para sua qualidade global. Se um programa deixar de funcionar repetidamente, pouco importa se outros fatores de qualidade de software são aceitáveis. Manutenção de Software A manutenção de software, que ocorre após a liberação para o usuário, pode representar mais de 70% de todos os esforços gastos por uma organização que os desenvolve. A manutenção é bem mais complexa do que o simples "consertar erros" e pode ser classificada em quatro atividades: - Correção de erros.
- Adaptação.
- Aprimoramento.
- Melhoria de confiabilidade.
Estas atividades serão detalhadas posteriormente. Efeitos decorrentes da manutenção A modificação de software é um processo perigoso e delicado. Provavelmente já se ouviu várias vezes a seguinte expressão: "...mas mudei apenas este comando...". Infelizmente, toda vez que é feita uma mudança numa complexa estrutura lógica, o potencial de erros aumenta. A consulta à documentação dos projetos e cuidadosos testes ajudam a detectar e eliminar erros, que podem acarretar as seguintes conseqüências: Conseqüências na codificação Uma mudança, por mais simples que seja, mesmo que seja num único comando, pode causar importantes alterações no funcionamento do programa comprometendo a sua confiabilidade e eficiência. Conseqüências nos dados Podem ocorrer como resultado de modificações feitas na estrutura da tabela de dados do software ou na forma como os dados são processados. As rotinas que trabalhavam com os dados, mas que não foram adequadamente preparados para lidar com as novas alterações, podem produzir erros diretos nos dados ou erros de análise. Conseqüências na documentação A manutenção deve englobar todos os aspectos do software e não somente as modificações no código-fonte. Quando as mudanças não são refletidas na documentação do projeto ou nos manuais destinados ao usuário, o comportamento, a avaliação das conseqüências das alterações, o planejamento e a administração do software podem ser comprometidos. Domínio da Informação Todos os softwares são construídos para processar dados e transformá-los de uma forma em outra, ou seja, aceitar uma entrada, manipulá-la e produzir uma saída. Para que se faça corretamente este processo, é fundamental ter o conhecimento das informações que serão inseridas e o domínio de como devem ser processadas para gerar a saída. O processamento correto é que determina da confiabilidade do sistema. A interface e o usuário Os sistemas operacionais e os programas aplicativos tiveram evolução significativa com a popularização dos ambientes gráficos, que, além de introduzirem o conceito de ícone, incorporaram capacidade de multimídia. Os ambientes gráficos estimularam o desenvolvimento da área que estuda HCI, que visa a analisar e a elaborar com maior nível de precisão científica os projetos relacionados com a melhoria da comunicação entre o ser humano e o computador, como por exemplo, a padronização de conjuntos de ícones para serem utilizadas em programas diferentes, mas definindo as mesmas funções. Isto permitiu maior velocidade de aprendizado dos usuários para os softwares de um mesmo sistema operacional. Foi proporcionado pelo Windows no ambiente dos microcomputadores IBM PC e pelo Apple Macintosh e seu sistema operacional. Informatização de consultórios e clínicas no Brasil A informatização dos consultórios e clínicas teve impulso no Brasil, por volta de 1985, após a consolidação do microcomputador IBM PC como modelo padrão para uso profissional, aliada a disponibilização cada vez maior de softwares e linguagens de desenvolvimento para estes equipamentos. Neste período, a interface de comunicação entre os sistemas operacionais e o ser humano era, fundamentalmente, baseada em caracteres (MS-DOS, o mais predominante), apesar do microcomputador Apple Macintosh ter sido lançado em 1984, com a interface gráfica como a principal forma de comunicação com o usuário, e ter incorporado recursos de multimídia no sistema operacional. Os ambientes gráficos somente se tornaram o principal meio de interface com o usuário com a consolidação do Microsoft Windows como ambiente gráfico padrão para os microcomputadores IBM PC compatíveis. O crescente interesse pela informatização de consultórios e clínicas começou quando os microcomputadores ficaram mais baratos e suas capacidades de armazenamento e processamento alcançaram uma boa relação custo/benefício para uso diário. Em torno de 1988, a configuração básica de um conjunto computacional, no Brasil, era representada por um microcomputador compatível com IBM PC XT, com disco rígido de 20 ou 30 megabytes, 640 quilobytes de memória RAM, placa gráfica CGA, monitor monocromático, impressoras matriciais de 9 agulhas e 80 colunas, com custo em torno de US$ 3.000,00. O desenvolvimento de programas baseados em banco de dados para microcomputadores teve grande impulso com o lançamento da linguagem dBase II, por volta de 1982, pela Ashton Date, que simplificou a elaboração de programas para lidar de forma ágil com o armazenamento de dados. Esta linguagem e seus sucessores (dBase III e dBase III Plus) popularizaram-se em pouco tempo e tornaram-se referência. Por serem linguagens interpretadas, criavam alguns inconvenientes como a necessidade do usuário adquirir versões oficiais do dBase, dificuldade de esconder os códigos fontes e menor velocidade de processamento. Com isto, várias empresas começaram a desenvolver alternativas que permitissem aos programadores elaborarem e distribuírem softwares em formas executáveis (programas já traduzidos para instruções nativas do computador), mas que utilizavam sintaxe de programação semelhante ao dBase e mantinham o banco de dados em padrão DBF. Esta alternativa foi amplamente adotada pelos programadores. Em 1985 a empresa Nantucket lançou o Clipper'85 Winter que teve grande sucesso; depois lançou novas versões como Clipper'86 Autumn, Clipper'87 Summer (dezembro de 1987), Clipper 5.0, Clipper 5.01, Clipper 5.2 e Clipper 5.3. As linguagens de desenvolvimento de banco de dados, que funcionavam em ambiente Windows, sucederam as que funcionavam em MS-DOS e foram lançadas com aprimoramento significativo dos recursos para a construção da interface com o usuário e melhoramento na integridade de dados. Esta nova geração de linguagens viabilizou a elaboração de aplicativos que passaram a incorporar recursos de imagens e multimídia. O sucesso do padrão de armazenamento do dBase foi tão grande que mesmo hoje muitos programas comerciais lêem dados armazenados neste formato, bem como ainda são usadas linguagens de programação que herdaram sua sintaxe. Estas linguagens incorporaram o conjunto de comandos do dBase, implementaram novos recursos e melhoraram o gerenciamento do banco de dados, como é o caso do Microsoft Visual FoxPro, podendo utilizar rotinas antigas, desenvolvidas em dBase, muitas vezes exigindo apenas algumas adaptações simples. Quanto ao formato de banco de dados do dBase original, a evolução foi bastante conservadora e não houve perda importante de compatibilidade, o que facilita a migração dos dados antigos. A aparente facilidade para desenvolver sistemas utilizando um banco de dados, parece ter criado, no período de 1985, uma euforia que gerou distorções no desenvolvimento de sistemas médicos. Neste período não era comum dedicar muito tempo para estudar e padronizar como as informações deveriam ser armazenadas nos programas médicos para clínicas e consultórios, analisar o uso de termos médicos padronizados, possibilidade de intercâmbio de dados, modularidade e continuidade de desenvolvimento. Ouvia-se com certa freqüência que "o filho do meu amigo é muito bom em computador e vai informatizar tudo", em reuniões técnicas com potenciais usuários. Este erro levou vários médicos a amargarem prejuízos com equipamentos mal aproveitados, gastos com treinamento para uso de sistemas que foram abandonados pouco tempo depois, e perdas indiretas como provocar diminuição de confiança das pessoas envolvidas nos processos de informatização, em relação aos sistemas, e conseqüente resistência às implementações futuras. A preocupação com treinamento de recursos humanos e manutenção do software, incluindo suporte e aprimoramento, também não eram considerados como critérios importantes para decidir sobre a aquisição de um programa computacional. Alguns, na ânsia de informatizar, decidiram fazer desenvolvimentos independentes com contratação de analistas de sistemas para desenvolvimento específico e particularizado, imaginando que a comunicação e os entendimentos com estes profissionais seriam muito fáceis. O resultado após alguns anos de trabalho, em geral, foi frustrante com a constatação de elevados custos diretos de desenvolvimento, programas inacabados e que muitas vezes não funcionavam, além dos custos indiretos como o tempo pessoal gasto em reuniões e treinamentos. Este foi um período no qual identificou-se a necessidade de um profissional com formação híbrida, um médico com conhecimentos de informática, que pudesse conduzir um processo de informatização de forma dinâmica e independente, inclusive nas questões referentes à concepção de recursos computacionais para as atividades médicas, com definição de recursos de software, hardware e capacitação humana para a integração efetiva de um sistema computacional em um ambiente médico. Foi, nesta época, 1987, que foi criada a Residência de Informática Médica, ligada ao grupo responsável pela Disciplina de Informática Médica do Departamento de Patologia da Faculdade de Medicina da USP, que visava a formar médicos especialistas nesta área. Evolução dos usos da informática na área médica Na área médica o uso da informática ocorreu de forma muito irregular. Algumas especialidades tiveram maior interação com a informática, como a Radiologia, Ultra-sonografia, Oftalmologia, Patologia Clínica e Medicina Nuclear, entre outras, devido à incorporação da tecnologia computacional nos equipamentos utilizados. Nestes casos, a evolução foi mais expressiva no suporte a hardware, pois o objetivo primordial dos softwares era oferecer recursos que facilitassem o uso dos equipamentos pelos usuários. Esta evolução ocorria de forma isolada e independente do contexto da tecnologia de informação médica, uma vez que os fabricantes centravam-se nos equipamentos como instrumentos de medição e avaliação, como aqueles utilizados em laboratórios de análise clínica, sem a preocupação de integrá-los aos bancos de dados que contivessem outros dados dos pacientes. O uso dos computadores como coadjuvantes para a aquisição de dados estava aquém dos seus potenciais. Somente nos conjuntos mais recentes é que se verificou a preocupação com esta integração, enviando-se resultados de exames através das redes para que possam ser utilizados por outros sistemas. As estruturas que tiveram evolução mais contínua, no contexto da estratégia da informação, foram os ambientes corporativos, como os hospitalares, que investiram em equipes de desenvolvimento e manutenção de sistemas (CPD). Porém, mesmos nestes, em grande parte, a informatização concentrou-se nos aspectos administrativos, deixando em segundo plano a informatização dos aspectos clínicos e assistenciais. O desenvolvimento de sistemas hospitalares tem alto custo e a aquisição de sistemas prontos também é cara, além de, na sua maioria, exigirem adaptações trabalhosas. Os planos de saúde foram outras organizações que fizeram importantes investimentos em CPD, porém, centrando o desenvolvimento nos aspectos administrativos relacionados com o controle de recebimento de mensalidades e aspectos ditos como assistenciais, mas que visavam a finalidades de auditoria médica, tais como controle dos serviços médicos consumidos pelos seus usuários e pagamentos à rede credenciada. Talvez devido ao fator econômico menos expressivo ou talvez pela menor participação da comunidade médica, a informatização em pequenos núcleos médicos, como um consultório e/ou clínica, teve pouca expressividade quanto aos aspectos de aprimoramento tecnológico, continuidade de desenvolvimento e elaboração de bancos de dados de informação médica de apoio. A maioria dos softwares médicos também se centrou nos problemas administrativos, deixando os aspectos médicos para segundo plano. A falta de desenvolvimento e de aperfeiçoamento continuados dos softwares médicos disponíveis no mercado marcou esta última década. Os softwares apareciam e desapareciam com extrema rapidez. Talvez pelo fato de não atenderem às expectativas financeiras, as empresas rapidamente abandonavam a área médica, causando descontinuidade na evolução dos produtos. Vários usuários foram obrigados a trocar seus sistemas, com conseqüente mudança de banco de dados, além de serem obrigados a fazer novos investimentos em treinamento em decorrência da falta de suporte e/ou impossibilidade de incorporar novos recursos. Como costuma acontecer no início quando uma nova tecnologia começa a ser utilizada, o desenvolvimento ocorre por surtos, de forma descentralizada, pois cada núcleo desenvolve o seu próprio modelo trazendo falta de padronização para o funcionamento dos sistemas forçando o usuário a ter que se submeter a um novo treinamento ao mudar de um sistema para outro. Ausência de um padrão de protocolo de dados também prejudica o intercâmbio de informações entre os sistemas, ainda que ambos utilizem o mesmo tipo de banco de dados e/ou linguagem de desenvolvimento, fazendo com que as transferências de dados continuem a ser feitas através de documentos em papel. Paradoxalmente, um ambiente médico informatizado, por causa da falta de compatibilidade, pode estar isolado pelo uso desta mesma informática. O Tot-Clin É neste cenário histórico que desenvolvi o meu primeiro modelo para informatização de consultórios e clínicas, o Tot-Clin (inicialmente denominado de G-Clin [ ]), utilizando a linguagem Clipper'87 Summer como ferramenta. O fator motivador inicial para este desenvolvimento foi o atendimento das necessidades de uma clínica específica, visando-se a eliminar problemas relacionados com a replicação de trabalhos decorrentes da repetição da transcrição de informações de identificação dos pacientes na ficha de cadastro, na ficha clínica, nos pedidos de exame, etc., além de agilizar a localização dos prontuários dos pacientes. No procedimento manual, a procura da ficha do paciente era feita utilizando-se dois arquivos, um ordenado por nome e outro por número de registro. A transcrição repetida de dados foi eliminada com a emissão de etiquetas de identificação, e a localização dos prontuários com recursos de busca informatizada a partir do nome, sobrenome ou número de registro. Poucos meses depois, os módulos do Tot-Clin foram analisados novamente, com uma abordagem mais ampla. O objetivo agora era a reestruturação do sistema para suprir as necessidades de um número maior de usuários. Em parte devido à insuficiência de recursos tecnológicos dos equipamentos e em parte devido ao maior interesse dos usuários em agilizar os aspectos administrativos e financeiros, o Tot-Clin, assim como a maioria dos programas desenvolvidos nesta época, era marcantemente voltado para estas atividades, embora já tivesse vários recursos para uso assistencial. Estes foram gradativamente aprimorados nas versões posteriores e foram implementadas novas características, como será descrito adiante. A partir de 1989, o desenvolvimento Tot-Clin tornou-se mais expressivo, porque passou a ser tratado como ferramenta básica de automação em consultórios e clínicas, quando adquiriu características de um produto, como a elaboração de um manual mais detalhado para o usuário, estojo de acondicionamento, distribuição através de uma empresa, elaboração de módulos adicionais para armazenamento de informações assistenciais e médicas, maior flexibilidade para o gerenciamento de dados administrativos e financeiros, e recursos para levantamentos e emissão de relatórios. Muitas implementações foram feitas a partir das sugestões dos próprios usuários ou de solicitações específicas de algumas clínicas. Todos os aspectos foram primeiramente analisados e classificados, e posteriormente agrupados para incorporação ao sistema. Este método de trabalho, implementada deste o início, agregou características de manutenção e aprimoramento continuado ao Tot-Clin que, posteriormente, foram adotadas pelo Tot-Win. Esta sistemática otimiza o aprimoramento do sistema, uma vez que os custos de aperfeiçoamento do software são repartidos entre os usuários existentes. Este modelo também deu origem a um conceito que passamos a chamar de "desenvolvimento baseado em objetivo"; cada implementação tinha que estar inserida num contexto específico, envolvendo elaboração técnica, estruturação da solução e avaliação dos benefícios obtidos. O treinamento é um fator importante e decisivo para o sucesso de uma informatização. A capacitação do elemento humano é necessária para que cada um tenha proficiência e confiança no uso do computador e do software como instrumento de trabalho diário, fator determinante para a efetiva integração às rotinas diárias. Algumas aptidões do usuário fora do contexto de informática podem ser importantes, como por exemplo, a falta de prática em datilografia que pode lentificar a velocidade de inserção dos dados no microcomputador. O Tot-Win A partir de 1992, quando ocorreu a consolidação dos ambientes gráficos, representados pelo sistema operacional Windows, a diminuição dos custos dos equipamentos de multimídia, e o fim da reserva de mercado de informática no Brasil, começou a surgir maior número de programas para Windows, e os softwares médicos passaram a incorporar recursos de multimídia com armazenamento de fotos, sons e vídeos. Dois anos mais tarde, em 1994, comecei a desenvolver o Tot-Win baseando-me em vários aspectos importantes do modelo do Tot-Clin, como a sistemática de desenvolvimento e o conjunto de recursos assistenciais, administrativos e científicos. Os aspectos assistenciais foram ampliados e passaram a englobar prescrição computadorizada de medicamentos baseada em banco de dados, dados clínicos evolutivos do paciente com imagens digitais, emissão de orientações médicas entre outras características, inseridos num cenário tecnológico e cultural que, embora em rápida evolução, exigia: - Necessidade de estruturar num software os aspectos administrativos, assistenciais e científicos.
- Promover amplo uso da multimídia nos mais diversos softwares em decorrência da queda dos preços dos acessórios que incorporavam este recurso aos microcomputadores e do sucesso alcançado pelo Windows 3.1. Mais do que uma nova forma de comunicação, a multimídia é uma poderosa ferramenta para a criação de novos recursos para apoio à prática clínica diária, como a utilização de um banco de imagens para orientação e explanação aos pacientes, seqüências de vídeos didáticos, entre outros.
- Necessidade de desenvolver aspectos técnicos que fornecessem substrato para a validação das informações clínicas armazenadas exclusivamente em forma eletrônica. Com a validação legal poder-se-ia pensar em eliminar o prontuário médico físico em papel, o que significaria considerável economia de espaço nas clínicas, e agilidade da recuperação dos dados clínicos dos pacientes. O ambiente gráfico permitiria aos softwares guardarem dados textuais e imagens digitais, que poderiam ser fotos ou digitalização de laudos de exames.
- Estruturar um software que oferecesse recurso de compartilhamento on-line de dados entre diversos usuários simultaneamente.
- Desenvolver ferramentas que pudessem auxiliar o médico durante o atendimento aos pacientes, agilizando processos como prescrição de medicamentos, emissão de orientações e atestados, etc.
- Estabelecer critérios técnicos objetivos a serem consideradas na avaliação um software no momento da escolha, para implantação na clínica/consultório.
- Analisar aspectos que permitissem o intercâmbio de dados clínicos de pacientes entre sistemas computacionais, e que dispensassem o texto impresso.
- Avaliar a importância da padronização de termos para a recuperação de dados para fins de levantamento e intercâmbio de dados entre instituições.
Frente a estas necessidades, o Tot-Win vem sendo continuamente aprimorado, mas mais do que o desenvolvimento do software, este trabalho descreve: - o modelo que envolveu este desenvolvimento;
- o relacionamento com os usuários e a maneira como suas sugestões são incorporadas sem que haja perda de compatibilidade, descontinuidade ou perturbação propagada para os demais usuários do mesmo sistema;
- a detecção e correção de erros, considerando as conseqüências para este mesmo conjunto de usuários;
- o desenvolvimento de novos conceitos;
- uma discussão sobre como a literatura especializada propõe soluções comparadas à vivência pessoal e à realidade brasileira em implementá-las ao longo de uma década.
|