O documento descreve um sistema especialista para orçamentos de websites desenvolvido como trabalho de conclusão de curso. O sistema utiliza técnicas de sistemas especialistas e planejamento de projetos para gerar automaticamente orçamentos para websites de forma a maximizar os resultados. O documento apresenta o sistema, discute sua modelagem e demonstra um protótipo desenvolvido.
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
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: