Firrst Base Enterp prise Connectivity z z z z z
Marnix van Bochove First Base: opg gericht in 2001 TU Delft – Elekktrotechniek - 1998 Software Archiitect 20 jaar ervaring met software ontwikkeling
Pre esentatie z z z
z
Ideeën over ge enereren First Base Bus siness Architect Voorbeelden vvan het genereren van java discussie
Nadele en Genereren z z z z
z
z
Code is niet jouw stijl Teveel code Code geldt nie et voor alle entiteiten Kleine eilandje es die niet goed samenwerken AndroMDA Ca AndroMDA, astor JAXB, astor, JAXB Axis, Axis middlegen en nog n véél meer Wat er uit komt staat vast
Code e generatie g z
z
z
Hoe gaat First Base om met code generatie Wat is er nodig g om een logisch data model van een n klant om te zetten in een volledige applicatie a Hoe leg g ik alle beslissingen g vast die nodig zijn voorr de bouw van een software applic pp catie
Busine ess Architect z z z z z z
Product van First Base Bedoeld voor administratieve a software Doelgroep: g p Seniors en Architecten Standaarden: xsd, x velocity, xml enz. Genereren tot het laatste moment Handgeschrev ven kwaliteit
Uitga gangspunten g p z
z z z
Genereer uitslu uitend code die jje anders met de hand zo ou hebben geschreven => Geen black kbox Geen hindering g van generator Alles komt uit generator! g Ook “losse” of handmatige code
Busine ess Architect
Business Architect A Project j z z z z
Project bestand (xml) Model bestand d (xml) ( ) Pattern bestan nd (xml) Map met “snippets” of templates
Wat wordt er geproduceerd g p
z z z
Java code Xml code Platte bestanden
Model, Patrroon en Templates p z z z
Model: entiteite en → logisch data model Patroon: de te maken applicatie Templates: stu ukjes bron code met variabelen (bv naam van object uit model)
Wat zitt er in pattern p z
z z z
Specificatie p va an p packages, g , classes en interfaces Specificatie p va an xml files Specificatie va an plain files Overige projec ct eigenschappen: paden, naamgeving, variabelen v enz.
BigOne g
Helllo pattern p z z z z
Het meest simp pele p pattern 1 class (in 1 pa ackage) Geen relatie met m model Geen xml of plain files (alleen java) voorbeeld 1 me et Business Architect
Hello MDD World z z z z
Model bevat 3 objecten j 1 interface perr model object 1 class p per mo odel object j Geen xml of plain files (alleen java) voorbeeld 6a met m Business Architect
P Pattern z
z
z
Met p pattern wo ordt model naar jjava,, xml en plain files “g getransformeerd” Vergelijk g j xslt ((m model is xml, p pattern is de xslt file) Business Architect voert transformatie uit
Patte ern definieert z
z z z
Structuur: pack kages, classes, fields enz. enz Naamgeving => = gebruikt model visibility param visibility, meters final, meters, final static enz enz. Business Architect maakt nette code: final parameters, rs javadoc en geformatteerd
3 MD DD Aspecten p
z z z
Expressions Iteraties over m model Template engin ne
Express p sions in pattern p z
z z z
In het pattern kan k gebruik worden gemaakt van expressions: e Syntax: ${some_expression} Methodes: ${fu unction(a string)} vb: ${object.na ame}Impl => PersonImpl zie example 3
Iteratie es in pattern p z z z
Itereer over mod del Maak een class s foreach.... f Maak een methode foreach....
<package name="${genpac ck}.pojo" package="domain_model"> ... t.name}" foreach="object">