Objektorientering Klasser

Relevanta dokument
Objektorientering. Grunderna i OO

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Objektorienterad konstruktion

Objektorientering Användning

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

OOP Objekt-orienterad programmering

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

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

Objektorienterad programmering

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language

Föreläsning 15: Repetition DVGA02

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

Objektorienterad analys och design

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Objektorienterad programmering. Grundläggande begrepp

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram

Kursplanering Objektorienterad programmering

TDP005 Projekt: objektorienterade system

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

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

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Konceptuell modellering

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Objektorienterad Systemutveckling 1 (7,5 hp)

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

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

F2: Krav på objektorienterat språk

Abstraktion. Objektorientering. Kartor. Kartor. Hus. Generalisering

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Lite om databasdesign och modellering

Att göra spel med Game Maker. Rum. Grundläggande delar. Gamemaker, dagens föreläsning. Programmeringsmodell

Inkapsling (encapsulation)

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

(Data)Modellering. nikos dimitrakas rum 2423

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

Interaktions- och klassdiagram, kap F4 vt -07

Föreläsning 13 Innehåll

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget % misslyckades!

Objektorienterad programutveckling i ett nötskal

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Objektorienterad metodik. Programutvecklingsmetodik. Objektmodellen. Varje objekt har en unik identitet

Programutvecklingsmetodik

Objektorienterad analys och design

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

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

INTRODUKTION TILL SYSTEM- OCH REGLERTEKNIK (3 sp) TIDIGARE: GRUNDKURS I REGLERING OCH INSTRUMENTERING 3072 (2sv) Hannu Toivonen

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.

Objektorienterad programmering

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

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a.

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Introduktion. Byggstenar TDBA

Examen i 2D1359 & 2D1360 Objektorienterad modellering programmering och analys Tisdagen, 23 Oktober 2001, 14:00-19:00

Ur boken Självkänsla Bortom populärpsykologi och enkla sanningar

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur

Collaboration Self-Service Bundle

LÖSNINGSFÖRSLAG. Tentamen. Objektorienterad modellering och design. EDA665, 4 poäng

TDDE10 TDDE11, 725G91/2. Objektorienterad programmering i Java, Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

Objektorienterad analys och design

E-handeln 2014 SILENTIUM AB COPYRIGHT

Programmering för språkteknologer II, HT2014. Rum

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

Teoridel (svaren direkt på lydelsen)

OOMPA 2D1359 Föreläsning 2

BOSTADSHUS VID PALETTGRÄND 1 Storgärdan, Mariehamn

App-klient för smartphones Power BI Arbetsflöde CRM Online Webb-klienten Dokumenthantering Molnet...

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund

Systemvetarutbildningen och dataekonomutbildningen

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

Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

NVDB - Översiktlig informationsmodell

Periodisering i Rebus

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

Objektorienterad programmering, allmänt

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

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 9: Arv och UML

Introduktion till arv

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

Omtentamen i OOSU2, 21 augusti 2014

Behörighetssystem. Ska kontrollera att ingen läser, skriver, ändrar och/eller på annat sätt använder data utan rätt att göra det

Systemvetarutbildningen och dataekonomutbildningen

Du som kylentreprenör/kontrollant kan inför årsrapporteringen lägga in alla de kontroller som gjorts under året.

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2

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

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Objektorienterad Programmering (TDDC77)

Introduktion. Den objektorienterade modellen Grundläggande begrepp Klass Klassen som abstraktion

Transkript:

Objektorientering Klasser VSA110 1

OOA I analysen upprättas: Klassdiagram Objektdiagram Tillståndsdiagram Scenario Användningsfall Sekvensdiagram Användardialoger (skärmbilder) 2

Analys - en översikt Vi fokuserar på en nyckelfråga: Vilken information bör systemet hantera? Målsättningen är att: Ta fram en modell som kan användas för att designa och implementera ett system som kan behandla, överföra och presentera information på ett användbart sätt. 3

Analys Aktivitet Innehåll Begrepp Klasser Vilka objekt och händelser ingår i systemet? Klass, objekt, händelse Struktur Hur hänger klasser och objekt samman? Generalisering, aggregat, associationer Beteende Vilka dynamiska egenskaper har objekten? Händelseförlopp, beteendemönster och attribut 4

Sammanfattning - analys De tre aktiviteterna syftar till att få fram en sammanhängande modell över problemområdet. Klassaktiviteten fokuserar på delarna (objekt och klasser). Strukturaktiviteten fokuserar på helheten (relationer, strukturer). Beteendeaktiviteten fokuserar på delarna (dynamiska egenskaper för varje del). 5

Analys Klasser Begrepp: Objekt en entitet med identitet, tillstånd och beteende Klass en beskrivning av samling objekt som delar struktur, beteendemönster och attribut Händelse en momentan tilldragelse i vilken ett eller flera objekt är inblandade Principer: Klassificera objekt Karakterisera objekt genom deras händelser Välj kritiskt Resultat: Klasser och tillhörande händelser. 6

Aktiviteter i modellering Hitta objekt Analysera olika textdokument, beskrivning av användningsområdet, andra datasystem, teknisk litteratur.. Objekt motsvarar substantiv i skriven text Objekt behöver inte ha en direkt fysisk motsvarighet Brainstorming Hitta händelser Verb och verbfraser Ex. Konto öppnat, belopp insatt, lån beviljat, kund informerad, beställning avslutad, vara skickad, vara köpt, anställning avslutad, antagen till kurs.. 7

Objekt Ett objekt entitet med identitet, tillstånd och beteende. Entitet : fysisk påtagliga saker (en person) och mindre påtagliga (en organisation) Identitet : egenskap som särskiljer objektet från alla andra objekt. Tillstånd: statiska och dynamiska egenskaper (statiska persnr, dynamiska förbindelse mellan kundobjekt och kontoobjekt) Beteende: är den följd av händelser som objektet aktivt utför och passivt upplever under sin livstid. Händelse en momentan tilldragelse i vilken ett eller flera objekt är inblandade. 8

Objekt Objekt Har egenskaper (attribut) Kan utföra uppgifter (metoder) OO-tankegång i följande sats: Huset har blivit fint sedan Bo målade det Objekt: Huset, Bo Händelse: målandet av huset (målning utförd) Ändrat tillstånd: Huset har blivit fint 9

Aktiviteter i modellering Klassificera objekt (klasser) Kandidatobjekten klassificeras 10

Beteende Grundläggande syftet med ett system är att registrera, lagra och producera information om händelser i problemområdet. Skapa beteendemönster av händelseförlopp Studera gemensamma händelser. Härled klassattribut från beteendemönster! Vilken är klassens allmänna egenskaper? Vilka grundfakta måste fångas rörande objekt från denna klass? Vilka resultat från ett händelseförlopp måste fångas? Vilken tidpunkt inträffade händelse? 11

Utvärderingskriterier för klasser Kunna identifiera objekt från en klass Varje klass bör representera en lämplig mängd unik information. Varje klass ska ha en lämplig mängd händelser För få händelser = irrelevant klass? Ej klass utan attribut? För många händelser = alltför komplicerad. Dela upp i flera enklare klasser. Svag koppling mellan klasserna Hög sammanhang (kohesion) och välavgränsat ansvar. 12

Utvärderingskriterier för händelser Är händelsen momentan? Är händelsen atomär? Kan vi konstatera när händelse inträffade? (ex. artikel bedömd) 13

Aktiviteter i modellering Struktur Generalisering (superklass subklass) Association Aggregat (helhet delar) Resultat Klassdiagram med klasser och strukturer 14

Aktiviteter i modellering av problemområdet Generalisering: En generell klass (superklass) beskriver egenskaper gemensamma för en grupp av specialiserade klasser (subklasser) «abstract» Djur Namn Vikt Ät() Sov() Fågel Vingspann Fisk Maxdjup Flyg() Simma() 15

Aktiviteter i modellering av problemområdet Association Person äger 1 0..* Bil 16

Aktiviteter i modellering av problemområdet Aggregat/Komposition 1 Bil 1 1 1 1 4 Chassi Motor Hjul 17

Tre grundpelare Inkapsling Arv Polymorfism 18

Övning 1 System för en enkel mobiltelefon Skriv upp klasskandidater i mobiltelefonsystemet. Skriv upp händelser Telefonen kan ta emot samtal och ringa andra tel.nr Den ger ägaren en personlig telefonkatalog för att lagra namn och tel.nr Telefonen sköter en fullständig logg över alla inkommande och utgående samtal samt obesvarade samtal Rita klassdiagram för mobiltelefon 19

Övning 2 Beskriv en elspis med klassdiagram Spisen har fyra elplattor Varje platta är kopplad till ett reglage med lägena 1 till 6 Plattorna har en temperatur vardera En lysdiod indikerar att någon av plattorna är påslagna Spisen har en inbyggd ugn 20

Övning 3 Beskriv ett filträd med ett klassdiagram En enhet kan innehålla mappar eller enstaka filer Mapparna kan i sin tur innehålla mappar eller filer En mapp kan delas ut till ett nätverk En fil har en storlek (kb) 21

Litteraturhänvisning Wiktorin: Objektorientering: kap 5 UML: http://www.ibm.com/developerworks/rational/library/769.html http://www.uml.org/ 22