Doménové inženýrství - Domain engineering
Doménové inženýrství, také zvaný produktová řada inženýrství, je celý proces opětovného použití znalost domény při výrobě nových software systémy. Je to klíčový koncept v systematické podobě opětovné použití softwaru. Klíčovou myšlenkou systematického opětovného použití softwaru je doména. Většina organizací pracuje pouze v několika doménách. Opakovaně vytvářejí podobné systémy v dané doméně s variantami, aby vyhovovaly různým potřebám zákazníků. Spíše než budování každé nové varianty systému od nuly lze dosáhnout významných úspor opětovným použitím částí předchozích systémů v doméně k vytvoření nových.
Proces identifikace domén, jejich ohraničení a objevování shod a variabilit mezi systémy v doméně se nazývá analýza domény. Tyto informace jsou zachyceny v modelech, které se používají ve fázi implementace domény k vytváření artefaktů, jako jsou opakovaně použitelné komponenty, a jazyk specifický pro doménu, nebo generátory aplikací, které lze použít k vytvoření nových systémů v doméně.
Účel
Doménové inženýrství je navrženo ke zlepšení kvality vyvinutých softwarových produktů prostřednictvím opětovného použití softwarových artefaktů.[1] Doménové inženýrství ukazuje, že nejrozvinutější softwarové systémy nejsou nové systémy, ale spíše varianty jiných systémů ve stejné oblasti.[2] Výsledkem je, že díky využití doménového inženýrství mohou podniky maximalizovat zisky a zkrátit dobu uvedení na trh pomocí konceptů a implementací z předchozích softwarových systémů a jejich aplikací v cílovém systému.[1][3] Snížení nákladů je patrné i během fáze implementace. Jedna studie ukázala, že použití jazyků specifických pro doménu umožnilo velikost kódu, a to v obou metody a počet symboly, které mají být sníženy o více než 50%, a celkový počet řádky kódu snížit o téměř 75%.[4]
Doménové inženýrství se zaměřuje na zachycení znalostí shromážděných během softwarové inženýrství proces. Díky vývoji opakovaně použitelných artefaktů lze komponenty znovu použít v nových softwarových systémech za nízkou cenu a vysokou kvalitu.[5] Protože to platí pro všechny fáze vývojového cyklu softwaru „Doménové inženýrství se také zaměřuje na tři primární fáze: analýzu, návrh a implementaci, paralelní aplikační inženýrství.[6] To vytváří nejen sadu implementace softwaru komponenty relevantní pro doménu, ale také opakovaně použitelné a konfigurovatelné požadavky a návrhy.[7]
Vzhledem k růstu dat na webu a růstu Internet věcí, přístup doménového inženýrství se stává relevantním i pro jiné obory.[8] Vznik hlubokých řetězců webových služeb zdůrazňuje, že koncept služeb je relativní. Webové služby vyvinuté a provozované jednou organizací mohou být použity jako součást platformy jinou organizací. Jelikož služby mohou být použity v různých kontextech, a proto vyžadují různé konfigurace, může design rodin služeb těžit z přístupu doménového inženýrství.
Fáze

Doménové inženýrství, stejně jako aplikační inženýrství, sestává ze tří primárních fází: analýzy, návrhu a implementace. Pokud se však softwarové inženýrství zaměřuje na a singl systém, doménové inženýrství se zaměřuje na a rodina systémů.[6] Dobrý model domény slouží jako reference k řešení nejasností později v procesu, úložiště znalostí o vlastnostech a definici domény a specifikace vývojářům produktů, které jsou součástí domény.[9]
Analýza domén
Analýza domény se používá k definování domény, shromažďování informací o doméně a vytváření a model domény.[10] Prostřednictvím použití celovečerní modely (původně koncipován jako součást analýza domény zaměřená na funkce metoda), analýza domény má za cíl identifikovat společné body v doméně a různé body v doméně.[11] Pomocí analýzy domén je vývoj konfigurovatelný požadavky a architektury, spíše než statický konfigurace, které by byly vytvořeny tradičním přístupem aplikačního inženýrství, je možné.[12]
Analýza domén se výrazně liší od požadavky inženýrství, a jako takové jsou tradiční přístupy k odvozování požadavků neúčinné pro vývoj konfigurovatelných požadavků, jaké by byly přítomny v modelu domény. Aby bylo možné efektivně aplikovat doménové inženýrství, je třeba v dřívějších fázích projektu zvážit opětovné použití životní cyklus vývoje softwaru. Použitím výběru funkcí z vyvinutých modelů funkcí je zvážení opětovného použití technologie provedeno velmi brzy a lze je adekvátně použít v celém procesu vývoje.[13]
Analýza domény je primárně odvozena z artefaktů vytvořených z minulých zkušeností v doméně.[10] Stávající systémy, jejich artefakty (např konstrukční dokumenty, dokumenty s požadavky a uživatelské příručky ), standardy a zákazníci jsou všechny potenciální zdroje vstupu pro analýzu domény.[10][14] Na rozdíl od inženýrství požadavků však analýza domény nespočívá pouze ve sběru a formalizaci informací; existuje také kreativní komponenta. Během procesu analýzy domény se inženýři snaží rozšířit znalosti o doméně nad rámec toho, co je již známo, a za účelem lepší rekonfigurovatelnosti doménu kategorizovat do podobností a rozdílů.[10]
Analýza domén primárně vytváří a model domény, představující běžné a měnící se vlastnosti systémů v doméně.[10] Doménový model pomáhá při vytváření architektur a komponent konfigurovatelným způsobem tím, že funguje jako základ, na kterém lze tyto komponenty navrhnout.[15] Efektivní model domény zahrnuje nejen různé a konzistentní funkce v doméně, ale také definuje slovní zásobu používanou v doméně a definuje pojmy, myšlenky a jevy v systému.[10][16] Modely funkcí rozkládají koncepty na požadované a volitelné funkce a vytvářejí plně formalizovanou sadu konfigurovatelných požadavků.[17]
Návrh domény
Návrh domény přebírá model domény vytvořený během fáze analýzy domény a jeho cílem je vytvořit obecnou architekturu, které se mohou přizpůsobit všechny systémy v doméně.[18] Stejným způsobem, jakým aplikační inženýrství používá funkční a nefunkční požadavky k vytvoření návrhu, fáze návrhu domény v doménovém inženýrství přebírá konfigurovatelné požadavky vyvinuté během fáze analýzy domény a vytváří konfigurovatelné, standardizované řešení pro rodinu systémů. Cílem návrhu domény je vytvořit architektonické vzory, které vyřeší problém běžný napříč systémy v doméně, a to navzdory odlišným konfiguracím požadavků.[19] Kromě vývoje vzorů během návrhu domény musí inženýři také pečlivě identifikovat rozsah vzoru a úroveň, do které je kontext pro vzorec relevantní. Omezení kontextu je zásadní: příliš mnoho kontextu vede k tomu, že vzor není použitelný pro mnoho systémů, a příliš málo kontextu vede k tomu, že vzor není dostatečně silný, aby byl užitečný.[20] Užitečný vzor musí být často opakující se a vysoce kvalitní.[21]
Cílem návrhu domény je uspokojit co nejvíce požadavků na doménu při zachování flexibility, kterou nabízí vyvinutý model funkcí. Architektura by měla být dostatečně flexibilní, aby uspokojila všechny systémy v doméně, a zároveň dostatečně tuhá, aby poskytla solidní rámec, na kterém bude řešení založeno.[22]
Implementace domény
Implementace domény je vytvoření procesu a nástrojů pro efektivní generování přizpůsobeného programu v doméně.
Kritika
V poslední době bylo doménové inženýrství kritizováno za to, že se příliš soustředilo na „inženýrství k opětovnému použití“ nebo „inženýrství s opětovným použitím“ obecných softwarových funkcí, spíše než aby se soustředilo na „inženýrství k použití“ tak, že pohled na svět jednotlivce, jazyk nebo kontext jsou integrovány do designu softwaru.[23]
Viz také
Reference
- ^ A b Frakes & Kang 2007, str. 2
- ^ Frakes & Kang 2007, str. 1
- ^ Czarnecki & Eisenecker 2000, str. 19
- ^ Batory a kol. 2002, str. 19
- ^ Czarnecki & Eisenecker 2000, str. 20
- ^ A b Czarnecki & Eisenecker 2000, str. 21
- ^ Harsu 2002, str. 8
- ^ Reinhartz-Berger a kol. 2013, str. xii
- ^ Falbo, Guizzardi & Duarte 2002, str. 2
- ^ A b C d E F Czarnecki & Eisenecker 2000, str. 23
- ^ Czarnecki & Eisenecker 2000, str. 38
- ^ Kang a kol. 2004, str. 7
- ^ Kang a kol. 2004, str. 3
- ^ Kang a kol. 2004, str. 4
- ^ Frakes & Kang 2007, str. 3
- ^ Czarnecki & Eisenecker 2000, str. 84
- ^ Czarnecki & Eisenecker 2000, str. 86
- ^ Czarnecki & Eisenecker 2000, str. 24
- ^ Czarnecki & Eisenecker 2000, str. 25
- ^ Buschmann, Henney & Schmidt 2007, str. 42
- ^ Buschmann, Henney & Schmidt 2007, str. 31
- ^ Czarnecki & Eisenecker 2000, str. 28
- ^ Mettler 2017, str. 5
Zdroje
- Batory, Don; Johnson, Clay; MacDonald, Bob; von Heeder, Dale (2002). „Dosažení rozšiřitelnosti prostřednictvím produktových řad a jazyků specifických pro doménu: případová studie“. Transakce ACM v softwarovém inženýrství a metodice. ACM. 11 (2): 191–214. CiteSeerX 10.1.1.100.7224. doi:10.1145/505145.505147. S2CID 7864469.CS1 maint: ref = harv (odkaz)
- Buschmann, Frank; Henney, Kevlin; Schmidt, Douglas C. (2007). Softwarová architektura orientovaná na vzory: Na vzorech a vzorových jazycích. 5. John Wiley & Sons. ISBN 978-0-471-48648-0.CS1 maint: ref = harv (odkaz)
- Czarnecki, Krzysztof; Eisenecker, Ulrich W. (2000). Generativní programování: Metody, nástroje a aplikace. Boston: Addison-Wesley. ISBN 0-201-30977-7.CS1 maint: ref = harv (odkaz)
- Falbo, Ricardo de Almedia; Guizzardi, Giancarlo; Duarte, Katia Cristina (2002). "Ontologický přístup k doménovému inženýrství". Sborník příspěvků ze 14. mezinárodní konference o softwarovém inženýrství a znalostním inženýrství. ACM: 351–358. CiteSeerX 10.1.1.19.2577. doi:10.1145/568760.568822. ISBN 1581135564. S2CID 16743035.CS1 maint: ref = harv (odkaz)
- Kang, Kyo C .; Lee, Jaejoon; Kim, Kijoo; Kim, Gerard Jounghyun; Shin, Euiseob; Huh, Moonhang (říjen 2004). „FORMULÁŘ: Metoda opětovného použití zaměřená na funkce s referenčními architekturami specifickými pro doménu“. Annals of Software Engineering. Springer Nizozemsko. 5: 143–168. CiteSeerX 10.1.1.95.7568. doi:10.1023 / A: 1018980625587. S2CID 1830464.CS1 maint: ref = harv (odkaz)
- Frakes, William B .; Kang, Kyo (červenec 2007). "Výzkum opětovného použití softwaru: stav a budoucnost". Transakce IEEE v softwarovém inženýrství. 31 (7): 529–536. CiteSeerX 10.1.1.75.635. doi:10.1109 / tse.2005,85. S2CID 14561810.CS1 maint: ref = harv (odkaz)
- Harsu, Maarit (prosinec 2002). Průzkum o doménovém inženýrství (PDF) (Zpráva). Ústav softwarových systémů, Tampere University of Technology. p. 26. ISBN 9789521509322.CS1 maint: ref = harv (odkaz)
- Mettler, Tobias (2017). „Kontextualizace profesionální sociální sítě pro zdravotnictví: zkušenosti ze studie Action Design Research“ (PDF). Informační systém Journal. 28 (4): 684–707. doi:10.1111 / isj.12154.CS1 maint: ref = harv (odkaz)
- Reinhartz-Berger, Iris; Sturm, Arnon; Clark, Tony; Cohen, Sholom; Bettin, Jorn (2013). Doménové inženýrství: produktové řady, jazyky a koncepční modely. Springer Science + Business Media. ISBN 978-3-642-36654-3.CS1 maint: ref = harv (odkaz)