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