Evrpský sciální fnd Praha & EU: Investujeme d vaší buducnsti Architecture and Design Tmáš Krátký tmas.kratky@prfinit.eu http://www.prfinit.eu/cz/pdpra-univerzit/univerzitni-vyuka
Sftwarvý prces
Schematický phled (Sftware System) Architecture Struktura Dkumentace tét struktury Základní typy architektury Sftware architecture Business (prcess) architecture bchdní strategie, řízení, rganizace, bchdní prcesy Infrmatin technlgy (system) architecture HW a SW infrastruktura nutná pr chd rganizace Infrmatin architecture rganizace a správa dat (MDM, BI, DWH, ) Enterprise architecture Rle a význam architektury na prjektu? v pdniku?
Architektura vs. Design Architecture? Sftware architecture Realizace nefunkčních pžadavků Strategický design Prgramvací paradigmata, architektnické styly, principy, standardy, Sftware design Realizace funkčních pžadavků Taktický design Design patterns, prgramvací idimy, refaktring, Design Architecture is abut the imprtant stuff. Whatever that is Martin Fwler, Wh needs an Architect?
Sftwarvý prces Převzat z http://csse.usc.edu/csse/research/coradmo/
SWEBOK
Design
Základní kncepty a pjmy Základní kncepty Dekmpzice (decmpsitin) Abstrakce (abstractin) Zapuzdření (encapsulatin) Kheze (chesin (high)) Vazby (cupling (lw)) Základní pjmy Abstraktní datvý typ (ADT) Typ (Type) Třída (Class) Objekt (Object) Instance Mdul (Mdule) a mnh dalších Objektvě rientvaný design/prgramvání vs. Funkcinální design/prgramvání
Hlubké pravdy s úsměvem Prgram t interface, nt implementatin! Favr bject cmpsitin ver class inheritance! Keep it DRY, shy and tell the ther guy!
Architektura
Architecture needs, stakehlders
Dkumentace architektury
Dkumentace architektury
Sftwarvá architektura dle IEEE 1471 Functinal / lgic view Cde / mdule view Develpment / structural view Cncurrency / prcess/thread view Physical / deplyment view User actin / feedback view Data view
Vliv kntextu na architekturu databázvý systém / subsystém web systém / subsystém (tlustý) klient systém / subsystém OO systém / subsystém data warehuse systém integrační systém / subsystém...
Zajímavá témata
Design patterns Katalg základní GOF návrhvé vzry prakticky neknečné kmbinace a variace Význam znvupužitelnst splečný jazyk... Pzr na pčáteční nadšení na nadbytečné užívání patterns indirectin, úrvně abstrakce slžitst
Architectural styles Pipes and filters Event driven architecture Layered architecture Multi-tier architecture MVC Repsitries Table driven interpreters Big ball f mud a mnh dalších
Framewrks Znvupužitelný návrh pr SW systém Pdpra (základna) při vývji jiných SW aplikací Diktuje architekturu systému Určuje jak dekmpnvat systém a jak budu jeh jedntlivé části kmunikvat Základní dekmpzice Frzen spts definice celkvé architektury, neměnné Ht spts zajišťují rzšiřitelnst (abstraktní třídy, antace) C dlišuje framewrk d knihvny - shrnutí Inversin f cntrl Rzšiřitelnst Nemdifikvatelnst Defaultní chvání
Integrace Velmi zajímavé a časté téma prakticky u každéh většíh prjektu Čast spjené s tématiku enterprise architektury Čast velmi netechnlgické (prcesy, entity) Uživí se zde mnh buzzwrds (EAI, SOA, MOM, ) Obvykle velmi prblematické (dpvědnst a peníze chybí, nechta, ) File transfer Shared database Remte prcedure call Messaging
Příklad J2EE kntejner JEE kntejner JEE 5 + Java 1.6 J2EE 1.3 + Java 1.4 Balíčky Internet Rzhraní Webvé služby Rzhraní Balíčky Externí kntext jdbc jdbc Databáze Databáze externíh kntextu
Mderní trendy u našich zákazníků
Gartner Hype Cycle fr Emerging tech. Scial media (web 2.0) Clud cmputing Mbile
Clud? Princip, v čem spčívá? Čím je t (ne)zajímavé pr firmy, čím pr ddavatele? Jak suvisí s pjmy SAAS, PAAS a IAAS Kd prvzuje infrastrukturu? Kd zajišťuje platfrmu (scial applicatin platfrms, raw cmpute platfrms, web applicatin platfrms, business applicatin platfrm)? Kd píše aplikační kód?
IaaS, PaaS, SaaS http://www.silverlighthack.cm/pst/2011/02/27/iaas-paas-and-saas-terms-explained-and-defined.aspx
Mbile Význam, mtivace? Příklady pužití?
Gdies
Templates, checklists, literatura
Otázky???