model prototip de se dezvoltat sub exsys developer si exsys corvid
TRANSCRIPT
2. Prototipul dezvoltat sub EXSYS Developer ESXYS Developer este un produs lansat de firma Multilogic mpreun cu firma EXSYS, n anul 1999, ce vine i n sprijinul dezvoltatorilor de aplicaii destinate mediului Web. Dei se aseamn destul de mult cu precursorul su (EXSYS Professional), n mod evident, evoluia tehnologiei inteligente i-a pus amprenta puternic i asupra acestui generator de sisteme expert, de generaie nou, aducnd o serie de avantaje demne de luat n seam. V propunem n cele ce urmeaz s urmrii cum dezvoltm prototipul cu ajutorul generatorului EXSYS Developer. Astfel, ne vom raporta la datele prezentate n subcapitolul 1. i vom prezenta doar diferenele ce sunt impuse de noul generator. 2.1. Dezvoltarea prototipului de sistem expert sub EXSYS Developer Dei interfaa generatorului EXSYS Developer este diferit de cea a predecesorului su, utilizatorul va regsi aceeai modalitate de abordare a dezvoltrii unui prototip de sistem expert. Astfel, dup ce s-a efectuat lansarea n execuie a generatorului (Start/Programs/MultiLogic/Exsys Developer V8), se creaz un nou proiect (File/New), i se atribuie un nume (de exemplu aef ce va avea extensia .rb1) i se vor introduce parametrii sistemului: Subject (subiectul bazei de cunotine), Author (autorul prototipului), Explanatory text (text explicativ pentru nceputstarting- sau pentru sfrit ending-) i se alege modul de exprimare a factorului de certitudine Confidence Mode (modul implicit este 0-10). Reamintim c aceste elemente pot fi completate i/sau modificate oricnd ulterior selectnd meniul Options / Parameters. Dup ce fereastra cu parametrii sistemului a fost validat, prin apsarea butonului OK, este dezvluit interfaa generatorului format dintr-o fereastr ce conine 7 cadre de pagini ce cuprind, ntr-un mod foarte bine structurat, elementele ce alctuiesc prototipul de sistem expert, astfel: - Goals (Recomandrile/ scopurile sistemului); - Questions (Calificatorii sau ntrebrile sistemului); - Variables (Variabilele); - Trees (Posibilitatea crerii unei structuri arborescente pe baza regulilor de producie); - Rules (Regulile de producie); Files (diferite tipuri de fiiere: .cmd de comand, .cfg de configurare, .scr codul surs pentru ecrane, .out pentru raport final, .a.); - Validation (cu opiunile de validare ale sistemului sau mai bine spus, posibilitatea de identificare a eventualelor erori). Ordinea n care se va realiza popularea cu date a prototipului este aleatoare, ne referim aici la ordinea n care introducem Recomandrile, Calificatorii i Variabilele sistemului. n cazul de fa. propunem urmtorul mod de lucru: - introducerea Recomandrilor (Goals) utiliznd n acest scop informaiile coninute n codul surs, paragraful 1.5.1.2. - CHOICES); - popularea bazei de cunotine cu ntrebr i(Questions) sau Calificatori, apelnd la informaiile coninute la paragraful 1.5.1.1 QUALIFIERS);
- adugarea Variabilelor (Variables) n baza de cunotine a sistemului vezi paragraful 1.5.1.4 VARIABLES. n acest moment apar o serie de diferene fa de EXSYS Professional pe care le vom semnala n paragraful urmtor; - introducerea Regulilor de producie (Rules) pe baza componentelor enumerate mai sus; - obinerea arborelui decizional (Trees), mbuntirea interfeei de dialog, adugarea unor comenzi n fiierul de comenzi, etc., finaliznd cu verificarea existenei unor erori n sistem (Validation/Check system). 2.1.1 Preluarea valorilor variabilei dintr-un mediu extern
prototipului EXSYS Developer permite, n cazul variabilelor, preluarea valorilor dintr-un mediu extern datorit facilitii oferite de sistemul de operare Windows, ODBC. Astfel, EXSYS Developer permite accesarea unei mari varieti de tipuri de baze de date prin protocolul Open DataBase Conectivity 1 . n opinia autorilor, cea mai simpl metod n acest caz o constituie utilizarea unor fraze de tip SQL 2 , cu urmtoarea sintax: SQL_READ_ONE(Data Source Name, Comand SQL, Variabil de stare, [nume variabil EXSYS care preia valoarea din BD]) Pentru prototipul de sistem expert , vom exemplifica, n cele ce urmeaz modul de lucru, n acest caz. Propunem lucrul cu o tabel creat n Microsoft Access. n acest scop crem o baz de date cu numele aef ce va avea extensia specific .mdb (vezi fig.nr. 2.1.). n cadrul acestei baze de date se va crea o tabel cu dou coloane, denumit tabel, ce va conine toate valorile necesare a fi preluate n EXSYS (este vorba de tabela coninut n foaia de calcul tabelar prezentat n tabelul nr. 3).
1 vezi Andone, I., Mockler R., .a., Dezvoltarea sistemelor inteligente n economie. Metodologie i studii de caz, Ed. Economica, Bucureti, 2001, p. 284. 2 Mai multe comenzi de tip SQL n Andone, I., Mockler R., .a., op.cit, p.284.
Fig.nr. 2.1. Baza de date aef.mdb ce conine tabela tabel
Dup ce am definitivat crearea bazei de date i popularea tabelei cu datele necesare, se impune realizarea legturii ODBC cu baza de date aef.mdb, i implicit cu tabela tabel, astfel: se realizeaz dublu click pe ; 1. din 2. din fereastra nou deschis, din User DSN, se va aduga baza de date Access prin apsarea butonului Add; 3. din list coninut n noua fereastr, se alege tipului de driver dorit, n cazul nostru Microsoft Access Driver (*. mdb), i se apas butonul Finish; 4. n cmpul Data Source Name se introduce numele bazei de date (fr extensie), n cazul nostru numele bazei de date este aef, i, pentru a indica i calea acestui fiier, se folosete butonul Select pentru a explora i indica locaia exact a bazei de date; 5. se valideaz ecranul cu butonul OK i se observ c baza de date aef se gsete n lista celor coninute n sistem. n fig.nr. 2.2. ilustrm grafic aceti pai.
5
4
1
2
3
Fig.nr. 2.2. Realizarea legturii ODBC cu baza de date aef.mdb
Revenind la tabelul nr. 1, observm c, pentru a calcula indicatorul rata rentabilitii financiare, trebuie declarate dou variabile : Profitul net i Capitalul propriu. Valorile celor dou variabile vor fi preluate din tabela tabel coninut n baza de date Access aef.mdb. n fig.nr. 2.3. exemplificm modalitatea de creare a variabilei Profit net. n acest demers vom parcurge urmtorii pai: 1. n cadrul cmpului Name se va introduce numele variabilei, respectiv PROF_NET; la Prompt se va scrie denumirea complet a variabilei; 2. pentru a realiza legtura cu tabela extern, se apas butonul ; 3.din noua fereastr, din list, selectm SQL Database i se apas butonul ; 4. se vor completa cele trei cmpuri, astfel: ODBC Data Source Name : aef, SQL Command: select valoare from tabel where indicator='Profit net', Assign to Variable: [PROF_NET]; 5. se valideaz cu OK.
5
1
4
3 2
Fig. nr. 2.3. Crearea variabilei PROF_NET
Parcurgnd aceleai etape, vor fi introduse toate variabilele sistemului, urmnd apoi a se implementa regulile de producie ce vor respecta structura prezentat n cadrul paragrafului 1.5.1.5. n cadrul fiierului Report(.out) vom insera liniile de comand conform fig.nr. 2.1.4.
Fig.nr. 2.1.4. Coninutul raportului
2.1.2. mbuntirea interfeei de dialog n EXSYS Developer
Generatorul de sisteme expert EXSYS Developer suport taguri HTML
care pot mbunti modul de realizare a ecranelor prin diferite
modaliti: - evidenierea anumitor cuvinte prin scrierea lor ngroat,
cu alt culoare, etc.; - stilizarea ferestrei finale a prototipului,
ce prezint rezultatele obinute n urm parcurgerii prototipului, prin
inserarea de applet-uri JAVA i gif-uri animate, etc. Tagurile HTML
pot fi introduse odat cu scrierea parametrilor sistemului, n cadrul
cmpurilor: Subject, Author, Starting text, Ending text. ntruct
EXSYS Developer pune la dispoziia utilizatorilor o serie de machete
predefinite denumite HTML Screens pentru realizarea ecranelor
aplicaiei, acestea pot fi modificate sau pot fi create altele care
s satisfac n totalitate exigenele dezvoltatorului de aplicaii.
Pentru utilizarea anumitor machete predefinite de ecrane, acestea
pot fi selectate din meniul Options/HTML Templates, dup care se
alege tipul de ecran ce se dorete a fi afiat cu ajutorul unei
anumite machete predefinite. Prin apasrea butonului Browse se pot
alege variantele de machete disponibile n sistem sau varianta
personalizat. Spre exemplificare, prin introducerea tagurilor HTML
urmtoare n cadrul cmpurilor Subject(1) i Author(2) din cadrul
ferestrei ce conine parametrii sistemului(Options/Parameters) se
obine ecranul de start prezentat n fig.nr. 2.5: 1.SysAEF
Evaluarea performantelor intreprinderii prin prisma unor indicatori
specifici ai analizei economico-financiare 2. Echipa
CESINTELFig.nr. 2.5. Utilizarea tagurilor HTMLCa o alternativ la
ecranul de titlu ilustrat n fig.nr. 2.5., prezentm pentru o machet
predefinit de ecran, creat pentru a ntruni anumite exigene. n
fig.nr. 2.5 se observ noul ecran de ntmpinare a utilizatorului,
creat cu ajutorul tagurilor HTML (pentru text), a unui applet Java
de tip scroll i, ca element de noutate, inserarea unei imagini
(AI.jpg) . Codul surs al acestei machete este prezentat n cadrul
tabelului nr. 1.5. De remarcat c modificarea machetelorpredefinite(
extensia .tpt) se poate realiza foarte uor cu ajutorul unui editor
de tip Word, Worpad sau chiar Notepad.Fig.nr. 2.6. Machet
predefinit personalizat pentru ecranul de titlu Tabel nr. 2.5 Codul
surs al machetei predefinite personalizate titlu.tpt MultiLogic
Exsys Web Runtime : Title Screen SysAEF-Evaluarea performantelor
intreprinderii prin prisma unor indicatori specifici ai analizei
economico-financiare
Echipa CESINTEL
n aceeai manier au fost create toate ecranele aferente prototipului
de sistem expert dezvoltat sub EXSYS Developer, obinnd astfel o
soluie de sistem inteligent care, pe lng facilitile oferite, conine
i o interfa atrgtoare, extrem de util utilizatorului.3. Generatorul
de sisteme expert EXSYS Corvid Noul generator de sisteme expert
EXSYS Corvid lansat n anul 2000 de firma american EXSYS este un
produs revoluionar destinat dezvoltrii de prototipuride sisteme
expert exploatabile n mediul de lucru Web, ca aplicaii de sine
stttoare ce funcioneaz numai prin intermediul Internetului sau ca
aplicaii integrate n pagini Web. 3.1. Conceptele EXSYS Corvid
Corvid ofer, ntr-o concepie total diferit de generatoarele
anterioare, trei modificri radicale n procesul de dezvoltare a
prototipurilor de sistem expert. Este vorba despre: Structura
obiectual, Blocurile logice i Apleturile de tip Java. n cele ce
urmeaz le vom prezenta foarte succint pe fiecare.3.1.1 Structura
obiectualCorvid are la baz modelul mediului de programare Visual
Basic, elaborat de Microsoft. Echipa de dezvoltare a generatorului
a ales acest model ntruct acesta a devenit popular i datorit
faptului c Visual Basic(VB) nu este un limbaj de programare
orientat-obiect clasic, dei ofer multe faciliti n acest sens.
Datorit acestui aspect, VB este utilizat att de ctre programatori
ct i de o gam variat de persoane ceva mai avansate n lucrul cu
calculatorul. Bazat pe modelul VB, Corvid ofer o structur obiectual
care permite sistemelor expert create s beneficieze din plin de
proprietile variabilelor. Ca urmare, EXSYS Corvid lucreaz doar cu
variabile, acestea fiind de foarte multe categorii. Calificatorii i
recomandrile au disprut ca terminologie, ele se regsesc, ca
proprieti, n anumite categorii de variabile.3.1.2 Blocurile
logiceNoul concept introdus n Corvid se refer la utilizarea
blocurilor logice pentru reprezentarea cunoaterii, care, la
celelalte produse EXSYS se realizau cu ajutorul regulilor de
producie. Blocurile logice pot fi concepute conform ambelor
strategii de control a raionamentului: nainte sau napoi
(Forward/Backward chaining) Ele permit, totodat, i conectarea cu o
foaie de calcul tabelar ce aplic logica blocurilor n mod consecutiv
fiecrui rnd al tabelei. Blocurile logice pot fi dezvoltate i
modificate n mod vizual simplificnd astfel exploatarea
generatorului. Pentru a se nelege mai bine, blocurile logice
reprezint o combinaie de reguli de producie de tip IF-THEN-ELSE
formnd o structur arborescent. Aceasta facilitate permite
organizarea raionamentelor n blocuri logice care se comport ca
obiectele structurate.3.1.3 Appleturile Javainnd cont de amploarea
pe care Internetul a cunoscut-o i bazndu-se pe o dezvoltare continu
a acestuia, EXSYS Corvid ofer modaliti novatoare de dezvoltare a
sisteme expert interactive, on-line, incorporate n pagini web sau
careruleaz independent n acest mediu. EXSYS Corvid produce soluii
inteligente cu dimensiuni relativ reduse (aproximativ 150kb),
appleturi ce se ncarc foarte rapid n mediul Web. Mai mult, Corvid
permite ca appleturile din cadrul produselor sale s comunice cu
altele existente n cadrul paginii Web respective. 3.2. Dezvoltarea
unui prototip de sistem expert sub EXSYS Corvid n cele ce urmeaz,
ne propunem realizarea unui prototip de sistem expert capabil s
ajute un decident la evaluarea cererilor pentru acordarea de
mprumuturi/ credite. Mai exact, prototipul va sprijini decidentul n
procesul evalurii aspectelor de natur calitativ, non-financiar, a
cererilor de mprumuturi. n sesiunile de consultare, prototipului i
sunt cerute rspunsuri la cteva ntrebri cu privire la elementele
cheie de fumdamentare a deciziei de creditare. Recomandrile
sistemului sunt fundamentate pe rspunsurile acordate la aceste
ntrebri.3.2.1 Elemente de baz ale prototipuluin tabelul nr. 3.1
sunt prezentate elementele pe baza crora va fi construit
prototipului propus. Dei n concepia Corvid, noiunile de recomandri
i calificatori au disprut, noi le folosim pentru a nu pune n
dificultate cititorul, urmnd ca la momentul implementrii, s se
prezinte explicaii suplimentare.Tabelul nr. 3.1 Elementele
prototipuluiI. R e c o m a n d r i l e s i s t e m u l u i 1. Se
aprobar mprumutului fr alte garanii colaterale 2. Se aprob
mprumutul dar cu garanii colaterale 3. Se impune prezentarea unor
informaii adiionale 4. Se respinge cererea de acordare a
mprumutului II. C a l i f i c a t o r i i s i s t e m u l u i
Denumire calificator 1.Care este vechimea Directorului executiv?
Valoare 1.1.mai mare de 5 ani 1.2.ntre 2 i 5 ani 1.3.mai mic de 2
ani 2. Directorul financiar a activat n ntreprindere pe o perioad
2.1.mai mic de 2 ani 2.2.cuprins ntre 2 i 5 ani 2.3.mai mare de 5
ani 3. Stabilitatea conducerii ntreprinderii este 3.1. puternic
3.2. medie 3.3. sczut 4. Care este gradul de implicare a membrilor
consiliului director n activitile ntreprinderii? 4.1. ridicat 4.2.
moderat 4.3. sczut5. Este vreun membru al consiliului director
dispus s garanteze cu fonduri personale mprumutul solicitat?
6.Membrii Consiliului director sunt familiarizai cu tipul de
servicii pe care ntreprinderea le ofer? 7.Competena Consiliul
director este5.1. da 5.2. nu 6.1. da 6.2. nu 7.1. foarte bun
7.2.moderat 7.3.sczut8. Proiectul este destinat s dezvolte un
program 9. ntruct se propune dezvoltarea unui progam existent,
menionm c ntreprinderea a fost implicat n acelai domeniul de
activitate sau unul similar pentru 10. Intrucit se propune
dezvoltarea unui program nou, mentionam ca aplicantul 11.Istoricul
programului este:8.1.nou 8.2.existent 9.1.mai puin de 2 ani 9.2. 2
i 5 ani 9.3.mai mult de 5 ani 10.1.are o experien similar 10.2.nu
are o experien reuit 11.1.ridicat 11.2.mediu 11.3.sczut3.2.2
Dezvoltarea prototipului sub mediul EXSYS CorvidPentru nceput,
trebuie lansat n execuie generatorul de sisteme expert EXSYS Corvid
prin selectarea acestuia din meniul Start/ Programs/ Exsys/ Corvid.
Dup ce generatorul s-a ncrcat, din meniul File(1) se opteaz pentru
New(2), iar n noua fereastr deschis se alege calea (3) si numele
(4) sistemului expert n Corvid, care se va putea observa n fig.nr.
6. Dup ce au fost parcuri aceti pai, Corvid va lansa automat
fereastra destinat introducerii variabilelor sistemului, care pot
fi de apte tipuri, i anume: 1. Static List este o variabil ce poate
conine mai multe valori (este nlocuitoarea calificatorilor/
ntrebrilor din EXSYS Professional i Developer); 2. Dynamic List
reprezint o variabil ce se aseamn cu Static List, diferena constnd
n faptul c valorile acesteia pot fi cunoscute doar n timpul rulrii
aplicaiei i nu nainte ca n cazul variabilei statice; 3. Numeric
value sunt variabile ce au valori numerice. Acestea pot fi
utilizate n formule sau pentru a testa o valoare; 4. String value
sunt variabile de tip ir de caractere utilizate pentru afiarea unor
informaii nenumerice; 5. Date value valoarea acestora variabile
este constituit de un tip de dat calendaristic; 6. Collection
variables sunt variabile ce au ca valoare o list de tip iruri de
caractere (strings); 7. Confidence variabile a cror valori conin
factori de certitudine. Acest tip de variabile constituie
modalitatea de reprezentare a recomandrilor sistemului, ca n cazul
produselor EXSYS anterioare (ntlnite sub numele de Goals).Fig.nr.
3.1. Crearea unui nou proiect Corvid3.2.2.1. Lucrul cu
VariabilePentru a implementa soluia inteligent n final, revenim la
tabelul nr. 3.1 i introducem cele patru recomandri ale sistemului,
alegnd tipul de variabil de tip factor de certitudine, regsit n
lista variabilelor sub numele de Confidence (vezi fig.nr.
6.2.).Fig.nr. 3.2. Adugarea unei variabile de tip ConfidenceDup
validarea ferestrei prezentat n fig.nr. 3.2., sistemul va reveni la
fereastra ce conine toate variabilele sistemului. Din aceasta, n
cadrul cmpului Main Prompt se poate introduce textul complet al
variabilei, ca n fig.nr. 3.3.Fig.nr. 3.3. Descrierea complet a
variabilei de tip Confidencen aceeai manier va fi populat sistemul
cu toate cele patru recomandri, astfel nct fereastra ce conine
variabilele s se prezinte ca n fig.nr. 3.4.Fig.nr. 3.4. Seciune din
fereastra ce conine variabilele sistemului dup introducerea tuturor
recomandrilorRespectnd ordinea din tabelul nr. 3.1., vom introduce
calificatorii sistemului, crora le corespund n EXSYS Corvid
variabilele de tip Static List. Modul de lucru este prezentat n
fig.nr. 3.5.Fig.nr. 3.5. Crearea variabilei de tip Static ListDup
validarea ferestrei New Variabile din fig.nr. 3.5., revenind la
fereastra Variables, lista elementelor va cuprinde i noua variabil
introdus. Urmtorul pas l constituie inserarea descrierii pe larg a
variabilei, n cadrul cadrului Prompt, urmnd apoi introducerea
valorilor pe care aceast variabil le poate avea. Aceti pai sunt
ilustrai grafic prin intermediul seciunilor prezentate n fig.nr.
3.6.1. Se introduce descrierea pe larg a variabilei (opional) 2. Se
completeaz valoarea nr.1 a variabilei n dou moduri: prescurtat
(Short Text) i detaliat (Full Text) 3. Se introduce valoarea nr.2 a
variabilei (prin butonul >) sau se revine la valoarea precedent
(apas butonul