Genicore AB. Modellbaserad ansats. En liten firma i Göteborg som gör stora datasystem. Systemspråk - När modellen är systemet. torsdag 10 maj 2012

Relevanta dokument
Introduktion till programmering. Programspråk och paradigmer

Program & programmering

Imperativ programmering

Exempel på typer av datorspråk EXCEL

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

Modellvara som mjukvara

Presentation. Curriculum Vitae för Lars Kristiansson,

Välkomna till NADA. Paradigm i datalogin. Vad är ett paradigm

Imperativ programmering. Föreläsning 4

TDP002 Imperativ programmering

Föreläsning 2. Operativsystem och programmering

Konstruktion av datorspråk

PROGRAMMERINGSMETODIK

TDP002 - Imperativ programmering

IT för personligt arbete F6

TDP002 - Imperativ programmering

Skolverket Workshop i kursen TIATIL00S Tillämpad Programmering

Objektorienterad programmering. Grundläggande begrepp

Grundkurs i programmering - intro

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014

Objektorienterad programmering

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print

TDIU01 (725G67) - Programmering i C++, grundkurs

Exempel på typer av datorspråk EXCEL

DD1361 Programmeringsparadigm Föreläsning 1: Intro

Imperativ programmering. Föreläsning 2

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson

Beslut om fastställande: - - Behörighetskrav: -

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Programspråkslingvistik. Sista delen av kursen. Ett programspråk

Sista delen av kursen

FORSKNINGSMETODIK OCH VETENSKAPSTEORI FÖR SPRÅKVETARE: FORMELLA METODER

Deklarativ programmering

Föreläsning 1: Intro till kursen och programmering

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram

PROGRAMMERINGSMETODIK

Deklarativ programmering

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Introduktion till arv

Programvaruteknik, hp

Mathias Ericsson. Curriculum Vitae. Mathias Ericsson

Datorsystemteknik DAV A14 Föreläsning 1

Objektorienterad programmering, allmänt

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?

Imperativ programmering. Föreläsning 3

Objektorienterad programmering

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket?

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.

Sista delen av kursen

Föreläsning 1: Intro till kursen och programmering

Universe Engine Rapport

Deklarativt programmeringsparadigm

F2: Krav på objektorienterat språk

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML

Varför är logik viktig för datavetare?

Datalogi I, grundkurs med Java 10p, 2D4112, Tentamen 29 november 2003, svar och lösningar

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

DD1361 Programmeringsparadigm Föreläsning 1: Intro

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik

Inledande programmering med C# (1DV402) Introduktion till C#

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock

Webservice & ERP-Integration Rapport

Software Technology. Josef Svenningsson

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

OBS! All teori i detta och följande dokument kompletteras med genomgångar på lektionerna. Så det är viktigt att närvara och göra egna anteckningar.

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg

Vad är MoReq1? Falk Sundsvall 2006

Grundläggande logik och modellteori

Verksamhetsdriven och modellbaserad utveckling av affärssystem för FMV

CIVILINGENJÖRSEXAMEN MASTER OF SCIENCE IN ENGINEERING

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare

Studentportalen UNIX-konton (systemansvariga P4118) Lärare: Tom Smedsaas,

Föreläsning 3: Booleans, if, switch

Föreläsning 5 5DV086 - Programspråk

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan SGITD. IT-design. Study programme in IT-Design

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014

Meritförteckning. Mer än 3 års professionell erfarenhet av PHP, SQL, C# och VB.NET,

TDP005. Föreläsning 3 - UML. Filip Strömbäck

Introduktion till Haskell

Copyright Syntell AB 1

13 1MA302 Automatateori DV1 4 A D, M 1TD442 Algoritmer och datastrukturer DV1 6 A D

Abstraktion. Abstraktion... Abstraktion... Abstraktion...

Abstraktion. procedurabstraktion. DA2001 (Föreläsning 26) Datalogi 1 Hösten / 27

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan SGITD. IT-Designprogrammet. Study programme in IT-Design

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten?

Min grundutbildning på universitetsnivå är inom fysik och kemi, med ytterligare kurser i matematik m.m.

Kortare anställningar och praktik

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT Lars Larsson Algoritmer 1

Datorsystemteknik DAV A14 Föreläsning 1

LADDA NER LÄSA. Beskrivning. Programmering 2 C# PDF LÄSA ladda ner

Transkript:

Genicore AB En liten firma i Göteborg som gör stora datasystem Modellbaserad ansats Systemspråk - När modellen är systemet 1

Core Modellbaserad ansats i 3 delar Metodik Språk System Datateknik 3:e generationen 2

Core Kort introduktion till Core Cores modellspråk i relation till andra språk Mål med Core-språket och utformning Tillämpning 3

Modell av System Några definitioner System: En helhet bestående av samverkande delar Systemteori (vetenskapsteori): Läran om hur man analyserar och beskriver något som ett system Typer av system: Biologiska, Fysikaliska, Organisatoriska, Samhälls-, Pensions-, Dator- system 4

Språk och Modell Problemet Person Adresser Adress Person Modell av problemdomänen Domänspråk Matematica, MatLab - Matematik FEM verktyg - Mekaniska och fysikaliska modeller Core - Systemmodeller Abstrakt modell av en dator Högnivåspråk Fortran, COBOL, C, Pascal, ADA (Flödesdiagram) Simula, Smalltalk, C++, Java, Javascript (UML) Lisp, ML, XSLT, O'Haskel SQL, html, XML (datamodell) Modell av en processor Maskinspråk Assembler; Z80, x86, 6800, PowerPC, AMD29k, ARM, Intel Core 5

Högnivåspråk Problemet Högnivåspråk function integralsinxdivx_zero2infinity() {! var deltax = 0.1;! var x = deltax/2;! var result = 0;! var accuracy = 0.001;! do { var lastresult = result;!! result += Math.sin(x) / x * deltax;!! x += deltax;! } while (result - lastresult > accuracy);!! alert ("result is:" + result ); } Generell lösningsmetod sin (x) / x result is:1.851528522095052 5-60 min, approximativt svar i bästa fall 6

Domänspråk Problemet Javascript - Högnivåspråk function integralsinxdivx_zero2infinity() var deltax = 0.01; var x = deltax / 2; var result = 0; var accuracy = 0.00001; do { lastresult = result; result += sin(x) / x * deltax; x += deltax; } until (result - lastresult < accuracy) Matematica - Domänspråk www.wolframalpha.com Integral sin(x)/x dx [0, Infinity] alert ("result is:" + result ) result is:1.8519... 1.5708 5-60 min Approximativt svar 0,5 min Exakt svar och mer 7

Slutsatser Problemet Javascript - Högnivåspråk function integralsinxdivx_zero2infinity() var deltax = 0.01; var x = deltax / 2; var result = 0; var accuracy = 0.00001; do { lastresult = result; result += sin(x) / x * deltax; x += deltax; } until (result - lastresult < accuracy) Matematica - Domänspråk www.wolframalpha.com Integral sin(x) / x dx [0, Infinity] En programmerare är 10-100+ gånger produktivare om han inte programmerar Kvalitet i resultatet - Korrekt svar och mer alert ("result is:" + result ) 5-60 min Approximativt svar 0,5 min Exakt svar och mer 8

Domänspråk "Modellspråk" 10-100+ gånger produktivare Kvalité - Sannolikheten för fel minskar drastiskt Matematik, Mekanik, Fysik, Kemi - Domänspecifika språk 9

Problemdomän? Datorsystem är en lösning Exempelvis - Försörja och styra verksamheter med information - Hantera information om och styra tekniska system Vilken verksamhet? Beskriv vad den består av. (System: Helhet bestående av delar) Vilket tekniskt system? Beskriv vad det består av. (System: Helhet bestående av delar) Verksamhet / Tekniskt system Informationshantering Person Adress Adresser Person + = Datorsystem Verktyg 10

Komplexitet och Mental Zoom En dator kan man programmera till att göra vad som helst, den mänskliga hjärnan har dock vissa begränsningar. Medvetna och omedvetna begrepp 1 000 000+ Analysera 7 1 000 000 7 Resonera 1 000 000+ Systemspråk Beskrivningsverktyg Resulterande datorsystem Kognitiv förmåga 11

Corespråkets formella grunder En formalism för att beskriva helheter bestående av delar Objektorienterat - systemets delar med abstraktioner Deklarativt (funktionellt) språk - delarnas definitioner och beroenden, isolerade från sidoeffekter Universell grammatik - koppling till naturligt språk 12

Core språket Objektorienterat (Skandinaviska skolan) Klasser, attribut, relationer Generalisering/Specialisering (Arv) Polymorfism Funktionell (Deklarativ) All databearbetning och regler beskrivs med uttryck (expressions) Inga sekvenser Inga sidoeffekter Grafisk syntax, klasskarta Person Adress Adresser Person Verktygssyntax 13

Olika syntaxer för olika ändamål Parsbar syntax (S) class Person förnamn as text efternamn as text namn value förnamn + " " + efternamn adresser many Adress role person 'antal adresser' value # adresser stenungsundsadresser value adresser [**.stad = "Stenungsund"] end class class Adress gata as text postnummer as text stad as text person one Person role adresser end class 14 Beskrivande syntax En person har förnamn, efternamn, namn och antal adresser. En person kan ha adresser och stenungsundsadresser. Namn definieras som förnamn + " " + efternamn Antal adresser definieras som #adresser Stenungsundsadresser definieras som adresser där stad = "Stenungsund" Även RTF dokument, och XML

Datorsystem med Core Systemspråk - Systemmodell - Systemvyer - Integrationsvyer Vyer av information Core Arkitektur Systemvyer Verktyg - genererar GNU-C kod Kodbibliotek Information, mål, regler Teknologi Systemmodell Kodbibliotek Integrationsvyer Kodbibliotek Omvärld Teknologi 15

Core är beprövat Försvarets Materielverk, orderstock på 60 miljarder, omsätter 19 miljarder kronor/år och har 1200 användare Använder Core-system sedan år 2000 Integrerad verksamhet: Kundbeställning, projektplanering, resursplanering, ledning, leveransplaner, kundleveranser, leverantörer, inköp, internationell handel, inleveranser, fakturor, attester, redovisning Systemintegration med 8 andra system, 80 integrationspunkter 80% kostnadsbesparing över tid, 90% kortare ledtider 16

Andra Projekt Upphandling och e-faktura, dokumenthantering, attester, FMV Projekthantering och planering, FMV Logistik, Total Asset Visibility, FM Analysdatabas för farliga ämnen Produktkatalog reservdelar för jordbruksmaskiner Enkätsystem - för callcenter och internet Produktdatabas för medicinska laboratorier Uppdragsplanering och genomförande, Statens Provningsanstalt Uppföljning av miljöbefrämjande infrastrukturåtgärder, Vägverket 17

Core Metodik Analys av system Beskrivning av system Verksamheter som system System Modellspråk Domänspråk Systembeskrivning Mental Zoom Naturlig semantik Information, Licensiering & Partnerskap Tomas Jonsson <tomas@genicore.se> Datateknik Parallell distribuerad realtid programmeringsfri plattform 18