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



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:

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:


Links

Data file and class source.

Generated by Daskalos - Object Modeling Tutor (C) 2006 V. Merunka
November 27, 2007