UML. Unified Modeling Language

Storlek: px
Starta visningen från sidan:

Download "UML. Unified Modeling Language"

Transkript

1 UML Unified Modeling Language 1

2 UML kort historik 1980-talet: Många OO-metoder Stora skillnader inom Notation Begrepp Omfång Svåra att jämföra Unified Modeling Language enad eller likriktad 2

3 UML kort historik Kortfattat kan UML beskrivas så här: UML är ett visuellt språk för att specificera, konstruera och dokumentera ingående delar i ett system. UML är ett generellt modelleringsspråk i den mening att det går att använda för olika verksamhetsområden och för olika tekniska plattformar. Historik: UML 2.0 utökning som lanserades stegvis mellan 2003 och 2005 De som mest aktivt deltog i framtagande av UML var: Grady Booch Jim Rumbaugh Ivar Jacobson Ansvaret för vidareutveckling har OMG (Object Management Group) där vidare specifikationsarbete sker i form av en community. 3

4 UML kort historik Målet är att UML ska Kunna beskriva alla typer av system Kunna utökas vid behov Kunna tolkas entydigt av en maskin Kombinera styrkorna från tidigare OO-notationer 4

5 UML kort historik Några egenskaper hos UML som modelleringsspråk: UML är ett visuellt modelleringsspråk. UML består av en stor uppsättning element och regler för hur elementen kopplas samman. 14 olika diagramtyper finns identifierade i UML 2.2, tidigare var det 9 stycken. Elementen har en definierad syntax och semantik, vilket gör att det kan kallas för ett språk. UML är utökningsbart 5

6 Genomgång av UML UML är ingen metod Beskriver därför inte Arbetssteg (omfattning / ordning) Projektfaser Rollfördelning (ansvar) Leveransobjekt Övrig dokumentation Stödjer alla faser i mjukvaruutveckling Metodoberoende 6

7 Elementen i UML Språket UML byggs upp av ett antal element och regler för hur dessa element kopplas samman. 7

8 Diagram i UML 2.2 8

9 Allmän UML-notation En notering kan göras var som helst i ett diagram. Antingen som en fristående notering eller kopplad till ett element via en streckad linje. Note Note Använd noteringar för att: Förklara och informera läsaren. Förklara det som inte är uppenbart. Skriva kodfragment eller text som beskriver ett beteende eller en begränsning. 9

10 Allmän UML-notation Ramar (Frames) är en nyhet i UML 2.0. De används för att rama in grupper av samverkande element eller för att att referera till andra sådana grupper. rama in hela diagram. rama in delar av diagram, exempelvis sekvensdiagram. 10

11 Så här ritas en klass Klassnamn instansvariabler metoder Klass utan instansvariabler Klassnamn metoder Så här ritas en instans :Klassnamn Klass på designnivå Djur Djur namn fördelseår hämtanamn hämtaålder Klass på implementationsnivå private String namn private int födelseår public String hämtanamn() public int hämtaålder() variabelnamn = värde 11

12 Klassdiagram Klassdiagrammet är ett strukturbeskrivande diagram som används för att visa en statisk bild över modellelement och deras inbördes relationer. Klassdiagram är det mest centrala diagrammet i UML Visar klasserna som ingår i systemet Visar relationer mellan klasser (arv, aggregat, associationer) Beskriver systemets statiska struktur Vad används det till? Definiera vilka data som systemet ska hantera Definiera hur data kan modifieras Vad uppnås? Verksamhetsförståelse Ansvarsfördelning mellan klasser 12

13 Klassdiagram Klassdiagram kan användas i många olika sammanhang där strukturelement och deras relation ska modelleras. Kodgenerering och kodvisualisering: Objektorienterad kod och klassdiagram har mycket gemensamt och historiskt sett är den kopplingen kärnan i de verktyg som stödjer UML. Objektorienterad kod kan visualiseras med UML och från klassdiagram kan kod genereras. Verksamhetsmodellering: Konceptuella modeller för att beskriva verksamheter är lämpliga att beskriva i form av klassdiagram. 13

14 Klassdiagram Class ClassName Interface Generalization <<interface>> InterfaceName Association Interface Realization Dependency Aggregation Composition 14

15 Klassdiagram Klass Företeelse i verksamheten Ritas som en tredelad rektangel Namn, attribut och operationer skrivs ut Första rutan i rektangeln får inte vara tom. (Klass Namn) Person -name : String -age : int Attribut Egenskap för en klass Har en datatyp Värden sätts i objekt av klassen Exempel: sträng, heltal Namnet bör spegla vilka data som lagras Synlighet (prefix före namn): Public (+) Private (-) Protected (#) 15

16 Klassdiagram Operation Kan vara Kommando ändrar objektets tillstånd Fråga returnerar data om tillståndet (get) Kan ha en eller flera parametrar med varsin datatyp VisibilityForOperationsClass + publicoperation() - privateoperation() # protectedoperation() Objekt Förekomst av en klass person : Person name : String = Alex Jones age : int = 25 16

17 Association Association (A har/använder B) Visar att klasserna känner till varandra Statisk relation mellan två eller fler klasser Rak linje innebär obestämd eller dubbelriktad association. Innebörd bestäms i projektet. Enkelriktad association ritas som en pil Associationens namn bör spegla relationens syfte Placeras nära linjen Inte obligatoriskt Verb Roll Visar hur en klass uppfattas av en annan klass Kan namnges (substantiv) Varje association har två roller (en för varje riktning) Skriv namnet nära klassen som rollen avser (på en associationslinje) Exempel: Ägare, Kund, Lärare 17

18 Ex Roller Person Bil 1 Ägare äger * Egendom Person Mor 1 1 Far Föräldraskap 18

19 Association ClassA ClassC ClassE ClassG ClassI ClassK ClassB ClassD ClassF ClassH ClassJ ClassL Exempel på diverse relationer mellan klasser ClassA är beroende av ClassB. ClassC har en ospecificerad koppling till ClassD. ClassE känner till ClassF Båda klasserna känner till varandra. Aggregat används för att visa på en struktur med whole/part -relation. ClassJ är en del av klassen ClassI Påminner om aggregat men vid komposition kan inte ClassL existera om inte ClassK finns. 19

20 Association Multiplicitet Visar hur många objekt av en klass som kan kopplas ihop med objekt av en annan klass Anges vid associationslinje Asterix (*) = godtyckligt många <min>..<max> = intervall Exempel: * 0..* 2, 3, * Employee Computer Multiplicitet 20

21 Aggregat Aggregering (är en del av) Visar att ett modellelement (en klass) är en del av ett annat modellelement (en annan klass) Starkare form än association mellan klasser Samma notationsmöjligheter (multiplicitet, roller, etc) Visas som en streck med diamant Work Team member Person 21

22 Aggregat Ifylld diamant (komposition) avser att ett objekt av en klass kan endast existera som del av ett objekt av en annan klass. Förstörs huvudobjektet förstörs även delarna (composition) Bil Chassi Motor Hjul 22

23 Aggregat Exempel på komposition * Listbox Window 1 * Button * Menue 23

24 Generalisering /Specialisering (Arv) Specialisering /Generalisering (är) Visar att en klass ärver egenskaper och beteenden från en annan klass Specialfall av association Abstrakta klasser: saknar instanser Animal Fordon Mammal Cat Horse Bil Buss Grundregel för pilar: Den som pekar är den som utför en aktiv handling. 24

25 Klassdiagram Exempel - Hinge -size Room * -Passage * Door -isopen : bool -color : String +open() +close() +isopen() +getcolor() +setcolor(in color : String) * - Lock -islocked : bool * +lock() +unlock() +islocked() Glass Door -isbreakable : bool +isbreakable() : bool 25

26 Klassdiagram Mål / Ideal Visar hur användarna tänker kring sin verksamhet Beskriver användarnas språk (jämför med begreppsmodellering) Visar hur centrala begrepp hänger ihop 26

27 Klassdiagram Objektdiagram Instanciering av ett klassdiagram Visar en ögonblicksbild över tillståndet i ett system Kan klargöra komplicerade klasstrukturer Behöver inte alltid tas fram 27

28 Tillståndsdiagram Vad är det? Beskriver totala dynamiken för en klass (beteende) Behövs inte för enkla klasser Händelseorienterat Vad används det till? Hitta alla tillstånd för objekt av klassen Beskriva klassens levnadscykel över samtliga användningsfall Identifiera alla giltiga övergångar mellan tillstånd Vad uppnås? Hantering av komplicerad dynamik 28

29 Tillståndsdiagram Tillståndet hos bok objektet kan ändras när en kopia av boken lånas. Tillståndet kan ändras från att vara utlåningsbar (det finns en kopia i biblioteket) till ej utlåningsbar (alla kopiorna är utlånade eller reserverade). Vi kan visa detta med ett tillståndsdiagram. 29

30 Tillståndsdiagram 30

31 Ex. tillståndsdiagram - kontantuttag sätt in kort Kort insatt begär kod mata in kod Väntan på kod förkasta betalning Kod inmatad avbryt Belopp godkänt Kod accepterad Väntan på belopp välj belopp Belopp valt godkänn belopp Belopp ej godkänt 31

32 Ex. tillståndsdiagram - telefon Active TimeOut lift receiver / getdialtone DialTone do/ play dial tone do/ play message dial digit(n) dial digit(n)[incomplete] Dialing Idle Invalid dial digit(n)[invalid] do/ play message Connecting Pinned caller hangs up / disconnect Busy do/ play busy tone busy connected Talking Ringing do/ play ringing tone 32

33 Övning klassdiagram Böcker och tidskrifter Biblioteket innehåller böcker och tidskrifter. Det kan finnas flera kopior av samma bok. Endast biblioteksanställda får låna tidskrifter. 33

34 Lösningsförslag 34

35 Use Case Use Case är användarfall som visar systemet ur användarnas synvinkel beskriver en bestämd uppgift som görs i ett system består av ett diagram och en textbeskrivning ska skapa ett mervärde för systemets aktörer lätt modell att komma igång med Use Case-Diagrammet visar relationen mellan olika användningsfall visar hur aktörerna använder användningsfall 35

36 Use Case Vad används det till? Hitta systemets användare Identifiera användarnas krav Definiera systemets funktioner Identifiera delsystem 36

37 Use Case 37

38 Use Case Notation: <Actor> Primär aktör Informationsflöde (dubbelriktat) <Actor> Sekundär aktör Informationsflöde (enkelriktat) Funktionsnamn Ett användningsfall (Use Case) Include Nyttjande av användningsfallet Systemets namn Systemet Extends Utökning av användningsfall 38

39 Use Case Aktör Primär aktör i förhållande till systemet Motsvarar en roll som användaren spelar En användare kan ha många roller Flera användare kan ha samma roll Använder systemet direkt Erhåller värden från systemet Behöver inte vara en person Exempel: Kund, Tidrapporteringssystem Sekundär aktör Underhåller eller övervakar systemet Gör systemet tillgängligt för primära aktörer Exempel: Lagerpersonal, systemklocka <Actor> <Actor> 39

40 Use Case Användningsfall (Use Case) Ett användningsfall är en specificerad uppgift en aktör kan utföra i systemet Uppbyggt av ett antal scenarier Scenario: dialog mellan aktör och systemet Normalfall / undantag Tillsammans utgör alla användningsfall systemets funktionalitet System Definierar omfånget (gränsen) för systemet Kan vara vilken sorts system som helst Exempel: Lagerhanteringssystem 40

41 Use Case Informationsflöde (dubbelriktat) En ömsesidig påverkan mellan en aktör och ett användningsfall (relation) Funktionen är beroende av de data som användaren matar in Exempel: Aktörens val avgör vilka skärmbilder som visas och vilken information som presenteras, därefter gör aktören nya val, etc. Informationsflöde (enkelriktat) Informationsflöde från ett användningsfall till en aktör (eller omvänt) Symbolen används för att visa att informationen är enkelriktad Exempel: Rapport skrivs ut till kund (info) 41

42 Use Case A include B A extend B Beroende (include) Ett including användningsfall inkluderar ett annat användningsfall Beroende (extend) Används för att utvidga ett användningsfall med innehållet i ett annat användningsfall Notationen används ofta för att beskriva undantag och felhantering i modellen 42

43 Use Case-diagram Varuleverans (system) Fakturering Uses Beräkna kostnad Kund Registrera order Extends Registrera förstagångsanvändare Plocka ihop beställning Leverera varor Budfirma Lagerarbetare Uses kan ses i gamla diagram, i de nyare heter relationen <<include>> 43

44 Use Case-diagram 44

45 Use Case-diagram Realiseras av systemets klasser Genom samarbete Realiseringen visas i övriga UML-diagram Hur användningsfall ska dokumenteras i detalj beskrivs inte i UML 45

46 Use Case-diagram Fallgropar? Göra ostrukturerade / tvetydiga textbeskrivningar Klassiska fällor: synonymer, homonymer, syftningsfel För många användningsfall Beskriva användningsfall som inte levererar mervärde till någon aktör 46

47 Övning 1 - Use Case Vid en bensinstation kan man tanka sin bil och betala i en automat, antingen med kontokort eller kontant. Vilka aktörer och användningsfall kan finnas i detta system. 47

48 Övning 2 - Use Case Vilka scenarier kan du hitta för systemet i övning 1? Beskriv något av scenarierna närmare. 48

49 Lösningsförslag Övning 1 Aktörer: kund, bensinbolag (det datorsystem hos bensinbolaget som kontrollerar bensinkort och registrerar köp). Eventuellt en administratör till bensinbolagets system. Användningsfall: Tankning med kontant betalning, tankning med kontokortsbetalning. Ett eller flera användningsfall som hanterar administration av systemet. 49

50 Lösningsförslag Kund Tanka med kort Bensinbolag Tanka kontant Sätta bensinpris Admin 50

51 Lösningsförslag Övning 2 Två vanliga scenarier: En kund betalar kontant och tankar En kund betalar med kort och tankar. Mer ovanliga scenarier: En kund betalar kontant och glömmer att tanka En kund betalar med kort men har glömt sin PIN-kod En kund vill betala kontant men automaten accepterar inte sedeln, o.s.v. Det finns fler av dessa mer ovanliga scenarier beroende på alla faktorer som kan gå fel. 51

52 Lösningsförslag Noggrannare beskrivning av tanka med kontokort: En kund anländer till bensinstationen. Textfönstret i bensinautomaten visar Välkommen, sätt in ditt kort. Kunden sätter in sitt kort i automaten. Automaten läser kortet, visar Ange PIN-kod i textfönstret. Kunden trycker in sin kod. Automaten läser koden, kontrollerar kortet och koden hos bensinbolaget och finner att de är giltiga. Automaten visar Tag ditt kort och tanka i textfönstret. Kunden väljer oktantal vid bensinpumpen och tankar. Automaten får uppgifter om tankningen från bensinpumpen och registrerar köpet hos Bensinbolaget. 52

53 Sekvensdiagram Vad är det? Visar hur objekt samarbetar för att lösa en uppgift Motsvarar vanligtvis ett användningsfall Operationerna visas i tidsordning Vad används det till? Beskriva systemets beteende (dynamik) Skapa arbetsfördelning mellan klasser (ansvar) Identifiera saknade klasser 53

54 Sekvensdiagram Vad uppnås? Överblick Händelser Meddelande-flöden (mönster) Samarbete mellan komponenter Verksamhetsförståelse Fallgropar? Göra för komplicerade sekvensdiagram 54

55 Sekvensdiagram window Objekt Deltar i samarbete för att lösa arbetsuppgift Klassnamnet kan skrivas ut Exempel: fönster : Fönster Livslinje för objektet (lifeline) Tidsaxel open() Meddelande Skickas mellan objekten Metodnamn obligatoriskt Kan ha parametrar (inom parentes) 55

56 Sekvensdiagram recordplayer Aktivitet Ritas som vertikal rektangel längs livslinjen Anges då ett objekt utför arbete i flödet Resultatet av ett meddelande-anrop Villkor Måste gälla för att meddelandet ska sändas [unlocked] open() valuesok() Retur-meddelande Retur tillbaka till anroparen Visa bara returvärde om det förtydligar beskrivningen 56

57 Sekvensdiagram Objektet upphör (destruktion) Anger att objektet slutar existera Görs på eget initiativ eller resultat av anrop Visas som ett kors längs livslinjen close() Asynkront meddelande Anroparen väntar inte på retur Meddelande (vanligt anrop) 57

58 Sekvensdiagram :Klass1 :Klass2 :Klass3 1. metodnamn 2. metodnamn 3. * metodnamn 58

59 Ex. Sekvensdiagram vad händer när man klickar på en sökknapp i ett fönster :Användare :Sökknapp :Knapp- Kommando :Söktextruta :Modell :Fönster klick actionperformed gettext sökdata visasökresultat 59

60 Ex. Sekvensdiagram -öppna dörr med en kod Keypad Door Control Unit Security System Lamp Controller Door key pressed(1) key pressed(5) key pressed(3) key pressed(enter) verify code(153) code accepted() light() open() 60

61 61

62 Aktivitetsdiagram Aktivitetsdiagram beskriver en följd av händelser i ett system, med hjälp av aktiviteter. Aktivitetsdiagram är en speciell form av tillståndsdiagram, som bara (eller i huvudsak) innehåller aktiviteter. Aktivitetsdiagram liknar procedurella flödesdiagram, med skillnaden att alla aktiviteter är klart länkade till objekt. Aktivitetsdiagram hör alltid ihop med en klass, en operation eller ett användningsfall. Aktivitetsdiagram stöder sekvens- samt parallella aktiviteter. Parallell körning representeras med ikonen Dela upp/samla ihop, och det är inte viktigt för aktiviteter som kör parallellt i vilken ordning de utförs (de kan köras samtidigt eller en i taget). Aktivitet En aktivitet är ett enda steg i en process. En aktivitet är ett tillstånd i systemet med intern aktivitet och åtminstone en utgående övergång. Aktiviteter kan också ha mer än en utgående övergång, om de har olika villkor. 62

63 Några andra typer av diagram Samarbetsdiagram Samarbetsdiagram visar växelverkan mellan objekt som deltar i en speciell situation. Det här är mer eller mindre samma information som visas i sekvensdiagram, men där läggs vikten vid hur växelverkan sker i tiden, medan samarbetsdiagram lägger vikten vid sambanden mellan objekten och deras topologi. Komponentdiagram Komponentdiagram visar programkomponenter (antingen komponentteknologier som Kparts, CORBA-komponenter eller Java Beans eller bara delar av systemet som är klart urskiljbara) och artefakterna de består av, som källkodsfiler, programbibliotek eller relationsdatabastabeller. Komponenter kan ha gränssnitt (dvs. abstrakta klasser med operationer) som tillåter association mellan komponenter. Utplaceringsdiagram (deployment diagram) Utplaceringsdiagram visar komponentinstanserna vid körning och deras associationer. De omfattar noder, som är fysiska resurser, typiskt en enskild dator. De visar också gränssnitt och objekt (klassinstanser). 63

Introduktion. Byggstenar TDBA63 2005-11-22

Introduktion. Byggstenar TDBA63 2005-11-22 Introduktion UML står för Unified Modeling Language. Det är tänkt att fungera som hjälpmedel vid modellering av alla tänkbara typer av utvecklingsarbeten, inte bara inom dataomdrådet. Det största värdet

Läs mer

Objektorientering. Grunderna i OO

Objektorientering. Grunderna i OO Objektorientering Grunderna i OO 1 Systemutveckling Tre systemnivåer: Verksamhet Informationssystem Datasystem Huvuduppgifterna i ett systemutvecklingsarbete: Verksamhetsanalys Informationsbehovsanalys

Läs mer

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

UML 1(5) Introduktion till Unified Modeling Language. 1 Bakgrund och historik UML 1(5) Introduktion till Unified Modeling Language 1 Bakgrund och historik UML är ett objektorienterat modellspråk för att specificera och visualisera system. Det är framtaget i första hand för IT-orienterade

Läs mer

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

UML: Exempel. Ett modelleringsspråk. UML: Ansvar. UML: tre huvudanvändningar. Exempel: En klass position storlek. UML Unified Modelling Language Ett modelleringsspråk : Exempel Fönster Klassnamn Unified Modelling Language Av Booch, Jacobson, Rumbaugh Exempel: En klass position storlek Attribut (instansvariaböe) Resultatet av en sammanslagning av

Läs mer

Inkapsling (encapsulation)

Inkapsling (encapsulation) UML UML är en standard för att dokumentera och visualisera sina tankar och beslut under analys och design. Att lära sig allt om UML får inte plats i den här kursen, men vi kommer lära oss vissa delar.

Läs mer

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

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur Objekt-orienterad utveckling Saker man vill uppnå: Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet 16 mars 2005 en systematisk metod för att gå från problembeskrivning till färdigt

Läs mer

Objektorientering Användning

Objektorientering Användning Objektorientering Användning Samt repetition av klasser Suzana Ramadani 1 Repetition Objektorientering bygger på Abstraktion Hierarkisk strukturering Inkapsling Klassificering Generalisering specialisering

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

Objektorienterad analys och design

Objektorienterad analys och design Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet 16 mars 2005 1 Objekt-orienterad analys och design: Litteratur Skansholm: Kapitel 4 Se även 1. http://www.uml.org/ 2. http://www-306.ibm.com/software/rational/uml/

Läs mer

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

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar Klassbegreppet och C++ OOP UML Klasser och objekt i C++ Uppdelning i filer Attribut och metoder Inkappsling - åtkomst Klassattribut - objektattribut Objekt-orienterad programmering Att använda ett objektorienterat

Läs mer

Handbok Umbrello UML Modeller

Handbok Umbrello UML Modeller 2 Innehåll 1 Inledning 7 2 Grundläggande UML 8 2.1 Om UML........................................... 8 2.2 UML-element........................................ 9 2.2.1 Användningsfallsdiagram.............................

Läs mer

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo.

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo. UML Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN-20520 Åbo, Finland e-mail: tczarnec@abo.fi url: www.abo.fi/~tczarnec Abstrakt The Unified Modeling Language, UML, är ett visuellt

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

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

Objekt-orienterad utveckling. Objektorienterad analys och design. Objekt-orienterad programutveckling. Objekt-orienterad analys och design: Litteratur Objekt-orienterad utveckling Saker man vill uppnå: Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet 17 juni 2005 en systematisk metod för att gå från problembeskrivning till färdigt

Läs mer

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

UML. Översikt UML. Relationer mellan klasser. A är ett aggregerat av B:n. Kontor aggregat av Enheter. 12 olika diagramtyper, bl.a. Översikt UML Sekvensdiagram (dynamic structure) Informationsflöde genom programmet Användningsfall (use cases) Aktörers interaktion med systemet Paketdiagram Beroenden mellan paket abstrakta klasser Multipel

Läs mer

UML-syntax. Lennart Andersson Datavetenskap, LTH. 20 januari 2013

UML-syntax. Lennart Andersson Datavetenskap, LTH. 20 januari 2013 UML-syntax Lennart Andersson Datavetenskap, LTH 20 januari 2013 1 Inledning UML är en grafisk notation för utformning och beskrivning av objektorienterade system. Akronymen står för Unified Modeling Language.

Läs mer

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ Föreläsning 7 OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram - Kravspecifikationer, användningsfall, systemarkitektur - Analysfas vad är analys?

Läs mer

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

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram Översikt Introduktion UML Objektorienterad programutveckling Analys Design UML Klassdiagram Aktivitetsdiagram Modellering Modellering är ett medel för att hantera komplexitet Bygger en abstraktion av verkligheten

Läs mer

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

UML. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 UML Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 UML Unified Modelling Language Grafiskt modelleringsspråk för att beskriva olika aspekter av objektorienterade system. Vi kommer

Läs mer

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

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer. Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language

Läs mer

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

Abstrakta Klasser 2. Kodning är bara en liten del i programvaruutvecklingen 6% 1% 6% Abstrakta Klasser - deklaration. Programutveckling sker i faser Abstrakta Klasser 1 God klassdesign placerar gemensamma attribut och metoder så högt som möjligt i hierarkin men ibland kan dessa egenskaper inte definieras fullständigt Abstrakta klasser innehåller ofta

Läs mer

Objektorienterad analys och design

Objektorienterad analys och design Objektorienterad analys och design Sven-Olof Nyström Uppsala Universitet June 22, 2006 1 Objekt-orienterad analys och design: Litteratur Skansholm: Kapitel 4 Se även 1. http://www.uml.org/ 2. http://www-306.ibm.com/software/rational/uml/

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

Objektorienterad programutveckling i ett nötskal

Objektorienterad programutveckling i ett nötskal Objektorienterad programutveckling i ett nötskal Tommy Olsson, Institutionen för datavetenskap, Linköpings universitet, 204 Detta häfte ger en översikt av grundläggande begrepp inom objektorienterad programutveckling:

Läs mer

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

Översikt. Introduktion. Objektorienterad programutveckling UML UML. Analys Design. Klassdiagram Aktivitetsdiagram Översikt Introduktion UML Objektorienterad programutveckling Analys Design UML Klassdiagram Aktivitetsdiagram Modellering Modellering är ett medel för att hantera komplexitet Bygger en abstraktion av verkligheten

Läs mer

Föreläsning 15: Repetition DVGA02

Föreläsning 15: Repetition DVGA02 Föreläsning 15: Repetition DVGA02 Vad handlar kursen om? Kursen kan i grova drag delas upp i tre delar: 1. Objekt-orienterad programmering 2. Grafiska användargränssnitt 3. Datastrukturer Dessutom genomsyras

Läs mer

UML 2.0 Genomgång av de 13 diagramtyper som ingår i UML 2.0.

UML 2.0 Genomgång av de 13 diagramtyper som ingår i UML 2.0. UML 2.0 Genomgång av de 13 diagramtyper som ingår i UML 2.0. Copyright 2005 Arnold Andreasson This work is licensed under a Creative Commons License. For a human-readable summary of the Legal Code, see

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 2016 2014 jonas.kvarnstrom@liu.se

Läs mer

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

TDDE10 TDDE11, 725G91/2. Objektorienterad programmering i Java, Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 TDDE11, 725G91/2 Objektorienterad programmering i Java, Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Ett större exempel på OOP Objektorienterad Analys (OOA)

Läs mer

Unified Modeling Language UML

Unified Modeling Language UML Unified Modeling Language UML Vad händer idag? Föreläsning Introduktion till UML Objekt-orientering Klasser Objekt Use cases UML-diagram Specifikationer Praktisk övning Skapa enkla UML-diagram 2 Vad är

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

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

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

Objektorienterad konstruktion

Objektorienterad konstruktion Analys - Objektorienterad konstruktion Vad är objektorientering?» Ett sätt att angripa programmeringsproblem» Ett sätt att tänka när man programmerar Vad innebär objektorientering?» Att uppmärksamheten

Läs mer

Begreppsmodellering i UML

Begreppsmodellering i UML Begreppsmodellering i UML En kort-kort introduktion av Ambjörn Naeve http://kmr.nada.kth.se Begreppsbildning Syfte: Begreppsbildning syftar till att hjälpa oss att bortse från oväsentligheter genom att

Läs mer

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt. (7) Objektinteraktion Objektorienterad programmering 2 Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt. Mål Efter övningen skall du kunna konstruera ett program med

Läs mer

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering

Läs mer

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion previous next Svårt att utveckla system Strukturerad programmering Flera metoder Utvecklingsmetoder...

Läs mer

Övning / handledning Användningsfall

Övning / handledning Användningsfall ACSD sommar 2004 Övning / Handledning Användningsfall Uppsala universitet & Stefan Blomkvist @ 2004 Stefan Blomkvist stefan.blomkvist@it.uu.se ACSD sommar 2004. Övning / handledning Användningsfall Ett

Läs mer

"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde

Är en-relation. Har en-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande

Läs mer

Begreppsmodellering i UML

Begreppsmodellering i UML Begreppsmodellering i UML En kort-kort introduktion av Ambjörn Naeve http://kmr.nada.kth.se Begreppsbildning Syfte: Begreppsbildning syftar till att hjälpa oss att bortse från oväsentligheter genom att

Läs mer

Objektorienterad Systemutveckling 1 (7,5 hp)

Objektorienterad Systemutveckling 1 (7,5 hp) [ sida 1 ] Objektorienterad Systemutveckling 1 (7,5 hp) Provmoment: Ladokkod: Tentamen ges för: Tentamen (5 hp) 21OB1B ASYST13h, NGIMI13h, ADAEK13h Datum och tid: 2015-01-14, kl. 09.00 13.00 Hjälpmedel:

Läs mer

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering Föreläsning 4 Objektorienterad programmering Föreläsning 4 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Introduktion till objektorientering Klasser och Objekt Instansvariabler Metoder Introduktion

Läs mer

Information. Computer

Information. Computer Information Objektorienterad modellering och diskreta strukturer Lennart Andersson Reviderad 2009-10-14 2009 Tentamen torsdag 22 oktober 8-12/13. Hjälpmedel på tentamen. Martin: PPP Andersson: UML Holm:

Läs mer

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

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och Innehåll u OOP snabbintroduktion u Datatyper u Uttryck u Satser u Arv (intro) u Programvaruutveckling och programmering u Klassdesign och metodik (UML, CRC) u Arv, polymorfi och dynamisk bindning u Fält

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

Objektorientering Klasser

Objektorientering Klasser 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

Läs mer

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

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14 Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel

Läs mer

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14.

Tentamen. 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14. Tentamen 2D4135 vt 2004 Objektorienterad programmering, design och analys med Java Torsdagen den 3 juni 2004 kl 9.00 14.00, sal D31 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel

Läs mer

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... } Föreläsning 3 Arv Kategorisering Stora program leder till många klasser (tänk liknelsen med en affär med många varor). Att dela in saker i kategorier är en vanlig strategi för att hantera stora komplexa

Läs mer

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

729G75: Programmering och algoritmiskt tänkande. Tema 3, föreläsning 2 729G75: Programmering och algoritmiskt tänkande Tema 3, föreläsning 2 Översikt Vanliga mönster när man designar en klass Arv i Python UML-diagram Exempel Vanliga mönster när man designar en klass Namngivning

Läs mer

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML och lite mer om OOA (och OOD) - Översikt grundläggande diagram - Kravanalys användningsfall samarbetsdiagram sekvensdiagram meddelandestereotyper tillståndsdiagram

Läs mer

Arv (Inheritance) Multipelt arv finns i verkligheten. Överskuggning, metodbindning. Läsanvisning: ! Arv! Object, instanceof! Relationer!

Arv (Inheritance) Multipelt arv finns i verkligheten. Överskuggning, metodbindning. Läsanvisning: ! Arv! Object, instanceof! Relationer! itop F8 Arv (Inheritance) Läsanvisning: arv: i kap 10, exceptions: i kap 15 mer kommer sen UML: tas bara upp i OH Object Kalle Student Person Graduate Lärare! Arv! Object, instanceof! Relationer! UML Nästa

Läs mer

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77) Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Introduktion HT2 Åtkomst Abstrakt datatyp UML Överlagring

Läs mer

RUP - Rational Unified Process

RUP - Rational Unified Process IBM Software Group RUP - Rational Unified Process Eva Hådding eva.hadding@se.ibm.com 1 Projektkaos. Chaos-rapporten 28% av projekten avslutades i tid och enligt budget. 49% av projekten drog över de ursprungliga

Läs mer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1

Läs mer

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Kort om klasser och objekt En introduktion till GUI-programmering i Java Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på

Läs mer

Föreläsning 9: Arv och UML

Föreläsning 9: Arv och UML TDA 545: Objektorienterad programmering Föreläsning 9: Arv och UML Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Quiz Vad betyder static? Varför skriver man get-metoder? public int getpos() { return pos;

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

Introduktion till UMLs klassdiagram

Introduktion till UMLs klassdiagram 1(28) Introduktion till UMLs 1 Inledning...3 2 Klassdiagram Introduktion till klasser och objekt...4 2.1 Olika typer av klasser...5 2.1.1 Abstrakta klasser...5 2.1.2 Gränssnitt (eng. Interface)...5 2.1.3

Läs mer

Relationer mellan objekt

Relationer mellan objekt Relationer mellan objekt Att utveckla en applikation När man utvecklar en applikation börjar man självklart inte direkt att programmera. Först måste man analysera problemet och utveckla en design för lösningen.

Läs mer

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML. Outline Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vad händer under HT2 Laborationsserie del två I Klasser

Läs mer

OOMPA 2D1359 Föreläsning 5

OOMPA 2D1359 Föreläsning 5 OOMPA 2D359 Föreläsning 5 Objektorienterad Modellering Programmering och Analys Innehåll Klassdiagram med Klassbeskrivningar l klasser, arv, attribut, operationer l relationer, associationer, restriktioner

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

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

Examen i 2D1359 & 2D1360 Objektorienterad modellering programmering och analys Tisdagen, 23 Oktober 2001, 14:00-19:00 NADA, KTH 2D1359 & 2D1360 2001-10-23 Sid 1 av 7 Examen i 2D1359 & 2D1360 Objektorienterad modellering programmering och analys Tisdagen, 23 Oktober 2001, 14:00-19:00 Inga hjälpmedel tillåtna. Poäng och

Läs mer

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna

Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna Nationell informationsstruktur 2015:1 Bilaga 1: Läsanvisning till modellerna Innehåll Inledning... 3 Ord och uttryck... 4 Processmodeller... 5 Vad är en processmodell?... 5 Hur används processmodeller

Läs mer

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

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning 2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten

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

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

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016

Objektorienterad Programkonstruktion. Föreläsning 3 7 nov 2016 Objektorienterad Programkonstruktion Föreläsning 3 7 nov 2016 Klass/instans Med hjälp av nyckelordet static kan vi bestämma att en metod eller ett fält ska tillhöra själva klassen i stället för en specifik

Läs mer

Laboration 1 - Grunderna för OOP i Java

Laboration 1 - Grunderna för OOP i Java Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben

Läs mer

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

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag

Läs mer

Objekt, Klasser, Paket m. m.

Objekt, Klasser, Paket m. m. Objekt, Klasser, Paket m. m. Bildserie 3 Objekt Ett objekt karakteriseras av - Identitet, det som gör det möjligt att särskilja objektet från andra objekt - Tillstånd, den data som finns i objektet - Beteende,

Läs mer

Unified Modeling Language UML

Unified Modeling Language UML Unified Modeling Language UML Vad händer idag? Föreläsning Introduktion till UML Objekt-orientering Klasser Objekt Use cases UML-diagram Specifikationer Praktisk övning Skapa enkla UML-diagram 2 Vad är

Läs mer

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

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT 2013 1 / 33 Programmering i C++ EDA623 Objektorienterad programutveckling EDA623 (Föreläsning 5) HT 2013 1 / 33 Objektorienterad programutveckling Innehåll Grundläggande begrepp Relationer mellan objekt Grafisk representation

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

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

Konstruktion av klasser med klasser

Konstruktion av klasser med klasser Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut

Läs mer

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

Projektkaos. Chaos-rapporten. 34% av projekten avslutades i tid och enligt budget... ... 66% misslyckades! Projektkaos. Chaos-rapporten 34% av projekten avslutades i tid och enligt budget...... 66% misslyckades! 1 Standish Group, 2003 (www.standishgroup.com) Praxis Hantera krav Använd komponentarkitekturer

Läs mer

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

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: 13-06-05 Tid: kl 16.00-20. Umeå Universitet Datavetenskap Anders Broberg 130605 TENTAMEN Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg VT-13 Datum: 13-06-05 Tid: kl 16.00-20.00 Namn: Personnummer:

Läs mer

Objektorienterad modellering programmering OOMPA 2000

Objektorienterad modellering programmering OOMPA 2000 Objektorienterad modellering programmering och analys Föreläsning 6 Innehåll Unified Modelling Language - den dynamiska modellen Interaktionsdiagram sekvensdiagram samarbetsdiagram Tillståndsdiagram Små

Läs mer

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:

Läs mer

Tentamen i Objektorienterad modellering och design

Tentamen i Objektorienterad modellering och design Lunds Tekniska Högskola Datavetenskap Ulf Asklund Tentamen EDA061 2016 06 03, 14:00 18:00 Tentamen i Objektorienterad modellering och design Tentamen består av en teoridel om totalt 5 poäng och en problemdel

Läs mer

Interaktions- och klassdiagram, kap 12-16 F4 vt -07

Interaktions- och klassdiagram, kap 12-16 F4 vt -07 Interaktions- och klassdiagram, kap 12-16 F4 vt -07 Viktigt i kapitel 13 är bild 13.5 och avsnitten 13.7 och 13.8: De meddelanden som sänds från gränssnittssiktet till domänskiktet är de meddelanden som

Läs mer

TUTORIAL: KLASSER & OBJEKT

TUTORIAL: KLASSER & OBJEKT TUTORIAL: KLASSER & OBJEKT I denna tutorial lär vi oss att använda klasser och objekt samt hur vi bygger en enkel applikation kring dessa. I tutorialen kommer det finnas en mängd kod som du antingen kan

Läs mer

Interaktions- och klassdiagram, kap F4 ht -10

Interaktions- och klassdiagram, kap F4 ht -10 Interaktions- och klassdiagram, kap 12-16 F4 ht -10 Viktigt i kapitel 13 är bild 13.5 och avsnitten 13.7 och 13.8: De meddelanden som sänds från gränssnittssiktet till domänskiktet är de meddelanden som

Läs mer

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/3 2014 Innehåll Kursöversikt Javarepetition/Javaintroduktion UML - klassdiagram-introduktion i anslutning till Java-exemplen Kursmål,

Läs mer

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/

Programmering för språkteknologer II, HT2014. evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Programmering för språkteknologer II, HT2014 Avancerad programmering för språkteknologer, HT2014 evelina.andersson@lingfil.uu.se Rum 9-2035 http://stp.ling.uu.se/~evelina/uv/uv14/pst2/ Idag - Hashtabeller

Läs mer

Klasser och objekt. Henrik Johansson. August 20, 2008

Klasser och objekt. Henrik Johansson. August 20, 2008 Föreläsning 5 Klasser och objekt Henrik Johansson August 20, 2008 Ett objekt är en modell av ett fysisikt eller ett tänkt ting. Objektet och det som vi kan göra med det beskrivs av en mall, en klass. Ett

Läs mer

UML 2.0 och dess roll för modellbaserad utveckling

UML 2.0 och dess roll för modellbaserad utveckling UML 2.0 och dess roll för modellbaserad utveckling Morgan Björkander Senior Methods Engineer mbj@telelogic.com 1 Telelogic AB Agenda UML 2.0 översikt översikt nya språkkonstruktioner Modellbaserad utveckling

Läs mer

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

Föreläsningsmaterial (Arv) Skrivet av Andreas Lund Föreläsningsmaterial (Arv) Skrivet av Andreas Lund Inledning Arv är ett begrepp som är tätt förknippat med objektorientering. Principerna bakom arv är grundade i högst vardagliga relationer mellan olika

Läs mer

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras

Läs mer

Fyra i rad Javaprojekt inom TDDC32

Fyra i rad Javaprojekt inom TDDC32 Fyra i rad Javaprojekt inom TDDC32 Analys och design-dokument Version 2.0 Datum 2008-05-19 Dokumentnummer 20080303 Sammanfattning Detta är analys och design-dokumentet för programmet Fyra i rad. Fyra i

Läs mer

Teoridel (svaren direkt på lydelsen)

Teoridel (svaren direkt på lydelsen) NADA, KTH 2D359 & 2D360 999-0-23 Sid () Tentamen i 2D359 & 2D360 Objektorienterad modellering programmering och analys Lördag den 23 oktober 999 kl. 4-9 MED KORTA LÖSNINGSFÖRSLAG Inga hjälpmedel tillåtna.

Läs mer

Arkitektur Michael Åhs

Arkitektur Michael Åhs Arkitektur Michael Åhs Kalle & Hobbe: En utvecklares drömsystem 1. Vad är arkitektur? 2. Arkitektur i UML Innehåll 3. Utveckla en arkitektur 4. Arkitektur i projektet Del 1 - Vad är Arkitektur? Pattern-Oriented

Läs mer

OOMPA 2D1359 Föreläsning 2

OOMPA 2D1359 Föreläsning 2 OOMPA 2D1359 Föreläsning 2 Objektorienterad Modellering Programmering och Analys Objektorientering grunder l Vad är OO? Programspråk?, paradigm?, gränssnitt?, struktur?, eller? l Termer och fundament Objekt,

Läs mer

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det

Läs mer

Föreläsning om OO, OOA och UML

Föreläsning om OO, OOA och UML Föreläsning om OO, OOA och UML Modellering Kristian Ekberg Källa bild: video Marie Åsberg, AFA Försäkring Dagens föreläsning Presentation Kristian Ekberg Model och modellering Vad är en modell och vad

Läs mer

Kopiering av objekt i Java

Kopiering av objekt i Java 1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom

Läs mer

DAT043 - Föreläsning 7

DAT043 - Föreläsning 7 DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar

Läs mer