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

Like dokumenter
Ulike typer prosessmodeller. Systemutvikling. Utviklingsmodeller. Prosessmodell - faser

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

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

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

UML-Unified Modeling Language

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

Validering og verifisering. Kirsten Ribu

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

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?

Use case drevet design med UML

UML 1. Use case drevet analyse og design Kirsten Ribu

Systemutviklingsmetoder

Kirsten Ribu

Estimeringsmetoder. I dag. Kostnadsestimering. Kostnader og prisfastsettelse. Ulike estimeringsmetoder. Måling av programvare. Estimeringsteknikker

Estimeringsmetoder. Kirsten Ribu. HiO - Kirsten Ribu

UNIVERSITETET I OSLO

GJENNOMGANG UKESOPPGAVER 7 REPETISJON

Prosjektet - leveranser. Testing og evaluering av systemer. Hva er sikkerhetskritiske systemer? I dag: Systemfeil og testing. Robust kraftforsyning?

Kirsten Ribu

Livsløpstesting av IT-systemer

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

UKE 11 UML modellering og use case. Gruppetime INF1055

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

UNIVERSITETET I OSLO

Kravspesifikasjon med UML use case modellering. Erik Arisholm

IN2001: Kravhåndtering, modellering, design

Inception Elaboration Construction Transition Bemanning 1 1,5 2 2 Varighet i uker Antall iterasjoner (lengde i uker i parentes) Tabell 1

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

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

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

Use Case-modellering. INF1050: Gjennomgang, uke 04

Use case drevet design med UML. I dag

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

Oppsummering : IMT2243 Systemutvikling. Hensikt med kurset. Innfallsvinkel : Tom Røise IMT2243 : Systemutvikling 1

Mer om objektorientering og UML

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

Kravspesifikasjon med. Erik Arisholm

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

I dag Prosjektstyring og prosjektgjennomføring

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

Estimeringsmetoder. I dag. Estimering = måling. Kostnader og prisfastsettelse

Statisk testing. Testing uten datamaskin, men med vår egen evne til å vurdere og analysere

t Institutt for informatikk Erik Arisholm 13. mai 2009 INF1050-oppsummering-1

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

Kap. 2 Prosessen. Utviklingsmodeller -2. Utviklingsmodeller. Utviklingsmodeller -4. Utviklingsmodeller - 3. Software Engineering - definisjoner

Spesifikasjon av Lag emne

TESTRAPPORT Tittel på hovedprosjektet: Varebestillingssystem for Wokas Salg AS

I dag. Prosjektstyring og prosjektgjennomføring. Hva er et prosjekt? Oppdeling i. Planlegging. arbeidsoppgaver. Hva er en prosess? En prosessmodell?

GJENNOMGANG UKESOPPGAVER 9 TESTING

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Systemutviklingsprosesser Forelesning 2 - INF1050 Systemutvikling

Fra krav til objektdesign

Prosjektstyring og prosjektgjennomføring

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

Ansvarsdrevet OO: CRC og UML Sekvensdiagrammer

Kravspesifiseringsprosessen

EKSAMEN 05HBINDA, 05HBINFA, 05HBISA, 05HBMETEA, 06HBINFA. Tom Røise. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

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

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

Måling Hvordan ta beslutninger Estimeringsteknikker

GJENNOMGANG UKESOPPGAVER 2 PROSESSMODELLER OG SMIDIG PROGRAMVAREUTVIKLIG

Innhold. Innledning Del 1 En vei mot målet

1. Leksjon 01: Introduksjon til faget Prosjektrettet systemarbeid

Verifikasjon og validering

Produktrapport Gruppe 9

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

INF våren Fra problem til program. Utvikling av store datasystemer. Eksempel: Lage en nytt hus. Oversikt:

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

Brukersentert design Kapittel 3 i Shneiderman

Mer$om$objektorientering$og$UML

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

Kravhåndtering. INF1050: Gjennomgang, uke 03

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

Forside Eksamen INF1055 V17

Fra problem til program. Stein Gjessing Inst. for informatikk

Eksamen 2013 Løsningsforslag

UNIVERSITETET I OSLO

Inf1055 Modul B 26 april 2017:

DRI2001 Offentlige nettsteder. Litt om systemutvikling Torsdag 24 aug Arild Jansen, AFIN, UiO

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

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

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

Systemutvikling (Software Engineering) Professor Alf Inge Wang

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

Løsningsforslag til Case. (Analysen)

DRI2001 h04 - Forelesning Systemutvikling og nettsteder

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

Vakt og lønnssystem - Rema 1000

Oppgave 1: Multiple choice (20 %)

UKE 9 Prosesser og prosessmodeller inkludert smidige metoder. Gruppetime INF1055

Objektorientering og UML. INF1050: Gjennomgang, uke 06

Prøveeksamen INF1050: Gjennomgang, uke 15

Kravanalyse og objekt-orientert analyse

Design Patterns - mønstre

Tom Røise 18. Februar 2009

Forprosjektrapport for Agresso R&D Ansettelsessystem Hovedprosjekt våren Skrevet av:

1. Mer om iterative utviklingsprosesser

S Y S T E M U T V I K L I N G ( L O A )

Transkript:

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

Ulike typer prosessmodeller De røde er viktige i kurset: Evolusjonær (prototyping) Inkrementell (RUP) XP fossefall gjenbruksbasert spiral-modellen 2

Prosessmodell - faser Forstudium/ Feasability study (Hvilke muligheter har vi?) Kravspesifikasjon (Hva skal systemet gjøre?) Design (Hvordan skal systemet lages?) Programmering (Lage systemet) V&V (Validering og verifikasjon) / Testing Har vi bygd riktig system/produkt? (validering) Har vi bygd systemet/produktet riktig? (verifikasjon) Videreutvikling/Vedlikehold/Endring 3

Utviklingsmodeller En modell er en oversikt over utviklingsarbeidet Modellen beskriver hvilket arbeid som skal gjøres hvordan arbeidet skal inndeles i faser og aktiviteter og arbeidstrinn Det finnes mange forskjellige utviklingsmodeller Valg av modell er avhengig av: hvor store deler av systemutviklingsarbeidet modellen omfatter hvordan faser og aktiviteter er delt inn hvor fleksibel modellen er hvordan ansvaret og organiseringen skal gjøres 4

Oversikt over aktiviteter 5

Inkrementell utvikling 6

Inkrementell utvikling - fordeler Viktig funksjonalitet kan leveres tidlig Tidlige inkrementer kan være prototyper som avdekker krav for senere inkrementer Mindre risko for at prosjektet skal feile og ingenting leveres Funksjonalitet med høyest prioritet blir testet best. 7

Fossefallmodellen Requirements definition System and software design Implementation and unit testing Integration and system testing Operation and maintenance Lite fleksibel inndeling i fastlagte steg Vanskelig å etterkomme kundens skiftende krav Modellen er bare anvendelig dersom kravene er tydelige og godt dokumenterte, og lette å forstå. 8

Evolusjonær utvikling Explorativ (utforskende) utvikling Arbeidet foregår sammen med kunden med å utvikle et ferdig produkt utfra et utkast til kravspesifikasjon Må starte med veldefinerte krav Prototyping Målet er å forstå systemkravene. Brukes når kravene er uklare, (for å tydeliggjøre kravene) Anvendbarhet: For små eller mellomstore systemer For deler av større systemer (f.eks brukergrensesnittet) For systemer med kort levetid. 9

Evolusjonær prototyping : fordeler og ulemper Fordeler: Raskere leveranse av systemet Brukerengasjement under utviklingen av systemet Systemet oppfyller brukerkravene, og brukerne blir mer dedikerte (føler eierskap til systemet) Ulemper Ofte dårlig strukturerte systemer Dårlig dokumentasjon 10

Extreme programming - XP En ny tilnærming til utvikling basert på utvikling og leveranse av svært små inkrementer (deler) Rask og kontinuerlig koding Brukermedvirkning i utviklingsteamet Parprogrammering Anvendbarhet: For mindre systemer 11

Best practises ved programvareutvikling Iterativ utvikling Håndtering av krav Bruk av komponentbasert arkitektur Visuell modellering Kontinuerlig verifisering av programvarekvaliteten Kontrollerte endringer i programvaren 12

The Rational Unified Process Prosessmodell som kombinerer best practises i software utvikling: Iterativ livssyklus Risikodrevet utvikling UP består av 4 faser: Inception gjennoførbarhetsanalyser, tidlige estimater Elaboration iterativ implementering av basisarkitektur, løsning av høyrisiko faktorer, identifikasjon av mesteparten av kravene Construction iterativ implementering av lavrisiko-elementer og forberedelser til innføring av systemet Transition beta-test og innføring 13

Oversikt over prosessen. Inception Elaboration Construction Transition Idefase Utdypning Konstruksjon Overgang Idefasen: Krav, omfang, lønnsomhet Utdypning: planlegging, krav, arkitektur, risiko, prototyping Konstruksjon: konstruksjon, implementering, testing Overgangsfasen: kvalitetskontroll, brukeropplæring 14

Grunnleggende UML Use case modellen Beskriver kravene til systemet Beskriver systemet sett fra kundens perspektiv Beskriver hva som skjer, ikke hvordan det skjer Use case er ikke objekt-orienterte, men beskrivelser av hendelsesforløp 15

Pre- og postbetingelser, triggere Prebetingelse: Må være sant før use caset starter (testbart). F.eks: Bruker er logget inn, bruker er registrert i systemet Postbetingelse: Testbar tilstand når use caset er ferdig. F.eks: Bruker har mottatt en e-post, eller Skjema er opprettet. Trigger: En hendelse som setter i gang use caset. F.eks: Kunde ønsker å bestille time 16

Use case modellering Use case modellen består av diagram og tekstlige beskrivelser som viser stegene i use caset Hvert use case steg beskriver en enkelthandling (transaksjon) mellom bruker og systemet Et komplett use case består av flere ulike hendelsesforløp (flyt, scenarier) 17

Detaljering i iterasjoner En overordnet use case modell består av diagram og en kort beskrivelse av alle use case En uformell modell har main success scenarier på de viktigste use case Variasjoner og feilsituasjoner (alternativ oppførsel) finnes ved hjelp av brainstorming Use casene detaljeres ut i flere iterasjoner til alle er komplette 18

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 som sendes mellom objektene kan brukes til å identifisere metodene til objektene i systemet 19

Domenemodell Domenemodellen tilhører analysefasen og er en representasjon av objekter i domenet. Domeneklassene gjenspeiler objekter i den virkelige verden, ikke systemkomponenter Lages i parallell med use case modellen Typisk informasjon om objektene: Assosiasjoner Attributter Multiplisitet 20

Designmodell - Design En designmodell viser systemklasser, ikke konseptuelle klasser som i domenemodellen Typisk informasjon er: Klasser, assosiasjoner, attributter, multiplisitet Grensesnitt Metoder Avhengigheter 21

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 22

Ikke-funksjonelle krav Eksempler på ikke-funksjonelle krav er krav til sikkerhet, ytelse, responstid, kostnader detaljer rundt hvilke hardware eller software komponenter som skal brukes Ikke-funksjonelle krav som gjelder et spesielt use case kan skrives i det use caset Ikke-funksjonelle krav som gjelder flere use case eller hele systemet beskrives i et eget dokument. 23

Objektdesign GRASP mønstre: Patterns of General Principles in Assigning Responsibilites: 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 ) 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 24

Kostnadsestimering Ingen enkel oppgave: Tidlige estimater baserer seg på ufulstendig informasjon i kravspesifikasjonen Man må kanskje benytte ny teknologi Det kan være ukjente folk i prosjektteamet Estimater kan være selvoppfyllende profetier: Estimatet bestemmer budsjettet produktet justeres for å holde budsjettet 25

Bottom-up vs. Top-down Bottom-up estimering begynner med komponentene på laveste nivå, og det lages et estimat for hver del. Bottom-up tilnærmingen setter sammen estimering av enkelttdeler til høynivå estimater. Top-down estimering begynner med det overordnede produkt Estimater for enkeltdelene regnes ut som deler (prosenter) av estimatet for hele systemet. 26

Prosentvis bottom-up estimering basert på empiri Prosjektledelse 20% Analyse: 15% Design: 20% Koding: 25% Testing 15% Systemintegrasjon 5% Totalt 100% 27

Hva er et brukergrensesnitt? Alle produkter har et brukergrensesnitt Eks: Pantemaskinen i butikken: Lys lyd, bevegelse Bil: menneske/maskin grensesnittet PC: Mer enn skjermbildet: mus, tastatur, og skjerm med diverse knapper for lys og lydkontroll 28

Brukerens rolle Utfordringer: å kjenne brukeren og dennes oppførsel Brukermedvirkning er viktig! I alle systemer er det brukeren som avgjør hvorvidt et system er en suksess eller ikke. God ide å bruke prototyping ved utforming av skjermbilder 29

Validering og verifikasjon hvorfor? Å sørge for at et datasystem tilfredsstiller brukerens behov For å kunne vurdere hva vi gjør og hvorfor vi gjør det Behov for verifikasjon øker med størrelsen på systemet Ca 1/3 av utviklingstiden brukes å testing, noen ganger opp til 50% Systemutvikling er en industriell prosess! 30

V&V: Validering: Bygger vi det riktige systemet? Snakke med brukerne Bruke use case modellen Verifikasjon: Bygger vi systemet riktig? Manuelle inspeksjonsmetoder Automatisert testing 31

Inspeksjon Dokumentgjennomgang Gjennomgang av dokumenter med formål å finne feil og mangler Hvem bør gjennomgå dokumentet? De som skal ha systemet De som skal bruke dokumentet De som har vært delaktige i utformingen av dokumentet Eksperter (rollen / forretningsområdet) Gjennomgang av kildekoden for å finne feil og mangler Funksjonelle feil (avvik fra design og kravspesifikasjon) Avvik fra kodestandard og retningslinjer (for eksempel navngiving av klasser) Tekniske feil Testbarhet (for eksempel dokumentasjonsmangler, muligheten for isolasjon, etc) 32

Typer testing Enhetstest Tester at komponenten (klassen) virker isolert Integrasjonstest Tester at komponenten (klassen) virker sammen med andre komponenter Betatest Utvalgte kunder tar i bruk systemet før offisiell lansering Akseptansetest Tester at systemet lar brukerne gjøre det de trenger Tester med reelle data Utføres gjerne i samarbeid mellom kunder og testere Systemtest Tester at systemet oppfører seg korrekt i samspill med omgivelsene 33

Type testing forts. Ytelsestest (tester ytelse = hastigheten på én transaksjon) Stresstest (overbelastningstest) (tester skalerbarhet = hastigheten på mange samtidige transaksjoner) Recoverability-test (tester systemets håndtering av uforutsette avbrudd) 34

Black- og white-box testing Komponent Inndata Utdata Black box: Gir input forventet output? Komponent Inndata Xxxxx xxxxx Utdata White box: Følger hvert trinn i komponenten. Midlertidige utskrifter. 35

Testing med use case ne Bruk use case beskrivelsene som test cases. Viktig: At use casene oppdateres ved alle endringer Test pre- og postbetingelsene Test at all beskrevet funksjonalitet er på plass ved gå gjennom hvert use case Test alle feilsituasjoner og alternativ oppførsel 36

Hva er konfigurasjonsstyring Konfigurasjonsstyring disiplin for å håndtere endringer og ulike versjoner av komponenter Konfigurasjonsstyringsverktøy støtter håndtering av versjoner av komponentene og i å konfigurere (sette sammen) et system Hvordan håndtere versjoner og releaser? Hvordan håndtere endringer? Merk: Nye versjoner av et programsystem lages etter hvert som det endres Konfigurasjonsstyring støtter evolusjon av systemer på en kontrollert måte Helt avgjørende i nærmest all industriell programvareutvikling Likevel finnes nesten ingen kompetanse om dette hos nyutdannete kandidater fra universitet/høyskole (Unntak: Hio! ) 37

Takk for nå! Ingen undervisning neste uke, men lærer er tilgjengelig. Lykke til med innleveringen! 38