UML-Unified Modeling Language

Like dokumenter
UML-Unified Modeling Language. Prosess-oversikt. Use case realisering

UML- Use case drevet analyse og design. Domenemodeller Sekvensdiagrammer Use case realisering med GRASP patterns Klassediagram - designmodeller

Use case drevet design med UML

I dag UML. Domenemodell visualisering av konsepter. Eksempel. Hvordan finne domeneklasser?

UML 1. Use case drevet analyse og design Kirsten Ribu

Hensikten med denne delen av kurset. Objektets egenskaper. Objektorientering hva er det? Best practises ved programvareutvikling. Kravspesifikasjonen

Use case drevet design med UML. I dag

God objektorientert design Flere UML diagrammer UML Distilled kap. 7,8, 9 Using UML, kap. 11, 12, 14 Kirsten Ribu

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case?

Mer om objektorientering og UML

IN2001: Kravhåndtering, modellering, design

Hensikten med denne delen av kurset. Objektorientering hva er det? Objektets egenskaper. Best practises ved programvareutvikling

Use case modellen. Use case modellering i analysefasen. Hva er en Aktør? Hva er et Use case? Use case modellering. Eksempel

Mer om objektorientering og UML

UKE 11 UML modellering og use case. Gruppetime INF1055

Mer$om$objektorientering$og$UML

IN2000:&Kravhåndtering,&modellering,&design

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

Oppsummering av hovedområdene i kurset LO 135A Kirsten Ribu

Use Case-modellering. INF1050: Gjennomgang, uke 04

Fra krav til objektdesign

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell (ny versjon) Dagens forelesning. Fra krav til objektdesign

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

Beskjed fra Skagestein

Spesifikasjon av Lag emne

Gruppenavn. Prosjektnavn Beskrivelse av design For Navn på systemet. Versjon <1.0>

UNIVERSITETET I OSLO

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Hva gjøres i design? 19. september 2002, Tore Berg Hansen, TISIP

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Modellering av krav. INF1050: Systemutvikling 11. februar Universitetslektor Yngve Lindsjørn

Modellering av krav. INF1050: Systemutvikling 07. februar Førstelektor Yngve Lindsjørn

Produktrapport Gruppe 9

Fra krav til objekter. INF1050: Gjennomgang, uke 05

NB! Endring i undervisningsplanen

Kravspesifikasjon med UML use case modellering. Erik Arisholm

Objektorientert design av kode. Refaktorering.

UKE 13 Mer UML modellering. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Spesifikasjon av Lag emne. Kursregistrering bruksmønstermodell. Dagens forelesning. Fra krav til objekter

GJENNOMGANG UKESOPPGAVER 4 USE CASE MODELLERING HELGA NYRUD & KRISTIN BRÆNDEN

Eksamen INF

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

Tom Røise IMT2243 : Systemutvikling 1. IMT2243 Systemutvikling 26. februar Klassediagrammet. Klasse

UNIVERSITETET I OSLO

1. Modellering av objektorienterte systemer

Fra krav til modellering av objekter

Universitetet i Oslo Institutt for informatikk. Eskild Busch. UML hefte

Spesifikasjon av Lag emne. Kursregistrering g bruksmønstermodell. Dagens forelesning. Fra krav til objekter

Use case modellering. Use case modellen. Metode for systembeskrivelse og Nettsted-design

Metode for ansvarsdrevet OO. Dagens forelesning. Delegering av ansvar i en trelagsarkitektur

INF 5120 Modellering med objekter

Utvikling fra skallet og inn

Unified Modeling Language (UML) Kravspesifikasjon med UML use case modellering. UML diagrammer. Notasjon som støtter opp under modellbasert

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML

Dagens forelesning. o Litt mer om design med UML sekvensdiagrammer. Sentralisert og delegert kontrollstil

Metode for ansvarsdrevet OO med UML. Dagens forelesning. Hovedflyt for Meld på kurs. Delegering av ansvar i en trelagsarkitektur

Innholdsfortegnelse INNHOLDSFORTEGNELSE... 2 REVISJONSOVERSIKT...4 INTRODUKSJON MED FORUTSETNINGER... 5

1. Modellering av objektorienterte systemer

Design Patterns - mønstre

Kravspesifikasjon med. UML diagrammer. systemutvikling. Dokumentasjon av systemets krav, arkitektur, design og implementasjon

Kravspesifikasjon med. Erik Arisholm

Modellering av objektorienterte systemer

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Metode for ansvarsdrevet OO med UML. Dagens forelesning. Hovedflyt for Meld på kurs. Delegering g av ansvar i en trelagsarkitektur

Løsningsforslag til Case. (Analysen)

o UML klassediagrammer

Forside. Eksamen i IN1030 for Våren Ingen hjelpemidler tillatt.

Dagens forelesning. o Litt mer om design med UML sekvensdiagrammer. Sentralisert og delegert kontrollstil

UML klassediagrammer

Eksamen 2013 Løsningsforslag

Tittel Objektorientert systemutvikling 2

Del - leveranse Del 2. Inf 2120 fredag Gruppe 1 Knut Johannes Dahle

Hva gjøres i analysen? 2. oktober 2001, Tore Berg Hansen, TISIP

Use case modellering

INF Oblig 2. Hour Registration System (HRS)

Oversikt over forelesningene. Fra analyse til objektdesign. Utfordringen i å lage OO-modeller. Metode for ansvarsdrevet OO. Uke 12: Ansvarsdrevet OO:

IN& &april&2019. Modellering*av*krav. Yngve&Lindsjørn. IN1030&'>Systemutvikling'>&Modellering&av&krav 1

Forfattere: Daníelsdóttir, Drífa Meland, Maiken Mijalkovic, Biljana Svendsen, Simen H. Gruppelærer: Zarei, Amir Hossein. 5.

Design Patterns - mønstre. Kirsten Ribu

Prosjektgruppen: Gjermund Gartmann Tommy Jansson Margrethe Store. Prosjektledelse: Margrethe Store Kvalitetssikring: Tommy Jansson

Objektorientert design av kode. Refaktorering.

Forslag til løsning. Oppgave 1

Kap3: Klassemodellering

University of Oslo Department of Informatics. INF Modellering med objekter Oblig 2, V2004. Skrevet av:

Krav analyse og objektorientert

Obligatorisk oppgave 5: Modellering av krav

Kirsten Ribu - Høgskolen i Oslo

Oppgave 1: Multiple choice (20 %)

Lykke til! Eksamen i fag TDT4140 Systemutvikling NTNU Norges teknisk-naturvitenskapelige universitet

Gruppenavn. Beskrivelse av arkitektur For Navn på systemet. Versjon <1.0>

Kravspesifikasjon. Kravspesifikasjon. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Hva skal systemet gjøre? Hvem og hva påvirker krav?

Gruppenavn. Prosjektnavn Kravdokument For Navn på systemet. Versjon <1.0>

INF Modellering med objekter (Oblig 2) **TimeregistreringSystem** (Designet av Alen Cemer

Forside Eksamen INF1055 V17

Prosjektrettet systemarbeid

1. Objektorientert systemutvikling

Kravspesifikasjon. Dagens forelesning. Mal for kravspesifikasjon. Hvordan finne fram til kravene? Kravspesifikasjon og objektorientert analyse

21. Objektorientert Analyse (OOA) Kap. 21 Objektorientert Analyse (OOA)

Kravspesifikasjon. Erik Arisholm. Simula Research Laboratory. Institutt for Informatikk. INF1050-krav-1

Gjennomgang av prøveeksamen. Gruppetime INF1055 Julie Hagen Nilsen & Maria Stolinski

Transkript:

UML-Unified Modeling Language Use case realisering Designmodellering 21.01.2004 Kirsten Ribu Use Case diagram Klassediagram Oppførselsdiagrammer: Sekvensdiagram Kollaborasjonsdiagram Tilstandsdiagram Aktivitetsdiagram Implementasjonsdiagrammer Komponentdiagram Deployment diagram 1 2 Prosess-oversikt Spørreskjema Spørsmål UC Generer Spørreskjema 1.. Use case modell 2. 3. 4. Use case Black box Svar Metode: nyttspørreskjema() Kontrakter Domenemodell Use case modell Use case realisering En betegnelse fra Rational Unified Process (RUP) Beskriver forbindelsen mellom kravene uttrykt i use casene og objektdesignet som oppfyller disse kravene Beskriver hvordan scenariene i et use case realiseres gjennom objekter som samarbeider Illustreres med sekvensdiagrammer Designmodell 3 4 1

Prinsipper og teknikker Analyse Teknikker: Use case modellering Domenemodellering Use case drevet design Teknikker: Interaksjonsdiagrammer: Sekvensdiagram og kollaborasjonsdiagram Ansvarsdrevet design Teknikker: Use case realisering med sekvensdiagrammer Designmodellering med sekvensdiagrammer Design patterns (mønstre) Oppsummering av metoden Analyse 1 Identifiser aktører og deres mål 2 Lag et høynivå use case diagram 3 Spesifiser hvert use case tekstlig med normal hendelsesflyt og variasjoner 4. Lag domenemodell Design (ansvarsfordeling) 5 Identifiser objekter og fordel ansvar mellom dem 6 Lag sekvensdiagram for viktige use case 7 Lag klassediagram på systemnivå 5 6 Sekvensdiagrammer: fra krav til design Et UML sekvensdiagram viser hendelsesflyten i et use case viser interaksjoner (samarbeid) mellom objekter i systemet viser rekkefølgen på beskjedene (abstrakt) som sendes mellom objektene kan brukes til å identifisere metodene til objektene i systemet Interakjonsmodellering Sekvensdiagrammer Allokerer oppførsel til klasser og objekter Viser detaljert interaksjon som forekommer over tid blant objektene som er assosiert med hvert use case. Typisk ett interaksjonsdiagram pr. use case 7 8 2

Nok et eksempel: Betale for bestilt vare Sammenheng mellom use case og sekvensdiagram For hvert use case lages (i de aller fleste tilfeller) et sekvensdiagram for normal hendelsesflyt (main success scenario) For hver variasjon kan man velge å lage et nytt sekvensdiagram. Det er viktig å lage sekvensdiagram for variasjoner som ha stor innvirkning på designet 9 10 Klassediagram Arv (generalisering) Klasser og relasjoner 0..1 * assosiasjon spesialisering/ Generalisering (arv) Optiker er en spesialisering av Ansatt Aggregering (er en del av...) 12 3

Aggregering Designmodell Aggregering = en del av noe relasjon.. Vær forsiktig med bruk av aggregering som regel er det nok med en relasjon En designmodell viser systemklasser, ikke konseptuelle klasser som i domenemodellen Typisk informasjon er: Klasser, assosiasjoner og attributter Grensesnitt Metoder 13 14 Fra domenemodell til designmodell Utforming av designmodellen Designmodell - systemklasser Lag design-klassediagram parallelt med sekvensdiagrammer Lag noen sekvensdiagrammer, oppdater klassediagrammet, utvid sekvensdiagrammet etc. Designklassene er systemklasser, ikke konseptuelle klasser som i domenemodellen 15 16 4

Framgangsmåte for designmodellering Klassenavnene er inspirert av navn i domenemodellen Identifiser klasser ved å gå gjennom sekvensdiagrammene Finn metoder Legg til metodenavn ved å analysere sekvensdiagrammene Eks: Meldingen leggtil_info() sendes til Spørreskjemaobjektet. Objektet må derfor inneholde en leggtil_info() metode 17 18 Objektdesign: Ansvarstilordning Objektdesign - ansvar UML definerer ansvar som en kontrakt i en klasse Ansvar er knyttet til objektet i form av dets oppførsel Handling: Opprette objekt, beregning Kunnskap: Vite om private data, vite om relaterte objekter Ansvar er ikke det samme som metoder, men metoder implementeres for å oppfylle ansvaret Ansvarstilordning: En utfordring under utforming av sekvens-diagrammer Ekspertprinsippet: La det objektet som har kunnskapen (dataene) også behandle den (Eksempel Spørreskjema ) Kontrollobjektprinsippet: Velg objekt som håndterer systemhendelser (Eksempel: SpørreskjemaHåndterer use case kontrollobjekt) Skaperprinsippet: Legg ansvar for å opprette et nytt objekt i klassen som må vite om det nye objektet (Eksempel: SpørreskjemaGenerator ) 19 20 5

Kjennetegn på god design En god utforming gjør den jobben den er ment å gjøre En god utforming er enkel og elegant Eleganse innebærer å finne akkurat riktig abstraksjonsnivå En god utforming er gjenbrukbar, utvidbar og enkel å forstå Et godt objekt har et lite og veldefinert ansvarsområde Et godt objekt skjuler implementasjonsdetaljer fra andre objekter - Grady Booch Modularisering Høy kohesjon Et objekt skal bare ha ansvar for relaterte ting Lav kobling Et objekt skal ha samarbeid med et begrenset antall andre objekter 21 22 Høy kohesjon Lav kobling Kohesjon er et mål på hva slags ansvar et objekt har og hvor fokusert ansvaret er Et objekt som har moderat ansvar og utfører et begrenset antall oppgaver innenfor ett funksjonelt område har høy kohesjon Objekter med lav kohesjon har ansvar for mange ting innen ulike funksjonelle områder Kobling er et mål på hvor sterkt et objekt er knyttet til andre objekter Et objekt med sterk kobling er avhengig av mange andre objekter noe som kan gjøre endring vanskelig 23 24 6

Finn systemklasser Hvordan: Begynn med å formulere ansvarsområdet: Hvilket objekt har ansvar for å opprette nye skjemaer? Se etter mulige systemklasser i domenemodellen Spørsmål: Hva er det generelle prinsipp for å opprette nye objekter? Forslag: Klasse B får ansvar for å opprette objekter av klasse A dersom: B bruker A objekter direkte B inneholder A objekter B aggregerer A objekter B har data som sendes til A objekter når de opprettes Finn systemklasse Vi trenger en klasse for å opprette skjemaer SpørreskjemaGenerator - klassen sender data til Spørreskjema ved opprettelse av nye skjemaer 25 26 Ansvar og sekvensdiagrammer Litt om kontrollobjekter Ansvaret utdypes under utforming av sekvensdiagrammene Et SpørreskjemaGeneratorobjekt har ansvaret for å opprette et nytt spørreskjema Hver use case kan ha et kontrollobjekt som styrer flyten i use caset Kontrollobjektet er et grensesnittobjekt Kontrollobjekter delegerer oppgaver til andre objekter 27 28 7

Kontrollobjektprinsippet Hvem er ansvarlig for å håndtere systemhendelser = en hendelse som genereres av en ekstern aktør? Løsning: F.eks tilordne ansvar for å håndtere en systemhendelse til En klasse som representerer et use case scenario der systemhendelsen forkommer ofte Navn: <UseCaseNavn> Håndterer Eksempel: SpørreskjemaHåndterer Eksempel: SpørreskjemaHåndterer Generer spørreskjema (2) visspørreskjema() 29 30 Retningslinjer for assosiasjoner Designmodell Klasse A og Klasse B er assosiert hvis Et objekt av klasse A sender en beskjed til et objekt av klasse B Et objekt av klasse A oppretter et objekt av klasse B Et objekt av klasse A har attributter hvis verdier er objekter av klasse B eller mengder av objekter av klasse B Et objekt av klasse A mottar en beskjed med et objekt av klasse B som parameter 31 32 8

Oppsummering I objektorientert analyse utarbeides use case modell og domenemodell i parallell. Scenariene i et use case realiseres gjennom objekter som samarbeider. Dette illustreres i sekvensdiagrammer. Klassediagrammer og sekvensdiagrammer utarbeides i parallell, designklasser og metoder finnes ofte fra sekvensdiagrammene og domenemodellen. Ordrebehandlingssystem en gang til: Kravspesifikasjon: En bedrift ønsker et online ordresystem for å kunne selge produkter fra flere forhandlere. Når kunder bestiller varer legger de inn en ordre sammen med betalingsinformasjon. Man kan legge til varer og lagre underveis for å kunne fortsette bestillingen senere. Ordre kan kanselleres etter at de er lagt inn, men før varene sendes. 33 34 Use case modell for Ordrebehandlingssystem Use case Lag ordre Aktør: Kunde Sekundær aktør: Regnskapssystem 1. Systemet viser et ordreskjema med varebeskrivelser 2. Kunden skriver inn de ønskede varene og betalingsinformasjon 3. Systemet sjekker at alle felt er fylt ut og viser totalsum 4. Kunden bekrefter bestillingen 5. Systemet lagrer ordren og sender betalingsinformasjon til regnskapssystemet 6. Regnskapssystemet bekrefter betalingsinformasjonen 7. Systemet sender en ordrebekresftelse til kunden 35 36 9

Overordnet domenemodell Sekvensdiagram for Lag ordre Aktør Kunde Ordrehåndterer Ordre Produkt Aktør Regnskapssyst bestillvarer() leggtilordre() velgprodukt() velgprodukt() leggtilbetalingsinfo() 37 38 Neste gang Prosjektstyring og prosjektgjennomføring Gurholt og Hasle kap. 7,16,17, 19 39 10