Upload
guest3604661
View
521
Download
3
Embed Size (px)
Citation preview
01.03.10
Využitie doménovo špecifických jazykov v
procese vývoja softvéru
Diplomant: Školiteľ:
Gabriel Ščerbák Peter Grec
Hra na „hluchý telefón“
„...“„...“„ ...“„ ...“
„...“„...“ „...“„...“
?!?!
Vývoj softvéru
„...“„...“„ ...“„ ...“
„...“„...“ „...“„...“
?!?!A n al y t i k
A r ch i tek tPr ogr am átor
Z ák azn í k
AutomatizáciaAutomatizované testovanie,
zostavovanie (build), priebežná integrácia (continuous integration), …
Architekt vytvorí návrh
Dokument špecifikácie architektúry, ktorý programátor musí pochopiť a správne realizovať
Automatické generovanie dokumentácie a kostry architektúry
A r ch i tek t
Pr ogr am átor
Z d r ojový k ód
AbstrakciaProgramovacie paradigmy,
framework-y, metaprogramovanie, ...
Analytik identifikuje entity vystupujúce v systéme
Jednoznačné pomenovanie, vytvorenie potrebných služieb v rôznych častiach systému
Definícia na správnej úrovni abstrakcie a na jednom mieste
…ToDo wi t h CRUD {
name : St ri ng[ uni que ]goal : Textcompl et e : Bool ean[ f al s e ]
}…
M V C
R ôzn e m i esta v zd r ojových
k ód och
KomunikáciaKomunikácia vrámci vývoja
softvéru
So zákazníkom
V tíme
Plánovacie hry, denné stretnutia (daily standup meetings), párové programovanie (pair programming), revízia kódu, retrospektívy, …
Zákazník nerozumie systému, vývojár zasa biznisu – tlmočník (analytik)
DDDDomain-Driven Design:
Tackling Complexity in the Heart of Software, - Eric Evans
Doménový model
Všade prítomný jazyk
Vzory taktického návrhu
Entity, Value Object, Service, Repository, Factory, Aggregate, …
Guardian.co.uk
BDD
DSLZväčša malý jazyk, formálne definovaný, nie nevyhnutne
programovací, ktorý prináša hodnotu doménovým expertom
biznis domény, technické domény
Základné súčasti
konkrétna, abstraktná syntax a sémantika
Notácia – textová, grafická, tabuľková, ...
Spracovanie – generovanie, interpretácia
Návrh – interné, externé
SQL – externý, textový, interpretovaný
BPMN – externý, grafický, generovanie
ActiveRecord – interný, textový
MDSDInformácie zachytené v
modeloch
UML diagramy, XML konfigurácia, doménovo špecifické jazyky, ...
Transformácie spracujúce modely
program, ktorý načíta model a upraví ho alebo vytvorí nový
Generátory vytvárajúce zdrojové kódy z modelov
šablóny, interpretátor, kompilátor, ...
PLEInžinierstvo produktových línií
Rodina produktov
Model čŕt (Feature model)
„stavebné kamene“ - platforma (Core assets)
Správa variantov (Variant Managment)
Riadiace panely lietadiel a lodí, softvér v mobilných telefónoch, integrované systémy v elektronike, integrované systémy v automobiloch…
MDSF a DSL Workbench
DSLDDDomain specific language driven development
Agilná metodika vývoja
Založená na spomenutých technikách implementovaných pomocou doménovo špecifických jazykov a modelom riadeného vývoja softvéru
Oblasť riadenia osobného času (personal time management)
Webová aplikácia podporujúca techniku Pomodoro v Ruby on Rails
Desktopová aplikácia na správu úloh/agilného plánovania (?) v Java-e
Produktová linka
Otázky?Priestor na diskusiu
??
01.03.10
Ďakujem Vám za pozornosť!
Gabriel Ščerbák