Föreläsning 2. Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.
|
|
- Elisabeth Johansson
- för 9 år sedan
- Visningar:
Transkript
1 Föreläsning 2 Objektorienterad analys och design. Analys: att modellera världen. Design: att strukturera program.
2 Vår process Kravbeskrivning (3 dagar). Enkel form av användningsfall (use cases). Analys och design (1 vecka). Design av GUI enligt MDI-kursen. Implementation (4 veckor). I huvudsak en iteration med tillägg om tid medger. Enhetstest av viktiga klasser.
3 Objektorienterad analys och design Varning! Litteraturen är inte ening om hur (eller om) man kan skilja på analys och design vid objektorienterad programutveckling. En tänkbar distinktion Objektorienterad analys: studera krav på systemet (t.ex. från användarfall) och modellera den relevanta delen av världen i form av objekt och relationer mellan dessa. Objektorienterad design: strukturera program i klasser och beskriv hur dessa är relaterade (arv, association, mönster, ). Kom ihåg: klass vs objekt En klass är en del av programmets text. Den utgör en mall från vilken instanser kan skapas under exekveringen.
4 Diskussion Beprövad erfarenhet Design är svårt. Många metoder har föreslagits, men det fortsätter att vara svårt. En vecka analys och design??? Varför så mycket arbete med detta? Är det inte bättre att börja programmera direkt?
5 Objekt ur olika synvinklar Modellbyggarens synvinkel Ett objekt är en modell av en del av världen, fysisk eller begreppsmässig, har attribut och uppvisar karakteristiska beteenden. Programmerarens synvinkel Ett objekt är en dataabstraktion som kapslar in ett tillstånd och tillhandahåller metoder som avläser och/eller påverkar detta tillstånd.
6 Några mål med vårt arbete Vi vill åstadkomma ett system som: uppfyller sin uppgift så bra som möjligt är så enkelt att förstå som möjligt är så enkelt att modifiera som möjligt är som enkelt att bygga ut som möjligt är så enkelt att implementera som möjligt är felfritt... Designdokumenten måste ge så välspecificerade beskrivningar av de olika delsystemen att varje programmerare vet vad han/hon skall göra.
7 Därför analys och design! God design Är en förutsättning för en lyckad produkt. Är enklare att implementera. Dålig design Ger ett system som är svårt att underhålla/modifiera. Ger ett system som är felbenäget. Ger ett system som är svår att utveckla i team.
8 Objektorienterad analys I analysfasen bestäms VAD som systemet skall klara av att göra. Analysens syfte är att vara en brygga mellan kravspecifikationen och designen. Målet är att förstå problemet och bygga en objektorienterad modell av problemdomänen. Analysen fokuserar på de funktionella kraven, dvs systemet betraktas utifrån. Analysen skall vara oberoende av programmeringsspråk och val av användargränsnitt (för att ge en generell lösning). Analysen skapar en terminologi och notation för det fortsatta arbetet. Resultatet från analysen är en beskrivning av de konceptuella objekt (entiteter, klasser) som ingår i problemdomänen, vilka egenskaper och beteenden de har, samt hur de samverkar med varandra.
9 Objektorienterad analys i två faser Utforskande fas 1) Finn objekt i problemdomänen. 2) För varje objekt: Beskriv kortfattat syftet med objektet. Beskriv de attribut (egenskaper) som objektet har. Beskriv de beteenden (operationer) som objektet har. Analyserande fas (kan även ses som en del av designen) 1) Klassificera objekten. 2) Beskriv relationer mellan klasserna. 3) Skapa och exekvera scenarion för att validera systemet. 4) Gruppera klasserna.
10 Analys: att hitta objekt En ofta rekommenderad metod Läs igenom systembeskrivning och användarfall, notera alla substantiv som kandidater till att vara objekt. Stryk alla vaga, problemoberoende ord ur listan. Identifiera och slå ihop synonymer. Identifiera attribut.
11 Ett exempel Vi tänker oss ett system för att boka och sälja biljetter till en biograf med flera salonger. Följande skall gälla för systemet: systemadministratörer kan lägga in föreställningar i systemet säljare kan boka och sälja biljetter ekonomisystemet kan få information om sålda biljetter. Låt oss betrakta några användningsfall.
12 Användningsfall 1 Lägg till en film Aktör: Systemadministratör. Mål: Lägg till en film och dess föreställningar till systemet. Interaktion: Användaren anmodas att ge filmens namn och premiärdatum. Systemet visar grafisk vy med tillgängliga visningstider för de olika salongerna den kommande månaden. Användaren väljer ett antal av dessa alternativ. Systemet bekräftar och lagrar valen. Prioritet: 1. Tidsåtgång: 3 dagar.
13 Användningsfall 2 Sälja biljetter Aktör: Säljare. Mål: Sälja ett antal biljetter till en viss föreställning. Interaktion: Användaren anger en film. Systemet visar en grafisk vy av salongen för nästa föreställning med lediga och upptagna platser markerade. Användaren kan markera ett antal lediga platser och sälja dem. Prioritet: 1. Tidsåtgång: 2 dagar.
14 Objekt eller attribut Begrepp som kan modelleras med fördefinierade typer som strängar eller datum, eller med en enkel typ som heltal, modelleras inte vidare som egna objekt utan endast som attribut till andra objekt. Exempel En film har (bland annat) attributen namn och premiärdatum.
15 Fortsatt modellering: fler attribut Fler attribut När kandidater till objekt identifierats kan man ofta finna fler naturliga attribut. Exempel En film har attributen speltid, språk, regissör, Exempel En plats har ett attribut som anger om den är ledig, såld eller bokad.
16 Fortsatt modellering: fler beteenden Exempel En film har sannolikt inga intressanta beteenden i detta system; ett filmobjekt lagrar bara sina attribut i inkapslad form. Identifiera beteenden Studera användarfallen för att identifiera operationer som objekten skall kunna utföra. Exempel En föreställning skall kunna sälja ett antal platser boka ett antal platser sälja bokade platser rapportera antal sålda platser.
17 En föreställnings livscykel Föreställningen läggs in i systemet. Platser bokas och säljs upprepade gånger. Försäljningsresultat rapporteras. Föreställningen tas bort ur systemet. Tillståndsdiagram För objekt med icke trivial livscykel kan denna illustreras med tillståndsdiagram.
18 Relationer mellan objekt Användningsfall kan också visa relationer mellan objekt: Vem utnyttjar vems tjänst? Om A utnyttjar en operation som B kan utföra, så måste A känna till B. Vem är ett specialfall av vem? Om A är en speciell sorts B, så kan vi modellera med en hierarki. Vem är en del av vem? Om A är en komponent i B, så har B (en referens till) A som attribut.
19 Scenarion flygplan trafiktorn 5 ankomsthall flygplan Flygplats Landvetter landningsbana 2 landningsbana 1 1. Ett flygplan begär landningstillstånd av trafiktornet. 2. Trafiktornet svarar med en lämplig landningsbana. 3. Flygplanet meddelar landningsbanan att det skall landa. 4. Landningsbanan meddelar trafiktornet att planet landat. 5. Trafiktornet meddelar ankomsthallen att ett flygplan anlänt.
20 Från analys till design Resultat av analysen En lista av objekt med attribut och beteenden. En (ofullständig) kunskap om relationer mellan objekt. Design Nu övergår vi från att analysera systemet till att designa programmet. Under designen betraktas systemet inifrån och syftet är att bestämma HUR systemet tekniskt skall realiseras, samt att skapa en tydlig bild av hur koden skall struktureras.
21 Från analys till design Första steg: Översätt objekten till klasser (typiskt med samma namn). objekt klass attribut instansvariabel operation publik metod Beskriv klasserna m.h.a. UML (se Jia och nätet)
22 Designprinciper för OOP Decoupling minimera beroendet mellan klasser. Delegering skicka vidare uppgifter till klassser som är bäst lämpade för jobbet. Inkapsling abstrahera bort implementationsdetaljer. Gränssnitt kommunicera med objekt via meddelanden, ingen kännedom om objektets inre. Abstraktion skapa begrepp på högre nivå genom att gömma undan detaljer i klasser och metoder. Modularitet bryt ner systemet i sammanhängande men sinsemellan löst kopplade delsystem.
23 Fortsatt design Typiska steg Lägg till implementationsinriktade klasser. Skriv klasskelett! Börja skriva användarmanualen för att förfina användarfallen och därmed bekräfta designen. Utnyttja relationer: Relationer medför ofta attribut som refererar till objekt av en annan klass; hierarkier implementeras med subklasser. Specifika parametrar och resultattyper för publika metoder; specificera beteendet med text. Använd javadoc! Hantera GUI via en MVC arkietektur. Inför interfaces för att få lösare kopplingar i programmet. Försök hitta designmönster. Men koda inte metoderna ännu!
24 MVC med passiv modell Om modellen endast kan uppdateras via GUI:t kan följande principiella arkitektur användas:
25 MVC med aktiv modell Om modellen uppdateras också på annat sätt (t.ex. via inkommande paket från nätet) måste modellen ha ansvar för att informera vyn/vyerna då den förändras. Ofta används mönstret Observer:
26 Koppling En bra design bör ha låg koppling mellan klasserna (d.v.s. få förbindelser I klassdiagrammet) Hög koppling Låg koppling
27 Några allmänna råd Håll nere komplexiteten; designa enkelt. Pröva alternativa ideer till design; var beredda att ändra er! Var restriktiv med att använda subklasser (extends)! Designa klasser med hög kohesion; alla metoder jobbar på samma gemensamma data (instansvariabler). En klass skall göra en sak och göra den bra. Designa för förändringar; försök hitta naturliga generaliseringar. Försök hitta designmönster; återuppfinn inte hjulet.
28 Design av GUI Typiska steg Analysera användningsfallen för att finna önskade komponenter. Organisera enligt principen från MDI kursen. Gör prototyp(er) på papper. Testa på utomstående.
29 Designdokumentets innehåll Ungefärlig innehållsförteckning Övergripande struktur hos ert program (klasser/interface och relationer); i förekommande fall indelning i delsystem. Använd UML:s klassdiagram (se Jia och nätet). För varje klass/interface en beskrivning av Syfte (kort textuell beskrivning) Publika metoder med signatur och specifikation Eventuellt redan identifierade privata metoder och instansvariabler (ej för interface). En mer detaljerad beskrivning av användargränssnittets design (val av komponenter) med motiveringar.
30 Läsanvisningar Kapitel 2 i Object-Oriented Software Development Using Java av Xiaoping Jia. Kapitel 5 i Code Complete av Steve McConnell. Detta kapitel finns som sample chapter på bokens hemsida (se kursens hemsida).
Objektorientering. Grunderna i OO
Objektorientering Grunderna i OO 1 Systemutveckling Tre systemnivåer: Verksamhet Informationssystem Datasystem Huvuduppgifterna i ett systemutvecklingsarbete: Verksamhetsanalys Informationsbehovsanalys
Analys och design. Objekt. Klass. med hjälp av CRC. Klassdiagram
Analys och design med hjälp av CRC 83 Klassdiagram Objekt Ett objekt är en individuellt identifierbar entitet som kan vara konkret eller abstrakt. Ett objekt har tillstånd, beteende och identitet. Reellt,
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?
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.
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
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
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
Föreläsning 1. Kursinformation. Utvecklingsprocessen. Kravspecifikation. Gruppindelning.
Föreläsning 1 Kursinformation. Utvecklingsprocessen. Kravspecifikation. Gruppindelning. Lärare Kursansvarig: Gästföreläsare: Christer Carlsson Joachim von Hacht Michal Andreen Handledare: Michal Andreen
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,
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)
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
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/
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
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
Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design
RE SD PD I UT IT ST AT Mjukvarudesign System Requirement Specification Inkrementell och iterativ! Konceptuell design (VAD) Systemdesign (OOA) Arkitekturell (grovkornig, UML) Teknisk design (HUR) Programdesign
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
729G75: Programmering och algoritmiskt tänkande. Tema 1, föreläsning 1 Jody Foo
729G75: Programmering och algoritmiskt tänkande Tema 1, föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt
Objektorienterad programmering, allmänt
Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 juni 2005 1 Vilka egenskaper vill vi att program ska ha? Förslag (en partiell lista): De ska... gå snabbt att skriva vara
Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt. Vilka egenskaper vill vi att våra program ska ha?
Viktiga egenskaper hos ett program (Meyer): Objektorienterad programmering, allmänt Sven-Olof Nyström Uppsala Universitet 17 mars 2005 1. Korrekthet 2. Robusthet 3. Utökbarhet 4. Återanvändbarhet 5. Kompatibilitet
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
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
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
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
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
729G75: Programmering och algoritmiskt tänkande. Tema 1. Föreläsning 1 Jody Foo
729G75: Programmering och algoritmiskt tänkande Tema 1. Föreläsning 1 Jody Foo Föreläsningsöversikt Kursinfo / Om kursen Algoritmer Objektorienterad programmering i praktiken terminologi använda objekt
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
Lite om databasdesign och modellering
Lite om databasdesign och modellering Konceptuell databasdesign Med konceptuell databasdesign avses processen att konstruera en datamodell för en verksamhet, oberoende av fysiska villkor. Modelleringen
Programmering = modellering
Programmering = modellering Ett datorprogram är en modell av en verklig eller tänkt värld. Ofta är det komplexa system som skall modelleras I objektorienterad programmering består denna värld av ett antal
Objektorienterad programmering
Objektorienterad programmering Aletta Nylén http://user.it.uu.se/~aletta Epost: aletta.nylen@it.uu.se Rum: 1216 Kursinfo Lärare: Aletta Nylén Jesper Wilhelmsson Litteratur: Object-Oriented Software Development
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
Ö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
729G06 Föreläsning 1 Objektorienterad programmering
Översikt Formalia Vad är objektorienterad programmering 729G06 Föreläsning 1 Objektorienterad programmering Definieria klasser Skapa och använda objekt Annika Silvervarg Ciltab, IDA, Linköpings universitet
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
Objektorientering Användning
Objektorientering Användning Samt repetition av klasser Suzana Ramadani 1 Repetition Objektorientering bygger på Abstraktion Hierarkisk strukturering Inkapsling Klassificering Generalisering specialisering
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 June 22, 2006 en systematisk metod för att gå från problembeskrivning till färdigt
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/
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
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
Objektorienterad Programkonstruktion. Föreläsning 6 23 nov 2015
Objektorienterad Programkonstruktion Föreläsning 6 23 nov 2015 Designmönster Färdiga "recept" för att lösa (del-)problem i struktureringen av ens program Mönster kan beskriva små komponenter eller stora
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
Objekt, klasser. Tillstånd Signatur Kommunikation Typ. Fält, parametrar och lokala variabler. Konstruktorer Metoder DAVA15
DAVA15 Objekt, klasser Vad är det? Vad är sambandet mellan dem? Vad är skillnaden mellan dem? Tillstånd Signatur Kommunikation Typ Fält, parametrar och lokala variabler Likheter och skillnader Räckvidd
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
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
Tentamen i Objektorienterad modellering och design
Lunds Tekniska Högskola Datavetenskap Tentamen EDA061 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Vid bedömningen kommer hänsyn att tas till lösningens kvalitet. UML-diagram
Design och konstruktion av grafiska gränssnitt
Design och konstruktion av grafiska gränssnitt Armin Nezirevic Peter Börjesson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Idag Vad utmärker ett bra användargränssnitt? Kort kursinfo
Design och konstruktion av grafiska gränssnitt
Design och konstruktion av grafiska gränssnitt Peter Börjesson Interaktionsdesign Tillämpad informationsteknologi Chalmers/GU Idag Kort kursinfo Lab info Föreläsning - Vad utmärker ett bra användargränssnitt?
Ö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
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? TDDD78, TDDE30, jonas.kvarnstrom@liu.se 729A85 jonas.kvarnstrom@liu.se
Tentamen i Objektorienterad modellering och design Helsingborg
Lunds Tekniska Högskola Datavetenskap Emelie Engström Tentamen EDAF25 2016 10-26, 08:00 13:00 Tentamen i Objektorienterad modellering och design Helsingborg Tentamen består av en teoridel om totalt 5 poäng
Tentamen. DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl Hjälpmedel: penna, suddgummi, linjal
Tentamen DD2385 Programutvecklingsteknik vt 2013 Onsdagen den 22 maj 2013 kl 14.00 17.00 Hjälpmedel: penna, suddgummi, linjal Tentan har två delar om vardera 30 poäng Maximala betygsgränser (gränserna
Tentamen i EDAF25. 1 juni Skrivtid: Skriv inte med färgpenna enda tillåtna färg är svart/blyerts.
Tentamen i EDAF5 juni 07 Skrivtid: 4-9 Skriv bara på ena sidan av pappret tentorna kommer att scannas in, och endast framsidorna rättas. Skriv inte med färgpenna enda tillåtna färg är svart/blyerts. Skriv
Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel
Lösningar till Fiktiv Tentamen på kursen 2D4135 Objektorienterad programmering, design och analys med Java vt2004 Teoridel T1) (4p) Förklara kort följande grundläggande begrepp inom objektorienterad programmering:
729G06 Programmering och logik. Info om pythondelen & introduktion till objektorienterad programmering.
729G06 Programmering och logik Info om pythondelen & introduktion till objektorienterad programmering. Översikt Kursinformation Vad är objektorienterad programmering Skapa och använda objekt Enstaka objekt
Programutvecklingsprojekt Projektgrupp Elvin. Detailed Design Document
Programutvecklingsprojekt 2003-04-24 Projektgrupp Elvin Detailed Design Document Björn Engdahl Fredrik Dahlström Mats Eriksson Staffan Friberg Thomas Glod Tom Eriksson engdahl@kth.se fd@kth.se d94-mae@nada.kth.se
HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN)
Objektorienterad modellering och diskreta strukturer (EDAF10/EDA061) HT1 2013, FÖRELÄSNING 14 (INFÖR TENTAN) Dagens agenda Admin Tentatid och plats Tillåtet på tentan EDAF10 Föreläsning inför XL-projektet
Introduktion till arv
Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering
Praktikum i programvaruproduktion
Praktikum i programvaruproduktion Introduktion Föreläsare/Ansvarig: Pontus Boström Email:pontus.bostrom@abo.fi Rum A5055 Assistent: Petter Sandvik Email: petter.sandvik@abo.fi Rum: A5048 Föreläsningar:
Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Typhierarkier del 1 Gränssnitt, ärvning mellan gränssnitt, ärvning mellan klasser Hur används hierarkier för att modellera nära relaterade typer? Nu:
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
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.
Tentamen i Grundläggande programmering STS, åk 1 fredag
Tentamen i Grundläggande programmering STS, åk 1 fredag 2002-08-23 Skrivtid: 09.00 14.00 Hjälpmedel: Inga Lärare: Anders Berglund. Anders besöker tentan vid två tillfällen: cirka kl. 10.30 samt cirka kl.
Objektorienterad analys och design
Objektorienterad analys och design Objektorienterad analys och design 1 Dagens föreläsning Första delen, innan rasten: Motivation och bakgrund Analys Funktioner Andra delen, efter rasten: Objektorienterade
"Ä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
Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser
Föreläsning 8 Arv och abstrakta klasser Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen (extends) Den nya klassen behåller alla egenskaper som den gamla
Design av en klass BankAccount som representerar ett bankkonto
Klasser Kommer ta upp följande begrepp: Design av en klass Implementera en klass Testa en klass med en mainmetod Instansvariabler, lokala variabler, formella parametrar, aktuella parametrar och variablers
Klasshierarkier - repetition
Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet
TDA550 Objektorienterad programmering, fortsättningskurs. Föreläsning 1. Introduktion Variabler och typer
TDA550 Objektorienterad programmering, fortsättningskurs Föreläsning 1 Introduktion Variabler och typer Objektorienterad programmering fk 1 Föreläsning 1 Olika nivåer av programdesign Det är användbart
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
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
Tentamen i Objektorienterad modellering och diskreta strukturer
Lunds Tekniska Högskola Datavetenskap Ulf Asklund, Sven Gestegård obertz Tentamen EDAF10 2014 10 31, 14.00 19.00 Tentamen i Objektorienterad modellering och diskreta strukturer Vid bedömningen kommer hänsyn
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
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
Kursplanering Objektorienterad programmering
Kursplanering Objektorienterad programmering Fakta Ämne Programmering Poäng 40 Yh-poäng Kurskod YSYS-OOP Klass Systemutvecklare.NET 2 Syfte och koppling till yrkesrollen Syftet är att få en stabil grund
Frågor och svar till tentamen i Kravhantering
Frågor och svar till tentamen i Kravhantering Del 1 Frågor & svar Frågor&svar till tentamen 1 Datamodeller (0.5p) När man tar fram data krav skriver Lausen i sin bok, gällande data modeller, att det finns
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.
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
F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander
F8 - Arv ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Arv och subklasser Klasser innehåller attribut och beteenden En subklass ärver dessa från föräldern Detta ger: Återanvänd kod
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
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,
PMM (Process Maturity Metrics) Allmänt. Mätetal för framgångsfaktorer. 1. CM konfigurationsstyrning
PMM (Process Maturity Metrics) PMM är en metod för att mäta processmognad i utvecklingsprojekt. I korthet går metoden ut på att man utvärderar sin utvecklingsprocess med avseende på ett antal framgångsfaktorer
Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:
Klasser och objekt Ett program i Java är en modell som används för att simulera uppträdandet hos en verklig eller påhittad värld. I ett objektorienterat programspråk modelleras den värld som man vill avbilda
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,
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Konstruktorer Statiska metoder & attribut
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:
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
Designmönster, introduktion. Vad är det? Varför skall man använda mönster?
Designmönster, introduktion. Vad är det? Varför skall man använda mönster? Kent Petersson EMW, Mölndal Datavetenskap, Chalmers epost1: kentp@cs.chalmers.se epost2: kent.petersson@emw.ericsson.se URL: http://www.cs.chalmers.se/~kentp
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 Klass-diagram Exempel Arv i Python Egna klasser använd som egna datatyper, men även
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å
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
Spelet i sig är inte avancerat men projektet ställer en del krav på implementationen bland annat:
Problemspecifikation Anti Tower Defence är ett spel som till motsats från klassikern Tower Defence går ut på att förflytta trupper från start till mål utan att bli skjutna och dödade av torn. Tornen placeras
Personal. Objektorienterad programmeringsmetodik 5DV133. Kursmål. Kursens uppläggning. Lärare. Handledare och gruppövningar.
Personal Objektorienterad programmeringsmetodik 5DV133 Java VT-16 1 Lärare Anders Broberg, anders.broberg@cs.umu.se Handledare och gruppövningar Niklas Fries Adam Dalhgren Jonathan Westin Erik Moström
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:
Objektorienterad Programmering DAT043. Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)
Objektorienterad Programmering DAT043 Föreläsning 10 13/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Sökning och Sortering: Binärsökning Problem: Hitta ett element i en godtycklig
Arv innebär att man skapar en ny klass (subklass) utifrån en redan existerande klass (superklass, basklass).
3 Arv och gränssnitt 3.1 Vad innebär arv? Ett objektorienterat språk bygger på att programmeraren ges möjligheten att modellera verkligheten med hjälp av objekt. Objekt låter sig definieras i form av klasser.
Arv och polymorfism i Java
1 (5) Arv och polymorfism i Java Objektorienterad programmering 5 Syfte Att ge en introduktion till arvsmekanismen i Java. Mål Efter övningen skall du kunna definiera klasser med arv i Java. förstå hur
Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018
Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design (DIT95) Niklas Broberg, 2018 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon
Användningsfalls- mönster
Användningsfalls- mönster Gunnar Övergaard gunnar.overgaard overgaard@jaczone.comcom Återanvända Erfarenhet Kanske dags att lära sig att om den här funktionen ska vara med i ett system så ska modellen
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
Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design Alex Gerdes, 2016
Static vs Dynamic binding Polymorfism Objekt-orienterad programmering och design Alex Gerdes, 2016 Diagnostiskt prov Shape + overlaps(shape): int return 1; Shape shape = new Shape(); Polygon tripoly =