statnice:vyvoj:otazka20
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revision | |||
| statnice:vyvoj:otazka20 [06.05.2008 16:06] – xvalo07 | statnice:vyvoj:otazka20 [18.05.2008 11:00] (current) – xvalo07 | ||
|---|---|---|---|
| Line 9: | Line 9: | ||
| * Rozhodněte se, zda bude nutné znovu provádět konceptuální analýzu systému, nebo zda je možné použít strukturovanou specifikaci. Své rozhodnutí zdůvodněte. | * Rozhodněte se, zda bude nutné znovu provádět konceptuální analýzu systému, nebo zda je možné použít strukturovanou specifikaci. Své rozhodnutí zdůvodněte. | ||
| * Bude možné se s tím vyrovnat nějak obecně (obecná pravidla vztahu mezi strukturovaným a objektově-orientovaným popisem)? Pokud ano, pokuste se uvést jejich příklad, pokud ne, odůvodněte. | * Bude možné se s tím vyrovnat nějak obecně (obecná pravidla vztahu mezi strukturovaným a objektově-orientovaným popisem)? Pokud ano, pokuste se uvést jejich příklad, pokud ne, odůvodněte. | ||
| + | |||
| + | ===== Teorie ===== | ||
| + | |||
| + | Drbal – Základy sotwarového inženýrství str. 23 | ||
| + | |||
| + | Programování – prapůvodně nebyly žádné metody a psaní programu byla expertní záležitost jeho autora. Jak se zvyšovala požadovaná složitost, tento přístup byl neudržitelný a vyžadovalo to nové přístupy: | ||
| + | |||
| + | Modulární programování – princip rozdělení problému do jednodušších samostatných mentálně zvládnutelných celků. Není to samostatný princip – zahrnuje několik různých dalších metod: | ||
| + | |||
| + | Normované programování – zahrnovalo v podstatě souhrny větvení podle předchozích stavů uložených v proměnných (prostě zběsilé stromy IFů). Používalo se pro výpočty standardizovaných dávkových úloh. Dnes se příliš nevyužívá | ||
| + | |||
| + | Strukturované programování – má dobré rozpracovaný základ – prof. Dijkstra a Jackson. Program se skládá ze sekvencí, iterací a podmínek a je rozdělen do funkcí na různých úrovních abstrakce. Strukturované programování v sobě dobře inkorporuje vrstevnou architekturu a přináší možnost dobrého mentálního rozdělení problému. Bylo rozpracováno i metodicky – Jackson Structured Programming. Nevýhodou je, že programy jsou odvozené od struktury dat a jsou od dat oddělené. Proto se hodí pro zpracování jednoho druhu dat a jakákoliv změna předpokládá změnu celého systému. Problém je i se znovupoužitelností programového kódu, kterou strukturované programování nepředpokládá, | ||
| + | |||
| + | Objektově orientované programování přináší spojení kódu s daty – entity zastoupeny objektem a když po něm něco chceme, je nám jedno, jak to udělá. Dědičnost, | ||
| + | |||
| + | Inferenční programování – speciální metoda používaná v AI. Data jsou uložena v podobě tzv. objektů (ty ale nemají metody) a ta procházejí strukturou podmínek. Když nějaká podmínka platí, dojde k nějaké úpravě dat a procházejí se podmínky znovu od začátku. Když neplatí, program končí. Program je de facto daty řízen a má těžko predikovatelný výstup a chování. Hodí se pro specifické úlohy. | ||
| + | |||
| + | Extrémní programování – zvláštní metoda programování, | ||
| + | |||
| + | Podrobný popis strukturovaného 25 a objektového 27. | ||
| + | |||
| + | Použití jednotlivých metod a metodik záleží od charakteru a rozsahu práce, kterou děláme. Pro některé výpočetní úlohy, pro programování her, pro hromadné zpracování dat může být výhodný strukturovaný přístup. Pro většinu interaktivních aplikací se naopak silně vžil přístup objektový. Čím větší projekt, tím větší nárok na metodiku a metody analýzy a projektování. | ||
| + | ===== Praxe ===== | ||
| + | |||
| + | Konceptuální specifikace by měla být zcela nezávislá na jakékoliv technologii, | ||
| + | |||
| + | Obecně vzato bych to předělal. Samozřejmě funkce v oblasti strukturovaného programování mají blízko k metodám, data mohou mít podobné členění, využití principu inverze (strukturované) – a spojení s daty. Spousta věcí, jako DFD, ERD diagramy dat, atd. můžou zůstat. | ||
statnice/vyvoj/otazka20.1210082810.txt.gz · Last modified: 06.05.2008 00:00 (external edit)
