Föreläsning om OO, OOA och UML



Relevanta dokument
SYSTEMUTVECKLING METODER & MODELLER. Suzana Ramadani

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

Objektorientering. Grunderna i OO

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

Introduktion. Byggstenar TDBA

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

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

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

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

Objektorienterad konstruktion

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

Användarcentrerad Systemutveckling

Objektorienterad analys och design

Chaos om IT-projekt..

Chaos om datorprojekt..

Objektorienterad programmering

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

Användning av modeller för system/produktutveckling

Objektorienterad analys och design

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

Objektorienterad Systemutveckling 1 (7,5 hp)

Objektorienterad analys och design

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

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

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

Lyckade projekt - finns det?

Objektorientering Användning

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

Roller i mjukvaruprojekt. Åke Liljenberg ake.liljenberg@volvo.com

(Data)Modellering. nikos dimitrakas rum 2423

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Objektorienterad programmering

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


Imperativ programmering. Föreläsning 4

Konceptuell modellering. Formalisering, automatisering och effektivisering

Objektorientering Klasser

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

RUP Rational Unified Process. 17 november 2004

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

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

RUP - Rational Unified Process

Möjliga Världar. Skapande Skola, Halmstad. Robert Hais

729G06 Föreläsning 1 Objektorienterad programmering

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

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

Övning / handledning Användningsfall

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

Projektmetodik. Översikt. Lektion 1: Metodiker. Metodiker.

Business Model You Din personliga affärsplan framtagen på åtta timmar.

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

Design för användbarhet Användarcentrerad utvecklingsprocess

Inkapsling (encapsulation)

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

Föreläsning 15: Repetition DVGA02

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

Utvärdering av modelleringsvertyg som använder XMI/UML 2.0

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

Design för användbarhet

Objektorienterad Systemutveckling Period 3

Objektorienterad programmering. Grundläggande begrepp

Informationshantering vid systemutveckling styrd av CM

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

Tillämpning av UML Hur och varför

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

Extentamen i 2D1359 Objektorinterad modellering programmering och analys Tisdag den 13 oktober 1998 kl

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

Objektorienterad programmering, allmänt

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

krävs för att kunna utföra arbete. Den finns i många former men kan inte förstöras, bara omvandlas från en form till en annan.

Föreläsning 8 2EMHNWRULHQWHUDG5HDOWLGVSURJUDPPHULQJ UML O2P 2000

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

PROGRAMMERING. Ämnets syfte. Kurser i ämnet

Användarcentrerad systemdesign

Kursplanen är fastställd av Institutionsstyrelsen vid Institutionen för informatik att gälla från och med , höstterminen 2018.

Detta är en liten ordlista med förklaringar på begrepp och aktiviteter relaterade till. elvisualiseringsverktyg

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

Produktutvecklingsprocessen. (e)lvis

Tentamen i Objektorienterad programmering för ingenjörer (TDBB09) , kl

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

Möjliga Världar. Skapande Skola, Halmstad. Robert Hais

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

12 principer of agile practice (rörlig)

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

Agile-metoder, XP och ACSD

Slutrapport. Innovativt utbildnings- och forskningsmaterial användning av 3D visualisering och animering för att bemöta pedagogiska utmaningar

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

Grundkurs i programmering - intro

Certifierad verksamhetsarkitekt

F2: Krav på objektorienterat språk

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

OOMPA 2D1359 Föreläsning 2

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

DELPROV 1 I DATAVETENSKAP

SKOLFS. beslutade den XXX 2017.

Systemutvecklingsmetoder vid fem IT-företag i Göteborg

Företagsmodellering i UML

Teoridel (svaren direkt på lydelsen)

Transkript:

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 är modellering? Vad menas med modellering inom systemutveckling? Systemutvecklingsprocess Historik, OO, RUP och UML Rational Unified Process Iterativ och inkrementell systemutveckling Terminologi, vilka modeller talas om?

Dagens föreläsning OO och UML Grundläggande: objekt, instans, klass, attribut, metod Beskrivning av objekt med UML Grundläggande: association, aggregat och arv Diskussion: Verksamhetsmodellering, OOA, OOD, OOP OOA Genomgång inför fredagens workshop

Kristian Ekberg Commodore 64 vid 14-15 års ålder BASIC, COMAL, DOS, DBASE IV, Elektroingenjör Högskolan i Växjö Civilingenjör Datateknik inrikt. Datavetenskap LiTH IT konsult programmerare/arkitekt Stockholm 1997-2002 IT konsult processtöd, kvalitetssäkring, coach, eget företag Öresundsregionen (2003- ) Lärare vid Malmö högskola (2009- ) just nu deltid 46 år och 363 dagar Bor i Malmö Intressen: datorer, musik, biljard, snickeri, Ingress

Kort förfrågan reflektioner I litteraturen kan det vara svårt att se tydliga skillnader på användandet av begreppen Process och Method på svenska finns 4 begrepp process, metod, metodik, metodologi, inte alltid helt enkelt att mappa enhetligt (innebörder har ändrats vid ny slagning i NE, slide struken) Abstraktionsnivåer. gått igenom? Modelleringserfarenhet?

Modellering? Nu blir det film! J Skulptur i lera https://www.youtube.com/watch?v=pirv3ezznr8 Skulptur i sten https://www.youtube.com/watch?v=gyweksao8vm Diskussion: Vilket är mest likt systemutveckling och framtagning av programvara?

Vad är en modell? En avbildning av verkligheten Avbildningen förstärker ofta vissa aspekter framför andra Oftast en förenkling ej komplett jämfört med verkligheten, men syftet kan också vara att vara så detaljerad som möjligt via t ex skalenlighet, material etc Man kan operera på modellen istället för på hela verkligheten, det är enklare och kan ge ett hyfsat resultat Prototyp kan sägas vara en modell av en framtida verklighet (vid nyskapande) Simulatorer kan sägas vara modeller Fler filmer: båt https://www.youtube.com/watch?v=embu1exdydc bil https://www.youtube.com/watch?v=8yc2kkxhxb0 simulator https://www.youtube.com/watch?v=hqlf06rwzve

Så vad är modellering? Att skapa en (eller flera) modeller, dvs avbilda verkligheten (alterantivt en framtida verklighet, vid nyskapande) Oftast inget direkt rätt eller fel, olika personer kan modellera olika, det kan finnas olika tekniker/stilar som leder fram till olika modeller som ändå kan fungera, dvs lösa sin uppgift. Bild: två personer ser samma sak olika men helt rätt utifrån sin utgångspunkt. Källa bild: video Marie Åsberg, AFA Försäkring

Så vad är modellering inom systemutveckling? Systemutveckling är abstrakta modeller (idéer, begrepp, koncept etc) och därmed enkla att ändra. Lite väl enkelt att ändra ibland kanske.? Analogi konstruktion av Öresundsbron jämfört med ett IT projekt: Ok, vem har flyttat Danmark till Östersjön? Danmark låg ju väster om Sverige igår när jag gick hem... Pågående arbete Modeller är något man ändrar i, uppdaterar Modeller blir sällan/aldrig färdiga.

Så vad är modellering inom systemutveckling? Överallt!! J Exempel på modellering Verksamhetsmodellering Processmodellering Kravmodellering Användningsfallsmodellering GUI prototyping Databasmodellering Objektmodellering (t ex OOA) Systemdesign (t ex OOD) Programmering (modellering av källkod)

Kort förenklad historia Three amigos Grady Booch James Raumbaugh Ivar Jacobson Rational Software Philippe Kruchten UML -95 IBM 2002 RUP -98 OMG -97

Waterfall model Källa bild: Wikipedia (2015-11-11)

Business Case Varför? Prislapp? Utveckling av Informationssystem, systemutveckling Vad ska vi göra? Hur ska vi göra det? Styrning: till När? av Vem? Gör det Kör det Förbättra Från Rainer and Turban, svenska noteringar av Kristian Ekberg Utvärdering Blev bra?

Exemplifierande analogi diskussion Problemlösning Projekt Systemutveckling Vetenskapliga metoden

Rational Unified Process RUP Källa bild: Wikipedia (2015-11-11)

Vilka modeller talas det om? Exempel från skarpt projekt: Verksamhetsmodell (verksamhetsprocess) Kravmodell Begreppsmodell Designmodell Designriktlinjer Användningsfallsmodell Analysmodell GUI design GUI guidelines Programmeringshandbok/riktlinjer (coding guidelines) Implementationsmodell

Vilka modeller talas det om? Exempel från skarpt projekt modell används ibland synonymt med mängd Utvecklingen ska ta hänsyn till alla modellerna, standarder, best practice, conventions etc Professional Software Development is the Art of mastering constraints. - Kristian Ekberg 2015

Utveckla programvara Man talar om iterativa metoder i projekt för utveckling av programvara Att arbeta i kortare cykler (iterationer) och att i slutet av varje cykel leverera en ny version Målet är en liten färdig produkt i slutet av varje iteration/sprint, man siktar hela tiden på den färdiga produkten Jämför byggprojekt Att bygga Öresundsbron, Citytunneln eller Turning Torso är mer linjära projekt Schematisk skiss på nästa slide Ett försök att förmedla det iterativa perspektivet Erfarenhetsbaserad

Schematisk skiss

Objektorientering och UML Objektorientering är ett sätt att namnge och strukturera källkod och data som snarare borde översatts till sakinspirerad modellering eller sakorientering eller sakmodellering på svenska. - Kristian Ekberg 2015 Ett just nu mycket tongivande paradigm inom systemutveckling, populära objektorienterade språk.

Objektorientering och UML Tänk sak så blir det busenkelt!! En sak (objektet) Sakens egenskaper (attribut) Det man kan göra med saken, sakens funktioner (tjänster) Hur saken hänger ihop med andra saker (relationer) UML är ett standardiserat visuellt språk för att beskriva bland annat detta. UML består av standardiserade notationer och diagram.

Grundläggande begrepp OO Krav-/domän formuleringar, terminologi Analys objekt Design klass instans Imple_ mentation källkodsfiler Test fel-/bugrapporter tolkar, identifierar konstruerar kodar testar Arbete på papper och/eller i modell Arbete på papper och/eller i modell Programmering är en liten del av systemutveckling!

Grundläggande begrepp OO Objekt Klass Instans Attribut Metod En film jag gjort om detta: första 11 minuterna http://wpmu.mah.se/ctkrek/files/2012/09/5.- Objekt_Klass_Instans_Attribut_Metod_C_sharp_22min.avi

Objekt / Klass / Instans Attribut (data/kunskap) Metod (tjänst/funktion) Grundläggande UML Relationer Association ( känner till ) Aggregat ( består av / has a ) Arv ( är en / is a ) eng: generalization, inheritance Kardinalitet Antalsförhållande Exempel på nästa sida!! à à à

Grundläggande UML Exempel Källa bild: Wikipedia (2015-11-11) Källa bild: Bellekens.com (2015-11-11) Källa bild: Wikipedia (2015-11-11)

Inför seminarium/workshop på fredag. Information, information, information.

Dagens föreläsning Presentation Kristian Ekberg Model och modellering Vad är en modell och vad är modellering? Vad menas med modellering inom systemutveckling? Systemutvecklingsprocess Historik, OO, RUP och UML Rational Unified Process Iterativ och inkrementell systemutveckling Terminologi, vilka modeller talas om?

Dagens föreläsning OO och UML Grundläggande: objekt, instans, klass, attribut, metod Beskrivning av objekt med UML Grundläggande: association, aggregat och arv Diskussion: Verksamhetsmodellering, OOA, OOD, OOP OOA Genomgång inför fredagens workshop

Tack för idag! Copyright Kristian Ekberg 2015 Materialet tillhör upphovsmannen där inte annan källa anges. Materialet kan användas helt eller delvis under förutsättning att upphovsman anges som källa vid användning.