Architektura a design

Podobné dokumenty
Architektura a design

Architektura a design - úvod. Tomáš Krátký, Bohumír Zoubek

Architecture and Design

Software Quality Assurance. Tomáš Krátký, Bohumír Zoubek

Information and Data Management Profinit. All rights reserved.

Integrace dat Profinit. All rights reserved.

Development environment Build process DevOps. Tomáš Krátký, Bohumír Zoubek

Vedení projektů, Odhadování, historie. Jiří Mach

GLOBÁLNÍ ARCHITEKTURA ROB

Životopis Jakub Dušek

Metadata Profinit. All rights reserved.

NABÍDKA KURSŮ a WORKSHOPŮ V OBLASTI TESTOVÁNÍ

Sylabus modulu: D Útvarové a procesní řízení, plánování, IT podpora projektového řízení

- Aplikace je napsána v C#.NET, je instalována na webovém serveru - Data jsou ukládána v databázi MS-SQL 2005 a vyšší

Jak zavést systém managementu kvality

Business Intelligence - principy, efekty, předpoklady. OKsystem, 26/11/2009

Témata modulu a úkoly jsou využitelné ve výuce tematické oblasti RVP Člověk a svět práce ve středních školách.

MAS VÝCHODNÍ SLOVÁCKO

EXTRAKT z mezinárodní normy

PŘÍLOHA D Požadavky na Dokumentaci

Sylabus modulu: B - Strategické řízení organizace

Informačně expertní systém včasného varování a vyrozumění v důsledku stanovení rizik skalního řícení

Requirements Engineering

Koncepce Smart Administration města Mohelnice

Chronologick é pořadí z důvodu návaznosti znalostí 1) Zaměřené na Filenet. Předpokládaný rozsah - dny (8hod/den)

Naxos MULTIMEDIÁLNÍ ARCHIV

16. Kategorizace SW chyb, kritéria korektnosti a použitelnosti, spolehlivost SW

Řízení kvality, kontroling, rizika. Branislav Lacko Martina Polčáková. Kateřina Hrazdilová Bočková - konzultantka

Program prevence nehod a bezpečnosti letů

DODATEČNÉ INFORMACE K ZADÁVACÍM PODMÍNKÁM Č. III ZE DNE

Podpora plánování a řízení projektů v CASE nástrojích

Software project management

VŠB Technická univerzita, Fakulta ekonomická. Katedra regionální a environmentální ekonomiky REGIONÁLNÍ ANALÝZA A PROGRAMOVÁNÍ.

Sylabus modulu: B - Strategické řízení organizace

Odhady, nabídky, měření a historie

Maturitní prací student osvědčuje svou schopnost samostatně pracovat na projektech a aktivně využívat nabyté zkušenosti

Účetní systémy na PC (MPF_USPC) 2. TÝDEN (4. a )

Nahrávání hovorů pro IP telefonii a kontaktní centra

Ministerstvo vnitra České republiky vyhlašuje Výzvu k předkládání žádostí o finanční podporu v rámci Integrovaného operačního programu

REZERVACE24 S.R.O. PROVOZOVATEL SYSTÉMU RISORSA PRO VĚRNOSTNÍ PROGRAMY. Případová studie. Implementace věrnostního programu s.

Datová kvalita Profinit. All rights reserved.

IT Security a Cloud. Zbyněk Juřena Managing Director ALTRON Business Solutions, a.s. září 2014

Teradata basic Profinit. All rights reserved.

Case study Nové Internetové bankovnictví. František Řezáč

9:45 10:20 Úvodní slovo Mgr. Miloslav Kvapil, ředitel společnosti DYNATECH s.r.o.

Projektový manuál: SME Instrument Brno

Databázové patterny Profinit. All rights reserved.

Transakce Profinit. All rights reserved.

SPECIFICKÁ PRAVIDLA PRO ŽADATELE A PŘÍJEMCE

Vnitřní předpis města Náchoda pro zadávání veřejných zakázek malého rozsahu (mimo režim zákona č. 137/2006 Sb., o veřejných zakázkách)

Specifikace pro SW aplikaci Start-up business.

Organizační pokyn Hnutí Brontosaurus č. 3.2 Program Akce příroda. Organizační pokyn Hnutí Brontosaurus č. 3.2

Realtime prostředí a telco. Jakub Reschke Praha,

[AVG-WEB] Zpř í stupně ní kořpořá tní ho wěbu Semestrální práce z předmětu A4M39NUR

BEZPEČNOSTNÍ A PROVOZNÍ MONITORING VŠCHT PRAHA

2. ZASEDÁNÍ PROGRAMOVÉHO VÝBORU KABINETU PRO STANDARDIZACI O.P.S.

Instalace a technické informace

Databáze 2011/2012 Konceptuální model DB. RNDr. David Hoksza, Ph.D.

Simulátor krizových procesů na úrovni krizového štábu. Systémová dokumentace

ETICKÝ A OBCHODNÍ ŘÁD ANTIMONOPOLNÍ & KONKURENČNÍ POLITIKA

Tento projekt je spolufinancován. a státním rozpočtem

Sylabus modulu: E Finance a finanční nástroje

Configuration Management

Web frameworks v praxi. František Řezáč

Podklady k práci s Intranetem - administrátor

Role metodika v procesu zavádění a ověřování standardů kvality v praxi

5. Způsob hodnocení nabídek Nabídka bude hodnocena podle základního hodnotícího kritéria, kterým je nejnižší nabídková cena.

Portál veřejné správy

SYLABUS KURZU HODNOCENÍ VÝSLEDKŮ VAV

PRAVIDLA PRO ŽADATELE A PŘÍJEMCE PODPORY. v Operačním programu Životní prostředí pro období

DOTAZNÍK ZKUŠENOSTI ČESKÝCH PŘÍJEMCŮ S METODAMI PRO URČOVÁNÍ A VYKAZOVÁNÍ NEPŘÍMÝCH NÁKLADŮ V PROJEKTECH

Příloha č. 1 smlouvy Specifikace předmětu plnění

INFORMACE O NOVÉ VERZI POSKI REAL

Software process (improvement)

A0M33PIS - Průmyslové informační systémy

NÁVODNÁ STRUKTURA MÍSTNÍHO AKČNÍHO PLÁNU VZDĚLÁVÁNÍ

Příloha A Informační memorandum k Projektu

Charakteristika vyučovacího předmětu RUSKÝ JAZYK

Veřejná zakázka SUSEN generální dodávka staveb v areálu Řež. Dodatečná informace č. 1 k zadávacím podmínkám

Technická specifikace

Možnosti transformace vyšších odborných škol do terciárního vzdělávání

Provozní řád služby zálohování CIT

JAK SE LÉPE ORIENTOVAT VE VÝSLEDCÍCH KLINICKÝCH STUDIÍ

Dimenzionální modelování Profinit. All rights reserved.

Vizualizace TIN (trojúhelníková nepravidelná síť) v Marushka Designu

SEMINÁŘ PRO ŽADATELE VÝZVA Č. 11 MAS NADĚJE O.P.S. (15/000/00000/342/000153) Výzva MAS Naděje o.p.s. PRV Žádosti o podporu v rámci operace 19.2.

STANOVY SDRUŽENÍ DOCTOR WHO FANCLUB ČR

INTRANET V JVK ČESKÉ BUDĚJOVICE

PODPORA VYBUDOVÁNÍ A PROVOZU ZAŘÍZENÍ PÉČE O DĚTI PŘEDŠKOLNÍHO VĚKU PRO PODNIKY I VEŘEJNOST MIMO HL. M. PRAHU / V HL. M. PRAZE

Manuál pro lektory. v e r w w w. w e b c a s t t o l e a r n. c o m. Partneři

Shop System - Smlouva o poskytování software

Bezkontaktní platby v českém obchodě

Metodická příručka Omezování tranzitní nákladní dopravy

Instalační manuál systému Desktop Management System OptimAccess

65 51 H/01 Kuchař číšník. Téma "2012_SOP_ kuchař, číšník" samostatná odborná práce

Dotazník tvoří celkem 25 otázek. Jejich zpracování stanovujeme do Garantujeme důvěrnost veškerých získaných informácí.

Faktory ovlivňující udržovatelnost kódu aplikací vytvořených pomocí objektově orientovaných programovacích jazyků

Transkript:

Architektura a design Klektiv autrů Říjen 2018

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 PROJECT MANAGEMENT / QUALITY ASSURANCE / DOCUMENTATION / CONFIGURATION MANAGEMENT / RELEASE MANAGEMENT / DEVOPS Převzat z http://csse.usc.edu/csse/research/coradmo/

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...

Odbčka - Enterprise architektura Architektura na úrvni celé splečnsti (rganizace). Enterprise architecture zahrnuje ppis cílů rganizace, způsbů jak jsu tyt cíle dsahvány pmcí pdnikvých prcesů a způsbů, jak mhu tyt prcesy být pdpřeny technlgiemi (A Better Path t Enterprise Architectures, Rger Sessins) Prč je ptřeba? Velké splečnsti mají tisíce aplikací => těžké udržet přádek Archimate Business vrstva prdukty a služby zákazníkům Aplikační vrstva aplikace (aplikační kmpnenty) Technlgická vrstva infrastruktura (Nde, Device, System Sftware, ) Příklad: https://www.msk.cz/cz/verejna_sprava/krpratni-architekturamravskslezskeh-kraje-83244/

Příklady

Příklad 1

Příklad 2

Příklad 3

Lgická struktura systému

Fyzická struktura deplyment PaySec architecture PaySec Frntend server Applicatin server Database server Backffice server GUI (WEB) HTTP(S) PaySec frntend PaySec services Scheduler PaySec backffice cnsle Web GUI HTTPS PaySec gateway Transactin cre PaySec database Reprting server Merchant API WCF MQ cnnectr PaySec reprting Web GUI HTTPS PayMuz cnnectr HTTPS MQ FileShare MQ FileShare PayMuz Internet Banking T-Hub CST2 UniCard E-Shp M24x7 CMDB Mbilchange EmailServ er

Fyzická struktura klientské stanice deplyment PaySec architecture PaySec Frntend server Applicatin server Klienti systému HTTP(S) Správci PaySec frntend systémupaysec services GUI (WEB) Database server Scheduler Backffice server PaySec backffice cnsle Web GUI HTTPS PaySec gateway Webvý prhlížeč Transactin cre PaySec database Reprting server Merchant API WCF MQ cnnectr PaySec reprting Web GUI HTTPS PayMuz cnnectr HTTPS MQ FileShare MQ FileShare PayMuz Internet Banking T-Hub CST2 UniCard E-Shp M24x7 CMDB Mbilchange EmailServ er

Fyzická struktura Frntend server deplyment PaySec architecture GUI (WEB) HTTP(S) Frntend server PaySec frntend PaySec gateway PaySec Applicatin Rzhraní server systému Database server pr klienty Backffice server Rzhraní platební brány Scheduler PaySec services Merchant API PaySec backffice cnsle Web GUI HTTPS Kmpnenta PaySec pr database kmunikaci s GPE Transactin cre Reprting server Merchant API WCF PaySec reprting Windws Server 2003, IIS 6 MQ cnnectr Web GUI HTTPS PayMuz cnnectr HTTPS MQ FileShare MQ FileShare PayMuz Internet Banking T-Hub CST2 UniCard E-Shp M24x7 CMDB Mbilchange EmailServ er

Fyzická struktura Aplikační server deplyment PaySec architecture Frntend server HTTP(S) PaySec frntend GUI (WEB) PaySec gateway Merchant API PayMuz cnnectr WCF Applicatin server PaySec services Transactin cre MQ cnnectr PaySec PaySec Services (PayTlServices) Database server Backffice server WCF služby pr PaySec backffice cnsle Scheduler Web GUI HTTPS kmunikaci s business vrstvu PaySec database Transactin cre Reprting server Účtvání transakcí MQ Cnnectr PaySec reprting Web GUI HTTPS Kmunikace s T-Hubem PayMuz HTTPS Internet Banking E-Shp MQ MQ T-Hub FileShare FileShare Windws služba CST2 UniCard M24x7 CMDB Mbilchange EmailServ er Každá kmpnenta = 1 Může bsahvat 0..n agentů, t.j. úlh/prcesů, které vyknává

Fyzická struktura Databázvý server deplyment PaySec architecture PaySec Databáze Frntend server Applicatin server HTTP(S) Scheduler PaySec frntend GUI (WEB) PaySec services 17 různých služeb (agentů), např. ntifikace, PaySec gateway Transactin cre genervání statistik, WCF expirace Merchant API transakcí, zpracvání výpisů, mnitrvání, PayMuz cnnectr atd. MQ cnnectr Database server Scheduler PaySec database Backffice server PaySec backffice cnsle Reprting server PaySec reprting Web GUI HTTPS Web GUI HTTPS HTTPS MQ FileShare MQ FileShare PayMuz Internet Banking T-Hub CST2 UniCard E-Shp M24x7 CMDB Mbilchange EmailServ er

Fyzická struktura BO a reprting server deplyment PaySec architecture PaySec Frntend server Applicatin server Database server Webvá aplikace pr správu PaySec HTTP(S) Přístup k datům přím (bez mezivrstvy PaySec frntend Scheduler PaySec services GUI (WEB) PayTlServices) Backffice server PaySec backffice cnsle Web GUI HTTPS PaySec gateway Transactin cre PaySec database Reprting server WCF Merchant API Vytváření statistik a reprtů MQ cnnectr PaySec reprting Web GUI HTTPS PayMuz cnnectr HTTPS MQ FileShare MQ FileShare PayMuz Internet Banking T-Hub CST2 UniCard E-Shp M24x7 CMDB Mbilchange EmailServ er

Design

Architektura vs. návrh vs. implementace Architecture Návrh v kstce:? Design? Implementatin Dekmpnuj na něklik jedndušších úklů Dá se úkl vyřešit jedním příkazem v kódu? ne an Htv

Kntrakt

Kntrakt public class MyClass extends MyBaseClass implements MyInterface { public static final int THE_ANSWER = 42; prtected MyClass() { } System.ut.printLn( Hell Wrld!"); public final ArrayList<String> handlestuff(arraylist<object> input) thrws IOExceptin { return myhandlestuff(input); } prtected abstract ArrayList<String> handlestuff( ArrayList<Object> input) thrws IOExceptin; }

Návrh v kstce lépe Definuj kntrakt Je jasné, jak kntrakt naplnit? an ne Dekmpnuj na něklik jedndušších úklů Htv

Základy dbréh (OOP) návrhu Decmpsitin Abstractin High chesin Lse cupling Encapsulatin

Chesin (sudržnst) vs.

Cupling (prvázanst)

Lse cupling Cíl: Mdul (třída, ) má c nejméně záviset na svém klí Výhdy: Odlnst prti změnám klí Snazší pchpení Znvupužitelnst Testvatelnst Pzr na skryté vazby Časvé Suslednst událstí /** *... * Pzr! Tat metda musí být vlána až p metdě */

Encapsulatin Cíl: Znemžnit klí záviset na mých implementačních detailech Ochránit vnitřní stav před vnějšími zásahy Výhdy: Omezení dpadu změn na klí ( Encapsulate what changes ) Snazší testvání a verifikace Snazší debugging Interfaces Ultimátní pdba zapuzdření implementační detaily tu vůbec nejsu Jasně definují kntrakt a ddělují h d implementačních detailů Gettery a Settery

C zbyl z OOP? Encapsulatin Rzhdně Plymrphism An, ale mezený čast na interface inheritance Inheritance Prefer cmpsitin ver inheritance Implementatin inheritance pvažvána za nevhdnu Z dkumentace java.sql.timestamp (extends java.util.date): As a result, the Timestamp.equals(Object) methd is nt symmetric with respect t the java.util.date.equals(object) methd Due t the differences between the Timestamp class and the java.util.date class mentined abve, it is recmmended that cde nt view Timestamp values generically as an instance f java.util.date. The inheritance relatinship between Timestamp and java.util.date really dentes implementatin inheritance, and nt type inheritance.

Technical debt Vlba snadnéh řešení namíst kncepčníh řešení Čast pd tlakem na termín. Snaha rychle něc ddat = náklady (pracnst), které bude třeba v buducnu vynalžit (pkud budeme chtít mít systém bez prblémů udržvatelný) Existují nástrje, které změří na úrvni kódu - https://dcs.snarqube.rg/display/sonarqube52/technical+debt Tt samzřejmě nezahrnuje špatná architektnická rzhdnutí. Typické prblémy: Tightly-cupled cmpnents Zanedbaný refactring Nedstatečné pkrytí testy Nedstatečné znalsti (zejména bezpečnst, paralelismus, )

Technical debt Bezhlavý, lehkvážný Rzumný, przíravý Úmyslný, záměrný Nechtěný, neúmyslný Typický prjev zkušenstí získaných realizací prjektu Více infrmací na http://martinfwler.cm/bliki/technicaldebtquadrant.html

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

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í

Zásady elementárníh návrhu

DRY Dn t Repeat Yurself Cntrller: params.put("axis_length", axislength); Windw: Integer axislength = params.get("axis_length"); Dialg: if (params.get("axis_lenght")!= null) { }

SRP Single Respnsibility Principle Každý lgický celek (mdul, třída, metda, ) má dělat vždy jen jednu věc C když budu ptřebvat přepužít jen jeden z něklika krků? Symptm: inline kmentáře ve stylu: // krk 2: teď uděláme // Spcitej pradi, ve kterem je nutne parsvat DDL skripty // Odstran existujici DDL skripty ve vystupnim adresari // Pr kazdy databazvy bjekt ve spcitanem pradi ziskej jeh // DDL a zparsuj h fr (DdlName ddl : extractinorder) { // Zparsuj DDL // Ulz DDL

Brken Windws

Brken Windws Stejně už je t zprasený

Fail Fast Je-li v prgramu chyba, měl by selhat c nejdříve Aktivně kntrlujte knzistenci a šetřujte mžné chyby Dead prgrams tell n lies Nejhrší je na chybu přijít až p databázvém cmmitu Čím dřív chybu dchytíte, tím víc debugvacích infrmací můžete pskytnut Necháte-li chybu prbublat až d becnéh errr handleru, můžete už říct jen:

YAGNI a KISS YAGNI Yu Ain t Gnna Need It KISS Keep It Simple Stupid POGE - Principle f Gd Enugh https://martinfwler.cm/bliki/yagni.html

Kód Javadc Dkumenty Self-dcumenting cde Kód, který se svu frmu (strukturu, jmennými knvencemi apd.) snaží mezit nutnst číst dkumentaci Neznamená úplnu absenci dkumentace čitelný kód nenahradí kncepční dkumentaci (architektura, design mments, ) Prblémy při chybějící dkumentaci Význam větších funkčních celků Pre/pst cnditins, invariants Inheritance kntrakt vůči ptmkům

Další dbré rady Premature ptimalizatin is rt f all evil Jak implementvat vlastní cache rada první: nedělejte t Jak implementvat vlastní transakce viz předchzí bd Jak implementvat vlastní lazy fetching, zámky, však víte Bezpečnst nelze d kódu přidat ddatečně Thread-safety nelze d kódu přidat ddatečně

Thread-safety Immutable třídy jsu inherentně thread-safe Třídy bez vnitřníh stavu jsu inherentně thread-safe Immutable nce cnfigured Dpručuji všude, kde t jde: Služby beze stavu (bez instančních prměnných krmě dkazů na jiné služby) Stav předávat v parametrech metd a držet v lkálních prměnných Takt napsaný mdul: Nemá režii na synchrnizaci (vhdný i pr aplikace neptřebující thread-safety) Není nezbytně thread-safe, ale půjde t snadn zařídit Je čitelnější je zřejmé, kudy teču data public Graph generatedataflw() generatedataflw(tree { tree) { return handler.prcessnde(tree); } return graph; }

Dtazy? 46

Děkuji za pzrnst Prfinit EU, s.r.. Tychnva 2, 160 00 Praha 6 Telefn + 420 224 316 016 Web LinkedIn Twitter Facebk Yutube www.prfinit.eu linkedin.cm/cmpany/prfinit twitter.cm/prfinit_eu facebk.cm/prfinit.eu Prfinit EU