Informační systém expresní balíkové služby

Kategorie >>Programování>> Informační systém expresní balíkové služby


Zhruba před 2 lety jsme v rámci předmětu softwarové inženýrství ( x36SIN ) pracovali v týmu a zde výsledná prezentace, kterou jsme odevzdávali.

Členové týmu a jejich role


Petra Muziková – koordinátor SI2 (tester)
Martin Mizera (vedoucí týmu)
Vojtěch Brázda (generátor nápadů)
Jan Staníček (analytik)
Gabriel Medoň (týmový spolupracovník)
Petr Kratochvíl (týmový spolupracovník)

Deklarace záměru


Hlavní jádro systému pro správu a evidenci zásilek, univerzálněji řešené pro různé druhy dopravy, zásilek i typ zákazníků. Minimálně s možností evidence, vkládání, rušení, vyhledávání zásilky, sledování jejího pohybu.
Bez interaktivního ovládacího rozhranní.

Odborný článek


Balíková expresní služba je založena na rozmístění sběrných míst po určitém, konečném území, ve kterých probíhá:
svoz balíků od odesílatelů
rozvoz balíků k příjemci
třídění balíků a jejich odeslání do jiného sběrnéObrázekho místa
Balíky jsou rozváženy nejprve z jednoho sběrného místa do jiného, přičemž při nakládání zásilky se klade důraz na co nejekonomičtější využití přepravního prostředku a minimální počet překladů zásilky v dalších sběrných místech. Ve sběrných místech jsou zásilky automatickým systémem přetříděny a lokálními transporty rozváženy k příjemcům. Při tomto rozvozu paralelně probíhá sběr balíků od odesílatelů, tyto jsou při návratu svezeny do sběrného místa, kde dochází k třídění a proces se opakuje.
Každý balík má minimálně svoje unikátní číslo v systému přepravy, povolené rozměry, popis, jednoznačně určeného odesílatele, adresáta, datum převzetí expresní službou a fakturu, kterou byla jeho přeprava zaplacena. U odesílatele a příjemce je třeba evidovat přinejmenším jeho jméno, adresu, kontaktní údaje. Odesílatel platí poplatek za přepravu balíku expresní službě, příjemce cenu zboží v balíku odesílateli. Dojde-li k platbě v hotovosti až při odběru balíku ze strany příjemce, exObrázekpresní služba tuto hotovost přebírá a bezhotovostním převodem ukládá na účet odesílatele. Nutnost evidovat v tomto případě daňový doklad od příjemce je zřejmá. K přepravě je využíváno transportů a to buď dálkových pro přepravu zásilek mezi sběrnými místy nebo lokálních pro přepravu zásilek mezi sběrným místem a příjemcem, případně mezi odesílatelem a sběrným místem. Trasa každého transportu se odvíjí od aktuálního stavu zásilek. Každý transport jednoznačně identifikovatelný osobním číslem řidiče, u kterého je dále evidováno minimálně jméno a kontaktní údaje.

Každou zásilku je umožněno v pravidelných intervalech sledovat prostřednictvím systému GPS a tyto údaje aktualizovat v informačním systému.
Výstupem projektu nechť je jádro informačního systému, které umožňuje zásilky přijímat, evidovat, sledovat - soubor funkcí, prostřednictvím kterých bude umožněna komunikace tohoto jádra s interaktivní uživatelskou nadstavbou, která není součástí totho projektu. Uživatelské role tímObrázek pádem neexistují, ty budou rozděleny až v aplikaci využívající služeb informačního systému.

Seznam užitých pojmů
sběrné místo – místo sloužící ke sběru, rozvozu, třídění zásilek z jiných sběrných míst
destinace – umístění příjemce
balík – nejmenší jednotka, kterou lze přepravit
zásilka – sdružení balíků se stejnou nebo podobnou destinací
odesílatel – zákazník dodávající balíku určený k přepravě expresní službě
příjemce – koncový zákazník, adresát balíku
transport – dopravní prostředek realizující přepravu zásilek, sdružující více balíků
přeprava – proces dopravování balíku od odesílatele k příjemci

Kontextový diagram


viz žlutý obrázek

Návrh realizace a požadavky


ro zadaný problém je nejlepším řešením mít alespoň dva servery, centrální databázový server a internetový server, pro internetový server nepotřebujeme nějak zvláštní konfiguraci, pro databázový server je ale pořádná konfigurace důležitá z důvodu spolehlivosti a předpokládaném nasazení s vyhlídkou do budoucnosti.

Hardware


Internetová část - konfigurace serveru SunFire V20z, řešení na bázi operačního systému Linux/BSD
SFV20z XATO Base System S9mkit (1 ks) | Sun Fire V20z 1U AMD-based server Base Chassis - Chassis, Motherboard, 2x10/100/1000 Ethernet ports, PCI-X slots, Internal AC Power Supply, no power cord; order Geo-specific X-option. Sol 9 4/04 x86 evaluation media kit. XATO ONLY
Opteron Model 250 CPU SFV20z (1 ks) | AMD Opteron Model 250 CPU for Sun Fire V20z, XATO only
2 GB memory (2x1GB) SF V20z (1 ks) | 2GB Memory kit DDR1/333 Registered ECC DIMMs (2x1GB) for Sun Fire V20z
73GB 15K RPM U320 HD SFV20z (1 ks) | 73GB 15K RPM Ultra320 SCSI Hard Drive for Sun Fire V20z. XATO only
DVD Drive/floppy drive SFV20z (1 ks) | DVD Drive/floppy drive for Sun Fire V20z. XATO
Slide rail kit SF V20z (1 ks) | Slide rail kit for Sun Fire V20z. Only fits in Sun Rack 900 or racks that have internal depth (post to post) of 27". Does not fit in any other type of rack.
CONTINENTAL EUROPEPWR CRD KT (1 ks) | Localized Power Cord Kit Continental Europe

Databázová část - konfigurace serveru SunFire V40z, řešení na bázi operačního systému Linux/BSD
Sun Fire V40z Base Chas XATO (1 ks) | Sun Fire V40z 3U AMD Opteron-based server chassis - chassis, motherboard, 2x10/100/1000 Ethernet ports, PCI-X slots, one internal AC power supply, no power cord, order 2 geo-specific X-options,Sol 9 x86 HW 4/04 evaluation media kit, XATO ONLY
2xOPT850, daughterboard SFV40z (2 ks) | Sun Fire V40z daughterboard with two AMD Opteron 850 CPUs with VRMs and heatsinks, Use only with matching CPU models, Expands dual CPU systems to quad CPU capability, XATO Only
4 GB memory (2x2GB) SFV40z (4 ks) | 4 GB Memory kit DDR1/333 Registered ECC DIMMs (2x2GB) for the Sun Fire V40z
73GB 15KRPM U320 HD SFV20zV40z (4 ks) | 73GB 15K RPM Ultra320 SCSI Hard Drive for Sun Fire V20z and V40z, XATO only
DVD-ROM/Floppy drive SFV40z (1 ks) | Slimline DVD-ROM/Floppy drive module for the Sun Fire V40z, XATO ONLY
Slide rail kit SF V20zV40z (1 ks) | Slide rail kit for Sun Fire V20z and V40z, Fits Sun and selected third-party racks, Replaces X9274A
760W Power Supply SFV40z (1 ks) | 760W Redundant Power Supply for the Sun Fire V40z, Used as spare as standard configuration has 2 PSUs
CONTINENTAL EUROPEPWR CRD KT (2 ks) | Localized Power Cord Kit Continental Europe

Software


Internetová část
operační systém | Linux/BSD (cena, spolehlivost)
server http | Apache (cena, škálovatelnost)
propojení internetové a databázové části | Java Servlet

Databázová část
operační systém | Linux/BSD (cena, spolehlivost)
databázový server | PostgreSQL (cena, rychlost)

Klient
prohlížeč WWW | libovolný, zaměření na Mozilla Firefox a Microsoft Explorer

Rozpočet projektu



Internetová část

SFV20z XATO Base System S9mkit 1 450.00 € / ks 1 ks 43 500,- Kč
Opteron Model 250 CPU SFV20z 1 050.00 € / ks 1 ks 31 500,- Kč
2 GB memory (2x1GB) SF V20z 880.00 € / ks 1 ks 26 400,- Kč
73GB 15K RPM U320 HD SFV20z 440.00 € / ks 1 ks 13 200,- Kč
DVD Drive/floppy drive SFV20z 191.42 € / ks 1 ks 5 740,- Kč
Slide rail kit SF V20z 147.25 € / ks 1 ks 4 420,- Kč
CONTINENTAL EUROPEPWR CRD KT 0.00 € / ks 1 ks 0,- Kč

Celkem: 4 758.67 € ~ 124 760,- Kč
Databázová část

Sun Fire V40z Base Chas XATO 5 900.00 € / ks 1 ks 177 000,- Kč
2xOPT850, daughterboard SFV40z 5 900.00 € / ks 2 ks 354 000,- Kč
4 GB memory (2x2GB) SFV40z 2 150.00 € / ks 4 ks 258 000,- Kč
73GB 15KRPM U320 HD SFV20zV40z 440.00 € / ks 4 ks 52 800,- Kč
DVD-ROM/Floppy drive SFV40z 176.70 € / ks 1 ks 5 300,- Kč
Slide rail kit SF V20z>V40z 147.25 € / ks 1 ks 4 420,- Kč
760W Power Supply SFV40z 490.00 € / ks 1 ks 14 700,- Kč
CONTINENTAL EUROPEPWR CRD KT 0.00 € / ks 2 ks 0,- Kč

Celkem: 28 873.95 € ~ 866 220,- Kč

Poznámka: Ceny jsou podle cenníku na DNS Slovakia propočítany v aktuálním kurzu Euro/Kč k datu 06.04.2005 podle Kurzů měn České národní banky a zaokruhleny.

Internetová část
operační systém Linux/BSD: zdarma
server http Apache: zdarma
propojení internetové a databázové části Java Servlety: zdarma

Databázová část
operační systém Linux/BSD: zdarma
SQL server PostgreSQL: zdarma

Klient
prohlížeč www: zdarma

Návrh rozpočtu podle Cocomo


K výpočtu nákladů na vývoj řešení našeho projektu jsme použili techniky Cocomo

Předpokládáme organický tým, co představuje malou skupinu špičkových programátorů, kteří velmi úzce spolupracují

Předpokládaná délka kódu je 50 000 řádků. Další předpoklady jsou samozřejmě zahrnuty v parametrech Cocomo modelu.

Parametry modelu Cocomo


size = 50000
mode = 1.05
rely = 1.00
data = 1.00
cplx = 1.00
time = 1.00
stor = 1.00
virt = 0.87
turn = 0.87
acap = 0.71
aexp = 0.91
pcap = 0.70
vexp = 0.90
lexp = 0.95
modp = 0.82
tool = 0.83
sced = 1.00

Odhad dle modelu Cocomo


Náročnost projektu: 38,76 člověk/měsíců
Předpokládaná doba: 10,04 měsíců
Počet programátorů: 4

Náklady na zaměstnance
Předpokládané náklady na jednoho programátora jsou 50 000,- Kč/měsíc

Potom celkové náklady na vývoj software jsou
4 * 10,04 * 50 000 = 2 008 000,- Kč

Jak již bylo řečeno, vývojové prostředky mají programátoři vlastní, tudíž je do nákladů nezapočítáváme.

Roční odhad nákladů na údržbu
M= roční náklady na údržbu v člověk/měsíc (čm)

Z= předpokládaný koeficient změny programu při údržbě

K= náklady na tvorbu v člověk/měsíc

Předpoklad Z = 10 % = 0,1
Udržba: M = Z * K = 0,1 * 74 = 7,4 člověk/měsíc

Počet pracovníků údržby: U = M / 12 = 0,6 = 1 člověk na poloviční úvazek
Plat: P = 15 000 Kč

Roční plat: P * 12 = 180 000 Kč

Celkové náklady


hardware: 990 980,- Kč
software: zdarma
vývoj: 2 008 000,- Kč
CELKEM:2 998 980,- Kč

Celkové náklady na informační systém byly odhadnuty na přibližnou částku 2 998 980,- Kč

ANALÝZA



Datový model


viz. obrázek datový model

Datový slovník


= skládá se z
+ a
() může chybět
{} opakování
n{}m opakování, nejméně n krát, maximálně m krát
[] jeden z možných
| oddělovač variant v []
číslice = [0|1|…|9]
celé číslo = {číslice}
desetinné číslo = {číslice}.číslice
písmeno = [velká|malá]
velká = [A|B|C|…|Z]
malá = [a|b|c|…|z]
znak = [písmeno|číslice]
den = [1|2|...|31]
měsíc = [1|2|...|12]
rok = [1900..2100]
ulice = 5{znak}
čp = celé číslo
město = {písmeno}
PSČ = 5{číslice}5
ID = 10{číslice}
jméno = 2{znak}
příjmení = 3{znak}
kontakt = 1{znak}
adresa = ulice + čp + město + PSČ
licence = 10{znak}10
datum = den.měsíc.rok
typ = {znak}
výška = desetinné číslo
šířka = desetinné číslo
Délka = desetinné číslo
Faktura = [a|n]

Seznam událostí


Příjímání zásilek
Evidování zásilek
Evidování odesílatele a příjemce
Sledování zásilek
Rozvoz zásilek D
Rozvoz zásilek M
Nakládání zásilek
Předávání zásilek
Třídění zásilek

Popis událostí


Příjímání zásilek | obsluha ve sběrném místě ( místo sloužící ke sběru, rozvozu a třídění zásilek ) přijme od odesílatele zásilku ( například balík ) a peníze za přepravu dané zásilky

Evidování zásilek | obsluha u každé zásilky ( balík, či sdružení balíků )uloží do informačního systému unikátní číslo dané zásilky, rozměry, popis, datum převzetí a další informace.

Evidování odesílatele a příjemce | obsluha také eviduje informace o odesílateli,to proto, kdyby zásilka nemohla být doručena, aby mohla zpět navrácena. Dále eviduje informace o příjemci. Eviduje se celé jméno, adresa bydliště a kontaktní údaje.

Sledování zásilek | pomocí informačního systému a naváděcího systému GPS může odesílatel, ale i příjemce neustále sledovat zásilku. Ke sledování je potřeba unikátní číslo balíku a přístup do systému.

Rozvoz zásilek D | pomocí transportéru se zásilky rozváží ze sběrného místa do okolí a předávají se příjemci – lokální rozvážení

Rozvoz zásilek M | pomocí transportéru se zásilky převáží z jednoho sběrného místa do druhého, kde dochází ke třídění – dálkové rozvážení

Nakládání zásilek | obsluha ze sběrného místa naloží do transportéru ty zásilky, které jsou určeny pro přepravu na další sběrné místo, nebo pokud se jedná o lokální transport, tak náloží ty zásilky, kterou jsou určeny přímo k předání příjemci

Předávání zásilek | obsluha transportéru při lokálním rozvážení předává zásilky příjemcům, dojde-li k platbě v hotovosti, obsluha peníze vybere, vyplní náležité informace, vystaví daňový doklad a pak dané peníze ukládá na účet odesílatele

Třídění zásilek | v každém sběrném místě, zaměstnanci roztřídí všechny zásilky a to následovně:
zásilky pro lokální transport
zásilky pro dálkový transport

Funkční model


Zákazník:
Odesílatel
zákazník zasílá svůj požadavek k odeslání zasilky přes webové rozhraní(možnost bezhotovostního převodu), které komunikuje se systémem
pro provedení požadavku musí být zaregistrován
při registraci se odešle formulář obsahující osobní údaje (jméno, příjmení, adresu odesilatele, adresu příjemce, kontakt na odesilatele, kontakt na příjemce) a také údaje o zásilce (rozměry, číslo zásilky, datum, cena zásilky, číslo faktury, hmotnost)
operátor potvrdí příjem požadavku zákazníkovi a sdělí příjezd zásilkové služby, cenu pro případ platby v hotovosti
řidič zásilkové služby vystaví potvrzení o přijetí zásilky a financí, předá identifikační číslo zásilky, sloužící k sledování polohy zásilky
Příjemce
příjemci je operátorem sdělena doba a podrobnosti o zásilce(rozměr,hmotnost,cena,doručení zásilky), sdělí také identifikační číslo zásilky

Operátor:
Odesílatel
kontrola údajů o nových zakázkách, kontaktování zákazníka-odesilatele sdělení příjezdu zásilkové služby, sdělení ceny pro případ hotovostní platby
při neplátné zakázce ji ruší, má práva také změnit údaje týkající se zakázky(např. po sdělení zpřesněných informací od zákazníka)
možnost vytvořit nové zakázky na základě informacích jiných než z databáze(požadavek telefonem,faxem,emailem,osobním jednáním)
přidělí řídiči lokálního transportu zakázku
plánovaní dálkových transportů, přidělení řidiče
možnost zjištění aktuální pozice zásilky
kontaktování zákazníka-příjemce sdělení informací o zásilce,doby doručení zásilky,vytvoření účtu zákazníka pro možnost sledování zasilky

Řidič:
Lokální transport
vyzvedne zásilku na pokyn operátora u zákazníka, předa potvrzení o přijetí zásilky, sdělí identifikační číslo,ověří údaje o zásilce
odveze zásilku na sběrné místo, potvrdí předání zásilky na sběrné místo
Dálkový transport
vyzvednutí zásilky ze sběrného místa a převoz na vzdálené sběrné místo, potvrzení o předání zásilky

Administrátor:
Odesílatel
plná práva s prací nad databází
přidávání řidičů, operátorů,zásilek do databáze
editace řidičů, operátorů,zásilek v databázi
mazání řidičů, operátorů,zásilek v databázi

Rizika


Rizika velikosti produktu
Podceněná velikost databáze, Podceněný počet uživatelů
zmírnění : rezerva při odhadu velikosti databáze, vzít v úvahu možnosti následného použití
monitorování : průběžná kontrola velikosti, včasná a pružná reakce, dostatečné testování
management : využití externích pracovníků, posunutí termínu odevzdání, zavedení skupin uživatelů

1. Rizika obchodního dopadu
Nedostatečná kvalifikace koncových uživatelů
zmírnění : maximální jednoduchost uživatelského rozhraní
monitorování : dostatečné testování, návrh GUI z pozice laika
Nízký odhad nákladů na vývoj
zmírnění : řádná analýza, rezerva, použití free produktů zdarma
monitorování : průběžné vyhodnocování nákladů, sledovat dodržení dílčích rozpočtů
management : použití free produktů zdarma, nebo již existujících dílčích produktů, domluva se zákazníkem
Pozdní dodání
zmírnění : motivace členů týmu, sestavení důkladného harmonogramu, časová rezerva
monitorování : průběžně sledovat dodržování harmonogramu
management : při menším skluzu více motivovat členy týmu, zvýšit počet zaměstnanců, zvětšit jejich efektivitu; při velkém skluzu domluvit pozdější odevzdání nebo žádat pomoc od třetí strany

2. Rizika spojená se zákazníkem
Změna rozsahu požadavků na projekt
zmírnění : při zadání projektu mít k dispozici dostatečně přesný odhad rozsahu, popř. smluvně dohodnout rozsah předem
management : po dohodě se zákazníkem najít kompromisní řešení, flexibilní úseky opravit
Změna požadavků zákazníka
zmírnění : průběžné konzultace se zákazníkem, testy za jeho účasti, vše, aby odlišnosti byly zjištěny co nejdřív
monitorování : sledovat a požadovat zpětnou vazbu od zákazníka
management : zanalyzovat se zákazníkem problematické úseky, obhájit své řešení

3. Procesní rizika
Nedostatečná dokumentace produktu
zmírnění : autor si vždy příslušnou část své práce povinně zdokumentuje, přidělení této činnosti jinému pracovníkovi, který je s danou problematikou seznámen
monitorování : průběžně sledovat dodržování povinnosti dokumentace, důraz klást především na UR
management : dodatečně zdokumentovat potřebné fragmenty, implementovat jistý modul znova na základě předem dodané dokumentace
Nedostatečné testování
zmírnění : navrhnout dostatečné testy, testovat každý jednotlivý úsek, držet se plánu
monitorování : náhodně zjištěné nedostatky, při testování globálnějšího celku vyplavou na povrch nedostatky z dílčích testů
Odklon od požadavků
zmírnění : konzultace dílčích úseků se zákazníkem
monitorování : sledovat a požadovat zpětnou vazbu od zákazníka
management : zanalyzovat se zákazníkem problematické úseky, obhájit své řešení nebo odklon eliminovat

4. Technologická rizika
Nedostatečná nástroje pro podporu testování, pro řízení a konfiguraci
zmírnění : předem včas vybrat potřebné nástroje, opatřit je, zaškolit pracovníky
monitorování : průběžně sledovat práci na projektu, kontrolovat dodržování harmonogramu
management : navrhnout a vytvořit vlastní nástroj, použít obdobný, pozměnit část projektu pro práci s nástrojem, který dostupný je (je-li to možné)

5. Rizika vývojového prostředí
Nedostupný help pro používání nástrojů
zmírnění : používat již známé nástroje, se kterými umějí pracovníci zacházet
monitorování : průběžně sledovat práci členů týmu
management : použít jiný-obdobný nástroj již prakticky používaný nebo s dostatečnou nápovědou
Členové týmu neumí používat potřebné nástroje
zmírnění : dostatečné školení pracovníků, výběr vhodných pracovníků, výběr vhodných nástrojů, vhodné přidělení úkolů a prostředků
monitorování : průběžně sledovat práci spolupracovníků, monitorovat stížnosti
management : využít jiných pracovníků nebo jiných nástrojů, dodatečně vyškolit
Potřebné nástroje nejsou k dispozici
zmírnění : plánovat a s dostatečným předstihem pořizovat nástroje
management : navrhnout a vytvořit vlastní nástroj, použít obdobný, pozměnit část projektu pro práci s nástrojem, který dostupný je (je-li to možné)

6. Rizika spojená s velikostí týmu
Nedostatečná kvalifikace a znalosti členů týmu
zmírnění : vhodný výběr pracovníků s požadovanou kvalifikací a znalostmi, vytvoření plánu a jeho dodržení
monitorování : zaznamenání jakéhokoliv zpoždění, neodevzdání práce člena týmu, monitorovat stížnosti
management : využít jiných pracovníků nebo jiných nástrojů, dodatečně vyškolit
Nedostatečný počet členů týmu
zmírnění : vhodné rozdělení rolí a úkolů v týmu, zajistit dobré pracovní podmínky, motivovat dostatečně ohodnotit
monitorování : sledování efektivity a vytíženosti pracovníků, sledování atmosféry v týmu
management : zlepšit pracovní prostředí, přijmout další kvalifikované odborníky
Úbytek pracovníků
zmírnění : dostatečné motivování, vytvoření dobrých pracovních podmínek, komunikace s pracovníky
monitorování : průběžně sledovat atmosféru na pracovišti, spokojenost zaměstnanců
management : zajistit náhradu jinými pracovníky, včas je zaškolit v dané problematice

Kompletní prezentace včetně všech obrázků. Open Office prezentace




Vloženo: 15.02.2007 14:18
Přečteno:3619
Autor: teamová spolupráce

Hlasů: 4 Hodnocení(jako ve škole): 2.25
 

Komentáře (1)

   -     Nový Komentář
Autor:
 Mirda
Datum:
  11.11.2014 10:52:16
reagovat

Díky za vyčerpávající info. Setkal jsem se s novou přepravní službou Europřeprava. Jaké jsou vaše zkušnosti s ní?


http://www.europreprava.cz/