Úvodní studie
  Deklarace záměru      Odborný článek      Kontextový diagram      Model jednání      Scénáře událostí   
  Návrh rozpočtu      Harmonogram      Datový slovník      Hardware      Software   

Deklarace záměru:

Cílem tohoto projektu je vytvořit informační systém obchodu s výpočetní technikou mající jeden sklad, jednu lokalitu. Systém bude umožňovat rezervaci zboží přes internet dle zadaných kritérií, vést skladovou evidenci a kontrolovat pohyb zboží ve firmě. Systém budou využívat jak zákazníci pro rezervace zboží a informace o jeho dostupnosti, tak zaměstnanci dle svých přístupových práv nastavených v závislosti na jejich pozici ve firmě.


Odborný článek:

Hlavním záměrem projektu je umožnit společnosti systém využívající kontrolu nad stavem jejího zboží, jeho pohybu a předpokládaných dodávkách i odběrech. Systém bude umožňovat provádět tuto kontrolu přes standartní prohlížeče pracující nad standartem HTTP a to jak pro zaměstnance, tak pro zákazníky využívající možnost dálkové rezervace zboží. Z předcházejícího textu vyplývají jednotlivé požadavky na informační systém, kterému se budeme nyní věnovat podrobněji. Nejprve se budeme zabývat jednotlivými osobami, které má systém evidovat. Budou to především jednotliví zákazníci společnosti, dále její zaměstnanci a správce databáze.

Jelikož společnost prodává zboží počítačového charakteru, evidence zboží bude prováděna na jednotlivé kusy, u malých věcí typu diskety, CD média a kabely na počet krabic a následně na počet kusů v jednotlivých krabicích. Z důvodů jednoznačné identifikace zákazníka u každého zákazníka musí být uvedena jednoznačná identifikace - jeho IČO, dále množství obědnaných kusů v minulosti i současné dodávce a počet skutečně odebraných kusů v minulosti. Systém dle těchto údajů bude sám měnit možnosti zákazníka obědnávat větší popřípadě menší dodávky. Bude zajištěna i možnost tyto údaje měnit zásahem správce.
U každého zákazníka uskutečňujícího nákup budeme dále evidovat jeho IČO, DIČ, datum nákupu, množství odebraného zboží v kusech i ceně. Bude zaveden i takzvaný anonymní zákazník, přes nějž se bude realizovat databáze prodejů od fyzických osob nemajících IČO.
U zaměstnanců pracujících ve firmě budeme evidovat jejich Rodné číslo, věk, jméno a přijímení, nejvyšší dosažené vzdělání, počet dětí, hrubou mzdu, a prémie.
Osobě administrátora se věnovat nebudeme - do této pozice bude jmenován současný zaměstnanec nebo nový pracovník, který obdrží od zhotovitele podklady pro správu databáze, popřípadě tímto správcem bude sám zhotovitel.

Nyní k tomu, jak by měl celý informační systém fungovat. Zanášet změny do databáze informující o změnách ve zboží by měli mít právo pouze a jen zaměstnanci firmy a to dle svých pozic ve firmě. Nikdo jiný krom správce databáze nesmí mít možnost provádět tuto činnost. Pouze zaměstnanci mají možnost modifikovat počet zboží ve firmě v závislosti na naskladnění a vyskladnění jednotlivých položek. Rezervace mohou modifikovat jak zaregistrovaní zákazníci, tak zaměstnanci firmy. Neregistrovaní zákazníci mají možnost pouze a jen prohledávat počet zboží.

Zákazník musí mít v prvé řadě možnost získat firemní data jako je adresa, telefon apod a to jak anonymní, tak neanonymní. Anonymní zákazník musí mít dále možnost se zaregistrovat do systému na omezenou dobu, za kterou musí ve firmě prokázat svou totožnost předložením dokladů o jeho IČO. Až poté bude jeho ID zaneseno do systému a nebude smazáno. Když toto do určité doby neudělá, po určité době bude jeho registrace ukončena. Zákazník má po celou dobu po registraci možnost obědnávat zboží v systému. Systém také bude umožňovat zákazníkům svou registraci zrušit. Zboží může zákazník rezervovat maximálně na týden dopředu a svou rezervaci by měl ověřit zasláním faxu nebo telefonátem do provozovny společnosti. Jestliže zboží firma nemá dočasně na skladě, může provést jeho rezervaci dopředu. Tyto rezervace se budou vyhodnocovat dle data, hodiny a minuty, kdy zákazník zboží obědnal a vyřizovat frontu čekajících obědnávek metodou FIFO. Zákazník má možnost zarezervovat zboží maximálně do hranice dovolené systémem. Počítá se cena zboží, ne množství v kusech.

Závěrem je zhotovitele nutné upozornit, že zejména v oblasti takzvaného "malého zboží" se očekávají veliké odběry a tímpádem i přesuny zboží v rámci krabic, tudíž je nutné navrhnout takový systém, aby příliš nezdržoval zejména osoby pracující ve skladu v práci.

Doplnění:
Po konzultaci se zákazníkem bylo zakazníkem rozhodnuto, že projekt bude umět "přeskakovat VIP zakázníky" ve frontě zarezervovaného zboží. Databáze bude obsahovat příznak označující VIP zákazníka. Jestliže takový zákazník podá svou rezervaci, přeskočí všechny normální zákazníky a zařadí se na místo posledního VIP zákazníka ve frontě.


Kontextový diagram:


Kontextový diagram
Administrátor
    1) Zadání zaměstnanců - správce systému zadává uživatele pro přístup k systému
    2) Oprávnění zaměstnanců - správce změní oprávnění uživatele, jde např. o změnu zařazení pracovníka
    3) Požadavek údajů - Požadavek na výpis libovolných informací (o uživatelích, o zákaznících, o zboží)
    4) Výpisy - systém vypíše požadované informace
Zaměstnanec
    5) Naskladnění zboží - příjem nového zboží na sklad
    6) Vyskladnění zboží - zboží je ze skladu vydáváno
    7) Změna zboží - úprava informací o zboží, změny zboží
    8) Výpis zákazníků - informace o zákaznících
    22) Rezervace zboží - Zarezervování zboží zákazníkovi
Zákazník
    9) Objednání zboží - objednání po telefonu, osobně, nebo přes WWW
    10) Nákup zboží - zákazník osobně vyzvedne v prodejně či skladu
    11) Registrace - Zákazník se registruje prodejci
    12) Výdej zboží - Zákazník dostane zakoupené zboží
    13) Potvrzení objednávky - objednávka přes www je potvrzena po mailu nebo telefonicky
VIP zákazník
    14) Objednání zboží - objednání po telefonu, osobně, nebo přes WWW
    15) Nákup zboží - zákazník osobně vyzvedne v prodejně či skladu, může koupit i zboží které je rezervované pro normálního zákazníka
    16) Změna ze zákazníka na VIP - po určitém množství odebraného zboží.
    17) Výdej zboží - Zákazník dostane zakoupené zboží
    18) Potvrzení objednávky - objednávka přes www je potvrzena po mailu nebo telefonicky
Anonymní zákazník
    19) Nákup zboží - Osobní odkup zboží
    20) Výdej zboží - Zákazník dostane nakoupené zboží
    21) Předregistrace - Zákazník se chce registrovat, dokud nepotvrdí IČO nebo neuplyne daná lhůta po které je předregistrace zrušena

Model jednání (Use-case):

Use-case


Scénáře událostí:

- Zanesení nového zaměstnance do databáze:
majitel přijme nového zaměstnance
Počítačová podpora NE
administrátor databáze zadá nově přijatého zaměstnance do databáze na příkaz nadřízeného
Počítačová podpora ANO

- Naskladnění:
majitel nakoupí zboží
Počítačová podpora NE
zaměstnanec pracující ve skladu naskladni zboží na jeho obvykle místo a zanese jeho polohu a množství do databáze
Počítačová podpora ANO

- Vymazání zaměstnance z databáze
majitel rozvaze pracovní poměr se zaměstnancem
Počítačová podpora NE
administrátor vymaže zaměstnance z databáze na příkaz nadřízeného
Počítačová podpora ANO

- Rezervování zboží
zaregistrovaný zákazník provede rezervaci zboží
Počítačová podpora ANO
systém provede kontrolu statusu VIP zákazníka ANO/NE a zanese jej do fronty rezervovaného zboží
Počítačová podpora ANO
zákazník potvrdí/nepotvrdí svou rezervaci telefonem/faxem
Počítačová podpora NE
zaměstnanec potvrdí/nepotvrdí v systému rezervaci
Počítačová podpora ANO
systém smaže/nesmaže rezervaci z fronty čekajících rezervaci
Počítačová podpora ANO

- Prodej zboží na prodejně anonymnímu zákazníkovi
zákazník přijde do prodejny a nakoupí zboží
Počítačová podpora NE
zaměstnanec zanese do databáze úbytek zboží ve firmě pro účet anonymního zákazníka
Počítačová podpora ANO

- Prodej zboží na prodejně registrovanému zákazníkovi
zákazník přijde do prodejny a nakoupí zboží
Počítačová podpora NE
zaměstnanec zanese do databáze úbytek zboží ve firmě pro ID zákazníka
Počítačová podpora ANO


Návrh rozpočtu:

Návrh rozpočtu byl proveden podle cenového modelu COCOMO (Constructive Cost Model).
Rozsah projektu byl odhadnut na 4000 zdrojových řádků, tedy 4 KDSI.

Určíme opravné faktory:

Jméno

Hodnota

Popis

 

 

 

 

Faktory systému

RELY

1,1

Spolehlivost

DATA

1

Rozsah dat

CPLX

0,85

Složitost

 

Faktory počítače

TIME

1

Nárok na rychlost odezvy

STOR

1

Paměťové nároky

VIRT

1

Stabilita počítače

TURN

1,02

Rychlost odezvy počítače při vývoji

 

Faktory týmu

ACAP

0,91

Znalosti a zkušenosti analytika

AEXP

1,1

Znalost aplikace

PCAP

0,97

Zkušenost programátorů

VEXP

1

Znalost virt. Počítače

LEXP

0,96

Znalost prog. Jazyka

 

Faktory projektu

MODP

1

Moderní prog. Metody

TOOL

1,05

Použití prog. nástrojů

SCED

1

Volnost časového plánu

       

 

Souhrnný opravný faktor :  o = 0,93  

Konstanty : k = 3,0        n = 1,08        m = 0,38

                     

Spočtěme náročnost :
                     Kd = k * ( Rozsah ) n * o = 3,0 * 4 1,08 * 0,93 = 12,47 Člověko - Měsíců

Čas :
                     td = 2,5 * ( Kd ) m = 2,5 * 12,47 0,38 = 6,52 Měsíců
Optimální počet pracovníků :
                     Počet = Kd / td = 12,47 / 6,52 = 1,91

Zaměstnáme tedy 2 lidi na 6 měsíců.

Předpokládejme dále náklady na výplatu zaměstnance 25 000Kč / měsíc
Náklady na vývoj SW:   2 * 6 * 25.000 = 300 000,- Kč



Harmonogram:



Náklady na hardware:

Jelikož se jedná o relativně malou aplikaci, bylo rozhodnuto, že firma pokryje potřeby hardwareového vybavení ze svých současných dílů. Bylo zvoleno řešení 1*P4 1600 MHz, 512 MB RAM, 2*ATA 60 GB v softwareovém raid, síťová karta 3C905. Jako pracovní stanice poslouží s výhodou současné pracovní stanice zaměstnanců.

Cena hardware vybavení 0 Kč.


Náklady na software:

Z důvodu dalších možných úprav, stability, bezpečnosti a výkonnosti byl zvolen operační systém Linux s jádrem řady 2.4 v distribuci Debian 3.0r1 Woody. Veškeré aplikace běžící nad tímto systémem byly zvoleny open source z důvodu nízké ceny a výkonnosti. Z potřeby snadné upgradeovatelnosti při výskytu chyb veškeré aplikace jako balíčky přímo této distribuce. Jako databázový server byl kvůli potřebě transakčního zpracování dat zvolen server Postgresql ve verzi 7.2.1, jako webový prohlížeč pro celou platformu browser Mozilla 1.0 a vyšší, JAVA 1.4.1_02.

Cena softwareového vybavení 0 Kč.


Datový slovník :

Popis notace zápisu datového slovníku :
    = skládá se
    + a
    (...) může chybět
    {...} opakování
    [...|...] jeden z možných
    *....* komentář
    @ klíčová položka
    @<číslo> část složeného klíče
číslice = [ 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 ]
písmeno_malé = [ a | á | b | ... | ý | z | ž ]
písmeno_velké = [ A | Á | B | ... | Ý | Z | Ž ]
mezera = [ ' ' ]
písmeno = [ písmeno_malé | písmeno_velké ]
znaky = [ písmeno | mezera ]
řetězec = { znaky | číslice }
id_kód = 8{číslice}8
hodina = [ 0 | 1 | ... | 23 ]
minuta = [ 0 | 1 | ... | 59 ]
čas = hodina + : + minuta
den = [ 1 | 2 | ... | 31 ]
měsíc = [ 1 | 2 | ... | 12 ]
rok = [ 1 | 2 ] + 3{číslice}3
datum = den + měsíc + rok
typ_zak = [normal | VIP | anonym]
úspěch = * nalezeno v databázi *
neúspěch = * nenalezeno v databázi *

ZÁKAZNÍK = @ID_ZÁKAZNÍKA + (JMÉNO) + (PŘÍJMENÍ) + (RODNÉ_ČÍSLO) + (ADRESA) + (TELEFON) + (ČÍSLO_OP) + STAV_ÚČTU + TYP_ZÁKAZNÍKA
ID_ZÁKAZNÍKA = id_kód
JMÉNO = {znaky}20
PŘÍJMENÍ = {znaky}20
RODNÉ_ČÍSLO = 10{číslice}10
ADRESA = ADRESA_ULICE + ADRESA_MĚSTO + ADRESA_PSČ
ADRESA_ULICE = {znaky}30
ADRESA_MĚSTO = {znaky}30
ADRESA_PSČ = 5{číslice}5
TELEFON = {číslice}4 + / + {číslice}10
ČÍSLO_OP = {řetězec}10
TYP_ZÁKAZNÍKA = typ_zak
STAV_ÚČTU = 8{číslice}8

ZAMĚSTNANEC = @ID_ZAMĚSTNANCE + JMÉNO + PŘÍJMENI + RODNÉ_ČÍSLO + ADRESA + TELEFON + ČÍSLO_OP + FUNKCE + PLAT
ID_ZAMĚSTNANCE = id_kód
FUNKCE = 1{řetězec}30
JMÉNO = {znaky}20
PŘÍJMENI = {znaky}20
RODNÉ_ČÍSLO = 10{číslice}10
ADRESA = ADRESA_ULICE + ADRESA_MĚSTO + ADRESA_PSČ
ADRESA_ULICE = {znaky}30
ADRESA_MĚSTO = {znaky}30
ADRESA_PSČ = 5{číslice}5
TELEFON = {číslice}4 + / + {číslice}10
ČÍSLO_OP = {řetězec}10
PLAT = 5{číslice}5

ZBOŽÍ = @ID_ZBOŽÍ + NÁZEV + CENA + POČET + ZÁRUKA + (POZNÁMKY)
ID_ZBOŽÍ = id_kód
NÁZEV = řetězec
CENA = 10{číslice}10
POČET = 5{číslice}5
ZÁRUKA = datum
POZNÁMKY = řetězec

SPRÁVA_ZÁKAZNÍKŮ = [ PŘIDÁNÍ | ODEBRÁNÍ ]
PŘIDÁNÍ = ODEBRÁNÍ = DATUM + ZÁKAZNÍK + (POZNÁMKY)
POZNÁMKY = řetězec
DATUM = datum

SPRÁVA_ZAMĚSTNANCŮ = [ PŘIDÁNÍ | ODEBRÁNÍ ]
PŘIDÁNÍ = ODEBRÁNÍ = DATUM + ZAMĚSTNANEC + (POZNÁMKY)
POZNÁMKY = řetězec
DATUM = datum

SPRÁVA_ZBOŽÍ = [ PŘIDÁNÍ | ODEBRÁNÍ ]
PŘIDÁNÍ = ODEBRÁNÍ = DATUM + ZBOŽÍ + (POZNÁMKY)
POZNÁMKY = řetězec
DATUM = datum

POŽADAVEK_ÚDAJŮ = ÚDAJE
ÚDAJE = * jakékoliv očekávatelné údaje *

VÝPISY_ÚDAJŮ = [POTVRZENÍ | POTVRZENÍ + ÚDAJE]
POTVRZENÍ = [úspěch | neúspěch]

REGISTRACE = [ZAPSÁNÍ | ZRUŠENÍ]
ZAPSÁNÍ = ZRUŠENÍ = DATUM + ZÁKAZNÍK + ZBOŽÍ + (POZNÁMKY)
DATUM = datum

OBJEDNÁVKA = DATUM + ID_ZÁKAZNÍKA + ID_ZBOŽÍ + POTVRZENÍ_OBJEDNÁVKY + POTVRZENÍ_REGISTRACE
POTVRZENÍ_REGISTRACE = [POTVRZENÍ | POTVRZENÍ + REGISTRACE]
POTVRZENÍ_OBJEDNÁVKY = [POTVRZENÍ | POTVRZENÍ + OBJEDNÁVKA]
POTVRZENÍ = [úspěch | neúspěch] + ID_ZAMĚSTNANCE + DATUM + ČAS
ČAS = čas
DATUM = datum