Objektorientering Grunderna i OO 1
Systemutveckling Tre systemnivåer: Verksamhet Informationssystem Datasystem Huvuduppgifterna i ett systemutvecklingsarbete: Verksamhetsanalys Informationsbehovsanalys Anskaffning och utformning 2
Centrala begrepp Modell Konceptuell modell Logisk modell Fysisk modell Metod Objektorientering System Ligger bakom utformandet av UML 3
System Avgränsning Definieras av en betraktare Ett system har en omgivning Består av Komponenter Relationer mellan komponenter 4
Datasystem och komponenter Andra system Användare Gränssnittskomponenten Kopplar samman systemet med dess omgivning Funktionskomponent De faciliteter som användare gör bruk av i sina arbetsuppgifter för att utnyttja och uppdatera modellkomponenten Modellkomponent En modell av systemet - datasystemets problemområde Gränssnitt Funktioner Modell Datasystem En samling komponenter som realiserar krav på modell, funktioner och gränssnitt Suzana Ramadani 5
Objektorienterad systemutveckling Man brukar dela in arbetet med att utveckla ett program i fyra faser: analys, design, implementation, testning. I analysen är den främsta uppgiften att förstå och beskriva det bakomliggande problemet problemet som skall beskrivas, inte datorlösningen till problemet. 6
Objektorienterad systemutveckling I designen utgår man från de erfarenheter som man skaffat sig under analysen och bygger vidare på dem. Förberedelser för implementation Hårdvara, kommunikation, datalagring osv. 7
Objektorienterad systemutveckling Implementation Programskrivning Testning Testa programkomponenter Testa färdigt program Påvisa fel i programmet 8
Traditionella metoder Analys -> Design -> Implementation -> Testing Vattenfallsmetoder Funktionsinriktade metoder 9
Objektorienterade metoder Analys <=> Design <=> Implementation <=> Testing Data - Objekt Modellering Iterativ och inkrementell 10
Objektorientering Två principer att förstå och beskriva komplexa system: Partitionering Klassificering Notation i systemutvecklingsmetod UML 11
Objektorienterad systemutveckling Analysfas (OOA) Kravspecifikation/Systemdokumentation Användningsfall, olika diagram och annan dokumentation Kravspecifikation Designfas (OOD) Kravspecifikation Förfina klasser, hitta nya Detaljerade beskrivningar av systemet Analysfasen = modellera ett system Designfasen = konstruera ett system Objektorienterad systemutveckling iterativ process! 12
Objektorienterad analys och design Begrepp: Objekt En entitet med identitet, tillstånd och beteende Ett objekt kan hålla information (data) Ett objekt kan göra saker (funktionalitet) Objekt tillhör en klass (är en instans av) Klass En beskrivning av en samling objekt som delar struktur, beteendemönster och attribut En klass definierar vilken typ av information dess objekt skall hålla (Attribut) En klass definierar vad dess objekt skall kunna göra (Metoder/Operationer) System En samling av komponenter som implementerar modelleringskrav, funktioner och gränssnitt. 13
Objektorienterad analys (OOA) Analys av ett system syftar till att kartlägga ett systems funktionalitet utifrån de krav som ställs på systemet. Mål i detalj beskriva vad systemet skall utföra 14
OOA I analysen upprättas: Klassdiagram Objektdiagram Tillståndsdiagram Scenario Användningsfall Sekvensdiagram Användardialoger (skärmbilder) Suzana Ramadani 15
Aktiviteter i analysdelen Vanliga aktiviteter i en analys är: Insamlande av underlag (Verksamhetsanalyser, begreppsmodeller, beskrivningar av befintligt system, intervjuer med användare ) Definition av användningsfall Identifiera kandidater till objekt (brainstorming sen utselektering) Klassificering av objekt (klassificeras med klassnamn, beskrivning, attribut, metod) Relationer mellan objekt och mellan klasser (klassdiagram) Gruppera klasser Specificera operationer och attribut Verifiera modellen 16
Klassdiagram Klassdiagram beskriver olika typer av objekt som finns i ett system och relationer som finns mellan dessa Hitta objekt Klassificera objekt Relationer mellan klasser Gruppera klasser 17
Klassdiagram Relationer mellan instanser av klasser Association Aggregat och komposition Specialisering /Generalisering Subklass Superklass Person 1 Bil 1 1 Fordon 1 1 4 Bil Chassi Motor Hjul Bil Buss 18
Användningsfall (use case) Användningsfall interaktion mellan en användare och ett system. Användningsfall att definiera de olika sätt som systemet kommer att användas på. Identifiera aktörer och användningsfall För att få en djupare insikt om samarbetet mellan objekt Användningsfall en viss funktionalitet i systemet som en aktör använder 19
Sammanfattning av analysfasen Analysen kan beskrivas i olika delmoment: Finn objekt Klassificera objekt Beskriv relationer Gruppera klasser Identifiera aktörer och användningsfall Specificera operationer och attribut Verifiera modellen Ordningen ej viktig, upprepa olika moment Resultat av analysen är ett dokument med: Klassdiagram Textuell beskrivning av varje klass Interaktionsdiagram som beskriver händelseförlopp och hur objekt samarbetar Redovisning av användningsfall Krav på systemprestanda, maskinvara, standarder 20
Övning 1 Leta efter substantiv för att finna lämpliga klasser i det system som beskrivs nedan. Finn också associationer mellan klasserna och definiera lämpliga attribut i klasserna. En institution ger ett antal kurser. Varje kurs har ett namn och en kurskod. Vid institutionen läser ett antal studenter. Varje student har ett namn och ett personnummer. Studenterna läser och tenterar kurser. Vid tentamen registreras datum och ett sifferbetyg. 21
Lösningsförslag Klasser: Institution, Kurs, Student, Tentamen. Associationer mellan klasserna får man också ur texten: en institution ger kurser, studenter läser-vid en (eller antagligen flera) institution(er), studenter läser-och-tenterar kurser, tentamina registreras-vid institutionen. Kopplingen mellan student-tentamen-kurs kan uttryckas: en student deltar-i tentamina, en kurs innehåller tentamina. 22
Övning 2 Gör ett klassdiagram med klasserna Cykel, CykelÄgare, Stadscykel, Cykelram, MountainBike och Hjul med associationer och generaliseringar. Markera särskilt aggregat och komposition och ange multiplicitet. 23
Lösningsförslag CykelÄgare 1 Cykelram 0..* 1 2 Cykel Hjul Stadscykel MountainBike 24
Övning 3 Rita ut lämpliga relationer (association, aggregat, komposition, specialisering) mellan klasserna i följande diagram: Svans Hund Däggdjur Katt Öga 25
Lösningsförslag Däggdjur Svans Öga Katt Hund 26
Litteraturhänvisning Wiktorin: kap 5 27