Bioadresář Specifikace požadavků
Verze
Datum
Projektový tým
1
14. 10. 2010
Bc. Martin Ventruba Bc. Ondřej Veselý Bc. Stratos Zerdaloglu
Obsah 1.
Základní informace ........................................................................................................... 3
1.1. Účel .................................................................................................................................... 3 1.2. Základní popis systému ................................................................................................... 3 1.3. Konvence dokumentu a použité termíny......................................................................... 3 1.4. Reference .......................................................................................................................... 4 1.5. Organizace dokumentu .................................................................................................... 5 2.
Souhrnný popis................................................................................................................. 5
2.1. Účel a využití software...................................................................................................... 5 2.2. Uživatelé ............................................................................................................................ 5 2.3. Přehled hlavních funkcí .................................................................................................... 5 2.4. Omezující podmínky ......................................................................................................... 5 2.5. Provozní požadavky.......................................................................................................... 5 2.6. Dokumentace .................................................................................................................... 6 3.
Funkční požadavky ........................................................................................................... 6
3.1. Veřejná část: ..................................................................................................................... 6 3.2. Administrativní rozhraní: .................................................................................................. 7 4.1. Uživatelské rozhraní ......................................................................................................... 8 4.2. HW, SW a komunikační rozhraní systému ...................................................................... 8 4.3. Výkonnostní požadavky ................................................................................................... 8 4.4. Bezpečnostní požadavky ................................................................................................. 8 4.5. Požadavky na kvalitu ........................................................................................................ 8 5.
Přílohy specifikace požadavků ........................................................................................ 9
2
1. Základní informace 1.1. Účel Účelem tohoto dokumentu je popis funkčních a nefunkčních požadavků webové aplikace s názvem Bioadresář. Specifikace požadavků je určena členům projektového týmu, kteří budou Bioadresář implementovat a ověřovat správný chod systému.Všechny níže uvedené požadavky mají vysokou prioritu, nebude-li tomu napsáno jinak. 1.2. Základní popis systému V současné době již existuje funkční prototyp aplikace. Prototyp má však celou řadu funkčních a designových nedostatků, které je třeba odstranit. Kompletní refaktoring systému se nabízí jako jedno možné řešení, lepší varianta však bude začít úplně od začátku za využití stávajícího datového modelu. Výsledný produkt bude sloužit jako ucelená evidence ekofarem, obchodů a e-shopů s biopotravinami či bioklubů ve zvoleném kraji. Rovněž uživatelům nabídne snadné vyhledávání podle krajů a produktů se zobrazením výsledku na mapě 1.3. Konvence dokumentu a použité termíny Konvence dokumentu Za účelem zjednodušení četby tohoto dokumentu budou použity následující konvence pro rozlišení částí textu: Příklad textu
Význam
tučná kurzíva
Důležitá upozornění.
Kurzíva
Pouhou kurzívou budou psány názvy použitých technologií, databází, funkcí a jazyků.
Tabulka 1 Konvence
Použité termíny Jednoduché vysvětlení často používaných pojmů: Výraz
Vysvětlení
SQL injection
Technika napadení databázové vrstvy programu vsunutím kódu přes neošetřený vstup a vykonání vlastního, samozřejmě pozměněného, SQL dotazu.
3
Výraz
Vysvětlení
PHP injection
Jedná se o zneužití PHP funkce include(), díky ní může útočník na server uploadovat svůj skript. Útočník tak může nad webem získat silnou kontrolu - mazat, editovat, přidávat soubory atd.
ERD
Pro grafické vyjádření datového modelu se nejčastěji používají entitně relační diagramy, neboli ERD (EntityRelationship Diagram). Tyto diagramy znázorňují datové objekty a jejich vzájemné vztahy.
CSS
Kaskádové styly jsou jazyk pro popis způsobu zobrazení stránek napsaných v jazycích HTML, XHTML nebo XML.
XHTML
Značkovací jazyk pro tvorbu hypertextových dokumentů v prostředí WWW vyvinutý W3C.
PHP
Skriptovací programovací jazyk, určený především pro programování dynamických internetových stránek.
SQL
Standardizovaný dotazovací jazyk používaný pro práci s daty v relačních databázích.
MySQL
Databáze s níž komunikace probíhá pomocí jazyka SQL. Pro svou snadnou implementovatelnost, výkon a především díky tomu, že se jedná o volně šiřitelný software, má vysoký podíl na v současné době používaných databázích.
Kohana
Open source framework pro PHP verze 5.
framework
Softwarová struktura, která slouží jako podpora při programování, vývoji a organizaci jiných softwarových projektů.
API
Jde o sbírku procedur, funkcí či tříd nějaké knihovny (ale třeba i jiného programu nebo jádra operačního systému), které může programátor využívat.
Tabulka 2 Termíny
1.4. Reference Malo, Roman. Specifikace požadavků - struktura, https://is.mendelu.cz/auth/dok_server/slozka.pl?id=47046;download=65381 Hnutí DUHA, http://hnutiduha.cz/ 4
1.5. Organizace dokumentu Dokument vychází ze standardu ANSI/IEEE číslo 830-1984 a je rozdělen do 5 kapitol. Jednotlivé kapitoly se zaměřují na dílčí otázky vývoje systému a slouží jako podklad pro návrh a implementaci aplikace: kapitola Základní informace slouží jako úvod do problematiky. kapitola Souhrnný popis nám dává všeobecný popis o funkčnosti systému, profilu uživatele, omezeních pro vývojový tým či požadavcích na dokumentaci. kapitola Funkční požadavky na specifikuje identifikované požadavky na funkcionalitu systému. kapitola Nefunkční požadavky specifikuje požadavky týkající se uživatelského rozhranní, HW, SW a komunikačního rozhranní systému, požadavky na výkon, bezpečnost, kvalitu a zajištění dat. kapitola Přílohy specifikace požadavků obsahuje entity-relationship diagram (ERD) navrhované aplikace, včetně krátkého popisu.
2. Souhrnný popis 2.1. Účel a využití software Webová aplikace Bioadresář je součástí informačního systému Hnutí DUHA. Produkt slouží jako ucelená evidence ekozemědělců, obchodů a e-shopů s biopotravinami a bioklubů v rámci České republiky. Rovněž umožňuje vyhledávání dle zadaných kritérií. 2.2. Uživatelé V systému budou tři skupiny uživatelů (jinými slovy to znamená, že uživatelé mohou nabýt tří různých typů oprávnění): široká veřejnost, zaměstnanci Hnutí Duha a producenti. 2.3. Přehled hlavních funkcí Prezentace producentů biopotravin pro věřejnost, obecná evidence producentů a prodejců. 2.4. Omezující podmínky E-maily se neposílají funkcí mail (), ale jsou zapsány do databáze (samotné posílání e-mailů je řešeno externím subjektem). Chybějící SSH přístup. 2.5. Provozní požadavky Všichni uživatelé ● prohlížeč (Firefox 3.0.x a vyšší, Internet Explorer 6 a vyšší, Google Chrome 5 a vyšší, Opera 10.x a vyšší.) 5
● zapnutý JavaScript Producenti ● prohlížeč (Firefox 3.0.x a vyšší, Internet Explorer 6 a vyšší, Google Chrome 5 vyšší, Opera 10.x a vyšší.) ● platná e-mailová adresa 2.6. Dokumentace V průběhu realizace projektu budou vytvořeny tyto závazné dokumenty Technická dokumentace – popis produktů projektu a Výsledná dokumentace – referenční a uživatelská příručka. Pro vývojáře bude zpracována krátká dokumentace.
3. Funkční požadavky 3.1. Veřejná část:
Název: interaktivní mapa bioadresáře Popis: najetím myší na vybranou oblast se zvýrazní označený kraj a po kliknutí se vyznačí na mapě vybrané položky daného filtru (pokud jsou k dispozici) Vstupy: výběr oblasti mapky uživatelem Způsob zpracování: javascriptové funkce Výstup: vyznačené sídlo na mapě Název: Filtrování obsahu Popis: zaškrtnutím příšlušného filtru je možno omezit výpis položek v bioadresáři, omezujeme dle zeměpisné oblasti, typu zařízení s bioprodukty a dle typu produkce Vstupy: interní data systému Způsob zpracování: SQL Výstup: filtrovaný obsah Název: Vylepšené funkce stávajícího prototypu Popis: korektní zobrazení mapy kraje, nastavitelné stránkování seznamu producentů Vstupy: interní data systému Způsob zpracování: SQL Výstup: filtrovaný obsah Název: Možnost vyhledat nejbližší subjekt dle zadaných parametrů Popis: Možnost vyhledat nejbližší subjekt dle zadaných parametrů (adresa uživatele), možné využití geolokačních služeb Vstupy: adresa, IP adresa 6
Způsob zpracování: API Google Výstup: seznam nejbližších subjektů 3.2. Administrativní rozhraní: Název: Správa číselníků Popis: Přidávání, odebírání a editace producentů, činností, kontaktů a produktů, mezi atributy můž být i soubor (fotka) Vstupy: adresa, IP adresa Způsob zpracování: Aplikace operující nad obecnou databázovou tabulkou. Výstup: Sada aplikací umožňující požadované fce. Název: Ajaxové vyhledávání producentů napříč tabulkami Popis: Možnost vyhledat producenta podle souvisejících atributů (třeba adresa některého z kontaktů) Vstupy: atributy nad kterými se má vyhledávat, způsob zobrazení výsledků Způsob zpracování: našeptávač nad textboxem Výstup: seznam vyhledaných producentů s možností výběru a zobrazení jeho detailů (vč seznamu divizí) Název: Zadávání GPS souřadnic k adrese kontaktu Popis: Zadávání souřadnic kontaktu vyhledáním adresy i přímým pozicováním objektu na mapě Vstupy: adresy kontaktů Způsob zpracování: API Google Maps, JS Výstup: pomocná aplikace na zadávání dat do formuláře číselníku kontakty Název: Export Popis: Export vybraných dat do CSV Vstupy: vybraná data Způsob zpracování: SQL, PHP Výstup: soubor ve formátu CSV Název: Editace informací o divizích producenty Popis: Aplikace na rozesílku e-mailů na adresy producentů, která jim rozešle unikátní kód s platností n dnů od okamžiku vygenerování. S tímto kódem bude možné přistoupit jen k datům producenta, kterému byl kód poslán. Možnost otevření dvoudenního editačního časového okna přímo z veřejné části (vyplněním e-mailu). Možnost otevření okna z administrativního rozhraní individuálně u producentů. Vstupy: texty zasílaných e-mailů, délka okna k otevření
7
Způsob zpracování: PHP aplikace, rozesílky mailů přes interní mailový subsystém, držení identity buď pomocí sessions nebo v POSTDATA Výstup: aplikace pro producenty s možností editovat “svoje data”
4. Nefunkční požadavky 4.1. Uživatelské rozhraní CSS a XHTML, intuitivnost - jednotný vizuální tok 4.2. HW, SW a komunikační rozhraní systému MySQL, PHP, PHP framework, Kohana 4.3. Výkonnostní požadavky Výkonnost je zásadní pro úspěšné používání všech aplikací. Odezva je závislá na množství zpracovávaných dat. Čas potřebný k vyhodnocení musí být minimalizován a měl by se pohybovat maximálně v řádu několika sekund. 4.4. Bezpečnostní požadavky Jelikož aplikace Bioadresář pracuje s databází její prioritou bude ochrana proti SQL injection. Podcenění této bezpečnostní chyby by mohlo vést ke ztrátě citlivých údajů a tomu bude zabráněno pomocí jednoduchého escapování potencionálně nebezpečných znaků. Rovněž jsou kladeny požadavky na ochranu proti PHP injection. 4.5. Požadavky na kvalitu Jedním z důležitých požadavků na kvalitu bude aktuálnost poskytovaných informací. Neaktuální informace se stává informací nesprávnou, nepravdivou. S tím souvisí i požadavek na dostupnost informací.
8
5. Přílohy specifikace požadavků
Obrázek 1 Entitně-relační diagram funkčního prototypu
9