Tvorba informačních systémů Michal Krátký, Miroslav Beneš Katedra informatiky VŠB Technická univerzita Ostrava Tvorba informačních systémů, 2007/2008 c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 1/30
Michal Krátký tel.: +420 596 993 239 místnost: A1004 mail: michal.kratky@vsb.cz web: http://www.cs.vsb.cz/kratky/courses/ 2007-08/tis c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 2/30
Cíl kurzu Kurz je zaměřen na vytváření rozsáhlejších informačních systémů založených na architektuře klient/server a architekturách vícevrstvých. Formou přehledových přednášek studenti získají základní znalosti o technologiích J2EE (a.net). S platformami se studenti seznámí formou praktických úloh zaměřených na implementaci webových aplikací. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 3/30
Náplň kurzu 1 Architektury informačních systémů. 2 Tvorba informačních systémů v prostředí Internetu: J2EE - JDBC, Java Server Pages (JSP), Struts, Enterprise JavaBeans (EJB),.NET - (ODBC), ADO.NET, ASP.NET. 3 Vybrané kapitoly z teorie databází (moderní datové modely atd.). c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 4/30
Podmínky získání zápočtu Pro získání zápočtu je nutné navrhnou a implementovat informační systém v prostředí Internetu s využitím zvolených vývojových nástrojů a technologií. Řešení projektu bude průběžně konzultováno v rámci cvičení. V polovině semestru proběhne prezentace zadání, specifikace požadavků a analýzy projektů. Na závěr proběhne obhajoba. Pro udělení zápočtu je nutné získat alespoň 21 ze 40b. Na zkoušce formou testu je nutné získat 30 ze 60b. Odevzdání projektů bude kontrolováno zadáním triviálního úkolu souvisejícího s odevzdávaným projektem. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 5/30
Témata projektů 1 Části fakultního/univerzitního informačního systému (přihlašování na zkoušky, předběžný zápis do předmětů, zápis na cvičení, přihlašování k projektům... ). 2 Informační systém pro recenzi článků (3 studenti). 3 Registrace na libovolnou akci (poplatek, strava, ubytování, 1 student). 4 Informační systém skupin sdílejících informace na webu (diskuse, seznamy publikací, články) (3 studenti). Počet studentů vlastního zadání musí přímo záviset na složitosti projektu. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 6/30
Požadované řešení 1 Upřesnění zadání, specifikace požadavků. 2 Konceptuální model v UML, datová analýza v DFD. 3 Analýza a návrh aplikace v UML. 4 Java nebo.net. 5 Aplikace bude zahrnovat: vkládání, editaci, rušení a vyhledávání základních údajů, vlastní akce, výstupní sestavy. 6 Dokumentace. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 7/30
SŘBD používané k implementaci projektů SŘBD používané k implementaci projektů: MySQL Oracle PostgreSQL MS SQL Server c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 8/30
Literatura 1/2 1 Java http://java.sun.com, 2.NET http://msdn.microsoft.com 3 R. Szturc: Java technologie. http://www.cs.vsb.cz/java/index.html 4 M. Krátký: Úvod do programovacích jazyků. http://www.cs.vsb.cz/kratky/ 5 B. Eckel: Thinking in Java, http://www.mindview.net/books/tij c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 9/30
Literatura 2/2 1 http://www.theserverside.com http://www.theserverside.net 2 Marty Hall: Java servlety a stránky JSP. Neocortex, Praha, 2001. 3 http://j2ee.masslight.com/: Developing for the J2EE Tomcat Platform, 2008 4 B. Evjen at al.: ASP.NET 2.0, Programujeme profesionálně. Computer Press, 2007. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 10/30
Data, informace, znalosti Data (Ne)strukturované údaje o událostech, objektech nebo lidech. Informace Interpretovaná data využívána příjemcem v daném kontextu, tak aby je mohl využít k rozhodování. Znalosti Znalost zahrnuje schopnost využít informace efektivně k danému účelu. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 11/30
Informační systém Informační systém (Buckingham et al. 1987) Systém, který shromažd uje, ukládá, zpracovává a doručuje informace náležející organizaci (nebo společnosti), tak že informace jsou přístupné a užitečné všem, kteří si je přejí používat, včetně vedení organizace, zaměstnanců, zákazníků a osob mimo organizaci. Informační systém je systém, který nutně nemusí vyžadovat využití počítačů. Příkladem může být IS univerzity, který slouží managementu školy, zaměstnancům, zákazníkům (studentům) i lidem mimo univerzitu. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 12/30
Metodologie Metodologie vývoje informačního systému Kolekce procedur, technik, nástrojů a dokumentačních pomůcek, která pomáhá vývojářům v jejich úsilí implementovat informační systém. Metodologie se skládá s fází (a podfází), které vedou vývojáře k výběru technik, které jsou v dané fázi užitečné a umožňují plánovat, řídit, kontrolovat a vyhodnocovat projekt informačního systému. Příkladem může být objektově orientovaná analýza. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 13/30
Technika, nástroj Technika Technika je cesta jak vykonat aktivitu nutnou v dané fázi vývoje IS. Metodologie často zahrnuje celou řadu technik. Příkladem může být objektově-orientovaná analýza v UML. Nástroj Technika vyžaduje využití jednoho nebo více nástrojů. Třídní diagram může být vytvořen například v Rational Rose. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 14/30
Co je to architektura systému? Architektura systému Soustava pojmů, prvků, struktur a interakcí systému z pohledu vnějšího pozorovatele. Před implementací IS je nutné znát popis architektury systému. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 15/30
Účel architektury Účelem architektury je pochopit co budujeme, musíme: znát celkový obrázek, definovat zodpovědnost podsystémů a návrhářů, navrhnout jak zvládnout další růst systému, identifikovat místa kde by se mohly vyskytnout problémy (analýza risků). Musíme se připravit se na změny požadavků nebo přístupů k implementaci. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 16/30
Požadavky na dobrou architekturu Umožňuje vývojářům pochopit jejich úkol v kontextu celého systému. Zachycuje současné potřeby projektu. Je stabilní při dalším rozšiřování. Izoluje zbytek systému od změn v některé z jeho částí. Umožňuje opakovanou použitelnost konceptů, prvků a struktur při rozšiřování systému. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 17/30
Používané přístupy metody a třídy podsystémy úlohy aplikační rámce a knihovny vrstvová struktura - layers hierarchická struktura tiers c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 18/30
Podsystémy Jedná se o balíky těsně vázaných tříd s dobře definovaným rozhraním. Příklad: osoby, předměty, zkoušky Oddělením rozhraní od implementace snížíme složitost. Vhodné pro projekty vyvíjené jediným týmem. Osoby Zaměstnanec Student Předměty Predmet c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 19/30
Úlohy Vertikální členění aplikace podle oblastí. Příklad: věda a výzkum, studium, ekonomika. Snižuje pravděpodobnost interakce mezi podsystémy. Zjednodušuje komunikaci mezi týmy. Mezi úlohami lze definovat formální rozhraní. Problematické může být zachování stejného vzhledu a GUI. Studium Věda a výzkum c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 20/30
Aplikační rámce a knihovny Aplikační rámec je množina abstraktních a konkrétních tříd tvořících dohromady generický softwarový systém. Umožňují se soustředit na specifické problémy aplikace, Možné scénáře: rámce předchází vývoji aplikace, rámce následují za vývojem aplikace (zobecnění), vývoj rámce současně s aplikací - nevhodné. Příkladem mohou být platformy Java nebo.net. Na vyšší úrovni rámce pro vývoj webových aplikací nad J2EE, např. Struts. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 21/30
Vrstvová struktura Logické členění podsystémů aplikace do vrstev (layers). Příklad: prezentace, ukládání dat, logika aplikace. Každá vrstva představuje abstrakci s vlastní zodpovědností, výhody: jednodušší pochopení a použití vrstvy, jednodušší vývoj v rámci vrstvy. Vyšší vrstvy jsou izolovány od změn v implementaci nižších vrstev. Klient Prezentační vrstva Aplikační vrstva Datová vrstva c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 22/30
Hierarchická struktura Hierarchické členění aplikace. Hierarchizace se objevuje uvnitř vrstev. Zvyšuje vnitřní složitost vrstev. Příklad J2EE: Session Beans Entity Beans c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 23/30
Kombinace přístupů Nejčastější používáme kombinaci přístupů vede ke zjednodušení rozsáhlých a složitých systémů. Návrh architektury systému musí předcházet návrhu podsystémů, důvody: podsystémy se vytváří v souladu s architekturou, změna architektury se promítne v nákladech na přepracování aplikace a přeškolení vývojářů. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 24/30
Příklad kombinované architektury Vrstvová architektura s použitím rámce. Každá vrstva navíc může být dělena na podsystémy. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 25/30
Architektura J2EE Vrstvová architektura: prezentační vrstva je realizována JSP a Servlety, aplikační vrstva je hierarchizována. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 26/30
Součásti J2EE Servlets + JSP - webové komponenty a UI JDBC - práce s databázemi EJB - distribuované komponenty JAXP - práce s XML, zasílání zpráv JNDI - jmenné a adresářové služby RMI - volání vzdálených metod JavaIDL - distribuované objekty CORBA JMS - asynchronní zpracování zpráv JavaMail - zasílání zpráv e-mailem JTA - distribuované transakce JCA - připojení k jiným systémům (např. SAP) c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 27/30
Architektura.NET c http://www.directionsonmicrosoft.com/, http://authors.aspalliance.com/ c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 28/30
Součásti.NET Framework CLR - Common Language Runtime, Common Intermediate Language (CIL) možnost vývoje ve více programovacích jazycích: C#, C++,... ADO.NET přístup k datům ASP.NET webové aplikace Windows Forms uživatelské rozhraní c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 29/30
Obsah kurzu Vývoj webových IS: protokol HTTP, prezentační vrstva: JSP & Java Servlety, ASP.NET, aplikační rámce a knihovny: Struts, JavaServer Faces (JSF), komponenty: (Enterprise) Java Beans, přístup k datům: ODBC/JDBC, ADO.NET, webové služby: SOAP, WSDL, programovací jazyky: Java, C#. Vybrané kapitoly z oblasti databázových systémů: konceptuální modelování v UML, moderní datové modely: objektově-relační a XML datový model, XML technologie. c 2005-2008 Michal Krátký, Miroslav Beneš Tvorba informačních systémů 30/30