720 likes | 842 Views
ÚVOD 2008. SW inženýrství a IS. Kde jsou prezentace. http://kocour.ms.mff.cuni.cz/~kral/predn0809. Co my budeme studovat. Zavedené postupy, ne ale u všech Informační systémy (ty zahrnují i lidi)
E N D
ÚVOD 2008 SW inženýrství a IS
Kde jsou prezentace http://kocour.ms.mff.cuni.cz/~kral/predn0809
Co my budeme studovat • Zavedené postupy, ne ale u všech • Informační systémy (ty zahrnují i lidi) • Servisně orientované architektury (SOA) a na ně vázané postupy (servisně orientované obchodní aplikace, cloud computing, gridy)
Různé technologie dospějí za různou dobu • Fast Track -2-3 roky, SMS, instant messaging. Podpora velkých, užitečnost, jednoduchost použití, relativní snadnost implementace a nasazení (využití Ex. Infrastruktury). • Standardní: 5-8 let • Long fuse: až 20 let, i více vrcholů, nutnost nové infrastruktury, výzkum, zákony paradigmata. Internet, nnotechno, dataintegration, SOA
O které profese je největší zájem (Forrester Research) • Informační a datový architekt, kvalita a bezpečnost informací (datvé sklady a tržiště, správa rizik) • Datoví a informační analytici, byznys architekti, enterprise architekti, jednání s partnery, hlavně v IT • Klasické IT role vztažené na celý podnil (definice dat, aplikační SW,…) • Techničtí experti (virtualizace, mobilita v IS)
O které profese je nejmenší zájem (Forrester Research) • Klasické programování, statické HTTP, Cobol, PowerBuilder,…
O které profese je nejmenší zájem (Forrester Research) • Klasické programování, statické HTTP, Cobol • Ono to není tak úplně, viz Vaše vlastní zkušenosti • Je pravdou, že největší poptávka je po architektech a lidech, kteří dokáží s uživateli spolupracovat
Zaměření přednáškyInformační systémy Počáteční etapy vývoje IS jsou rozhodující Poznatky z přednášky tvoří jádro SW inženýrství Jsou klíčem k profesnímu uplatnění mimo oblast kódování, tj. ve vedoucích a jiných velmi žádaných pozicích, které lze vykonávat do vysokého věku
Informační systém Systém pro správu a sběr dat a pro poskytování informací uživatelům
Zvláštnosti IS • Klíčová část IT • Většina aplikací IT, podpora byznys procesů a managementu • Největší dopady (globalizace), podpora celosvětové spolupráce • Největší SW systémy, moderní SW architektury • Lidé jsou součástí IS, mohou se bránit, je nutné je získat a vyškolit, prosazovat i jejich prospěch • Musí se z nich vytáhnout, co je třeba udělat • Mohou mít potíž si na to vzpomenout (blokovaná, skrytá znalost), vzpomenou si až při navození situace či při správně formulované otázce • Uživatele nemohou vyvíjet IS sami, nelze ale IS vyvíjet bez nich, nutno rozumět jejim potřebám
Zvláštnosti IS Velké peníze na vývoj, velké peníze na IS závisí Kritické systémy (škody, rozhodují o životech) Velké systémy, největší, co známe Stálá změna Otevřenost, moderní SW architektury Spolupráce IT odborníků a uživatelů při vývoji i provozu
Obchodníci znalí technologie a potřeb uživatelů SW inženýři schopní spolupráce s uživateli Designéři Kódéři Testéři Provozní programátoři Sehnat kšeft a nástřel CO Dohodnout podrobněji CO s vědomím, že to lze udělat Zpřesnit CO, zásady JAK Struktura i detaily JAK Kódování Testování Údržba a provoz Úkoly a profese
Sehnat kšeft a nástřel CO Dohodnout podrobněji CO s vědomím, že lze udělat Zpřesnit CO, zásady JAK Podrobně JAK Kódování Testování Údržba a provoz Úkoly a profese Byznys, inženýrství IT řemeslo
Sehnat kšeft a nástřel CO Dohodnout podrobněji CO s vědomím, že lze udělat Zpřesnit CO, zásady JAK Podrobně JAK Kódování Testování Údržba a provoz Úkoly a profese Znalosti byznysu, ekonomie a potřeb praxe Schopnost spolupráce IT řemeslo. IT znalosti Zaměření přednášky
Úzká místa • Sehnat kšeft, vize • Přesně a správně CO • Stihnout včas za dané peníze • Řemeslo je důležité, ale ne kritické • Na MFF velmi dobré i ve světovém pohledu • V praxi menší problém než analýza • Roste důležitost inženýringu • Specifikace požadavků • Procesy • Architektury
Tempo zastarávání • V technologii programování 50% znalostí zastará za 3-5 let • neplatí to pro principy • V analýze je to zřejmě pomalejší • Lidé se mění pomalu • Kamkoliv pohlédneš, všude jsou lidé stejní blázni • Nápis na simerské tabulce z Uru
Úzká místa • Zaměříme se na úzká místa, tedy především na • úkoly řízení projektů, • SW procesy především s aplikacemi na SOA • SW normy a SW metriky • specifikace a spolupráce s uživateli • Něco se dá jen obtížně na škole nacvičit, lze jen seznámit (srv. MBA lze studovat až po získání praktických zkušeností) • Spolupráce s uživateli • Tvorba rozsáhlých systémů • Management • Zvyky ve firmách
Čím se lišíme od ekonomů • Tam podobná témata, my je ale probíráme z hlediska IT (např. jak lze implementovat SOA, triky v SOA, návrhové vzory) • Zkušenosti s realizacemi z technického hlediska • Spíše zaměřeno na situaci v menších podnicích
Čím se lišíme od ekonomů • Fakticky jsou třeba lidé na pozice • Ekonomické-manažerské s poměrně menšími znalostmi a znalost IT – adaptace balíků • Vedoucí vývoje s dobrými znalostmi IT i oboru aplikace – významnější inovace • Technologové – řešení systémových a technických otázek • Vlastní programátoři – kódeři se schopnostmi návrhu a testování • Testéři- ve větších projektech • Uplatníme se v bodech 2.-5. Ti s manažerským talentem i v 1. Ti ppak jsou velmi žádaní
Nové směry v SW, od 1995 • Masové používání OO, UML v modelování • XML jazyky, webové služby, Java • Servisní orientace!!!, po roce 2000 • Aspektové programování, agilní vývoj • C# • Používání SW balíků • ITIL, CMM, COBIT, ….architektury nad SOA
Hlavní poznatky • Krize se vrací asi po deseti létech, může přijít znovu • Vždy se vrátil zájem o informatiku, ale s podstatně jinými úkoly • Zdá se, že po poslední krizi v roce cca 2000 se zájem o informatiky v mnoha zemích plně neobnovil • Nově globalizace, hlavně v kódování • Není jasné, jak se projeví současná krize
Nezaměstnanost v Australii v r. 2005 • Průměr 9.5procent • IT odborníci 18 procent • Možná doznívání krize v IT (internetová bublina) • U nás zatím nepříliš silné (kvalitní IT odborníci) • Zdroj: Prof. Voříšek, VŠE, zkušenost z pobytu v Australii.
Hodnocení absolventů MFF a FI • Rychle programují • Nelze je pustit , alespoň zprvu, k uživatelům, jsou neochotní spolupracovat s odborníky uživatelských domén • Často nadměrně nafoukaní a neochotní • Neochotní používat hotové a podřizovat svůj rozlet přejímání existujících programů
Vyhlídky kódérů • Vysoce kvalifikované řemeslo, z VŠ velmi kvalitní příprava, nikoliv vůdčí pozice • Je jich kupodivu stálý nedostatek, není ale to, co bývalo (rozhraní, více znovupoužívání, tlak na kódéry dodržovat standardy) • Rychle poměrně vysoké platy, vhodné pro mladé • Poločas rozpadu znalostí do 5 let • Každých 15 let nové paradigma (gotoless, strukturovanost, OO, SOA) • Každých 5-7 let nový programovací jazyk • Tradičně profese pro mladé (do 35 let, jsou výjimky)
Král – profesní vývoj • 1959 Absolvent MFF UK, matematická statistika, prvý program na Ural 1, programování v absolutních adresách, není ani asembler, paměť cca 12KB, 100 op/sec, numerika (velmi přesná aritmetika) • 1959 – 1975 Numerická matematika, generátor náhodných čísel (sečítání, 16 bit), grafové úlohy pro programy (segmentace), hash metody (chování pro konečné tabulky), servis pro AV, 4 publikace, svépomocný binárně kódovaný assembler, práce na pč. s pamětí 16kB • 1967 – dosud. Makroprocesory, kompilátory, formální jazyky, sítě procesorů. Čtyři větší projekty, dva úspěšné, několik desítek publikací. Hlavní výstup kvalitní generátor pseudonáhodných čísel založený na sečítání v 16tibitové aritmetice, nikoliv na násobení, analýza téměř shora, generátor LR analyzátorů založených na rekursivním sestupu, kompilační techniky, analýza hash metod proacujících na konečných tabulkách,vlastnosti formálních jazyků (nested iterated substitution)
Král – profesní vývoj • 1975 – dosud. Řízení výrob a technologií, cca 8 projektů, pět úspěšných. Jedno z prvých uplatnění architektury SOA. Několik desítek publikací • 1985 - dosud. Architektura SW (SOA), architekturní služby • vlákna v COBOLu, • 1990 výuka informatiky a její problémy. • Tři knihy, několik skript, cca 170 publikací
Životní cyklus SW, „vodopád“ • Vize (proč je co třeba) • Specifikace požadavků (co je třeba) • Návrh (jak to asi udělat) • Kódování (psaní programů, u nás často spojováno s návrhem) • Testování (kodér: částí; testér: integrační, funkcí, systému) • Předání • Údržba • Zrušení Pokud se takto člení i projekt, mluvíme o metodě vodopádu. To nebývá dobře a proto existují modifikace vodopádu (iterace, inkrementy, prototypy)
Co budeme dělat Celý životní cyklus IS, důraz na počáteční etapy, architekturu SW a management SW prací se zaměřením na IS. • Životní cyklus softwaru, prvé poznatky o SW architekturách • Co je IS a proč je jeho vývoj složitý • Servisně orientovaná architektura • Společenské a zdravotní souvislosti IS • Vize, před uzavřením smlouvy, smlouva, správa rizik • Základní techniky při specifikaci požadavků • Varianty životního cyklu, agilní formy vývoje • Perspektiva profese informatik • Práce v týmu (úvod)
Co budeme dělat Celý životní cyklus IS, důraz na počáteční etapy životního cyklu, architekturu SW a management SW prací. • Co bude v druhé části přednášky • Techniky specifikace požadavků • Varianty oponentur a auditu • Kvalita dat a její dopady, • Řízení projektu, práce v týmu podrobněji • CPM a kritický řetězec • Pozdní etapy vývoje, křivka učení, vývoj uživatelského rozhraní • Metriky, odhady, ISO normy, SW procesy • Ergonomie v IT
Problém vejce a slepice • Témata vzájemně souvisí – je nutný výklad po etapách a vracet se • Mnohé problémy zasahují mimo kyberprostor • Důležité pro analýzu a vaše uplatnění mimo informatiku a pro dobré joby v informatice • Důležité pro možnost získat lukrativní místa • Obtížné, hackerský syndrom (já jako programátor se starám jen o programy respektive o SW obecně, vše ostatní je blbost, v této oblasti skutečně převyšuji ostatní)
Nejhorší je srážka s blbcemNejfatálnější důsledky má opomenutí blbosti (samozřejmosti) • Etapy vývoje: vize, specifikace požadavků, návrh, kódování, testování, předání, údržba. • 85% nákladů na opravy chyb jde na pochybení v etapách vizí a specifikací požadavků, ne na profesní pochybení programátorů • Analýza příčin chyb ukazuje, že kritické jsou různé apriorní představy, neuvěřitelné logické chyby, opomíjení souvislostí atd. na straně uživatelů a problém blokovaných znalostí • Je to si jeden z důvodů používání krabicových a customizovatelných (např. od SAP) řešení • Zkušenosti tohoto druhu se těžko předávají, pro plné pochopení a hlavně akceptování se musí zažít
Pozor na hackerský syndrom • Přesvědčení, že svět mimo kyberprostor je nezajímavý • Neschopnost a neochota spolupracovat s uživateli • Neschopnost domluvy s jinými hackery • Neochota pracovat v týmu a dokumentovat své výtvory • Neschopnost zvládat cizí znalostní obory • Neochota přebírat to, co je. • Hackeři jsou použitelní jako programátoři úloh s jasným zadáním vyvíjenými obvykle od začátku • Takových úkolů je stále méně
Vztah k jiným přednáškám • Přednášky o programovacích jazycích jsou přípravou na kódování a zčásti na testování a návrh • Přednášky z databází a přednášky a cvičení používající UML (a např. systém IBM Rational nebo Together) jsou využitelné při návrhu systému a zčásti při finalizaci specifikací požadavků a dělbě systému na menší SW artefakty • Tato přednáška bude zaměřena na specifikaci požadavků, softwarové architektury a problémy životního cyklu a proto musí zohledňovat fakt, že nedílnou součástí specifikace požadavků je spolupráce s uživateli a že specifikace požadavků obsahuje i popis činností lidí a zohledňuje i politicko-sociální a zdravotní dopady IT.
SW profese • Kodér, testér (kódování, testování) • SW inženýr (specifikace, u větších systémů pozdní fáze specifikací, návrh – někdy jen časné fáze) • SW návrhář, (návrh – pozdní fáze), • Tato profese často u firem neexistuje) • SW architekt (vize, specifikace, časné fáze, např. rozhodnutí použití OO, klíčové třídy, koncepce SO systémů, rozhraní služeb, koupě produktů třetích stran). • SW údržbář • SW obchodník
Využitelnost přednášky • Přednáška je zaměřena především na znalosti potřebné pro • SW inženýry a softwarové architekty • Přednáška obsahuje poznatky využitelné • Kodéry, testéry, údržbáři a obchodníky • Zčásti se týká témat, které jsou dosud převážně ve stadiu nekomerčního výzkumu a vývoje. • Problém“nezakusíš – nepochopíš“
Vztah k SW profesím • Role, pro které může být tato přednáška zajímavá • SW inženýr • SW architekt • Vedoucí projektu • Spolupráce se zákazníky, marketing • Ostatní profese buď přímo, nebo chápání úklů druhých
Hodnocení absolventů MFF a FIOpakování • Rychle programují, jsou v tom špičkoví • Nelze je pustit , alespoň zprvu, k uživatelům, jsou neochotní spolupracovat s ne IT odborníky • Často nadměrně nafoukaní a neochotní vůči partnerům • Neochotní používat hotové a podřizovat svůj rozlet přebíráním programů
Vyhlídky kódérů, opakování • Vysoce kvalifikované řemeslo, z MFF velmi kvalitní příprava, nikoliv vůdčí pozice • Je jich kupodivu stálý nedostatek, není ale to, co bývalo (rozhraní, více znovupoužívání, tlak na kodéry dodržovat standardy) • Rychle poměrně vysoké platy, vhodné pro mladé • Poločas rozpadu znalostí do 5 let • Každých 15 let nové paradigma (gotoless, strukturovanost, OO, SOA) • Každých 5-7 let nový programovací jazyk • Tradičně profese pro mladé (do 35 let, jsou výjimky)
Základní pojmy Zopakování a upřesnění známých pojmů
Systém • Strukturovaná entita • Zdroje (materiál, energie, znalosti a dovednosti) • Prostředky (stroje, nástroje, lidé) • Vazby mezi částmi (komponentami) • Procesy umožňující za daných podmínek dosahovat určité cíle, u IS poskytovat informace, doporučovat opatření případně přímo řídit a měnit svět
Servisně orientovaný systém • Vazby mezi komponentami jsou volné, komponenty spolu komunikují podobně jako služby reálného světa nebo webovské služby na internetu – vyřizují požadavky z fronty požadavků - jinými slovy systém se chová jako virtuální p2p síť s asynchronní komunikací. • Sekvenční komunikace je možná, je doplňkovou možností • Je to vedoucí paradigma současného SW inženýrství, zvláště v případě velkých informačních systémů • Budeme se mu hodně věnovat
Informační systémy Informační systém (IS) je systém umožňující ukládání, získávání a presentaci informací. IS je systém, tj. strukturovaný komplex technik, nástrojů, a zdrojů umožňující získávání, ukládání a poskytování informací uživatelům a jiným systémům. V širším smyslu mohou být výstupem IS přímo rozkazy osobám a signály procesům reálného světa (avionika letadla, reaktor, …). IS tedy může být i řídícím systémem (to je velmi významný fakt). IS nemusí využívat SW, my se ale budeme zabývat případem, kdy IS využívá softwarovou podporu. - IS jsou základním nástrojem globalizace světové ekonomiky, informatizace společnosti a změn ve výrobních procesech a změn ekonomických procesů
Informování versus řízení • Informování Jiné IS Data Akce po vyhodnocení informací INFORMAČNÍ SYSTÉM Informace Svět pozorování Data Nezávislá analýza, měření
Informování versus řízení • Řízení, z hlediska technologie programů zdánlivě téměř totéž, skryté hluboké rozdíly (kritičnost akcí). INFORMAČNÍ SYSTÉM Příkazy Odezvy Technologie, člověk plnící příkazy Svět Data Analýza, měření
Informování versus řízení • Řízení je možné realizovat do značné míry podobně jako informování, • vyžaduje to ale specifické přístupy a jinou architekturu než je zatím obvyklé u informačních systémů (servisně orientovanou architekturu, SO RT programování), • mnohé akce je nutno udělat v určitém termínu a nelze je mnohdy vrátit, někdo za ně musí být odpovědný
SW architektura • Organizace a struktura systému ve velkém • Dekompozice na nejvyšší úrovni do kooperujících částí (pokud možno autonomních), skládání komponent do sítí-sestav-vrstev • Principy spolupráce s uživateli • Základní vlastnosti částí a jejich rozhraní • p2p • Klient-server, tři vrstvy (i prostřednictvím stanovení funkcí uzlů) • Struktura tvořená SW komponentami, jejich vztahy, principy vývoje a integrace
SW architektura - účel • Specifikace a návrh ve velkém • Dekompozice • Dá se pak mentálně a organizačně zvládnout i velký a komplikovaný systém • Nezávislý vývoj komponent • Znovupoužitelnost komponent • Nabízí i technické výhody (prototypování, údržba, …) a možnost specifických funkcí) • Na architekturu vázané procesy a funkce (decentralizace) • Evoluce, škálovatelnost a modifikovatelnost systému • Distribuovanost