Your SlideShare is downloading. ×
Sistema Especialista para Orçamento de Web Site
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Sistema Especialista para Orçamento de Web Site

5,419
views

Published on

Apresenta-se uma modelagem e um protótipo de um sistema de geração automática de orçamentos para web site. Porém, técnicas de Inteligência Artificial, mais especificamente Sistemas especialistas, …

Apresenta-se uma modelagem e um protótipo de um sistema de geração automática de orçamentos para web site. Porém, técnicas de Inteligência Artificial, mais especificamente Sistemas especialistas, agregadas a técnicas de Planejamento de Projetos são utilizadas para uma maximização dos resultados e orçamentos gerados pelo sistema

Published in: Technology, Business

1 Comment
5 Likes
Statistics
Notes
No Downloads
Views
Total Views
5,419
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
1
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. FACULDADE EXPONENCIAL – FIE Curso de Pós-Graduação (Latu Sensu) em Gestão Estratégica em Tecnologia da Informação SISTEMA ESPECIALISTA PARA ORÇAMENTO DE WEB SITE CHAPECÓ (SC), 2008.
  • 2. 2 LARA POPOV ZAMBIASI BAZZI OBERDERFER SISTEMA ESPECIALISTA PARA ORÇAMENTO DE WEB SITE Monografia apresentada à Faculdade Exponencial – FIE, no Curso de Pós- Graduação em Gestão Estratégica em Tecnologia da Informação sob orientação do Msc. Saulo Popov Zambiasi com o requisito parcial a obtenção do título de especialista em Gestão Estratégica em Tecnologia da Informação. CHAPECÓ, SC, NOVEMBRO DE 2008.
  • 3. 3 A Deus, que me deu segurança para subir mais um degrau na vida. A minha família, principalmente meu esposo pela sua contribuição, compreensão e suporte nas horas que mais precisei. Ao Professor Saulo Popov Zambiasi que ao longo da minha caminhada sempre me serviu de referência, obrigada pela orientação, dedicação e confiança.
  • 4. 4 “O degrau da escada não foi inventado para repouso, mas para sustentar o pé o tempo necessário para que o homem coloque o outro pé, um pouco mais alto”. (Autor desconhecido)
  • 5. 5 Resumo O processo de automatização de tarefas rotineiras tem aumentado o rendimento das tarefas dos funcionários em diversos setores das organizações. Seguindo nesse sentido este trabalho apresenta uma modelagem e um protótipo de um sistema de geração automática de orçamentos para web site. Porém, técnicas de Inteligência Artificial, mais especificamente Sistemas Especialistas, agregadas a técnicas de Planejamento de Projetos são utilizadas para uma maximização dos resultados e orçamentos gerados pelo sistema. Palavras-chave Sistema especialista, orçamento de web site, planejamento de projeto.
  • 6. 6 Abstract The process of automatization of routine tasks has increased the income of the tasks of the employees in diverse sectors of the organizations. Following in this direction this work it presents a modeling and an archetype of a system of automatic generation of budgets for web site. However, techniques of Artificial Intelligence, more specifically Expert Systems, added the techniques of Planning of Projects are used for a maximização of the results and budgets generated for the system. Keywords Expert Systems, budgets for web site, planning of project.
  • 7. 7 LISTA DE FIGURAS Figura 3.1: Resolução de problemas por SE.............................................................24 Figura 3.2: Ciclo de Desenvolvimento Exploratório...................................................27 Figura 4.1: Diagrama de Casos de Uso ....................................................................31 Figura 4.2: Diagrama de Classes ..............................................................................32 Figura 4.3: Diagrama de Seqüência..........................................................................33 Figura 4.4: Tela do Expert SINTA .............................................................................34 Figura 4.5: Cadastro de variáveis..............................................................................35 Figura 4.6: Variáveis objetivo ....................................................................................36 Figura 4.7: Inclusão de regra.....................................................................................37 Figura 4.8: Personalizando as perguntas..................................................................38 Figura 4.9: Tela de informações do sistema..............................................................39
  • 8. 8 ÍNDICE LISTA DE FIGURAS ...................................................................................................7 ÍNDICE ........................................................................................................................8 1 INTRODUÇÃO....................................................................................................10 1.1 Objetivos .....................................................................................................11 1.1.1 Objetivo Geral ......................................................................................11 1.1.2 Objetivos Específicos...........................................................................11 1.2 Justificativa .................................................................................................11 1.3 Metodologia ................................................................................................12 1.4 Estrutura do Trabalho .................................................................................12 2 PLANEJAMENTO DE ORÇAMENTO PARA WEB SITE ....................................14 2.1 Planejamento de Projeto.............................................................................15 2.1.1 Definição do Escopo ............................................................................15 2.1.2 Alocação dos Recursos .......................................................................17 2.1.3 Estimativa de Custo e Esforço .............................................................18 2.1.4 Estimativa de Prazo .............................................................................21 3 SISTEMAS ESPECIALISTAS.............................................................................22 3.1 Arquitetura dos Sistemas Especialistas baseados em Regras ...................23 3.2 Processo de Engenharia de um Sistema Especialista ................................27 4 SISTEMA ESPECIALISTA PARA ORÇAMENTO DE WEB SITES ....................30 4.1 Apresentação da Especificação..................................................................30 4.2 Desenvolvimento do Protótipo ....................................................................34 5 CONSIDERAÇÕES FINAIS................................................................................40 5.1 Sugestões para Trabalhos Futuros .............................................................40 6 BIBLIOGRAFIA...................................................................................................42
  • 9. 9
  • 10. 10 1 INTRODUÇÃO Com a necessidade do aumento da produtividade dos diversos setores organizacionais, as empresas têm tido que automatizar suas tarefas rotineiras de forma a aumentar o rendimento dos seus funcionários e, conseqüentemente, aumentar seu próprio rendimento como um todo e o lucro (Gomes, 2003). Neste contexto, a tarefa de fazer o orçamento de sistemas também poderia ser considerada uma tarefa a ser automatizada. No caso específico deste trabalho, um sistema para geração automática de orçamentos para web sites. Porém, a tarefa da criação de um orçamento não é tão simples e necessita da assistência de uma pessoa que tenha certo conhecimento nos assuntos envolvidos e alguma prática do processo necessário, ou seja, um especialista. Dessa forma, para que haja um melhor resultado da saída do sistema, o sistema pode necessitar de implementações de técnicas de Inteligência Artificial tal como Sistemas Especialistas. Este por sua vez se caracteriza por possuir uma base de conhecimentos que é utilizada para a solução de um problema, o que nos resulta em um alto nível de experiência (Zuchi, 2000). Para a realização de um projeto de sistemas precisamos de um planejamento. Pressman (2002) menciona que o planejamento envolve estimativas que visam determinar o quanto dinheiro, esforço, recursos e tempo serão necessários para o desenvolvimento do sistema em questão. Dessa forma, este trabalho visa pesquisar técnicas de Inteligência Artificial, mais especificamente teoria e prática para o desenvolvimento de Sistemas Especialistas, para auxiliar funcionários com a tarefa de geração de orçamentos para o caso específico de web sites.
  • 11. 11 1.1 Objetivos Tendo como base a contextualização da automatização de processos aplicada à tarefa de criação de orçamentos para web sites, o presente trabalho procura alcançar o objetivo descrito em seqüência. 1.1.1 Objetivo Geral O presente trabalho objetiva modelar e desenvolver um protótipo de sistema para geração automática de orçamentos para web sites utilizando técnicas de Sistemas Especialistas e Planejamento de Projetos. 1.1.2 Objetivos Específicos De forma a alcançar o objetivo geral, são necessários os seguintes objetivos específicos: • Obter referências bibliográficas sobre Planejamento de Projetos, Orçamentos de Software e Sistemas Especialistas; • Prover um modelo para a criação de um sistema, em conformidade com a proposta deste trabalho. • Prover um protótipo para testes e avaliação. 1.2 Justificativa O processo de automatização de diversos setores das organizações as tem auxiliado a alavancar uma maior competitividade tanto no que diz ao mercado nacional quanto ao mercado internacional (Gomes, 2003). As empresas que trabalham no setor de desenvolvimento de páginas para web têm aumentado bastante nos últimos anos. Gonçalves et all (2005), nos mostra uma pesquisa realizada em 2001, onde cerca de 430 empresas de software foram
  • 12. 12 pesquisadas pelo Ministério de Ciência e Tecnologia do Governo Federal no Brasil. Foi constatado que 133 (31,6%) desenvolvem páginas para web, 123 (28,4%) desenvolvem aplicações E-business e 111, ou seja, 25,6% desenvolvem aplicações para comércio eletrônico Desta forma, as empresas deste setor também tem tido que se aperfeiçoar em seus processos e tarefas para poderem continuar competitivas e lucrativas. Isso por si só, justifica o processo de automatização de determinadas tarefas a nível de operações executadas pelos funcionários dessas empresas. Dessa forma, os mesmos terão mais tempo para tarefas que realmente necessite sua atenção e tempo, como no planejamento dos novos projetos, gerenciamento dos projetos atuais, desenvolvimento e tempo para fechar novos negócios. 1.3 Metodologia Para alcançar os objetivos deste trabalho, os seguintes procedimentos se tornam necessários: • Pesquisa em livros e artigos científicos; • Modelagem do protótipo utilizando técnicas de UML e Entidade- Relacionamento; • Desenvolvimento de um protótipo utilizando a ferramenta Expert SINTA; • Testes para validação do protótipo. 1.4 Estrutura do Trabalho O presente trabalho está organizado da seguinte forma: no capítulo 1 são abordadas as principais questões referentes ao trabalho como sua origem, problemática, justificativa, os objetivos e a importância de seu desenvolvimento. O capítulo 2 contempla uma revisão bibliográfica na área de planejamento de
  • 13. 13 orçamento para website e projetos em geral, no que se refere a sua conceituação e estrutura. O capítulo 3 faz uma revisão bibliográfica sobre sistemas especialistas com base nos fundamentos, arquitetura e processo de engenharia para o desenvolvimento do protótipo. O capítulo 4 relata os aspectos da estrutura e principais características do protótipo de sistema especialista desenvolvido, assim como, da ferramenta utilizada para o desenvolvimento do mesmo. E por fim, o capítulo 5 apresenta as considerações finais do trabalho, suas limitações e recomendações para trabalhos futuros.
  • 14. 14 2 PLANEJAMENTO DE ORÇAMENTO PARA WEB SITE Neste capítulo é realizada uma revisão bibliográfica sobre o processo planejamento de projetos voltado para orçamento de web site. Inicialmente verificam-se conceitos de orçamento e planejamento de projeto. Em seguida dá-se uma revisão geral sobre as fases dos processos de planejamento. Segundo Santini (2004, p. 28) citando Tavares (2000, p. 23) “o planejamento deu seus primeiros passos na metade do séc. XX, nos EUA, quando o planejamento financeiro, representado pelo orçamento, começou a chamar a atenção dos empresários da época”. Santini (2004, p. 28) ainda explica que: O planejamento financeiro é um instrumento que permite sistematizar o processo decisório das empresas, permitindo que seus dirigentes possam projetar o futuro da empresa e antecipar suas decisões pela escolha de alternativas. Este processo de decisão implica optar por uma alternativa de ação em detrimento de outras disponíveis, em função de preferência, disponibilidades, grau de aceitação de risco, etc. O orçamento se enquadra neste processo fazendo parte do processo decisório formal que projeta seus lucros e ações para enfrentar a concorrência. O orçamento em si é um instrumento que pode ser encarado com um plano de ação detalhado para alcançar os objetivos de um projeto em uma empresa de prestação de serviços. Pressman (2002) acrescenta que o planejamento, no caso de um orçamento, envolve estimativas que visam determinar o quanto dinheiro, esforço, recursos e tempo serão necessários para o desenvolvimento do sistema em questão.
  • 15. 15 2.1 Planejamento de Projeto O planejamento possui algumas fases, tais como: definição do escopo, recursos, estimativa de custo e prazo do projeto/orçamento. 2.1.1 Definição do Escopo Em um planejamento de projeto, Pressman (2002) afirma que a primeira etapa é a definição do escopo e que esse escopo deve ser claramente delimitado. Nesta fase, são definidos os dados e o controle a serem processados, a função, o desempenho, as restrições, a interface e a confiabilidade. Graham (2001) salienta que antes mesmo de começar qualquer projeto faz-se necessário saber a finalidade real do projeto, pois um web site em si é somente a ferramenta para o objetivo do projeto, seja ele comercial ou voltado para a divulgação, por isso a importância desta etapa. Para a coleta das informações pertinentes ao escopo, Pressman (2002) salienta que a técnica utilizada em geral é uma reunião preliminar ou uma entrevista. Nesta entrevista, existem algumas “questões de contexto livre” que devem ser respondidas. Segundo Pressman (2002), estas questões foram sugeridas por Gause e Weinber em 1989. Neste, o primeiro conjunto de questões focaliza o cliente, o segundo conjunto permite ao analista entender melhor as aspirações do cliente e um conjunto final que devem focar a efetividade da reunião realizada. O conjunto dessas informações trás a definição do escopo. Nesta fase, o analista ainda precisa avaliar a viabilidade do projeto quanto ao seu desenvolvimento, pois se esse escopo não for viável, o projeto para por aí. Tendo esse escopo definido em mãos, o analista pode enquadrá-lo em uma das categorias abaixo, definindo em si o tipo de web site a ser proposto no orçamento (Pressman, 2002):
  • 16. 16 • Informacional: essa categoria é caracterizada por conteúdos somente de leitura (jornais, manuais, catálogo de produtos, livros on-line, dentre outros). • Download: o usuário baixa informações de um servidor adequado (baixaki, twocows, lycos, downloads.com, dentre outros). • Adaptável: o usuário adapta o conteúdo as necessidades específicas, estes são voltados à característica de usabilidade em um web site (aumentar a letra, trocar cores, portadores de necessidades especiais, dentre outros). • Interação: o usuário interage com o próprio o web site, com atendentes on-line, com outras pessoas através de formulários, jogos on-line, sala de atendimento, sala de bate-papo, dentre outros. • Entrada do usuário: o usuário entra com dados por meio de formulários (solicitação de serviço, contato, dentre outros). • Orientada a transação: o usuário faz uma solicitação que seja atendida pelo web site (envio de um pedido). • Orientada a serviços: o website fornece um serviço ao usuário (reserva de um livro em um site de biblioteca). • Portal: o web site fornece ao usuário links fora do domínio da aplicação (UOL, Terra, Brturbo, dentre outros). • De acesso a base de dados: o usuário consulta uma grande base de dados para extração de informações (). • Workflow: o usuário tem acesso a sistemas onde ele pode gerenciar, planejar e acompanhar informações on-line (Google Agenda, eGroupWare, dentre outros).
  • 17. 17 2.1.2 Alocação dos Recursos A próxima tarefa é estimar os recursos necessários para o desenvolvimento do projeto. Segundo Pressman (2002) isso inclui: • a quantidade e especialidade dos recursos humanos que terão que ser envolvidos no desenvolvimento deste projeto; • os recursos de software reusáveis, que devem ser catalogados para facilitar a aplicação e valorização dos mesmos, por mais que já tenham sido desenvolvidos, não significa que não serão cobrados, porém, isso dará uma redução do prazo de conclusão do desenvolvimento; • os recursos de ambiente, que são hardware e software, onde o hardware fornece a plataforma que apóia as ferramentas de softwares necessárias para o desenvolvimento do projeto. No primeiro caso, o gerenciamento de recursos humanos de um projeto tem como principal objetivo definir as atividades e perfis necessários, a necessidade de capacitação, além da disponibilização dos indivíduos envolvidos no projeto para a realização de cada atividade (PMBOK, 2000). No segundo caso, a engenharia de software baseada em componentes enfatiza o reuso, para isso Pressman (2002) sugere algumas categorias de reuso de software: • Componentes de prateleira: são softwares existentes que podem ser de terceiros ou mesmo que tenha sido desenvolvido para uma aplicação anterior, mas que estejam prontos e validados. Se, neste caso, estes satisfazem os requisitos do projeto, então o custo da aplicação poderá ser mais baixo e o tempo de desenvolvimento será mais curto.
  • 18. 18 • Componentes de experiência-plena: são as especificações, projeto ou códigos existentes que já estão desenvolvidos e que são similares ao projeto em questão, onde os membros da equipe têm plena experiência na área em questão, onde a única necessidade são as modificações dos componentes pré-existentes. Se, neste caso, estes satisfazem os requisitos do projeto, então os riscos para o projeto são aceitáveis. • Componentes de experiência-parcial: semelhante ao anterior, porém os membros da equipe possuem experiência limitada, onde pode oferecer um risco considerável para o projeto. Se, neste caso, estes satisfazem os requisitos do projeto, então faz-se necessário o investimento de conhecimento para a capacitação dos membros para diminuir os riscos do projeto. • Componentes novos: nesta categoria os componentes do sistema precisam ser desenvolvidos especificamente desde o início para o projeto em questão. No terceiro caso, o gerenciamento de recursos de hardware e software objetiva visualizar: o que, quanto, quando e como serão obtidas as ferramentas que serão necessárias para o desenvolvimento do projeto. Também pensando na possível necessidade de aquisição de software ou hardware (PMBOK, 2000). 2.1.3 Estimativa de Custo e Esforço De acordo com Pressman (2002) o software é o componente potencialmente mais caro de todos os sistemas desenvolvidos para computador, para sistemas mais complexos, personalizados, um erro na estimativa pode trazer um grande lucro ou prejuízo. Para que isso não ocorra, a idéia é decompor o problema em problemas
  • 19. 19 menores, mas antes que isso seja feito, é necessário gerar uma estimativa da dimensão que o software vai ter. Na realidade, pode-se dizer que estimar custo e esforço nunca será uma ciência exata, pois existem muitas variáveis que podem afetar esses dois pontos do projeto. No entanto, essa tarefa pode ser transformada em uma série de tarefas que fornecerão estimativas com um risco aceitável. Pressman (2002) ainda nos trás algumas opções para conseguir esse objetivo: • adiar a estimativa até que o projeto esteja mais adiantado, essa opção não é muito prática pois estimativas de custo precisam ser fornecidas logo; • basear-se em estimativas de projetos anteriores semelhantes, essa opção só é interessante se o projeto é extremamente semelhante a um projeto já existente até porque existem muitas variáveis para serem consideradas em um novo projeto; • utilizar-se de técnicas de decomposição simples, essas técnicas utilizam a filosofia “dividir para conquistar”, nesse caso, a estimativa de custo e esforço passa a ser realizada passo a passo dando uma visão de risco mais seguro para o analista; • utilizar um ou mais modelos para estimar custo e esforço, essa opção com a anterior fornece ao analista uma estimativa onde uma opção complementa a outra. No caso de orçamentos para web sites, pode-se dizer que o método que mais se enquadra é a utilização de técnicas de decomposição simples, pois fornecem um grau de maior confiabilidade para a estimativa de custo e esforço em um projeto. Isso também levando em consideração que em projetos web a evolução da tecnologia e as novas necessidades que surgem a cada dia não permitem um
  • 20. 20 comparativo seguro do já se foi desenvolvido até o momento, bem como o mercado de trabalho atual não visualiza com bons olhos a inicialização de um projeto sem uma estimativa plausível de custos. Pressman (2002) ainda relata que antes de estimarmos custo precisamos ter uma noção do tamanho da aplicação, esse dimensionamento, na realidade, representa o primeiro grande desafio do planejador do projeto. Putnam e Myers (1992) citados em Pressman (2002) sugerem quatro tipos de abordagens para o problema do dimensionamento: • Dimensionamento de “lógica nebulosa”: a idéia da “lógica nebulosa” é utilizar-se de técnicas de raciocínio aproximado, onde o planejador deve identificar o tipo de aplicação, estabelecer sua grandeza numa escala quantitativa e depois filtrá-la dentro do intervalo original. Outra preocupação que se deve manter nesse tipo de abordagem é uma base de dados armazenando os históricos dos projetos anteriores para poder comparar com a experiência real. • Dimensionamento de pontos de função: como a funcionalidade não pode ser medida diretamente a idéia é desenvolver estimativas das peculiaridades do domínio da informação. São originados usando uma relação empírica baseada em medidas de contagem do domínio, por exemplo, quantidade de entradas do usuário, quantidade de saídas do usuário, número de consultas, quantidade de arquivos, quantidade de interfaces, dentre outros. • Dimensionamento de componentes padrão: em geral, todo o software ou web site é composto por vários “componentes padrão”, que são
  • 21. 21 genéricos a todas as aplicações, por exemplo, subsistemas, módulos, telas, relatórios, linhas de código, arquivos, dentre outros. • Dimensionamento de modificação: esta abordagem é utilizada quando há o reuso de algum software ou web site existente, o analista estima a quantidade das modificações que serão realizadas para a dimensão poder ser estimada. Para se ter uma noção plausível da dimensão de um web site, tanto o dimensionamento de pontos de função, como o dimensionamento de componentes padrão e o dimensionamento de modificações estariam adequados para este fim. Porém, como o objetivo final deste estudo é a realização de um sistema especialista que possa mensurar essa estimativa, a prática que fornece maiores subsídios a esta atividade é o dimensionamento de componentes padrão. Onde pode-se integrar formalmente várias tarefas a serem compostas pelo projeto de forma esquematizada e pouco nebulosas. 2.1.4 Estimativa de Prazo Nesta fase, Pressman (2002) traz um conceito sobre a cronogramação de projeto de software: [...] é uma atividade que distribui o esforço estimado pela duração planejada do projeto, partilhando esse esforço por tarefas específicas de engenharia de software. Tendo isso em vista, o analista precisa definir as tarefas macro do projeto e para cada tarefa macro atribuir tarefas menores, refinando o cronograma em um mais detalhado. Em cada uma destas tarefas devem-se então definir o tempo para a realização de cada atividade. Isso é adquirido com o tempo, durante projetos anteriores. O conjunto de tudo isso fornece o prazo para a finalização do projeto ao cliente final.
  • 22. 22 3 SISTEMAS ESPECIALISTAS Neste capítulo é fornecida uma revisão bibliográfica sobre sistemas especialistas. Inicialmente encontram-se conceitos e formas de identificar o uso de sistemas especialistas. Em seguida é apresentada a arquitetura dos sistemas especialistas baseados em regras e o processo de desenvolvimento de um sistema especialista. Um sistema baseado em conhecimento, sistema inteligente ou simplesmente sistema especialista (SE) pode ser definido de várias formas. Py citando Flores (2003) define um SE como sendo uma maneira de simular a especialização humana de alguma área específica, capaz de oferecer sugestões e conselhos aos usuários e também aprender com a interação. Abel (1998) citando Bey (1991) acrescenta um SE é um sistema de computador que opera aplicando um mecanismo de inferência a um “corpo” de conhecimento ou perícia de especialista representado em algum formalismo de representação de conhecimento. Py citando Barr e Feigenbaum (1981) afirma que o objetivo de um SE, considerando o objetivo dos modelos psicológicos concebidos a partir do comportamento humano de um especialista, é bastante restrito. Mendes (1997) acrescenta que estes sistemas baseados em conhecimento são bastante restritos, pois são desenvolvidos a partir regras que reproduzem um conhecimento específico, são construídos para resolver determinados problemas em domínios específicos e que nem todos os problemas necessitam ser resolvidos com sistemas especialistas. Mendes (1997) apresenta então algumas condições para identificar o uso de sistemas especialistas, tais como: um responsável com os conhecimentos específicos em questão; planejamento de regras que necessitem de vários especialistas, que sozinhos, não possuem total conhecimento para realizá-la, sendo
  • 23. 23 assim a solução do problema multidisciplinar; planejamento de regras detalhadas sobre conhecimentos específicos que se forem esquecidas pode provocar um grande problema no desempenho; planejamento de regras as diferenças entre o desempenho dos melhores e piores especialistas; e que haja insuficiência de mão de obra especializada sobre o conhecimento em questão para a solução do problema. Segundo Zuchi (2000) a característica mais importante dos SE é o alto nível de experiência que é utilizando para a solução de um problema, pois essa experiência foi resgatada e armazenada na base de conhecimento de um SE. Para representar então o conhecimento humano devemos armazenar não só informações como também uma série de regras que um especialista utilizaria para resolver o problema. Para Feigenbaum e Engelmore (1993) a construção de um sistema especialista é conhecida também como engenharia do conhecimento. A engenharia do conhecimento precisa ter certeza que o computador tem todas as informações que precisa para resolver o problema. Precisa ainda escolher uma ou mais formas de representar o conhecimento com padrões de símbolos na memória do computador, isso é chamado de representação do conhecimento. A engenharia ainda precisa assegurar que o computador irá utilizar eficientemente o conhecimento selecionando através de vários métodos de raciocínio. 3.1 Arquitetura dos Sistemas Especialistas baseados em Regras Baseando-se em Feigenbaum e Engelmore (1993) todo SE consiste de duas partes principais: a base de conhecimento; e a máquina de inferência. A base de conhecimento de um SE consiste de conhecimento de fato (Memória de Trabalho) e conhecimento heurístico (Base de Conhecimento). O
  • 24. 24 conhecimento de fato é o conhecimento de um domínio específico que é compartilhado e tipicamente encontrado em livros, jornais e conhecimento comum sobre o domínio em particular, conforme Figura 3.1. A base de conhecimento de um especialista é adquirida na escola, de amigos e por anos de experiência. Presumimos então que quanto mais experiência ele tiver, mais vasto será o seu conhecimento. Esse conhecimento o permite interpretar informações em sua base de conhecimento pessoal para diagnosticar, projetar e analisar. Figura 3.1: Resolução de problemas por SE Fonte: Zuchi(2000) citando Durkin (1994) O conhecimento heurístico é menos rigoroso, mais experimental. Ao contrário do outro, o heurístico é raramente discutido, e largamente individualizado. É o conhecimento da boa prática, do bom julgamento, e a razão mais plausível no domínio. É o conhecimento, em outras palavras, da “arte da boa adivinhação”. A Representação do conhecimento formaliza e organiza o conhecimento. Uma representação que é amplamente utilizada é a regra de produção, ou simplesmente regra. Uma regra consiste em partes de “Se” e partes “Então”,
  • 25. 25 também chamadas de condição e ação. As partes condicionais listam uma série de condições de forma lógica. A peça da representação do conhecimento pela regra de produção é relevante para a linha de raciocínio que está sendo desenvolvida para que as regras de condição sejam satisfeitas; conseqüentemente, as regras de ação podem ser concluídas. Esses sistemas especialistas cujo conhecimento é representado através de regras são chamados de conhecimento baseado em regras (rule-based systems). Outra maneira de representação utilizada é chamada de Unidade (unit), também conhecida como frame, esquema (schema) ou estrutura de lista (list structure). Este é embasado sobre um conhecimento mais passivo. A unidade é um tipo de conhecimento simbólico associado a uma entidade a ser representada. Tipicamente, uma unidade consiste de uma lista de propriedades de uma entidade a valores associadas para essas propriedades. Desde que cada tarefa de domínio consiste de várias entidades que permanecem entre relações, a propriedade pode também ser utilizada para relações específicas. Uma unidade pode representar um conhecimento como um “caso especial” de outra unidade, ou algumas unidades podem também serem “partes de” outra unidade. A Máquina de Inferência organiza e controla os passos para o problema ser resolvido. Um comum, mas poderoso paradigma envolve uma série de Se-Então encadeados para formar uma linha de raciocínio. Se a cadeia for aberta, isto é, que inicia com uma evidência e move-se para a conclusão é chamada de encadeamento para frente (forward chaining). Se a conclusão é conhecida, mas o caminho para aquela conclusão não for, fazendo com que procure uma evidência que comprove é chamada então de encadeamento para trás (backward chaining).
  • 26. 26 Py (2000) acrescenta que uma vez definido o tipo de encadeamento, o motor de inferência necessita de uma estratégia de busca para guiar a pesquisa na memória de trabalho e da base de conhecimento. No término do processo de busca, o motor de inferência possui um conjunto de regras que satisfazem a situação atual do problema (conjunto de conflito). Se esse conjunto for vazio, a execução é terminada, caso contrário, é necessário escolher e ordenar as regras a serem executadas. Py (2000) traz os métodos para resolução de conflito mais utilizados são: • Prioridades atribuídas estatisticamente; • Características da estrutura das regras como complexidade, simplicidade e especificidade; • Características dos dados associados às regras como o tempo decorrido desde a sua obtenção, sua confiabilidade ou seu grau de importância e • Seleção de acaso. Um SE consiste primeiramente de uma base de conhecimentos e uma máquina de inferência, duas questões são relevantes: razão com incerteza, e explanação da linha do raciocínio. Luger (2004) salienta a importância de manter essa separação entre a base de conhecimento e o motor de inferência: as regras se... então são mais próximas da linguagem natural de como as pessoas descrevem suas habilidades para resolver problemas; a base de conhecimento estando separada das outras estruturas, os construtores de SE podem se concentrar em organizar uma solução para o problema no lugar de ficar pensando no desenvolvimento do código do sistema; essa separação permite que sejam feitas modificações em parte do sistema
  • 27. 27 sem influenciar as outras partes; e que o mesmo software de controle e interface possam ser utilizados em vários outros sistemas. 3.2 Processo de Engenharia de um Sistema Especialista Segundo Luger (2004), há três principais indivíduos responsáveis pelo desenvolvimento de um SE: o engenheiro do conhecimento, o especialista no domínio e o usuário final. Figura 3.2: Ciclo de Desenvolvimento Exploratório Fonte: Luger (2004) pg. 246 O engenheiro do conhecimento (EC): • Especialista em linguagem de IA e em representação; • Seleciona as ferramentas de software e hardware;
  • 28. 28 • Auxilia o especialista para articular o conhecimento de forma correta; • Implementa esse conhecimento na base de conhecimento. O especialista no domínio (ED): • Fornece o conhecimento sobre o problema ao engenheiro do conhecimento; • Tem experiência e domínio da área do domínio em questão. O usuário final (UF): • Determina as restrições do projeto; • Testa e avalia o sistema. Tendo em vista que toda construção de um SE requer um ciclo de desenvolvimento baseado em prototipação e em revisão incremental de código o processo desse ciclo. Abel (1998) explica cada um dos itens definidos por Luger (2004) conforme figura 3.2. 1. Início: o processo se inicia na fase de aquisição de conhecimento entre o EC e o ED. 2. Definir problemas e metas: nessa fase é estabelecido o domínio da aplicação e também critérios para a construção e expansão da base de conhecimento, tais como: 2.1. Perfil do usuário do sistema; 2.2. Qual o tipo de problema que o sistema irá resolver; 2.3. Quais as entradas do sistema; 2.4. Quais as saídas esperadas; 2.5. Quais os objetos envolvidos na estrutura; 2.6. Quais os valores e atributos dos objetos; 2.7. Quais as regras necessárias para a solução do problema;
  • 29. 29 3. Projetar e construir o Protótipo: nessa fase o problema deve ter sido completamente especificado e sua solução deve ser clara, a representação do conhecimento poderá ser feita diretamente em uma ferramenta Shell pré- existente. É nessa fase também que: 3.1. A primeira prototipação do sistema é realizada; 3.2. A lógica de solução do sistema é validada procurando-se as falhas de raciocínio; 3.3. A forma em que a interface visual vai ser projetada sempre levando em conta o perfil do usuário final do sistema. 4. Testar/usar o sistema: a partir do protótipo implementado o especialista pode testar o produto final. 5. Analisar/corrigir deficiências: a fase anterior dará subsídios ao EC e ao ED para analisarem e corrigirem possíveis deficiências no sistema, a partir daí, se necessário incluem-se o conhecimento heurístico, atalhos de soluções dos métodos de incerteza do sistema. 6. Avaliação Final: finalmente, o sistema deve ser colocado para um grupo de testes verificarem o desempenho e possíveis erros da base de conhecimento. Nessa fase 85 a 90% dos problemas são resolvidos com sucesso.
  • 30. 30 4 SISTEMA ESPECIALISTA PARA ORÇAMENTO DE WEB SITES Para o desenvolvimento e implementação do protótipo, a aquisição do conhecimento foi fornecida pelos especialistas da empresa Bazzi Informática Ltda, localizada em Chapecó. Os capítulos 2 e 3 deste trabalho, sugerem a realização de alguns passos para o desenvolvimento do sistema especialista, a apresentação da especificação, na sessão 4.1, relaciona esses capítulos. 4.1 Apresentação da Especificação Um dos objetivos do trabalho é a modelagem de um protótipo para gerar um orçamento de web site utilizando sistemas especialistas. Para auxiliar a fase de definição de escopo visto no capítulo 2 e a fase de definição de problemas e metas no capítulo 3 é utilizada uma ferramenta CASE para auxiliar na automação da análise, projeto e geração do protótipo. A ferramenta CASE utilizada é a StarUML1, pois esta é uma ferramenta de modelagem visual para projetar e criar aplicações de software utilizando os padrões da Linguagem Unificada de Modelagem (UML – Unified Modeling Language). Esta ferramenta fornece nove diagramas para a modelagem de um software. Contudo, neste trabalho, são utilizados apenas três deles: o diagrama de casos de uso, diagrama de classes e o diagrama de seqüência. 1 StarUML (The Open Source UML/MDA Platform) é uma ferramenta de código aberto para a plataforma UML/MDA, pode ser acessado em: http://staruml.sourceforge.net/en/
  • 31. 31 O diagrama de caso de uso é uma técnica utilizada para descrever de modo visual os requisitos funcionais de um sistema através de atores (Bezzerra, 2002). Na figura 4.1 é apresentada a especificação formal do sistema, onde estão definidos os atores e suas principais tarefas. Nesta aplicação o Especialista em Orçamento é o responsável pelo cadastro e pela emissão dos resultados. Figura 4.1: Diagrama de Casos de Uso Neste caso, o caso de uso é: 1. O Especialista cadastra as regras na base de conhecimento. 2. O Sistema monta a base de conhecimento. 3. O Especialista realiza testes no sistema respondendo as questões. 4. O Sistema fornece um resultado. O diagrama de classes, Figura 4.2, apresenta o relacionamento entre classes através de um mecanismo, as classes podem se relacionar com outras através de diversas maneiras, entre elas: associação, agregação e especialização.
  • 32. 32 Figura 4.2: Diagrama de Classes O diagrama de seqüência mostra a comunicação interativa entre os diversos objetos do sistema. Seu enfoque está em como as mensagens são enviadas no decorrer do tempo. Neste, os objetos são representados por retângulos, as linhas de vida dos objetos são representadas pelas linhas traçadas e as mensagens são as setas.
  • 33. 33 Figura 4.3: Diagrama de Seqüência Abaixo seguem alguns exemplos das regras utilizadas no desenvolvimento protótipo para a solução do problema: Regra de Newsletter SE noticias diarias = sim E clientes cadastrados = sim ENTÃO resultado = newsletter Regra de Produtos SE atualizar produtos = sim ENTÃO resultado = produtos Regra de Pedidos SE atualizar clientes = sim E atualizar representantes = sim ENTÃO resultado = pedidos Regra de Classificados SE atualizar produtos = sim E produtos usados = sim ENTÃO resultado = classificados
  • 34. 34 4.2 Desenvolvimento do Protótipo O Shell utilizado para o desenvolvimento do protótipo foi o Expert SINTA2 (figura 4.4), esta ferramenta utiliza um modelo de representação do conhecimento baseado em regras de produção e probabilidades, tendo como objetivo facilitar o trabalho de implementação dos sistemas especialistas. Figura 4.4: Tela do Expert SINTA O primeiro passo é construção da base de conhecimento, para isto, primeiro cadastramos todas as variáveis do sistema conforme figura 4.5. 2 Expert SINTA é uma ferramenta computacional, de uso liberado, desenvolvida pelo Laboratório de Inteligência Artificial da Universidade Federado Ceará, acesso em: http://www.lia.ufc.br
  • 35. 35 Figura 4.5: Cadastro de variáveis Após a definição das variáveis, é necessário definir as variáveis objetivo, que possuem um valor a ser utilizado no sistema, ou seja, o resultado (figura 4.6).
  • 36. 36 Figura 4.6: Variáveis objetivo A partir daí as regras devem ser incluídas no sistema. Estas já definidas na sessão 4.1 deste capítulo conforme figura 4.7.
  • 37. 37 Figura 4.7: Inclusão de regra Após a inclusão das regras, o sistema permite que personalizemos a interface onde as perguntas podem ser definidas de forma clara ao utilizador do sistema (figura 4.8).
  • 38. 38 Figura 4.8: Personalizando as perguntas Também é possível incluir informações do desenvolvedor e do sistema conforme figura 4.9.
  • 39. 39 Figura 4.9: Tela de informações do sistema Por fim, o Shell Expert Sinta se adequa de forma bastante conveniente como prototipador do módulo de sistema especialista para o sistema automático para geração de orçamento para web sites. Porém, em um futuro passo, uma alternativa que possa ser conectada as tecnologias e linguagens ora utilizadas pela Bazzi.Com deve ser estudada e avaliada para o produto final.
  • 40. 40 5 CONSIDERAÇÕES FINAIS O presente trabalho apresentou uma modelagem e desenvolvimento de um protótipo para a geração automática de orçamentos para web sites de forma a automatizar tarefas. O protótipo se apresentou satisfatório em seus testes iniciais. Porém, constatou-se que é necessário um alto grau de refinamento nas regras para elaboração de resultados mais precisos. O processo de geração de valores para elaboração de aplicações on-line muitas vezes necessita de uma logística de mercado superior ao escopo do projeto em si. Neste caso, há variáveis de mercado, que envolvem negociação com o cliente, valores da concorrência, a tríade tempo/qualidade/preço, entre outros, que induzem a um reajuste no orçamento. Dessa forma pôde-se constatar que o protótipo forneceu algum auxilio, apresentando um valor estimado, mas o mesmo não substitui um especialista na hora de finalizar um orçamento. A ferramenta Shell Expert SINTA demonstrou ser de fácil uso e desenvolvimento. Com sua utilização, o usuário pode responder aos questionamentos, e através destas respostas o Expert Sinta gera quais módulos devem constar no orçamento do website. 5.1 Sugestões para Trabalhos Futuros Como forma de dar continuidade neste trabalho e aperfeiçoar os resultados do sistema especialista para geração automática de orçamentos para web sites, sugere-se um estudo mais aprofundando nas regras que são realmente necessárias e importantes com relação ao presente contexto. Também, a criação
  • 41. 41 de mais regras e variáveis e um conjunto maior de testes para o aperfeiçoamento do sistema. Por conseguinte, após o aperfeiçoamento do protótipo, sugere-se a implementação do sistema especialista em linguagem de programação em um sistema fechado, até como forma de produto para venda.
  • 42. 42 6 BIBLIOGRAFIA Abel, Mara. Sistemas Especialistas. 1998. UFRGS. Disponível via URL em: http://www.ppgia.pucpr.br/~scalabrin/SE_MILTON/SistEspec%20MaraAbel%20mar2 002.pdf. Acesso em 01 de Abril de 2008. Bezerra, Eduardo. Princípios de Análise e Projeto de Sistemas com UML. 3ª Ed. Rio de Janeiro: Elsivier, 2002. Dean, Thomas; Allen, James; Aloimonos, Yiannis. Artificial Intelligence: Theory and Pratice. 1st Ed. USA: Addison-Wesley Publishing Company, 1995. Feingenbaum, Edward; Engelmore, Robert S. 1993. Expert Systems and Artificial Intelligence. Disponível em: http://www.wtec.org/loyola/kb/c1_s1.htm. Acesso em 13 de Maio de 2008. Fingar, Peter; Kumar, Harsha; Sharma Tarun. Enterprise E-Commerce. 1st Ed. Florida, USA: Meghan-Kiffer Press Tampa: 2000. Gomes, Jeferson José. Modelo Sistêmico das Influências Provocadas pelas Tecnologias de Informação nas Indústrias de Artefatos de Metal: Estudo de caso. Disponível em: http://teses.eps.ufsc.br/defesa/pdf/7189.pdf. Acesso em: 14 de Outubro de 2008. Gonçalves, Rodrigo Franco; Gava, Vagner Luiz; Pessoa, Marcelo Schneck de Paula e Spinola, Mauro de Mesquita: Uma Proposta de Processo de Produção de Aplicações Web. Disponível em: http://www.scielo.br/pdf/prod/v15n3/v15n3a07.pdf. Acesso em: 25 de Maio de 2008. Graham, Ian S. XHTML 1.0: Guia de Referência para Desenvolvimento na Web. 1ª Ed. Rio de Janeiro: Ciência Moderna, 2001.
  • 43. 43 Lientz, Bennet; Rea P. Kathryn. Comece bem no e-business. 1ª Ed. São Paulo: Market Books, 2001. Luger, George F. Inteligência Artificial: Estruturas e Estratégias para a Solução de Problemas Complexos. 4ª Ed. Porto Alegre: Bookmann, 2004. Mendes, Raquel Dias. Inteligência Artificial: Sistemas Especialistas no Gerenciamento da Informação. 1997. Disponível em: http://www.scielo.br/scielo.php?script=sci_arttext&pid=S0100- 19651997000100006&lng=en&nrm=iso. Acesso em 01 de Abril de 2008. PMBOK. A Guide to Project Management Body of Knowledge. 2000. Pressman, Roger S. Engenharia de Software. 5ª Ed. Rio de Janeiro: McGraw-Hill, 2002. Py, Mônica Xavier. Sistemas Especialistas: uma introdução. UFRGS. Disponível via URL em: http://www.inf.ufrgs.br/procpar/disc/cmp135/trabs/mpy/sistemasespecialistas .pdf. Acesso em 01 de Abril de 2008. Russell, Stuart; Norving Peter. Artificial Intelligence: A Modern Approach. 1st Ed. USA: Prentice-Hall, 1995 Santini, Marina Flores. Planejamento e Orçamento Empresarial nas Empresas Estatais: um estudo de caso da ELETROSUL. 2004. UFSC. Disponível em: http://www.cse.ufsc.br/gecon/coord_mono/2004.2/Marina%20Fl%F4res%20Santini.p df.Acesso em: 05 de Abril de 2008. Silva, Ivaldo M. da, et all, Gerenciamento do Tempo em Projetos, Editora FGV, 2006. Zuchi, Ivanete. O Desenvolvimento de um Protótipo de Sistema Especialista Baseado em Técnicas de RPG para o Ensino de Matemática. 2000. UFSC. Disponível via URL em:
  • 44. 44 http://biblioteca.universia.net/html_bura/ficha/params/id/595273.html. Acesso em 01 de Abril de 2008.

×