TALLINNA TEHNIKAÜLIKOOLINFORMAATIKAINSTITUUTEkspertsüsteem erialase
spetsialiseerumise valimiseksProjekt / iseseisev töö
aines 'Ekspertsüsteemid – projekt'
(IDX5702)
Koostaja : Eero RingmäeÕpperühm: LAP62Matrikli nr: 010636Esitatud: ……………… Juhendaja : Jaak Tepandi TALLINN 2004
Sisukord
Sisukord 2
1. Sissejuhatus 4
1.1 Lähteolukord ja ülesande püstitus 4
1.2 Nõudmised 5
1.2.1 Funktsionaalsus (
funktsionaalsed nõudmised) 5
1.2.2 Töökindlus 5
1.2.3 Kasutusmugavus 6
1.2.4 Tõhusus 6
1.2.5 Hooldatavus 6
1.2.6 Porditavus 6
1.3 Süsteemi üldvaade 6
1.3.1 Süsteemi struktuur 6
1.3.2 Süsteemi
iseseisvus 7
1.3.3 Süsteemi suhtestus / liidestatus seda hõlmava süsteemiga 7
1.3.4 Kasutajad 7
2. Lahendatava ülesande analüüs 7
2.1
Sisend - ja väljundkeelte kirjeldus 7
2.2 Realisatsioonivaade 8
2.3 Vastuvõtutestid 14
3. Esimene
realisatsioon 17
3.1
Lahendatud ülesande kirjeldus 17
3.2 Kasutusjuhend 17
3.3 Realiseeritud osade tekstid 18
4. Esimese realisatsiooni
testimine 32
4.1
Testitulemused 32
4.2 Probleemid 36
4.3 Hinnang 38
5. Teine realisatsioon 38
5.1 Lahendatud ülesande kirjeldus 38
5.2 Kasutusjuhend 39
5.3 Realiseeritud osade tekstid 40
5.3.1 Launcher -
rakenduse käivitamise eest hoolitsev klass 40
5.3.2 Question – kasutajaga küsimuste küsimise ning
vastuste korjamise osas interakteeruv klass 41
5.3.3 Reeglibaas – reeglite
tekste sisaldav fail 42
6. Teise realisatsiooni testimine 53
6.1 Testitulemused 53
6.2 Probleemid 56
6.3 Hinnang 57
7. Üldhinnang 57
Sissejuhatus
Lähteolukord ja ülesande püstitus
Infotehnoloogia roll ning osakaal kaasaegse ühiskonna
tehnoloogilises baasis on kahtlemata väga ulatuslik. Visioonis
tehnoloogilisest arengust lähituleviku ühiskonnas on selle teadus-
ja tööstusharu tähtsus tänasest veel oluliselt suurem ning
mitmepalgelisem.
IT alla liigitatakse oskused, teadmised ning praktikad alates
masinaid juhtiva riistvara ja tarkvara väljamõtlemisest, loomisest
ning rakendamisest kuni intelligentsete ning inimese otsustusi
matkivate süsteemide, multimeedia ja hüperteksti loomeni.
Samas näen, et infotehnoloogia-alases hariduses on selline
valdkonniti eristumine alles algusjärgus – see tähendab, et
kõrgkoolist lahkub laia profiili ning suhteliselt vähese
spetsialiseerumisega inimene, kes peab edasiste õpingute ning
arengutega leidma oma nišši laias tehnoloogiasektoris.
Otsustasin uurida, kuidas suudan panna tarkvara otsustama, millises
infotehnoloogia valdkonnas oleks mingite olemasolevate teadmistega
informaatikul (näitena siis informaatikatudeng) potentsiaali läbi
lüüa / endale rahuldav elukutse leida.
Käesolev süsteem on IT-alase spetsialiteedi valimist toetav intelligente tarkvaralahendus.
Pannes otsingumootorisse Google (www.google.com) otsingusõnu nagu
' career planner expert system', ' course selector expert system' jt
sarnaseid, sain hulgaliselt viiteid juba realiseeritud
ekspertsüsteemidele, mis toetavad õppekavade ja töökohtade, ametite ning kõrgkoolide valimist. Samas annavad enamus neist
vastuse eluvaldkonna täpsusega – s.t. analüüsides inimese
vastuseid tema isiksuseomaduste kohta, leitakse eluvaldkond , milles vastaja võiks oma ametialase õnne leida.
Mina otsustasin analüüsida inimest, kes on haridusalase
eluvaldkonna (täpsemalt siis infotehnoloogia) juba valinud ning
leida, kuidas vastaja isiksuseomadused võiksid ta paigutada kitsasse
erialasse nišši.
Minu poolt realiseeritava süsteemi originaalsus peaks seisnema
järgnevates omadustes (õigemini nende kombinatsioonis):
- süsteem on piiratud infotehnoloogia erialadega
- süsteem võtab arvesse olemasoleva IT-alase teadmise
- süsteem leiab vastaja praeguse spetsialiteedi valupunktid (ebameeldivused)
- süsteem leiab vastaja soovid ning ootused eriala kohta
- süsteemi otsus baseerub sellel, millisesse valdkonda võiks vastaja suunduda, et tulemuseks oleks sobivaim spetsifitseerumine minimaalse ümberõppega.
Sarnase süsteemi kasutajateks võiksid olla haridust omandavad
inimesed, kes ei oma või omavad vähe töökogemust ning alles
otsivad oma kohta eriala lõikes.
Nõudmised
Funktsionaalsus (funktsionaalsed nõudmised)
- Süsteem peab kasutajalt teada saama tema olemasoleva erialaste teadmiste diapasooni.
- Süsteem peab teada saama, mis kasutajale antud eriala juures ei sobi, mida ta ei sooviks tulevikus teha
- Süsteem peab teada saama, milline on kasutaja üldine isiksus (näiteks – kas kasutaja on: loov, harjumusi/rutiini armastav, täpne, alluv, töötab meelsasti inimeste seltsis )
- Süsteem peab otsustama, milline eriala/ spetsialiseerumine oleks kasutajale tema vastuste põhjal sobivaim ning vastuste hulga kasutajale teada andma.
- Süsteem peab kasutajalt küsima, kas too tunneb, et süsteemi otsustuse tulemused tegelikult talle sobiksid ning andma loojale tagasisidet otsustuse kvaliteedi kohta
- Ideaalis võiks süsteem lasta kasutajal täpsustada, mis oli otsustuses väga õigesti, mis valesti ning oma reegleid korrigeerima/ kohanema . (Seda osa ma käesolavas töös ei realiseeri).
- Süsteem peab vastuseid küsima mingi kindlusteguriga, mitte kahendloogika alusel (vastusevariante andma > 2).
Töökindlus
- Süsteem peab kõikvõimalike sisendite puhul oskama anda mingi reaalse vastuse.
- Süsteemi töökiirus ei ole primaarne, kuna seda ei kasutata ajakriitiliste ülesannete jaoks.
- Süsteemi vea korral tuleb vea tekke eelne olukord logida ning süsteemi tööd algusest alustada.
Kasutusmugavus
- Süsteemi kasutajaliides peab olema selge, funktsionaalsus intuitiivselt tajutav ning küsimused loogiliselt grupeeritud funktsionaalsetes nõudmistes antud loogika alusel.
- Süsteem peab vastusena andma mingi nimekirja erialasid / valdkondi, millesse vastaja oma isiksuse ning hariduse alusel sobiks. Ideaalis peaks iga vastusevarianti saatma kommentaar, miks just see variant antud vastuste alusel valiti.
Tõhusus
- Süsteemi korraga kasutatavate inimeste hulk jääb hinnanguliselt suhteliselt väikeseks (= 2).
Funktsionaalsetest
nõudmistest jäid realiseerimata:
- Süsteem peab kasutajalt teada saama tema olemasoleva erialaste teadmiste diapasooni.
- Süsteem peab teada saama, mis kasutajale antud eriala juures ei sobi, mida ta ei sooviks tulevikus teha
- Süsteem peab kasutajalt küsima, kas too tunneb, et süsteemi otsustuse tulemused tegelikult talle sobiksid ning andma loojale tagasisidet otsustuse kvaliteedi kohta
- Ideaalis võiks süsteem lasta kasutajal täpsustada, mis oli otsustuses väga õigesti, mis valesti ning oma reegleid korrigeerima/kohanema. (Seda osa ma käesolavas töös ei realiseeri).
Kuna esimese realisatsiooni arendusvahendiks oli prooviversioon Java tehnoloogial veebipõhist süsteemi genereerivast süsteemist ExSys
Corvid ning teise realisatsiooni arendusvahendiks alfaversioon
kaastudengi loodud reeglisüsteemist, pean realiseeritu ulatust
funktsionaalses mõttes mõistlikuks.
Samas, et muuta süsteem reaalselt kasutatavaks, tuleks ka ülejäänud
funktsionaalsed nõudmised realiseerida.
Mittefunktsionaalsetest nõudmistest realiseeris esimene rakendus need, mis tavalises kirjas ning ei realiseerinud neid, mis väikeses
hallis kirjas:
Töökindlus
- Süsteem peab kõikvõimalike sisendite puhul oskama anda mingi reaalse vastuse.
- Süsteemi töökiirus ei ole primaarne, kuna seda ei kasutata ajakriitiliste ülesannete jaoks.
- Süsteemi vea korral tuleb vea tekke eelne olukord logida ning süsteemi tööd algusest alustada.
Kasutusmugavus
- Süsteemi kasutajaliides peab olema selge, funktsionaalsus intuitiivselt tajutav ning küsimused loogiliselt grupeeritud funktsionaalsetes nõudmistes antud loogika alusel.
- Süsteem peab vastusena andma mingi nimekirja erialasid / valdkondi, millesse vastaja oma isiksuse ning hariduse alusel sobiks. Ideaalis peaks iga vastusevarianti saatma kommentaar, miks just see variant antud vastuste alusel valiti.
Tõhusus
- Süsteemi korraga kasutatavate inimeste hulk jääb hinnanguliselt suhteliselt väikeseks (
Kõik kommentaarid