Objektorienterad programmering

Relevanta dokument
Objektorienterad programmering, allmänt

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

Historik: OOP. Objektorientering. Historik: OOP (forts) En Dum Fråga

Objektorienterad programmering

Objektorienterad programmering

Imperativ programmering. Föreläsning 4

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

Imperativ programmering

Objektorienterad programmering. Grundläggande begrepp

729G06 Föreläsning 1 Objektorienterad programmering

Kursens mål. Objektorienterad programmering. Kursupplägg. Tillgodoräknande. Kursbok. Labsalar

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

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

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.

SKOLFS. beslutade den XXX 2017.

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

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

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

PROGRAMMERINGSMETODIK

Översikt. Programmering tillämpningar och datastrukturer. Vad kursen täcker. Lärare. Rekommenderad litteratur. Kursmål 729G58 (HKGBB7)

Program & programmering

Programmering. Seminarier i datavetenskap, datorteknik och informationsteknik. Niklas Broberg niklas.broberg@chalmers.

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

Undervisningen i ämnet programmering ska ge eleverna förutsättningar att utveckla följande:

Objektorienterad programmering

Objektorienterad Systemutveckling Period 3

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

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

OOMPA 2D1359 Föreläsning 2

Introduktionsmöte Innehåll

TDDD78, TDDE30, 729A85 Objektorienterad programmering och Java

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

TDP005. Föreläsning 1. Filip Strömbäck

+Överskådlighet Normalt sätt blir ett program skrivet i det procedurella paradigmet överskådligt. Modifikationer på delproblem kan ske med lätthet.

Programmering, grundkurs

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

SKOLFS. beslutade den -- maj 2015.

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

PROGRAMMERINGSMETODIK

Introduktion. Objekt-orienterad Programmering och Design (TDA551) Alex Gerdes, HT-2016

Kurs-PM HI2011, Programutveckling i funktionella och objektorienterande spra k, P3 VT17

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

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

Introduktion och OO. Objekt-orienterad Programmering och Design (TDA552) Alex Gerdes, HT-2018

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

Grundläggande programmering med matematikdidaktisk inriktning för lärare som undervisar i gy eller komvux gy nivå, 7,5 hp

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Objektorienterad programmering, analys och design med Java, 5p 2D4135, vt Kursprogram

Grundkurs i programmering - intro

1DV433 HT13. I vilken utsträckning har kursens innehåll och uppläggning gett förutsättningar för att du ska ha uppnått respektive lärandemål?

Imperativ programmering. Föreläsning 2

TDP005. Föreläsning 1. Filip Strömbäck

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

Separation of Concern. Objekt-orienterad programmering och design (DIT953) Niklas Broberg / Johannes Åman Pohjola, 2018

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Välkommen till. Datastrukturer, algoritmer och programkonstruktion. eller DOA

Introduktion. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Inkapsling (encapsulation)

TDDD78 / 729A85 Objektorienterad programmering och Java. Kursinformation Java: Varifrån och varför? Java för Pythonprogrammerare

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

Kursplanering Objektorienterad programmering

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Introduktion. Grundkursen

Sammanfattning och Tentamensinfo Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser

Programmeringsteknik I

Objektorienterad konstruktion

Innehålls förteckning

Datateknik B, Tillämpad datavetenskap, 30 högskolepoäng Computer Engineering, Applied Computer Science, Intermediate Course, 30 Credits

Kursplan. System och programkonstruktion. Systems and Software Development

Introduktion. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2017

Exempel på typer av datorspråk EXCEL

HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)

Programmeringsteknik II

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Dependencies High cohesion, low coupling. Objekt-orienterad programmering och design Alex Gerdes, 2018

2I1049 Föreläsning 9. Iterativ programutveckling. Iterativ programutveckling. Modularisering, återanvändning och JavaBeans

Separation of Concern. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017

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

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

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

Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15

Kurs-PM fo r HI1027, Objektorienterad programmering, period 1 HT15

Programmering grundkurs

Programmeringsteknik F1/TM1

Föreläsning 1. Introduktion Utveckla för förändring

EDAA01 Programmeringsteknik - fördjupningskurs

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

Föreläsning 17 UTBLICK: FORTSÄTTNINGSKURSER I DATAVETENSKAP + ANDROID

Programutveckling med Java 7.5 p, ht 2007 (D0019N) STUDIEHANDLEDNING - ALLMÄN INFORMATION

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

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

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

Transkript:

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 Using Java X. Jia Material från föreläsningar Hemsida: www.it.uu.se/edu/course/homepage/oop/ht06

Innehåll Den objektorienterade paradigmen OO programmerings metodik OO analys och design Principer för programmeringsspråk som ger stöd för OO Orientering om moderna tekniker som ofta förknippas med OO OO programmering i Java

Det är inte en kurs i Java moderna verktyg RUP, UML, patterns, extrem programmering, agila metoder men ni ska få en grund för att lätt på egen hand kunna sätta er in i dagens och morgondagens inne-metoder och verktyg!

Examination Programmeringsuppgifter - Java 1 mindre uppgift (20/11) 1 projekt uppdelat på 1 designredovisning (22/11) 2 uppgifter (1/12 och 15/1) Tentamen 15/12

Undervisning Föreläsningar Aletta objektorientering Jesper Java, uppgifter Labbar, 4 st Handledning Handledningstider Mail OBS! Be om hjälp när du kör fast!

Software engineering Begreppet myntades i en NATO-konferens 1968. Problem: Software crisis Önskemål: Samma pålitlighet och produktivitet som i de traditionella ingenjörskonsterna (tex brobyggen, mekaniska konstruktioner,...) Lösning: Formalisera de olika stegen i programutvecklingen: Kravanalys, design, implementation, testning, underhåll

Bra mjukvara Tillförlitlig (korrekt och robust) Klar i tid Lätt att underhålla (bygga ut, rätta buggar, ändra) Återanvändbar Användarvänlig Kompatibel (filformat, ) Effektiv (tid, minne, disk, ) Portabel Verifierbar Integritet

Underhåll 70% av kostnaden Viktiga faktorer: Flexibilitet Enkelhet Läsbarhet

Bra designmetoder stöder Modularitet Återanvändning

Modularitet önskade egenskaper Dela upp (decomposability) Sätta samman (composability) Förstå (understandability) Kontinuerliga moduler (continuity) Skydd (protection)

Modularitet fem principer Språkligt modulära enheter Få gränssnitt Små gränssnitt Tydliga gränssnitt Dold information

Återanvändbarhet problem Ekonomiskt en kund som får en återanvändbar produkt återkommer inte Organisatoriskt programmerare känner inte till kod som skrivits på andra avdelningar Tekniskt oftast behövs bara nästan samma kod

Återanvändbarhet enkla lösningar Öppen källkod vanligast i akademiska världen Återanvänd personal flytta programmerare mellan projekt för att utnyttja deras kunskap Återanvänd design

Återanvändbara moduler Variation i typer Variation i datastrukturer och algoritmer Flera relaterade operationer Operationer används utan kännedom om implementation Gemensamheter i grupper av implementationer

Återanvändbara moduler? Biblioteksrutiner Paket Överladdning Generiska moduler

Mjukvarusystem En modell Representation av relevant del av den riktiga världen Abstraktion av verkligheten Algoritm Fångar de beräkningar som ingår då modellen manipuleras eller bearbetas Resultatet av beräkningarna kan sedan återföras till verkligheten genom att man ger de olika enheterna i modellen mening

Begrepp Abstraktion Modularitet Inkapsling Software engineering Metoder för analys/design Dessa idéer fanns före OOP men har nu blivit en del av OOP.

Några språk med stöd för OO Simula-67 Norge 1967, byggde på Algol-60, avsett för simulering Smalltalk Alan Key, Xerox, 70-tal Introducerade begreppet objekt orienterad programmering Första GUIna skrevs i Smalltalk (och i Lisp) C++ Bjarne Stroustrup, Bell Labs, bygger på C med idéer från Simula och Algol-68 Eiffel, Objective C, Object Pascal, Self Java, Visual Basic.NET, C#

Programmeringsparadigmer Programmering = problemlösning (analys, design, implementation) Olika sätt att lösa problem olika paradigmer Ex. Funktionell programmering Procedurell programmering Logikprogrammering Objektorienterad programmering

Historisk återblick 50- och 60-talet: Algoritmer Kontrollflöde 70- och 80-talet: Data Dataflöde Objektorientering: Kombinerar data och beräkning Objekt = data + tillhörande beräkningar

Objektorienterad design är en metod som leder till mjukvaruarkitekturer baserade på de objekt som varje system eller subsystem manipulerar (snarare än på de funktioner de är tänkta att utföra) Ask not what a system does: Ask WHAT it does it to!

Problem Hur hittar man objekten? Hur beskriver man objekten? Hur beskriver man relationer och gemensamheter mellan objekt? Hur använder man objekt för att strukturera program?