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



Podobné dokumenty
EXTRAKT z mezinárodní normy

Posuzování zdravotní způsobilosti k řízení motorových vozidel jako součásti výkonu práce

SMĚRNICE č. 5 ŠKOLENÍ ZAMĚSTNANCŮ, ŽÁKŮ A DALŠÍCH OSOB O BEZPEČNOSTI A OCHRANĚ ZDRAVÍ PŘI PRÁCI (BOZP)

GLOBÁLNÍ ARCHITEKTURA ROB

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

USNESENÍ. Č. j.: ÚOHS-S339/2012/VZ-21769/2012/523/Krk Brno 20. prosince 2012

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

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

Architecture and Design

- 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šší

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

Technická specifikace předmětu plnění. VR Organizace dotazníkového šetření mobility obyvatel města Bratislavy

Program prevence nehod a bezpečnosti letů

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

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.

Etržiště České pošty Centrum veřejných zakázek.

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

uzavřená podle 1746 odst. 2 občanského zákoníku níže uvedeného dne, měsíce a roku mezi následujícími smluvními stranami

Tvorba jednotného zadání závěrečné zkoušky ve školním roce 2010/2011

Jak zavést systém managementu kvality

Projektový manuál: SME Instrument Brno

KAPITOLA II ZÁKON NA OCHRANU OVZDUŠÍ ZÁKLADNÍ POVINNOSTI...13 KAPITOLA III PROVÁDĚCÍ PŘEDPISY K ZÁKONU O OVZDUŠÍ ZÁKLADNÍ POPIS...

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

Koncepce Smart Administration města Mohelnice

Mikrovlnná trouba

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

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)

INTRANET V JVK ČESKÉ BUDĚJOVICE

ZÁKLADNÍ INFORMACE O SPOLEČNÉ ČÁSTI MATURITNÍ ZKOUŠKY

Š K O L N Í R O K / ZÁKLADNÍ ŠKOLA PROSTĚJOV, E. VALENTY 52. Mgr. Radomír Palát koordinátor ICT, metodik ICT. Plán práce 2015/2016

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

DeepBurner Free 1.9. Testování uživatelského rozhraní s uživateli Deliverable B1 TUR Testování uživatelských rozhraní 2011 ČVUT FEL

Doporučení Středočeskému kraji k transformaci ústavní péče v péči komunitní

ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE ROZHODNUTÍ. Č. j.: ÚOHS-S398/2010/VZ-16684/2010/520/NGl V Brně dne: 14. února 2011

Mezinárodní prostředí a rozdílné přístupy v rozličných státech

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

Software process (improvement)

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

Novinky Autodesk Vault 2012 (Workgroup, Collaboration, Professional)

Smlouva o obchodním zastoupení

4 Datový typ, proměnné, literály, konstanty, výrazy, operátory, příkazy

Přednášky Teorie řízení Tereza Sieberová, 2015 LS 2014/2015

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

Stanovisko k dokumentu Řešení dalšího postupu územně ekologických limitů těžby hnědého uhlí v severních Čechách ze srpna 2015

ŠKOLNÍ ŘÁD. Účinnost: zákonným zástupcům dětí, pracovníkům školy MŠ Holice. Mgr. Mojmír Chytil, ředitel školy

Maintenance. Tomáš Krátký. Evropský sociální fond Praha & EU: Investujeme do vaší budoucnosti

Information and Data Management Profinit. All rights reserved.

Metadata Profinit. All rights reserved.

SYLABUS KURZU HODNOCENÍ VÝSLEDKŮ VAV

Metoda klíčových ukazatelů pro činnosti zahrnující zvedání, držení, nošení

Varování podle - použití a dopady. Adam Kučínský ředitel odbor regulace

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

Charakteristika softwaru - Software se nikdy fyzicky neopotřebuje. Software je řešen a vyvíjen inženýry.

9 METODICKÉ POKYNY AD HOC MODUL 2011: Zaměstnávání zdravotně postižených osob

Oprava a modernizace panelového bytového domu Pod Špičákem č.p , Česká Lípa

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

Specifikace pro SW aplikaci Start-up business.

Provozování a využívání výpočetní techniky a počítačové sítě Vysoké školy ekonomické v Praze

Metodická pomůcka. Využívání záruk ČMZRB k zajišťování bankovních úvěrů

Sledování provedených změn v programu SAS

PŘÍLOHA D Požadavky na Dokumentaci

Requirements Engineering

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

ŠKOLICÍ PŘÍRUČKA POŽÁRNÍ OCHRANA

Možnosti připojení WMS služby do Klienta v Marushka Designu

Případy užití RSSystems

Stanovisko Rekonstrukce státu ke komplexnímu pozměňovacímu návrhu novely služebního zákona

Informační audit teorie a praxe v České republice

A 3-3 METODICKÝ RÁMEC PRO HODNOCENÍ PROGRAMŮ VÝZKUMU, VÝVOJE A INOVACÍ. Závěrečná zpráva

Socioekonomická studie mikroregionu Frýdlantsko. B.5. Analýza konkurenčního potenciálu skiareálu Smrk

SOUVISLOST MEZI DEMOGRAFICKÝMI ZMĚNAMI A EKONOMICKÝM RŮSTEM

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

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

ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE PŘÍKAZ

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

Výsledky sledování indikátoru ECI/TIMUR A.3: Mobilita a místní přeprava cestujících V Praze - Libuši

ÚŘAD PRO OCHRANU HOSPODÁŘSKÉ SOUTĚŽE PŘÍKAZ. Č. j.: ÚOHS-S0096/2016/VZ-06824/2016/522/PKř Brno: 22. února 2016

Záměr první fáze redesignu webu Fakulty aplikovaných věd

Zpráva pro uživatele

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

Dobývání znalostí z databází (MI-KDD) Přednáška číslo 1 - Úvod

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

Témata v MarushkaDesignu

Databázové patterny Profinit. All rights reserved.

Pravidla on-line výběrových řízení ENTERaukce.net

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

Configuration Management

1 ÚVOD 3 2 OBECNÁ ČÁST 5 3 POJIŠTĚNCI 11

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

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

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

Organizační řád Občanského sdružení NHfree.net

Všeobecné smluvní podmínky provozu služby Outsourcing e- spis LITE

ZADÁVACÍ DOKUMENTACE

Portál veřejné správy

Upomínky a kontroly E S O 9 i n t e r n a t i o n a l a. s.

IT Strategie a Standardy Akademie hotelnictví a cestovního ruchu střední škola, s.r.o.

Business intelligence řešení v modelu MBI

Transkript:

Faktry vlivňující udržvatelnst kódu aplikací vytvřených pmcí bjektvě rientvaných prgramvacích jazyků Jarmila Pavlíčkvá Vyská škla eknmická v Praze Fakulta infrmatiky a statistiky Katedra infrmačních technlgií nám. Winstna Churchilla 4 130 67 Praha 3 e-mail: pavjar@vse.cz Abstrakt: Příspěvek je zaměřen na faktry vlivňující udržvatelnst zdrjvých kódů aplikací napsaných v bjektvě rientvaných prgramvacích jazycích. Nejprve ppisuje, jak je udržvatelnst aplikací reflektvána v mezinárdních nrmách kvality sftwaru. Pté identifikuje 4 skupiny faktrů vlivňujících kvalitu vzhledem k udržvatelnsti aplikace a t jsu: čitelnst kódu, správné využívání základních bjektvých principů, pužívání návrhvých vzrů a využívání heuristik správnéh návrhu a prgramvání bjektvéh kódu. Klíčvá slva: Kvalita kódu, nrmy kvality, udržvatelnst aplikací, bjektvé principy, návrhvé vzry, antivzry, bjektvé heuristiky. Abstract: This paper fcuses n the factrs affecting maintainability f surce cde f applicatins written in bject-riented prgramming languages. First describes hw the maintainability f applicatins is reflected in internatinal standards f quality sftware. Then identifies fur grups f factrs affecting the quality due t the applicatin maintainability and they are: readability, prper use f basic bject-riented principles, the use f design patterns and use f heuristics fr prper design and prgramming bject cde. Keywrds: Quality f cde, quality standards, maintainability applicatins, bjectriented principles, design patterns, antipatterns, bject heuristics. 1. Úvd Kvalitu sftwaru se p řadu let zabývají dbrníci jak z akademické sféry, tak z praxe. Na tt téma vznikla řada prací (např. [McCnnell, 2005], [Gamma at all, 2001]), mezinárdních nrem (např. řada ISO/IEC 25000[ISO2500, 2005] neb ISO/IEC 9126[ISO9126-1, 2000]). Primárním cílem naprsté většiny z nich je zajistit neb alespň připravit pdklady pr t, aby vznikal stále kvalitnější sftware. Vzhledem ke stále větší slžitsti prgramvých systémů a dynamicky se měnícím pžadavkům na jejich fungvání význam sledvání kvality sftwaru neustále rste. Řada faktrů vlivňujících kvalitu sftwaru suvisí se zvleným implementačním prstředím a prgramvacím jazykem a jsu v suvislsti s knkrétním jazykem neb kategrií prgramvacích jazyků ppisvány v dbrné literatuře. Napak nrmy jsu vytvářeny becně a hdntí kvalitu sftwaru bez hledu na prstředky, které byly k jeh vytvření pužity. SYSTÉMOVÁ INTEGRACE 4/2012 135

Jarmila Pavlíčkvá Pdle becně uznávanéh Tibe Prgramming Cmmunity Indexu http://www.tibe.cm/index. php/cntent/paperinf/tpci/index.html jsu v psledních pěti letech nejblíbenější staticky typvané bjektvě rientvané prgramvací jazyky. Pdle zde uváděných údajů tvří pdíl bjektvě rientvaných prgramvacích jazyků 58.8% a mezirčně vzrstl 2,1%. Cílem tht článku je ukázat jaké faktry mhu vlivňvat kvalitu prgramvéh kódu aplikace vytvřené v bjektvě rientvaném prgramvacím jazyce a t především z phledu udržvatelnsti aplikace. Nejprve se bude příspěvek zabývat tím, jak je v rámci nrem řady ISO/IEC 25000 udržvatelnst aplikace reflektvána a pté ppíše jedntlivé skupiny faktrů, které dle názru autrky vlivňují udržvatelnst aplikace. 2. Nrmy řady ISO/IEC 25000 Jak již byl uveden, tat řada nrem představuje základ pr řízení kvality sftwaru. Pr tut řadu nrem je pužíván i značení SQuaRE Sftware prduct Quality Requirements and Evaluatin. Nrmy řady ISO/IEC 25000 pstupně nahrazují nrmy řady ISO/IEC 9126 (Kvalita sftwarvéh prduktu) a ISO/IEC 14598 (Hdncení sftwarvéh prduktu). Aby byl usnadněn přechd firem k pužívání nvých nrem, bsahují také mapvání nvých mdelů na mdely pužívané v předchzí řadě nrem ISO/IEC 9126. 2.1 Struktura řady nrem 25000 Řada nrem ISO 25000 [ISO25000, 2005] je tvřena něklika skupinami, brázek 1 ilustruje rganizaci jedntlivých skupin nrem v rámci SQeuRE (v nrmě jsu tyt skupiny značvány pjmem divisin). Obrázek 1 Struktura mezinárdních nrem řady 25000 [Zdrj: ISO25000, 2005] 136 SYSTÉMOVÁ INTEGRACE 4/2012

Faktry vlivňující udržvatelnst kódu aplikací vytvřených pmcí bjektvě rientvaných prgramvacích jazyků ISO/IEC 2500n - Quality Management Divisin. Tut skupinu tvří nrmy, které definují všechny splečné mdely, termíny a definice využívané statními nrmami celé řady 25000. Dále jsu zde uvedeny pžadavky a pkyny pr pdpůrné funkce, které jsu dpvědné za řízení pžadavků, specifikaci a hdncení jaksti sftwarvéh prduktu. Z tét řady jsu k dispzici tyt nrmy: ISO/IEC 25000:2005 Sftware engineering - Sftware prduct Quality Requirements and Evaluatin (SQuaRE) - Guide t SQuaRE, ISO/IEC 25001:2007 Sftware engineering - Sftware prduct Quality Requirements and Evaluatin (SQuaRE) - Planning and management. ISO/IEC 2501n - Quality Mdel Divisin. Nrmy tét skupiny představují pdrbný mdel kvality pčítačvých systémů a sftwarvých prduktů, mdel kvality při pužívání těcht prduktů a mdel kvality dat. Obsahují také praktický návd pr pužívání těcht mdelů. K dispzici jsu tyt nrmy: ISO/IEC 25010:2011 Systems and sftware engineering - Systems and sftware Quality Requirements and Evaluatin (SQuaRE) - System and sftware quality mdels, ISO/IEC 25012:2008 Sftware engineering - Sftware prduct Quality Requirements and Evaluatin (SQuaRE) - Data quality mdel. ISO/IEC 2502n - Quality Measurement Divisin. Nrmy, které tvří tut skupinu, zahrnují referenční mdel měření kvality sftwarvéh prduktu, matematické definice měřítek kvality a praktické pkyny pr jejich pužití. Jsu zde definvány a prezentvány základní prvky měření kvality - Quality Measure Elements (QME). K dispzici je tat nrma: ISO/IEC 20020:2007 Sftware engineering - Sftware prduct Quality Requirements and Evaluatin (SQuaRE) - Measurement reference mdel and guide. ISO/IEC 2503n - Quality Requirements Divisin. Nrmy, které tvří tut část řady 25000, pmáhají specifikvat pžadavky na jakst, které jsu zalženy na mdelech kvality a měřítkách kvality. K dispzici je tat nrma: ISO/IEC 25030:2007 Sftware engineering - Sftware prduct Quality Requirements and Evaluatin (SQuaRE) - Quality requirements. ISO/IEC 2504n - Quality Evaluatin Divisin. Nrmy, které tvří tut část SQuaRE, bsahují pžadavky, dpručení a pkyny pr hdncení sftwarvéh prduktu, ať už je prvádí zákazník, nezávislý hdntitel neb vývjář. K dispzici jsu tyt nrmy: ISO/IEC 25040:2011 Systems and sftware engineering - Systems and sftware Quality Requirements and Evaluatin (SQuaRE) - Evaluatin prces, ISO/IEC 25041:2012 Systems and sftware engineering - Systems and sftware Quality Requirements and Evaluatin (SQuaRE) - Evaluatin guide fr develpers, acquirers and independent evaluatrs. SYSTÉMOVÁ INTEGRACE 4/2012 137

Jarmila Pavlíčkvá ISO/IEC 25050 25099 SQuaRE Extensin Divisin. Tyt nrmy zahrnují pžadavky na kvalitu tzv. krabicvéh sftwaru (Cmmercial Off-The-Shelf sftware) a frmáty pr ppis pužitelnsti. K dispzici je tat nrma: ISO/IEC TR 25060:2010 Systems and sftware engineering - Systems and sftware prduct Quality Requirements and Evaluatin (SQuaRE) - Cmmn Industry Frmat (CIF) fr usability: General framewrk fr usability-related infrmatin. 2.2 Mdely kvality SQuaRE Kvalita systému je pdle nrmy [ISO25010, 2011] definvána takt: Kvalita systému je určena míru d jaké systém splňuje stanvené a čekávané ptřeby jedntlivých zúčastněných stran, a tím pskytuje hdntu. Tyt stanvené a čekávané ptřeby jsu v řadě nrem SQuaRE představvány mdely kvality, které ppisují kvalitu výrbků pmcí charakteristik, které se dále dělí d pdchatakteristik. Tyt mdely pskytují sadu kvalitních vlastnstí relevantních pr širku škálu zúčastněných stran, jak jsu: vývjáři sftwaru, systémví integrátři, ddavatelé, zákazníci a uživatelé. V sučasné dbě jsu v SQueRE k dispzici 3 mdely kvality: mdel kvality při pužívání, mdel kvality prduktu, mdel kvality dat. První dva uvedené mdely ppisuje nrma ISO/IEC 25010, mdel kvality dat nrma ISO/IEC 25012. Udržvatelnst je definvána jak jedna z charakteristik mdelu kvality prduktu. Celý mdel kvality prduktu bsahuje následující charakteristiky a pdcharakteristiky. Mdel kvality prduktu Funkcinalita Splehlivst Kmpletnst funkcí Zralst Vhdnst funkcí Dstupnst Správnst funkcí Odlnst k chybám Účinnst (výknnst) Využitelnst Dba prvádění Bezpečnst Využití zdrjů Důvěrnst Kapacita Integrita Kmpatibilita Neppiratelnst Interperabilita Odpvědnst Kexistence Pravst Pužitelnst Udržvatelnst Snadná Mdularita zapamatvatelnst Znvupužitelnst Snadná naučitelnst Analyzvatelnst Prvzuschpnst Mdifikvatelnst Odlnst vůči chybám Testvatelnst uživatele Přensitelnst Estetika uživatelskéh Přizpůsbivst rzhraní Intalvatelnst Přístupnst Přemístitelnst 138 SYSTÉMOVÁ INTEGRACE 4/2012

Udržvatelnst je pdle nrmy ISO/IEC 20010 definvána jak: stupeň účinnsti a efektivity, s jaku lze prdukt neb systém upravit k tmu určenými správci. V pznámkách k tét charakteristice je pak uveden, že tyt mdifikace mhu zahrnvat pravy, vylepšení neb úpravy sftwaru kvůli změnám v prstředí neb v pžadavcích a funkční specifikaci. Také se zde uvádí, že udržvatelnst zahrnuje i instalaci aktualizací a upgradů. Jedntlivé pdcharakteristiky jsu pak definvány takt: Mdularita udává, z jakých jedntlivých slžek je systém neb pčítačvý prgram slžen, a jaký dpad má změna jedné kmpnenty na statní slžky systému. Znvupužitelnst říká, d jaké míry může být kmpnenta (slžka, mdul) pužita ve více než jednm systému neb při budvání jiných aktiv. Analyzvatelnst představuje stupeň účinnsti a efektivity, s jaku je mžné psudit dpad změny jedné či více částí na celý prdukt neb systém, neb diagnstikvat nedstatky a příčiny pruch neb identifikvat části, které mají být změněny. Mdifikvatelnst je míra, v níž lze výrbek neb systém účinně a efektivně změnit bez th, že by vznikaly chyby, které by měly vliv na stávající kvalitu výrbku. Testvatelnst je stupeň účinnsti a efektivity, s níž lze testvat, zda jsu splněna stanvena kritéria pr systém, prduktu neb jeh sučásti. Pr každu charakteristiku pak nrmy definují, pmcí jakých metrik je mžné kvalitu sledvat. Pr ilustraci ppíšeme jednu z metrik, které jsu pr udržvatelnst definvány: 1 Efektivnst změnvéh cyklu určuje, zda je prblém uživatele (jím zjištěná chyba neb nedstatek v aplikaci) vyřešen v akceptvatelné dbě. Tat metrika se určuje jak průměrná dba trvání vyřízení pžadavku. Pr kvalitní systém platí, že hdnta má být c nejnižší. Mdel kvality prduktu tedy definuje, jaké charakteristiky kvalitu vlivňují a jak lze tyt charakteristiky sledvat pmcí metrik. Metriky jsu definvány becně a nezhledňují specifika jedntlivých typů prgramvacích jazyků. Rada metrik je navržena až pr htvý prdukt v prvzu, jak je vidět i z výše uvedenéh příkladu metriky. Nrmy kvality nám tedy pmhu při určvání, jak kvalitní sftware byl vytvřen. Neřeknu nám však, jak přesně pstupvat při tvrbě kvalitníh systému. 3. Faktry vlivňující kvalitu kódu Pr vytvření kvalitníh sftwaru je tedy při jeh tvrbě nutné věnvat pzrnst faktrům, které jedntlivé charakteristiky kvality vlivňují. Další část článku se tedy bude věnvat faktrům, které se vztahují k udržvatelnsti aplikace napsané v bjektvém prgramvacím jazyce. Pr snadnu udržvatelnst výslednéh prduktu je velmi důležitá kvalita prgramvéh kódu aplikace. Celá řada zdrjů se zabývá jedntlivými faktry neb skupinami faktrů, které vlivňují kvalitu prgramvéh kódu aplikací napsaných v bjektvých prgramvacích jazycích. 1 Tat knkrétní metrika je převzata z nrmy ISO/IEC 9126-2, prtže nrmy z řady ISO/IEC 2502n, které mají metriky bsahvat, ještě nebyly vydány. SYSTÉMOVÁ INTEGRACE 4/2012 139

Jarmila Pavlíčkvá Faktrů, které vlivňují kvalitu kódu, byl v dbrné literatuře identifikván velké mnžství. Je mžné je rzdělit d těcht skupin: pravidla pr zápis čitelnéh a přehlednéh zdrjvéh kódu, ddržvání základních bjektvých principů, implementace návrhvých vzrů, pravidla správnéh bjektvéh návrhu (bjektvé heuristiky). 3.1 Pravidla pr zápis kódu Tat blast je asi nejlépe zdkumentvána. Základním mtem tét skupiny pravidel pr zápis kódu a z nich vyplývajících faktrů vlivňujících kvalitu kódu, je tvrzení Martina Fwlera uvedené v knize refaktringu: Kód, kterému rzumí pčítač, umí napsat každý hlupák. Dbří prgramátři píší kód, kterému rzumí lidé. [Fwler, 1999, str. 15] V mnha zdrjích např. [McCnnell, 2005], [Pecinvský, 2007] neb [Henney, 2010] se v suvislsti s kvalitu zdrjvých kódů hvří např. : čitelnsti kódu, dkumentaci kódu, frmátvání kódu, ddržvání jmenných knvenci, slžitsti kódu, délce kódu, pužívání prblematických knstrukcí, duplicity v kódu, princip DRY (dnt repeat yurself). Tat skupina faktrů je nejen dbře zdkumentvána, ale existují i nástrje, které pmáhají identifikvat prblematická místa v kódu. Těcht nástrjů je celá řada a jsu navrženy pr detekvání příliš dluhých metd, příliš slžitých metd, pužívání špatně čitelných prgramvých knstrukcí apd. Nástrje jsu závislé na knkrétním prgramvacím jazyce, reflektují většinu knvence bvykle pužívané kmunitu pužívající tent knkrétní jazyk. Například pr prgramvací jazyk Java je mžné uvést nástrje PMD (http://pmd.surcefrge.net) a FindBugs (http://findbugs.surcefrge.net). Pmcí PMD je mžné kntrlvat výskyt více než 200 prgramvých knstrukcí, které jsu značvány jak prblematické. Označuje také prblémy spjené s neddržváním standardních Java knvencí pr pjmenvávání jedntlivých prvků kódu. Hledá také příliš slžité a příliš dluhé metdy a třídy. Je mžné přidat i rzšíření kntrlující duplicity v kódu. Findbugs je další prgram hledající prblematické knstrukce v kódu, tent nástrj ale analyzuje bytecde. Některé kntrly jsu shdné s PMD, ale mnhé se liší. Kmbinací bu je mžné dhalit více prblémů. 3.2 Ddržvání základních principů bjektvéh prgramvání Ačkli by se mhl zdát, že bjektvé prgramvání již je pměrně vyspělu disciplínu sftwarvéh inženýrství a jeh základní principy jsu již pevně uktveny, pak je pravdu. Bhužel výčet základních bjektvých principů není v jedntlivých zdrjích shdný. V mnha zdrjích např. [Čada, 2009], [Eckel, 2001a] jsu jak základní bjektvé principy uváděny dědičnst, zapuzdření a plymrfismus. V pslední dbě se však 140 SYSTÉMOVÁ INTEGRACE 4/2012

Faktry vlivňující udržvatelnst kódu aplikací vytvřených pmcí bjektvě rientvaných prgramvacích jazyků bjevují názry, že za základní bjektvé principy by měly být pvažvány zapuzdření, skládání bjektů a identita bjektů. Některé zdrje např. [Page-Jnes, 2000] pak uvádějí kmbinaci těcht principů a přidávají ještě další jak skrývání implementace neb existenci tříd. Nejdůležitější bjektvu vlastnstí z hlediska udržvatelnsti kódu je zapuzdření. Pjem zapuzdření (encapsulatin) minimálně ppisuje princip umísťvání dat a suvisejících metd k sbě d jednh bjektu, d jedné metdy, atd. Při zapuzdřvání bjektů je vhdné ddržvat tat pravidla: Snažit se umístit data a perace pracující s daty d stejné třídy. Třída by neměla bsahvat jen část dat či část metd, ani by neměla bsahvat více dat či metd, než je nutné pr činnst, za kteru třída dpvídá. Jedntlivé zprávy psílané instanci by pkud mžn měly být na sbě nezávislé, metdy by měly pžadvat jen nezbytně nutné parametry. Každý bjekt pskytuje svému klí mžnst pslat mu určité zprávy, ve většině bjektvých prgramvacích jazyků je psílání zpráv realizván pmcí vlání metd a bhužel také pmcí příméh přístupu k datvým atributům. Seznam těcht metd (a dstupných datvých atributů) je značván jak veřejné rzhraní. V tmt rzhraní by neměly být zahrnuty datvé atributy, ty by měly být schvány uvnitř instance a měly by být přístupné puze pmcí metd. Důvdem je, že pmcí metd může dcházet k dalším kntrlám a instance se tak nemůže dstat d nesprávnéh stavu. Instance by měla změně svéh stavu rzhdnut sama. Změna stavu je reakcí na pslání zprávy, ale pkud je tat zpráva z hlediska instance nesmysl, nebude stav změněn. Dalším aspektem je t, že klí může být jedn, jakým způsbem instance změnu svéh stavu prvede, algritmus není veřejný. Tent přístup se nazývá ukrývání implementace (implementatin hiding). Z hlediska kvality návrhu je nejprblematičtější bjektvu vlastnstí dědičnst. Již tím, že umžňuje třídu předka rzšířit další vlastnsti uvedené v samstatné třídě, narušuje zapuzdření. Dbře pužitá dědičnst však může vést k zvýšení prduktivity práce při tvrbě aplikace i umžnit snadné buducí rzšiřvání aplikace. Bhužel v minulsti byla dědičnst v mnha aplikacích využívána nesprávně, cž vedl k zavedení pravidla (heuristiky): dávejte přednst skládání před dědičnstí. Pr pužívání dědičnsti vznikl také něklik pravidel, nejznámější z nich je Substituční princip Liskve. 3.3 Implementace návrhvých vzrů Půvd myšlenka návrhvých vzrů nepchází z blasti sftwarvéh inženýrství, ale z architektury. Jejím autrem je Christpher Alexander. Z jeh definice vzru Každý vzr ppisuje prblém, který se v našem prstředí neustále vyskytuje. Ptm ppisuje jádr řešení danéh prblému tak, že nám umžňuje tt řešení pužívat třeba milinkrát, aniž bychm t dělali dvakrát stejným způsbem. (pužit český překlad uvedený v [Gamma at all, 2003 str. 22]) vycházejí i autři becně uznávané publikace v blasti návrhvých vzrů pr bjektvé aplikace [Gamma at all, 2001]. Tat kniha pprvé vyšla v rce 1994, d té dby se dčkala řady dtisků a nvých vydání (viz citace autrky textu, která má k dispzici vydání z rku 2001). V prgramátrské kmunitě je skupina autrů tét publikace bvykle značvána jak Gang f 4. Z jejich práce pak vychází řada dalších ppisů návrhvých vzrů např. [Pecinvsky, 2007], SYSTÉMOVÁ INTEGRACE 4/2012 141

Jarmila Pavlíčkvá [Hlub, 2004] neb [Metsker, 2002], [Freeman,2004], které se snaží jejich pdrbnější výklad neb ppis v jiném bjektvě rientvaném prgramvacím jazyce (půvdním jazykem pr ppis příkladů ve výše uvedené publikace je C++). Vzhledem k stále větší slžitsti struktury aplikací vznikají i vzry, které se nevztahují puze ke kódu, ale i k architektuře celé aplikace. V tét blasti lze za jednu ze základních publikací pvažvat knihu Martina Fwlera a Davida Rice Patterns f enterprise applicatin architecture [Fwlet, Rice, 2003]. Pkud tedy jsu v aplikaci pužity návrhvé vzry, vede t ve většině případů k lépe spravvatelnému a udržvatelnému kódu. Jestliže je pužití vzru i náležitě zdkumentván, mhu další prgramátři, kteří budu v buducnu spravvat kód, tmut kódu lépe rzumět, prtže znalst návrhvých vzrů by měla patřit k základnímu vzdělání prgramátra. Pdbně jak existují návrhvé vzry, které identifikují správné a věřené způsby, jak řešit neustále se pakující prblémy, existují i antivzry. Jsu t v praxi pužívaná řešení pakujících se prblémů, u kterých byl prkázán, že vedu k prblémům při správě a rzšiřvání aplikací, ve kterých byly pužity. Prgramátři by se tedy měli věnvat nejen tmu, aby v případě, kdy je t vhdné, vzr pužili, ale také na t, aby v řešení nepužili antivzry. Katalg návrhvých antivzrů byl publikván na webu např. na stránce http://c2.cm/cgi/wiki?antipatternscatalg. 3.4 Pravidla správnéh bjektvéh návrhu bjektvé heuristiky Tat skupina pravidel, a z nich vyplývajících faktrů vlivňujících kvalitu kódu aplikací napsaných v bjektvých prgramvacích jazycích, je nejbsáhlejší. Neexistuje jedna publikace, která by shrnvala vše. Zásady je mžné najít v různých publikacích např. [McCnell, 2005], [Riel, 1996], [Paleta, 2003] neb [Henney, 2010]. Již v předchzí pdkapitle základních bjektvých principech byla zmíněna dvě pravidla. V literatuře je mžné najít mnh dalších. Jen namátku některá z nich: zapuzdřete všechny prměnné, upřednstňujte skládání před dědičnstí, prgramujte prti rzhraní ne prti implementaci, usilujte vlně spjený návrh mezi bjekty, které splupracují, třídy mají být tevřené pr rzšiřvání a uzavřené pr změnu, mluv jen se svými přáteli, nevlejte nám, zavláme vás (Hllywdský princip), třída by měla mít jen jeden důvd ke změně, princip brácené závislsti Dependency Inversin principle, zapuzdření a dputání částí kódu, které by se mhly měnit, sudružnst (chesin): jedna entita X jeden úkl, návrh řízený dpvědnstmi, minimální vzájemná prvázanst (cupling), nepdřizvat návrh snahám maximální efektivitu. Tent článek si neklade za cíl ppsat všechny heuristiky a pravidla. Cílem je upzrnit na jejich existenci. 142 SYSTÉMOVÁ INTEGRACE 4/2012

Faktry vlivňující udržvatelnst kódu aplikací vytvřených pmcí bjektvě rientvaných prgramvacích jazyků 4. Závěr V tmt článku byly představeny některé z faktrů, které vlivňují kvalitu kódu aplikací. Je třeba zdůraznit, že ke správnému využívání všech výše uvedených pravidel, principů a heuristik, je krmě jejich základní znalsti nutná i určitá zkušenst a praxe. Sftwarvé firmy by prt neměly zapmínat na průběžné vzdělávání svých prgramátrů. Příspěvek také upzrňuje na t, že charakteristiky a pdcharakteristiky uvedené v nrmách kvality, nebsahují metriky, které by přím věřvaly tyt faktry. Nenajdete metriku, která by se zabývala existencí návrhvých vzrů v kódu neb správným zapuzdřením bjektů. Pžití vzrů, správné využívání bjektvých principů, čitelný kód a řízení se bjektvými heuristikami se prmítne d lepších výsledků metrik jak je např. v příspěvku uvedená metrika průměrné dby na vyřešení pžadavku uživatele. Zdrje [Čada, 2009] ČADA, Ondřej. Objektvé prgramvání: naučte se pravidla bjektvéh myšlení. Praha: Grada, 2009. 200 s. ISBN 978-80-247-2745-5. [Duval, Matyas, 2007] DUVALL, Paul M.; MATYAS, Steve; GLOVER, Andrew. Cntinuus integratin: imprving sftware quality and reducing risk. Upper Saddle River: Addisn-Wesley, 2007. ISBN 978-0-321-33638-5. [Eckel, 2001a] ECKEL, Bruce. Myslíme v jazyku Java : knihvna prgramátra. Praha: Grada, 2001. ISBN 80-247-9010-6. [Eckel, 2001b] ECKEL, Bruce. Myslíme v jazyku Java : knihvna zkušenéh prgramátra. Praha : Grada, 2001. ISBN 80-247-0027-1. [Fwler, Rice, 2003] FOWLER, Martin; RICE, David. Patterns f enterprise applicatin architecture. Bstn: Addisn-Wesley, 2003. ISBN 0-321-12742-0. [Fwler, 1999] FOWLER, Martin et al. Refactring: imprving the design f existing cde. Reading: Addisn-Wesley, 1999. xxi, 431 s. The Addisn-Wesley bject technlgy series. ISBN 0-201-48567-2. [Freeman, 2004] Freeman, Eric a Freeman, Elisbeth. Head first design patterns. Sebastpl: O'Reilly, 2004. xxxvi, 638 s. ISBN 0-596-00712-4. [Gamma at all, 2001] GAMMA, Erich; HELM, Richard; JOHNSON, Ralph; VLISSIDES, Jhn. Design patterns : elements f reusable bject-riented sftware. Bstn: Addisn-Wesley, 2001. ISBN 0-201-63361-2. [Gamma at all, 2003] GAMMA,, Erich et al. Návrh prgramů pmcí vzrů: stavební kameny bjektvě rientvaných prgramů. Praha: Grada, 2003. 386 s. Mderní prgramvání. ISBN 80-247-0302-5. [Henney, 2010] HENNEY, Kevlin. 97 klíčvých znalstí prgramátra. Brn : Cmputer Press, 2010. 240 s. ISBN 978-80-251-3143-9. [Hlub, 2004] HOLUB, Allen I. Hlub n patterns: learning design patterns by lking at cde. Berkeley: Apress, 2004. xv, 414 s. ISBN 1-59059-388-X. [Hrstmann, 2006] HORSTMANN, Cay. Object - Oriented Design & Patterns. Secnd Editin. New Yrk : Jhn Wiley & Sns, 2006. xix, 450 s. ISBN 0-471-74487-5. SYSTÉMOVÁ INTEGRACE 4/2012 143

Jarmila Pavlíčkvá [Jacbsn at all, 1999] JACOBSON, Ivar; RUMBAUGH, James ; BOOCH, Grady. The unified sftware develpment prcess. Reading: Addisn-Wesley, 1999. ISBN 0-201-57169-2. [Kerievsky, 2005] KERIEVSKY, Jshua. Refactring t Patterns. Bstn : Addisn- Wesley, 2005. xxvi, 367 s. ISBN 0-321-21335-1. [McCnnell, 2005] McCONNELL, Steve. Dknalý kód: umění prgramvání a techniky tvrby sftware. Brn: Cmputer Press, 2005. ISBN 80-251-0849-X. [Metsker, 2002] METSKER, Steven Jhn. Design patterns Java wrkbk. Bstn: Addisn-Wesley, 2002. xviii, 475 s. Sftware patterns series. ISBN 0-201-74397-3. [Paleta, 2003] PALETA, Petr. C prgramátry ve škle neučí: aneb Sftwarvéinženýrství v reálné praxi. Brn: Cmputer Press, 2003. xx, 337 s. ISBN 80-251-0073-1. [Page-Jnes, 2000] PAGE-JONES, Meilir. Fundamentals f bject-riented design in UML, New Yrk: Addisn-Wesley, 2000. ISBN 0-201-69946-X. [Pecinvský, 2007] PECINOVSKÝ, Rudlf. Návrhvé vzry. Brn : Cmputer Press, 2007. 527 s. ISBN 978-80-251-1582-4. [Riel, 1996] RIEL, Arthur J. Object-riented design heuristics. Reading: Addisn- Wesley, 1996. ISBN 0-201-63385-X. [Riley, 2006] RILEY, David D. The Object f Java : Intrductin t Prgramming Using Sftware Engineering Principles. Secnd Editin. Bstn: Pearsn Addisn Wesley, 2006. xxix, 769 s. ISBN 0-321-33158-3. Mezinárdní nrmy [ISO9126-1,2000] ISO/IEC 9126-1: Sftware Engineering Prduct Quality Part 1: Quality Mdel. 2000. [ISO9126-2,2001] ISO/IEC 9126-2: Sftware Engineering Prduct Quality Part 2: External Metrics, 2001. [ISO9126-3,2001] ISO/IEC 9126-3: Sftware Engineering Prduct Quality Part 3: Internal Metrics, 2001. [ISO9126-4,2001] ISO/IEC 9126-4: Sftware Engineering Prduct Quality Part 4: Quality in Use Metrics, 2001. [ISO25000,2005] ISO/IEC 25000: Sftware Engineering: Sftware Prduct Quality Requirements and Evaluatin (SQuaRE) Guide t SQuaRE, 2005. [ISO25010,2011] ISO/IEC 25010: Systems and sftware engineering - Systems and sftware Quality Requirements and Evaluatin (SQuaRE) - System and sftware quality mdels 2011. [ISO25020,2005] ISO/IEC 25000: Sftware Engineering : Sftware Prduct Quality Requirements and Evaluatin (SQuaRE) Measurement Reference Mdel and Guide, 2005. JEL: M15 144 SYSTÉMOVÁ INTEGRACE 4/2012