Objektorientering Användning

Relevanta dokument
Objektorientering. Grunderna i OO

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

Programutvecklingsmetodik

Objektorienterad programutveckling i ett nötskal

Inkapsling (encapsulation)

Objektorienterad systemutveckling i ett nötskal

Objektorienterad konstruktion

Objektorientering Klasser

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

OOMPA 2D1359 Föreläsning 2

Objektorienterad Systemutveckling 1 (7,5 hp)

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

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

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

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

Interaktions- och klassdiagram, kap F4 vt -07

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

Projektarbete 2: Interaktiv prototyp

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

Objektorienterad programmering

Introduktion till arv

Objektorienterad analys och design

Övning / handledning Användningsfall

Abstraktion. Objektorientering. Kartor. Kartor. Hus. Generalisering

OCTOPUS utvecklingsmetod samt relaterade frågeställningar och diagram

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

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

Unified Modeling Language UML

Objektorienterad programmering. Grundläggande begrepp

Objektorienterad analys och design

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

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

KravinsamlingAnalys Design Implementation Testning

1 Klasser och objektorientering Vad är objektorientering?

Omtentamen i OOSU2, 21 augusti 2014

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

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

Unified Modeling Language UML

Sätt att skriva ut binärträd

Konceptuell modellering

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

Skaffa eduid via Registrering via e-post

Innehåll. Användarstudier. Användarstudier enligt Microsoft. Varför? Aktivt lyssnande. Intervjuteknik. Intervju Observation Personor Scenarier Krav

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

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

Objektorienterad analys och design

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

CdsComXL. Excel-tillägg för hantering och analys av CDS-data. ComXL-020/S, Stråk Stråk Stråk Stråk

Operatörer och användargränssnitt vid processtyrning

Databaser design och programmering. Fö 2: Design processen, ER-modellering

Mjukvarudesign. Designprocessen. Teknisk design. Konceptuell design

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert Problemexempel 1

Föreläsning 15: Repetition DVGA02

Skapa systemarkitektur

Lathund till Dexter IUP

Lite om databasdesign och modellering

Introduktion. Byggstenar TDBA

DELPROV 1 I DATAVETENSKAP

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

Objektorienterad programmering

TDP005 Projekt: objektorienterade system

Databaser design och programmering. Design processen ER- modellering

725G61 - Laboration 7 Implementation av ett API. Johan Falkenjack

Utbildning i svenska för invandrare: Sammanställning av kunskapskrav kurs A (A1-/A1)

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

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

Design av en klass BankAccount som representerar ett bankkonto

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

Tentamen NOA011 Systemarkitektprogrammet. 51 poäng

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

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

Föreläsning 1, vecka 6: Abstraktion genom objektorientering

Innehåll. Föreläsning 11. Organisation av Trie. Trie Ytterligare en variant av träd. Vi har tidigare sett: Informell specifikation

Programmering = modellering

Föreläsning 11 Tisdag 6/6 2000

Frågor och svar till tentamen i Kravhantering

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

INSTITUTIONEN FÖR FYSIK

Konceptuell modellering. Formalisering, automatisering och effektivisering

Systemkonstruktion SERIEKOMMUNIKATION

Föreläsning 3 Dagens föreläsning går igenom

Webprogrammering och databaser. Konceptuell datamodellering med ER-modellen

TDDB96 Projekt: Object priming med visuell stimuli

Interaktionsteknik och Design, 7,5hp

Teknisk beskrivning PDL i HSA

Idag. Modellering. Varför modellera? Konceptuell modell Modelleringsverktyg Objektklasser Sambandsklasser Knepiga attribut Modelleringsprocessen

Handbok Umbrello UML Modeller

Idag. Varför modellera? Modellering. Modelleringsverktygets egenskaper. Modelleringsverktyget

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

PRODUKTUTVECKLING. Ämnets syfte. Kurser i ämnet

Forskare & Handledare. 1. Inloggning

Resultat på prov RS01

UML. Unified Modeling Language

Wkassa Handledning för administratörer

Manual för deltagare kursen Bakgavellyft Så går du kursen Bakgavellyft

Interaktions- och klassdiagram, kap F4 ht -10

Anmälan mot Göteborgs universitet angående nekande att rätta inlämnade uppgifter

Föreläsning 9: Arv och UML

Tentamen 4,5 hp Delkurs: Databaser och databasdesign 7,5hp Tentander: VIP2, MMD2, INF 31-60, ASP

Coridendro ett verktyg för att grafiskt åskådliggöra incidensen av malignt melanom inom olika släkter

Transkript:

Objektorientering Användning Samt repetition av klasser Suzana Ramadani 1

Repetition Objektorientering bygger på Abstraktion Hierarkisk strukturering Inkapsling Klassificering Generalisering specialisering Suzana Ramadani 2

OO Metodik Analys ska ge en modell av systemet som är mer exakt och en specifikation som är mer fullständig ge en bättre förståelse av systemet och dess relation till omvärlden Design förfining av analysen som kan utgöra underlag för kodning Implementering kodning Suzana Ramadani 3

Objekt Objekt bildar den strukturella grunden program består av objekt som kommunicerar med varandra Objekt tillhör en klass Klassificering generalisering specialisering (härledning/arv) association objekt är i någon mening relaterade sammansättning ( aggregation, composition ) mer specifika former av association Suzana Ramadani 4

Objekt Varje objekt har en unik identitet Måste kunna särskiljas från alla andra objekt Malins hus Ulfs bil Suzanas dator Suzana Ramadani 5

Objekt har attribut attribut avser gemensamma egenskaper för en viss typ av objekt objekts egenskaper beskrivs av attributens värden Hustyp: villa Antal_rum: 5 Taxeringsvärde: 750.000 Ägare: Malin Fabrikat: Volvo RegNr: ABC123 Ägare: Ulf Suzana Ramadani 6

Objekt har beteende beteende avser de tjänster som ett objekt ställer till förfogande för andra startamotor stängavmotor körframåt backa ökafarten bromsa Suzana Ramadani 7

Objekt samarbetar Objekt sägs kommunicera genom meddelanden definierar interaktion mellan objekt identifierar beroenden (associationer) mellan objekt står för informationsöverföring Person ökafarten(km/h) Bil Suzana Ramadani 8

Klass Beskriv klasserna Innebörden av varje klass, syftet med klassen? Var noga med namnet, välj ett beskrivande substantiv Ex: Student person som är inskriven vid högskolan Ex: Registreringsformulär formulär som innehåller en students namn, personnummer, linje, antagningsår, läsår, samt val av kurser under läsåret Suzana Ramadani 9

Klassificering en klass representerar alla objekt med samma egenskaper Ex klass Bil Suzana Ramadani 10

Klasser en klass beskriver det som är gemensamt för alla objekt av typen ifråga Bil Fabrikat registreringsnummer Ägare Klassnamn Data/attribut/egenskaper startamotor stängavmotor körframåt backa bromsa Operationer Suzana Ramadani 11

Klass och objekt Klass beskriver objekt med samma egenskaper och beteende kan ses som en stämpel eller mall för att skapa objekt Objekt klassinstanser är konkreta förekomster av klassen skapas under programkörningen Bil (klass) AnnasBil:Bil (klassinstans) Suzana Ramadani 12

Relationer Relationer mellan klasser eller objekt kan grovt delas upp i relation genom härledning/arv andra former av relationer, vilka kan delas upp i association känner till en, har en aggregation en helhet/del -relation (en form av sammansättning) composition som aggregation men livstiden för delarna kontrolleras av det hela Suzana Ramadani 13

Analys av användningsområde Att bestämma ett systems användningskrav Hur kommer systemet att användas? Definiera kraven på systemets funktioner och gränssnitt Suzana Ramadani 14

Analys av användningsområde Aktivitet Innehåll Begrepp Användning Hur samspelar systemet med personer och system i omgivningen? användningsfall och aktör Funktioner Gränssnitt Vilka är datasystemets innehållsmässiga användningsegenskaper? Vad skall Systemet användas till? Vilka krav ställs på systemets användargränssnitt? Funktion Gränssnitt, användargränssnitt, systemgränssnitt Suzana Ramadani 15

Användningsfall Vad används det till? Hitta systemets användare Identifiera användarnas krav Definiera systemets funktioner Identifiera delsystem Suzana Ramadani 16

Användningsfall Ett användningsfall (use case) är en interaktion mellan en användare och ett system. Om man arbetar med dokumenthanteringsprogram kan ett användningsfall vara att ändra ett textstycke till kursiv stil eller skapa en innehållsförteckning. Suzana Ramadani 17

Användningsfall Dessa exempel påvisar egenskaper som utmärker användningsfall: Ett användningsfall utgör någon funktion som är synlig för användaren. Användningsfall kan vara stora eller små. Ett användningsfall uppnår ett distinkt mål för användaren. Suzana Ramadani 18

Användningsfall Fokus på externt beteende systemet specificeras utifrån användarens perspektiv bildar grund för både konstruktion och testning Användningsfallsmodellering ger två huvudsakliga resultat Aktörer En lista (katalog) med användningsfall Utgör funktioner som är synliga för användaren uppnår distinkta mål för användaren Kan vara stora eller små kan bestå av delfall Suzana Ramadani 19

Aktör Aktörer är systemexterna utbyter information med systemet används för att modellera interaktion med systemet Skilj på användare och aktör en användare är en person eller en sak herr Linus, fröken Karin en aktör är en roll som en användare kan anta kassör, avdelningschef Suzana Ramadani 20

Hur hittar man aktörerna? Vem behöver stöd av systemet för att utföra sina dagliga uppgifter? Vem skall underhålla och administrera systemet? Med vilka andra system skall systemet interagera? Vilka har intresse utav de resultat som systemet tar fram? Suzana Ramadani 21

Användningsfall Ett användningsfall är en viss funktionalitet i systemet som en aktör använder. Det initieras av aktören och består av en sekvens av händelser i systemet. Användningafall visualiseras i form av användningsfallsdiagram (use case diagram) I dessa diagram visar man aktörer som streckgubbar och användningsfall som ellipser, där användningsfallets namn är inskrivet med fet stil. Ex: Student-> Ansök om studiemedel, Registrering för termin, Anmälan till kurs, Anmälan till tentamen. Suzana Ramadani 22

Användningsfall sekvens av händelser i systemet ger den ordning som operationer ska utföras i initieras av en aktör telefonist rökdetektor visar systemet funktionalitet vad ska göras, hända användningsfall är den funktionalitet en aktör använder koppla samtal utlösa brandlarm Suzana Ramadani 23

Användningsfall beskriver detaljer Kund: Uttag, Överföring Uttag: Kunden stoppar in sitt kort i bankomaten. Kunden matar in koden. Koden verifieras. Kunden väljer UTTAG. Kunden väljer belopp Bankomatkortet matas ut och kunden tar detta. Pengarna matas ut och kunden tar dessa. Kvitto matas ut. Detta är inte komplett beskrivning, fyll själv på detaljer Suzana Ramadani 24

Användningsfallsdiagram Use Case Diagram För in alla användningsfall i ett användningsfallsdiagram (Ellipser) Rita en systemgräns (Rektangel runt samtliga användningsfall) Lägg in aktörerna utanför systemgränsen Rita relationer mellan aktörer och användningsfall Suzana Ramadani 25

Användningsfall - exempel Användningsfall Exempel - bank/bankomat Aktör 1: Ta ut pengar 2: Sätt in pengar Bankkund Syftet med användningsfall är att ge en bild av vilka användare som finns och vad dessa gör. 3: Fråga saldo Suzana Ramadani 26

Användningsfallsdiagram - exempel Turnering Registrera deltagare Administratör Skapa turnering Turneringsledare Spelare A Parti Spela parti Spelare B Suzana Ramadani 27

Användningsfall - exempel Program för hantering av order och varor Aktörer Lagerarbetare Försäljare Åkeri Suzana Ramadani 28

Ex. Informell beskrivning av fall Försäljaren registrerar ordern under förutsättning att kunden är kreditvärdig och varorna finns. Vid slutet av dagen meddelas lagerarbetaren om ordern vars status uppdateras. Lagerarbetaren bekräftar att ordern blivit packad och meddelar åkeriet om att varorna hämtas. Åkeriet bekräftar att varorna har hämtats och uppdaterar statusen för ordern. Suzana Ramadani 29

Ex. användningsfallsdiagram Registrera order Ivägskicka Försäljare Skriv order Packa order Åkeri Lagerarbetare Suzana Ramadani 30

Scenario En beskrivning av en viss väg att ta sig igenom ett användningsfall, en instans av användningsfallet, kallas för scenario. Scenarier beskrivs i interaktionsdiagram, av vilka det finns två former, sekvensdiagram (sequence diagram) och samarbetsdiagram (collaboration diagram). Interaktionsdiagram används mest i designfasen Suzana Ramadani 31

Interaktionsdiagram Ett sekvensdiagram visar detaljerat i vilken tidsordning objekt interagerar, medan ett samarbetsdiagram främst ger en övergripande bild av vilka objekt som samarbetar med varandra. Suzana Ramadani 32

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 Suzana Ramadani 33

Notation I interaktionsdiagram förekommer objekt, vilka ritas som rektanglar. I rektanglarna skriver man objektets namn tillsammans med namnet på klassen, på formen objektnamn: Klassnamn, alternativt enbart objektnamnet. Normal, understruken stil används. Suzana Ramadani 34

Notation I ett sekvensdiagram visas ett objekt som en rektangel ovanför en streckad linje. Den streckade linjen kallas objektets livlina (lifeline) och representerar objektets liv under interaktionen. Varje meddelande representeras med en pil mellan livlinorna för två objekt. Ordningen i vilken meddelandena sänds visas uppifrån och ner. Varje meddelande märks med åtminstone meddelandets namn. Suzana Ramadani 35

Exempel: sekvensdiagram låna en bok Suzana Ramadani 36

Beräkna pris

Övning - Sekvensdiagram Rita ett sekvensdiagram för hur trafikljus och röd/grön gubbe tänds och släcks vid ett ljusreglerat övergångsställe. Röd gubbe lyser. Fotgängare trycker på knappen för att gå över. Trafiksignalen med röd, gul och grön lampa behandlas som ett objekt. Röd och grön gubbe representeras var för sig. Suzana Ramadani 38

Sekvensdiagram Sekvensdiagram för hur trafikljus och röd/grön gubbe tänds och släcks Suzana Ramadani 39

Objektorienterad design (OOD) Systemkonstruktion lägger ut riktlinjer för hur det vidare arbetet under konstruktionsfasen ska genomföras, och hur koppling till t.ex. databassystem ska konstrueras Infrastrukturkonstruktion t.ex. användargränssnitts utformning, hur permanent datalagring ska göras, hur kommunikation mellan olika delar i systemet ska ske, etc. Detaljkonstruktion Man är på en ganska detaljerad nivå. Namn på metoder, metodernas parametrar, deras namn och typ, returvärden och attribut (datamedlemmar) ska specificeras noggrant. Iterationer Suzana Ramadani 40

Litteraturhänvisning Wiktorin: kap 5 Se caseexempel på sidan 99! Suzana Ramadani 41