Dokumentace k projektu vypracovaného pro Sprinx Systems, a.s.
MIS – Manažerský Informační Systém
VŠE – Vyšší odborná škola informačních služeb Pacovská 350 140 00 Praha 4
Akademický rok: 2005/2006
Tománek Petr Machová Marta Burian Petr Dvořáčková Lucie Kořínek František Přikryl Jan
Zadavatel Zadavatelem je Sprinx Systems a.s1. Společnost byla založena v roce 1996 jako technologická firma zaměřená na poskytování služeb spojených s návrhem, vývojem a provozem intranetových informačních systémů, dodávkami aplikací pro řízení zákaznických vztahů (CRM), řízení projektů, distribučních systémů a řešení bezpečnosti. Řešení společnosti
SPRINX Systems používají například AuTec Group a.s. (výhradní dovozce vozů značky BMW v ČR), Toyota Motor Czech spol. s r.o., Kooperativa, pojišťovna, a.s. či Škoda Auto a.s.
Dnes je společnost SPRINX Systems předním dodavatelem řešení v oblasti Intranetu a ecommerce aplikací budovaných na technologiích společnosti Microsoft®. SPRINX Systems je držitelem exkluzivního certifikátu Microsoft Gold Certified Partner for Business
Process and Integration Solutions and Networking Infrastructure Solutions. Vedle výše uvedených řešení zajišťuje SPRINX Systems pro své zákazníky i vývoj a provoz WWW prezentací a e-commerce aplikací.
Společnost SPRINX Systems je autorem portálu ATLAS.CZ a exkluzivním partnerem MSN pro ČR a SR.
SPRINX Systems má certifikát kvality ČSN EN ISO 9001:2001g
1
http://www.sprinx.cz/
-1-
Zadání a cíl projektu (deliverables) Stručné zadání pro projekt MIS2 MIS bude poskytovat datové analýzy a statistiky těmto skupinám uživatelů: • finanční oddělení (FO) • výrobní oddělení (VO) • vedení firmy (MGMT) Jednotlivým skupinám budou k dispozici následující analýzy a statistiky 1. FO přehled neuhrazených faktur došlých přehled neuhrazených faktur odeslaných přehled dlužníků přehled věřitelů 2. VO náklady na provedenou práci podle zákazníků objem provedené práce podle pracovníků 3. MGMT vývoj obratu (denně emailem) vývoj výdajů vývoj zisku (vč. drillthrough) efektivita podle zákazníků další reporty o efektivitě (data mining) Reporty budou dostupné prostřednictvím Internet Exploreru, organizovány budou v jednoduché a přehledné webové struktuře. Určené reporty budou doručovány emailem. Skupina MGMT má přístup ke všem reportům, VO a FO pouze ke „svým“ reportům.
2
Zadání, které jsme obdrželi od zadavatele
-2-
Harmonogram Navrhnutý harmonogram zadavatelem dead line činnost 10.3.2006 vytvořit podrobnější zadání+návrh struktury všech reportů 17.3.2006 dokončit návrh DB 7.4.2006 připravit reporty 5.5.2006 dokončit práce (reporty, webové rozhraní)+prezentace výsledků projektu
Skutečný harmonogram činností na projektu datum
co se dělo místo výběr projektu z několika návrhů, zvolen vedoucí a zástupce 15.2.2006 teamu škola 22.2.2006 návštěva zadavatelského pracoviště, první kontakt se zadavateli Sprinx 1.3.2006 koncepce relační databáze škola 3.3.2006 Sprinx 8.3.2006 minisemináře k problematice řešené v projektu škola 10.3.2006 konzultace navržených relačních tabulek, návrh struktury analýzy Sprinx 15.3.2006 změny v DB, pokračování v analýze škola 17.3.2006 dokončení analýzy škola 20.3.2006 první kontrolní den škola 22.3.2006 předělávání DB podle vyjádření zadavatele (kontakt e-mailem) škola 23.3.2006 ujasnění některých sporných otázek, změny v DB Sprinx 27.3.2006 přednáška o asp.net - p. Horký Sprinx 28.3.2006 naplnění DB demodaty 4.4.2006 korekce demodat v DB Sprinx 10.4.2006 vytvoření koncepcí OLAP kostek-pan Tomčík Sprinx 24.4.2006 OLAP, asp.net, funkčnost Sprinx 2.5.2006 vytváření reportů Sprinx 9.5.2006 práce na reportech, domluvení odevzdání projektu Sprinx 12.5.2006 odevzdání dokumentace a projektu Sprinx
-3-
kdo se účastnil všichni všichni všichni MM, JP, PT všichni (-LD) MM, PT, PB, JP všichni (-PB) všichni (-PB) všichni (-PB) všichni MM, PT všichni všichni LD, PT, FK PT PT, FK všichni
Podíl členů týmu na řešení projektu Tománek Petr
Dvořáčková Lucie
tvorba relační databáze
tvorba relační databáze
organizace činnosti týmu
pomoc při tvorbě dokumentace
tvorba OLAP
zpracování grafického návrhu
tvorba reportů Kořínek František Machová Marta
tvorba relační databáze
tvorba relační databáze
tvorba asp stránek
evidence práce týmu
tvorba alternativního grafického rozhraní
tvorba dokumentace naplnění db
Přikryl Jan tvorba relační databáze tvorba asp stránek
Burian Petr tvorba relační databáze převod grafického návrhu stránek do html zkombinování asp a html rozhraní
-4-
problémy, s nimiž se tým setkal při řešení projektu • • •
• • •
kompetenční neshody ze strany zadavatele – jednání se účastnili různé osoby, díky čemuž se různily názory při konzultaci návrhu databáze (ve fázi analýzy projektu) špatné časové rozvržení – nedodrželi jsme harmonogram prací, jelikož zejména závěrečné fáze trvaly déle, než jsme předpokládali => nedostatek času + problém shodnout se na termínech schůzek (každý má jiné závazky) neefektivní komunikace v týmu o ze strany vedení - časové rozvržení prací, delegování na jednotlivé členy, nedůslednost ohledně zadávání úkolů a zpětné vazby (konzultace řešeného problému) o ze strany ostatních členů týmu – díky zhoršené komunikaci mírná laxnost a nezájem; ohledně komunikace přes e-mail si členové týmu dávali na čas problémy se softwarovým vybavením, zhoršená kompatibilita sw počáteční naprostá neznalost vývojového prostředí asp.net a samotného jazyka C#, odlišná syntaxe, malá rozšířenost, těžko dostupné zdroje jazyka C# + problémy spojené s malou zkušeností práce v týmu
přínos projektu pro členy týmu • • • •
• •
naučili jsme se práci na reálném projektu, zodpovědnost za svůj díl práce hlavním přínosem především byla v možnosti poznat, jak lze teoretické znalosti, které jsme se naučili ve škole, využít v „praxi“ (hlavně se jednalo o databázovou část a programování), dále jsme se mohli přesvědčit o výhodách ale i úskalích práce v týmu
procvičení práce s databázemi mezi nově nabytými znalostmi ocenili někteří členové týmu nahlédnutí (byť nepříliš hluboké) pod pokličku asp.net v do té doby pro ně neznámého jazyce C#, zaujaly nás též široké možnosti využití programu Microsoft Visual Web Developer 2005, ve kterém někteří členové týmu programovali asp.net části projektu
tvorba jednoduchých reportů z olapu pomocí MS OWC PivotTable® každý člen týmu se účasnil více úkolů, což nám otevřelo další možnosti do praxe
-1-
Průběh řešení projektu 1. Seznamovací schůzka - seznámení se s předmětem činnosti firmy - obdrželi jsme zadání projektu a harmonogram prací 2. Analýza3 • • • -
Struktura databáze hrubý náčrt relačních tabulek vytvoření diagramu tabulek průběžné úpravy a zdokonalování návrhu databáze Reporty písemný návrh reportů slovní popis toho, jaké výstupy konkrétní oddělení uvidí Rozhraní grafický návrh uživatelského rozhraní nákresy reportů
3. Vývoj • • •
Tvorba databáze4 Naplnění databáze5 Vytvoření OLAP6 -OLAP kostky jsou provozovány na MS OLAP Serveru, který je součástí MS SQL Serveru, který byl firmou Sprinx uvolněn k používání. Uložení dat v kostce je metodou MOLAP. Reporty jsou vloženy do stránek jako objekty OWC (Office Web Component) – tzn. jako excelovská kontingenční tabulka a jako datový zdroj je určena v následném skriptu OLAP kostka.
•
Vytvoření uživatelského rozhraní7
3
analýza je součástí technické dokumentace I zdrojový kód vytvoření db je součástí technické dokumentace VI 5 náhled naplněné db viz. technická dokumentace VII 6 náhled skriptu OLAP kostky je součástí dokumentace VIII 7 náhled uživatelského rozhraní projektu IX 4
-2-
Technická dokumentace projektu Analýza 1) struktura databáze – navržené relační tabulky 2) reporty – popis reportů, kterému uživateli se zobrazí která data a ve které formě 3) rozhraní – vizuální návrh jednotlivých obrazovek, jak je každý uživatel vidí 1) STRUKTURA DATABÁZE faktury id_faktury
obchodni_partneri
cislo_faktury
id_partnera
dodavatel
nazev
odberatel
adresa
datum_vystaveni
mesto
datum_splatnosti
ico
datum_zaplaceni cena
prace id_cinnosti id_faktury datum pocet_hodin id_zam
zamestnanci
cinnosti
id_zam
id_cinnosti
jmeno
nazev
prijmeni
cena_za_hodinu
oddeleni
2) REPORTY 1. finanční oddělení a) přehled neuhrazených faktur došlých - pracovníkovi finančního oddělení se zobrazí tabulka, kde nalezne údaje: • číslo faktury • informace o dodavateli – název, IČO • částka • datum splatnosti • datum vystavení • počet dnů zbývajících do splatnosti b) přehled neuhrazených faktur odeslaných
-I-
• číslo faktury • informace o odběrateli – název, IČO • částka • datum splatnosti • datum vystavení • počet dnů zbývajících do splatnosti c) přehled dlužníků • název dlužníka • částka • ičo dlužníka • datum nejstarší nezaplacené faktury d) přehled věřitelů • název věřitele • částka • datum nejstarší nezaplacené faktury 2. výrobní oddělení a) náklady na provedenou práci podle zákazníků - zaměstnanci výrobního oddělení uvidí v tabulce tyto data • jméno zákazníka • číslo zákazníka • cena – součet všech nákladů • detail nákladů – po kliknutí zaměstnanec uvidí konkrétní činnosti b) objem provedené práce podle pracovníků • jméno pracovníka • počet hodin celkově – po kliknutí zaměstnanec uvidí kolik hodin zaměstnanec pracoval na jakém typu práce • výběr časového období, za které se bude sledovat objem práce 3. vedení firmy a) vývoj obratu - vedení firmy bude dostávat denně e-mail o obratu • obrat – po kliknutí obrat podle zákazníků • období b) vývoj výdajů • výdaje – po kliknutí detail výdajů • období c) vývoj zisku • zisk – po kliknutí detail • období d) efektivita e) další reporty 3) DESIGN – VIZUÁLNÍ NÁVRH JEDNOTLIVÝCH REPORTŮ A ROZHRANÍ
- II -
REPORTY
- III -
UŽIVATELSKÉ ROZHRANÍ
odhlášen
nepřihlášen
přihlášen
- IV -
Zdrojový kód pro statickou část uživatelského rozhraní jsem vytvářela na základě konkrétního grafického návrhu. Při práci jsem využila znalost jazyka HTML a CSS získanou v průběhu studia na VOŠIS. Pro práci s jazykem HTML jsem vhodným nástrojem shledala freewareový program HTML-Kit verze 5.1, kaskádové styly jsem upravovala v editoru Top Style Lite 2.5 společnosti Bradsoft. Výsledek práce jsem zobrazovala v internetovém browseru Microsoft Internet Explorer verze 6.0 a Firefox 1.07. Grafickou podobu uživatelského rozhraní jsem navrhovala ve vektorovém editoru Corel Draw 8. Při její realizaci jsem se snažila uplatnit znalosti a zásady osvojené v průběhu studia předmětu Počítačová grafika a HTML. Cílem mé práce bylo vytvořit grafickou reprezentaci 3 stavů, a to „uživatel nepřihlášen“, „uživatel přihlášen“ a uživatel odhlášen“. Konečná podoba musela především korespondovat s účelem, ke kterému bylo rozhraní vytvářeno, působit jasně a přehledně a maximálně sdělně. Při návrhu grafické podoby reportu jsem vycházela ze zkušeností s php-mysql aplikacemi, které jsou běžně k viděni na internetu, a dále z požadavku na stručnost, sdělnost a interaktivitu. Pro svou práci jsem zvolila trial verzi programu Microsoft Visio 2003
-V-
Zdrojový kód tvorby databáze – SQL (část zdroj.kódu) CREATE TABLE [zamestnanci] ( [id_zam] [smallint] NOT NULL , [jmeno] [varchar] (50) COLLATE Czech_CI_AS NOT NULL , [prijmeni] [varchar] (50) COLLATE Czech_CI_AS NOT NULL , [id_oddeleni] [smallint] NOT NULL , [cena_za_hodinu] [float] NOT NULL , CONSTRAINT [PK_zamestnanci] PRIMARY KEY CLUSTERED ( [id_zam] ) ON [PRIMARY] , CONSTRAINT [FK_zamestnanci_oddeleni] FOREIGN KEY ( [id_oddeleni] ) REFERENCES [oddeleni] ( [id_oddeleni] ) ) ON [PRIMARY] GO CREATE TABLE [zakazky] ( [id_zakazky] [smallint] NOT NULL , [popis] [nvarchar] (50) COLLATE Czech_CI_AS NULL , CONSTRAINT [PK_zakazky] PRIMARY KEY CLUSTERED ( [id_zakazky] ) ON [PRIMARY] ) ON [PRIMARY] GO CREATE TABLE [user] ( [id_usr] [smallint] NOT NULL , [jmeno] [nvarchar] (50) COLLATE Czech_CI_AS NOT NULL , [nick] [nvarchar] (50) COLLATE Czech_CI_AS NOT NULL , [heslo] [nvarchar] (50) COLLATE Czech_CI_AS NOT NULL , [id_role] [smallint] NOT NULL , CONSTRAINT [PK_user] PRIMARY KEY CLUSTERED ( [id_usr] ) ON [PRIMARY] , CONSTRAINT [FK_user_role] FOREIGN KEY ( [id_role] ) REFERENCES [role] ( [id_role] ) ) ON [PRIMARY] GO CREATE TABLE [role] ( [id_role] [smallint] NOT NULL , [nazev] [nvarchar] (50) COLLATE Czech_CI_AS NOT NULL , CONSTRAINT [PK_role] PRIMARY KEY CLUSTERED ( [id_role] ) ON [PRIMARY] ) ON [PRIMARY]
Přílohy Slovníček frekventovaných pojmů ASP.NET ASP.NET je nadstavba .NET Frameworku firmy Microsoft pro tvorbu webových aplikací a služeb. Je nástupcem technologie ASP (Active Server Pages) a přímým konkurentem JSP (Java Server Pages). Tato technologie dnes nabízí vysoký komfort při vývoji webových aplikací. Díky tomu lze vyvíjet aplikace s překvapivě bohatou funkčností, bez nutnosti psát mnoho řádků kódu. Business Intelligence (BI) Business Intelligence. Soubor nástrojů a postupů umožňující efektivní analýzu obchodních dat. CSS Zkratka z Cascading Style Sheets nebo-li Kaskádové styly. Definice popisující vzhled HTML dokumentu v prohlížeči či při tisku. Styly se k dokumentu připojují nejčastěji jako externí soubor. Data Mining (Dolování, vytěžování dat) spočívá v pokročilé analýze velkého množství dat, jejímž cílem je zjistit jinak nepostřehnutelné vnitřní souvislosti a trendy. Příklady častých aplikací jsou segmentace zákazníků, analýza a predikce odchodu zákazníků ke konkurenci, analýza chování návštěvníků webových stránek, detekce podvodného chování a analýza rizik. Data Mining se využívá také k přesnému zacílení marketingových kampaní, podpoře křížového prodeje (cross-selling) nebo vývoji nových produktů. Databáze 1. soubor dat 2. program zajišťující vyhledávání, porovnávání, třídění dat Databáze multidimenzionální Databáze, kde jsou data uložena na principu vícerozměrové matice. Hodnoty jsou přístupné přímo pro danou kombinaci prvků dimenzí. Databáze relační Databáze, kde jsou data uložena v jednotlivých tabulkách. Tabulka (relace) je tvořena záznamy s jednotnou strukturou polí. Pole (atributy) jsou atomické. Tabulky mohou být propojeny (joins).
A
Přílohy Datový sklad Komplexní data uložená ve struktuře, která umožňuje efektivní analýzu a dotazování. Data do datového skladu jsou čerpána z primárních informačních systémů a dalších zdrojů (často je také používána anglická zkratka DW – Data Warehouse). Dimenze Základní entity datového modelu, které určují z jakých pohledů bude možno na data nahlížet (např. čas, produkty, provozovny apod.). Drill-down - rozpad Postup při analýze, kdy zobrazujeme detailnější data - zpravidla pro nižší úroveň hierarchie některé z dimenzí. Technologie drill-down umožňuje zkoumat detailně zkoumat konkrétní údaj a zobrazenit podklady, z nichž se ta která informace skládá a na nichž závisí. Drill-up - sloučení Postup při analýze, kdy zobrazujeme obecnější data - zpravidla posunem na vyšší úroveň hierarchie některé z dimenzí. Filtry Nastavení podmínek datového řezu. Filtr definuje, pro které prvky dimenzí budou zobrazena data GUI - Graphical User Interface Grafické uživatelské rozhraní. Termín totožný s GUE. Klíč primární Pole nebo kombinace více polí, které jednoznačně určují záznam v databázové tabulce. Klíč cizí Pole v databázové tabulce, jehož hodnoty jsou tvořeny hodnotami primárního klíče jiné tabulky. Klíč složený Je klíč databázové tabulky tvořený více poli.
B
Přílohy MIS - Manažerský infromační systém MIS sám o sobě je sada ukazatelů a výpočtů v určitém multidimenzionálním prostoru, které mají sloužit k informování a podpoře rozhodování managementu podniku. MySQL Jedná se o jednoduchou multiplatformní databázi s mnoha různými funkcemi. Dnes je používána zejména pro tvorbu webových stránek. Společně s jazykem PHP se tak jedná o velice populární a pohodlné programátorské řešení k tvorbě webů. OLAP Způsob analýzy při kterém procházíme daty a podle zjištěných informací volíme nové pohledy, vysvětlující a doplňující zjištěné hodnoty a trendy.
HOLAP Hybrid On Line Analytical Processing. Analýza OLAP, při které jsou data uložena z části v relační a z části v multidimenzionální databázi. MOLAP Multidimensional On Line Analytical Processing. Analýza OLAP, při které jsou data uložena v multidimenzionální databázi. ROLAP Relational On Line Analytical Processing. Analýza OLAP s přímým přístupem do relační databáze.
OLAP kostka Označení pro dimenzionální databázi (nebo její princip). Kostka je realizována buď prostřednictvím multidimenzionání databáze nebo zvláštní struktury relační databáze. Pivotní - kontingenční tabulka Jedná se o interaktivní tabulku, která rychle kombinuje a porovnává velká množství dat. Řádky a sloupce tabulky lze otáčet a zobrazit tak různé souhrny zdrojových dat. V kontingenční tabulce lze také zobrazit podrobná data oblastí, které vás zajímají.
C
Přílohy Report Druh výstupu databázových systémů, do kterého se vypisují pouze určené, definované položky z databáze. SQL Structured Query Language. Standard jazyka pro práci s relačními databázemi. Jedná se o strukturovaný dotazovací jazyk, jímž se pomocí klienta ptáme SQL serveru a ten následně při správně položeném dotazu odpoví. Odpověď je formulována většinou do tabulky o jednom, více či dokonce žádném řádku (to pokud dotazu nevyhoví ani jedna položka). Z tabulky pak můžeme pomocí skriptů vyextrahovat potřebná data a dále je používat. User interface uživatelské rozhraní, část programu, starající se o styk s uživatelem (vstup z klávesnice, ovládání myší a především zobrazení na obrazovce a jeho způsob). V současné době jsou velmi populární rozhraní viz heslo GUI. Tabulka dimenze Tabulka v relační databázi dimenzionálního modelu obsahující popis prvků dimenzí. Její primární klíč je cizím klíčem do příslušných tabulek faktů. Tabulka faktů Tabulka v relační databázi dimenzionálního modelu, v které jsou uloženy hodnoty ukazatelů pro různé kombinace prvků dimenzí.