Rok 2000 ve světě informačních technologií

V předchozích dílech jsme si probrali aplikace napsané v jednotlivých programovacích jazycích, popsali jsme proces jeji...


V předchozích dílech jsme si probrali aplikace napsané v jednotlivých
programovacích jazycích, popsali jsme proces jejich ošetření ve fázích
stanovení postupů, plánování, inventarizace, vyhledávání, analýzy kódu, jeho
opravy a testování. Dnes navážeme popisem jednotlivých opravných technik.
Na úvod se jenom krátce zmíníme o údržbě aplikací, připravených pro rok 2000,
která je nezbytná v případech zásahu do kódu v budoucnosti. Pro fázi údržby je
důležitý tzv. Clean Management, který umožňuje návrat k originálnímu kódu,
pokud došlo k nevyžádaným změnám v kódu. Volbou opravné metody je rovněž
ovlivněna komplexnost, náklady a kvalita budoucí údržby aplikace. Například
použitím techniky Windowing a Compression je přidáván opravný kód, který je pak
méně čitelný a složitěji se udržuje.
Opravné techniky a strategie
V principu existují 3 opravné techniky zdrojového kódu, mezi které patří:
1.Expanze (expansion)
2.Technika oken (windowing)
3.Komprese (compression)
V některých případech se lze také setkat s technikou tzv. zapouzdření
(encapsulation), která se však nepoužívá příliš často. Porovnání jednotlivých
technik je zřejmé z tabulky.
Expanze
Tato technika je založena na rozšíření dvouciferného označení roku v databázích
i zdrojových kódech na čtyřciferné. Expanze nabízí permanentní opravu
zdrojového kódu (lépe řečeno až do roku 10 000). V porovnání s jinými
technikami se jedná o velmi složité a drahé řešení, neboť vyžaduje zásah do dat
a struktury databází. Situace se může značně komplikovat v případě, kdy jedna
databáze je sdílena několika aplikacemi. Pokud např. aplikace A přistupuje do
databáze X a do stejné databáze přistupuje i aplikace B, pak je nutné při změně
aplikace A a databáze X počítat i se změnami v aplikaci B.
Velmi úzce s opravou zdrojového kódu a databází souvisí také oprava
uživatelských rozhraní aplikací. Řada uživatelů interpretuje např. datum
12/31/99 správně na 31. prosinec 1999. V řadě případů však může být
interpretace dvouciferného označení roku pro koncové uživatele značně
problematická (např. 01/14/01). Pro podnikové typy aplikací, se kterými pracují
desítky, stovky i tisíce uživatelů, lze doporučit jednotný standardizovaný
čtyřciferný formát roku pro vstup i prezentaci dat.
Bezesporu předností této techniky jsou minimální zásahy do aplikační logiky,
jak lze vidět na následujícím příkladě:
DUE-DATE Picture 9(6)
změnou na
DUE-DATE Picture 9(8)
V případě datového porovnávání a datové aritmetiky nevyžaduje žádné další změny
v kódu. Z tohoto důvodu je pak pravděpodobnost vzniku chyb nižší a přehlednost
a srozumitelnost kódu zůstává zachována pro pozdější údržbu.
Technika časových oken
Opravná technika časových oken (windowing) je založena na vytvoření jednoho
nebo více takzvaných "oken" a správné interpretaci dvouciferného označení roku
v tomto okně. Na první pohled možná nesrozumitelné vyjádření si ukažme na
konkrétním příkladu:
Vytvořme 100leté časové okno 1950-2049. Veškeré dvojciferné údaje v časovém
rozmezí 1950-1999 jsou chápány jako data století dvacátého, údaje v časovém
rozmezí 2000-2049 pak jako data 21. století. Např. 59, 71, 89 se interpretují
jako 1959, 1971, 1989 a údaje 00, 10, 47 se interpretují jako 2000, 2010, 2047.
Prakticky by tato technika byla realizována následovně:
IF ROK > 49 THEN STOLETI = 19...
IF ROK < 50 THEN STOLETI = 20...
V souvislosti s časovými okny bývá také používán pojem tzv. "pivot year". Pivot
year je definován jako dvojciferné číslo roku, které identifikuje dolní hranici
roku ve stoletém časovém okně. Např. pivot year 50 specifikuje časové okno 1950
až 2049. Zaznamenaná data 59, 71, 89 pak specifikují 20. století (neboť 59 >
pivot year), 00, 10, 47 specifikují 21. století (neboť 00 < pivot year). Tento
koncept "středního roku", jak bychom jej také mohli pojmenovat, je vhodný
především pro programátory, neboť zjednodušuje práci se zdrojovým kódem. V
případě vyhotovování dokumentace je vhodnější specifikovat celé časové okno,
např. 1950-2049.
Velkou výhodou této techniky je možnost zachování stávající struktury databáze
a dat, která jsou v ní obsažena. Aplikační logika obsahuje opravný kód, který
umožňuje správně interpretovat dvojciferné označení roku. Velkou výhodou
techniky časových oken v porovnání s technikou expanze je její nižší
nákladovost a časová náročnost. Její zápornou vlastností je především nezbytný
zásah do zdrojového kódu a s tím související možnost vzniku programátorských
chyb.
V mnoha případech postačuje k ošetření kódu aplikace jediné časové okno. V
těchto případech je úprava zdrojového kódu jednoduchá a počet potenciálních
programátorských chyb malý. V případě, že některá data nelze jednoduše včlenit
do stoletého okna, je možné provést expanzi z dvojciferného na čtyřciferné
označení roku a pro zbývající část kódu pak ponechat jediné časové okno. V
případě použití více oken je nutné dbát zvýšené opatrnosti.
Při této metodě je možné použít více typů oken:
Pevná okna (Fixed Windows) pro aplikaci je definované jediné časové okno, které
je stálé a neměnné. Lze jej velmi jednoduše nalézt a změnit, pokud to bude
údržba aplikace vyžadovat.
Posuvná okna (Movable Windows) v tomto případě je časové okno parametrizované a
v průběhu aplikace se dynamicky mění v závislosti na logické části aplikace.
Klouzavá okna (Sliding Windows) časové okno je parametrizované a v závislosti
na aktuálním datu se posouvají jeho hranice. Např. v roce 1998 bude stoleté
okno 1969-2068, v roce 1999 bude 1970-2069, v roce 2000 1971-2070. Jak vyplývá
z příkladu, okno "klouže" po jednotlivých letech.
Technika klouzavých oken se v porovnání s předchozími dvěma technikami
složitěji implementuje, zneprůhledňuje aplikační logiku a může mít výrazný vliv
na vznik chyb v programu. Z těchto důvodů je tato technika nejméně používaná.
8 1669 / ram









Komentáře
K tomuto článku není připojena žádná diskuze, nebo byla zakázána.