Krav analyse og objektorientert



Like dokumenter
Kravanalyse og objekt-orientert analyse

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

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

Use case drevet design med UML. I dag

Use case drevet design med UML

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

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

UML 1. Use case drevet analyse og design Kirsten Ribu

Kravspesifikasjon med UML use case modellering. Erik Arisholm

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

Use case modellering

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

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

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

Kravspesifikasjon med. Erik Arisholm

Use Case-modellering. INF1050: Gjennomgang, uke 04

UML-Unified Modeling Language

UKE 11 UML modellering og use case. Gruppetime INF1055

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

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

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

case forts. Alternativ 1 Alternativer Sammensetning Objekt-interaktor med valg

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

IN2001: Kravhåndtering, modellering, design

Unit Relational Algebra 1 1. Relational Algebra 1. Unit 3.3

The regulation requires that everyone at NTNU shall have fire drills and fire prevention courses.

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

Tom Røise 18. Februar 2009

Spesifikasjon av Lag emne

Løsningsforslag til Case. (Analysen)

Mer$om$objektorientering$og$UML

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

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Fra krav til objektdesign

Referansearkitektur use cases. Kjell Sand SINTEF Energi AS NTNU Institutt for elkraftteknikk

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

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

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

Dagens tema: Eksempel Klisjéer (mønstre) Tommelfingerregler

Emneevaluering GEOV272 V17

UNIVERSITETET I OSLO

INFO TAXI REMOTE. Taxi Management CONTROL SYSTEM (TMCS)

Administrasjon av postnummersystemet i Norge Post code administration in Norway. Frode Wold, Norway Post Nordic Address Forum, Iceland 5-6.

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

Prosjektrettet systemarbeid

Slope-Intercept Formula

Produktrapport Gruppe 9

HONSEL process monitoring

Information search for the research protocol in IIC/IID

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

Hvordan føre reiseregninger i Unit4 Business World Forfatter:

Den som gjør godt, er av Gud (Multilingual Edition)

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

Forelesning IMT mars 2011

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

Gaute Langeland September 2016

Case 9:12-cv DMM Document 4-5 Entered on FLSD Docket 12/06/2012 Page 1 of 62

Tom Røise 9. Februar 2010

EMPIC MEDICAL. Etterutdanningskurs flyleger 21. april Lars (Lasse) Holm Prosjektleder Telefon: E-post:

STILLAS - STANDARD FORSLAG FRA SEF TIL NY STILLAS - STANDARD

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

Obligatorisk oppgave 5: Modellering av krav

Elektronisk innlevering/electronic solution for submission:

Oppgave 1a Definer følgende begreper: Nøkkel, supernøkkel og funksjonell avhengighet.

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

Ph.d-utdanningen. Harmonisering av krav i Norden

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

Brukerkrav og use case diagrammer og -tekst 19. januar Agenda. Brukerkrav og use case. Diagrammer Tekst.

Beskjed fra Skagestein

Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

Tilkoblingsskinner. For kontaktorer og effektbrytere

Web Accessibility Toolbar. Struktur. Funksjonene. Headinger. Mer om tilgjengelighet og Flash.

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

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

1 User guide for the uioletter package

Innholdsfortegnelse... 1 Endringslogg UD BETALINGSTERMINAL NETS NEW DRIVERS FULL SUPPORT WINDOWS

Utvikling fra skallet og inn

NOVAPOINT BRUKERMØTE 2016 BERGEN, mai

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

case forts. Generell interaktor Integer- interaktor Domenemodell Eksemplifisering av modellbasert tilnærming til design av brukergrensesnitt

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

Prosjektet Digital kontaktinformasjon og fullmakter for virksomheter Digital contact information and mandates for entities

Utstyr for avstandsmåling. Dommersamling 14. mars 2015 Stein Jodal

Objektorientering og UML. INF1050: Gjennomgang, uke 06


Trigonometric Substitution

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

API: Application programming interface, eller programmeringsgrensesnitt

6350 Månedstabell / Month table Klasse / Class 1 Tax deduction table (tax to be withheld) 2012

Conference Centre Portal (CCP)

Hvordan komme i gang med ArchiMate? Det første modelleringsspråket som gjør TOGAF Praktisk

Prosessmodellering. Strukturert design med dataflytdiagrammer (DFD) Gurholt & Hasle Kapittel 10. Kirsten Ribu Høgskolen i Oslo

Presentasjon 1, Requirement engineering process

Citation and reference tools for your master thesis

JBV DSB godkjenninger

Smart High-Side Power Switch BTS730

Citation and reference tools for your master thesis

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

MID-TERM EXAM TDT4258 MICROCONTROLLER SYSTEM DESIGN. Wednesday 3 th Mars Time:

Endelig ikke-røyker for Kvinner! (Norwegian Edition)

Transkript:

Krav analyse og objektorientert analyse Bente Anda 22.09.2005 1 Overblikk 22/9 + 26/9 Kravanalyse med use case og system sekvens diagrammer Objekt-orientert analyse med domene modell Objekt-orientert design med sekvensog klassediagrammer Fokus på prinsipper, ikke syntaks 22.09.05 INF3120 2 1

Use case modellering Use case modellen beskriver kravene til systemet, beskriver systemet sett fra kundens/brukerens perspektiv, beskriver hva som skjer, ikke hvordan det skjer og har blitt en de facto standard for håndtering av krav i systemutviklingsprosjekter. Kostnader ved feilhåndtering av krav er høye Det er viktig med en god metode for å analysere krav. 22.09.05 INF3120 3 Stegene i use case modellering 1. Identifiser primære aktører, dvs. brukere, hardware komponenter eller andre (del)systemer som har mål de skal ha oppfylt ved bruk av dette systemet. 2. Identifiser use case fra aktørenes mål. 3. Identifiser sekundære aktører, dvs. aktører som ikke har egne mål, men som er nødvendige for å gjennomføre use casene. 4. Tegn use case diagram. Dette gir et overblikk over aktører og use cases og dermed over funksjonaliteten til systemet. 5. Lag tekstlige beskrivelser av use casene. Disse viser hvordan aktører når mål ved bruk av systemet. 22.09.05 INF3120 4 2

Use case modellen Hvert use case steg beskriver en enkelthandling mellom bruker og systemet En operasjon er et eller flere steg som må utføres samlet Et komplett use case består av flere ulike hendelsesforløp (flyt, scenarier) Use case modellen benyttes videre i prosjektplanlegging, objekt-orientert analyse og design og i testing. 22.09.05 INF3120 5 Restaurantsystem The system shall support the processes of making reservations and allocating tables to customers, and it shall replace a manual system. Customers contact the restaurant to make or cancel advance bookings, and a receptionist receives these calls. Bookings are entered for a particular table together with the number of covers. The restaurant runs three sittings in an evening: Pre-theatre, Dinner and Supper, but bookings can be made for time periods that span more than one sitting. A contact name and phone number is recorded for each booking. When a party arrives, it is seated at its table by the head waiter. The corresponding booking is crossed out. If the party is seated at a table other than the one booked, an arrow is drawn from the original booking to the new table. Customers may, cancel bookings in advance. The time by which a table must be vacated can also be recorded. It is, of course, possible to eat without making an advance booking if a free table is available. This is recorded as a table occupancy, but no record of name or telephone number is made. When new bookings are recorded, or changes are made to existing bookings, the display should be immediately updated, so that the staff is always working with the latest information available. 22.09.05 INF3120 6 3

Oppgave 1 Finn aktører for systemet 22.09.05 INF3120 7 Oppgave 2 Finn aktører for dette systemet: A fire detection system monitors a series of fire detection sensors for signs of fire, and when one is detected it rings an alarm, sets off a set of sprinklers, and notifies the local fire department. 22.09.05 INF3120 8 4

Identifisere use case Identifiser de use casene som oppfyller målene til de primære aktørene Et use case - One person - one place - one time Et use case inneholder mange steg 22.09.05 INF3120 9 Oppgave 3 Finn use casene til restaurantsystemet 22.09.05 INF3120 10 5

Et eksempel til: A telephone system shall allow callers to place local calls and long-distance calls. For long-distance calls the system shall always select the cheapest routing. The system shall provide continuously up-todate call history for all accounts to its customers, as well as billing information to a separate billing system. 22.09.05 INF3120 11 Telefonsystemet Place local call Caller Place long-distance call Callee Retrieve customer billing information Billing system Get call history Customer 22.09.05 INF3120 12 6

Detaljering i iterasjoner 1. En høy nivå use case modell består av diagram og en kort beskrivelse av alle use case 2. En uformell modell har main success scenarier på de viktigste use case 3. Variasjoner og feilsituasjoner finnes ved hjelp av brainstorming 4. Use casene detaljeres ut til alle er komplette (fully dressed). Det er ofte ikke nødvendig å detaljere ut til alle use casene er komplette. 22.09.05 INF3120 13 Hvordan skrive detaljerte use case Beskriv hva som gjøres, ikke hvordan det gjøres Skriv hendelsesflyten som en nummerert liste på formen 1. <Head waiter> <enters> <the current date> 2.<System><displays><bookings for that date> Finn riktig detaljeringsnivå Beskriv kun 1 hendelse per steg Vanligvis beskrives ikke detaljer om brukergrensesnitt. Vanligvis benyttes essensielle use case ref. Larman Eksempel: Ikke Aktør trykker på Send -knappen 22.09.05 INF3120 14 7

Main success scenario for Record booking 1. The receptionist enters a date 2. The system displays the bookings for that date 3. The receptionist enters the customer name and phone number, the time of the booking, the number of covers and the table reserved 4. The system records and displays the new booking 22.09.05 INF3120 15 Use case på 3 nivåer 1. Business use case Eks. Et system for markedsførings-kampanjer kan ha 3 business use case: Registrer kunde, Gjennomfør kampanje for kunde og Fakturer kunde 2. User level use case Use case som tilfredsstiller mål for kunder 3. Subfunksjon use case Forenkler use case ved å beskrive funksjoner som egne use case, for eksempel Logg inn, Registrer kundes adresse 22.09.05 INF3120 16 8

Use case relasjoner Use case modellen utvides gjennom flere iterasjoner med mer funksjonalitet, variasjoner og feilsituasjoner. Include-relasjonen: Et use case kan være en del av ett flere andre use case. Extend-relasjonen: Et use case som beskriver tilleggsoppførsel som utføres under gitte omstendigheter 22.09.05 INF3120 17 Include relasjonen To eller flere use cases kan ha en felles del. Denne delen kan da legges ut i et eget use case som disse use casene kan inkludere. Include kan også brukes for å forenkle store use case med mange steg Include kan videre brukes for å håndtere hendelser som kan forekomme når som helst i utførelsen av use caset Basis use caset vet hvilke use case det inkluderer Include lar oss abstrahere ut felles oppførsel og forenkler den overordnede strukturen, men skaper avhengigheter mellom use casene. 22.09.05 INF3120 18 9

Extends relasjonen Alternativ oppførsel som utgår fra extension points i use caset kan enten skrives som eget use case, eller som en variasjon. Hvert use case steg er et potensielt extension point. Variasjoner beskriver hva som skjer ved avvik i normal flyt. Extends use case beskriver hvordan tilfredsstille tilleggsmål. Basis use caset er fullstendig definert uten extensions, disse utvider funksjonaliteten. Basis use caset kjenner sine extended use case 22.09.05 INF3120 19 Oppgave 4 Hvordan kan use casene til restaurantsystemet struktureres v.h.a. include og extends? 22.09.05 INF3120 20 10

Oppgave 5 Lag komplette beskrivelse av Record arrival og Table transfer 22.09.05 INF3120 21 Hvorfor use case modellering? De funksjonelle kravene, dvs. hva systemet skal gjøre, må beskrives Metoden oppmuntrer til å stille riktige spørsmål til riktig tid Metoden er systematisk Utviklere og kunder kan sjekke at use case modellen inneholder det som er nødvendig Det er enkelt å navigere i modellen Får raskt overblikk over funksjonaliteten Kan studere detaljer når det er nødvendig 22.09.05 INF3120 22 11

Utfordringer Kravene blir til mens de beskrives Kravene til systemet endres underveis Use case modellen må oppdateres Kravene kan bli beskrevet med ujevn detaljeringsgrad. Dette motvirkes ved å detaljere ut i iterasjoner. 22.09.05 INF3120 23 Posisjonering Teknikken forutsetter en visjon av systemet som skal lages. Størrelsen og kompleksiteten til systemet som skal lages avgjør hva som må foreligge før use case modellen kan utformes. Beskrivelse av forretningsprosesser som skal støttes Beskrivelse av systemets kontekst Use case modellen brukes videre i utviklingsprosessen. Planlegging og estimering Design Testing 22.09.05 INF3120 24 12

Use cases i prosjektplanlegging Følgende brukes for å planlegge hvilke use case som skal realiseres i hvilke iterasjoner: Realiser use casene i henhold til hvor viktige de er og/eller hvor vanskelige de antas å være å implementere. Normal hendelsesflyt realiseres først, deretter variasjonene. Estimerer hvor mange use case (eller hendelsesflyt og variasjoner) som kan realiseres i en iterasjon. 22.09.05 INF3120 25 Domenemodell Domenemodellen brukes i objekt-orientert analyse Domenemodellen viser konsepter i applikasjonsdomenet, konseptuelle klasser, og forholdet mellom dem: ideer, ting, objekter. Hensikten med domenemodellen er å forstå konseptene og få en oversikt over terminologi. 22.09.05 INF3120 26 13

Domenemodell forts. Domenemodellen beskrives med UML klassediagrammer uten metoder, og utarbeides gjennom flere iterasjoner. Use case modell og domenemodell utformes parallelt. Domenemodellen fanger opp informasjonen om entiteter som er beskrevet i use casene. Use casene presiseres ved utforming av domenemodellen. Domenemodellen er et viktig verktøy for å sjekke at use casene er beskrevet med riktig detaljeringsnivå. Det er bedre å spesifisere for mange konseptuelle klasser enn for få. 22.09.05 INF3120 27 Hvordan finne domeneklasser? Lag en liste over kandidater til klasser: 2 forskjellige tilnærminger: Lag en liste over kandidater til domeneklasser (for eksempel basert på liste s.140-141) Finn substantiver og substantivutrykk i use case beskrivelsene Ta bort unødvendige klasser Noen klasser kan vise seg å være attributter. 22.09.05 INF3120 28 14

Assosiasjoner En assosiasjon er en relasjon mellom to klasser som viser at det er en sammenheng mellom dem. En assosiasjon kan ha et navn Brukes i domenemodellen hvis informasjon om relasjonen skal lagres. Hver ende av assosiasjonen kalles en rolle, en rolle kan ha: Multiplisitet Navn Navigasjon 22.09.05 INF3120 29 Eksempel Assosiasjonsnavn Spørreskjema 1 Består av 1 * Spørsmål Assosiasjonen går i begge retninger. Liste over mulige assosiasjoner på s. 155 22.09.05 INF3120 30 15

Attributter Inkluder de attributter som det må lagres informasjon om i følge use casene Attributter er vanligvis datatyper, f.eks int, Boolean, string, dato Modeller konsepter som klasser, ikke attributter. Hvis det er tvil, lag en klasse 22.09.05 INF3120 31 Oppgave 6 Lag en domenemodell for restaurantsystemet 22.09.05 INF3120 32 16