firma
author(s): Tomas Dlouhy
(c) 2007 Tomas Dlouhy
Model softwarove firmy - Kontrolni bod 3 z predmetu Y36OMO
Softwarova firma ma zamenstanace, ktery ma pridelenou nejakou mistnost, ma pridelene vybaveni. Mezi pridelena vybaveni patri napr. nabytek, mobilni telefon, notebook/pocitac popr. automobil. Kazda mistnost se nachazi v nejakem oddeleni. Firma tez vlastni nejake budovy.
Firma ma ucet u banky. Dalsi ulozene penize ma na pokladne obchod. oddeleni. Zamestanci firmy vytvareji softwarove produkty.
CHANGELOG:
1. Kontrolni bod:
-vystavba zakladnich predstav o modelu
-provtni navrh modelu
-zakaldni pospojovani objektu v modelu
2. Kontrolni bod
-mensi uprava predstav modelu
-totalni prekopani do noveho souboru
3. Kontrolni bod
-znovu prekopany model
-obsahuje metody
-navrhove vzory
Workspace
Majitele := Set new.
Majetky := Set new.
Automobily := Set new.
Pokl := Set new.
Ucty := Set new.
Fin := Set new.
Produkty := Set new.
Zam := Set new.
"Polozky"
pok1 := Pokladna new.
pok1 cislo: '1'; umisteni: nem2; soucasna_castka: 10000.
pok2 := Pokladna new.
pok2 cislo: '2'; umisteni: nem1; soucasna_castka: 50000.
Pokl add: pok1.
ucet1 := Ucet new.
ucet1 cislo_uctu: 78454546546; var_symbol: '0010'; banka: 'BankaC'; castka: 150000.
fin1 := Finance new.
fin1 pokladna: pok1; ucet: ucet1; ostatni: nil.
majitel1 := Majitel new.
majitel1 jmeno: 'Tomas Dlouhy'; telefon: 123456789; adresa: '5.Ulice, Mesto 2, 123 14'.
majetek1 := Majetek new.
majetek1 nemovitosti: nem1; finance: fin1; vybaveni: vyb1; automobil: auto1.
nem1 := Nemovitosti new.
nem1 nazev: 'Pentagon'; adresa: 'Bukova hora 1, Mesto 4, 123 18'; typ: 'administrativni budova'.
firma1 := Firma new.
firma1 jmeno: '4d Systems'; sidlo: nem1; zamereni: 'vyvoj softwaru'; ico: '9785455546'; majetek: majetek1; zamenstanci: zam1; produkty: prod1; oddeleni: odd1; majitel: majitel1;forma: 'Akciova spolecnost'.
nem2 := Nemovitosti new.
nem2 nazev: 'Sklidste'; adresa: 'Bukova hora 2, Mesto 4, 123 18'; typ: 'sklad'.
odd1 := Oddeleni new.
odd1 jmeno: 'vedeni'; ucel: 'management'; sidlo: nem1.
odd2 := Oddeleni new.
odd2 jmeno: 'sklad1'; ucel: 'sklad produktu'; sidlo: nem2.
odd3 := Oddeleni new.
odd3 jmeno: 'uctarna'; ucel: 'management'; sidlo: nem1.
odd4 := Oddeleni new.
odd4 jmeno: 'vyvoj'; ucel: 'management'; sidlo: nem1.
odd5 := Oddeleni new.
odd5 jmeno: 'betatesting'; ucel: 'management'; sidlo: nem1.
odd6 := Oddeleni new.
odd6 jmeno: 'test'; ucel: 'management'; sidlo: nem1.
zam1 := Zamestnanci new.
zam1 jmeno: 'Pepa Jan'; bydliste: 'Pepikov'; telefon_domu: 789512356; telefon_sluzebni: 1254588888; zpusob_vyplaceni: 'hotove'; cislo_uctu: '-'; typ_uvazku: 'plny'; cinnost: 'skladnik'; misto: nem2; pridelene_pomucky: ''; automobil: auto1; oddeleni: odd2.
auto1 := Automobil new.
auto1 ev_cislo: '0045455A'; znacka: 'Skoda'; typ: 'Octavia'; zodpovedna_osoba: zam1.
vyb1 := Vybaveni new.
vyb1 jmeno: 'pocitac1'; ev_cislo: 4588; popis: 'pocitac'; stav_pri_vydani: 'ok'; datum_koupe: '1.9.2000'; zodpovedna_osoba: nil.
vyb2 := Vybaveni new.
vyb2 jmeno: 'pocitac2'; ev_cislo: 4589; popis: 'pocitac'; stav_pri_vydani: 'ok'; datum_koupe: '1.9.2000'; zodpovedna_osoba: nil.
vyb3 := Vybaveni new.
vyb3 jmeno: 'mobil1'; ev_cislo: 4590; popis: 'mobil'; stav_pri_vydani: 'ok'; datum_koupe: '1.9.2000'; zodpovedna_osoba: zam1.
vyb4 := Vybaveni new.
vyb4 jmeno: 'skrin'; ev_cislo: 4591; popis: 'skrin'; stav_pri_vydani: 'ok'; datum_koupe: '1.9.2000'; zodpovedna_osoba: nil.
prod1 := Produkty new.
prod1 jmeno: 'Program'; oznaceni: 'kn'; datum_vydani: '25.3.2007'; stav: 'dokoncen'; verze: '1.0'
ucet1 pridatNaUcet: 100.
Workspace Objects
-
Pokl :Set
-
auto :UndefinedObject
-
auto1 :Automobil
-
ev_cislo :ByteString
-
fin1 :Finance
-
firma1 :Firma
-
majetek1 :Majetek
-
majitel1 :Majitel
-
nem1 :Nemovitosti
-
nem2 :Nemovitosti
-
nill :UndefinedObject
-
odd1 :Oddeleni
-
odd2 :Oddeleni
-
odd3 :Oddeleni
-
odd4 :Oddeleni
-
odd5 :Oddeleni
-
odd6 :Oddeleni
-
oddeleni1 :UndefinedObject
-
pok1 :Pokladna
-
pok2 :Pokladna
-
prod1 :Produkty
-
Produkt :UndefinedObject
-
test1 :UndefinedObject
-
ucet1 :Ucet
-
vPokl :UndefinedObject
-
vyb1 :Vybaveni
-
vyb2 :Vybaveni
-
vyb3 :Vybaveni
-
vyb4 :Vybaveni
-
zam1 :Zamestnanci
Script
Diagram
Classes
Majitel
|
instance variables
adresa :String
jmeno :String
telefon :Number
|
methods
adresa
adresa:
initialize
jmeno
jmeno:
telefon
telefon:
|
|
|
code of non-accessing methods:
Majetek
|
instance variables
automobil :Object
finance :Object
nemovitosti :Object
vybaveni :Object
|
methods
automobil
automobil:
finance
finance:
initialize
nemovitosti
nemovitosti:
vybaveni
vybaveni:
|
|
|
code of non-accessing methods:
Automobil
|
instance variables
ev_cislo :String
moznosti_vyuzivani :String
typ :String
znacka :String
zodpovedna_osoba :Object
|
methods
ev_cislo
ev_cislo:
initialize
moznosti_vyuzivani
moznosti_vyuzivani:
typ
typ:
znacka
znacka:
zodpovedna_osoba
zodpovedna_osoba:
|
|
|
code of non-accessing methods:
Ucet
|
instance variables
banka :String
castka :Number
cislo_uctu :Number
var_symbol :String
|
methods
banka
banka:
castka
castka:
cislo_uctu
cislo_uctu:
initialize
pridatNaUcet
var_symbol
var_symbol:
|
|
|
code of non-accessing methods:
Vybaveni
|
instance variables
datum_koupe :String
ev_cislo :Number
jmeno :String
popis :String
stav_pri_vydani :String
zodpovedna_osoba :Object
|
methods
datum_koupe
datum_koupe:
ev_cislo
ev_cislo:
initialize
jakeVybaveni
jmeno
jmeno:
popis
popis:
stav_pri_vydani
stav_pri_vydani:
zodpovedna_osoba
zodpovedna_osoba:
|
|
|
code of non-accessing methods:
-
initialize
"generated by Daskalos"
super initialize.
jmeno := nil.
ev_cislo := nil.
popis := nil.
stav_pri_vydani := nil.
datum_koupe := nil.
zodpovedna_osoba := nil.
-
jakeVybaveni
"vypise vybaveni pridelene zamestanci"
^jmeno collect: [:x | zodpovedna_osoba]
Produkty
|
instance variables
datum_vydani :String
jmeno :String
oznaceni :String
stav :String
verze :String
|
methods
datum_vydani
datum_vydani:
initialize
jmeno
jmeno:
novyProdukt:
oznaceni
oznaceni:
stav
stav:
verze
verze:
|
|
|
code of non-accessing methods:
-
datum_vydani: anObject
"generated by Daskalos"
datum_vydani := self checkValue: anObject forVariable: #datum_vydani
-
initialize
"generated by Daskalos"
super initialize.
jmeno := nil.
oznaceni := nil.
datum_vydani := nil.
stav := nil.
verze := nil.
-
novyProdukt: String
"vrati info o novem produktu"
| info |
info := jmeno + verze + datum_vydani.
^info
Nemovitosti
|
instance variables
adresa :String
nazev :String
typ :String
|
methods
adresa
adresa:
initialize
nazev
nazev:
typ
typ:
|
|
|
code of non-accessing methods:
Firma
|
instance variables
forma :String
ico :String
jmeno :String
majetek :Object
majitel :Object
oddeleni :Object
produkty :Object
sidlo :Object
zamenstanci :Object
zamereni :String
|
methods
forma
forma:
ico
ico:
initialize
jmeno
jmeno:
majetek
majetek:
majitel
majitel:
oddeleni
oddeleni:
produkty
produkty:
sidlo
sidlo:
zamenstanci
zamenstanci:
zamereni
zamereni:
|
|
|
code of non-accessing methods:
Zamestnanci
|
instance variables
automobil :Object
bydliste :String
cinnost :String
cislo_uctu :String
jmeno :String
misto :Object
oddeleni :Object
pridelene_pomucky :Object
telefon_domu :Number
telefon_sluzebni :Number
typ_uvazku :String
zpusob_vyplaceni :String
|
methods
automobil
automobil:
bydliste
bydliste:
cinnost
cinnost:
cislo_uctu
cislo_uctu:
initialize
jmeno
jmeno:
misto
misto:
oddeleni
oddeleni:
pridelene_pomucky
pridelene_pomucky:
seznamPomucek
telefon_domu
telefon_domu:
telefon_sluzebni
telefon_sluzebni:
typ_uvazku
typ_uvazku:
zpusob_vyplaceni
zpusob_vyplaceni:
|
|
|
code of non-accessing methods:
-
initialize
"generated by Daskalos"
super initialize.
jmeno := nil.
bydliste := nil.
telefon_domu := nil.
telefon_sluzebni := nil.
zpusob_vyplaceni := nil.
cislo_uctu := nil.
typ_uvazku := nil.
cinnost := nil.
misto := nil.
pridelene_pomucky := nil.
automobil := nil.
oddeleni := nil.
-
seznamPomucek
"vraci seznam pomucek"
| dotaz |
pridelene_pomucky = nil ifTrue: [^0].
dotaz := Vybaveni allInstances
select: [:x | x zodpovedna_osoba > pridelene_pomucky].
^dotaz collect: [:y | y jmeno]
Finance
|
instance variables
ostatni :Object
pokladna :Object
ucet :Object
|
methods
initialize
ostatni
ostatni:
pokladna
pokladna:
ucet
ucet:
|
|
|
code of non-accessing methods:
Oddeleni
|
instance variables
jmeno :String
sidlo :Object
ucel :String
|
methods
initialize
jmeno
jmeno:
seznamZam
sidlo
sidlo:
ucel
ucel:
|
|
|
code of non-accessing methods:
-
initialize
"generated by Daskalos"
super initialize.
jmeno := nil.
ucel := nil.
sidlo := nil.
-
seznamZam
"vraci seznam zamestnancu"
| dotaz |
dotaz := Zamestnanci allInstances select: [:x | x oddeleni].
^dotaz collect: [:y | y jmeno]
Pokladna
|
instance variables
cislo :String
nova_castka :Number
soucasna_castka :Number
umisteni :Object
|
methods
cislo
cislo:
initialize
nova_castka
nova_castka:
soucasna_castka
soucasna_castka:
umisteni
umisteni:
|
|
|
code of non-accessing methods:
-
initialize
"generated by Daskalos"
super initialize.
cislo := nil.
umisteni := nil.
soucasna_castka := nil.
nova_castka := nil.
-
nova_castka
"generated by Daskalos"
| soucet |
nova_castka = nil ifTrue: [^0].
soucet := 0.
nova_castka do: [:x | soucet := soucet + nova_castka].
^soucet
Links
Data file and
class source.
Generated by Daskalos - Object Modeling Tutor (C) 2006 V. Merunka
May 27, 2007