Fra krav til modellering av objekter

Like dokumenter
Fra krav til objekter. INF1050: Gjennomgang, uke 05

UKE 11 UML modellering og use case. Gruppetime INF1055

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

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

Objektorientering og UML. INF1050: Gjennomgang, uke 06

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

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

UML 1. Use case drevet analyse og design Kirsten Ribu

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

Use Case-modellering. INF1050: Gjennomgang, uke 04

UML-Unified Modeling Language

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

IN2001: Kravhåndtering, modellering, design

Fra krav til objektdesign

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

GJENNOMGANG UKESOPPGAVER 6 MER OM OBJEKTORIENTERING OG UML

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

Kap3: Klassemodellering

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

UNIVERSITETET I OSLO

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

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

Eksamen INF

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

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

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

Spesifikasjon av Lag emne

UNIVERSITETET I OSLO

Oppgave 1: Multiple choice (20 %)

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

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

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

GJENNOMGANG UKESOPPGAVER 9 TESTING

1. Hvilke type krav angår sikkerhet og pålitelighet?

1. Hvilke type krav angår sikkerhet og pålitelighet?

INF1000: Forelesning 7

UNIVERSITETET I OSLO

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

INF1000: Forelesning 7. Konstruktører Static

Model Driven Architecture (MDA) Interpretasjon og kritikk

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

Prøveeksamen INF1050: Gjennomgang, uke 15

Slides made by Sommerville adapted by Letizia Jaccheri This lecture will be filmed

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

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

OptimalJ-kurs UIO Oppsummering av kurset. De ulike modellene egenskaper og formål

Mer om objektorientering og UML

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

Use case drevet design med UML

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

Obligatorisk oppgave 5: Modellering av krav

Beskjed fra Skagestein

Kravspesifikasjon med UML use case modellering. Erik Arisholm

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

1. Modellering av objektorienterte systemer

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

Prosjektrettet systemarbeid

Produktrapport Gruppe 9

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

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

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

Eksamen i fag TDT4140 Systemutvikling. 22. mai, 2008 kl

Eksamen 2013 Løsningsforslag

(MVC - Model, View, Control)

NB! Endring i undervisningsplanen

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

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

Utvikling fra skallet og inn

Planlegging og dokumentasjon

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

Mer$om$objektorientering$og$UML

INF Obligatorisk innlevering 7

Systemutvikling. Universitetet i Oslo, Institutt for informatikk Vår 2017

1 Kodegenerering fra Tau Suiten

SRD GLIS. Cecilie Dortea Gløsmyr, Espen Buø og Henrik Lie

Eksamen INF1050: Gjennomgang, uke 15

19. januar 2012 Noen punkter fra i går

Konfigurasjonsstyring

Obligatorisk oppgave 3. INF1050: Gjennomgang, uke 16

Presentasjon 1, Requirement engineering process

Arv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {

CORBA Component Model (CCM)

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

Mer om objektorientering og UML

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

Inf1055 Modul B 26 april 2017:

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

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

AMS-case. Eksemplifisering av modellbasert. tilnærming til design av brukergrensesnitt

Modellering IT konferanse

AlgDat 12. Forelesning 2. Gunnar Misund

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

Etter uke 9 skal du. Introduksjon til objektorientert programmering. Innhold. Klasser som abstraksjoner

Tittel Objektorientert systemutvikling 2

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

Systemutvikling - oppsummering. Alexander Nossum blog.eksplisitt.net 22. mai 2006

Forside Eksamen INF1055 V17

Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)

Oppgave 1 Multiple Choice

DELLEVERANSE 2 INF2120 GRUPPE 12. Jon G. Berentsen Geir A. Nilsen Lailuma Arezo

Transkript:

INF1050: Systemutvikling 14. februar 2017 Fra krav til modellering av objekter Førstelektor Yngve Lindsjørn INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 1

Temaer i dagens forelesning System-modellering og systemperspektiv Objektorientert perspektiv UML diagrammer Bruksmønster (Use-Case) Sekvensdiagram Klassediagram Aktivitetsdiagram Tilstandsdiagram Modelldrevet tilnærming INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 2

Systemmodellering Det sentrale med systemmodellering er å utvikle abstrakte modeller av et system, der hver modell representerer ulike perspektiver av systemet Systemmodellering er viktig for å forstå funksjonaliteten i et system og modellene brukes til å kommunisere med kundene og til dokumentasjon Grafisk notasjon er viktig, og er i dette kurset i hovedsak basert på notasjoner gitt i UML (Unified Modeling Language) UML: http://www.omg.org/gettingstarted/what_is_uml.htm Bok: Martin Fowler: UML distilled INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 3

Grafiske modeller Et godt hjelpemiddel i diskusjonen om systemet Ikke komplette eller ukorrekte modeller kan være OK så lenge formålet er å bidra til diskusjon Brukes ofte som en sentral del i dokumentasjon av et eksisterende system Modeller bør representere systemet korrekt, men trenger ikke være komplett En detaljert systembeskrivelse kan brukes til å implementere systemet Modellen må både være korrekt og komplett INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 4

E-resept systemer og meldingsflyt hentet fra e-resept arkitektur versjon 2.71 Dette diagrammet er en sentral del i dokumentasjonen av e-resept systemet INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 5

Modeller En modell er en abstrakt oversikt av et system Ser bort fra alle detaljene Systemmodeller blir laget for å vise et systems kontekst, interaksjon, struktur og adferd ( behavior ). INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 6

Systemperspektiver 4 ulike perspektiver Eksternt perspektiv, der du modellerer konteksten til systemet Interaksjonsperspektiv, der du modellerer interaksjonen mellom et system og omgivelsene, eller mellom komponentene i et system Strukturelt perspektiv, der du modellerer organisasjonen systemet inngår i eller datastrukturen som brukes av systemet Adferdsperspektiv, der du modellerer systemets adferd og hvordan systemet reagerer på hendelser INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 7

Kontekstmodeller Kontekstmodeller viser hvordan et system relaterer seg til andre systemer og prosesser INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 8

Kontekstmodell MHC-PMS Pasientdatabase System Rapportering System Tilgangsrettigheter System MHC-PMS - System Statistikk System Foreskriving System Avtale System INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 9

Medical Health Care Patient Management System MHC-PMS Lokalt system MHC-PMS Lokalt system MHC-PMS Lokalt system MHC-PMS - Server Pasientdatabase Beskrivelse av MHC-PMS: Lærebok kapittel 1.3.2. Denne er hentet fra figur 1.6 INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 10

Interaksjonsmodeller Modeller av interaksjoner er viktig for å identifisere brukerkrav Bruksmønstre og sekvensdiagrammer er sentrale teknikker og diagrammer som brukes i interaksjonsmodeller INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 11

Bruksmønster- og sekvensdiagram Bruksmønster diagrammer (Use Case diagrams) og sekvensdiagrammer brukes til å beskrive interaksjonen mellom brukere og systemer. Bruksmønstre beskriver interaksjonen mellom et system og eksterne aktører Sekvensdiagrammer legger til mer informasjon for hvert bruksmønster og viser også interaksjon mellom objekter kall på metoder INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 12

Bruksmønstre i MHC-PMS som involverer medisinsk saksbehandler Registrer pasient Avregistrer pasient Se pasientinfo Saksbehandler Overfør pasientinfo Kontakt pasient Hentet fra figure 5.5 i lærebok INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 13

Sekvensdiagram Se pasientinfo P : Pasientinfo D : MHCPMS-DB A : Autorisasjon : Medisinsk saksbehandler 1: SePasientinfo (PID) 2: Report (Info, PID, UID) 3: Autorisasjon(Info, UID) 4: Autorisasjon Alt Autorisasjon ok 5: Pasientinfo Autorisasjon feilet 6: 5 Feilmelding (Ingen aksess) INF1050 ->Systemutvikling-> Fra krav til modellering 14

Sekvensdiagram for overfør pasientdata : Medisinsk saksbehandler P : Pasientinfo D : MHCPMS-DB A : Autorisasjon : Pasientdatabasesystem Logg inn() ok Alt OppdaterInfo() Oppdater Pasientdatabase(UID) Autoriser(TF, UID) Autorisasjon Oppdater(PID) Oppdater OK Melding (OK) Oppdater Sammendrag Sammendrag (UID) Autoriser(TF, UID) Autorisasjon Create S : Sammendrag Oppdater(PID) Oppdater OK Melding (OK) Logg ut() INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 15

E-resept: Lege (rekvirent)sender individuell søknad om refusjon til HELFO Merk: Her er dialogen mellom pasient og lege (rekvirent) også med som meldinger selv om dette ikke er metodekall INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 16

E-resept: Beskrivelse av at rekvirent sender individuell søknad om refusjon til HELFO 1. I dialog mellom pasient og lege (rekvirent) avklares at det er behov for å sende individuell søknad om refusjon 2. Rekvirent spør om en søknad skal sendes på vegne av pasienten. 3. Pasienten gir samtykke knyttet til at legen sender søknad til HELFO på vegne av pasienten og at rekvirent eventuelt får kopi av vedtaksbrev (avhengig av pasientens samtykke) 4. Rekvirent registrerer søknad om refusjon i EPJsystemet (rekvirent vil ofte lage en reseptkladd i samme prosess, slik at både resept og søknad sendes). 5. Rekvirent verifiserer og signerer søknaden..etc. INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 17

Strukturelle modeller Strukturelle modeller av et programvaresystem viser organiseringen av systemet ved å vise systemets komponenter og relasjonen mellom komponentene Klassediagrammer brukes til å definere den statiske strukturen av klasser og deres assosiasjoner INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 18

Klassediagrammer Klassediagrammer blir brukt i utviklingen av systemmodeller for å vise klasser i systemet og assosiasjoner mellom disse klassene En klasse kan bli sett på som en generell definisjon (mønster) av objekter som er instanser av klassen En assosiasjon mellom to klasser angir at det er en forbindelse mellom disse klassene Ved utvikling av modeller i den tidlige fasen av systemutviklingsprosessen, vil objekter som regel representere (være en modell av) noe i den virkelige verden, som en pasient, en doktor, en bil eller en bankkonto. INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 19

Eksempel (også brukt i INF1010) class Bank I en bank skal vi kunne legge inn en ny kunde, fjerne en kunde, sette inn penger på en kundes konto og finne forvaltningskapitalen til banken (summen av alle beløpene på alle kontoene) class BankData Alle kontoene blir administrert av klassen BankData class Konto Attributter (data) og metoder for en konto INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 20

UML klassediagram Bank Bankdata 1 1 1 Konto 0..* INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 21

Java datastruktur Bank-objekt BankData-objekt Mange Konto-objekter INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 22

Klasser og assosiasjoner i MHC-PMS Spesialist Tilstand 1 +Henvist til 1..* +Diagnostisert til Pasient +Henvist fra Fastlege 1..* 1..* 1..* 1 1..* +Deltar i 1..* Konsultasjon 1..* 1..* +Bruker 1..* 1..* Klinikklege +Foreskriver Medisinering 1..* +Foreskriver 1..* Behandling INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 23

Klassen konsultasjon med flere detaljer INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 24

Generalisering Generalisering er en teknikk vi benytter oss av for å håndtere kompleksitet I stedet for å lære alle detaljene til hvert eneste objekt plasserer vi objektene i mer generelle klasser (person, dyr, bil, hus etc.) og fokuserer på hva som er karakteristisk ved disse klassene Dette gir oss muligheten til å se at ulike objekter har felles karakteristikker, for eksempel at både pasient og lege er personer INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 25

Generalisering Det er ofte nyttig å undersøke klassene i et system for å se om det er mulighet for generalisering I objektorienterte språk, som Java, er generalisering en del av språket gjennom såkalt arvemekanisme ( inheritance ) Attributter og operasjoner (metoder) som er assosiert med superklasser er også assosiert med subklasser gjennom arv. Subklassene vil så legge til mer spesifikke attributter og operasjoner INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 26

Eksempel - generalisering Lege Klinikklege Fastlege Spesialist Teamlege Legepraktikant Kvalifisert lege INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 27

Adferdsmodeller ( behavioral models) En adferdsmodell er en modell av dynamikken i et system ved kjøring av systemet. Modellen viser hva som skjer ved respons på stimuli. To typer stimuli Data. Systemet fanger opp data som må prosesseres Hendelser. En hendelse som trigger systemet og fører til prosessering. En hendelse har ofte assosierte data i tillegg, men ikke nødvendigvis INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 28

Datadrevet modellering Mange forretningssystemer er primært drevet av data. Systemene blir kontrollert av input av data, med få eksterne hendelser Datadrevne modeller viser sekvensen av handlinger som er involvert i prosesseringen av inputdata og generering av outputdata Modellene er spesielt nyttige under kravspesifikasjonsfasen og brukes til å vise end-toend prosessering av systemet INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 29

Aktivitetsdiagram ordreprosessering INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 30

Ordreprosessering som sekvensdiagram : Innkjøpsansvarlig O : Ordre V : Varelager OR : Ordreregister : Leverandør fyllinnordre() validerordre () Oppdater(mengde) Lagre() Send() INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 31

Hendelsesdrevet ( Event-driven ) modellering Mange systemer er drevet av hendelser, med minimal data prosessering Modellene viser hvordan et system reagerer på eksterne og interne hendelser Baseres på antagelsen av at systemet har et endelig antall tilstander og at hendelser (stimuli) fører til at systemet går fra en tilstand til en annen INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 32

Tilstandsdiagram for mikrobølgeovn Full kraft do/ Sett kraft=600 Venter Full kraft Tidsangiver Sett tid Tall Operasjon av mikrobølgeovn do/ Vis tid Halv kraft Full kraft do/ Hent tall exit/ Sett tid Avbryt Halv kraft Tidsangiver Dør lukket Aktivert Venter Halv kraft do/ Sett kraft=300 do/ Vis "Klar" Dør åpen Dør lukket Dør åpen do/ Vis tid Deaktivert do/ Vis "Venter" INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 33

Tilstandsdiagram for virkning av ovn Operasjon av mikrobølgeovn Sjekk do/ Sjekk status OK Varm opp do/ Kjør mikrobølgegenerat... Feil på dreieskive Stråle/elektrode feil Timeout Alarm Ferdig do/ Vis feilmelding/hendels... do/ Signal gis i 5 sek INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 34

Tilstander og stimuli for mikrobølgeovn Stimuli Beskrivelse Halv kraft (300 W) Brukeren har trykket halv kraft knappen Full kraft (600 W) Tidsinnstilling Tall Åpen dør Dør lukket Start Kanseller Brukeren har trykket full kraft knappen Brukeren har trykket en av de forhåndsgitte tidsinnstillingene Brukeren har trykket et tall på tastaturet Døra er ikke lukket Døra er lukket Brukeren har trykket startknappen Brukeren har trykket kanseller knappen INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 35

Modelldrevet systemutvikling I modelldrevet utvikling (model-driven engineering - MDE) er det modellene i seg selv som er målet og output fra utviklingsprosessen Kode og programmer blir generert automatisk fra modellene Tilhengere av MDE hevder at dette gjør at ingeniører og utviklere ikke trenger å kunne detaljer innen programmering, plattformer etc. INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 36

Bruk av modell-drevet utvikling Fordeler Høyere abstraksjonsnivå Automatisk kodegenerering gjør det enklere og rimeligere å tilpasse systemer til nye plattformer INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 37

Bruk av modell-drevet utvikling Ulemper Abstraksjonsmodeller er ikke nødvendigvis det riktige for implementering Mange hevder koden er lite effektiv og endringer i koden er nødvendig Vanskelig å holde modellen oppdatert ved endringer og feilretting INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 38

Executable UML Den fundamentale ideen bak modell-drevet systemutvikling er at det er mulig med en komplett automatisk transformasjon fra modell til kode. Dette er mulig innefor UML 2, og kalles Executable UML eller xuml En domenemodell identifiserer de overordnede prinsippene, Domenemodellen bruker UML klassediagram og inkluderer objekter, attributter og assosiasjoner. Klassemodeller, der klasser defineres sammen med attributter og metoder (operations i UML) Tilstandsmodeller hvor et tilstandsdiagram assosieres med hver klasse og brukes til å beskrive livssyklusen til klassen INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 39

Smidige metoder og modell-drevet utvikling Mange brukere av modell-drevet utvikling hevder at metoden understøtter en iterativ tilnærming og derfor passer godt innen smidig metodikk Svært omfattende modellering tidlig i prosessen er i motsetning til idealene til agile manifesto, og det er få utviklere innen smidig metodikk som føler seg komfortabel med modell-drevet utvikling INF1050 -> Systemutvikling -> Fra krav til modellering av objekter 40