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



Relevanta dokument
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

Objektorienterad analys och design

Objektorienterad analys och design

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

Objektorientering. Grunderna i OO

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

Objektorienterad konstruktion

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

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

Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

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

Introduktion. Byggstenar TDBA

Utvecklingsmetoder och processer. UML och OCTUPUS en kort introduktion

Objektorienterad Systemutveckling 1 (7,5 hp)

Objektorientering Användning

Fyra i rad Javaprojekt inom TDDC32

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

TDP005 Projekt: objektorienterade system

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

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

Opponentrapport på examensarbete Utveckling av ett affärssystem med Unified Process av Therese Sundström.

Agil programutveckling

Interaktionsteknik och Design, 7,5hp

KravinsamlingAnalys Design Implementation Testning

7,5 högskolepoäng. Objektorienterad systemutveckling I Provmoment: Ladokkod: 21OS1B Tentamen ges för: Lycka till! /Peter & Petter

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

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

Konceptuell modellering. Formalisering, automatisering och effektivisering

Objektorientering Klasser

Objektorienterad programutveckling i ett nötskal

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

UML. Tomas Czarnecki Institutionen för Informationsbehandling Åbo Akademi,FIN Åbo, Finland url:

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

RUP - Rational Unified Process

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

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

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

12 principer of agile practice (rörlig)

Informationssystem och databasteknik, 2I-1100

Tillämpning av Unified Process och Design Patterns vid integrering av system

Föreläsning om OO, OOA och UML

Inkapsling (encapsulation)

Unified Modeling Language UML

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

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

Objektorienterad programmering, allmänt

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

Objektorienterad analys och design

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

Blekinge Tekniska Högskola UML. - i teori och praktik. Examensarbete inom datavetenskap 10 poäng, C-nivå, våren Eva Henriksson is98

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

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

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

RUP Rational Unified Process. 17 november 2004

Teoridel (svaren direkt på lydelsen)

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

Linköpings universitet 1

Projektering av informationssystem

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

Bilaga A. Klassdiagram i OMT (klasser och dess relationer) Klassdiagram i UML (klasser och dess relationer) 1 st

" «Observable» DataGenerator" betyder att klassen DataGenerator ärver från den abstrakta klassen Observable.

Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal

Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl

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

Programutvecklingsmetodik

Unified Modeling Language UML

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Game Development. Spelprogrammering

Linköpings universitet 1 TDP029. Systemutveckling. Systemutveckling. Vanliga faser. Fler faser. Systemutvecklingsmetod

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

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

Institutionen för programvaruteknik och datavetenskap FRÅN OMT TILL UML - ETT NÖDVÄNDIGT VAL?

Objektorienterad programmering

STUDIE AV SYSTEMUTVECKLINGSMETODER PÅ

TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Arkitektur Michael Åhs

PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

UML. Unified Modeling Language

Kursstruktur. Objektorienterad modellering och diskreta strukturer / design. Programmering utan OMD. Vad är Objektorienterad modellering?

Är objektorienterad modellering ett måste? (HS-IDA-EA )

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

7,5 högskolepoäng. Objektorienterad systemutveckling I. Lycka till! /Peter & Petter. Provmoment: Ladokkod: 21OS1B Tentamen ges för:

Information. Computer

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 3 Erik Nilsson, Institutionen för Datavetenskap, LiU

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

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

OOMPA 2D1359 Föreläsning 2

Symptom på problemen vid programvaruutveckling

Objektorienterad programmering. Grundläggande begrepp

Tentamen. DD2385 Programutvecklingsteknik vt 2014 Måndagen den 2 juni 2014 kl Hjälpmedel: penna, suddgummi, linjal

Datavetenskap. Therese Sundström. Utveckling av ett affärssystem med. Unified Process. Examensarbete, D-nivå 30 ECTS 2005:05

Föreläsning 15: Repetition DVGA02

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

SKOLFS. beslutade den XXX 2017.

Objektorienterad systemutveckling i ett nötskal

Begreppsmodellering i UML

Transkript:

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 tidigare system Stort system. Beskrivs i ett antal läroböcker & manualer Vi ser på hur man kan beskriva datastrukturer (objekt och klasser) i. ( har mycket annat, tex diagram för dynamisk modellering och use-case) öppna() stäng() flytta() visa() Ofta utelämnas attribut & metoder pga platsbrist (eller: för att göra modellen tydligare) Operationer (metoder) Objectorienterad programmering Sida 1 Objectorienterad programmering Sida 3 : Ansvar : tre huvudanvändningar Analysmodell: analysera problemformuleringen Designmodell: rita upp programmet i stora drag Reverse-engineering: hjälp att förstå beintligt program Ett fjärde fält i klassdiagrammet. Datum Datum(år, mån, dag) Lagrar information om visst datum Objectorienterad programmering Sida 2 Objectorienterad programmering Sida 4

Association Samband mellan klasser Bok 0..* 1 Bibliotek Två klasser har nåt att göra med varandra Almanacka Datum Klassen Almanacka använder klassen Datum. 0 eller flera böcker associerade till ett visst bibliotek Associationen kan tillåta både att man tar reda på till vilket bibliotek en viss bok tillhör att man tar fram en lista på alla böcker i ett visst bibliotek Objectorienterad programmering Sida 5 Objectorienterad programmering Sida 7 Generalisering (I Java: Att en klass ärver en annan, att den ärvande klassen på nåt sätt är mera specifik) Exempel: Mera komplext exempel: Fordon Fordon motorstyrka Cykel 0..* äger tillhör 1 Person namn ålder Objectorienterad programmering Sida 6 Objectorienterad programmering Sida 8

Exempel (forts) Ett fordon är antingen en bil eller en cykel Associationsbegreppet En fördel med associationsbegreppet: Man tvingas tänka över multiplicitet Varje cykel har en associerad person (cyklisten) Hur många telefonnummer kan en person ha? Pilen anger att vi kan gå från cykel till cyklist, men ej tvärtom Den svarta pilen vid äger anger hur associationen ska läsas Hur många fruar? Hur många adresser? Hur många föräldrar? Hur många nationaliteter? Objectorienterad programmering Sida 9 Objectorienterad programmering Sida 11 Multirelationer Om inget annat anges är en association (relation) många till många. Bra eller dåligt? - Person Associationsbegreppet (forts) Det visar sig ofta att man vill öka multiplicitet (att en person kan ha flera telefonnummer eller adresser, tex) Det visar sig ofta att man vill kunna gå åt båda hållen Lärare undervisar Student Objectorienterad programmering Sida 10 Objectorienterad programmering Sida 12

Sammansättning Användningsfall, (scenarier, use cases) En slags association. Anger att ett objekt är en del av ett annat Utgå från viktiga användningar av systemet Exempel (bankomat) Kund vill ta ut pengar Kund vill kontrollera saldot Beskriv i modellen hur tjänsten ska utföras Hjul Kräver förstås att systemet har tillräcklig funktionalitet för att kunna tillhandahålla tjänsten Objectorienterad programmering Sida 13 Objectorienterad programmering Sida 15 Olika typer av diagram i Objekt-orienterad utveckling Användarfallsdiagram Saker man vill uppnå: Klassdiagram (redan beskrivet) Dynamisk modellering: tillståndsdiagram, sekvensdiagram Interaktionsdiagram Komponentdiagram - beskriver implementeringsmoduler Det finns även diagram för att beskriva den fysiska realiseringen, processer,... en systematisk metod för att gå från problembeskrivning till färdigt system metod för formell beskrivning av problem som ska lösas metod för övergripande beskrivning av systemet [en ritning] kunna ge beskrivningar av olika delsystem så att varje programmerare (i ett större projekt) vet vad han ska göra Objectorienterad programmering Sida 14 Objectorienterad programmering Sida 16

Objekt-orienterad programutveckling Att gå från problem till färdig lösning Iterativ utveckling Unified process Exempel: Affärssystem för företag (något eller några av bokföring, fakturahantering, lagerhantering, orderhantering) Inte tekniskt komplicerat. Men: systemet ska integreras i befintlig verksamhet. Av Jacobson et. al samma arbetsmoment som vattenfallsmodellen, men ej ett i taget Iterationer av fix längd Eventuellt anpassas till befintliga system. Varje iteration arbetar i alla faser Viktigt att anpassa till kundens önskemål. Varje iteration producerar ett körbart system Kunden ej tekniskt kompetent stor risk för missförstånd. Objectorienterad programmering Sida 17 Objectorienterad programmering Sida 19 Klassisk modell för systemutveckling (vattenfallsprincipen) Extreme programming Utveckla i små steg, fokusera på nästa version av systemet Fyra faser: Unit testing 1. Analys Enkelhet 2. Design Refactoring 3. Implementation/unit testing Parprogrammering 4. Integration/testning OBS: vattenfallsprincipen har stora brister! Gemensamt ägande av kod Ständig integration Kund på plats Objectorienterad programmering Sida 18 Objectorienterad programmering Sida 20