Prezentácia: Diplomový seminár

15
01.03.10 Využitie doménovo špecifických jazykov v procese vývoja softvéru Diplomant: Školiteľ: Gabriel Ščerbák Peter Grec

Transcript of Prezentácia: Diplomový seminár

Page 1: Prezentácia: Diplomový seminár

01.03.10

Využitie doménovo špecifických jazykov v

procese vývoja softvéru

Diplomant: Školiteľ:

Gabriel Ščerbák Peter Grec

Page 2: Prezentácia: Diplomový seminár

Hra na „hluchý telefón“

„...“„...“„ ...“„ ...“

„...“„...“ „...“„...“

?!?!

Page 3: Prezentácia: Diplomový seminár

Vývoj softvéru

„...“„...“„ ...“„ ...“

„...“„...“ „...“„...“

?!?!A n al y t i k

A r ch i tek tPr ogr am átor

Z ák azn í k

Page 4: Prezentácia: Diplomový seminár

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

Page 5: Prezentácia: Diplomový seminár

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

Page 6: Prezentácia: Diplomový seminár

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)

Page 7: Prezentácia: Diplomový seminár

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

Page 8: Prezentácia: Diplomový seminár

BDD

Page 9: Prezentácia: Diplomový seminár

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ý

Page 10: Prezentácia: Diplomový seminár

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, ...

Page 11: Prezentácia: Diplomový seminár

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…

Page 12: Prezentácia: Diplomový seminár

MDSF a DSL Workbench

Page 13: Prezentácia: Diplomový seminár

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

Page 14: Prezentácia: Diplomový seminár

Otázky?Priestor na diskusiu

??

Page 15: Prezentácia: Diplomový seminár

01.03.10

Ďakujem Vám za pozornosť!

Gabriel Ščerbák