PROTÓTIPO DE UM SISTEMA ESPECIALISTA EDUCATIVO PARA DIAGNÓSTICO MÉDICO

Tamanho: px
Começar a partir da página:

Download "PROTÓTIPO DE UM SISTEMA ESPECIALISTA EDUCATIVO PARA DIAGNÓSTICO MÉDICO"

Transcrição

1 CENTRO UNIVERSITÁRIO VILA VELHA CURSO DE CIÊNCIA DA COMPUTAÇÃO LUCIANA ROCHA DOS SANTOS PROTÓTIPO DE UM SISTEMA ESPECIALISTA EDUCATIVO PARA DIAGNÓSTICO MÉDICO VILA VELHA 2010

2 LUCIANA ROCHA DOS SANTOS PROTÓTIPO DE UM SISTEMA ESPECIALISTA EDUCATIVO PARA DIAGNÓSTICO MÉDICO Trabalho de Conclusão de Curso apresentado ao Centro Univertário Vila Velha como requisito parcial para a obtenção do grau de Bacharel em Ciência da Computação. Orientador: Erlon Pinheiro VILA VELHA 2010

3 LUCIANA ROCHA DOS SANTOS PROTÓTIPO DE UM SISTEMA ESPECIALISTA EDUCATIVO PARA DIAGNÓSTICO MÉDICO BANCA EXAMINADORA Prof. Msc. Erlon Pinheiro Centro Universitário Vila Velha Orientador Prof. Msc. Vinicius Rosalen da Silva Centro Universitário Vila Velha Prof. Msc. Hudson Ramos Centro Universitário Vila Velha Trabalho de Conclusão de Curso aprovado em 25/11/2010.

4 Eu, Luciana Rocha dos Santos, autorizo que a UVV, sem ônus, promova a publicação de minha monografia em página própria na Internet ou em outro meio de divulgação de trabalho científico. Data: 25/11/2010

5 Aos meus pais e seu incondicional apoio...

6 AGRADECIMENTOS A Deus, pelas sempre presentes segundas chances. Por nunca ter me apresentado uma situação mais difícil do que a capacidade de superação alcançada através delas e pelo apoio das pessoas que coloca em minha vida para ajudar-me a enfrentálas. Obrigada, meu Senhor e meu Deus. Vê Teu fruto. Tua vitória. Graças. À benção de amor e carinho que é a minha família. Ao meu porto seguro e lar. Àqueles dos braços abertos e sorrisos sem reserva. Das risadas e ombros para lágrimas. Quem me faz ser quem sou e lutar por meus objetivos. Meu muito obrigada. A minha mãe e amiga Sandra, sempre tão zelosa, paciente, incentivadora, inabalável em sua fé em minha vitória. Sem seu apoio essa graduação certamente não seria possível. Obrigada pelas orações, pelas noites mal dormidas, pelos beijos de bom dia, pelas horas de estrada, pelas filas enfrentadas, pela ajuda de fim de mês, pelas ligações carregadas de saudade, pelo esforço de última hora, pelas batalhas perdidas, pela mão que reergue-me, pelo insistente otimismo, pelo zelo, pelo característico bom humor, por ser o incondicional e mais bonito exemplar de amor que conheço. Por ser a Rocha constante em minha vida. Todo o meu imensurável amor, devoção, admiração e eterno agradecimento. Ao meu pai Aldo, por todo seu árduo trabalho e esforço. Pelas noites viradas e preocupação com nosso bem estar. Pelo incentivo e valorização. Pelo amor e apoio incondicionais. Meu amor e meu muito obrigada. Ao orientador, professor e amigo Erlon Pinheiro, pela sua paciência e calma durante os momentos difíceis e incertos da jornada. Pela sua experiência e clareza de pensamento no auxílio à construção de idéias. Pelo carinho e atenção com que conduz sua orientação. Muito obrigada. Às tias-mães Lilian, Cida e Arilana, por todas as incontáveis orações, todo o amor e devoção. Ao meu irmão Filipe, tão decisivo durante as inseguranças de fim de jornada. Obrigada pelo apoio.

7 Aos professores e incentivadores Leo Muniz, Vinicius Rosalen e Coordenador Cristiano Biancardi. Pelos incontáveis momentos de auxílio no decorrer do curso. Pela atenção irreservada. Pelo incentivo à excelência acadêmica. Pelo bom humor. Aos amigos e colegas de curso, pois sei que sem o auxílio indireto dessas pessoas, a caminhada teria sido muito mais tortuosa. Meu muito obrigada. Aos amigos Fabio, Thiago, Driely, Felipe e Edgar pela caminhada conjunta. Pelo auxílio mútuo e pelo apoio. Pela amizade iniciada e propagada durante o curso. Meu muito obrigada. Aos amigos Halysson, Juviani e Rodrigo, com quem dividi momentos que levo para o resto da vida. Pela força e determinação contagiantes, pelo carinho sem igual, pela paciência e compreensão dignas de família. Aos amigos eternos Lariane, Hugo, Luciana e Maria Luíza por sua onipresença mesmo à distância. Pelo incondicional amor, apoio e irrevogável crença em minha vitória. Pelas palavras que impulsionam e acalmam, incentivam e consolam, fazem rir e chorar. Todo o meu amor e meu muito obrigada. Aos amigos Lucas e Gabriella pelo companheirismo e incondicional apoio. Pelos momentos de luta pesada nos quais se recusam a abandonar a fronte de batalha. Pelos momentos de descontração tão necessário para minha saúde mental e perseverança. Pelo incentivo à minha escolha de carreira. Pela amizade incondicional e irrestrita. Muito obrigada.

8 Sweet are the uses of adversity, Which, like the toad, ugly and venomous, Wears yet a precious jewel in his head; And this our life, exempt from public haunt, Finds tongues in trees, books in the running brooks, Sermons in stones, and good in every thing. William Shakespeare

9 LISTA DE TABELAS 1 Regras de negócio Descrição de caso de uso - Criar Usuário Descrição de caso de uso - Criar Paciente Virtual Descrição de caso de uso - Interagir com Paciente Virtual

10 LISTA DE FIGURAS 1 Arquitetura genérica de um Sistema Especialista NeuroCase Tela de entrada de dados do SEDACaP Relatório probabilístico de diagnóstico gerado pelo SEDACaP Visão geral do Motor de Inferência Drools Exemplo de criação de uma base de conhecimento lógica em Drools Exemplo de regra Drools em um arquivo.drl Exemplo de sessão Stateful Exemplo de sessão Stateless Exemplo do uso de query Exemplo de fluxo de regra Drools Site oficial da Oracle Site oficial do Eclipse Pacote de instalação do Plugin Drools Um projeto inicial Drools Um projeto inicial Drools Representação da atribuição de pesos durante cálculo da validação de diagnóstico Casos de Uso do protótipo Esquematização da implementação multi-paradigma Esquematização do conhecimento armazenado Representação de pacotes do protótipo

11 22 Diagrama de classes da camada de apresentação Diagrama de classes da camada de aplicação. Controle Diagrama de classes da camada de aplicação. Modelo Diagrama de sequência da criação de usuários Diagrama de sequência da criação de pacientes virtuais Diagrama de sequência da interação do usuário com pacientes virtuais Diagrama de sequência da validação de diagnóstico Tela do ambiente do Estudante Tela do ambiente do Administrador Linguagem Java Plataforma Java Janela típica desenvolvida com Java Swing Arquitetura geral do protótipo Navegabilidade de interface Regra Drools para diagnóstico de Amigdalite. Arquivo: amigdalite.drl Regra Drools para diagnóstico de Asma. Arquivo: asma.drl Regra Drools para diagnóstico de Catapora. Arquivo: catapora.drl Regra Drools para diagnóstico de Rubéola. Arquivo: rubeola.drl Regra Drools para diagnóstico de Sarampo. Arquivo: sarampo.drl Classe KnowledgeManager. Arquivo: KnowledgeManager.java Classe KnowledgeManager. Arquivo: KnowledgeManager.java Classe KnowledgeManager. Arquivo: KnowledgeManager.java

12 LISTA DE SIGLAS API Application Program Interface (Interface de Aplicação). BC Base de Conhecimento. BRMS Business Rules Management System (Sistema de Gerência de Regras de Negócio). EC Engenheiro do Conhecimento. GPEB Grupo de Pesquisas em Engenharia Biomédica. IA Inteligência Artificial. IDE Integrated Development Environment (Ambiente de Desenvolvimento Integrado). J2EE Plataforma Java Versão 2. MVC Model-View-Controller (Modelo-Visão-Controle). OO Orientação a Objetos. RBC Raciocínio Baseado em Casos. SE Sistema Especialista.

13 SUMÁRIO RESUMO 1 INTRODUÇÃO JUSTIFICATIVA OBJETIVOS Objetivo Geral Objetivos Específicos MÉTODO DE PESQUISA DESCRIÇÃO DOS CAPÍTULOS LEVANTAMENTO BIBLIOGRÁFICO HISTÓRICO SISTEMAS ESPECIALISTAS Componentes SISTEMAS ESPECIALISTAS MÉDICOS Exemplos PROTÓTIPO DESENVOLVIDO DROOLS RULE ENGINE VISÃO GERAL Processo de Inferência Vantagens da sua utilização REPRESENTAÇÃO DE CONHECIMENTO

14 3.2.1 Criação de uma Base de Conhecimento Regras Sessões Stateless Sessões Stateful Query Fluxo de Regras INSTALAÇÃO DO AMBIENTE Java Eclipse Plugin Drools para Eclipse Configurando o runtime Drools para depuração LEVANTAMENTO DE REQUISITOS DESCRIÇÃO DO PROBLEMA Estudantes fazem diagnóstico de pacientes virtuais Administradores mantêm usuários Componentes Presentes Método de Aquisição de Conhecimento DIAGRAMA DE CASOS DE USO AMBIENTES Ambiente do Estudante Ambiente Administrativo REGRAS DE NEGÓCIO DESCRIÇÃO DE CASOS DE USO Manter Usuário Criar Paciente Virtual Interagir com Paciente Virtual

15 5 ESPECIFICAÇÃO DE ANÁLISE DEFINIÇÃO DA DIVISÃO ENTRE PARADIGMAS BASE DE CONHECIMENTO MODELO DE CLASSES Diagrama de Pacotes Diagrama da Camada de Apresentação Diagrama da Camada de Aplicação DIAGRAMAS DE SEQUÊNCIA Manter Usuários Criar Pacientes Virtuais Interagir com Pacientes Virtuais Validar Diagnóstico TELAS DO PROTÓTIPO Tela do Estudante Tela do Administrador ESPECIFICAÇÃO DE PROJETO ESCOLHA DA TECNOLOGIA Paradigma Orientado a Objetos Paradigma Declarativo Lógico Persistência de Dados ARQUITETURA DIVISÃO EM CAMADAS Camada de Apresentação Camada de Aplicação Camada de Integração e Lógica

16 7 CONCLUSÃO CONHECIMENTO ADQUIRIDO CONCLUSÃO DOS OBJETIVOS DIFICULDADES ENCONTRADAS TRABALHOS FUTUROS ANEXO 79 REFERÊNCIAS 84

17 RESUMO O projeto apresenta o desenvolvimento de um protótipo de Sistema Especialista voltado ao auxílio do profissional de Educação na capacitação de estudantes de Medicina em técnicas de diagnóstico. Trata-se de um software responsável por gerar pacientes virtuais por meio de inferências em uma Base de Conhecimento lógica, composta por fatos e regras que modelam o conhecimento de um especialista. De forma direta e prática, utiliza-se da metodologia investigativa de ensino para promover uma solução computacional que valide os conhecimentos adquiridos em sala de aula. O protótipo possui integração de dois diferentes paradigmas de programação para alcançar seus objetivos: o Lógico e o Orientado a Objetos. Para tanto, fez-se uso do Sistema de Gerência de Regras de Negócio Drools utilizado durante a criação e manutenção de doenças e sintomas associados. Palavras-chave: Sistema Especialista, Inteligência Artificial, Sistemas Computacionais, Sistemas Médicos, Drools Rule Engine.

18 17 1 INTRODUÇÃO Sistemas Especialistas (SE) foram criados para resolver problemas em um determinado domínio onde o conhecimento é muito específico e fortemente limitado aos especialistas da área. Tais sistemas podem ser definidos como programas que simulam o raciocínio de seres humanos na solução de problemas complexos do mundo real. Um SE Médico propõe-se a trazer tal perspectiva de soluções de problemas para o âmbito clínico, comprometendo-se a ser fiel à perícia humana e aproximar-se ao máximo das conclusões que um perito na área alcançaria na solução dos mesmos problemas. Nesse projeto, apresenta-se o protótipo de um Sistema Especialista Educacional voltado para o Diagnóstico Médico. Trata-se de um software responsável por validar diagnósticos de doenças baseado em uma Base de Conhecimento lógica. A Base de Conhecimento do sistema será construída de acordo com as informações obtidas na literatura sobre as doenças, como também no conhecimento de especialistas da área. O sistema proposto tem como objetivo principal auxiliar os profissionais de educação na capacitação de estudantes da área médica, ampliando seus conhecimentos e otimizando o tempo em sala de aula. Sistemas Especialistas têm sido usados como auxílio ao processo de tomada de decisão desde seu surgimento nos anos 70 [8]. Nascidos da necessidade sempre crescente de emular o conhecimento humano e sua forma de raciocínio lógico, os SE s primitivos surgiram com a esperança de que, num futuro próximo, o Especialista utópico se mostrasse invariavelmente exato, além de constante e autonomamente evolutivo. A associação desses conceitos à tendência da Inteligência Artificial (IA) foi naturalmente transposta para a área educacional com o MYCIN em 1976 [8]. Na Era da Onipresença Informacional, a intenção de replicar, e até mesmo aperfeiçoar o tutor educacional, apresenta-se como fator chave para a evangelização do conhecimento específico. Com o apelo do vislumbre de uma experiência educacional livre de restrições temporais ou geográficas e sem a necessidade presencial do detentor humano do conhecimento, os Sistemas Especialistas Educativos apresentam-se como o futuro

19 18 da Educação, ao passo que promovem a reestruturação e modernização das convenções sociais de ensino e a busca imperativa por novas formar de ensinar. Na área médica, os Sistemas Especialistas mostraram-se ainda mais fortes, com esforços que impulsionaram a própria área de Inteligência Artificial ao redor do globo. Em território nacional, imprecedentes foram os avanços do Grupo de Pesquisas em Engenharia Biomédica (GPEB) da Universidade Federal de Santa Catarina, que desenvolveu Sistemas Especialistas nas mais específicas áreas médicas promovendo a capacitação de profissionais da área, além da propagação de Engenheiros do Conhecimento especializados em Inteligência Artificial Médica [1]. 1.1 JUSTIFICATIVA O processo de aprendizado na área Médica é envolto principalmente em técnicas de repetição de práticas, tentativa e erro e pesquisa científica. Durante a execução dessas tarefas estudantes, ainda não experientes, deparam-se com situações delicadas onde apenas a prática recursiva leva ao aprimoramento do conhecimento pesquisado. A área Médica é, no entanto, uma área que possui alta sensibilidade a erros. Um diagnóstico faltoso pode significar a perda da vida de um paciente. Dentro desse contexto, alternativas para a prática de diagnóstico, como a presente prática virtual, trazem aos estudantes a segurança do aprendizado em um ambiente onde seus erros não causam fatalidades e sim a oportunidade de acertar em uma próxima tentativa. O presente projeto objetiva desenvolver o protótipo de uma solução computacional capaz de emular a criação de pacientes virtuais. Estudantes de Medicina podem interagir com esses pacientes, que possuem uma dentre uma coleção limitada de doenças armazenadas em uma base de conhecimento. A meta do estudante é, através de uma conversa com o paciente, apontar qual doença ele possui. Para alcançar essa meta, toma-se como hipótese de pesquisa a implementação multi-paradigma, integrando uma aplicação Orientada a Objetos a uma Base de Conhecimentos lógica.

20 OBJETIVOS Objetivo Geral O objetivo da presente pesquisa é desenvolver uma ferramenta educativa que combine os dois diferentes paradigmas de programação, Lógico e Orientado a Objetos. Essa ferramenta irá auxiliar estudantes de Medicina a colocar em prova suas capacidades no processo de diagnóstico. Como exemplo, será desenvolvido um protótipo do sistema especialista Hippocrates que testa o diagnóstico de diversas doenças Objetivos Específicos Pesquisar a integração de diferentes paradigmas dentro de uma mesma aplicação computacional, analisando e regulando a linha de divisão entre o lógico e o OO. Pesquisar o desenvolvimento de um Sistema Especialista que descreva o conhecimento médico. Pesquisar as diferentes formas de aquisição de conhecimento por um Sistema Especialista. 1.3 MÉTODO DE PESQUISA Para alcançar os objetivos propostos, o presente trabalho será desenvolvido de acordo com a seguinte metodologia geral de pesquisa: Realização de pesquisa bibliográfica que compreenda o âmbito dos Sistemas Especialistas em geral e Sistemas Especialistas Médicos, documentando suas características definidoras, particularidades de implementação e contexto atual. Realização de pesquisa investigativa em busca de soluções conciliadoras entre diferentes paradigmas. A solução escolhida deveria permitir clareza de código e de projeto em sua utilização. Análise da solução integradora encontrada e de suas limitações inerentes, desenvolvendo uma estratégia de implementação.

21 20 Análise do problema, definindo a qual camada de implementação caberia a modelagem dos aspectos do protótipo. Desenvolver um protótipo baseado nas pesquisas realizadas. 1.4 DESCRIÇÃO DOS CAPÍTULOS Composto por oito capítulos, este trabalho apresenta em sua introdução o contexto do problema em questão, seus objetivos gerais e específicos, bem como a intenção do desenvolvimento de um protótipo que confirme as teorias levantadas. O Capítulo 2 descreve em torno do estudo bibliográfico dos Sistemas Especialistas, seu histórico, principais características e exemplos na área de aplicação em questão. No Capítulo 3, é apresentada uma introdução ao mundo da Drools Rule Engine, abordando suas principais características e funcionalidades, além de tutorias de instalação. Em sequência são apresentados os requisitos que definiram o escopo do protótipo desenvolvido, abordando o mini-mundo relacionado, bem como casos de uso e ambientes de interação presentes (Capítulo 4). Já o Capítulo 5 aborda os detalhes de análise dos requisitos existentes, explanando a implementação utilizada para executar os requisitos. No Capítulo 6, uma explanação comenta as tecnologias usadas durante o desenvolvimento, especificando as diferentes ferramentas que auxiliaram a integração dos paradigmas de programação. Uma conclusão dos objetivos pode ser encontrada no Capítulo 7, abordando as dificuldades encontradas durante o desenvolvimento e o conhecimento adquirido ao longo do projeto. Já o Capítulo 8 traz os anexos relacionados, mostrando códigos de implementação em Java e em sintaxe Drools. Por fim, no último capítulo (Capítulo 9), apresentam-se as referências bibliográficas utilizadas.

22 21 2 LEVANTAMENTO BIBLIOGRÁFICO No intuito de fazer jus ao histórico e progresso tecnológico da área, foi realizada uma pesquisa em torno do desenrolar progressivo dos Sistemas Especialistas na área de Inteligência Artificial. A presente seção oferece um breve histórico do desenvolvimento de diferentes ferramentas ao longo dos anos, bem como exemplos de algumas soluções relevantes para a área de Sistemas Médicos. 2.1 HISTÓRICO No início dos anos 50, os fundamentos da Inteligência Artificial começaram a possibilitar a representação do conhecimento lógico utilizando-se da Lógica Matemática e da Teoria das Funções Recursivas. Essa base teórica para implementações de estruturas declarativas, como listas e fatos, passaram a possibilitar o desenvolvimento de expressões simbólicas recursivas [2]. Já nos anos 60, foram iniciadas as tentativas de simulação do processo de pensamento, quando os pesquisadores de IA tentavam emular a forma com que o ser humano chegava a decisões através da manipulação do seu conhecimento. Porém, com recursos limitados e progressos isolados, as dificuldades ainda mostravam-se maiores e mais significativas que os avanços alcançados na área. [9]. Na área de IA aplicada, após uma década de trabalho, emergiram três subáreas principais: Sistemas Especialistas, Linguagem Natural e Robótica - incluindo visão, fala e locomoção [3]. A partir daí, no início da década de 80, os Sistemas Especialistas começaram a surgir no âmbito comercial, embora ainda, de forma não muito significativa. A primeira companhia formada exclusivamente para produzir sistemas especialistas foi a Intelli Genetics, no campo de engenharia genética e com técnicos oriundos do Projeto de Programação Heurística da Universidade de Stanford.

23 22 Assim, após os Sistemas Especialistas terem se desenvolvido por quinze anos como mera curiosidade de IA aplicada em laboratórios de pesquisa, eles atualmente tornaram-se alvo de significativos esforços de desenvolvimento, tanto acadêmicos como comerciais. As seções seguintes apresentam exemplos de Sistemas Especialistas Médicos da atualidade, apresentando seus pontos mais importantes. 2.2 SISTEMAS ESPECIALISTAS Desenvolvidos a partir de uma especialização derivada da Inteligência Artificial, os Sistemas Especialistas foram criados para emular um conhecimento específico, visando reproduzir a tomada de decisão, julgamentos e evolução nessa ciência, que seriam protagonizados por um especialista da área, enquanto comprometem-se a buscar a máxima fidelidade em tal reprodução. Um comparativo interessante seria citar que, enquanto os sistemas tradicionais focam-se no processamento e análise de valores numéricos, um Sistema Especialista, enquanto predominantemente declarativo e "orientado ao conhecimento", trabalha com a análise de valores não-numéricos como regras, fatos e inferências lógicas. Para [3], um Sistema Especialista "é uma forma de sistema baseado no conhecimento especialmente projetado para emular a especialização humana de algum domínio específico", fazendo com que sejam ótimas ferramentas para o apoio de decisão, treino, instrução e educação [5]. As características mais marcantes desses sistemas residem na existência de um componente responsável pela representação e centralização de todo o conhecimento especialista e na capacidade autônoma, em teoria, da progressão, evolução e adaptação do conhecimento residente. Denominada Base de Conhecimento, esse componente armazena os fatos e regras que moldam o saber específico, além das heurísticas, estratégias e padrões para a manipulação e ampliação desse saber. É intenção dos Sistemas Especialistas a busca pela auto-suficiência enquanto entidades hábeis a aprendizado, mostrando dessa forma as suas fortes raízes da IA. Para méritos acadêmicos, tomaremos mão, no seguinte relato de projeto, de alguns termos identificadores dos diferentes papéis envolvidos na construção de um Sistema Especialista. São eles:

24 23 Engenheiro do Conhecimento Profissional da área computacional responsável pela construção do Sistema Especialista e da coleta de conhecimento específico. Especialista (ou Perito) Profissional da área de interesse, responsável por prover o conhecimento que será emulado. Sistema (ou Máquina) Produto final da interação entre o Engenheiro do Conhecimento e Especialista. Ferramenta computacional que, ao final do processo de construção, será capaz de emular parte do conhecimento de um Especialista. Usuário Interador final. Papel que fará uso do produto desenvolvido Componentes A Figura 1 representa a arquitetura padrão utilizada em Sistemas Especialistas e seus componentes. Essa arquitetura, no entanto, é passível de adaptações particulares a cada escopo. Base de Conhecimento Responsável pelo crescente armazenamento de fatos e regras e recurso único do processo de inferências. Nesse processo, todo o conhecimento da base é utilizado, logo um fato ou regra adquirido pode modificar todo o processo de conclusão de problemas. Uma Base de Conhecimento bem estruturada é vital para o bom funcionamento de um Sistema Especialista. Aquisição de Conhecimento É considerada a parte mais complexa da construção de um Sistema Especialista, tendo em vista que o processo indutivo responsável por decidir o que é ou não é relevante à base é feito por um Engenheiro do Conhecimento, e não por um especialista

25 24 Figura 1: Arquitetura genérica de um Sistema Especialista. da área. Durante a fase de aquisição de conhecimento, executa-se uma seqüência de ações visando à coleta das informações necessárias de um perito e da tradução de tais informações para a linguagem da máquina. Diferentes métodos podem ser utilizados no intuito de adicionar conhecimento a um Sistema Especialista. Para [5], tais métodos podem ser divididos em quatro diferentes classificações, segundo o grau de responsabilidades oriundas ao Engenheiro de Conhecimento versus as que são atribuídas a componentes computacionais: intermediário, semi-intermediário, semidireto e direto supervisionado. Método Intermediário Método que toma posse integralmente do trabalho de um Engenheiro do Conhecimento para que a Base de Conhecimento seja alimentada. Todo conhecimento é adquirido através da interseção do profissional que realiza entrevistas e pesquisas com peritos da área para compreender a área de estudo. Ao empregar tal método, o Engenheiro pode fazer uso das seguintes técnicas: Observação: Define-se pelo acompanhamento in loco do trabalho do especialista da área. Essa observação gera a coleta de informações que posteriormente serão adicionadas à base. Essa técnica, apesar de demandar menos envolvimento do

26 25 perito durante o desenvolvimento do Sistema, mostra-se demorada e por vezes ineficiente. A dissociação integral do perito pode causar inconsistência de dados coletados, além do fato de que a observação pode fazer com que o Engenheiro registre os modismos e hábitos pessoais do perito durante a execução de sua tarefa, o que por vezes não é cabalmente fiel às técnicas oficialmente difundidas. Estudo: Consiste na investigação da área de interesse por parte do Engenheiro do Conhecimento. Dá-se principalmente através da análise de referências bibliográficas - livros, artigos, sites e materiais didáticos em geral, na busca de uma compreensão mais profunda do alvo do sistema. Entrevista: Caracterizado pelo diálogo direto entre o Especialista e o Engenheiro do Conhecimento, onde informações são coletadas verbalmente. Do Especialista é requerido não apenas domínio da área, mas também capacidade de transcrever tal domínio para leigos. Já o Engenheiro deve ser capaz de, através de uma compreensão extensiva das informações coletadas, vislumbrar sua reconstrução na linguagem entendida pela Máquina. Análise de Protocolo: Nesse método o Engenheiro desenvolve casos específicos, no intuito de que o Especialista informe verbalmente como lidaria com tal situação, evidenciando seu raciocínio em diferentes situações. Método Semi-intermediário Nesse método, o Engenheiro do Conhecimento faz uso de ferramentas computacionais auxiliadoras no processo de construção do conhecimento. Método Semidireto No método semidireto, parte da coleta do conhecimento específico é dada através do contato direto do perito com ferramentas computacionais desenvolvidas para tal coleta. Tal processo exige treinamento prévio do perito. Método Direto supervisionado No método direto supervisionado, os dados adquiridos pelo sistema são integral-

27 26 mente recebidos por meio de ferramentas computacionais heurísticas, que fazem uso de técnicas de implementação de redes neurais para processar as informações provindas da interação com o especialista. Toda a codificação de regras e fatos, nesse momento, já não é necessária através do Engenheiro. No entanto, é preciso que o profissional do conhecimento valide os dados adquiridos, através de testes de consistência da base. Máquina de Inferência Trata-se do interpretador e escalonador de regras. Profundamente associado à Base de Conhecimento, trabalham juntos no processo de desenvolvimento do pensamento lógico (buscar, analisar e concluir) visando a encontrar soluções e a gerar novos conhecimentos a partir do existente. Sistema de Consulta Segundo [5], o Sistema de Consulta é uma camada de acesso ao usuário final através de uma interface amigável. A maioria dos sistemas utiliza-se de perguntas pré-formatadas e respostas de múltipla escolha selecionadas pelo usuário. Podese utilizar uma linguagem sintética simples e limitada, própria para a utilização do sistema. Sistema de Justificação Obrigatório nos Sistemas Especialistas, define-se por justificativas compreensíveis ao usuário que explicitam as regras e fatos responsáveis por validar a conclusão alcançada. Quadro Negro Área de trabalho do Sistema Especialista, responsável pelo armazenamento temporário de conclusões, hipóteses, probabilidades calculadas e possíveis soluções. Embora todos os Sistemas Especialistas se utilizem de um Quadro Negro, nem todos o têm como componente explícito.

28 SISTEMAS ESPECIALISTAS MÉDICOS O primeiro Sistema Especialista Médico foi o sistema MYCIN [8]. Seu objetivo é prover conselho a respeito de diagnóstico e terapia de doenças infecciosas. Este tipo de aconselhamento pode ser muito útil, pois nem sempre o médico responsável é um especialista em infecções, principalmente no ambiente hospitalar. Uma seção do sistema inicia-se com um questionário, que deve ser respondido pelo usuário, a respeito do paciente. Informações como nome, idade, sexo, tempo de manifestação dos sintomas e resultados de exames são solicitadas. A partir dessas informações o sistema é capaz de estabelecer um diagnóstico e propor uma terapia adequada. A Base de Conhecimento do sistema contém centenas de regras, que lhe permite diagnosticar e prescrever tratamentos para bacteremia (infecção no sangue), meningite e cistite infecciosa Exemplos Protótipo de Software para o auxílio no aprendizado em Medicina Trata-se de um protótipo de um sistema especialista para o auxílio no aprendizado aplicado a um caso na medicina - o hipertireoidismo. O objetivo do protótipo foi o desenvolvimento de uma ferramenta didática multimídia para a área médica com idioma nacional, com o intuito de proporcionar um maior dinamismo ao ensino-diagnóstico. Este protótipo foi desenvolvido sob um modelo contendo os seguintes componentes: Base de Conhecimento, máquina de inferência e a interface explanatória [7]. As semelhanças válidas de contexto comum seriam a ambientação Médica do Sistema em questão, além da técnica de regras de produção como forma de representação do conhecimento. Representação e indexação de casos em Sistemas de Raciocínio baseado em casos para domínio da Neurologia Tem por objetivo desenvolver um mecanismo de representação e indexação de casos que possa ser utilizado, de forma efetiva, em um sistema de ajuda ao diagnóstico

29 28 no domínio da Neurologia. Na primeira etapa são apresentados os módulos que compõem o protótipo. A Figura 2 mostra a tela principal, onde é possível visualizar três opções: Casos, Tabelas e Relatórios. O módulo Casos representa toda a lógica de aplicação do sistema e apresenta três divisões: Novo Caso, Altera Caso e Funcionalidades. No módulo Tabelas vale destacar a presença dos Vocabulários, onde se encontra todo o histórico do paciente, inclusive seus exames anteriores, tanto neurológicos quanto complementares. O Mó- Figura 2: NeuroCase. dulo Relatórios é responsável pela impressão do relatório dos casos. Cada caso é composto por duas páginas constando a confirmação e descrição da solução do problema. Ao final, apresenta-se o diagnóstico preciso do paciente. Além de utilizar o conceito de Sistemas Especialistas (SE), o trabalho utiliza a estratégia de raciocínio sobre essa Base de Conhecimento. O Raciocínio Baseado em Casos (RBC), em suma, visa a adaptar soluções que foram utilizadas para resolução de problemas anteriores, para serem utilizadas na solução de um novo problema. Dessa forma, faz-se o sistema "relembrar"de casos relevantes e reutilizá-los em uma nova solução. Essa estratégia abrange a representação e indexação de casos, organização desses casos, as funções de medidas de similaridades, bem como os algoritmos para a recuperação dos casos fontes. Este trabalho é específico para área neurológica, com objetivo de modelar o raciocínio do especialista em Neurologia frente às tarefas de diagnóstico e prescrição médica [6].

30 29 Sistema especialista on-line de auxílio ao diagnóstico de câncer de próstata O Sistema Especialista SEDACaP, ambientado na web, visa ao diagnóstico de câncer de próstata utilizando o inventário de todos os dados clínicos dos pacientes. O sistema foi desenvolvido para auxiliar a tomada de decisão do profissional da saúde em momento de consulta. Através de uma extensa e meticulosa pesquisa de caso, o sistema suporta até as mais detalhadas particularidades do caso alvo, provendo uma alta precisão probabilística do diagnóstico. Sua implementação tomou mão da utilização de um banco de dados de consulta e de uma base de conhecimento não-declarativa, desenvolvida em Java, possibilitando assim a customização de usuários e permissões específicas, alto desempenho e alcançabilidade web, além da usabilidade simultânea por diferentes usuários. O sistema possui, ainda, uma implementação de reconhecimento de padrões dos casos armazenados, utilizando essa análise para possibilitar a característica evolutiva, enquanto entidade hábil a aprendizado. Figura 3: Tela de entrada de dados do SEDACaP. Como mostrado na Figura 3, o sistema possibilita a indexação de uma ampla gama de exames, histórico, laudos, biópsias e outros artefatos utilizados na moldagem do caso alvo. Através desses artefatos, probabilidades específicas são geradas para cada aspecto particular influente no diagnóstico da doença. Como mostrado na Figura 4, essas probabilidades específicas são condensadas em tempo de cálculo da porcentagem explicitada no diagnóstico. O contexto comum entre o sistema em questão e o escopo do protótipo reside no âmbito médico de ambos, em seus objetivos principais no diagnóstico e auxílio à tomada de decisão, além da moldagem do caso alvo através de investigação do paciente.

31 30 Figura 4: Relatório probabilístico de diagnóstico gerado pelo SEDACaP. 2.4 PROTÓTIPO DESENVOLVIDO Um protótipo denominado Hippocrates foi desenvolvido para fornecer uma interface de interação com o estudante, uma aplicação orientada a objetos e uma base de conhecimento lógica rodando sobre a API Drools de geração de regras de negócio. A descrição de seu desenvolvimento será explanada nos Capítulos 4, 5 e 6.

32 31 3 DROOLS RULE ENGINE Drools Rule Engine é um Sistema de Gerência de Regras de Negócio desenvolvido e mantido pela JBoss Inc. Através dela é possível criar e manter uma representação declarativa de conhecimento imersa em um ambiente Java de desenvolvimento de aplicações. 3.1 VISÃO GERAL Por tratar-se de um Sistema de Produção de Regras, a Drools é Turing completa, apresentando condicionais diretas seguidas do encaminhamento para uma instrução correspondente. Foca-se principalmente na representação do conhecimento de forma concisa, não-ambígua e declarativa [12]. Em posse de alta escalabilidade, a engine é capaz de lidar com um alto número de fatos e regras através de seu Motor de Inferência, que compara fatos e dados com as regras armazenadas para inferir conclusões Processo de Inferência A processo de comparação de fatos com regras pré-estabelecidas, é denominado na Ciência da Computação como Casamento de Padrões, e consiste na verificação da presença de elementos chaves dentro de um conjunto de dados. Vários algoritmos podem ser usados para cumprir tal tarefa. A Drools implementa e herda do algoritmo Rete, que em sua API é chamado ReteOO, o que significa que a engine possui um algoritmo otimizado e melhorado para a execução Rete em sistemas orientados a objeto [12]. As regras são armazenadas em uma Memória de Produção (Production Memory) e os fatos aos quais elas serão comparadas são mantidos na Memória de Trabalho (Working Memory), onde podem ser manipulados.

33 32 Uma base de conhecimento com muitas regras, no entanto, pode significar que uma mesma assertiva de um fato seja dada como verdadeira para múltiplas regras. Esse caso é denominado na engine como um conflito. Para priorizar a execução de regras e ordenar suas chamadas durante o processo de inferência, a Drools usa Agendas como uma estratégia de resolução de conflitos. Em uma Agenda, é possível atribuir um grau de prioridade a regras. Regras com maior grau de prioridade são chamadas primeiro durante a execução. Existem dois principais métodos de execução para sistemas de regras: o Encadeamento Para Frente ou Para Trás. O Encadeamento Para Trás inicia sua execução a partir de uma conclusão, que o motor de inferência procura satisfazer. Se não puder, o motor procura conclusões que possa satisfazer, denominadas sub-objetivos, e vai inferindo de forma reversa até alcançar a conclusão inicial, que pode possuir ou não mais sub-objetivos. O Prolog é um exemplo de engine que utiliza o Encadeamento Para Trás. Já a Drools faz uso do Encadeamento Para Frente, um método reacionário, ou seja, suas conclusões são tomadas a partir da conseqüência de fatos sendo analisados e resultando em regras sendo simultaneamente verdadeiras ou não. Essas regras são programadas na Agenda e, por fim, executadas. A engine inicia com um fato, ele se propaga e gera uma conclusão. A Figura 5 mostra uma visão geral do Motor de Inferência Drools. Figura 5: Visão geral do Motor de Inferência Drools.

34 Vantagens da sua utilização Alguns aspectos significativos da escolha da utilização de engines de Regras, são: Separação entre lógica de negócio e dados: Os dados compreendem seus objetos de domínio, a forma como uma aplicação manipula uma lógica associada. Já tal lógica são as regras. Em um contexto de aplicação onde a lógica muda constantemente, a estratégia de implementação utilizando uma engine de regras pode significar uma flexibilidade que garante ganhos significativos em produtividade. Centralização de conhecimento: Existência de um repositório executável e integrado do conhecimento em questão. Eficiência em unificação de conclusões e escalabilidade: Utilizando um componente centralizador de regras, a unificação de diferentes elementos que geram uma conclusão torna-se consideravelmente mais eficiente do que codificar condicionais equivalentes em OO. A adição de uma regra significa que todo o núcleo de conhecimento se integrará de forma automática a essas novas determinações, sem que revisões de consistência extensas sejam necessárias. Integração de ferramentas: É possível utilizar ferramentas como Eclipse para gerenciar, depurar e validar regras. Justificativa através de logs: Sistemas de regra possuem a capacidade de criar logs explicativos com os passos levados pelo processo de inferência para chegar a qualquer conclusão durante sua execução. 3.2 REPRESENTAÇÃO DE CONHECIMENTO Criação de uma Base de Conhecimento A base de conhecimento é criada como um objeto passível de instância, manipulação de métodos, referência e destruição. A Figura 6 mostra a criação de uma base de

35 34 conhecimento em Java utilizando as bibliotecas Drools. Vale notar que essa criação é dada com a instanciação clássica de um objeto KnowledgeBuilder, descrito na API. Figura 6: Exemplo de criação de uma base de conhecimento lógica em Drools. A partir daí, a aplicação possui um componente capaz de receber regras e fatos lógicos e tratar consultas relacionadas ao conhecimento nele armazenado Regras Regras, no entanto, são implementadas em um arquivo próprio.drl, onde sua lógica de interpretação é declarada. Abaixo, um exemplo de regra para a doença gripe e seu sintoma associado. Figura 7: Exemplo de regra Drools em um arquivo.drl. No exemplo da Figura 7, Patient é recebido pela regra e seu atributo Symptom é analisado enquanto equivalência a um sintoma. O diagnóstico de gripe é, dessa forma, atribuído ou não à pessoa. Internamente, toda regra Drools é na verdade um arquivo XML interpretado para uma sintaxe de desenvolvimento Java amigável.

36 Sessões Stateless Execuções realizadas sobre o conteúdo da base são realizadas através de sessões de estado (Stateful). Nessas sessões, é possível inserir um objeto na base de conhecimento ativa, rodar todas as regras e capturar o objeto modificado. Em nosso contexto, um exemplo do uso dessas sessões é a requisição de diagnóstico do paciente. Um objeto Patient possui uma estrutura com seus sintomas associados e um diagnóstico a princípio não atribuído. Com essa estrutura de sintomas preenchida, é possível enviar o objeto Patient à base de conhecimento ativa para que a própria atribua um diagnóstico ao objeto de acordo com suas regras internas. Na Figura 8 pode-se observar esse caso. Figura 8: Exemplo de sessão Stateful Sessões Stateful A população da base é feita através da declaração de fatos sem-estado (Stateless) e regras persistentes, executadas em sessões. Essas instruções sem-estado são denominadas tais por serem diretivas não-recorrentes durante a execução. Após processamento do sistema, elas nunca voltarão a ser chamadas. São correspondentes, no Prolog, a declarações de fatos. A partir do momento em que sua base de conhecimento sabe que um abajur é azul, não é necessário voltar a essa declaração de regra posteriormente. A diretiva é recebida, processada e armazenada persistentemente num contexto, porém a instrução que gerou tais ações não é revisitada. Como exemplificado abaixo: A assertiva é criada, informando que Luciana possui 23 anos de idade, dada como válida e executada pela base de conhecimento.

37 36 Figura 9: Exemplo de sessão Stateless Query As consultas são dadas através de queries (Consultas. Singular: query.) criadas dentro de arquivos.drl. Queries podem, posteriormente, ser chamadas pelo código Java, que armazena seu resultado num objeto QueryResults. Queries são utilizadas para extrair conjunto de fatos definidos na base de conhecimento de forma direta [12]. Similares a consultas a banco de dados, queries oferecem a flexibilidade e rapidez em recuperação de informações durante o desenvolvimento desses sistemas. Na Figura 10 um exemplo de query utilizada no protótipo. Figura 10: Exemplo do uso de query.

38 Fluxo de Regras Uma característica interessante da criação de regras no Drools é que pode ser feita através de um fluxo visual interpretado pela API, como abaixo: Figura 11: Exemplo de fluxo de regra Drools. A API Drools possui, além das citadas, uma ampla gama de funcionalidades que visam a facilitar a incorporação de regras de negócio lógicas no desenvolvimento Java. Por citação, variáveis globais, event listeners (sinalizadores de eventos) atribuídos a fatos internos à base, suporte à execução em batch, agrupamento de regras, memória de trabalho dinâmica, modelo de eventos para a base, dentre outras. Para informações mais detalhadas, consulte a documentação da engine. 3.3 INSTALAÇÃO DO AMBIENTE A presente seção compreende os passos necessários para a instalação do ambiente de desenvolvimento Drools Java Primeiramente, é necessário instalar a máquina virtual Java e seu kit de desenvolvimento. No site oficial da Oracle é possível fazer o download da versão mais atual disponível (http://www.oracle.com/technetwork/java/javase/downloads/index.html). Instale o kit.

39 38 Figura 12: Site oficial da Oracle Eclipse Agora é preciso instalar o Eclipse, uma interface de desenvolvimento para criação de projetos Java. Durante o presente projeto, foi utilizado o Eclipe Helios Release 1, porém pode-se instalar a variação que mais agrada o desenvolvedor. As versões mais atuais da interface podem ser adquiridas através do site oficial do Eclipse (http://www.eclipse.org/downloads/). Figura 13: Site oficial do Eclipse. Escolha um diretório e instale o Eclipse. Note que é necessário ter em mãos a localização da instalação para a os passos posteriores. A primeira vez que a IDE for executada, ela requisitará a criação de um Workbench. Trata-se da pasta de trabalho associada aos projetos que forem criados. Escolha a que mais convir.

40 Plugin Drools para Eclipse Agora é tempo de instalar as bibliotecas da API Drools no ambiente do Eclipse. Para isso, é necessário possuir os arquivos.jar da engine. Eles podem ser encontrados no site oficial da JBoss Drools (http://www.jboss.org/drools/downloads.html). Para o presente projeto, foi utilizada a versão 5.1, mas pode-se utilizar a que mais agrada o desenvolvedor. Recomenda-se a mais recente. Faça o download dos pacotes Drools Eclipse Workbench e do arquivo de binários Drools Binaries. Abra o pacote do Workbench e note que há duas pastas internas: plugins e features, como mostrado na Figura 14. Figura 14: Pacote de instalação do Plugin Drools. Navegue para a pasta de instalação do Eclipse. Note que também existem pastas com os mesmos nomes. Copie o conteúdo da pasta plugins do pacote adquirido, para a pasta correspondente de instalação do Eclipse. Faça o mesmo procedimento para a pasta features. Agora reinicie o Eclipse e selecione seu Workbench de preferência. No menu File, acesse New > Project e selecione dentro da pasta Drools a opção Drools Project, como na Figura 15. Nomeie seu projeto e clique em Next. O programa perguntará se deseja adicionar exemplos iniciais ao projeto. Escolha o que melhor convir e aperte Next. O programa requisitará uma runtime para execução do projeto. Não feche a caixa de diálogo ou avance por enquanto. Mantenha-a aberta enquanto segue os passos seguintes para a configuração da runtime.

41 40 Figura 15: Um projeto inicial Drools Configurando o runtime Drools para depuração Extraia todos os arquivos do pacote de binários para uma localização conhecida. É recomendado deixá-los dentro da pasta de instalação do Eclipse, como por exemplo C:/Program Files/eclipse/Drools Runtime. Agora mova todos os arquivos da pasta Drools Runtime/lib/*.* para o diretório superior Drools Runtime/*.*. Voltando ao Eclipse, agora sabe-se um caminho conhecido com os arquivos necessários para criar o runtime. Clique em Configure Workspace Settings... e uma nova janela de diálogo será aberta. Clique em Add. Nomeie sua nova runtime para algo como Drools 5.1 Runtime. No caminho requisitado aponte para a pasta para onde foram movidos os arquivos binários. Nesse exemplo, a C:/Program Files/eclipse/Drools Runtime. Confirme todas as janelas abertas.

42 41 Finalize a criação do projeto. Ele deve parecer com a estruturação da Figura 16. Figura 16: Um projeto inicial Drools. E isso é tudo. Ambiente configurado e pronto para uso!

43 42 4 LEVANTAMENTO DE REQUISITOS A aplicação tem como meta promover a aquisição e teste de conhecimentos de diagnóstico ao usuário, através da geração de pacientes virtuais que possuam uma enfermidade aleatória. Possibilita que, através de um processo investigativo, o usuário possua indicativos suficientes para apontar uma doença causadora dos sintomas apresentados. 4.1 DESCRIÇÃO DO PROBLEMA O sistema apresenta duas principais funcionalidades: (1) estudantes fazem diagnóstico de pacientes virtuais; (2) administradores mantêm usuários Estudantes fazem diagnóstico de pacientes virtuais A aplicação tem como objetivo principal proporcionar o contato de estudantes em treinamento com pacientes virtuais que possuirão uma das enfermidades armazenadas na base de conhecimento e, conseqüentemente, relatarão sintomas correspondentes a tal enfermidade. Um processo similar aos diagnósticos feitos em consultas médicas. O sistema (1) gera o paciente virtual; (2) inicia a troca de informações com o usuário de forma direta e pontual, indicando a presença e ausência de determinados indicadores e sintomas da enfermidade; (3) apura o diagnóstico final fornecido pelo usuário, julgando se está ou não correto e (4) indica ao estudante os indicativos principais que resultaram no seu erro ou acerto.

44 43 Geração de pacientes virtuais Os principais requisitos relacionados à criação de pacientes, são: A aplicação gera pacientes virtuais passíveis de interação com o usuário. Esse paciente apresenta uma coleção de sintomas característicos de uma dentre as doenças ofertadas pelo sistema. O paciente virtual é capaz de informar verbalmente características dos sintomas que ele possui. O paciente virtual confirma ou veta perguntas sobre sua condição atual feitas pelo estudante. Descrição das doenças presentes Um conjunto inicial e limitado de doenças foi escolhido para a base de conhecimento do protótipo. Cada doença possui sintomas associados, um identificador interno e frases faladas pelo paciente durante a execução do protótipo, para expressar se possui ou não tais sintomas. Amigdalite Dor de garganta. Dores pelo corpo. Febre. Cansaço. Falta de apetite. Dificuldade respiratória. Dor de cabeça.

45 44 Asma Tosse. Catarro. Dificuldade respiratória. Ardência e/ou dor peitoral. Chiado peitoral. Catapora Febre. Erupções cutâneas. Rubéola Febre. Aumento dos gânglios linfáticos. Erupções cutâneas. Sarampo Febre. Tosse rouca. Coriza. Conjuntivite. Fotofobia.

46 45 Interação com paciente virtual A interação com o paciente se dar de acordo com os seguintes requisitos: O estudante é capaz de criar um novo paciente virtual a qualquer momento. O estudante requisita que o visitante informe características de sintomas que possui. O estudante pergunta questões relacionadas a cada um dos sintomas presentes do sistema, a qualquer momento, as quais o paciente responde se as possui ou não. O estudante é capaz de atribuir um diagnóstico ao paciente, quando achar conveniente. Validação de diagnóstico A validação do diagnóstico dado ao paciente segue os seguintes requisitos: O estudante é capaz de compreender o motivo de uma validação aceita ou rejeitada pelo sistema. Diagnósticos incorretos demonstram os motivos que invalidam a decisão do estudante. Diagnósticos corretos mostram percentualmente a probabilidade da doença em questão ser a correta, além das doenças adicionais que possam causar os sintomas relatados. O estudante é capaz de prosseguir com o processo investigativo caso dê um diagnóstico incorreto.

47 46 A validação e cálculo probabilístico são dados através de pesos para cada um dos sintomas associados, como mostrado na Figura 17. Figura 17: Representação da atribuição de pesos durante cálculo da validação de diagnóstico. Espaço de armazenamento das informações dadas O sistema possui uma área de interface que auxilia o estudante durante o processo investigativo. Essa área oferece as seguintes facilidades: Registro de informações dadas pelo paciente. Fácil visualização das informações anteriores. Apoio à decisão informada através da consulta aos registros feitos Administradores mantêm usuários A aplicação possibilita a criação dos usuários de acesso ao protótipo.

48 47 Criação de novos usuários do tipo Estudante. Criação de novos usuários do tipo Administrador. Exclusão de usuários existentes. Persistência dos dados de usuário para que sejam recuperados em execuções posteriores Componentes Presentes Baseando-se na arquitetura tradicional de um SE, apresentada na Figura 1 (Capítulo 2), a camada especialista do sistema possui os seguintes componentes: Base de conhecimento: O sistema possui um componente centralizador do conhecimento especialista. Tal componente contém fatos e regras que serão manipulados durante a execução do protótipo. Motor de inferência: É capaz de inferir logicamente sobre o conhecimento armazenado na Base. Quadro negro: Possui uma memória de trabalho utilizada durante o processo de inferência. Sistema de consulta: É passível a consultas e manutenção de conhecimento. Sistema de justificação: É capaz de justificar suas conclusões inferidas Método de Aquisição de Conhecimento Para méritos de prototipagem a aquisição do SE é dada através do Método Intermediário, onde todo o conhecimento específico adicionado à Base se dá por intermédio do trabalho do Engenheiro do Conhecimento. Técnicas de Estudo (Página 25) foram utilizadas para determinar sintomas e doenças.

49 DIAGRAMA DE CASOS DE USO A Figura 18 mostra os casos de uso presentes no protótipo e seus atores associados. Figura 18: Casos de Uso do protótipo. 4.3 AMBIENTES O esforço do protótipo foi concentrado principalmente na interação com o estudante de Medicina, porém, foi prototipado um sistema inicial de segurança por login através de nome de usuário e senha. Dessa forma, fez-se necessária a criação de um ambiente administrativo que gerenciasse as contas de usuário Ambiente do Estudante Responsável pela criação, interação e diagnóstico de pacientes virtuais, esse ambiente foi idealizado tendo em mente as seguintes características principais: Apresentar pacientes virtuais com doenças aleatoriamente escolhidas dentre as

50 49 disponíveis na base de conhecimento. Promover o diálogo entre o usuário e o paciente virtual. Primar pela organização prática das informações fornecidas e facilitar o processo investigativo do estudante. Ao final da interação, julgar a veracidade do diagnóstico do usuário, informando as características que levaram ao seu sucesso ou fracasso durante o processo. Promover a aquisição de conhecimento por parte do aluno Ambiente Administrativo Responsável pela gerência de usuários, sua criação, deleção e manutenção. O usuário administrador é único e não pode ser deletado. 4.4 REGRAS DE NEGÓCIO Nome Descrição Nome Descrição Tabela 1: Regras de negócio. Identificação de acesso (RN01) Para acessar o sistema, todos os usuários devem ser cadastrados e possuir um nome de usuário único e senha de identificação. Tipos de usuário (RN02) O sistema pode ser utilizado por estudantes e tutores. Cada usuário possui um ambiente associado que garante usabilidade específica do sistema.

51 DESCRIÇÃO DE CASOS DE USO Manter Usuário A Tabela 2 expõe os detalhes de criação de usuários no protótipo. Tabela 2: Descrição de caso de uso - Criar Usuário. Projeto Sistema Especialista Educativo para Diagnóstico Médico CSU01 Manter Usuário Data 2010 Versão 0.1 Sumário Ator realiza a manutenção (cadastramento e/ou alteração) de usuários Ator Principal Administrador Pré-Condições O administrador deve estar logado no sistema. Risco Alto Prioridade Alta Fluxo Básico 1. Inicia quando o administrador clica no botão de criação de um novo usuário 2. O ator deve especificar um nome de usuário. 3. O ator confirma a operação. (#A1) 4. Uma mensagem indica sucesso. 5. Este caso de uso se encerra. Fluxos Alternativos Usuário já existe 1. O ator deve escolher um novo nome de usuário. 2. O ator confirma a operação. (#A1) 3. Uma mensagem indica sucesso. 4. Este caso de uso se encerra. Regras de negócio RN01

52 Criar Paciente Virtual A Tabela 3 mostra como se dá a criação de pacientes virtuais. Tabela 3: Descrição de caso de uso - Criar Paciente Virtual. Projeto Sistema Especialista Educativo para Diagnóstico Médico CSU02 Criar Paciente Virtual Data 2010 Versão 0.1 Sumário Ator requisita geração de um novo paciente para iniciar interação Ator Principal Estudante Pré-Condições O estudante deve estar logado no sistema. Risco Baixo Prioridade Alta Fluxo Básico 1. Inicia quando o estudante clica no botão de criação de um novo paciente virtual. (#A1) 2. O paciente é apresentado na interface. 3. Este caso de uso se encerra. Fluxos Alternativos Outra interação já está em andamento 1. O usuário deve confirmar ou negar a criação do novo paciente requisitado. 2. Este caso de uso se encerra. Regras de negócio x

53 Interagir com Paciente Virtual A Tabela 4 detalha a execução da interação do usuário com o paciente do sistema. Tabela 4: Descrição de caso de uso - Interagir com Paciente Virtual. Projeto Sistema Especialista Educativo para Diagnóstico Médico CSU03 Interagir com Paciente Virtual Data 2010 Versão 0.1 Sumário Ator interage com paciente virtual Ator Principal Estudante Pré-Condições O estudante deve estar logado no sistema. Risco Baixo Prioridade Alta Fluxo Básico 1. O ator ouve uma informação sobre a doença do paciente atual. (#A1) 2. Repete-se o item 1 por vontade do ator. 3. O ator seleciona uma doença causadora. 4. O ator confirma. 5. O sistema indica a precisão probabilística do julgamento. 6. Este caso de uso se encerra. Fluxos Alternativos Ator pergunta ao paciente 1. O ator seleciona em uma combo box uma pergunta pertinente ao paciente. (#A1) 2. Repete-se o item 1 por vontade do ator. 3. Este caso de uso se encerra. Novo paciente 1. qualquer momento o ator pode criar um novo paciente virtual. 2. Este caso de uso se encerra. Regras de negócio RN02

54 53 5 ESPECIFICAÇÃO DE ANÁLISE Para [10] o processo de análise consiste em quebrar um sistema em diversos componentes e estudar suas interações, objetivando entender seu funcionamento. Esse processo é realizado através da construção de modelos, responsáveis por definir as estratégias de desenvolvimento utilizadas. Nessa fase, as limitações tecnológicas são desconsideradas, focando o processo apenas na escolha da melhor estratégia disponível. Dessa forma, esse capítulo aborda os artefatos gerados a partir do estudo detalhado dos casos de uso e requisitos levantados. Foram criados modelos de relacionamento intra-classes para as diferentes camadas arquiteturais do protótipo, abordados na seção "Modelos de Classes". Em seguida, uma seção explana os diagramas de sequência que representam a execução dos casos de uso e as classes e métodos utilizados durante tal execução. Por fim, a seção "Base de Conhecimento"descreve os grupos de conhecimento implementados na base Drools. 5.1 DEFINIÇÃO DA DIVISÃO ENTRE PARADIGMAS Ao trabalhar com o conceito multi-paradigma de desenvolvimento, surgiu a preocupação em delimitar quais componentes necessários durante a implementação seriam definidos de forma lógica e quais se dariam no mundo OO. Por tratar-se de um Sistema Especialista, optou-se por implementar o máximo do conhecimento específico possível de forma lógica. Dessa forma, todas as doenças e sintomas compreendidos no protótipo têm sua definição em âmbito lógico. No entanto, foi necessário que essa inserção e declaração de fatos e regras fosse realizada através de codificação Java, devido à natureza OO de criação da base. Já os pacientes virtuais, por serem entidades geradas e manipuladas fortemente na camada Java do protótipo, foram modelados puramente como objetos, porém fazem uso de informações recuperadas da base lógica para que sejam criados.

55 54 Dessa forma, o protótipo apresenta a representação de modelagem multi-paradigma explicitada na Figura 19. Figura 19: Esquematização da implementação multi-paradigma. 5.2 BASE DE CONHECIMENTO Implementada sobre a sintaxe Drools de regras de negócio, a Base de Conhecimento do protótipo pode ser subdividida de acordo com a natureza do conhecimento armazenado, como na Figura 20. Consideram-se fatos as certezas imutáveis contidas Figura 20: Esquematização do conhecimento armazenado. pela base durante a execução da aplicação. Seu sintomas são, portanto, diretivas que

56 55 não perdem ou mudam seu sentido. Já as regras são tidas como um conjunto de condicionais formadoras de contexto, que processam fatos por meio de inferências, visando a alcançar afirmações e negações lógicas. A classe KnowledgeManager é responsável por tratar da comunicação entre a camada lógica e a de aplicação, cabendo a ela todo o tratamento de criação, manutenção e destruição da Base de Conhecimento. Também presentes na base de conhecimento estão as consultas realizadas durante a execução. Um exemplo de query (consulta) seria requisitar todos os sintomas presentes da Base de Conhecimento, tratando a informação resultante na aplicação Orientada a Objetos. 5.3 MODELO DE CLASSES A presente seção contempla os diagramas derivados do processo de análise dos casos de uso. Para [10], tais diagramas são produzidos com o intuito de formar a visão estrutural interna dos casos de uso do sistema e, dessa forma, viabilizar seu desenvolvimento. Vale ressaltar que o diagrama de classes de um sistema possui um processo evolutivo oriundo das iterações de seu desenvolvimento. Ao passo que o sistema vai sendo implementado, mais detalhes são incorporados ao mesmo Diagrama de Pacotes A Figura 21 mostra o intra-relacionamento entre os pacotes de implementação do protótipo.

57 56 Figura 21: Representação de pacotes do protótipo. Foi utilizada uma abordagem Model-View-Controller (MVC) de desenvolvimento. Dessa forma, foi possível dividir a implementação em camadas, isolando as funcionalidades de apresentação, regra de negócio e acesso a dados em pacotes próprios. A divisão por camadas prima pela legibilidade, organização e reusabilidade de componentes, ao passo que também provê um entendimento mais profundo das responsabilidades de cada pacote [11]. Modelo (Model) Estruturação lógica dos dados. Visão (View) Coleção de classes que dão suporte à interface com o usuário. Controle (Controller) Realiza a comunicação entre o modelo e a visualização Diagrama da Camada de Apresentação A Figura 22 mostra as classes da camada e seu relacionamento interno. Vale ressaltar a ligação da camada com o pacote de Controle através do seu gerente responsável, o ScreenManager, detalhado na seção seguinte.

58 57 Figura 22: Diagrama de classes da camada de apresentação Diagrama da Camada de Aplicação A Figura 23 mostra as classes de Controle da camada e seus relacionamentos inerentes. Foi decisão de projeto a criação de diversos gerentes responsáveis por papéis específicos dentro do sistema. Dentre eles, vale citar: ModuleManager Responsável pela gerência geral e coordenação dos casos de uso, o ModuleManager é o grande centralizador de operações do sistema. Todos os demais gerentes possuem uma referência para ele, garantindo comunicação e integração de dados. AccessManager Responsável pela gerência de usuários e acesso do sistema, cabe ao Acess- Manager a criação de novos usuários, persistência dos dados de identificação e controle de login.

59 58 KnowledgeManager Responsável por toda a comunicação com a base lógica, o KnowledgeManager é o grande centralizador de conhecimento do sistema. Cabe a ele a criação da base de conhecimento e sua manutenção, tratando entrada de regras e fatos, consultas e modificações durante execução. PatientManager Gerente responsável pela gerência de pacientes virtuais do protótipo. Cabe ao PatientManager a criação de pacientes virtuais, bem como todo o processo de interação do mesmo com o usuário. ScreenManager Gerente responsável pela integração das camadas de controle e apresentação do sistema. Esse componente é responsável pela transição de telas e propagação de ações provindas da interação com o usuário. A figura 24 explana as classes de Modelo da camada e seus relacionamentos internos.

60 Figura 23: Diagrama de classes da camada de aplicação. Controle. 59

61 Figura 24: Diagrama de classes da camada de aplicação. Modelo. 60

62 DIAGRAMAS DE SEQUÊNCIA Para [10] os diagramas de sequência são um dos tipos de Diagramas de Interação desenvolvidos durante a fase de análise. Tais diagramas são gerados para descrever a execução de um caso de uso, explicitando a troca de mensagens enviadas e recebidas pelos objetos que participam do processo. O foco em um diagrama de sequência reside na ordem temporal da troca dessas mensagens. A seguir, são explanadas as sequências de execução realizadas durante a (1) criação e manutenção de usuários, (2) criação de pacientes virtuais, (3) interação com pacientes virtuais e (4) validação de diagnóstico Manter Usuários A Figura 25 demostra a sequência de ações executadas para a criação de usuários Criar Pacientes Virtuais A Figura 26 demostra a sequência de ações executadas para a criação de pacientes virtuais Interagir com Pacientes Virtuais A Figura 27 demostra a sequência de ações executadas durante a interação do usuário com o paciente virtual Validar Diagnóstico A Figura 28 demostra a sequência de ações executadas durante a interação do usuário com o paciente virtual.

63 Figura 25: Diagrama de sequência da criação de usuários. 62

64 Figura 26: Diagrama de sequência da criação de pacientes virtuais. 63

65 Figura 27: Diagrama de sequência da interação do usuário com pacientes virtuais. 64

66 Figura 28: Diagrama de sequência da validação de diagnóstico. 65

67 TELAS DO PROTÓTIPO A presente seção mostra as telas desenvolvidas para os dois ambientes do protótipo Tela do Estudante Figura 29: Tela do ambiente do Estudante.

68 Tela do Administrador Figura 30: Tela do ambiente do Administrador.

69 68 6 ESPECIFICAÇÃO DE PROJETO 6.1 ESCOLHA DA TECNOLOGIA De acordo com o objetivo específico 1 (Página 19) determinou-se a escolha das seguintes tecnologias para alcançar a integração entre os paradigmas lógico e orientado a objetos Paradigma Orientado a Objetos Técnica de modelagem de sistemas focada na construção de objetos que interajam entre si para cumprir um propósito pré-determinado. Estruturado fortemente sobre o conceito de Objetos e Mensagens, esse paradigma afirma que o desenvolvimento de uma ferramenta computacional é melhor realizado se pensarmos em seus componentes como entidades pertencentes a um mundo próprio, onde cada um possui seu papel, comportamento, voz e hierarquia dentro de um sistema fechado. Trata-se de um paradigma fortemente difundido no mundo do desenvolvimento de sistemas, apreciado por sua clareza de implementação, flexibilidade e alta capacidade produtiva. Para o desenvolvimento do presente protótipo foi utilizada a linguagem Java de implementação orientada a objetos. Linguagem Java 1.6 Linguagem dinâmica, de alto nível, portável, altamente difundida e segura para desenvolvimento de soluções orientadas a objetos. As ferramentas desenvolvidas são interpretadas e rodam sob uma máquina virtual própria, garantindo independência de plataforma ou configuração particular de hardware.

70 69 Figura 31: Linguagem Java 1.6. Plataforma Java Constituída por um conjunto de camadas de execução, a plataforma Java é altamente difundida por sua praticidade e alta portabilidade. Composta pela JVM (Java Virtual Machine) e Java API, é capaz de levar a aplicação para a maioria dos PCs. Figura 32: Plataforma Java. Java Swing API Java para desenvolvimento de interfaces gráficas, o Swing traz uma agilidade bem vinda à criação de sistemas. Ao contrário da maioria das APIs gráficas, o Swing se encarrega da própria renderização dos componentes de interação, tirando essa responsabilidade do sistema operacional, como é comumente efetuado. Possui a desvantagem de ser, por isso, menos performático, porém em um protótipo inicial, a API Swing encaixa-se com perfeição à necessidade em mãos.

71 70 Figura 33: Janela típica desenvolvida com Java Swing. Eclipse Helios Release 1 Plataforma Open Source de desenvolvimento Java, o Eclipse promove uma IDE (Integrated Development Environment) eficiente de implementação orientada a objetos. Oferece funcionalidades de criação, depuração e publicação de aplicações Java de forma ágil e simples. O Eclipse também possui integração com a API Drools de criação de regras de negócio Paradigma Declarativo Lógico Técnica de programação que acredita que ferramentas computacionais podem ser desenvolvidas através de declarações matemáticas e lógicas. É caracterizada principalmente pelo seu alto desempenho de processamento, concisão e sua representação de conhecimento. Informações representadas por múltiplas classes e troca de informações entre objetos no paradigma OO são comumente transcritas para a programação lógica com poucas linhas de código. No entanto, a modelagem lógica requer do desenvolvedor uma perspectiva de implementação muito menos natural do que a OO, ao passo que o programador deve pensar mais como a máquina o faria.

72 71 Possui imperativamente uma base detentora de todo o conhecimento do programa. Essa base é composta de regras e fatos, descritos de forma direta, que serão processados por meio de inferências lógicas em busca de um resultado final que seja coerente com toda a verdade da base de conhecimento. API Drools de Regras de Negócio Trata-se de um sistema de gerência de regras de negócio e é, por vezes, também definido como um sistema especialista de criação de regras. Usado para, através de uma perspectiva declarativa, modelar sistemas complexos de emulação de conhecimento. A Drools trabalha a partir de conceitos de linguagens funcionais, utilizando-se de componentes conhecidos nas mesmas - como a memória de trabalho, base de conhecimento, quadro negro, motor de inferência, regras, fatos - para modelar tal sistema especialista. Porém o faz enquanto totalmente imerso no mundo Orientado a Objetos, tornando a implementação mais atual e relevante comercialmente. Apesar de ser uma API criada sobre o Java, a Drools apresenta uma visão de programação que requisita do desenvolvedor a habilidade de pensar de forma declarativa, demandando uma sintaxe e técnicas de implementação próprias. Plugin Drools para Eclipse Ferramenta de auxílio ao desenvolvimento de projetos Drools. Esse plugin disponibiliza a integração necessária do Eclipse com as particularidades do desenvolvimento de um projeto na API. Garante depuração de código nas regras em sintaxe Drools e criação de regras também por fluxo visual Persistência de Dados Tendo em vista que, por requisito, as únicas informações que necessitam ser persistidas são referentes a nome e senha de usuários cadastrados, não houve necessidade da criação de um banco de dados, sendo decidido então, persistir os dados em arquivo no disco, através de técnicas de serialização de objetos.

73 ARQUITETURA Dividido em camadas, o protótipo compartimentaliza as diferentes áreas de implementação em três áreas específicas: Apresentação, Aplicação, Integração e Lógica, como mostrado abaixo: Figura 34: Arquitetura geral do protótipo. 6.3 DIVISÃO EM CAMADAS Camada de Apresentação Implementada sobre Java Swing, a camada é responsável pela transposição dos estímulos gerados pelo usuário para camadas inferiores que acionam diferentes casos de uso. Em sua idealização, as seguintes características foram consideradas: É direta e objetiva.

74 73 Possui apenas tratamento de eventos e redirecionamento dos mesmos. Nenhuma regra de negócio é implementada na camada de apresentação. Baseada em Java Swing, o protótipo apresenta uma interface composta por: (1) três telas principais que possibilitam a navegação entre os módulos existentes e (2) telas auxiliares de alerta e mensagens. Navegabilidade Figura 35: Navegabilidade de interface. Mensagens e Alertas Alerta ao Sair Uma caixa de diálogo alerta o estudante de que, ao sair durante uma seção de questionário com o paciente virtual, seu progresso não será salvo e aconselha-o a finalizar a seção antes de abandonar o sistema. Alerta ao Criar Novo Paciente Uma caixa de diálogo alerta o estudante de que, ao criar um novo paciente virtual durante uma seção de questionário já existente, seu paciente virtual atual não será salvo, aconselhando-o a finalizar a seção antes de iniciar uma nova.

75 Camada de Aplicação Camada responsável pela execução das regras de negócio do protótipo. Nela encontram-se implementados os tratamentos de inputs do usuário, bem como a criação de pacientes virtuais e o controle de sua interação com o estudante. Em sua idealização, as seguintes características foram consideradas: É gerente e coordenadora. Compreende todas as regras de negócio idealizadas e as operações necessárias para suas execuções. Não contém nenhuma implementação do conhecimento específico médico, apenas chamadas para consultas e manipulação da base de conhecimento. Algumas áreas de implementação da camada: Fábrica de Pacientes Virtuais Possui capacidade de gerar pacientes virtuais com enfermidade aleatória dentre um conjunto pré-implementado. Esse paciente possui sintomas, e banco de questões associado, sendo capaz de informar ao estudante detalhes da sua condição clínica. Integração com Base de Conhecimento Possui capacidade de interagir diretamente com o núcleo de conhecimento do sistema de forma simples. Através do envio direto de mensagens, a camada é capaz de receber e interpretar o objeto resposta enviado pela Base de Conhecimento Camada de Integração e Lógica Camada responsável pela modelagem do conhecimento específico. Encontramse nela implementadas as regras e fatos que definem as doenças abrangidas pelo protótipo. Em sua idealização, as seguintes características foram consideradas: É essencialmente lógica e declarativa. Possui capacidade de inferência e inserção de conhecimento.

76 75 Recebe uma consulta direta e retorna um objeto com os resultados correspondentes. É completamente indiferente às implementações das camadas alheias.

77 76 7 CONCLUSÃO 7.1 CONHECIMENTO ADQUIRIDO O projeto apresentou um estudo extenso na integração dos dois diferentes paradigmas de programação, o Lógico e o Orientado a Objetos, levando a uma análise profunda das características de ambos. De forma prática, apresentou a oportunidade de aplicar os conhecimento adquiridos durante o curso de Ciência da Computação. Houve principalmente um aprofundamento nas particularidades do desenvolvimento lógico. O componente da Base de Conhecimento mostrou-se menos nebuloso após ter sido representado como um objeto de outro paradigma. Uma aquisição significativa de conhecimento partiu da pesquisa realizada em estágio de pré-projeto, onde a busca de uma integração mais moderna trouxe um maior entendimento sobre Sistemas Especialistas e sua participação no progresso da Inteligência Artificial. De forma geral, é inevitável apontar o crescimento adquirido em desenvolvimento de sistemas, compartimentalização de componentes, dividir para conquistar, análise e planejamento técnico, boas práticas de programação e escrita, entre outros. O projeto trouxe, dessa forma, uma maturidade acadêmica ímpar à participante, mostrando-se por vezes um desafio em sua conclusão, porém merecedor do esforço requerido. 7.2 CONCLUSÃO DOS OBJETIVOS Foi realizado o estudo sobre o estado da arte dos Sistemas Especialistas, focandose em sua história e importância para os avanços em Inteligência Artificial. Pode-se concluir, a partir desse estudo, que o desenvolvimento de SE s na história partiu a prin-

78 77 cípio e está fortemente ligado a origens acadêmicas, onde a necessidade de emular um especialista mostra-se há muito como um esforço que interessa a educadores. Na atualidade, no entanto, o mercado vem pedindo o desenvolvimento de tais sistemas com objetivos comerciais e, para tanto, as iniciativas de modernizar o produção de SE s têm surgido em todo o globo. Um estudo sobre as formas de integração entre os paradigmas Lógico e Orientado a Objetos também foi realizado. Através dele algumas API s foram analisadas e, por fim, a engine Drools de criação de regras de negócio foi escolhida para o projeto. A engine mostrou-se excelente no que se propõe, emulando regras e uma base de conhecimento lógica de forma simples e, principalmente, produtiva. Dessa forma, pode concluir-se que o desenvolvimento de um Sistema Especialista que integre diferentes módulos programacionais é válido e traz aos envolvidos um importante conhecimento na área de desenvolvimento de sistemas. 7.3 DIFICULDADES ENCONTRADAS Um dos maiores desafios durante o projeto foi, sem dúvida, manter o desenvolvimento do projeto com capital humano limitado. O projeto, no entanto, mostrou-se merecedor de tal desafio. Também desafiador foi desenvolver a integração entre os módulos de diferentes paradigmas programacionais. Ao encontrar a API Drools de criação de regras de negócio, o desafio foi delimitar a linha entre o Lógico e o Orientado a Objetos. Uma divisão nebulosa, onde nem sempre o que deve ser implementado de maneira lógica parece, a princípio, possuir essa necessidade. 7.4 TRABALHOS FUTUROS Para projetos posteriores, é indicada a continuação do protótipo até então desenvolvido, estimulando o desenvolvimento de um módulo tutor onde o usuário possa inserir novas regras e doenças na base de conhecimento, bem como acompanhar o rendimento dos estudantes que utilizam o sistema. É também recomendado o desenvolvimento de uma implementação detalhista do paciente virtual mostrando, de forma mais real, sua condição clínica. Indica-se o de-

79 78 senvolvimento de um modelo 3D do paciente animado, onde as interações do usuário estimulem os diferentes estados de apresentação da modelagem. Um dos esforços iniciais do projeto, que infelizmente mostrou-se inviável nesse momento, foi voltar o sistema para a área cirúrgica da medicina, simulando operações e pequenos procedimentos cirúrgicos, promovendo um primeiro contato de estudantes com tais práticas. Recomenda-se essa implementação para projetos futuros, focando principalmente no realismo de respostas do paciente e na aquisição de conhecimento para o estudante oriunda da tentativa e erro em situações como tal.

80 79 8 ANEXO Em anexo as regras de diagnóstico das doenças: Figura 36: Regra Drools para diagnóstico de Amigdalite. Arquivo: amigdalite.drl. Figura 37: Regra Drools para diagnóstico de Asma. Arquivo: asma.drl.

81 80 Figura 38: Regra Drools para diagnóstico de Catapora. Arquivo: catapora.drl. Figura 39: Regra Drools para diagnóstico de Rubéola. Arquivo: rubeola.drl. Figura 40: Regra Drools para diagnóstico de Sarampo. Arquivo: sarampo.drl.

82 Figura 41: Classe KnowledgeManager. Arquivo: KnowledgeManager.java. 81

83 Figura 42: Classe KnowledgeManager. Arquivo: KnowledgeManager.java. 82

84 Figura 43: Classe KnowledgeManager. Arquivo: KnowledgeManager.java. 83

Estrutura de um Sistema Especialista

Estrutura de um Sistema Especialista Sistemas Especialistas Difusos Estrutura de um Sistema Especialista Prof. Max Pereira http://paginas.unisul.br/max.pereira Áreas de Aplicação da IA SISTEMAS Sistemas Especialistas (Baseados em Conhecimento)

Leia mais

Essencial ao Desenvolvimento de Software

Essencial ao Desenvolvimento de Software Documento de Requisitos Essencial ao Desenvolvimento de Software De que se trata o artigo? Apresenta o documento de requisitos de software, destacando-o como um dos principais documentos pertinentes ao

Leia mais

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA EDITOR DE HELP MANUAL DO USUÁRIO

PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA EDITOR DE HELP MANUAL DO USUÁRIO PONTIFÍCIA UNIVERSIDADE CATÓLICA DO RIO GRANDE DO SUL FACULDADE DE INFORMÁTICA EDITOR DE HELP MANUAL DO USUÁRIO ANA PAULA CARVALHO LORENZONI MICHELINE PARIZOTTO PROFESSORA. MILENE SELBACH SILVEIRA ORIENTADORA

Leia mais

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE

EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE UNIVERSIDADE CATÓLICA DE PELOTAS CENTRO POLITÉCNICO TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS EIMOBILE INSTITUIÇÕES DE ENSINO MOBILE por Miguel Aguiar Barbosa Trabalho de curso II submetido como

Leia mais

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE

PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE PLATAFORMA DE DESENVOLVIMENTO PINHÃO PARANÁ MANUAL DE UTILIZAÇÃO DO CVS NO ECLIPSE Agosto 2007 Sumário de Informações do Documento Tipo do Documento: Manual Título do Documento: MANUAL DE UTILIZAÇÃO DO

Leia mais

SISTEMAS INTELIGENTES DE APOIO À DECISÃO

SISTEMAS INTELIGENTES DE APOIO À DECISÃO SISTEMAS INTELIGENTES DE APOIO À DECISÃO As organizações estão ampliando significativamente suas tentativas para auxiliar a inteligência e a produtividade de seus trabalhadores do conhecimento com ferramentas

Leia mais

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto Conceitos de Linguagens de Roteiro: Apresentação do plano de ensino; Apresentação do plano de

Leia mais

Integrando Eclipse e Websphere Application Server Community Edition

Integrando Eclipse e Websphere Application Server Community Edition 1 Integrando Eclipse e Websphere Application Server Community Edition Sobre o Autor Carlos Eduardo G. Tosin (carlos@tosin.com.br) é formado em Ciência da Computação pela PUC-PR, pós-graduado em Desenvolvimento

Leia mais

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider

Ferramenta: Spider-CL. Manual do Usuário. Versão da Ferramenta: 1.1. www.ufpa.br/spider Ferramenta: Spider-CL Manual do Usuário Versão da Ferramenta: 1.1 www.ufpa.br/spider Histórico de Revisões Data Versão Descrição Autor 14/07/2009 1.0 15/07/2009 1.1 16/07/2009 1.2 20/05/2010 1.3 Preenchimento

Leia mais

Módulo 6: Inteligência Artificial

Módulo 6: Inteligência Artificial Módulo 6: Inteligência Artificial Assuntos: 6.1. Aplicações da IA 6.2. Sistemas Especialistas 6.1. Aplicações da Inteligência Artificial As organizações estão ampliando significativamente suas tentativas

Leia mais

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis

Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis Aplicativo para elaboração de questionários, coleta de respostas e análise de dados na área da saúde em dispositivos móveis Visão Versão Histórico da Revisão Data Versão Descrição Autor 24/06/12

Leia mais

Aula 1 - Introdução e configuração de ambiente de desenvolvimento

Aula 1 - Introdução e configuração de ambiente de desenvolvimento Aula 1 - Introdução e configuração de ambiente de desenvolvimento Olá, seja bem-vindo à primeira aula do curso para desenvolvedor de Android, neste curso você irá aprender a criar aplicativos para dispositivos

Leia mais

Palavras-Chaves: engenharia de requisitos, modelagem, UML.

Palavras-Chaves: engenharia de requisitos, modelagem, UML. APLICAÇÃO DA ENGENHARIA DE REQUISITOS PARA COMPREENSÃO DE DOMÍNIO DO PROBLEMA PARA SISTEMA DE CONTROLE COMERCIAL LEONARDO DE PAULA SANCHES Discente da AEMS Faculdades Integradas de Três Lagoas RENAN HENRIQUE

Leia mais

SIGECO07 Sistema Integrado de Gestão de Contas Universidade Federal de Lavras PLANO DE PROJETO 23/09/2007 SIGECO07/GERENCIA/PROJETOS/

SIGECO07 Sistema Integrado de Gestão de Contas Universidade Federal de Lavras PLANO DE PROJETO 23/09/2007 SIGECO07/GERENCIA/PROJETOS/ SIGECO07 Sistema Integrado de Gestão de Contas Universidade Federal de Lavras PLANO DE PROJETO 23/09/2007 SIGECO07/GERENCIA/PROJETOS/ ModeloPlanoProjeto_2007_04_24 SIGECO07_PlanoProjeto_2007_09_23 Página

Leia mais

Ambiente Virtual de Aprendizagem C.S.G. M anual do Professor

Ambiente Virtual de Aprendizagem C.S.G. M anual do Professor Ambiente Virtual de Aprendizagem C.S.G. M anual do Professor Sumário Pré-requisitos para o Moodle... Entrar no Ambiente... Usuário ou senha esquecidos?... Meus cursos... Calendário... Atividades recentes...

Leia mais

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de:

Capítulo 1. Introdução. 1.1 Linguagens. OBJETIVOS DO CAPÍTULO Ao final deste capítulo você deverá ser capaz de: i Sumário 1 Introdução 1 1.1 Linguagens....................................... 1 1.2 O que é um Compilador?................................ 2 1.3 Processadores de Programas: Compiladores, Interpretadores

Leia mais

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software

Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software. Requisitos de Software INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Curso Técnico em Informática ENGENHARIA DE SOFTWARE Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Clayton Maciel Costa

Leia mais

GEADA. Gerador de Expressões Algébricas em Digrafos Acíclicos. para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa

GEADA. Gerador de Expressões Algébricas em Digrafos Acíclicos. para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa GEADA Gerador de Expressões Algébricas em Digrafos Acíclicos para versão 1.0, de agosto/2008. Autor: Márcio Katsumi Oikawa 1 1 Introdução O GEADA (Gerador de Expressões Algébricas em Digrafos Acíclicos)

Leia mais

Engenharia de Software

Engenharia de Software CENTRO UNIVERSITÁRIO NOVE DE JULHO Profº. Edson T. França edson.franca@uninove.br Software Sistemas Conjunto de elementos, entre os quais haja alguma relação Disposição das partes ou dos elementos de um

Leia mais

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI

UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI UTILIZANDO ICONIX NO DESENVOLVIMENTO DE APLICAÇÕES DELPHI Dr. George SILVA; Dr. Gilbert SILVA; Gabriel GUIMARÃES; Rodrigo MEDEIROS; Tiago ROSSINI; Centro Federal de Educação Tecnológica do Rio Grande do

Leia mais

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi

Metodologias de Desenvolvimento de Sistemas. Analise de Sistemas I UNIPAC Rodrigo Videschi Metodologias de Desenvolvimento de Sistemas Analise de Sistemas I UNIPAC Rodrigo Videschi Histórico Uso de Metodologias Histórico Uso de Metodologias Era da Pré-Metodologia 1960-1970 Era da Metodologia

Leia mais

Programa do Módulo 2. Processo Unificado: Visão Geral

Programa do Módulo 2. Processo Unificado: Visão Geral 9.1 Programa do Módulo 2 Orientação a Objetos Conceitos Básicos Análise Orientada a Objetos (UML) O Processo Unificado (RUP) Processo Unificado: Visão Geral 9.2 Encaixa-se na definição geral de processo:

Leia mais

Algumas propriedades dos objetos:

Algumas propriedades dos objetos: Orientação a Objetos Vivemos num mundo de objetos. Esses objetos existem na natureza, nas entidades feitas pelo homem, nos negócios e nos produtos que usamos. Eles podem ser categorizados, descritos, organizados,

Leia mais

Padrões de Contagem de Pontos de Função

Padrões de Contagem de Pontos de Função Padrões de Contagem de Pontos de Função Contexto Versão: 1.0.0 Objetivo O propósito deste documento é apresentar os padrões estabelecidos para utilização da técnica de Análise de Pontos de Função no ambiente

Leia mais

Estudo de Caso Sistema de Caixa Automático

Estudo de Caso Sistema de Caixa Automático Estudo de Caso Sistema de Caixa Automático Curso de Especialização DEINF - UFMA Desenvolvimento Orientado a Objetos Prof. Geraldo Braz Junior Referências: Notas de Aula Ulrich Schiel Notas de Aula Ariadne

Leia mais

Engenharia de Software I

Engenharia de Software I Engenharia de Software I Rogério Eduardo Garcia (rogerio@fct.unesp.br) Bacharelado em Ciência da Computação Aula 05 Material preparado por Fernanda Madeiral Delfim Tópicos Aula 5 Contextualização UML Astah

Leia mais

PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS

PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS PROPOSTA DE SOFTWARE DE INSTALAÇÃO PARA UM AMBIENTE INTEGRADO DE GERÊNCIA DE PROJETOS E DE PROCESSOS DE NEGÓCIOS Élysson Mendes Rezende Bacharelando em Sistemas de Informação Bolsista de Iniciação Científica

Leia mais

Recurso E-Meeting para o Moodle: um relato do desenvolvimento de uma solução livre de webconferência otimizada para redes de baixo desempenho.

Recurso E-Meeting para o Moodle: um relato do desenvolvimento de uma solução livre de webconferência otimizada para redes de baixo desempenho. Recurso E-Meeting para o Moodle: um relato do desenvolvimento de uma solução livre de webconferência otimizada para redes de baixo desempenho. Resumo Este artigo apresenta uma solução de webconferência

Leia mais

ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS

ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS ANEXO 05 ARQUITETURAS TECNOLÓGICAS PROCERGS Este anexo apresenta uma visão geral das seguintes plataformas: 1. Plataforma Microsoft.NET - VB.NET e C#; 2. Plataforma JAVA; 3. Plataforma Android, ios e Windows

Leia mais

Universidade Federal do Rio de Janeiro NCE/PGTIAE. Tutorial SweetHome3D

Universidade Federal do Rio de Janeiro NCE/PGTIAE. Tutorial SweetHome3D Universidade Federal do Rio de Janeiro NCE/PGTIAE Tutorial SweetHome3D Trabalho apresentado ao Prof. Carlo na Disciplina de Software Livre no curso Pós Graduação em Tecnologia da Informação Aplicada a

Leia mais

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação Universidade Federal Rural de Pernambuco Bacharelado em Sistemas de Informação Disciplina: Análise e Projeto de Sistemas de Informação Docente: Rodrigo Aluna: Thays Melo de Moraes Diagramas do Projeto

Leia mais

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO

1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO 1 ÍNDICE 1 REQUISITOS BÁSICOS PARA INSTALAR O SMS PC REMOTO... 3 1.1 REQUISITOS BASICOS DE SOFTWARE... 3 1.2 REQUISITOS BASICOS DE HARDWARE... 3 2 EXECUTANDO O INSTALADOR... 3 2.1 PASSO 01... 3 2.2 PASSO

Leia mais

Sistema de Inteligência Patrimônial. Especificação dos Requisitos

Sistema de Inteligência Patrimônial. Especificação dos Requisitos Sistema de Inteligência Patrimônial Especificação dos Requisitos Especificação dos Requisitos Data Versão: 18 / 11 / 2015 Histórico das Revisões Data Versão Descrição Autor 23 / 11/ 2015 1.0 Versão Inicial

Leia mais

SECRETARIA DE ESTADO DA FAZENDA. Documento de Arrecadação Estadual DAE. Manual do Usuário. Versão 1.0.0 SECRETARIA DE ESTADO DA FAZENDA

SECRETARIA DE ESTADO DA FAZENDA. Documento de Arrecadação Estadual DAE. Manual do Usuário. Versão 1.0.0 SECRETARIA DE ESTADO DA FAZENDA 1 SECRETARIA DE ESTADO DA FAZENDA Documento de Arrecadação Estadual DAE Manual do Usuário Versão 1.0.0 SECRETARIA DE ESTADO DA FAZENDA 66.053-000 Av. Visconde de Souza Franco, 110 Reduto Belém PA Tel.:(091)

Leia mais

OMT-G Design. Instalação por pacotes

OMT-G Design. Instalação por pacotes OMT-G Design A plataforma Eclipse OMT-G Design não é um software independente, é um plug-in que se utiliza dos mecanismos de extensão do Eclipse que por sua vez é um ambiente de desenvolvimento de software.

Leia mais

O quê avaliação? Unidade IV - Avaliação de Interfaces. Quem deve avaliar um produto de software? Técnicas de Avaliação

O quê avaliação? Unidade IV - Avaliação de Interfaces. Quem deve avaliar um produto de software? Técnicas de Avaliação Unidade IV - Avaliação de Interfaces O quê avaliação? O quê avaliação? Técnicas de Avaliação Tipos de Avaliação com Usuários Paradigmas de avaliação com usuários Avaliação rápida e suja Testes de Usabilidade

Leia mais

1 UML (UNIFIED MODELING LANGUAGE)

1 UML (UNIFIED MODELING LANGUAGE) 1 UML (UNIFIED MODELING LANGUAGE) Segundo Tonsig (2003), para conseguir desenvolver um software capaz de satisfazer as necessidades de seus usuários, com qualidade, por intermédio de uma arquitetura sólida

Leia mais

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software

PROCESSO DE DESENVOLVIMENTO DE SOFTWARE. Modelos de Processo de Desenvolvimento de Software PROCESSO DE DESENVOLVIMENTO DE SOFTWARE Introdução Modelos de Processo de Desenvolvimento de Software Os modelos de processos de desenvolvimento de software surgiram pela necessidade de dar resposta às

Leia mais

Ambientação JAVA. Versão 0.1 MICHEL CORDEIRO ANALISTA DE NEGÓCIO (NTI 2014) 1 UNIVERSIDADE CEUMA 08/01/2014

Ambientação JAVA. Versão 0.1 MICHEL CORDEIRO ANALISTA DE NEGÓCIO (NTI 2014) 1 UNIVERSIDADE CEUMA 08/01/2014 UNIVERSIDADE CEUMA Ambientação JAVA Versão 0.1 08/01/2014 Este é um modelo de configuração para desenvolvimento no ambiente Java. MICHEL CORDEIRO ANALISTA DE NEGÓCIO (NTI 2014) 1 Sumário Sumário... 2 1

Leia mais

Nome N Série: Ferramentas

Nome N Série: Ferramentas Nome N Série: Ferramentas Competências: Identificar e utilizar técnicas de modelagem de dados; Habilidades: Utilizar ferramentas de apoio ao desenvolvimento de software; Bases Tecnológicas: Metodologias

Leia mais

Andarta - Guia de Instalação. Guia de Instalação

Andarta - Guia de Instalação. Guia de Instalação Guia de Instalação 29 de setembro de 2010 1 Sumário Introdução... 3 Os Módulos do Andarta... 4 Instalação por módulo... 6 Módulo Andarta Server... 6 Módulo Reporter... 8 Módulo Agent... 9 Instalação individual...

Leia mais

Curso Básico Sistema EMBI

Curso Básico Sistema EMBI Curso Básico Sistema EMBI Módulo Atendentes e Administradores Todos os direitos reservados. Nenhuma parte deste trabalho pode ser reproduzida em qualquer forma por qualquer meio gráfico, eletrônico ou

Leia mais

Linguagem de Programação Visual

Linguagem de Programação Visual Linguagem de Programação Visual Unidade 1 Ambiente de desenvolvimento Curso Técnico em Informática SUMÁRIO INTRODUÇÃO... 3 SOBRE O JAVA... 3 AMBIENTE DE DESENVOLVIMENTO... 5 RECURSOS DA FERRAMENTA NETBEANS...

Leia mais

Tribunal de Justiça de Pernambuco. Diretoria de Informática. Guia de Utilização do Mantis Máquina de Estados

Tribunal de Justiça de Pernambuco. Diretoria de Informática. Guia de Utilização do Mantis Máquina de Estados Tribunal de Justiça de Pernambuco Diretoria de Informática Guia de Utilização do Mantis Máquina de Estados Guia de Utilização Mantis Histórico de Alterações Data Versão Descrição Autor Aprovado Por 02/09/2008

Leia mais

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem

Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Ontologia Aplicada ao Desenvolvimento de Sistemas de Informação sob o Paradigma da Computação em Nuvem Luiz Cláudio Hogrefe Orientador: Prof. Roberto Heinzle, Doutor Roteiro Introdução Fundamentação teórica

Leia mais

Soluções em Software para Medicina Diagnóstica. www.digitalmed.com.br

Soluções em Software para Medicina Diagnóstica. www.digitalmed.com.br Soluções em Software para Medicina Diagnóstica www.digitalmed.com.br NOTA DE AGRADECIMENTO Primeiramente, agradecemos pela sua receptividade em conhecer as nossas soluções, afinal, é sempre uma imensa

Leia mais

Maximus Software Soluções Tecnológicas Ltda. A empresa que desenvolve o seu Produto ao Máximo

Maximus Software Soluções Tecnológicas Ltda. A empresa que desenvolve o seu Produto ao Máximo Maximus Software Soluções Tecnológicas Ltda. A empresa que desenvolve o seu Produto ao Máximo FARMAINFOR Modernização da Farmácia do Hospital Mater Day Documento de Requisitos Versão 2.0 Histórico de Revisão

Leia mais

AVISO. O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio.

AVISO. O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. AVISO O conteúdo deste documento é de propriedade intelectual exclusiva da GVDASA Sistemas e está sujeito a alterações sem aviso prévio. Nenhuma parte desta publicação pode ser reproduzida nem transmitida

Leia mais

4 Conversor EDTV Raw. 4.1 Arquitetura

4 Conversor EDTV Raw. 4.1 Arquitetura 4 Conversor EDTV Raw O conversor EDTV Raw é o programa que lê um documento escrito no perfil NCL EDTV e gera um documento Raw equivalente, i.e. que define a mesma apresentação. Este capítulo, apresenta

Leia mais

Lógica de Programação

Lógica de Programação Lógica de Programação Unidade 4 Ambiente de desenvolvimento Java QI ESCOLAS E FACULDADES Curso Técnico em Informática SUMÁRIO A LINGUAGEM JAVA... 3 JVM, JRE, JDK... 3 BYTECODE... 3 PREPARANDO O AMBIENTE

Leia mais

Programação para Android

Programação para Android Programação para Android Aula 01: Visão geral do android, instalação e configuração do ambiente de desenvolvimento, estrutura básica de uma aplicação para Android Objetivos Configurar o ambiente de trabalho

Leia mais

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa

Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Desenvolvendo e Integrando Serviços Multiplataforma de TV Digital Interativa Agenda Introdução Aplicações interativas de TV Digital Desafios de layout e usabilidade Laboratório de usabilidade Desafios

Leia mais

2 Jogos Educacionais. 2.1.Visão Geral de Jogos Educacionais

2 Jogos Educacionais. 2.1.Visão Geral de Jogos Educacionais 2 Jogos Educacionais Jogos estão presentes como uma prática habitual, eles tem sido concebidos como uma atividade lúdica que é bastante motivadora no processo de ensinoaprendizado. É assim que jogos educacionais

Leia mais

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software

O que é software? Software e Engenharia de Software. O que é software? Tipos de Sistemas de Software. A Evolução do Software O que é software? Software e Engenharia de Software Programas de computador Entidade abstrata. Ferramentas (mecanismos) pelas quais: exploramos os recursos do hardware. executamos determinadas tarefas

Leia mais

! Introdução. " Motivação para Processos de Software. ! Processo Unificado (USDP) " Definições " RUP x USDP " Características do Processo Unificado

! Introdução.  Motivação para Processos de Software. ! Processo Unificado (USDP)  Definições  RUP x USDP  Características do Processo Unificado Agenda! Introdução " Motivação para Processos de Software! (USDP) " Definições " RUP x USDP " Características do! Descrição detalhada do! Processos Derivados! Templates simplificados! Conclusões 2 Processo

Leia mais

Codificar Sistemas Tecnológicos

Codificar Sistemas Tecnológicos Codificar Sistemas Tecnológicos Especificação dos Requisitos do Software Sistema de gestão para a Empresa Cliente SlimSys Autor: Equipe Codificar Belo Horizonte MG Especificação dos Requisitos do Software

Leia mais

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código

GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código GeCA: Uma Ferramenta de Engenharia Reversa e Geração Automática de Código Igor Steinmacher 1, Éderson Fernando Amorim 1, Flávio Luiz Schiavoni 1, Elisa Hatsue Moriya Huzita 1 1 Departamento de Informática

Leia mais

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena

Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços. Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Um Processo para Desenvolvimento de Aplicações Web Baseado em Serviços Autores: Fábio Zaupa, Itana Gimenes, Don Cowan, Paulo Alencar e Carlos Lucena Tópicos Motivação e Objetivos LP e SOA Processo ADESE

Leia mais

Anderson Corrêa Carraro 1, Fernando Alves Rodrigues 2, Silvio Francisco dos Santos 3

Anderson Corrêa Carraro 1, Fernando Alves Rodrigues 2, Silvio Francisco dos Santos 3 DESENVOLVIMENTO E IMPLANTAÇÃO DE UM SISTEMA INFORMATIZADO PARA O CONTROLE DE PROCESSOS DA QUALIDADE NA DIRETORIA DE METROLOGIA CIENTÍFICA E INDUSTRIAL DIMCI/INMETRO. Anderson Corrêa Carraro 1, Fernando

Leia mais

E-Commerce Master. Versão: 1.0 Data: 05/06/2013 Identificador do documento: EM

E-Commerce Master. Versão: 1.0 Data: 05/06/2013 Identificador do documento: EM E-Commerce Master Versão: 1.0 Data: 05/06/2013 Identificador do documento: EM Histórico de revisões Versão Data Autor Descrição Localização 1.0 05/06/2013 Thyago Ferreira 1.0 05/06/2013 Vilmar de Sousa

Leia mais

Tutorial para acesso ao Peticionamento Eletrônico e Visualização de Processos Eletrônicos

Tutorial para acesso ao Peticionamento Eletrônico e Visualização de Processos Eletrônicos Tutorial para acesso ao Peticionamento Eletrônico e Visualização de Processos Eletrônicos Este tutorial visa preparar o computador com os softwares necessários para a utilização dos sistemas de visualização

Leia mais

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário

Centro de Computação - Unicamp Gerência de Atendimento ao Cliente (e-mail:apoio@turing.unicamp.br) Sumário Sumário Conceitos Microsoft Access 97... 01 Inicialização do Access... 02 Convertendo um Banco de Dados... 03 Criando uma Tabela... 06 Estrutura da Tabela... 07 Propriedades do Campo... 08 Chave Primária...

Leia mais

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem? UML e Diagramas de Casos de Uso e Classes Prof. Ms. Luiz Alberto Contato: lasf.bel@gmail.com A linguagem UML UML (Unified Modeling Language) Linguagem de Modelagem Unificada É uma linguagem de modelagem

Leia mais

Análise estruturada de sistemas

Análise estruturada de sistemas Análise estruturada de sistemas Prof. Marcel O que é Engenharia de software Engenharia de software é uma área do conhecimento da computação voltada para a especificação, desenvolvimento e manutenção de

Leia mais

MANUAL DE UTILIZAÇÃO DO MOODLE 2.6

MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO NTIC MANUAL DE UTILIZAÇÃO DO MOODLE 2.6 PERFIL ALUNO Versão 1.0 2014 NÚCLEO DE TECNOLOGIA DA INFORMAÇÃO E COMUNICAÇÃO NTIC MANUAL DE UTILIZAÇÃO DO MOODLE

Leia mais

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE

LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE LEVANTAMENTO DE REQUISITOS SEGUNDO O MÉTODO VOLERE RESUMO Fazer um bom levantamento e especificação de requisitos é algo primordial para quem trabalha com desenvolvimento de sistemas. Esse levantamento

Leia mais

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional

Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Aplicativo web para definição do modelo lógico no projeto de banco de dados relacional Juarez Bachmann Orientador: Alexander Roberto Valdameri Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831

Rational Quality Manager. Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 Rational Quality Manager Nome: Raphael Castellano Campus: AKXE Matrícula: 200601124831 1 Informações Gerais Informações Gerais sobre o RQM http://www-01.ibm.com/software/awdtools/rqm/ Link para o RQM https://rqmtreina.mvrec.local:9443/jazz/web/console

Leia mais

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados:

Relatório do GPES. Descrição dos Programas e Plugins Utilizados. Programas Utilizados: Relatório do GPES Relatório referente à instalação dos programas e plugins que estarão sendo utilizados durante o desenvolvimento dos exemplos e exercícios, sendo esses demonstrados nos próximos relatórios.

Leia mais

ATIVIDADES PRÁTICAS SUPERVISIONADAS

ATIVIDADES PRÁTICAS SUPERVISIONADAS ATIVIDADES PRÁTICAS SUPERVISIONADAS 4ª Série Informática Industrial CST em Mecatrônica Industrial A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem desenvolvido por meio de um

Leia mais

Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB

Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB Sincronização do Catálogo de Endereços no MDaemon 6.x com o uso do ComAgent, LDAP, MAPI e WAB Alt-N Technologies, Ltd 1179 Corporate Drive West, #103 Arlington, TX 76006 Tel: (817) 652-0204 2002 Alt-N

Leia mais

Processos (Threads,Virtualização e Migração de Código)

Processos (Threads,Virtualização e Migração de Código) Processos (Threads,Virtualização e Migração de Código) Roteiro Processos Threads Virtualização Migração de Código O que é um processo?! Processos são programas em execução. Processo Processo Processo tem

Leia mais

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS

PDS - DATASUS. Processo de Desenvolvimento de Software do DATASUS PDS - DATASUS Processo de Desenvolvimento de Software do DATASUS Coordenação Geral de Arquitetura e Engenharia Tecnológica Coordenação de Padronização e Qualidade de Software Gerência de Padrões e Software

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots

Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots Diretrizes para criação de um padrão de desenvolvimento de sistemas de informação baseados em cots Roosewelt Sanie Da Silva¹ 1 Ciência da Computação Universidade Presidente Antônio Carlos (UNIPAC) Rodovia

Leia mais

Manual Easy Chat Data de atualização: 20/12/2010 16:09 Versão atualizada do manual disponível na área de download do software.

Manual Easy Chat Data de atualização: 20/12/2010 16:09 Versão atualizada do manual disponível na área de download do software. 1 - Sumário 1 - Sumário... 2 2 O Easy Chat... 3 3 Conceitos... 3 3.1 Perfil... 3 3.2 Categoria... 4 3.3 Ícone Específico... 4 3.4 Janela Específica... 4 3.5 Ícone Geral... 4 3.6 Janela Geral... 4 4 Instalação...

Leia mais

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE

ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE ENGENHARIA DE SOFTWARE/ SISTEMAS DE SOFTWARE CMP1280/CMP1250 Prof. Me. Fábio Assunção Introdução à Engenharia de Software SOFTWARE Programa de computador acompanhado dos dados de documentação e configuração

Leia mais

Sistema de Geração de Sítios e Manutenção de Conteúdo: uma solução incorporando regras de acessibilidade

Sistema de Geração de Sítios e Manutenção de Conteúdo: uma solução incorporando regras de acessibilidade Sistema de Geração de Sítios e Manutenção de Conteúdo: uma solução incorporando regras de acessibilidade Ilan Chamovitz Datasus Departamento de Informática e Informação do SUS Ministério da Saúde - Brasil

Leia mais

PRÓTOTIPO MÓVEL DE TELEMEDICINA PARA AUXILIO DE DIAGNOSTICO CARDIACO COM ECG EM CARATER EMERGENCIAL

PRÓTOTIPO MÓVEL DE TELEMEDICINA PARA AUXILIO DE DIAGNOSTICO CARDIACO COM ECG EM CARATER EMERGENCIAL PRÓTOTIPO MÓVEL DE TELEMEDICINA PARA AUXILIO DE DIAGNOSTICO CARDIACO COM ECG EM CARATER EMERGENCIAL Adson Diego Dionisio da SILVA 1, Saulo Soares de TOLEDO², Luiz Antonio Costa Corrêa FILHO³, Valderí Medeiros

Leia mais

1 http://www.google.com

1 http://www.google.com 1 Introdução A computação em grade se caracteriza pelo uso de recursos computacionais distribuídos em várias redes. Os diversos nós contribuem com capacidade de processamento, armazenamento de dados ou

Leia mais

AUTOR(ES): VINICIUS RUIZ PONTES SILVA, JAQUELINE CRISTINA DA SILVA, JOÃO PAULO DE OLIVEIRA HONESTO

AUTOR(ES): VINICIUS RUIZ PONTES SILVA, JAQUELINE CRISTINA DA SILVA, JOÃO PAULO DE OLIVEIRA HONESTO Anais do Conic-Semesp. Volume 1, 2013 - Faculdade Anhanguera de Campinas - Unidade 3. ISSN 2357-8904 TÍTULO: IMPLEMENTAÇÃO DE UM SISTEMA PARA INTERCÂMBIOS ESTUDANTIS CATEGORIA: CONCLUÍDO ÁREA: ENGENHARIAS

Leia mais

Tércio Oliveira de Almeida. TCC - Nexus - RAS

Tércio Oliveira de Almeida. TCC - Nexus - RAS Tércio Oliveira de Almeida TCC - Nexus - RAS Porto Alegre 12 de novembro de 2009 Tércio Oliveira de Almeida TCC - Nexus - RAS Trabalho de Graduação Orientador: Prof. Dr. Marcelo Soares Pimenta UNIVERSIDADE

Leia mais

Qualidade de software

Qualidade de software Faculdade de Ciências Sociais e Aplicadas de Petrolina - FACAPE Curso: Ciência da Computação Disciplina:Projeto de Sistemas Qualidade de software cynaracarvalho@yahoo.com.br Qualidade de software Qualidade

Leia mais

Instalação do IBM SPSS Modeler Server Adapter

Instalação do IBM SPSS Modeler Server Adapter Instalação do IBM SPSS Modeler Server Adapter Índice Instalação do IBM SPSS Modeler Server Adapter............... 1 Sobre a Instalação do IBM SPSS Modeler Server Adapter................ 1 Requisitos de

Leia mais

PROGRAMANDO ANDROID NA IDE ECLIPSE GABRIEL NUNES, JEAN CARVALHO TURMA TI7

PROGRAMANDO ANDROID NA IDE ECLIPSE GABRIEL NUNES, JEAN CARVALHO TURMA TI7 Serviço Nacional de Aprendizagem Comercial do Rio Grande do Sul Informação e Comunicação: Habilitação Técnica de Nível Médio Técnico em Informática Programação Android na IDE Eclipse PROGRAMANDO ANDROID

Leia mais

Desenvolvimento de um Framework de Jogos 3D para Celulares

Desenvolvimento de um Framework de Jogos 3D para Celulares Desenvolvimento de um Framework de Jogos 3D para Celulares Fabrício Brasiliense Departamento de Informática e Estatística(INE) Universidade Federal de Santa Catarina (UFSC) Campus Universitário Trindade-

Leia mais

PROJETO DE REDES www.projetoderedes.com.br

PROJETO DE REDES www.projetoderedes.com.br PROJETO DE REDES www.projetoderedes.com.br Centro Universitário de Volta Redonda - UniFOA Curso Tecnológico de Redes de Computadores 5º período Disciplina: Tecnologia WEB Professor: José Maurício S. Pinheiro

Leia mais

OPCEM 1.0. Versão 1.0 Copyright 2013 OpServices 1

OPCEM 1.0. Versão 1.0 Copyright 2013 OpServices 1 OPCEM 1.0 Versão 1.0 Copyright 2013 OpServices 1 OpCEM CONCEITO... 4 REQUISITOS MÍNIMOS... 4 INSTALANDO... 4 CONHECENDO A INTERFACE DO OPCEM... 7 CONFIGURAÇÃO DO GERENCIADOR... 7 ADICIONAR NOVO ROBÔ...

Leia mais

SPEKX DATA SHEET. Visão Serviços. Release 4.5

SPEKX DATA SHEET. Visão Serviços. Release 4.5 SPEKX DATA SHEET Visão Serviços Release 4.5 Versão 2.0 ÍNDICE ANALÍTICO 1. Introdução 3 1.1. Solução Única 3 2. Visão Resumida 4 2.1 Diagrama de Etapas de Projetos / Serviços 4 2.2. Resumo Descritivo Etapas

Leia mais

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da

Java Laboratório Aula 1. Divisões da Plataforma. Introdução a Plataforma Java. Visão geral da arquitetura da Java Laboratório Aula 1 Programação orientada a objetos Profa. Renata e Cristiane Introdução a Plataforma Java O que é Java? Tecnologia Linguagem de Programação Ambiente de Execução (JVM) Tudo isso é a

Leia mais

Características do Software

Características do Software Questionamentos Por que tanta demora para entregar? Por que os prazos se atrasam? Por que os custos são altos? Por que não achar todos os erros antes de entregar? Por que dificuldade em medir o progresso

Leia mais

Manual do Artikulate. Andreas Cord-Landwehr Ondrila Gupta Tradução: André Marcelo Alvarenga

Manual do Artikulate. Andreas Cord-Landwehr Ondrila Gupta Tradução: André Marcelo Alvarenga Andreas Cord-Landwehr Ondrila Gupta Tradução: André Marcelo Alvarenga 2 Conteúdo 1 Introdução 5 1.1 Conceito de aprendizagem................................. 5 1.2 Primeiros passos no Artikulate..............................

Leia mais

Inteligência Artificial

Inteligência Artificial Inteligência Artificial As organizações estão ampliando significativamente suas tentativas para auxiliar a inteligência e a produtividade de seus trabalhadores do conhecimento com ferramentas e técnicas

Leia mais

Histórico de Revisão Data Versão Descrição Autor

Histórico de Revisão Data Versão Descrição Autor H6Projetos Documento de Requisitos Versão 1.3 Histórico de Revisão Data Versão Descrição Autor 05/09/2013 1.0 Preenchimento do Capítulo 2 Requisitos Funcionais Evilson Montenegro 26/09/2013 1.1 Preenchimento

Leia mais

Uma visão mais detalhada do software HP LoadRunner

Uma visão mais detalhada do software HP LoadRunner Boletim técnico Uma visão mais detalhada do software HP LoadRunner Índice Um novo enfoque no teste de desempenho: a solução HP LoadRunner 3 A solução HP LoadRunner e a terminologia dos testes de desempenho

Leia mais

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira

ENTERPRISE JAVABEANS 3. Msc. Daniele Carvalho Oliveira ENTERPRISE JAVABEANS 3 Msc. Daniele Carvalho Oliveira Apostila Servlets e JSP www.argonavis.com.br/cursos/java/j550/index.html INTRODUÇÃO Introdução Enterprise JavaBeans é um padrão de modelo de componentes

Leia mais

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação

DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES. Trabalho de Graduação DESENVOLVIMENTO DE INTERFACE WEB MULTIUSUÁRIO PARA SISTEMA DE GERAÇÃO AUTOMÁTICA DE QUADROS DE HORÁRIOS ESCOLARES Trabalho de Graduação Orientando: Vinicius Stein Dani vsdani@inf.ufsm.br Orientadora: Giliane

Leia mais

PROFESSOR: CRISTIANO MARIOTTI

PROFESSOR: CRISTIANO MARIOTTI PROFESSOR: CRISTIANO MARIOTTI Conjunto de atividades, parcialmente ordenadas, com a finalidade de obter um produto de software; Considerado um dos principais mecanismos para se obter software de qualidade

Leia mais

CONHECENDO O AMBIENTE VIRTUAL DE APRENDIZAGEM Moodle - Learning Management System Versão 1.3

CONHECENDO O AMBIENTE VIRTUAL DE APRENDIZAGEM Moodle - Learning Management System Versão 1.3 CONHECENDO O AMBIENTE VIRTUAL DE APRENDIZAGEM Moodle - Learning Management System Versão 1.3 Este tutorial não tem como finalidade esgotar todas as funcionalidades do Ambiente, ele aborda de forma prática

Leia mais