Modelem řízený vývoj. SWI 1 Jan Kryštof



Podobné dokumenty
7 Jazyk UML (Unified Modeling Language)

7 Jazyk UML (Unified Modeling Language)

Principy UML. Clear View Training 2005 v2.2 1

UML: Unified Modeling Language

UML a jeho použití v procesu vývoje. Jaroslav Žáček jaroslav.zacek@osu.cz

UML. Unified Modeling Language. Součásti UML

UML - opakování I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Unifikovaný modelovací jazyk UML

Využití SysML pro tvorbu modelů v systémovém inženýrství

Návrh softwarových systémů - architektura softwarových systémů

CASE. Jaroslav Žáček

Modelování webových služeb v UML

Návrh softwarových systémů - architektura softwarových systémů

CASE nástroje. Jaroslav Žáček

SPEM 2.0 úvod, účel. Matoušková Soňa ZS 2013/2014 4IT421 Zlepšování procesů budování IS

Infrastruktura UML. Modelování struktury v UML. Superstruktura UML. Notace objektů. Diagramy objektů

TECHNIKY A CASE NÁSTROJE VÝVOJE IS

Plug-in pro správu požadavků a sledování postupu vývoje

VYUŽITÍ MDA PRO INTEGROVANÝ VÝVOJOVÝ NÁSTROJ QI BUILDER

Informační systémy 2008/2009. Radim Farana. Obsah. Nástroje business modelování. Business modelling, základní nástroje a metody business modelování.

Obsah. Zpracoval:

Komputerizace problémových domén

Architektury Informačních systémů. Jaroslav Žáček

TÉMATICKÝ OKRUH Softwarové inženýrství

7.5 Diagram tříd pokročilé techniky

Modelování podnikových procesů

Analýza a Návrh. Analýza

7.5 Diagram tříd pokročilé techniky

Jiří Mašek BIVŠ V Pra r ha

Architektury Informačních systémů. Jaroslav Žáček

Informační systémy 2008/2009. Radim Farana. Obsah. UML - charakteristika

Komponentový návrh SW

Požadavky pro výběrová řízení TerraBus ESB/G2x

Communist Party of Nepal (Unified Marxist-Leninist) Unified Modeling Language University of Massachusetts Lowell User-mode Linux.

UML - Unified Modeling Language

Vysoká Škola Ekonomická - Fakulta informatiky a statistiky. 4IT450 CASE Computer aided systems engineering

Modelování procesů s využitím MS Visio.

Modelování informačních systémů s využitím jazyka UML. Jaroslav Šmarda

Databázové modelování. Analýza Návrh konceptuálního schématu

Optimalizace podnikových procesů fakultní nemocnice

EXTRAKT z mezinárodní normy

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ BRNO UNIVERSITY OF TECHNOLOGY

6 Objektově-orientovaný vývoj programového vybavení

Tvorba informačních systémů

Modelování řízené případy užití

Vývoj informačních systémů. Přehled témat a úkolů

Honeywell & Masarykova univerzita v Brně

GTL GENERATOR NÁSTROJ PRO GENEROVÁNÍ OBJEKTŮ OBJEKTY PRO INFORMATICA POWERCENTER. váš partner na cestě od dat k informacím

SG at CTU. 3sg.czacm.org. Cerny T., Chalupa V., Rychtecky L., Linhart T.

1. Webové služby. K čemu slouží? 2. RPC Web Service. 3. SOA Web Service. 4. RESTful Web services

Vývoj informačních systémů. Přehled témat a úkolů

DBS Transformace konceptuálního schématu na

EXTRAKT z technické specifikace ISO

Databázové systémy Cvičení 5.2

EXTRAKT z technické specifikace ISO

Rekonstrukce OCL z SQL *

Technologie Java Enterprise Edition. Přemek Brada, KIV ZČU

Architektura softwarových systémů

CAL (CAN Application Layer) a CANopen

Vývoj informačních systémů. Obecně o IS

Návrh IS - UML. Jaroslav Žáček

Výměnný formát XML DTM DMVS PK

Common Object Request Broker Architecture

RUP - Disciplíny. Jaroslav Žáček jaroslav.zacek@osu.cz

Semináˇr Java X J2EE Semináˇr Java X p.1/23

Novinky ve standardu UML 2.0

Budování architektury pomocí IAA

Databázové systémy trocha teorie

Návrh IS - UML. Jaroslav Žáček

Univerzita Pardubice Fakulta ekonomicko-správní Ústav systémového inženýrství a informatiky

KIV/ASWI 2007/2008 Pokročilé softwarové inženýrství. Cíle předmětu Organizační informace Opakování

Novinky v UML 2.5 a agilní modelování

Unifikovaný proces vývoje

Seminární práce. Použití CASE pro řízení IS/ICT firmy

Architektura softwarových systémů

2. Modelovací jazyk UML 2.1 Struktura UML Diagram tříd Asociace OCL. 3. Smalltalk 3.1 Jazyk Pojmenování

Architektura orientovaná na služby Návrh orientovaný na služby. Ing. Petr Weiss. VUT v Brně,, FIT, UIFS

Řešení IS pomocí Model Driven Architecture

RELAČNÍ DATABÁZOVÉ SYSTÉMY

SOAP & REST služby. Rozdíly, architektury, použití

Databázové systémy I. 1. přednáška

Jazyk OCL a modelem řízený vývoj 1

Modely datové. Další úrovní je logická úroveň Databázové modely Relační, Síťový, Hierarchický. Na fyzické úrovni se jedná o množinu souborů.

Aplikace pro srovna ní cen povinne ho ruc ení

Globální architektura ROS

Jak efektivně řídit životní cyklus dokumentů

Řízení procesů ICT prostřednictvím Architektury

5 Požadavky a jejich specifikace

ÚVOD DO SOFTWAROVÉHO INŽENÝRSTVÍ

Diagram nebo text? Miroslav Benešovský, BenSoft s.r.o

Automatizované modelování

5 Požadavky a jejich specifikace

Analýza a návrh webových aplikací I N G. M A R T I N M O L H A N E C, C S C. Y 1 3 A N W

Znalostní systém nad ontologií ve formátu Topic Maps

Využití modelovacích nástrojů ve vývojářské firmě

PostGIS Topology. Topologická správa vektorových dat v geodatabázi PostGIS. Martin Landa

Problémové domény a jejich charakteristiky

Transkript:

Modelem řízený vývoj SWI 1 Jan Kryštof

Související zkratky MDA ~ Architecture formální vymezení MDD ~ Development aktivita SW vývojářů MDG, MDE,... UML ~ Unified modeling language OMG ~ Object Management Group - konsorcium pro schvalování a údržbu standardů v oblasti vývoje podnikového softwaru

Cíl Přenositelnost Inteoperabilita Znovupoužitelnost Jak na to? Specifikace systému v platformně nezávislé terminlogii Odstínění detailů Transformace platformě nezávislé specifikace do platformě závislé

Ukázka aplikace MDD CREATE TABLE t_customers ( id INTEGER NOT NULL, name NVARCHAR(50) NOT NULL, basket INTEGER NOT NULL, PRIMARY KEY (id), KEY (basket) );

Specifikace systému dle MDA CIM ~ computation-independent model PIM ~ platform-independent model PSM ~ platform-specific model

CIM: computation-independent model popis požadavků na systém na úrovni businessu popis systému CO bude dělat a ne JAK to bude dělat využití některého jazyku pro popis domén (DSL ~ domain specific language) minimální odkazy na systém jako na software velká abstrakce => často opomíjený prostředky pro zápis přirozený jazyk, ontologie...

PIM: Platform-independent model Popisuje to, jak bude systém sestrojen na úrovni domén Nepoužívá odkazy na použité technoloigie Nepopisuje mechanismy výstavby systému, které jsou spojeny s platformu Nejdůležitejší model architektury => znovupoužitelná komponenta prostředky pro zápis UML, IDL,...

PSM : platform-specific model Popisuje řešení realizace systému na konkrétní platformě jak je systém implementován Představuje model s nejnižší možnou úrovní detailů nejbohatější model

Schéma aplikace MDD 1) Nalezení DSL jazyka 2) Nalezení transformací mezi modely 3) Konstrukce/nalezení rámce pro provedení resp. interpretaci transformací

DSL : Jazyky pro tvorbu modelů 1) Na počátku: představa o systému: Prostor A = maximální abstrakce a minimální omezení 1)Prostor B 2)Prostor C 3) 2) Na konci systém jako SW: Prostor Z = minimální abstrakce, maximální omezení

Konstrukce DSL jazyka I. Identifikace abstrakcí. Cílem tohoto kroku je vytvořit slovník a koncepty jazyka. př. GUI: tlačítko, rozložení, interakce. II. Specifikace meta-modelu. Analýza vztahů mezi objekty slovníku z předchozího kroku a závislosti mezi nimi

III. Návrh notace Konstrukce DSL jazyka Pro snadnější orientaci v modelu je vhodné opatřit koncepty jazyka odpovídají notací, např. ikonou nebou stylem čáry. IV. Definice generátoru Úkolem je získat zdrojový kód => konstrukce generátoru kódu z modelu: - validace modelu proti meta-modelu - transformace - generování zdrojového kódu

Příklad 1: slovník meta-modelu

Příklad 2: meta-modelu s pravidly Joel pracuje jako ředitel IBM Marry řídí Joel je ředitel Marry je asistent Oba mohou někde pracovat Pouze Marry může řídit auto IKEA pracuje jako sekterářka řídí Volvo

UML jako DSL Proč UML: vyvíjen a udržován OMG dlouhá tradice, mnoho spokojených uživatelů podpora modelovacích nástrojů formální, rozšiřitelné vlastní formát dat - XMI

Přístupy k vytvoření DSL nad UML Robustní (heavy-weight) přístup Odlečený (light-weight) přístup Souvislost s MOF (Meta Object Facility) - jazyk pro definici metamodelů

Definice DSL nad UML: robustní přístup Zásah do vrstvy M2 : přidání nových konstruktů a pravidel jazyka Větší možnosti Ztráta kompatiblity s UML => ztráta kompatibility s XMI

Definice DSL nad UML: odlehčený přístup Využití profilů Omezení vyjádřitelnosti nového DSL koncepcí mechanismem profilů: je mechanismus dostatečený? Zachování kompatibility: XMI je pro profily připraveno Široké využití mechanismu profilů: profily pro procesní modelování, SOA, GUI, J2EE,... telekomunikace železniční infrastrukturu...

UML profily stereotypy značené hodnoty omezení

Stereotypy Má jméno: <<Button>>, <<CheckBox>>,... Aplikovatelný na elementy UML (třídy, aktivity, akce, zprávy, případy použití,...) Reprezentace grafická/textová

Příklad : definice ikony stereotypu v EA

Značené hodnoty Tagged values Další upřesnění/omezení stereotypů Atributy stereotypu Dvojice: jméno=hodnota

Příklad značené hodnoty

Omezení Možnosti značených hodnot jsou limitovaný Omezení textové popisky formální: OCL (Object Constraint Language) OCL sekvence invarinatů invariant: vždy platná podmínka, pre/post condition

Příklad - OCL m a xp oc etu ziva telu maxmimální počet uživatelů (licence) perform O pera tion() se provolává vždy, kdy uživatel provádí operaci is P erm itted() získá licenci ze serveru Context Licence inv: maxpocetuzivatelu > 0 Context Aplikace::performOperation() : void pre: uzivatelislogged() Context Aplikace::isPermitted(): boolean post: maxpocetuzivatelu >= uzivatele.size() OCL

Schéma aplikace MDD 1) Nalezení DSL jazyka 2) Nalezení transformací mezi modely 3) Konstrukce/nalezení rámce pro provedení resp. interpretaci transformací

Schéma transformace PIM TRANSFORMACE PSM INFORMACE Mapování

Jak se uskutečňují přechody mezi modely Transformace mohou být vůči iteratovní M CIM 1 M CIM 2 M CIM 3 M PIM 1 M PIM 2 M PIM 3

DSL Příklad tranformace PIM PSM

Příklad tranformace pokrač. Meta-model relací mezi prvky GUI

Příklad tranformace pokrač. Model struktury okna

Příklad tranformace pokrač. Transformace horzintální rozložení vertikální rozložení

Příklad transformace: PIM PSM...pokrač. Dodádní značené hodnoty ptype (platform type) Cílová platforma - Swing : pro všechny stereotypy Button nastvat tv na: ptype=javax.swing.jbutton Wrapper = javax.swing.jpanel Label = javax.swing.jlabel SimpleInput = javax.swing.jtextfield Window = javax.swing.jframe Button = javax.swing.jbutton Panel = javax.swing.jpanel Form = javax.swing.jpanel Image = javax.swing.jlabel

Příklad tranformace pokrač.

Schéma aplikace MDD 1) Nalezení DSL jazyka 2) Nalezení transformací mezi modely 3) Konstrukce/nalezení rámce pro provedení resp. interpretaci transformací

Transformace Použití API k procházení modelů (UML modelovací nástroje: Enterprise Architect, rational Rose,...) šablonové (vestavěná podpora šablon, vlastní šablolny StringTemplate, Velocity) přímé generování kódu (nezávislý průchod modelem) Použití transformačních jazyků - modelovací rámce: AndroMDA, Kermeta, OptimalJ vlastní jazyky: QTL, MTL,...

Průchod modelem skrze API

Generování kódu šablonové transformace Šablonovací jazyky oddělení výstupu, dat a logiky obvyklé konstrukce jazyka: podmínky, cykly, proměnné netypové Vážený pane $name$, vaše registrační číslo $olduserid$, bylo změněno na $newuserid$,... Vážený pane Novák vaše registrační číslo 123 bylo změněno na 456,.... name= Novák newuserid=123 olduserid=456... Σ Template engine

Literatura Template Programming for Model-Driven Code Generation ZDE Explore model-driven development (MDD) and related approaches: A closer look at model-driven development and other industry initiatives ZDE A Survey of Model Driven Engineering Tools for User Interface Design ZDE