A villamosmernok es a programozo
A villamosme'rno:k e's a programozo
Egyszer volt, hol nem volt, az informa'ciotengeren tul, a digita'lis
u:veghegyen is tul, e'lt egyszer egy kira'ly. Egy sze'p napon a kira'ly
ugy
do:nto:tt, hog proba'ra teszi ke't legtapasztaltabb tana'csadoja't, a
villamosme'rno:ko:t e's a programozot. Maga'hoz hivatta teha't o"ket, e's
ele'ju:k tett egy kis fe'nyes dobozt, aminek a teteje'n ke't hosszuka's
nyila's volt, az oldala'n pedig egy fekete gomb e's egy emelo"kar. "Mit
gondoltok, mi ez?" - ke'rdezte a kira'ly a tana'csadokat.
Elso"ke'nt a villamosme'rno:k szolalt meg. "Fense'g, ez egy piritossu:to"."
-
"Rendben van. Hogyan oldana'd meg a piritossu:to" sza'mitoge'pes
veze'rle'se't?" - ke'rdezte a kira'ly. "Terme'szetesen egy nyolcbites
mikrokontrollerrel. Irne'k egy kis programot, ami beolvasna' a gomb
a'lla'sa't, e's ennek alapja'n kiva'lasztana egyet a tizenhat elo"re
definia'lt piritosfajta (halva'ny barna, ko:zepesen barna, nagyon barna,
fekete, nagyon fekete... sze'nne' e'gett) ko:zu:l. Mind a tizenhat
piritosfajta'hoz tartozna egy-egy sza'mla'loe'rte'k, amit egy ROM-ba
e'getett
ta'bla'zat tartalmazna. A program kiolvasna' a ta'bla'zatbol a gomb
a'lla'sa'hoz tartozo sza'mla'loe'rte'ket, e's ennek megfelelo" ideig
melegitene' a fu"to"sza'lakat. A pirita's befejezte'vel kikapcsolna' a
fu"te'st e's kidobna' a ke'sz piritost. jo:vo" he'tre ke'szen is leszek
a
prototipussal."
A programozo azonnal felismerte a villamosme'rno:k ro:vidla'to
gondolkoda'sa'nak korla'tjait. ugy szolt a kira'lyhoz: "Fense'g, a
piritossu:to"t nem csak kenye'rpirita'sra lehet haszna'lni. Meg lehet
pe'lda'ul melegiteni vele a gyorsfagyasztott pizza szeleteket. Ez a doboz
valoja'ban nem egyszeru"en piritossu:to", hanem egy univerza'lis
reggelike'szito" berendeze's. Ahogy kira'lysa'god fejlo"dik, alattvaloid
egyre
ujabb szolga'ltata'sokat fognak ko:vetelni. Olyan reggelike'szito"t
szeretne'nek majd, amivel virslit is lehet fo"zni, szalonna' su:tni, vagy
ra'ntotta't ke'sziteni. Egy egyszeru" piritossu:to" nagyon gyorsa elavultta'
va'lik. Ha nem vesszu:k figyelembe a fejlo"de's ira'nya't, akkor ne'ha'ny
e'ven belu:l teljesen a't kell majd terveznu:nk a piritossu:to"t."
"Ha tekintettel vagyunk erre a te'nyre, akkor egy sokkal intelligensebb
megolda'st is tala'lhatunk. Elo"szo:r is vezessu:k be a reggelire
fogyasztott
e'telek oszta'lya't. Sza'rmaztassunk ebbo"l ha'rom aloszta'lyt: a liszt,
serte's, illetve baromfi e'telek oszta'lya't. A mu"velet tova'bbi
isme'tle'se'vel a liszt oszta'lya'bol le'trehozzuk a piritos, a zsemle
e's
a
pizza oszta'lyt, a serte's oszta'lybol sonka, virsli e's szalonna
oszta'lyt, a
baromfibol pedig a ra'ntotta, tu:ko:rtoja's, la'gytoja's, keme'nytoja's
e's
a
ku:lo:nfe'le omlettek oszta'lya't."
"A sonka's toja's ku:lo:n figyelmet e'rdemel, mivel a serte's, a tejterme'k,
e's a baromfi oszta'lyokbol is o:ro:ko:l tulajdonsa'gokat. La'thato, hogy
a
proble'm to:bbszo:ro:s o:ro:klo"de's ne'lku:l nem kezelheto" egzakt modon."
A reggelike'szito" mu"ko:de'se a bevezetett formalizmus segitse'ge'vel
rendkivu:l leegyszeru"so:dik: a program futa'si ido"ben le'trehozza a
megfelelo" objektumot e's "Su:sd meg magad" u:zenetet ku:ld neki. Az u:zenet
szemantika'ja terme'szetese a konkre't objektumtol fu:gg, teha't ma'st
jelent
piritos esete'n e's ma'st ra'ntotta esete'n."
"a'ttekintve az eddigieket mega'llapithato, hogy az analizis fa'zisa'ban
fela'llitottunk egy alapko:vetelme'nyt: a berendeze'snek tetszo"leges
reggelir
fogyaszthato e'tel megsu:te'se're alkalmasnak kell lennie. A terveze's
fa'zisa'ban ne'ha'ny tova'bbi ko:vetelme'nyt is meghata'rozunk. Pe'lda'ul:
szu:kse'gu:nk van egy olyan objektumorienta'lt programoza'si nyelvre, amely
megengedi a to:bbszo:ro:s o:ro:kle'st. A felhaszna'lok terme'szetesen nem
szeretne'k, hogy a ra'ntotta kihu"ljo:n, miko:zben su:l a piritos,
nyilva'nvalo teha't, hogy pa'rhuzamos feldolgoza'sra van szu:kse'g".
"Nem szabad elfeledkeznu:nk a felhaszna'loi felu:letro"l sem. A piritos
kiemele'se're szolga'lo kar nem ele'gge' univerza'lis, a gomb pedig
fe'lree'rtheto". A felhaszna'lok csak akkor fogja'k megvenni a terme'ket,
ha
az felhaszna'lobara't, azaz grafikus felhaszna'loi felu:lete van.
Bekapcsola's
uta'n egy hurkato:lto" jelenne meg a ke'pernyo"n, amire ra'kattintva az
ege'rrel, a reggelike'szito" "Az opera'cios rendszer to:lte'se folyamatban
van..." u:zenetet irna' ki. A felhaszna'lok ezuta'n egy pa'rbesze'dpanelen
megjeleno" lista'bol az ege'r segitse'ge'vel va'laszthatna'k ki, hogy mit
szeretne'nek reggelizni."
"Mivel a szu:kse'ges szoftvert elo"rela'toan ma'r a terveze'si fa'zis
kezdete'
meghata'roztuk, ma'r csak annyi van ha'tra, hogy kiva'lasszuk a
megvalosita'shoz szu:kse'ges hardvert. Egy 120 Megahertzes Intel Pentium,
16
Megaba'jt memoria'val, 200 Megaba'jt merevlemez-kapacita'ssal e's SuperVGA
monitorral valoszinu"leg megfelelne a ce'lnak. Ha to:bbfeladatos,
objektumorienta'lt, bee'pitett grafikus felu:lettel rendelkezo" korszeru"
opera'cios rendszert va'lasztunk, akkor a mu"ko:dteto" szoftver megira'sa
ma'r
igaza'n semmise'g. Gondoljunk arra, hogy most milyen komoly nehe'zse'geink
lenne'nek, ha ro:vidla'to modon elo"szo:r a hardvert va'lasztottuk volna
ki,
e's most egy nyolcbites mikrokontrollerrel szenvedne'nk!
Miuta'n a kira'ly mindke't tana'csadoja't meghallgatta, lefejeztette a
programozot, e's azota is boldogan e'lnek ha meg nem haltak.
Üdvözlettel
------------------------------
Schveibert Róbert
Mérnök-Informatikus
Okleveles Mérnöktanár
|