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

Storlek: px
Starta visningen från sidan:

Download "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"

Transkript

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

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

3 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

4 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

5 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

6 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: min, approximativt svar i bästa fall 6

7 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 = ; do { lastresult = result; result += sin(x) / x * deltax; x += deltax; } until (result - lastresult < accuracy) Matematica - Domänspråk Integral sin(x)/x dx [0, Infinity] alert ("result is:" + result ) result is: min Approximativt svar 0,5 min Exakt svar och mer 7

8 Slutsatser Problemet Javascript - Högnivåspråk function integralsinxdivx_zero2infinity() var deltax = 0.01; var x = deltax / 2; var result = 0; var accuracy = ; do { lastresult = result; result += sin(x) / x * deltax; x += deltax; } until (result - lastresult < accuracy) Matematica - Domänspråk Integral sin(x) / x dx [0, Infinity] En programmerare är 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

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

10 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

11 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 Analysera Resonera Systemspråk Beskrivningsverktyg Resulterande datorsystem Kognitiv förmåga 11

12 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

13 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

14 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

15 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

16 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

17 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

18 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 Datateknik Parallell distribuerad realtid programmeringsfri plattform 18

Introduktion till programmering. Programspråk och paradigmer

Introduktion till programmering. Programspråk och paradigmer Introduktion till programmering Programspråk och paradigmer Vad är ett programspråk? Aprogramming languageis a formal constructedlanguagedesigned to communicate instructions to a machine, particularly

Läs mer

Program & programmering

Program & programmering Program & programmering Vad är program? Satser och instruktioner, toggla igenom exempel Program på olika nivåer, för olika maskiner, för olika saker Tolka program; kompilator, intepretator, binärbytekod,

Läs mer

Imperativ programmering

Imperativ programmering Imperativ programmering 1DL126 3p Imperativ programmering Jesper Wilhelmsson ICQ: 20328079 Yahoo: amigajoppe MSN / epost: jesperw@it.uu.se Rum: 1335 Tel: 471 1046 Imperativ programmering Vilka programmeringsspråk

Läs mer

Exempel på typer av datorspråk EXCEL

Exempel på typer av datorspråk EXCEL 1 2 TDDB82 Perspektiv på Datateknik Breddgivande föreläsning Datorspråk Programmeringsparadigmer Programmeringsspråk Konstruktioner i programmeringsspråk Litteratur: Brookshear, Computer Science - an overview,

Läs mer

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

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo Objektorienterade språk Historik Simula 67 Smalltalk 80 Procedurorienterad programmering Subprogram Programbibliotek Dataorienterad programmering Abstrakta datatyper Objektbaserade språk, föregångare till

Läs mer

Modellvara som mjukvara

Modellvara som mjukvara Modellvara som mjukvara med en informationsmotor Core och FMV s Modelldrivna Informationssystem FMVCore : PLS och MPS Tomas Jonsson, Genicore AB, Göteborg Modelware is the New Software! Bakgrund FMV s

Läs mer

Presentation. Curriculum Vitae för Lars Kristiansson, 2004-10-28-1 -

Presentation. Curriculum Vitae för Lars Kristiansson, 2004-10-28-1 - Presentation Jag heter Lars Kristiansson. Jag är född 1963 och har studerat datavetenskap på Göteborgs Universitet. Jag har nu avslutat utbildningen, och är alltså filosofie kandidat i datalogi. Nyligen

Läs mer

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

Välkomna till NADA. Paradigm i datalogin. Vad är ett paradigm Välkomna till NADA (Numerisk Analys och DAtalogi) och kursen Paradigm i datalogin, orienteringskurs GN, 7,5 hp (PID) Välkomna... Jag: Serafim Dahl Osquars Backe 2, plan 5 Rum 1531 Postfack: Lindstedtsvägen

Läs mer

Imperativ programmering. Föreläsning 4

Imperativ programmering. Föreläsning 4 Imperativ programmering 1DL126 3p Föreläsning 4 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

TDP002 Imperativ programmering

TDP002 Imperativ programmering TDP002 Imperativ programmering Introduktion till kursen och python Eric Elfving Institutionen för datavetenskap (IDA) Översikt Programmering En introduktion Python Köra och skriva program Python grunderna

Läs mer

Föreläsning 2. Operativsystem och programmering

Föreläsning 2. Operativsystem och programmering Föreläsning 2 Operativsystem och programmering Behov av operativsystem En dator så som beskriven i förra föreläsningen är nästan oanvändbar. Processorn kan bara ges enkla instruktioner såsom hämta data

Läs mer

Konstruktion av datorspråk

Konstruktion av datorspråk Konstruktion av datorspråk Fö4: Domänspecifika språk och parsning Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2009-02-12 Domänspecifika språk Ett domänspecifikt

Läs mer

PROGRAMMERINGSMETODIK

PROGRAMMERINGSMETODIK PROGRAMMERINGSMETODIK 1 Metaforer för programmering Hierarki, modularitet, överblick Programbyggnadskunskap Utvecklingsprocessen Kategorier av programspråk Programmering som allmän konst Metaforer för

Läs mer

TDP002 - Imperativ programmering

TDP002 - Imperativ programmering . TDP002 - Imperativ programmering Introduktion till kursen och Python Eric Elfving Institutionen för datavetenskap 14 augusti 2015 Översikt 2/29 Programmering - en översikt Python - Köra och skriva program

Läs mer

IT för personligt arbete F6

IT för personligt arbete F6 IT för personligt arbete F6 Datalogi del 2 DSV Peter Mozelius Datarepresentation Det som lagras i en dator representeras i grunden som 1:or och 0:or Dessa binära värden kan sedan tolkas på olika sätt i

Läs mer

TDP002 - Imperativ programmering

TDP002 - Imperativ programmering TDP002 - Imperativ programmering Introduktion till kursen och Python Eric Elfving Institutionen för datavetenskap 1 Programmering - en översikt 2 Python Inbyggda typer Satser och uttryck 1 Programmering

Läs mer

Skolverket Workshop i kursen TIATIL00S Tillämpad Programmering

Skolverket Workshop i kursen TIATIL00S Tillämpad Programmering Skolverket Workshop i kursen TIATIL00S Tillämpad Programmering Kjell Hayling PhD Marin Geofysik, RSMAS, Univ. of Miami undervisar Webbutveckling, Programmering, Matematik 4-5 Håkan Andersson MSc Chalmers

Läs mer

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad programmering. Grundläggande begrepp Objektorienterad programmering Grundläggande begrepp Hur beskriver vi objekt? Vill ha en representationsoberoende beskrivning Abstrakta datatyper! Data Operationer Objekt Representerar en verklig eller

Läs mer

Grundkurs i programmering - intro

Grundkurs i programmering - intro Grundkurs i programmering - intro Linda Mannila 4.9.2007 Dagens föreläsning Allmän kursinformation: mål, syfte, upplägg, examination, litteratur, etc. Hur arbetar en dator? Hur vi får datorn att förstå

Läs mer

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

Introduktion till Datalogi DD1339. Föreläsning 1 8 sept 2014 Introduktion till Datalogi DD1339 Föreläsning 1 8 sept 2014 Kontaktuppgifter & Info: Kurskod: DD1339, 19hp Kursomgång: inda14 Kursansvarig: Christian Smith, ccs@kth.se Michael Minock, minock@kth.se Dilian

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Aletta Nylén http://user.it.uu.se/~aletta Epost: aletta.nylen@it.uu.se Rum: 1216 Kursinfo Lärare: Aletta Nylén Jesper Wilhelmsson Litteratur: Object-Oriented Software Development

Läs mer

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

6. Ge korta beskrivningar av följande begrepp a) texteditor b) kompilator c) länkare d) interpretator e) korskompilator f) formatterare ( pretty-print Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor på boken Lunell: Datalogi-begreppen och tekniken Obs! Andra frågor än dessa kan komma på tentan! 1. Konvertera talet 186 till

Läs mer

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

TDIU01 (725G67) - Programmering i C++, grundkurs TDIU01 (725G67) - Programmering i C++, grundkurs Introduktion till kursen och programmering Eric Elfving Institutionen för datavetenskap 2 september 2014 Översikt Kursinformation Personal Kursmål Upplägg

Läs mer

Exempel på typer av datorspråk EXCEL

Exempel på typer av datorspråk EXCEL 1 2 TDDC10 Perspektiv på datateknik/datavetenskap TDDC79 Perspektiv på informationsteknologi TDP001 Handhavande av datormiljö (D, IT, C, IP) Breddgivande föreläsning Historik Datorspråk Programmeringsparadigmer

Läs mer

DD1361 Programmeringsparadigm Föreläsning 1: Intro

DD1361 Programmeringsparadigm Föreläsning 1: Intro DD1361 Programmeringsparadigm Föreläsning 1: Intro Per Austrin KTH 2015-08-31 https://www.kth.se/social/course/dd1361/ Dagens föreläsning Översikt om: 1. Ämnet 2. Lärarna 3. Kursformalia (betyg etc) Dagens

Läs mer

Imperativ programmering. Föreläsning 2

Imperativ programmering. Föreläsning 2 Imperativ programmering 1DL126 3p Föreläsning 2 Imperativ programmering Kännetecken för imperativa språk: Programmet består av en serie instruktioner. Olika språk har olika uppsättningar av instruktioner.

Läs mer

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

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

Läs mer

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

Universitetet i Linköping Institutionen för datavetenskap Anders Haraldsson 1 2 TDDC66 Datorsystem och programmering TDDC67 Funktionell programmering Programmering i Lisp, examinator TDDC67 föreläsare i Lisp Peter Dalenius examinator TDDC66 kursassistent i Lisp + ett stort antal

Läs mer

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

Beslut om fastställande: - - Behörighetskrav: - Dnr: HS 2014/146 Fakulteten för humaniora och samhällsvetenskap Utbildningsplan IT-design Programkod: SGITD Beslut om fastställande: - - Programmets benämning: IT-design Study programme in IT-Design Högskolepoäng:

Läs mer

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

Introduktion till programmering D0009E. Föreläsning 1: Programmets väg Introduktion till programmering D0009E Föreläsning 1: Programmets väg 1 Vad är en dator? En maskin vars beteende styrs av de innehållet (bitmönster) som finns lagrade i datorns minne (inte helt olikt förra

Läs mer

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

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg Programmering Seminarier i datavetenskap, datorteknik och informationsteknik Niklas Broberg niklas.broberg@chalmers.se 2018-09-27 Hur många från Datavetenskap? Datateknik? Informationsteknik? Översikt

Läs mer

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

Programspråkslingvistik. Sista delen av kursen. Ett programspråk Sista delen av kursen Programspråkslingvistik handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk

Läs mer

Sista delen av kursen

Sista delen av kursen Sista delen av kursen handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk (vad betyder det) beskrivning

Läs mer

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

FORSKNINGSMETODIK OCH VETENSKAPSTEORI FÖR SPRÅKVETARE: FORMELLA METODER Mats Dahllöf, Institutionen för lingvistik, Uppsala universitet 2002-02-28 FORSKNINGSMETODIK OCH VETENSKAPSTEORI FÖR SPRÅKVETARE: FORMELLA METODER I. FORMELL METOD att arbeta vetenskapligt med formella

Läs mer

Deklarativ programmering

Deklarativ programmering Deklarativ programmering TDP007 Konstruktion av datorspråk Föreläsning 7 Peter Dalenius Institutionen för datavetenskap 2014-03-03 Deklarativ programmering Program skrivet i ett deklarativt språk logikspråk,

Läs mer

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

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/vt11 Studentportalen http://www.studentportalen.uu.se Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Läs mer

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

Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram Analys och design med hjälp av CRC 83 Klassdiagram Objekt Ett objekt är en individuellt identifierbar entitet som kan vara konkret eller abstrakt. Ett objekt har tillstånd, beteende och identitet. Reellt,

Läs mer

PROGRAMMERINGSMETODIK

PROGRAMMERINGSMETODIK PROGRAMMERINGSMETODIK 1 Metaforer för programmering Hierarki, modularitet, överblick Programbyggnadskunskap Utvecklingsprocessen Kategorier av programspråk Programmering som allmän konst Metaforer för

Läs mer

Deklarativ programmering

Deklarativ programmering Kursens mål Deklarativ programmering Peter Dalenius petda@ida.liu.se Institutionen för datavetenskap Linköpings universitet 2008-02-26 redogöra för och använda reguljära uttryck använda XML för att definera

Läs mer

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design RE SD PD I UT IT ST AT Mjukvarudesign System Requirement Specification Inkrementell och iterativ! Konceptuell design (VAD) Systemdesign (OOA) Arkitekturell (grovkornig, UML) Teknisk design (HUR) Programdesign

Läs mer

Introduktion till arv

Introduktion till arv Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering

Läs mer

Programvaruteknik, hp

Programvaruteknik, hp 1 (6) Utbildningsplan för: Programvaruteknik, 120-180 hp Software Engineering, 120-180 Credits Allmänna data om programmet Programkod Tillträdesnivå Diarienummer TPVAG Grundnivå MIUN 2010/1734 Högskolepoäng

Läs mer

Mathias Ericsson. Curriculum Vitae. Mathias Ericsson

Mathias Ericsson. Curriculum Vitae. Mathias Ericsson Curriculum Vitae Namn Födelseår E-post Adress Telefonnummer Kompetensinriktning Jag är en driven och social kille som tar mycket ansvar i mina arbetsgrupper. Jag strävar efter förbättring i mina och företagets

Läs mer

Datorsystemteknik DAV A14 Föreläsning 1

Datorsystemteknik DAV A14 Föreläsning 1 Innehåll Datorsystemteknik DAV A14 Föreläsning 1 Kursinformation Introduktion till datorsystem Programmeringsmodellen Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec

Läs mer

Objektorienterad programmering, allmänt

Objektorienterad programmering, allmänt Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara

Läs mer

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

Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha? Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet

Läs mer

Imperativ programmering. Föreläsning 3

Imperativ programmering. Föreläsning 3 Imperativ programmering 1DL126 3p Föreläsning 3 Imperativa paradigmer Ostrukturerad programmering Strukturerad programmering Procedurell programmering Objektorienterad programmering Klassbaserad programmering

Läs mer

Objektorienterad programmering

Objektorienterad programmering Objektorienterad programmering Emil Ahlqvist (c10eat@cs.umu.se) Didrik Püschel (dv11dpl@cs.umu.se) Johan Hammarström (c08jhm@cs.umu.se) Hannes Frimmel Moström (c10hml@cs.umu.se) 1 1. Introduktion 1.1 Objektorienterad

Läs mer

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

Platser för att skriva och testa kod online. Workshop om programmering i matematikkurser, version 0.7 senast sparat Cheat sheets Nedan finns referensblad för fyra olika programmeringsspråk, som kan bli aktuella att använda i matematikundervisning. MATLAB är en välkänd programvara för att göra matematiska beräkningar,

Läs mer

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

Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket? Jonas Kvarnström jonkv@ida.liu.se 2013 Syfte : Lära sig objektorienterad programmering Syfte : Lära sig programmering i ett OO-språk vilket? Rena OO-språk (allt är objekt) Scala, Smalltalk, Eiffel, Ruby,

Läs mer

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

Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program. Föreläsning 2 Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program. Vår process Kravbeskrivning (3 dagar). Enkel form av användningsfall (use cases). Analys

Läs mer

Sista delen av kursen

Sista delen av kursen Sista delen av kursen handlar om hur program, delprogram och datatyper deklareras och vad det man åstadkommit egentligen betyder. Innehåll Syntaktisk (hur ser det ut) och semantisk (vad betyder det) beskrivning

Läs mer

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

Föreläsning 1: Intro till kursen och programmering Föreläsning 1: Intro till kursen och programmering λ Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/mafykht11/ λ Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga

Läs mer

Universe Engine Rapport

Universe Engine Rapport 1 Universe Engine Rapport Alexander Mennborg 2017-05-08 2 Inledning I denna rapport diskuteras utvecklingsprocessen till projektet Universe Engine. Denna diskussion omfattar hela utveckling från starten

Läs mer

Deklarativt programmeringsparadigm

Deklarativt programmeringsparadigm Deklarativt programmeringsparadigm Det vi introducerade på förra föreläsningen var ett exempel på deklarativ programmering. Vi specificerade en fallanalys som innehöll fakta och regler för hur man skulle

Läs mer

F2: Krav på objektorienterat språk

F2: Krav på objektorienterat språk Institutionen för datavetenskap Umeå Universitet F2: Krav på objektorienterat språk Objektorienterad programmering för ingenjörer, VT-04 Innehåll Krav på objektorienterat språk Avvägningar vid design av

Läs mer

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

Mer OOP. Variation i typ. Medlen repetition. Generiska klasser. Gränssnitt - Interface. Mer om klasser Några exempel UML Målet Mer OOP Mer om klasser Några exempel UML Modularitet Språkligt modulära enheter Få gränssnitt Små gränssnitt Tydliga gränssnitt Dold information Återanvändbarhet Variation i typer Variation i datastrukturer

Läs mer

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

Varför är logik viktig för datavetare? Varför är logik viktig för datavetare? 1. Datavetenskap handlar ofta om att automatisera processer som tidigare styrts av människor. Intuition, intelligens och mänskliga resonemang ersätts av beräkningar.

Läs mer

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

Datalogi I, grundkurs med Java 10p, 2D4112, Tentamen 29 november 2003, svar och lösningar Datalogi I, grundkurs med Java 10p, 2D4112, 2003-2004 Tentamen 29 november 2003, svar och lösningar 1a) Snabbaste lösningen är att addera i det binära systemet och konvertera svaret till decimalt tal:

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Designmönster Adapter, Factory, Iterator,

Läs mer

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

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

DD1361 Programmeringsparadigm Föreläsning 1: Intro

DD1361 Programmeringsparadigm Föreläsning 1: Intro DD1361 Programmeringsparadigm Föreläsning 1: Intro Per Austrin KTH 2016-08-30 https://www.kth.se/social/course/dd1361/ Dagens föreläsning Översikt om: 1. Ämnet 2. Lärarna 3. Kursformalia (betyg etc) Dagens

Läs mer

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

IT OCH PROGRAMMERING I SKOLAN. Jan Erik Moström Peter Vinnervik IT OCH PROGRAMMERING I SKOLAN Jan Erik Moström Peter Vinnervik VILKA ÄR VI OCH VAD KOMMER VI ATT PRATA OM? Jan Erik Moström - undervisar på institutionen för datavetenskap Peter Vinnervik - doktorand vid

Läs mer

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

Inledande programmering med C# (1DV402) Introduktion till C# Introduktion till C# Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll i

Läs mer

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

Inledning. Vad är ett datorprogram, egentligen? Olika språk. Problemlösning och algoritmer. 1DV433 Strukturerad programmering med C Mats Loock Inledning Vad är ett datorprogram, egentligen? Olika språk Problemlösning och algoritmer 1 (14) Varför använda en dator? Genom att variera de program som styr datorn kan den användas för olika uppgifter.

Läs mer

Webservice & ERP-Integration Rapport

Webservice & ERP-Integration Rapport Webservice & ERP-Integration Rapport Hardwood AB Mustafa Lazem 930916-9713 Jonas Ahrne 920325-0379 Hasan Nerjovaj 940130-7195 Stefan Liden 920628-0639 2014-05-18 Innehåll Bakgrund... 2 Syfte... 2 Projektbeskrivning...

Läs mer

Software Technology. Josef Svenningsson

Software Technology. Josef Svenningsson Software Technology Josef Svenningsson Software Technology Software Technology Området Software Technology handlar i mångt och mycket om följande frågeställning: Hur designar man programmeringsspråk för

Läs mer

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

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? jonas.kvarnstrom@liu.se 2014 2017 jonas.kvarnstrom@liu.se

Läs mer

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander

F6 Objektorienterad design. ID1004 Objektorienterad programmering Fredrik Kilander F6 Objektorienterad design ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se långa ord AKTIVITETER I PROGRAMVARUUTVECKLING Iterativ utveckling Kravspecifikation Design Implementation Testning

Läs mer

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.

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. Värmdö Gymnasium Programmering A 110123 Lektion C1 Grunder Att programmera handlar mycket om att lära sig att analysera det problem eller den funktion man vill att programmet ska ha, och översätta det

Läs mer

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

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg Programmering Seminarier i datavetenskap, datorteknik och informationsteknik Niklas Broberg niklas.broberg@chalmers.se 2017-09-21 Hur många från Datavetenskap? Datateknik? Informationsteknik? Översikt

Läs mer

Vad är MoReq1? Falk Sundsvall 2006

Vad är MoReq1? Falk Sundsvall 2006 Vad är MoReq1? en informationsmodell som specificerar funktionella krav på ett elektroniskt dokumenthanteringssystem (specifika, ERMS) kan tillämpas inom såväl offentlig som enskild sektor omfattar i någon

Läs mer

Grundläggande logik och modellteori

Grundläggande logik och modellteori Modeller och uttrycksfullhet hos predikatlogik Department of mathematics Umeå university Föreläsning 10 Dagens föreläsning 1 Innehåll på resten av kursen 2 Varför verifikation? Formella metoder för verifikation

Läs mer

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

Verksamhetsdriven och modellbaserad utveckling av affärssystem för FMV Verksamhetsdriven och modellbaserad utveckling av affärssystem för FMV Generell problembild - Verksamheter och IT Så tänker vi - CoreEAF (Core Enterprise Architecture Framework) Systemuppbyggnad - FMV

Läs mer

CIVILINGENJÖRSEXAMEN MASTER OF SCIENCE IN ENGINEERING

CIVILINGENJÖRSEXAMEN MASTER OF SCIENCE IN ENGINEERING Lokal examensbeskrivning Dnr: 541-2072-10 Sid 1 (5) CIVILINGENJÖRSEXAMEN MASTER OF SCIENCE IN ENGINEERING INRIKTNING: TEKNISK DATAVETENSKAP SPECIALISATION: COMPUTING SCIENCE AND ENGINEERING 1 Fastställande

Läs mer

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

TDDD78, TDDE30, 729A Introduktion till Java -- för Pythonprogrammerare TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Introduktion till Java -- för Pythonprogrammerare Historia: C, C++ 3 Historia: Oak 1 4 1990: Sun Microsystems påbörjade projekt StarSeven Avancerad

Läs mer

Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga P4118) Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se

Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga P4118) Lärare: Tom Smedsaas, Tom.Smedsaas@it.uu.se Föreläsning 1: Intro till kursen och programmering Kursens hemsida http:www.it.uu.se/edu/course/homepage/prog1/ht12 Studentportalen http://www.studentportalen.uu.se UNIX-konton (systemansvariga P4118)

Läs mer

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

Föreläsning 3: Booleans, if, switch TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt

Läs mer

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

Föreläsning 5 5DV086 - Programspråk Föreläsning 5 5DV086 - Programspråk Petter Ericson (pettter@cs.umu.se) Umeå University 6 februari, 2015 Haskell-frågor? Haskell-tips do-syntax State-monaden Dagens plan Programspråksteori Varför? Vad?

Läs mer

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

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan SGITD. IT-design. Study programme in IT-Design Fakulteten för ekonomi, kommunikation och IT Utbildningsplan IT-design Programkod: Programmets benämning: Inriktningar: SGITD IT-design Study programme in IT-Design Affärssystem och ekonomi (AFEK) Programvarudesign

Läs mer

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

Kompilatorteknik. Görel Hedin Datavetenskap Lunds Tekniska Högskola. Temaföreläsning, Datorer i system, 2014 Kompilatorteknik Görel Hedin Datavetenskap Lunds Tekniska Högskola Temaföreläsning, Datorer i system, 2014 En typisk kompilator programkod while (a >= 0) { } kompilator maskinkod 0024 6050 2530 0000 0000

Läs mer

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

Meritförteckning. Mer än 3 års professionell erfarenhet av PHP, SQL, C# och VB.NET, CvSwe 20080410.doc Niklas Rydén sida1/6 Meritförteckning Niklas Rydén 031-51 95 58 (hem) Slåttängsgatan 51 0709-40 66 49 (mobil) 415 07 Göteborg nikryden@gmail.com http://www.timeonline.se Mer än 3 års

Läs mer

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

TDP005. Föreläsning 3 - UML. Filip Strömbäck TDP005 Föreläsning 3 - UML Filip Strömbäck 1 Introduktion 2 Diagram 3 Klassdiagram 4 Sekvensdiagram 5 SFML-demo TDP005 Filip Strömbäck 2 UML Unified Modeling Language Visuell notation för idéer Kommunicera

Läs mer

Introduktion till Haskell

Introduktion till Haskell Introduktion till Haskell Elias Riedel Gårding NMA11, Teknisk Fysik (KTH) 2014 18 februari 2018 Elias Riedel Gårding (NMA11, F14) Introduktion till Haskell 18 februari 2018 1 / 29 Om Haskell Historik 1927:

Läs mer

Copyright Syntell AB 1

Copyright Syntell AB 1 Systemmodellering med SysML SESAM seminarium 2006-05-31 Erik Herzog Ansats Presentation av SysML från två perspektiv Akademiskt Industriellt Bakgrund Översikt Utvärdering Copyright Syntell AB 1 SysML SysML

Läs mer

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

13 1MA302 Automatateori DV1 4 A D, M 1TD442 Algoritmer och datastrukturer DV1 6 A D 4.2 Årskurs 1 Studierna inleds med en frivillig introduktion till utbildningen omfattande två veckor. Därefter enligt nedanstående lista. Period Kurskod Kursnamn Poäng Nivå Ämne 11 1MA316 Introduktionskurs

Läs mer

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

Abstraktion. Abstraktion... Abstraktion... Abstraktion... Abstraktion Inom programmeringstekniken används två former av abstraktion dataabstraktion och programabstraktion. Dataabstraktion handlar om aggregat för att gruppera samhörande data. Programabstraktion

Läs mer

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

Abstraktion. procedurabstraktion. DA2001 (Föreläsning 26) Datalogi 1 Hösten / 27 Abstraktion Inom programmeringstekniken används två former av abstraktion dataabstraktion och programabstraktion. Dataabstraktion handlar om aggregat för att gruppera samhörande data. Programabstraktion

Läs mer

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

Fakulteten för ekonomi, kommunikation och IT. Utbildningsplan SGITD. IT-Designprogrammet. Study programme in IT-Design Fakulteten för ekonomi, kommunikation och IT Utbildningsplan IT-Designprogrammet Programkod: Programmets benämning: Inriktningar: SGITD IT-Designprogrammet Study programme in IT-Design Affärssystem och

Läs mer

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

TENTAMEN I PROGRAMSPRÅK -- DVG C kl. 08:15-13:15 TENTAMEN I PROGRAMSPRÅK -- DVG C01 140605 kl. 08:15-13:15 Ansvarig Lärare: Donald F. Ross Hjälpmedel: Bilaga A: BNF-definition Betygsgräns: Kurs: Max 60p, Med beröm godkänd 50p, Icke utan beröm godkänd

Läs mer

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

Introduktion till objektorientering. Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? Introduktion till objektorientering Vad är objektorientering egentligen? Hur relaterar det till datatyper? Hur relaterar det till verkligheten? TDDD78, TDDE30, jonas.kvarnstrom@liu.se 729A85 jonas.kvarnstrom@liu.se

Läs mer

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

Min grundutbildning på universitetsnivå är inom fysik och kemi, med ytterligare kurser i matematik m.m. CURRICULUM VITAE FÖR MIKAEL HÖGHEDE Min grundutbildning på snivå är inom fysik och kemi, med ytterligare kurser i matematik m.m. Jag är också utbildad kemitekniker på gymnasienivå från 4-årig kemiteknisk

Läs mer

Kortare anställningar och praktik

Kortare anställningar och praktik CV PERSONUPPGIFTER Jan Karlsson Telefon (arb): 0470-58 94 88 Kastanjevägen 34 Telefon (hem): 0470-406 29 352 43 Växjö Mobil: 070-238 76 38 E-post (arb): jan.karlsson@ltkronoberg.se E-post (hem): janofsweden@tele2.se

Läs mer

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

729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo 729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt

Läs mer

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

Kursupplägg. Examination. Föreläsning 1: Intro till kursen och. Kursmaterial. programmering. Kursboken: Programmera med a multimedia approach Föreläsning 1: Intro till kursen och Kursens hemsida http://www.it.uu.se/edu/course/homepage/prog1/esvt10 Studentportalen http://www.studentportalen.uu.se Kursmaterial Kursbok Kursprogramvara Tips: Installera

Läs mer

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

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34 Tentamen Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Lördagen den 30 november 2002 kl 9.00 14.00, salar E33, E34 Inga hjälpmedel 30 poäng ger säkert godkänt, 40 poäng ger betyg 4 50 poäng ger

Läs mer

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

Lambdas. (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Lambdas (och fler design patterns) Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017 Funktioner En funktion (i programmeringstermer) är en operation som tar ett eller flera argument,

Läs mer

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

Bakgrund och motivation. Definition av algoritmer Beskrivningssätt Algoritmanalys. Algoritmer. Lars Larsson VT 2007. Lars Larsson Algoritmer 1 Algoritmer Lars Larsson VT 2007 Lars Larsson Algoritmer 1 1 2 3 4 5 Lars Larsson Algoritmer 2 Ni som går denna kurs är framtidens projektledare inom mjukvaruutveckling. Som ledare måste ni göra svåra beslut

Läs mer

Datorsystemteknik DAV A14 Föreläsning 1

Datorsystemteknik DAV A14 Föreläsning 1 Innehåll Datorsystemteknik DAV A14 Föreläsning 1 Kursinformation Introduktion till datorsystem Programmeringsmodellen Större delen av materialet framtaget av :Jan Eric Larsson, Mats Brorsson och Mirec

Läs mer

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

LADDA NER LÄSA. Beskrivning. Programmering 2 C# PDF LÄSA ladda ner Programmering 2 C# PDF LÄSA ladda ner LADDA NER LÄSA Beskrivning Författare: Magnus Lilja. Programmering 2 C# är ett basläromedel för gymnasiet anpassat till ämnesplanen för programmering som gäller från

Läs mer