1 / 39

Klasser

Klasser. Modeller. I dag. Domænemodellens rolle er central:. Objekter og klasser. Objekt: en helhed med identitet, tilstand og adfærd Et objekt tilhører en klasse Klasse: en beskrivelse af en samling af objekter med samme struktur, adfærdsmønster og attributter

lilika
Download Presentation

Klasser

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Klasser Modeller

  2. I dag Domænemodellens rolle er central: Softwarekonstruktion 6

  3. Objekter og klasser • Objekt: • en helhed med • identitet, tilstand og adfærd • Et objekt tilhører en klasse • Klasse: • en beskrivelse af en samling af objekter med • samme struktur, adfærdsmønster og attributter • Til enhver klasse hører en mængde af objekter Softwarekonstruktion 6

  4. UML objekt notation Softwarekonstruktion 6

  5. Klassediagram Softwarekonstruktion 6

  6. * 0 .. Bil P er son * 0.. Eksempel på associering UML notation • Beskriver sammenhæng mellem objekter. • Kan være: • 0..*, 1..*, 0..1 eller 1..1 • Her ”mange-til-mange” Softwarekonstruktion 6

  7. Generaliseringsstruktur Softwarekonstruktion 6

  8. UML notation Eksempel på generaliseringsstruktur Er det her rigtigt? Softwarekonstruktion 6

  9. Mønstere:Løsningpåofteforekommendemodelleringsproblemer • Genstands-beskrivelse • Relatering • Composite • Mmfl. Softwarekonstruktion 6

  10. Nyttige mønstre: genstands-beskrivelse • Biludlejning • Kunde = kunden, aftale= lejekontrakt og ydelse = biler • Ordresalg • Kunde = kunden, aftale = ordre og ydelse = varer • Kursuscenter • Kunde= kursist, aftale= tilmelding og ydelse = kursusafh • Bibliotek?? Softwarekonstruktion 6

  11. Nyttige mønstre: RelateringKlassediagram 1. Udkast plus objektdiagram • Problem: Associeringen mellem ordre og vare har selv nogle egenskaber - registrering af antal bestilte varer Softwarekonstruktion 6

  12. Relaterings mønstretLøsningsmuligheder Løsning: Tilføjelse af en associeringsklasse Alternativ 1: Navngivning af associering med tilhørende attributter Alternativ 2: En ny klasse Delordre – kaldes ofte Ordrelinie eller Varelinie Softwarekonstruktion 6

  13. Aggregering vs. associering • Aggregering kan ses som en “del-helhed” forbindelse • Associering er en mere “løs” forbindelse mellem objekter • Kan komponenten eksistere selvstændigt? • Kan komponenten skiftes ud? • Hvem har ansvaret for oprettelsen af komponenten? Softwarekonstruktion 6

  14. Opgave . Udarbejd klassediagram for web-bestilling af blomster mv. • Tag udgangspunkt i beskrivelsen af use casen: ”Afgiv ordre” Softwarekonstruktion 6

  15. UP’s Analyse Use case realisering Interaktionsdiagrammer Sekvensdiagrammer

  16. Analyse og design i UP • Både analysen og design i UP beskriver hvordan use cases kan realiseres ved hjælp af samarbejdende objekter • Analysen er teknologineutral og kan betragtes som en slags overordnet design • Der vises klasser fra problemdomænet (kursist, kursus ..) ikke løsningsdomænet (database.., gui , netværk …) • I designet indarbejdes teknologi-afhængige aspekter • Hvilken type database? Hvilke designklasser indkapsler databasen? Softwarekonstruktion 6

  17. Use case realisering Softwarekonstruktion 6

  18. Use case realisering • Målene for analysen er: • At finde de analyseklasser der skal bruges i realiseringen af use cases • At finde ud af hvilke beskeder (metode kald) de enkelte objekter skal sende til hinanden for at kunne realisere use cases • At sikre konsistens mellem krav og analyse ved løbende at opdatere kravsmodellerne • Use case realisering handler om at fastlægge, hvordan klasser skal samarbejde for at realisere systemets funktionalitet i et dynamisk view Softwarekonstruktion 6

  19. Use case realisering Softwarekonstruktion 6

  20. UML interaktionsdiagrammer • De vigtigste er: • Sekvensdiagrammer • Kollaborationsdiagrammer • Elementerne i diagrammerne: • Livslinjer for de deltagende objekter • Fx: minkonto: Konto (objekt:Klasse) • Beskeder, som er en specifik kommunikation mellem livslinjerne • Fx: FindKonto(kontonr) Softwarekonstruktion 6

  21. Interaktions diagrammer • Kollaborations diagrammer • objekt interaktion i graf eller netværks format • fokus på strukturelle aspekter • Sekvens diagrammer • interaktionen vises I stakit format • tids ordnet sekvens af handlinger Softwarekonstruktion 6

  22. Eksempel 1 Softwarekonstruktion 6

  23. Deltagende klasser: AddCourse Softwarekonstruktion 6

  24. nsdiagram: AddCourse Softwarekonstruktion 6

  25. Kollaborationsdiagram: AddCourse(en anden måde at vise samme interaktion på) Softwarekonstruktion 6

  26. Eksempel 2: DeleteCourse Softwarekonstruktion 6

  27. Sekvensdiagram:DeleteCourse Håndteres automatisk i moderne sprog Softwarekonstruktion 6

  28. UML syntaks for meddelelser • return = message(parameter: parameterType):returnType • eksempler: • p=getPerson(id) • p=getPerson(id:personId) • p=getperson(id:personId):Person Softwarekonstruktion 6

  29. Syntaks for kombineret fragmenter og operatorer Softwarekonstruktion 6

  30. Kollaborationsdiagram med forgreninger Softwarekonstruktion 6

  31. Opgave: Godbid • Domænemodellen for Godbid er vist på figuren • Lav use cases og interaktions diagrammer for følgende: • Opret Bord • Opret Bestilling • Opret Medarbejder Softwarekonstruktion 6

  32. Opgave • Indtast diagrammerne i Rose (vi hjælpes ad) Softwarekonstruktion 6

  33. Analyse klassediagram • I analyse klassediagrammet vises klasser, attributter og metoder, som illustrer den use case, der arbejdes med • Attributter overføres fra domænemodellen • Metoder tilføjes på klasserne: • Indgående beskeder til en klasse betyder, at klassen må definere en modsvarende metode • Metoderne specificeres ved at angive deres navn (beskeden) i operationsdelen på klassen Softwarekonstruktion 6

  34. Analyseklassediagram for AddCourse og DeleteCourse Softwarekonstruktion 6

  35. Trivielle metoder Følgende metoder navngives som regel ikke: • metoder til at generere og destruere objekter. Ved at definere klasserne specificere vi implicit, at de findes. Deres design og placering afhænger af programmeringssproget • metoder til aflæsning og opdatering af attributter på et objekt (properties). Ved definition af attributterne specificerer vi implicit, at disse findes. • metoder til at finde og tilføje objekter på multiobjekter. Softwarekonstruktion 6

  36. Opgave: Godbid • Lav et analyse klassediagram • Indtast det i Rose • Lav et nyt klassediagram (som kaldes for analyseklasse diagram). Overfør klasserne fra domænemodellen • Bemærk: Analyse klassediagrammet er ikke det samme som domænemodellen!! Softwarekonstruktion 6

  37. Fra use cases til interaktionsdiagram • Hvis der er mange trin i en use case kan der være en fordel først at finde og navngive input- og output systemhændelser mellem hhv. aktør og system i en tidsmæssig orden efter use casens forløb Softwarekonstruktion 6

  38. Fra use cases til interaktionsdiagram Softwarekonstruktion 6

  39. Opgave: Afgiv Ordre (blomster) • Gå use casen Afgiv Ordre igennem (den vi lavede for interflora) • Find og navngiv input system hændelser mellem bruger og system (output hændelser behøver ikke at blive navngivet). • Analyser herefter hver input systemhændelse i et interaktionsdiagram • Overfør de fundne metoder til analyse klassediagrammet Softwarekonstruktion 6

More Related