Model Drevet Design i Praksis
|
|
- Elias Iversen
- 8 år siden
- Visninger:
Transkript
1 Model Drevet Design i Praksis Dansk IT - På Vej Hjem møde d. 8/ Jeppe Cramon - TigerTeam ApS
2 Lidt om mig 15 års erfaring som software udvikler Partner i TigerTeam Første erfaring med model drevet udvikling i 2001 Siden erfaring med model drevet udvikling fra BEC Pension, letpension, Elektronisk Tinglysning samt et større ERP projekt med SAP integration. Facilitator for Dansk IT s Java kompetence netværk
3 Dansk IT Java kompetence netværk Et engageret netværk af Java professionelle Mødes 4 gange årligt Eksterne og interne foredragsholdere Debat emner Flere medlemmer vil sikre større udbytte af netværket...
4 Hvorfor Model Drevet Udvikling?
5 Fordi software udvikling stadig tager for lang tid!
6 Hvorfor tager det for lang tid?
7 Vi løser de forkerte problemer For dårlig kommunikation
8 Udvikling kræver stadig for store resourcer For lidt abstraktion og automatisering
9 Hvilke tiltag findes der til at løse disse udfordringer i dag?
10 Outsource eller bruge flere konsulenter
11 Agil udvikling
12 Bedre tekniske frameworks
13 Mere udtryksfulde programmeringssprog
14 Flere af disse tiltag virker fortrinligt, hvis de bruges rigtigt...
15 Men kan vi ikke bare få forretningen til at kode og fyre programmørerne? ;) Kommer ALDRIG til at ske!
16 Men vi kan få forretningen til at deltage mere aktivt i udviklingen, gennem...
17 Model Driven Software Development (MDSD)
18 MDSD er brugen af modeller til at...
19 Forenkle virkeligheden
20 Forbedre kommunikationen
21 Hæve abstraktions niveau
22 Forbedre kvaliteten
23 Der findes to forskellige typer modeller...
24 Tekstuelle modeller Domain Specific Languages (DSL)
25 Visuelle modeller
26 Fællesnævneren er...
27 Godt supplement til eksisterende metoder
28 Et højere udtryks- og abstraktions niveau
29 En elektrificeret beskrivelse af problem domænet
30 Er MDSD ikke bare CASE tools om igen?
31 NEJ - CASE tools betød One size fits all Generatoren var oftest låst af leverandøren Gav en med løsning Det var svært at ændre/tweake toolet MDSD handler om Pragmatisme - One Model Doesn t Fit All! Brug den model der hvor det giver mening for dit projekt Brug modeller til det de er gode til - skriv resten i hånden Brug en effektiv generator og skriv dine egne udvidelser - No lock in Fokus på uden Tillad specialisering på alle niveauer
32 Eksempler på anvendelse af MDSD
33 1: Advanced ebusiness applikation Business Engine Skrevet i C Custom Metadata SQL + DB2 Service kald JDBC Schema Metadata Admin Applikation +JSP Java Persistence Skrevet i Java klasser (CMP)
34 Konklusion på JSP/Template baseret og DB drevet MDSD Det virkede Java gruppen var agil, da den nemt kunne reagerer på DB ændringer DB ens Schema MetaData havde begrænset indhold => behov for ekstra meta data Ekstra meta data forårsagede behov for Web app til at holde dem ved lige JSP erne blev rodede, det var svært at tilføje ortogonale udvidelser Hang ikke sammen med build systemet
35 2: Forsikrings domæne model Opgaven var: Byg et nyt Java baseret pensionskasse system (GALOP) til flere samtidige pensionskasser med vidt forskellige og komplicerede pensions produkter Skulle bygges op omkring Spring Framework (Teknisk infrastruktur framework) Hibernate/JPA (Objekt-Relationel Mapping framework) bidrog med Process, Metode samt Teknisk ekspertise indenfor JEE, Spring, Hibernate og Web bidrog med Pensions domæne viden samt ekspertise i software og model drevet udvikling
36 Løsning Pensionskasse X Model Pensionskasse Y Model Høj niveau beskrivelse af domænet vha. UML modeller GALOP Pensions Model Lagdelte domæne modeller med specialisering Model til Model transformation af de generelle modeller til den pågældende løsning (modellen er generel, implementationen er specifik) Dansk Pensions Model En-vejs iterativ kode generering vha. plugin baseret kode generator Generel Pensions Model
37 Højniveau beskrivelse af domænet UML:
38 Højniveau: Bitemporal historik Giver frihed til at vælge den rette implementation uden at afsløre det i modellen 1 * 1 1
39 Højniveau: Versionering (Temporal Object Pattern)
40 Konklusion på UML baseret domæne model Det virker RIGTIG godt til domæne modeller Super kommunikations form - Teknikken støjer ikke Agilitet: Remodellerer når der er behov og regenererer Learn as you go along: Når vi blev klogere på Hibernate udfordringer var det nemt at rette det gennem generatoren. Lille indsats => Stor effekt Ensartet kvalitet Stor fleksibilitet i hele processen
41 3: SOA model Opgaven var: BEC/Schantz forsikringskerne skulle specialiseres til letpension Forsikringskernen skulle integreres i en lagdelt SOA model med tilhørende orkestrering SOAP / WSDL / XML Schema (WS-I Basic) - Aka. the usual suspects!
42 Løsning: Beskrivelse af service grænsefladen vha. UML En-vejs iterativ kode generering af WSDL XML Schema Serverside service skelet Klient stub (for test) HTML beskrivelse af forskellene mellem to model versioner
43 Service grænseflade i UML
44 Konklusion på UML baseret SOA model Det virkede så godt at det gik fra kun at være forsikrings projektet der brugte det til det var hele letpensions SOA model der blev beskrevet i UML og genereret Super kommunikations form - Teknikken støjer ikke Agilitet: Remodellerer når der er behov og regenererer - Mulighed for at lave automatiseret dokumentation af model ændringer mellem versioner Adaptability: Når service principperne ændrede sig (i starten) var forsikrings projektet oftest 10 gange så hurtigt til at rette servicene til (i forhold til de andre projekter) Ensartet kvalitet Stor fleksibilitet i hele processen
45 4: Elektronisk tinglysning Opgaven var: Få Elektronisk tinglysning i mål så hurtigt som muligt TigerTeam deltog i at få den meget komplekse domæne model persisteret vha. Hibernate/JPA (Objekt-Relationel Mapping framework) Oracle 10.x TigerMDSD (Model baseret kode generator)
46 Krav vi skulle kunne leve op til Oracle har en begrænsning på 30 karakterer for tabeller, kolonner, etc. Det skal være muligt at udvide den genererede kode uden at tabe udvidelserne ved regenerering Automatiseret integrations test af den genererede kode op mod Oracle databasen Fast definerede regler (defaults) der skal kunne overstyres enten via generatoren eller via modellen
47 Hvordan laver man en generel og fleksibel generator der kan leve op til disse krav?
48 TigerMDSD proces for kode generering + UML modellering TigerMDSD XMI Eksport konfiguration MODEL is KING Java/C# kode JPA konfiguration Database konfiguration Integrations test Test data generator WSDL XML Schema...
49 Trin 1 MagicDraw + XmiReader XMI UML Model object graf
50 TigerMDSD - På UML Model Niveauet XmiReader reader = new EAXmiReader(); XmiReader reader = new MagicDrawXmiReader(); MetaModel metamodel = reader.read("model.xml");
51 Transformation - Fra UML model til Resultat UML Model object graf Transformation (TigerMDSD konfiguration) Java/C# kode JPA konfiguration Database konfiguration Integrations test Test data generator WSDL XML Schema...
52 TigerMDSD - Transformation til Java JavaGenerator javagenerator = new JavaGenerator(); List<ClazzOrInterface> allgeneratedclazzes = javagenerator.execute(metamodel); Meta Type MetaPackage MetaClazz MetaAssociationClazz MetaEnumeration MetaInterface MetaProperty MetaOperation Java Model JavaPackage Clazz Clazz Enumeration Interface Property (Består af Field, GetterMethod og SetterMethod) Method
53 TigerMDSD - Java Model
54 TigerMDSD - Udvidelser baseret på Events
55 TigerMDSD - Udvidelser public interface GeneratorEventListener { boolean handle(generatorevent event);... }
56 TigerMDSD - Eksempel private Set<Tire> tires; public class HibernateDeleteOrphanListener extends BaseJpaGeneratorEventListener protected boolean handleonetomanyownerofassociation(onetomanyassociationevent event) { } if (isdeleteorphancandidate(event)) { event.getproperty().getfield().addannotations( new Annotation(Cascade.class).addAnnotationAttribute("value", CascadeType.DELETE_ORPHAN) ); event.getproperty().removesettermethod(); } return true; } protected boolean isdeleteorphancandidate(onetomanyassociationevent event) {... }
57 TigerMDSD - Eksempel på udvidelse protected boolean isdeleteorphancandidate(onetomanyassociationevent event) { } if (event.getmetaproperty().isownerofassociation() &&!event.getmetaproperty().getassociation().isbidirectional() && }!event.getmetaproperty().getassociation().isselfreferencing()) { // Check the clazz of the opposite property to see what kind of associations it has for (MetaProperty submetaproperty : event.getmetaproperty().gettype().getproperties()) { if (submetaproperty.ispartinanassociation()) { } } if (submetaproperty.isownerofassociation()) { if (submetaproperty.getassociationtype() == AssociationType.ManyToMany } submetaproperty.getassociationtype() == AssociationType.OneToMany) { return false; } } else if (submetaproperty.getassociation().isbidirectional()) { return true; return false; // The type of the our sub property is not an owning association and we have // a java association in both directions (bidirectional), which hibernate doesn't handle return false;
58 TigerMDSD - Indbyggede udvidelser Built-in Types Bidirectional associations Property Sugar methods Get Or New Property methods Constructor (immuteable properties) Class Hierarchy Java doc generator Serial Version UID generator MetaType Java doc generator Serializable Pojo s ToString/Equals/HashCode JPA Field based persistence JPA Named Tables and Columns Hibernate Foreignkey Constraints Hibernate Foreignkey Index Hibernate Fetch Optimization Hibernate Association Unproxying Hibernate Table Comments Hibernate HH-3544 bug fix
59 TigerMDSD - Java konfiguration JavaGenerator javagenerator = new JavaGenerator(); javagenerator.addeventlisteners(new BuiltInTypesListener() protected void resolvebuiltintypes(type type) { if (type.getname().equalsignorecase("datetime")) { type.setwrappedjavaclass(datetime.class); } else { super.resolvebuiltintypes(type); } } }); javagenerator.addeventlisteners(new JPAGeneratorEventListener().setShouldMakeBaseClazzesMappedSuperClassesIfPossible(true).setShouldGeneratePresentFieldInEmbeddables(false).setDefaultToLazyFetchingForAllAssociations(true) ); javagenerator.addeventlisteners(new JPANamedTablesAndColumnsListener()); javagenerator.addeventlisteners(new BidirectionalGeneratorEventListener()); javagenerator.addeventlisteners(new HibernateAssociationUnproxyListener()); javagenerator.addeventlisteners(new SerialVersionUIDGeneratorListener()); javagenerator.addeventlisteners(new PropertySugarMethodsEventListener()); javagenerator.addeventlisteners(new MetaTypeJavaDocListener()); javagenerator.addeventlisteners(new HibernateIndexingListener()); javagenerator.addeventlisteners(new HibernateDeleteOrphanListener()); javagenerator.addeventlisteners(new HibernateValidatorNotNullListener()); javagenerator.setcreateextensionclazzes(true);
60 TigerMDSD - YAML konfiguration
61 3 level inheritance - Udvikler udvidelser Hvad vi modellerer: Hvad vi genererer: Optionel Alternativer: Partial Classes Mixins / Traits Priviledged Aspects Protected Regions
62 Best practices
63 Tak for opmærksomheden! For mere information
Udfordringer og problemstillinger. En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling
Java og JEE 1 2 Udfordringer og problemstillinger En liste over de udfordringer og problemstillinger, der er ved Java og JEE udvikling 3 Generelt om Java og JEE 4 Generelt, I Man undervurderer hvor mange
Læs mereCurriculum Vitae Jack Petersen
Curriculum Vitae Jack Petersen Jeg er løsningsarkitekt og erfaren Java-udvikler i de sidste 15+ år har jeg arbejdet i den finansielle sektor, hvor jeg har bygget både frontend og backend systemer. De sidste
Læs mereIT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S
IT-Basecamp 2013 Real World Java EE Patterns Adam Bien 1 Indhold Lidt om mig Baggrund for valg af emnet Bogens opbygning Fra J2EE til JEE 5/6 Overflødiggjorte patterns Fremhæve et par patterns 2 Kenneth
Læs mereSpring Schema Extension eller Spring Domain Specific Languages
Spring Schema Extension eller Spring Domain Specific Languages Forfatter: Jeppe Cramon Cramon Consulting (http://www.cramon.dk) Dato: 23/7-2005 Efter at have arbejdet med Spring i lang tid, har jeg lagt
Læs mereCasper Fabricius http://casperfabricius.com. ActiveRecord. O/RM i Ruby on Rails
Casper Fabricius http://casperfabricius.com ActiveRecord O/RM i Ruby on Rails Casper Fabricius Freelance webudvikler - casperfabricius.com 9 års erfaring med webudvikling 6 år med ASP/ASP.NET/C# 3 år med
Læs mereA Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Læs mereWebserverprogrammering
Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Læs mereSAS USER FORUM DENMARK 2017 USER FORUM. Rune Nordtorp
SAS USER FORUM USER FORUM Rune Nordtorp Agenda Logning Audit logning Og hvorfor er det lige pludselig blevet vigtigt Logning i SAS -platformen Ressource Inventory Model Introduktion til opsætning af logning
Læs mereCurriculum Vitae PETER VILLADSEN MOBIL: +45 5080 1010 E-MAIL: PVILLADSEN@GMAIL.COM RAVNSBORGVEJ 91 DK-4600 KØGE WWW.PVILLADSEN.DK
Curriculum Vitae PETER VILLADSEN MOBIL: +45 5080 1010 E-MAIL: PVILLADSEN@GMAIL.COM RAVNSBORGVEJ 91 DK-4600 KØGE WWW.PVILLADSEN.DK Profil Erfaren udvikler med teknisk indsigt. Arbejder pt. meget med udvikling
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mereVersion Dato Beskrivelse 1.0.0 26/11/2012 Initial version 1.2.0 05/03/2013 Tilføjet eksempel med Template Agent, generelt udvidet dokumentet.
MOX og APOS2 Forord Dette dokument er en del af APOS version 2 manualerne. APOS version 2 (APOS2 herefter) er et organisation, klassifikation og personale system baseret på Sag & Dokument standarderne.
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Læs mereGoogle App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben
GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor
Læs mereDatabaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Læs mereOracle8i R8.1.5 JAVA. Oracle8i R Oracle8i Enterprise Edition Oracle8i R Oracle8i R Oracle8i R8.1.
2000 6 Oracle8i R8.1.7 Oracle8i R8.1.5 Oracle8i R8.1.6 Oracle8i Enterprise Edition Oracle8i R8.1.6 http://otn.oracle.co.jp/ Oracle8i R8.1.7 Oracle8i Oracle8i R8.1.7 Java XML JAVA Oracle8i R8.1.7 Java Oracle
Læs mereWINDCHILL THE NEXT STEPS
WINDCHILL THE NEXT STEPS PTC/user, 4. marts 2015 Jens Christian Jensen, Econocap Agenda Windchill the next steps Bliv opdateret og inspireret til at se hvor Windchill kan hjælpe dig med andet end blot
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereWho s to blame? Jeppe Rørbæk. Jeppe.rorbaek@teknologisk.dk +45 22 70 55 07. Konsulent og underviser på Teknologisk Institut MCP, MCAD, MCSD, MCT
Who s to blame? Jeppe Rørbæk Jeppe.rorbaek@teknologisk.dk +45 22 70 55 07 Konsulent og underviser på Teknologisk Institut MCP, MCAD, MCSD, MCT Introduktion til ATLAS AJAX Intro / hensigten med ATLAS Hvordan
Læs mereOnline kursus: Content Mangement System - Wordpress
Online kursus 365 dage DKK 1.999 Nr. 90213 P ekskl. moms Wordpress er et open-source content management system, som anvendes af mere end 23% af verdens 10 millioner mest besøgte hjemmesider. Det er et
Læs mereIndhold. Senest opdateret:03. september 2013. Side 1 af 8
Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 API Modeller... 2 Webshop2 API Model v1... 3
Læs mereWeb services i brug. Anvendelse uden for biblioteksverdenen
Web services i brug Anvendelse uden for biblioteksverdenen Agenda Visionen bag webservices Tre cases Et kig fremad Nordija Etableret i marts 1998 Udviklingsprojekter Forretningskritiske applikationer Komponenter
Læs mereDesign by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereArkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereSigmaT.
Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt
Læs mereDygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder.
.NET UDVIKLER NATIONALITET: DANSK PROFIL Dygtig.NET / C# udvikler med stor erfaring fra både offentlige organisationer og private virksomheder. Stor erfaring omkring databasedesign, datahåndtering og MS
Læs mereArkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net)
Arkitektur principper og design mønstre til realisering af enterprise applikationer baseret på rige domænemodeller (og.net) Kim Harding Christensen EOS A/S Margrethepladsen 3 8000 Århus TLF: 8732 8787
Læs mereIBM Software Group. SOA v akciji. Srečko Janjić WebSphere Business Integration technical presales IBM Software Group, CEMA / SEA IBM Corporation
IBM Software Group SOA v akciji Srečko Janjić Business Integration technical presales IBM Software Group, CEMA / SEA Service Oriented Architecture Design principles and technology for building reusable,
Læs mereTest med JUnit 3. Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med JUnit 3 Denne artikel introducerer JUnit 3. Den forklarer ideen med JUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereEnterprise Search fra Microsoft
Enterprise Search fra Microsoft Sådan kommer du i gang med search i Microsoft SharePoint Server 2007 Simon Tange Mortensen Solution Sales Specialist Microsoft Danmark simontm@microsoft.com Flere grænseflader
Læs mereCurriculum Vitae for Søren Brønsted
Curriculum Vitae for Søren Brønsted Person oplysninger Søren Brønsted Kirkebjergvej 2 4623 Lille Skensved Tlf: 52 19 14 10 email: soren@bronsted.dk Født: 1963 Profilbeskrivelse Jeg er er en senior Java/J2EE
Læs merePræsentation af BSK regionens identity and access management platform
Regionshuset It digital forvaltning BSK programmet Olof Palmens alle 17 Kontakt@regionmidtjylland.dk www.regionmidtjylland.dk Præsentation af BSK regionens identity and access management platform BrugerStamdataKataloget
Læs mereJanich dk. Joomla Case sol.dk. Janich Rasmussen. Freelance Joomla! Professional. janich@gmail.com. Joomladay Danmark 2011
Joomla Case sol.dk Janich Rasmussen Freelance Joomla! Professional Email: Twitter: Web: janich@gmail.com @janichdk janich.dk Joomladay Danmark 2011 Hvad er sol? Infrastruktur Tilført kompleksiteter siden
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereZapier-integration mellem MailChimp og webcrm hos Azalea IT
Case: Zapier-integration mellem MailChimp og webcrm hos Azalea IT Zapier er en integrationsplatform, hvor man kan forbinde over 1500 apps uden at skrive en eneste bid kode. Du kan se, hvilke apps du kan
Læs mereIBM Network Station Manager. esuite 1.5 / NSM Integration. IBM Network Computer Division. tdc - 02/08/99 lotusnsm.prz Page 1
IBM Network Station Manager esuite 1.5 / NSM Integration IBM Network Computer Division tdc - 02/08/99 lotusnsm.prz Page 1 New esuite Settings in NSM The Lotus esuite Workplace administration option is
Læs mereCV for Christian Plougmann Hag
CV for Christian Plougmann Hag Navn Christian Plougmann Hag Født 1970 Civilstand Gift, 2 børn IT-erfaring siden 1991 Personlig profil Christian er en kapacitet, der med sine mange års erfaring med J2EE/JavaEEsystemudvikling,
Læs mereIndhold. Senest opdateret : 30. juli 2010. Side 1 af 5
Indhold Introduktion... 2 Scenarier hvor API et kan benyttes... 2 Scenarie 1 Integration til lagerhotel... 2 Scenarie 2 Integration til økonomi system... 2 Webshop2 API Model... 3 Brugen af API et... 4
Læs mereTeamShare 2.1 Versionsnoter Oktober 2009
TeamShare 2.1 Versionsnoter Oktober 2009 TeamShare version 2.1.292 Denne version af TeamShare har fået mange nye funktioner, samt forbedringer på eksisterende. Hver ny feature er gennemgået i hvert sit
Læs mereDatabase. lv/
Database 1 Database Design Begreber 1 Database: En fælles samling af logiske relaterede data (informationer) DBMS (database management system) Et SW system der gør det muligt at definer, oprette og vedligeholde
Læs mereVejledning i skabelse og test af metadata
Side 1 af 5 Tilbage til statslige vejledninger Tilbage til vejledninger for kommunale myndigheder Vejledning i skabelse og test af metadata Indhold på denne side: 1. Om metadata 1.1 Opmærkning 2. Skabelse
Læs mereDesign by Contract. Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Design and Programming by Contract Anne Haxthausen ah@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design by Contract er en teknik til at specificere
Læs merePLATYPUS. Praktisk erfaring Års erfaring Erfarings niveau Senest Teknisk arkitektur 6 Høj 2005 Applikations Design 11 Høj 2004 Performance 12 Høj 2005
Ledig 28. februar 2005 Født 1968 Civilstand Gift, 2 børn IT-erfaring Siden 1988 Personprofil Gunnar har gennem de seneste 15 år arbejdet med mange forskellige aspekter af systemudvikling inden for en bred
Læs mereObjektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
Læs mereUndervisningsbeskrivelse
Undervisningsbeskrivelse Stamoplysninger til brug ved prøver til gymnasiale uddannelser Termin Jan-juni 2016 Institution UCH/ Handelsskolen Uddannelse Fag og niveau Lærer(e) Hold EUX Business IT B Lars
Læs mereRibe Amts forslag til EPJ-arkitektur
EPJ og integration: Ribe Amts forslag til EPJ-arkitektur Esben Dalsgaard IT-leder, Sundhedsområdet, Ribe Amt eda@ribeamt.dk Problemstillinger - set fra en datalogisk-arkitektonisk synsvinkel 2-delt arkitektur
Læs mereFKG datamodellen Version 2.3.1 ArcGIS integration Sidste revisionsdato: 23. maj 2014
FKG datamodellen Version 2.3.1 ArcGIS integration #1 FKG Fælleskommunale Geodatasamarbejde FKG datamodellen Version 2.3.1 ArcGIS integration Sidste revisionsdato: 23. maj 2014 1 FKG datamodellen Version
Læs mereAPEX i Praksis Martin B. Nielsen. Navn. MBNDATA Emne
APEX i Praksis Martin B. Nielsen Navn MBNDATA Emne Foredragsholderen Oracle/APEX Arkitekt/udvikler/DBA Siden Oracle v.5 (1988) APEX Siden 2007, men før (Database provider, HTMLDB) MBNDATA siden 1996 MBNDATA
Læs mereProjectWise Tips & Tricks
ProjectWise Tips & Tricks 7. november 2017 Bentleyuser.dk Årsmøde 1 Installation Netværk Firewall Intern pc Integration Servere DB Ekstern pc 2 Åben dokument check out Netværk Firewall Intern pc Integration
Læs mereSQL Server 2016 Data Adgang
SQL Server 2016 Data Adgang MSBIP, 5. OKTOBER, 2015 Agenda SQL Server 2016 CTP 2.3 Pragmatisk Data Adgangskontrol Row Level Security Dynamic Masking Kombination af begge Alternativet Hvem er jeg Selvstændig
Læs mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs mereVPN VEJLEDNING TIL MAC
VPN VEJLEDNING TIL MAC MAC OS X 1 VPN VEJLEDNING TIL MAC Formålet med en VPN forbindelse er, at du kan tilgå nogle af Aarhus Universitets services hjemmefra, som ellers kun er tilgængelige, når du er på
Læs mereSEARCH ENGINE OPTIMIZATION
SEARCH ENGINE OPTIMIZATION Søgeord og online marketing v. Kristian Stoffregen Tørning, Lektor (MPL) / Maj 2013 Program 1. Hvordan søger brugerne? 2. Hvordan ved søgemaskinen, hvad der er relevant? 3. Praktisk
Læs mereLektion 6. Grundlæggende programmering i VR
Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til
Læs mereAutomatisk build og deploy med Maven. Geek Night hos VP SECURITIES - 26. januar 2011 Mads Pultz <mpz@trifork.com>
Automatisk build og deploy med Maven Geek Night hos VP SECURITIES - 26. januar 2011 Mads Pultz 1 Agenda Introduktion til case (kontekst) Byg demoer - Bamboo, Nexus og RAD Modulopbygning
Læs merePrivat-, statslig- eller regional institution m.v. Andet Added Bekaempelsesudfoerende: string No Label: Bekæmpelsesudførende
Changes for Rottedatabasen Web Service The coming version of Rottedatabasen Web Service will have several changes some of them breaking for the exposed methods. These changes and the business logic behind
Læs mereedgemo SOFT2go Kristian F. Thomsen
edgemo SOFT2go Kristian F. Thomsen Hvad er edgemo SOFT2go? Software pakke service koncept SOFT2go tilbyder: Adgang til download af standard applikations pakker Pakketering af virksomhedsspecifikke applikationer
Læs mereBypassing the. Brian Marick
Bypassing the GUI Brian Marick Problemer med GUI GUI er designet for mennesker, ikke automatisering Automatiseret test af GUI kræver specialiseret værktøjer Har tildens til at bryde ned når der sker ændringer
Læs mereTabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations
Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University
Læs mereEn rekord er sat. SDC s PD-løsning til IFRS 9 15/6-2017
En rekord er sat SDC s PD-løsning til IFRS 9 15/6-2017 SDC i tal 124 KUNDER I NORDEN 3,6 mio. SLUTKUNDER 8,5 mio. KONTI Danmark Etableret i 1963 1,8 mio. slutkunder 4,4 mio. konti Norge Etableret i 2005
Læs mereSuccesfuld implementering af automatiseret test
Succesfuld implementering af automatiseret test Forudsætningerne og faldgruberne John Fodeh john.fodeh@hp.com 2006 Hewlett-Packard Development Company, L.P. The information contained herein is subject
Læs mereMicrosoft Dynamics NAV & Service Management
Microsoft Dynamics NAV & Service Management Agenda Introduktion Service Management i Microsoft Dynamics NAV Udstyrskartotek Serviceordrer Servicekontrakter Servicehistorik Den mobile serviceløsning Afrunding
Læs mereIntroduction til.net remoting i VB.NET
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i VB.NET Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i VB.NET. Den forudsætter
Læs mereJSP, Tomcat. Tutorial lavet af Jákup W. Hansen TSU semester 10.october 2007
JSP, Tomcat Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 10.october 2007 Hvad er JSP(Java Server Pages): Det er en teknik som er bygget ovenover Servlets teknikken, men fidusen er at det skal
Læs mereDen røde tråd fra testdækning til releasemetrikker
Den røde tråd fra testdækning til releasemetrikker The art of developing software cheaper, in good quality and at schedule Software-Pro Agenda Den røde tråd fra testdækning til releasemetrikker Mange har
Læs mereSoftware 1 with Java. Recitation No. 7 (Servlets, Inheritance)
Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic
Læs mereOpsætning af MobilePBX med Kalenderdatabase
Opsætning af MobilePBX med Kalenderdatabase Dette dokument beskriver hvorledes der installeres Symprex Exchange Connector og SQL Server Express for at MobilePBX kan benytte kalenderadadgang via database
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereTracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version)
Tracking af YouTube i Google Tag Manager og Universal Analytics (Seneste version) Introduktion til Google Tag Manager og Youtube... 1 Opsæt Tags, Variabler og Triggers... 4 A) Variabler (variables)...
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereInstallation og Drift. Aplanner for Windows Systemer Version 8.15
Installation og Drift Aplanner for Windows Systemer Version 8.15 Aplanner for Windows løsninger Tekniske forudsætninger Krav vedr. SQL Server SQL Server: SQL Server 2008 Express, SQL Server 2008 R2 eller
Læs mereStudieordning del 4-2014
Studieordning del 4-2014 Fagbeskrivelser Datamatiker AP Graduate in Computer Science Version 1.3 Revideret august 2015 Side 0 af 12 Indhold del 4 Fagbeskrivelser 1. Faget Programmering (PRO)...2 2. Faget
Læs mereOFFENTLIGT KMD A/S EJ 0.0 NUMMERERET SLIDE 1 CCM USER GROUP 20.11.2013. KMD einvoicing. v/ Ole Sixhøi
OFFENTLIGT SLIDE 1 CCM USER GROUP 20.11.2013 KMD einvoicing v/ Ole Sixhøi AGENDA SLIDE 2 INTRODUKTION KMD einvoicing - Baggrunden - Ydelsen DESIGN OG FUNKTIONALITET LOGISK FLOW ARKITEKTUR KMD E-INVOICING
Læs mereAgil test tilgang - erfaringer fra projekter
Agil test tilgang - erfaringer fra projekter af Michael Roar Borlund November 2011 Image Area Agenda Introduktion Agil test Fremtidsvision Agil test tilgang Agil opbygning i QC Resumé og Spørgsmål 2 Introduktion
Læs mereSpecifikationsdokument for PDF Validator API
Nets DanID A/S Lautrupbjerg 10 DK 2750 Ballerup T +45 87 42 45 00 F +45 70 20 66 29 info@danid.dk www.nets-danid.dk CVR-nr. 30808460 Specifikationsdokument for PDF Validator API DanID A/S 17. august 2012
Læs mereSAX Simple API for XML.
SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller
Læs mereDatabase programmerings tips
Denne guide er oprindeligt udgivet på Eksperten.dk Database programmerings tips Denne artikel vil introducere nogle problem stillinger med flere samtidige brugere, som man skal tænke på, når man udvikler
Læs mereHvordan sikres investeringen i eksisterende systemer, når skyen tages i brug. Carsten Rasmussen, CTO, Capgemini Danmark A/S IDC Cloud Computing 2011
Hvordan sikres investeringen i eksisterende systemer, når skyen tages i brug Carsten Rasmussen, CTO, Capgemini Danmark A/S IDC Cloud Computing 2011 Formål og agenda Formål Vi vil på denne workshop diskutere:
Læs mereLinguistic support for unit testing
Linguistic support for unit testing Af K. E. Gray & M. Felleisen Mads Bach-Sørensen mbs@cs.aau.dk 1. november 2007 1 Indhold Forfatterne TestJava Traditionel Unit-testing Sproglige Konstruktioner i TestJava
Læs merePID2000 Archive Service
PROLON CONTROL SYSTEMS Herstedvesterstræde 56 DK-2620 Albertslund Danmark Tlf.: (+45) 43620625 Fax: (+45) 43623125 PID2000 Archive Service Bruger vejledning Juni 2002 Denne manual beskriver brugen af softwaren
Læs merePassioneret dotnet (.Net) programmør, med erfaring fra Dynamics Nav og integration flemming.bakkensen@gmail.com
Flemming Bakkensen Passioneret dotnet (.Net) programmør, med erfaring fra Dynamics Nav og integration flemming.bakkensen@gmail.com Summary FAGLIGE VÆRDIER Systemudvikler med 10 års erfaring - hvor jeg
Læs mereTest med NUnit. Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det.
Denne guide er oprindeligt udgivet på Eksperten.dk Test med NUnit Denne artikel introducerer NUnit. Den forklarer ideen med NUnit. Og den viser hvordan man konkret bruger det. Den forudsætter kendskab
Læs mereBACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015
BACK-END OG DATA: ADMINISTRATION HVAD ER DE NYE MULIGHEDER MED VERSION 7.1? STEFFEN BILLE RANNES, 4. FEBRUAR 2015 SAS VISUAL ANALYTICS 7.1 ADMINISTRATOR Mulighed for at udføre handlinger på flere servere
Læs mereCurriculum Vitae. Type År Sidst Niveau Type År Sidst Niveau
Curriculum Vitae Personoplysninger Navn: Søren Hvidkjær Andersen Adresse: Solbærmarken 5 By: 8641 Sorring Mobil: +45 24 82 98 87 E-mail: soren@hvidand.dk Født: 16. Juli 1971 Civilstand: Introduktion Gift
Læs mereVisual Studio Team System. Team Build en grundpille i søgen efter it-projektproduktivitet?
Visual Studio Team System Team Build en grundpille i søgen efter it-projektproduktivitet? Agenda: Introduktion Hvorfor Automatiseret Build Microsoft Team Build Rapportering/Data warehouse Commentor A/S
Læs mereDANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
Læs mereReal-time programming safety in Java and Ada
Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger
Læs mereKom godt i gang med Digital Transformation via din Microsoft ERP-platform
INDLÆG 16 DIGITAL TRANSFORMATION Kom godt i gang med Digital Transformation via din Microsoft ERP-platform Shila Henriksen 03.11.2015 CGI Group Inc. 2015 Shila Henriksen Uddannelse Civiling, Software Eng.
Læs mereKURSER INDENFOR SOA, WEB SERVICES OG SEMANTIC WEB
KURSER INDENFOR SOA, WEB SERVICES OG SEMANTIC WEB Det er Web Services, der rejser sig fra støvet efter Dot Com boblens brag. INTRODUKTION Dette dokument beskriver forslag til fire moduler, hvis formål
Læs mereMennesker til forskel Alle typer kompetencer til dine it-projekter
Mennesker til forskel Alle typer kompetencer til dine it-projekter 1 Hvad er en vision uden en mission? Tom Slivsgaard er adm. direktør og partner i DataVision. Med 25 års erfaring fra it-konsulentbranchen
Læs mereBrian Bugge - CV. Curriculum Vitae 1. Telefon: +45 29 71 71 42 E-mail: bb@visionware.dk
Jeg er udadvendt, initiativrig og engageret, og har let ved at tilegne mig ny viden. Jeg har en meget entusiastisk holdning til nye løsninger og udfordringer, er nem at tale med, og besidder en god portion
Læs mereJan Hansen, AMP CMDB Specialist
Jan Hansen, AMP CMDB Specialist Hansen@ampartner.com Hvad er en CMDB? Et register over enheder (ITIL sk: Configuration Items eller CIs) CIs indeholder relevante oplysninger: attributter Sammenhænge eller
Læs mereModern Concurrency Abstractions for C#
Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation
Læs mereFESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø
FESD-standardiseringsgruppen Att: Palle Aagaard IT- og Telestyrelsen IT-strategisk kontor Holsteinsgade 63 2100 København Ø Høringssvar vedr. FESD GIS-integrationsmodel version 2.0 Geodata Danmark har
Læs mereNavision Stat 7.x. Opsætning af NAS 1 til afvikling af GIS-automatisering, GIS med webservice og opgavekø. Overblik. Side 1 af 8
Side 1 af 8 Navision Stat 7.x ØSY/CPS/MIL Opr. 30.09.16 Opsætning af NAS 1 til afvikling af GIS-automatisering, GIS med webservice og opgavekø Overblik Introduktion Denne vejledning beskriver, hvordan
Læs mereCurriculum vitae. Personlige oplysninger. Præsentation. Projekterfaring
Curriculum vitae Personlige oplysninger Navn: Michael Sig Adresse: Hesseløgade 4, 3.th. 2100 København Ø Telefonnr.: 40 97 50 49 www: www.sig-logik.dk Email: michael@sig-post.dk Alder: 32 år (født d. 21.9.1974)
Læs mere