Administring Wireless net
author(s): Golecky a Tomasek
Tento projekt modeluje cast problematiky provozu bezdratove site. Kazdy zakaznik vlastni uzivatelsky ucet, ktery obsahuje informace o platbach, zvolenem tarifu a o tom zda splnuje podminky pro pripojeni. Dale jsou tu pracovnici firmy, kteri zodpovidaji za chod sverenych Ap a na zaklade toku jsou odmenovani. Na kazdem Ap lze zjistit jak dlouho spusteno a kdo za nej odpovida. Dalsi komentar je u trid.
Workspace
Pracovnici select: [: d | d premie > 1000]
"vyber pracovniku, kteri maji premie vyssi nez 1000,-"
Pracovnici select: [: g | g nastup year = Date today year ]
"zamestanci s nastupem letos"
(Zakaznici select: [: v | v age < (18*365)]) size = 0
"zakaznik nesmi byt mladsi 18 let"
Workspace Objects
-
Accounts :Set
-
Aps :Set
-
Pracovnici :Set
-
Tarify :Set
-
Zakaznici :Set
Script
"Note that variables begining with uppercase letter will be moved into the workspace pool."
Pracovnici := Set new.
p1 := Pracovnik new.
p1 jmeno: 'Petr'.
p1 prijmeni: 'Pracovity'.
p1 adresa: 'Praha'.
p1 telefon: '777234123' asNumber.
p1 mail: 'petr@wifi.cz'.
p1 datumnar:'20-FEB-1982' asDate.
p1 plat: ' ' asNumber.
p1 nastup: '02-MAR-2004' asDate.
p1 funkce: 'technik'.
p2 := Pracovnik new.
p2 jmeno: 'Jakub'.
p2 prijmeni: 'Lenoch'.
p2 adresa: 'Beroun'.
p2 telefon: '777214135' asNumber.
p2 mail: 'jakub@wifi.cz'.
p2 datumnar:'18-JAN-1983' asDate.
p2 plat: ' 'asNumber.
p2 nastup: '12-NOV-2003' asDate.
p2 funkce: 'technik'.
p3 := Pracovnik new.
p3 jmeno: 'Karel'.
p3 prijmeni: 'Isa'.
p3 adresa: 'Paha'.
p3 telefon: '604213435' asNumber.
p3 mail: 'karel@wifi.cz'.
p3 datumnar:'12-JUN-1984' asDate.
p3 plat: ' 'asNumber.
p3 nastup: '08-DEC-2003' asDate.
p3 funkce: 'helpdesk'.
p4 := Pracovnik new.
p4 jmeno: 'Vojta'.
p4 prijmeni: 'Pci'.
p4 adresa: 'Zdice'.
p4 telefon: '603215185' asNumber.
p4 mail: 'vojta@wifi.cz'.
p4 datumnar:'11-SEP-1984' asDate.
p4 plat: ' 'asNumber.
p4 nastup: '01-JAN-2004' asDate.
p4 funkce: 'helpdesk'.
Pracovnici add: p1; add: p2; add: p3; add: p4.
Zakaznici := Set new.
z1 := Zakaznik new.
z1 jmeno: 'Ludek'.
z1 prijmeni: 'Agp'.
z1 adresa: 'Dobrichovice'.
z1 telefon: '564210821' asNumber.
z1 mail: 'luda@cenek.cz'.
z1 datumnar:'11-NOV-1944' asDate.
z2 := Zakaznik new.
z2 jmeno: 'Ludek'.
z2 prijmeni: 'Agp'.
z2 adresa: 'Dobrichovice'.
z2 telefon: '564210821' asNumber.
z2 mail: 'luda@cenek.cz'.
z2 datumnar:'30-NOV-1944' asDate.
z3 := Zakaznik new.
z3 jmeno: 'Pepik'.
z3 prijmeni: 'Dodek'.
z3 adresa: 'Kolin'.
z3 telefon: '564210821' asNumber.
z3 mail: 'ucho@dodek.cz'.
z3 datumnar:'01-JAN-1978' asDate.
z4 := Zakaznik new.
z4 jmeno: 'Ignac'.
z4 prijmeni: 'Prokop'.
z4 adresa: 'Zdice'.
z4 telefon: '5642454218' asNumber.
z4 mail: 'nepisu@nikomu.cz'.
z4 datumnar:'24-MAY-1985' asDate.
Zakaznici add: z1; add: z2; add: z3; add: z4.
Tarify:= Set new.
t1 := Tarif new.
t1 jmeno: 'Lomcovak'.
t1 cena: '123' asNumber.
t1 rychlost: '1024' asNumber.
Tarify add: t1.
Accounts:= Set new.
a1 := Account new.
a1 tarif: t1.
a1 majitel: z3.
a1 zavedeno: '01-JAN-2006' asDate.
Accounts add: a1.
Aps:= Set new.
q1 := Ap new.
q1 spravce: p1.
q1 spusteno: '01-JAN-2003' asDate.
q1 adresaIP: '192.162.12.12'.
Aps add: q1.
p1 ap: q1.
q2 := Ap new.
q2 spravce: p2.
q2 spusteno: '23-NOV-2004' asDate.
q2 adresaIP: '192.162.12.13'.
Aps add: q2.
p2 ap: q2.
q3 := Ap new.
q3 spravce: p3.
q3 spusteno: '08-FEB-2005' asDate.
q3 adresaIP: '192.162.12.14'.
Aps add: q3.
p3 ap: q3.
q4 := Ap new.
q4 spravce: p4.
q4 spusteno: '23-NOV-2001' asDate.
q4 adresaIP: '192.162.12.13'.
Aps add: q4.
p4 ap: q4
Diagram
Classes
Ap
|
instance variables
adresaIP :String
spravce :Object
spusteno :Date
traffic :Number
|
methods
adresaIP
adresaIP:
initialize
spravce
spravce:
spusteno
spusteno:
traffic
traffic:
uptime
|
|
Trida oznacujici jednotlive AP, ke kterym se zakaznici mohou pripojit. Trida bude obsahovat celkove mnozstvi prenesenych dat [instance traffic]. A metodu uptime ktera bude pocitat cas (dny) provozu od posledniho spusteni.
|
code of non-accessing methods:
Account
|
instance variables
majitel :Object
tarif :Object
zaplaceno :Number
zavedeno :Date
|
methods
initialize
majitel
majitel:
pristup
tarif
tarif:
zaplaceno
zaplaceno:
zavedeno
zavedeno:
|
|
Kazdy zakaznik ma svuj uzivatelsky ucet, kde jsou uvedene konkretni informace o jeho pripojení. Instance "zaplaceno" bude obsahovat celkove mnozstvi prijatych penez [plateb] od klienta. Instance "zavedeno", bude datum zrizeni, ze ktereho se bude pocitat kolik penez ma mit klient na uctu poskytovatele. Metoda pristup podle:
zaplaceno na ucte --- (aktualni datum-zavedeno datum)*cenaTarifu
Nastavi hodnotu true/false podle toho jeslti ma dany klient povoleny pristup do site.
|
code of non-accessing methods:
-
initialize
"generated by Daskalos"
super initialize.
tarif := nil.
zaplaceno := nil.
majitel := nil.
zavedeno := nil.
-
pristup
(Date today subtractDate: zavedeno) * tarif cena = zaplaceno
ifTrue: [^True]
ifFalse: [^False]
Tarif
|
instance variables
cena :Number
jmeno :String
rychlost :Number
|
methods
cena
cena:
initialize
jmeno
jmeno:
rychlost
rychlost:
|
|
Tato trida obsahuje tarify ktere muze zakaznik vyuzit k pripojeni na internet. Obsahuje cenu, rychlost, a nazev tarifu.
|
code of non-accessing methods:
Lide
|
instance variables
adresa :String
datumnar :Date
jmeno :String
mail :String
prijmeni :String
telefon :Number
|
methods
adresa
adresa:
age
datumnar
datumnar:
initialize
jmeno
jmeno:
mail
mail:
prijmeni
prijmeni:
telefon
telefon:
|
|
Trida ktera obsahuje udaje pro jednotlive osoby v projektu [tj. zakaznici a zamestnanci]
|
code of non-accessing methods:
Zakaznik
|
instance variables
|
methods
|
|
Zde je uvedena databaze zakazniku figurujicich v projektu. Dale pak kazdy zakaznik dostane prirazeny uzivatelsky ucet, ktery bude poskytovat data pro spravce i pro samotneho zakaznika.
|
code of non-accessing methods:
Pracovnik
|
instance variables
ap :Object
funkce :String
nastup :Date
plat :Number
|
methods
ap
ap:
funkce
funkce:
initialize
nastup
nastup:
plat
plat:
premie
|
|
Pracovnici jsou zamestnanci firmy kteri spravuji Access pointy. Kazdy pracovnik ma na starost jedno Ap a dle jeho provozu bude dostavat premie.
|
code of non-accessing methods:
-
initialize
"generated by Daskalos"
super initialize.
plat := nil.
nastup := nil.
funkce := nil.
ap := nil.
-
plat
"generated by Daskalos"
^(Date today subtractDate: nastup) + 500
-
premie
ap isNil ifTrue: [^'0' asNumber] ifFalse: [^ap uptime * 49]
Links
Data file and
class source.
Generated by Daskalos - Object Modeling Tutor (C) 2006 V. Merunka
November 27, 2007